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');
foreach($this->verbose_status as $status => $text)
{
$this->verbose_status[$status] = lang($text);
}
if (!is_array($this->resources = $GLOBALS['egw']->session->appsession('resources','calendar')))
{
$this->resources = array();
@ -1502,34 +1498,35 @@ class calendar_bo
if ($status == 'G' && !$show_group_invitation) continue; // dont show group-invitation
$lang_status = lang($this->verbose_status[$status]);
if (!$long_status)
{
switch($status[0])
{
case 'A': // accepted
$status = html::image('calendar','agt_action_success',$this->verbose_status[$status]);
$status = html::image('calendar','agt_action_success',$lang_status);
break;
case 'R': // rejected
$status = html::image('calendar','agt_action_fail',$this->verbose_status[$status]);
$status = html::image('calendar','agt_action_fail',$lang_status);
break;
case 'T': // tentative
$status = html::image('calendar','tentative',$this->verbose_status[$status]);
$status = html::image('calendar','tentative',$lang_status);
break;
case 'U': // no response = unknown
$status = html::image('calendar','cnr-pending',$this->verbose_status[$status]);
$status = html::image('calendar','cnr-pending',$lang_status);
break;
case 'D': // delegated
$status = html::image('calendar','forward',$this->verbose_status[$status]);
$status = html::image('calendar','forward',$lang_status);
break;
case 'G': // group invitation
// Todo: Image, seems not to be used
$status = '('.$this->verbose_status[$status].')';
$status = '('.$lang_status.')';
break;
}
}
else
{
$status = '('.$this->verbose_status[$status].')';
$status = '('.$lang_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();
/**
* List of actions, and how many times that action was taken
*/
protected $results = array();
* List of actions, and how many times that action was taken
*/
protected $results = array();
/**
* imports entries according to given definition object.
@ -154,7 +154,7 @@ class calendar_import_csv implements importexport_iface_import_plugin {
$this->errors = array();
// 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);
$lookups = array(
@ -173,7 +173,7 @@ class calendar_import_csv implements importexport_iface_import_plugin {
if( count( array_unique( $record ) ) < 2 ) continue;
// 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']
);
@ -181,8 +181,8 @@ class calendar_import_csv implements importexport_iface_import_plugin {
if($_definition->plugin_options['owner_from_csv']) {
if(!is_numeric($record['owner'])) {
$this->errors[$import_csv->get_current_position()] = lang(
'Invalid owner ID: %1. Might be a bad field translation. Used %2 instead.',
$record['owner'],
'Invalid owner ID: %1. Might be a bad field translation. Used %2 instead.',
$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:
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_endtime$$'] = date($time_format, $day == date('Ymd', $event['end']) ? $event['end'] : mktime(23,59,59,0,0,0));
}
$days[date('Ymd',$_date)][$dow][] = $replacements;
}
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();
return $n == 0 ? $this->calendar_replacements($event) : array();
}
// Use start for cache, in case of multiple months
$_date = $id['start'] ? $id['start'] : $date;
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(
'name' => $this->bo->participant_name($participant),
'status' => $this->bo->verbose_status[$status],
'status' => lang($this->bo->verbose_status[$status]),
'quantity' => $quantity,
'role' => $role
);
switch ($participant[0])
{
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>{{status}}</td><td>'.lang('status').'</td></tr>';
echo '<tr><td colspan="4">{{endtable}}</td></tr>';
echo '<tr style="vertical-align:top"><td colspan="2"><table >';
echo '<tr><td><h3>'.lang('Day of week tables').":</h3></td></tr>";
$days = array();

View File

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

View File

@ -2,7 +2,7 @@
/**
* EGroupware - eTemplates for Application calendar
* 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
* @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.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',);

View File

@ -10,47 +10,47 @@
</columns>
<rows>
<row class="row">
<description width="95" options=",,,start" value="Start"/>
<description value="Start" for="start" width="95"/>
<hbox options="0,0">
<date-time needed="1" id="start"/>
<checkbox label="whole day" id="whole_day" options=",, ,disable" statustext="Event will occupy the whole day" align="center"/>
<date-time id="start" needed="1"/>
<checkbox align="center" statustext="Event will occupy the whole day" label="whole day" id="whole_day" options=",, ,disable"/>
</hbox>
</row>
<row class="row">
<description width="0" options=",,,duration" value="Duration"/>
<description value="Duration" for="duration" width="0"/>
<hbox options="0,0">
<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>
<date-time id="end" class="end_hide"/>
</hbox>
</row>
<row>
<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 class="row">
<description options=",,,location" value="Location" width="0"/>
<textbox maxlength="255" id="location" class="inputFullWidth"/>
<description value="Location" for="location" width="0"/>
<textbox id="location" maxlength="255" class="inputFullWidth"/>
</row>
<row class="row_off">
<description options=",,,priority" value="Priority" width="0"/>
<description value="Priority" for="priority" width="0"/>
<menulist>
<menupopup type="select-priority" id="priority"/>
</menulist>
</row>
<row class="row">
<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 class="row">
<description/>
<checkbox id="public" options="0,1" label="Private"/>
<checkbox label="Private" id="public" options="0,1"/>
</row>
</rows>
</grid>
<vbox class="row_on" align="right" options="0,0">
<description options=",,,category" value="Categories" class="row_on"/>
<vbox align="right" class="row_on" options="0,0">
<description value="Categories" for="category" class="row_on"/>
<listbox type="select-cat" id="category" rows="9"/>
</vbox>
</hbox>
@ -63,8 +63,8 @@
</columns>
<rows>
<row class="row" valign="top">
<description options=",,,description" value="Description"/>
<textbox multiline="true" rows="12" cols="70" id="description"/>
<description value="Description" for="description"/>
<textbox multiline="true" id="description" rows="12" cols="70"/>
</row>
</rows>
</grid>
@ -84,34 +84,34 @@
<description value="New"/>
<vbox options="0,0">
<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>
<link-entry id="resource" options="@cal_resources"/>
</vbox>
<int options="1,,3" id="quantity" align="center"/>
<textbox type="integer" align="center" id="quantity" min="1" size="3"/>
<menulist class="selectRole">
<menupopup id="role"/>
</menulist>
<button label="Add" id="add" align="center"/>
<button align="center" label="Add" id="add"/>
<description/>
</row>
<row class="th">
<description value="Type"/>
<description value="Participants"/>
<description value="Quantity" align="center"/>
<description align="center" value="Quantity"/>
<description value="Role"/>
<description value="Status"/>
<description value="Actions"/>
</row>
<row valign="top">
<description id="${row}[app]"/>
<description rows="1" cols="2" id="${row}[title]" no_lang="1"/>
<int id="${row}[quantity]" options="1,,3" readonly="true" align="center"/>
<description cols="2" id="${row}[title]" no_lang="1" rows="1"/>
<textbox type="integer" align="center" id="${row}[quantity]" readonly="true" min="1" size="3"/>
<description id="${row}[role_label]"/>
<menulist>
<menupopup id="${row}[status]" no_lang="1" onchange="1"/>
<menupopup id="${row}[status]" onchange="1"/>
</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>
</rows>
</grid>
@ -130,40 +130,40 @@
<rows>
<row class="row" disabled="!@reference">
<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="uid" class="gray"/>
</row>
<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/>
</row>
<row class="row" height="12">
<description options=",,,recur_type" value="Repeat type"/>
<description value="Repeat type" for="recur_type"/>
<menulist>
<menupopup onchange="check_recur_type('recur_type', 2);" id="recur_type"/>
<menupopup id="recur_type" onchange="check_recur_type('recur_type', 2);"/>
</menulist>
<description options=",,,recur_interval" value="Interval"/>
<description value="Interval" for="recur_interval"/>
<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>
</row>
<row class="row" height="12">
<description options=",,,recur_enddate" value="End date"/>
<date id="recur_enddate" statustext="repeat the event until which date (empty means unlimited)"/>
<description options=",,,tzid" value="Timezone"/>
<description value="End date" for="recur_enddate"/>
<date statustext="repeat the event until which date (empty means unlimited)" id="recur_enddate"/>
<description value="Timezone" for="tzid"/>
<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>
</row>
<row class="row" valign="top">
<description options=",,,recur_data" value="Repeat days"/>
<listbox type="select-dow" id="recur_data" rows="6" options="1" statustext="Days of the week for a weekly repeated event"/>
<description value="Repeat days" for="recur_data"/>
<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">
<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>
<grid id="recur_exception">
<columns>
@ -172,8 +172,8 @@
</columns>
<rows>
<row>
<date-time readonly="true" id="$row"/>
<button label="Delete" onclick="return confirm('Delete this exception');" id="delete_exception[$row_cont]" image="delete" statustext="Delete this exception"/>
<date-time id="$row" readonly="true"/>
<button statustext="Delete this exception" label="Delete" id="delete_exception[$row_cont]" onclick="return confirm('Delete this exception');" image="delete"/>
</row>
</rows>
</grid>
@ -201,16 +201,16 @@
</columns>
<rows>
<row class="th" disabled="@view">
<description span="all" value="Create new links"/>
<description value="Create new links" span="all"/>
</row>
<row class="row" disabled="@view">
<link-to span="all" id="link_to"/>
<link-to id="link_to" span="all"/>
</row>
<row class="th">
<description span="all" value="Existing links"/>
<description value="Existing links" span="all"/>
</row>
<row class="row_off" valign="top">
<link-list span="all" id="link_to"/>
<link-list id="link_to" span="all"/>
</row>
</rows>
</grid>
@ -224,25 +224,25 @@
<rows>
<row class="row" height="20" disabled="@no_add_alarm">
<menulist>
<menupopup id="before_after" label="%s the event"/>
<menupopup label="%s the event" id="before_after"/>
</menulist>
<hbox>
<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>
<description options=",,,new_alarm[days]" value="days"/>
<description value="days" for="new_alarm[days]"/>
<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>
<description options=",,,new_alarm[hours]" value="hours"/>
<description value="hours" for="new_alarm[hours]"/>
<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>
<description options=",,,new_alarm[mins]" value="Minutes"/>
<description value="Minutes" for="new_alarm[mins]"/>
<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>
<button id="button[add_alarm]" label="Add alarm"/>
<button label="Add alarm" id="button[add_alarm]"/>
</hbox>
</row>
<row valign="top" disabled="!@alarm">
@ -270,7 +270,7 @@
<menulist>
<menupopup type="select-account" id="${row}[owner]" readonly="true"/>
</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>
</rows>
</grid>
@ -291,15 +291,15 @@
</grid>
</template>
<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">
<description value="This event is part of a series"/>
</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?"/>
<hbox align="center">
<button label="Keep exceptions" statustext="All exceptions are converted into single events." id="button[delete_keep_exceptions]"/>
<button label="Delete exceptions" statustext="The exceptions are deleted together with the series." id="button[delete_exceptions]"/>
<button statustext="All exceptions are converted into single events." label="Keep exceptions" id="button[delete_keep_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';"/>
</hbox>
</vbox>
@ -315,29 +315,29 @@
</columns>
<rows>
<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/>
</row>
<row class="th" height="28">
<description value="Title"/>
<hbox options="0,0" span="all" needed="1">
<textbox size="75" maxlength="255" needed="1" id="title"/>
<description value="#%s" id="id" options="b"/>
<hbox needed="1" options="0,0" span="all">
<textbox id="title" needed="1" size="75" maxlength="255"/>
<description value="#%s" id="id" font_style="b"/>
</hbox>
</row>
<row>
<tabbox span="all" id="tabs">
<tabbox id="tabs" span="all">
<tabs>
<tab label="General" statustext="Location, Start- and Endtimes, ..."/>
<tab label="Description" statustext="Full description"/>
<tab label="Participants" statustext="Participants, Resources, ..."/>
<tab label="Recurrence" statustext="Repeating Event Information"/>
<tab label="Custom" statustext="Custom fields"/>
<tab label="Links" statustext="Links, Attachments"/>
<tab label="Alarms" statustext="Alarm management"/>
<tab label="History" statustext="Change history"/>
<tab id="general" label="General" statustext="Location, Start- and Endtimes, ..."/>
<tab id="description" label="Description" statustext="Full description"/>
<tab id="participants" label="Participants" statustext="Participants, Resources, ..."/>
<tab id="recurrence" label="Recurrence" statustext="Repeating Event Information"/>
<tab id="custom" label="Custom" statustext="Custom fields"/>
<tab id="links" label="Links" statustext="Links, Attachments"/>
<tab id="alarms" label="Alarms" statustext="Alarm management"/>
<tab id="history" label="History" statustext="Change history"/>
</tabs>
<tabpanels>
<template id="calendar.edit.general"/>
@ -354,27 +354,27 @@
<row disabled="!@owner">
<description value="Owner"/>
<menulist>
<menupopup type="select-account" readonly="true" id="owner"/>
<menupopup type="select-account" id="owner" readonly="true"/>
</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>
<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>
</row>
<row>
<hbox span="3">
<button label="Save" id="button[save]" statustext="saves the changes made"/>
<button label="Apply" id="button[apply]" statustext="apply the changes"/>
<button label="Cancel" onclick="window.close();" id="button[cancel]" statustext="Close the window"/>
<button statustext="saves the changes made" label="Save" id="button[save]"/>
<button statustext="apply the changes" label="Apply" id="button[apply]"/>
<button statustext="Close the window" label="Cancel" id="button[cancel]" onclick="window.close();"/>
<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>
<checkbox label="Do not notify of these changes" id="no_notifications" span="2"/>
</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 disabled="!@recur_type">
<template span="all" id="calendar.delete_series"/>
<template id="calendar.delete_series" span="all"/>
</row>
</rows>
</grid>