translating status-label now when the get used, to allow calendar_boupdate::_get_event_details() use language of to notify user

This commit is contained in:
Ralf Becker 2012-05-15 13:23:11 +00:00
parent 4ea76b4a95
commit 5d7c91a66e
6 changed files with 103 additions and 106 deletions

View File

@ -218,10 +218,6 @@ class calendar_bo
$this->grants = $GLOBALS['egw']->acl->get_grants('calendar'); $this->grants = $GLOBALS['egw']->acl->get_grants('calendar');
foreach($this->verbose_status as $status => $text)
{
$this->verbose_status[$status] = lang($text);
}
if (!is_array($this->resources = $GLOBALS['egw']->session->appsession('resources','calendar'))) if (!is_array($this->resources = $GLOBALS['egw']->session->appsession('resources','calendar')))
{ {
$this->resources = array(); $this->resources = array();
@ -1502,34 +1498,35 @@ class calendar_bo
if ($status == 'G' && !$show_group_invitation) continue; // dont show group-invitation if ($status == 'G' && !$show_group_invitation) continue; // dont show group-invitation
$lang_status = lang($this->verbose_status[$status]);
if (!$long_status) if (!$long_status)
{ {
switch($status[0]) switch($status[0])
{ {
case 'A': // accepted case 'A': // accepted
$status = html::image('calendar','agt_action_success',$this->verbose_status[$status]); $status = html::image('calendar','agt_action_success',$lang_status);
break; break;
case 'R': // rejected case 'R': // rejected
$status = html::image('calendar','agt_action_fail',$this->verbose_status[$status]); $status = html::image('calendar','agt_action_fail',$lang_status);
break; break;
case 'T': // tentative case 'T': // tentative
$status = html::image('calendar','tentative',$this->verbose_status[$status]); $status = html::image('calendar','tentative',$lang_status);
break; break;
case 'U': // no response = unknown case 'U': // no response = unknown
$status = html::image('calendar','cnr-pending',$this->verbose_status[$status]); $status = html::image('calendar','cnr-pending',$lang_status);
break; break;
case 'D': // delegated case 'D': // delegated
$status = html::image('calendar','forward',$this->verbose_status[$status]); $status = html::image('calendar','forward',$lang_status);
break; break;
case 'G': // group invitation case 'G': // group invitation
// Todo: Image, seems not to be used // Todo: Image, seems not to be used
$status = '('.$this->verbose_status[$status].')'; $status = '('.$lang_status.')';
break; break;
} }
} }
else else
{ {
$status = '('.$this->verbose_status[$status].')'; $status = '('.$lang_status.')';
} }
$names[$id] = $this->participant_name($id).($quantity > 1 ? ' ('.$quantity.')' : '').' '.$status; $names[$id] = $this->participant_name($id).($quantity > 1 ? ' ('.$quantity.')' : '').' '.$status;

View File

@ -97,9 +97,9 @@ class calendar_import_csv implements importexport_iface_import_plugin {
protected $errors = array(); protected $errors = array();
/** /**
* List of actions, and how many times that action was taken * List of actions, and how many times that action was taken
*/ */
protected $results = array(); protected $results = array();
/** /**
* imports entries according to given definition object. * imports entries according to given definition object.
@ -154,7 +154,7 @@ class calendar_import_csv implements importexport_iface_import_plugin {
$this->errors = array(); $this->errors = array();
// Used for participants // Used for participants
$status_map = array_flip($this->bo->verbose_status); $status_map = array_flip(array_map('lang',$this->bo->verbose_status));
$role_map = array_flip($this->bo->roles); $role_map = array_flip($this->bo->roles);
$lookups = array( $lookups = array(
@ -173,7 +173,7 @@ class calendar_import_csv implements importexport_iface_import_plugin {
if( count( array_unique( $record ) ) < 2 ) continue; if( count( array_unique( $record ) ) < 2 ) continue;
// Automatic conversions // Automatic conversions
importexport_import_csv::convert($record, calendar_egw_record::$types, 'calendar', $lookups, importexport_import_csv::convert($record, calendar_egw_record::$types, 'calendar', $lookups,
$_definition->plugin_options['convert'] $_definition->plugin_options['convert']
); );
@ -181,8 +181,8 @@ class calendar_import_csv implements importexport_iface_import_plugin {
if($_definition->plugin_options['owner_from_csv']) { if($_definition->plugin_options['owner_from_csv']) {
if(!is_numeric($record['owner'])) { if(!is_numeric($record['owner'])) {
$this->errors[$import_csv->get_current_position()] = lang( $this->errors[$import_csv->get_current_position()] = lang(
'Invalid owner ID: %1. Might be a bad field translation. Used %2 instead.', 'Invalid owner ID: %1. Might be a bad field translation. Used %2 instead.',
$record['owner'], $record['owner'],
$_definition->plugin_options['owner'] $_definition->plugin_options['owner']
); );
$record['owner'] = $_definition->plugin_options['owner']; $record['owner'] = $_definition->plugin_options['owner'];
@ -312,7 +312,7 @@ class calendar_import_csv implements importexport_iface_import_plugin {
} }
default: default:
throw new egw_exception('Unsupported action'); throw new egw_exception('Unsupported action');
} }
} }

View File

@ -291,7 +291,7 @@ class calendar_merge extends bo_merge
$replacements['$$calendar_starttime$$'] = date($time_format, $day == date('Ymd', $event['start']) ? $event['start'] : mktime(0,0,0,0,0,1)); $replacements['$$calendar_starttime$$'] = date($time_format, $day == date('Ymd', $event['start']) ? $event['start'] : mktime(0,0,0,0,0,1));
$replacements['$$calendar_endtime$$'] = date($time_format, $day == date('Ymd', $event['end']) ? $event['end'] : mktime(23,59,59,0,0,0)); $replacements['$$calendar_endtime$$'] = date($time_format, $day == date('Ymd', $event['end']) ? $event['end'] : mktime(23,59,59,0,0,0));
} }
$days[date('Ymd',$_date)][$dow][] = $replacements; $days[date('Ymd',$_date)][$dow][] = $replacements;
} }
if(strpos($repeat, 'day/date') !== false || strpos($repeat, 'day/name') !== false) { if(strpos($repeat, 'day/date') !== false || strpos($repeat, 'day/name') !== false) {
@ -357,7 +357,7 @@ class calendar_merge extends bo_merge
if(date('Ymd',$date) != date('Ymd', $event['start'])) return array(); if(date('Ymd',$date) != date('Ymd', $event['start'])) return array();
return $n == 0 ? $this->calendar_replacements($event) : array(); return $n == 0 ? $this->calendar_replacements($event) : array();
} }
// Use start for cache, in case of multiple months // Use start for cache, in case of multiple months
$_date = $id['start'] ? $id['start'] : $date; $_date = $id['start'] ? $id['start'] : $date;
if($days[date('Ymd',$_date)][$plugin]) return $days[date('Ymd',$_date)][$plugin][$n]; if($days[date('Ymd',$_date)][$plugin]) return $days[date('Ymd',$_date)][$plugin][$n];
@ -456,11 +456,11 @@ class calendar_merge extends bo_merge
} }
$info = array( $info = array(
'name' => $this->bo->participant_name($participant), 'name' => $this->bo->participant_name($participant),
'status' => $this->bo->verbose_status[$status], 'status' => lang($this->bo->verbose_status[$status]),
'quantity' => $quantity, 'quantity' => $quantity,
'role' => $role 'role' => $role
); );
switch ($participant[0]) switch ($participant[0])
{ {
case 'c': case 'c':
@ -558,7 +558,7 @@ class calendar_merge extends bo_merge
echo '<tr><td>{{quantity}}</td><td>'.lang('quantity').'</td></tr>'; echo '<tr><td>{{quantity}}</td><td>'.lang('quantity').'</td></tr>';
echo '<tr><td>{{status}}</td><td>'.lang('status').'</td></tr>'; echo '<tr><td>{{status}}</td><td>'.lang('status').'</td></tr>';
echo '<tr><td colspan="4">{{endtable}}</td></tr>'; echo '<tr><td colspan="4">{{endtable}}</td></tr>';
echo '<tr style="vertical-align:top"><td colspan="2"><table >'; echo '<tr style="vertical-align:top"><td colspan="2"><table >';
echo '<tr><td><h3>'.lang('Day of week tables').":</h3></td></tr>"; echo '<tr><td><h3>'.lang('Day of week tables').":</h3></td></tr>";
$days = array(); $days = array();

View File

@ -761,13 +761,13 @@ class calendar_uilist extends calendar_ui
'group' => $group, 'group' => $group,
), ),
); );
$status = $this->bo->verbose_status; $status = array_map('lang',$this->bo->verbose_status);
unset($status['G']); unset($status['G']);
$actions['status'] = array( $actions['status'] = array(
'caption' => 'Change your status', 'caption' => 'Change your status',
'icon' => 'check', 'icon' => 'check',
'prefix' => 'status-', 'prefix' => 'status-',
'children' => $status, 'children' => lang($status),
'group' => ++$group, 'group' => ++$group,
); );
++$group; // integration with other apps: infolog, calendar, filemanager ++$group; // integration with other apps: infolog, calendar, filemanager

View File

@ -2,7 +2,7 @@
/** /**
* EGroupware - eTemplates for Application calendar * EGroupware - eTemplates for Application calendar
* http://www.egroupware.org * http://www.egroupware.org
* generated by soetemplate::dump4setup() 2011-06-02 19:00 * generated by soetemplate::dump4setup() 2012-05-15 15:20
* *
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package calendar * @package calendar
@ -35,7 +35,7 @@ $templ_data[] = array('name' => 'calendar.edit.history','template' => '','lang'
$templ_data[] = array('name' => 'calendar.edit.links','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:7:{s:1:"A";s:2:"95";s:2:"c1";s:2:"th";s:2:"h1";s:6:",@view";s:2:"c2";s:3:"row";s:2:"h2";s:6:",@view";s:2:"c3";s:2:"th";s:2:"c4";s:11:"row_off,top";}i:1;a:2:{s:1:"A";a:3:{s:4:"span";s:3:"all";s:4:"type";s:5:"label";s:5:"label";s:16:"Create new links";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:3:{s:4:"span";s:3:"all";s:4:"name";s:7:"link_to";s:4:"type";s:7:"link-to";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:3:{s:4:"span";s:3:"all";s:4:"type";s:5:"label";s:5:"label";s:14:"Existing links";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:4;a:2:{s:1:"A";a:3:{s:4:"span";s:3:"all";s:4:"name";s:7:"link_to";s:4:"type";s:9:"link-list";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"cols";i:2;s:4:"rows";i:4;s:4:"size";s:17:"100%,210,,,,,auto";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"210";i:6;s:4:"auto";}}}','size' => '100%,210,,,,,auto','style' => '','modified' => '1231922193',); $templ_data[] = array('name' => 'calendar.edit.links','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:7:{s:1:"A";s:2:"95";s:2:"c1";s:2:"th";s:2:"h1";s:6:",@view";s:2:"c2";s:3:"row";s:2:"h2";s:6:",@view";s:2:"c3";s:2:"th";s:2:"c4";s:11:"row_off,top";}i:1;a:2:{s:1:"A";a:3:{s:4:"span";s:3:"all";s:4:"type";s:5:"label";s:5:"label";s:16:"Create new links";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:3:{s:4:"span";s:3:"all";s:4:"name";s:7:"link_to";s:4:"type";s:7:"link-to";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:3;a:2:{s:1:"A";a:3:{s:4:"span";s:3:"all";s:4:"type";s:5:"label";s:5:"label";s:14:"Existing links";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:4;a:2:{s:1:"A";a:3:{s:4:"span";s:3:"all";s:4:"name";s:7:"link_to";s:4:"type";s:9:"link-list";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"cols";i:2;s:4:"rows";i:4;s:4:"size";s:17:"100%,210,,,,,auto";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"210";i:6;s:4:"auto";}}}','size' => '100%,210,,,,,auto','style' => '','modified' => '1231922193',);
$templ_data[] = array('name' => 'calendar.edit.participants','template' => '','lang' => '','group' => '0','version' => '1.7.001','data' => 'a:1:{i:0;a:7:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:6:{s:1:"A";s:2:"95";s:2:"c3";s:4:",top";s:2:"c1";s:3:"row";s:2:"c2";s:2:"th";s:2:"h1";s:8:",@no_add";s:1:"D";s:2:"70";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"New";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:14:"select-account";s:4:"size";s:27:"User or group,calendar+,,10";s:4:"name";s:7:"account";s:4:"help";s:13:"User or group";}i:2;a:3:{s:4:"type";s:10:"link-entry";s:4:"name";s:8:"resource";s:4:"size";s:14:"@cal_resources";}}s:1:"C";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:8:"quantity";s:5:"align";s:6:"center";}s:1:"D";a:3:{s:4:"type";s:6:"select";s:4:"name";s:4:"role";s:4:"span";s:11:",selectRole";}s:1:"E";a:4:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:5:"align";s:6:"center";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:2;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Participants";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:8:"Quantity";s:5:"align";s:6:"center";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Role";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Status";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}}i:3;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"name";s:11:"${row}[app]";}s:1:"B";a:6:{s:4:"type";s:5:"label";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:26:"accounts_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:13:"${row}[title]";s:7:"no_lang";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:3:"int";s:4:"name";s:16:"${row}[quantity]";s:4:"size";s:4:"1,,3";s:8:"readonly";s:1:"1";s:5:"align";s:6:"center";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:4:"name";s:18:"${row}[role_label]";}s:1:"E";a:4:{s:4:"type";s:6:"select";s:4:"name";s:14:"${row}[status]";s:7:"no_lang";s:1:"1";s:8:"onchange";i:1;}s:1:"F";a:9:{s:4:"type";s:6:"button";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:19:",!@resources_status";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:16:"resources_select";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:27:"resources_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:28:"delete[$row_cont[delete_id]]";s:5:"align";s:6:"center";s:5:"label";s:6:"Delete";s:8:"onchange";i:1;s:4:"size";s:6:"delete";}}}s:4:"rows";i:3;s:4:"cols";i:6;s:4:"size";s:17:"100%,210,,,,,auto";s:4:"name";s:12:"participants";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"210";i:6;s:4:"auto";}}}','size' => '100%,210,,,,,auto','style' => '.selectRole select { width: 100%; }','modified' => '1248274661',); $templ_data[] = array('name' => 'calendar.edit.participants','template' => '','lang' => '','group' => '0','version' => '1.7.001','data' => 'a:1:{i:0;a:7:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:6:{s:1:"A";s:2:"95";s:2:"c3";s:4:",top";s:2:"c1";s:3:"row";s:2:"c2";s:2:"th";s:2:"h1";s:8:",@no_add";s:1:"D";s:2:"70";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"New";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:14:"select-account";s:4:"size";s:27:"User or group,calendar+,,10";s:4:"name";s:7:"account";s:4:"help";s:13:"User or group";}i:2;a:3:{s:4:"type";s:10:"link-entry";s:4:"name";s:8:"resource";s:4:"size";s:14:"@cal_resources";}}s:1:"C";a:4:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:8:"quantity";s:5:"align";s:6:"center";}s:1:"D";a:3:{s:4:"type";s:6:"select";s:4:"name";s:4:"role";s:4:"span";s:11:",selectRole";}s:1:"E";a:4:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";s:5:"align";s:6:"center";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:2;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Participants";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:8:"Quantity";s:5:"align";s:6:"center";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Role";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Status";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}}i:3;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"name";s:11:"${row}[app]";}s:1:"B";a:6:{s:4:"type";s:5:"label";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:26:"accounts_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:13:"${row}[title]";s:7:"no_lang";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:3:"int";s:4:"name";s:16:"${row}[quantity]";s:4:"size";s:4:"1,,3";s:8:"readonly";s:1:"1";s:5:"align";s:6:"center";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:4:"name";s:18:"${row}[role_label]";}s:1:"E";a:3:{s:4:"type";s:6:"select";s:4:"name";s:14:"${row}[status]";s:8:"onchange";i:1;}s:1:"F";a:9:{s:4:"type";s:6:"button";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:19:",!@resources_status";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:16:"resources_select";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:27:"resources_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:28:"delete[$row_cont[delete_id]]";s:5:"align";s:6:"center";s:5:"label";s:6:"Delete";s:8:"onchange";i:1;s:4:"size";s:6:"delete";}}}s:4:"rows";i:3;s:4:"cols";i:6;s:4:"size";s:17:"100%,210,,,,,auto";s:4:"name";s:12:"participants";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"210";i:6;s:4:"auto";}}}','size' => '100%,210,,,,,auto','style' => '.selectRole select { width: 100%; }','modified' => '1248274661',);
$templ_data[] = array('name' => 'calendar.edit.print','template' => '','lang' => '','group' => '0','version' => '1.6.001','data' => 'a:1:{i:0;a:7:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:6:{s:1:"A";s:2:"95";s:2:"c3";s:4:",top";s:2:"c1";s:3:"row";s:2:"c2";s:2:"th";s:2:"h1";s:8:",@no_add";s:1:"D";s:24:",@hide_status_recurrence";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"New";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:14:"select-account";s:4:"size";s:27:"User or group,calendar+,,10";s:4:"name";s:7:"account";s:4:"help";s:13:"User or group";}i:2;a:3:{s:4:"type";s:10:"link-entry";s:4:"name";s:8:"resource";s:4:"size";s:14:"@cal_resources";}}s:1:"C";a:3:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:8:"quantity";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:2;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Participants";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Quantity";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:10:"All future";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Status";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}}i:3;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"name";s:11:"${row}[app]";}s:1:"B";a:6:{s:4:"type";s:5:"label";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:26:"accounts_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:13:"${row}[title]";s:7:"no_lang";s:1:"1";}s:1:"C";a:3:{s:4:"type";s:3:"int";s:4:"name";s:16:"${row}[quantity]";s:4:"size";s:4:"1,,3";}s:1:"D";a:3:{s:4:"type";s:8:"checkbox";s:4:"name";s:25:"${row}[status_recurrence]";s:5:"align";s:6:"center";}s:1:"E";a:4:{s:4:"type";s:6:"select";s:4:"name";s:14:"${row}[status]";s:7:"no_lang";s:1:"1";s:8:"onchange";i:1;}s:1:"F";a:9:{s:4:"type";s:6:"button";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:19:",!@resources_status";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:16:"resources_select";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:27:"resources_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:22:"delete[$row_cont[uid]]";s:5:"align";s:6:"center";s:5:"label";s:6:"Delete";s:8:"onchange";i:1;s:4:"size";s:6:"delete";}}}s:4:"rows";i:3;s:4:"cols";i:6;s:4:"size";s:17:"100%,200,,,,,auto";s:4:"name";s:12:"participants";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,,,,auto','style' => '','modified' => '1229280346',); $templ_data[] = array('name' => 'calendar.edit.print','template' => '','lang' => '','group' => '0','version' => '1.6.001','data' => 'a:1:{i:0;a:7:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:6:{s:1:"A";s:2:"95";s:2:"c3";s:4:",top";s:2:"c1";s:3:"row";s:2:"c2";s:2:"th";s:2:"h1";s:8:",@no_add";s:1:"D";s:24:",@hide_status_recurrence";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"New";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:14:"select-account";s:4:"size";s:27:"User or group,calendar+,,10";s:4:"name";s:7:"account";s:4:"help";s:13:"User or group";}i:2;a:3:{s:4:"type";s:10:"link-entry";s:4:"name";s:8:"resource";s:4:"size";s:14:"@cal_resources";}}s:1:"C";a:3:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:8:"quantity";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:2;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Participants";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Quantity";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:10:"All future";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Status";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}}i:3;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"name";s:11:"${row}[app]";}s:1:"B";a:6:{s:4:"type";s:5:"label";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:26:"accounts_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:13:"${row}[title]";s:7:"no_lang";s:1:"1";}s:1:"C";a:3:{s:4:"type";s:3:"int";s:4:"name";s:16:"${row}[quantity]";s:4:"size";s:4:"1,,3";}s:1:"D";a:3:{s:4:"type";s:8:"checkbox";s:4:"name";s:25:"${row}[status_recurrence]";s:5:"align";s:6:"center";}s:1:"E";a:4:{s:4:"type";s:6:"select";s:4:"name";s:14:"${row}[status]";s:7:"no_lang";s:1:"1";s:8:"onchange";i:1;}s:1:"F";a:9:{s:4:"type";s:6:"button";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:19:",!@resources_status";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:16:"resources_select";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:27:"resources_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:22:"delete[$row_cont[uid]]";s:5:"align";s:6:"center";s:5:"label";s:6:"Delete";s:8:"onchange";i:1;s:4:"size";s:6:"delete";}}}s:4:"rows";i:3;s:4:"cols";i:6;s:4:"size";s:17:"100%,200,,,,,auto";s:4:"name";s:12:"participants";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,,,,auto','style' => '','modified' => '1229280346',);

View File

@ -10,47 +10,47 @@
</columns> </columns>
<rows> <rows>
<row class="row"> <row class="row">
<description width="95" options=",,,start" value="Start"/> <description value="Start" for="start" width="95"/>
<hbox options="0,0"> <hbox options="0,0">
<date-time needed="1" id="start"/> <date-time id="start" needed="1"/>
<checkbox label="whole day" id="whole_day" options=",, ,disable" statustext="Event will occupy the whole day" align="center"/> <checkbox align="center" statustext="Event will occupy the whole day" label="whole day" id="whole_day" options=",, ,disable"/>
</hbox> </hbox>
</row> </row>
<row class="row"> <row class="row">
<description width="0" options=",,,duration" value="Duration"/> <description value="Duration" for="duration" width="0"/>
<hbox options="0,0"> <hbox options="0,0">
<menulist> <menulist>
<menupopup no_lang="1" onchange="set_style_by_class('table','end_hide','display',this.value == '' ? 'block' : 'none'); if (this.value == '') document.getElementById(form::name('end[str]')).value = document.getElementById(form::name('start[str]')).value;" id="duration" options="Use end date" statustext="Duration of the meeting"/> <menupopup statustext="Duration of the meeting" id="duration" no_lang="1" onchange="set_style_by_class('table','end_hide','display',this.value == '' ? 'block' : 'none'); if (this.value == '') document.getElementById(form::name('end[str]')).value = document.getElementById(form::name('start[str]')).value;" options="Use end date"/>
</menulist> </menulist>
<date-time id="end" class="end_hide"/> <date-time id="end" class="end_hide"/>
</hbox> </hbox>
</row> </row>
<row> <row>
<description/> <description/>
<buttononly label="Freetime search" onclick="ajax_submit(this.form,'calendar.calendar_uiforms.ajax_freetimesearch'); return false;" width="0" id="freetime" statustext="Find free timeslots where the selected participants are availible for the given timespan"/> <buttononly statustext="Find free timeslots where the selected participants are availible for the given timespan" label="Freetime search" id="freetime" onclick="ajax_submit(this.form,'calendar.calendar_uiforms.ajax_freetimesearch'); return false;" width="0"/>
</row> </row>
<row class="row"> <row class="row">
<description options=",,,location" value="Location" width="0"/> <description value="Location" for="location" width="0"/>
<textbox maxlength="255" id="location" class="inputFullWidth"/> <textbox id="location" maxlength="255" class="inputFullWidth"/>
</row> </row>
<row class="row_off"> <row class="row_off">
<description options=",,,priority" value="Priority" width="0"/> <description value="Priority" for="priority" width="0"/>
<menulist> <menulist>
<menupopup type="select-priority" id="priority"/> <menupopup type="select-priority" id="priority"/>
</menulist> </menulist>
</row> </row>
<row class="row"> <row class="row">
<description value="Options" width="0"/> <description value="Options" width="0"/>
<checkbox id="non_blocking" options=",, ,disable" statustext="A non blocking event will not conflict with other events" label="non blocking"/> <checkbox statustext="A non blocking event will not conflict with other events" label="non blocking" id="non_blocking" options=",, ,disable"/>
</row> </row>
<row class="row"> <row class="row">
<description/> <description/>
<checkbox id="public" options="0,1" label="Private"/> <checkbox label="Private" id="public" options="0,1"/>
</row> </row>
</rows> </rows>
</grid> </grid>
<vbox class="row_on" align="right" options="0,0"> <vbox align="right" class="row_on" options="0,0">
<description options=",,,category" value="Categories" class="row_on"/> <description value="Categories" for="category" class="row_on"/>
<listbox type="select-cat" id="category" rows="9"/> <listbox type="select-cat" id="category" rows="9"/>
</vbox> </vbox>
</hbox> </hbox>
@ -63,8 +63,8 @@
</columns> </columns>
<rows> <rows>
<row class="row" valign="top"> <row class="row" valign="top">
<description options=",,,description" value="Description"/> <description value="Description" for="description"/>
<textbox multiline="true" rows="12" cols="70" id="description"/> <textbox multiline="true" id="description" rows="12" cols="70"/>
</row> </row>
</rows> </rows>
</grid> </grid>
@ -84,34 +84,34 @@
<description value="New"/> <description value="New"/>
<vbox options="0,0"> <vbox options="0,0">
<menulist> <menulist>
<menupopup type="select-account" options="User or group,calendar+,,10" id="account" statustext="User or group"/> <menupopup type="select-account" statustext="User or group" id="account" options="User or group,calendar+,,10"/>
</menulist> </menulist>
<link-entry id="resource" options="@cal_resources"/> <link-entry id="resource" options="@cal_resources"/>
</vbox> </vbox>
<int options="1,,3" id="quantity" align="center"/> <textbox type="integer" align="center" id="quantity" min="1" size="3"/>
<menulist class="selectRole"> <menulist class="selectRole">
<menupopup id="role"/> <menupopup id="role"/>
</menulist> </menulist>
<button label="Add" id="add" align="center"/> <button align="center" label="Add" id="add"/>
<description/> <description/>
</row> </row>
<row class="th"> <row class="th">
<description value="Type"/> <description value="Type"/>
<description value="Participants"/> <description value="Participants"/>
<description value="Quantity" align="center"/> <description align="center" value="Quantity"/>
<description value="Role"/> <description value="Role"/>
<description value="Status"/> <description value="Status"/>
<description value="Actions"/> <description value="Actions"/>
</row> </row>
<row valign="top"> <row valign="top">
<description id="${row}[app]"/> <description id="${row}[app]"/>
<description rows="1" cols="2" id="${row}[title]" no_lang="1"/> <description cols="2" id="${row}[title]" no_lang="1" rows="1"/>
<int id="${row}[quantity]" options="1,,3" readonly="true" align="center"/> <textbox type="integer" align="center" id="${row}[quantity]" readonly="true" min="1" size="3"/>
<description id="${row}[role_label]"/> <description id="${row}[role_label]"/>
<menulist> <menulist>
<menupopup id="${row}[status]" no_lang="1" onchange="1"/> <menupopup id="${row}[status]" onchange="1"/>
</menulist> </menulist>
<button rows="1" cols="2" id="delete[$row_cont[delete_id]]" align="center" label="Delete" onchange="1" image="delete"/> <button align="center" cols="2" label="Delete" id="delete[$row_cont[delete_id]]" onchange="1" rows="1" image="delete"/>
</row> </row>
</rows> </rows>
</grid> </grid>
@ -130,40 +130,40 @@
<rows> <rows>
<row class="row" disabled="!@reference"> <row class="row" disabled="!@reference">
<description value="Exception"/> <description value="Exception"/>
<date-time readonly="true" id="recurrence" class="gray"/> <date-time id="recurrence" readonly="true" class="gray"/>
<description id="reference" class="gray"/> <description id="reference" class="gray"/>
<description id="uid" class="gray"/> <description id="uid" class="gray"/>
</row> </row>
<row class="th" height="12"> <row class="th" height="12">
<description span="all" class="gray" value="Repeating Event Information"/> <description value="Repeating Event Information" span="all" class="gray"/>
<description/> <description/>
<description/> <description/>
<description/> <description/>
</row> </row>
<row class="row" height="12"> <row class="row" height="12">
<description options=",,,recur_type" value="Repeat type"/> <description value="Repeat type" for="recur_type"/>
<menulist> <menulist>
<menupopup onchange="check_recur_type('recur_type', 2);" id="recur_type"/> <menupopup id="recur_type" onchange="check_recur_type('recur_type', 2);"/>
</menulist> </menulist>
<description options=",,,recur_interval" value="Interval"/> <description value="Interval" for="recur_interval"/>
<menulist> <menulist>
<menupopup type="select-number" id="recur_interval" options="None,2,31" statustext="repeating interval, eg. 2 to repeat every second week"/> <menupopup type="select-number" statustext="repeating interval, eg. 2 to repeat every second week" id="recur_interval" options="None,2,31"/>
</menulist> </menulist>
</row> </row>
<row class="row" height="12"> <row class="row" height="12">
<description options=",,,recur_enddate" value="End date"/> <description value="End date" for="recur_enddate"/>
<date id="recur_enddate" statustext="repeat the event until which date (empty means unlimited)"/> <date statustext="repeat the event until which date (empty means unlimited)" id="recur_enddate"/>
<description options=",,,tzid" value="Timezone"/> <description value="Timezone" for="tzid"/>
<menulist> <menulist>
<menupopup type="select-timezone" id="tzid" statustext="Timezone in which recurrences have identical time"/> <menupopup type="select-timezone" statustext="Timezone in which recurrences have identical time" id="tzid"/>
</menulist> </menulist>
</row> </row>
<row class="row" valign="top"> <row class="row" valign="top">
<description options=",,,recur_data" value="Repeat days"/> <description value="Repeat days" for="recur_data"/>
<listbox type="select-dow" id="recur_data" rows="6" options="1" statustext="Days of the week for a weekly repeated event"/> <listbox type="select-dow" statustext="Days of the week for a weekly repeated event" id="recur_data" rows="6" options="1"/>
<vbox options="0,0"> <vbox options="0,0">
<description value="Exceptions"/> <description value="Exceptions"/>
<button label="@exception_label" no_lang="1" id="button[exception]" statustext="Create an exception for the given date"/> <button statustext="Create an exception for the given date" label="@exception_label" id="button[exception]" no_lang="1"/>
</vbox> </vbox>
<grid id="recur_exception"> <grid id="recur_exception">
<columns> <columns>
@ -172,8 +172,8 @@
</columns> </columns>
<rows> <rows>
<row> <row>
<date-time readonly="true" id="$row"/> <date-time id="$row" readonly="true"/>
<button label="Delete" onclick="return confirm('Delete this exception');" id="delete_exception[$row_cont]" image="delete" statustext="Delete this exception"/> <button statustext="Delete this exception" label="Delete" id="delete_exception[$row_cont]" onclick="return confirm('Delete this exception');" image="delete"/>
</row> </row>
</rows> </rows>
</grid> </grid>
@ -201,16 +201,16 @@
</columns> </columns>
<rows> <rows>
<row class="th" disabled="@view"> <row class="th" disabled="@view">
<description span="all" value="Create new links"/> <description value="Create new links" span="all"/>
</row> </row>
<row class="row" disabled="@view"> <row class="row" disabled="@view">
<link-to span="all" id="link_to"/> <link-to id="link_to" span="all"/>
</row> </row>
<row class="th"> <row class="th">
<description span="all" value="Existing links"/> <description value="Existing links" span="all"/>
</row> </row>
<row class="row_off" valign="top"> <row class="row_off" valign="top">
<link-list span="all" id="link_to"/> <link-list id="link_to" span="all"/>
</row> </row>
</rows> </rows>
</grid> </grid>
@ -224,25 +224,25 @@
<rows> <rows>
<row class="row" height="20" disabled="@no_add_alarm"> <row class="row" height="20" disabled="@no_add_alarm">
<menulist> <menulist>
<menupopup id="before_after" label="%s the event"/> <menupopup label="%s the event" id="before_after"/>
</menulist> </menulist>
<hbox> <hbox>
<menulist> <menulist>
<menupopup type="select-number" options=",0,7" id="new_alarm[days]" statustext="days"/> <menupopup type="select-number" statustext="days" id="new_alarm[days]" options=",0,7"/>
</menulist> </menulist>
<description options=",,,new_alarm[days]" value="days"/> <description value="days" for="new_alarm[days]"/>
<menulist> <menulist>
<menupopup type="select-number" id="new_alarm[hours]" options=",0,23" statustext="hours"/> <menupopup type="select-number" statustext="hours" id="new_alarm[hours]" options=",0,23"/>
</menulist> </menulist>
<description options=",,,new_alarm[hours]" value="hours"/> <description value="hours" for="new_alarm[hours]"/>
<menulist> <menulist>
<menupopup type="select-number" id="new_alarm[mins]" options=",0,55,5" statustext="Minutes"/> <menupopup type="select-number" statustext="Minutes" id="new_alarm[mins]" options=",0,55,5"/>
</menulist> </menulist>
<description options=",,,new_alarm[mins]" value="Minutes"/> <description value="Minutes" for="new_alarm[mins]"/>
<menulist> <menulist>
<menupopup id="new_alarm[owner]" no_lang="1" label="for" statustext="Select who should get the alarm"/> <menupopup statustext="Select who should get the alarm" label="for" id="new_alarm[owner]" no_lang="1"/>
</menulist> </menulist>
<button id="button[add_alarm]" label="Add alarm"/> <button label="Add alarm" id="button[add_alarm]"/>
</hbox> </hbox>
</row> </row>
<row valign="top" disabled="!@alarm"> <row valign="top" disabled="!@alarm">
@ -270,7 +270,7 @@
<menulist> <menulist>
<menupopup type="select-account" id="${row}[owner]" readonly="true"/> <menupopup type="select-account" id="${row}[owner]" readonly="true"/>
</menulist> </menulist>
<button image="delete" label="Delete" align="center" id="delete_alarm[$row_cont[id]]" statustext="Delete this alarm" onclick="return confirm('Delete this alarm');"/> <button align="center" statustext="Delete this alarm" label="Delete" id="delete_alarm[$row_cont[id]]" onclick="return confirm('Delete this alarm');" image="delete"/>
</row> </row>
</rows> </rows>
</grid> </grid>
@ -291,15 +291,15 @@
</grid> </grid>
</template> </template>
<template id="calendar.delete_series" template="" lang="" group="0" version="1.7.003"> <template id="calendar.delete_series" template="" lang="" group="0" version="1.7.003">
<vbox rows="1" cols="1" id="#delete_series"> <vbox cols="1" id="#delete_series" rows="1">
<hbox id="#dialog-header" class="promptheader"> <hbox id="#dialog-header" class="promptheader">
<description value="This event is part of a series"/> <description value="This event is part of a series"/>
</hbox> </hbox>
<vbox class="prompt" id="dialog-content"> <vbox id="dialog-content" class="prompt">
<description value="Do you want to keep the series exceptions in your calendar?"/> <description value="Do you want to keep the series exceptions in your calendar?"/>
<hbox align="center"> <hbox align="center">
<button label="Keep exceptions" statustext="All exceptions are converted into single events." id="button[delete_keep_exceptions]"/> <button statustext="All exceptions are converted into single events." label="Keep exceptions" id="button[delete_keep_exceptions]"/>
<button label="Delete exceptions" statustext="The exceptions are deleted together with the series." id="button[delete_exceptions]"/> <button statustext="The exceptions are deleted together with the series." label="Delete exceptions" id="button[delete_exceptions]"/>
<buttononly label="Cancel" onclick="document.getElementById('delete_series').style.display = 'none';"/> <buttononly label="Cancel" onclick="document.getElementById('delete_series').style.display = 'none';"/>
</hbox> </hbox>
</vbox> </vbox>
@ -315,29 +315,29 @@
</columns> </columns>
<rows> <rows>
<row disabled="!@msg"> <row disabled="!@msg">
<html span="all" class="redItalic" no_lang="1" align="center" id="msg"/> <html align="center" id="msg" no_lang="1" span="all" class="redItalic"/>
<description/> <description/>
<description/> <description/>
<description/> <description/>
</row> </row>
<row class="th" height="28"> <row class="th" height="28">
<description value="Title"/> <description value="Title"/>
<hbox options="0,0" span="all" needed="1"> <hbox needed="1" options="0,0" span="all">
<textbox size="75" maxlength="255" needed="1" id="title"/> <textbox id="title" needed="1" size="75" maxlength="255"/>
<description value="#%s" id="id" options="b"/> <description value="#%s" id="id" font_style="b"/>
</hbox> </hbox>
</row> </row>
<row> <row>
<tabbox span="all" id="tabs"> <tabbox id="tabs" span="all">
<tabs> <tabs>
<tab label="General" statustext="Location, Start- and Endtimes, ..."/> <tab id="general" label="General" statustext="Location, Start- and Endtimes, ..."/>
<tab label="Description" statustext="Full description"/> <tab id="description" label="Description" statustext="Full description"/>
<tab label="Participants" statustext="Participants, Resources, ..."/> <tab id="participants" label="Participants" statustext="Participants, Resources, ..."/>
<tab label="Recurrence" statustext="Repeating Event Information"/> <tab id="recurrence" label="Recurrence" statustext="Repeating Event Information"/>
<tab label="Custom" statustext="Custom fields"/> <tab id="custom" label="Custom" statustext="Custom fields"/>
<tab label="Links" statustext="Links, Attachments"/> <tab id="links" label="Links" statustext="Links, Attachments"/>
<tab label="Alarms" statustext="Alarm management"/> <tab id="alarms" label="Alarms" statustext="Alarm management"/>
<tab label="History" statustext="Change history"/> <tab id="history" label="History" statustext="Change history"/>
</tabs> </tabs>
<tabpanels> <tabpanels>
<template id="calendar.edit.general"/> <template id="calendar.edit.general"/>
@ -354,27 +354,27 @@
<row disabled="!@owner"> <row disabled="!@owner">
<description value="Owner"/> <description value="Owner"/>
<menulist> <menulist>
<menupopup type="select-account" readonly="true" id="owner"/> <menupopup type="select-account" id="owner" readonly="true"/>
</menulist> </menulist>
<date-time label="Updated" readonly="true" no_lang="1" align="right" id="modified" class="noBreak"/> <date-time align="right" label="Updated" id="modified" no_lang="1" readonly="true" class="noBreak"/>
<menulist> <menulist>
<menupopup type="select-account" class="noBreak" label="by" readonly="true" align="right" id="modifier"/> <menupopup type="select-account" align="right" class="noBreak" label="by" id="modifier" readonly="true"/>
</menulist> </menulist>
</row> </row>
<row> <row>
<hbox span="3"> <hbox span="3">
<button label="Save" id="button[save]" statustext="saves the changes made"/> <button statustext="saves the changes made" label="Save" id="button[save]"/>
<button label="Apply" id="button[apply]" statustext="apply the changes"/> <button statustext="apply the changes" label="Apply" id="button[apply]"/>
<button label="Cancel" onclick="window.close();" id="button[cancel]" statustext="Close the window"/> <button statustext="Close the window" label="Cancel" id="button[cancel]" onclick="window.close();"/>
<menulist> <menulist>
<menupopup onchange="this.form.submit(); this.value='';" id="action" options="Actions..." statustext="Execute a further action for this entry"/> <menupopup statustext="Execute a further action for this entry" id="action" onchange="this.form.submit(); this.value='';" options="Actions..."/>
</menulist> </menulist>
<checkbox label="Do not notify of these changes" id="no_notifications" span="2"/> <checkbox label="Do not notify of these changes" id="no_notifications" span="2"/>
</hbox> </hbox>
<button label="Delete" onclick="if ($cont[query_delete_exceptions]) { getElementById('delete_series').style.display='block'; return false; } else return confirm('Delete this event');" align="right" id="button[delete]" statustext="Delete this event"/> <button align="right" statustext="Delete this event" label="Delete" id="button[delete]" onclick="if ($cont[query_delete_exceptions]) { getElementById('delete_series').style.display='block'; return false; } else return confirm('Delete this event');"/>
</row> </row>
<row disabled="!@recur_type"> <row disabled="!@recur_type">
<template span="all" id="calendar.delete_series"/> <template id="calendar.delete_series" span="all"/>
</row> </row>
</rows> </rows>
</grid> </grid>