mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 14:41:29 +01:00
- fixed bug in creation of recur-exception for the first recurence
- recuring events: instead of edit+edit-series / delete/delete-series buttons use just edit/delete and a new exception button
This commit is contained in:
parent
5c71cc8378
commit
27c3c7ecb3
@ -94,7 +94,8 @@ class bocalupdate extends bocal
|
||||
// - new events need start, end and title
|
||||
// - updated events cant set start, end or title to empty
|
||||
if (!$event['id'] && (!$event['start'] || !$event['end'] || !$event['title']) ||
|
||||
$event['id'] && (isset($event['start']) && !$event['start'] || isset($event['end']) && !$event['end'] || isset($event['title']) && !$event['title']))
|
||||
$event['id'] && (isset($event['start']) && !$event['start'] || isset($event['end']) && !$event['end'] ||
|
||||
isset($event['title']) && !$event['title']))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@ -153,6 +154,7 @@ class bocalupdate extends bocal
|
||||
foreach((array) $overlapping_events as $k => $overlap)
|
||||
{
|
||||
if ($overlap['id'] == $event['id'] || // that's the event itself
|
||||
$overlap['id'] == $event['reference'] || // event is an exception of overlap
|
||||
$overlap['non_blocking']) // that's a non_blocking event
|
||||
{
|
||||
continue;
|
||||
|
@ -523,9 +523,11 @@ ORDER BY cal_user_type, cal_usre_id
|
||||
// check if the recure-information changed
|
||||
$this->db->select($this->repeats_table,'*',array('cal_id' => $cal_id),__LINE__,__FILE__);
|
||||
$old_recur = $this->db->row(true);
|
||||
$old_exceptions = $old_recur['recur_exception'] ? explode(',',$old_recur['recur_exception']) : array();
|
||||
$exceptions = $event['recur_exception'] ? explode(',',$event['recur_exception']) : array();
|
||||
$set_recurrences = $event['recur_type'] != $old_recur['recur_type'] || $event['recur_data'] != $old_recur['recur_data'] ||
|
||||
$event['recur_interval'] != $old_recur['recur_interval'] || $event['recur_enddate'] != $old_recur['recur_enddate'] ||
|
||||
$event['recur_exeption'] != $old_recur['recur_exeption'];
|
||||
count(array_diff($old_exceptions,$exceptions)); // exception deleted
|
||||
}
|
||||
if($event['recur_type'] != MCAL_RECUR_NONE)
|
||||
{
|
||||
@ -620,7 +622,8 @@ ORDER BY cal_user_type, cal_usre_id
|
||||
|
||||
if (!$old_start)
|
||||
{
|
||||
if ($change_since !== false) $this->db->select($this->dates_table,'MIN(cal_start) AS cal_start,MIN(cal_end) AS cal_end',array('cal_id'=>$cal_id),__LNE__,__FILE__);
|
||||
if ($change_since !== false) $this->db->select($this->dates_table,'MIN(cal_start) AS cal_start,MIN(cal_end) AS cal_end',
|
||||
array('cal_id'=>$cal_id),__LINE__,__FILE__);
|
||||
// if no recurrence found, create one with the new dates
|
||||
if ($change_since === false || !($row = $this->db->row(true)) || !$row['cal_start'] || !$row['cal_end'])
|
||||
{
|
||||
|
@ -68,13 +68,13 @@ class uiforms extends uical
|
||||
{
|
||||
$extra_participants = $_GET['participants'] ? explode(',',$_GET['participants']) : array();
|
||||
|
||||
$owner = (int) (isset($_GET['owner']) ? $_GET['owner'] : $this->owner);
|
||||
$owner = isset($_GET['owner']) ? $_GET['owner'] : $this->owner;
|
||||
if (!$owner || !is_numeric($owner) || $GLOBALS['egw']->accounts->get_type($owner) != 'u' ||
|
||||
!$this->bo->check_perms(EGW_ACL_ADD,0,$owner))
|
||||
{
|
||||
if ($owner) // make an owner who is no user or we have no add-rights a participant
|
||||
{
|
||||
$extra_participants[] = $owner;
|
||||
$extra_participants += explode(',',$owner);
|
||||
}
|
||||
$owner = $this->user;
|
||||
}
|
||||
@ -136,17 +136,7 @@ class uiforms extends uical
|
||||
list($button) = @each($content['button']);
|
||||
unset($content['button']);
|
||||
|
||||
$view = $content['view'] && $button != 'edit' && $button != 'edit_series';
|
||||
// if we edit a single recurrance, we need to remember it for save and need to reset the recur information
|
||||
if ($button == 'edit' && $content['recur_type'] != MCAL_RECUR_NONE)
|
||||
{
|
||||
$content['edit_single'] = $content['start'];
|
||||
$content['recur_type'] = MCAL_RECUR_NONE;
|
||||
foreach(array('recur_enddate','recur_interval','recur_exception','recur_data') as $name)
|
||||
{
|
||||
unset($content[$name]);
|
||||
}
|
||||
}
|
||||
$view = $content['view'] && $button != 'edit' && $button != 'exception';
|
||||
if ($view && $button == 'vcal')
|
||||
{
|
||||
$msg = $this->export($content['id'],true);
|
||||
@ -285,7 +275,16 @@ class uiforms extends uical
|
||||
);
|
||||
switch($button)
|
||||
{
|
||||
case 'edit_series':
|
||||
case 'exception': // create an exception in a recuring event
|
||||
$preserv['edit_single'] = $content['start'];
|
||||
$event['recur_type'] = MCAL_RECUR_NONE;
|
||||
foreach(array('recur_enddate','recur_interval','recur_exception','recur_data') as $name)
|
||||
{
|
||||
unset($event[$name]);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'edit':
|
||||
if ($content['recur_type'] != MCAL_RECUR_NONE)
|
||||
{
|
||||
// need to reload start and end of the serie
|
||||
@ -343,9 +342,11 @@ class uiforms extends uical
|
||||
// now we need to add the original start as recur-execption to the series
|
||||
$recur_event = $this->bo->read($event['reference']);
|
||||
$recur_event['recur_exception'][] = $content['edit_single'];
|
||||
unset($recur_event['start']); unset($recur_event['end']); // no update necessary
|
||||
$this->bo->update($recur_event,true); // no conflict check here
|
||||
unset($recur_event);
|
||||
unset($event['edit_single']); // if we further edit it, it's just a single event
|
||||
unset($preserv['edit_single']);
|
||||
}
|
||||
else // conflict or error, we need to reset everything to the state befor we tried to save it
|
||||
{
|
||||
@ -391,21 +392,14 @@ class uiforms extends uical
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
case 'delete_series':
|
||||
if (!$this->bo->check_perms(EGW_ACL_DELETE,$event)) break;
|
||||
if (!$content['edit_series'] && $button == 'delete' && $event['recur_type'] != MCAL_RECUR_NONE) // delete a single event from a recuring event
|
||||
if ($this->bo->delete($event['id'],(int)$content['edit_single']))
|
||||
{
|
||||
$this->bo->delete($event['id'],$event['start']);
|
||||
$msg = lang('Event deleted');
|
||||
$js = 'opener.location.href=\''.addslashes($GLOBALS['egw']->link('/index.php',array(
|
||||
'menuaction' => $content['referer'],
|
||||
'msg' => $msg,
|
||||
))).'\';';
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->bo->delete($event['id']);
|
||||
}
|
||||
$msg = lang('Event deleted');
|
||||
$js = 'opener.location.href=\''.addslashes($GLOBALS['egw']->link('/index.php',array(
|
||||
'menuaction' => $content['referer'],
|
||||
'msg' => $msg,
|
||||
))).'\';';
|
||||
break;
|
||||
|
||||
case 'freetime':
|
||||
@ -596,7 +590,6 @@ class uiforms extends uical
|
||||
{
|
||||
$name = $this->bo->resources[$type]['app'];
|
||||
}
|
||||
// _debug_array($participants);
|
||||
foreach($participants as $id => $status)
|
||||
{
|
||||
$content['participants'][$name][] = $id . (substr($status,1) > 1 ? (':'.substr($status,1)) : '');
|
||||
@ -677,7 +670,15 @@ class uiforms extends uical
|
||||
unset($readonlys['general|description|participants|recurrence|custom|links|alarms']);
|
||||
|
||||
$readonlys['button[save]'] = $readonlys['button[apply]'] = $readonlys['freetime'] = true;
|
||||
$readonlys['link'] = $readonlys['link_to'] = $readonlys['customfields'] = true;
|
||||
$readonlys['link_to'] = $readonlys['customfields'] = true;
|
||||
|
||||
if ($event['recur_type'] != MCAL_RECUR_NONE)
|
||||
{
|
||||
$etpl->set_cell_attribute('button[edit]','help','Edit this series of recuring events');
|
||||
$etpl->set_cell_attribute('button[delete]','help','Delete this series of recuring events');
|
||||
$onclick =& $etpl->get_cell_attribute('button[delete]','onclick');
|
||||
$onclick = str_replace('Delete this event','Delete this series of recuring events',$onclick);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -693,14 +694,12 @@ class uiforms extends uical
|
||||
{
|
||||
$etpl->disable_cells('custom_mail');
|
||||
}
|
||||
if (!($readonlys['button[edit_series]'] = $readonlys['button[edit]'] = !$view || !$this->bo->check_perms(EGW_ACL_EDIT,$event)))
|
||||
if (!($readonlys['button[exception]'] = $readonlys['button[edit]'] = !$view || !$this->bo->check_perms(EGW_ACL_EDIT,$event)))
|
||||
{
|
||||
$readonlys['button[edit_series]'] = $event['recur_type'] == MCAL_RECUR_NONE;
|
||||
}
|
||||
if (!($readonlys['button[delete_series]'] = $readonlys['button[delete]'] = !$event['id'] || !$this->bo->check_perms(EGW_ACL_DELETE,$event)))
|
||||
{
|
||||
$readonlys['button[delete_series]'] = !$view || $event['recur_type'] == MCAL_RECUR_NONE;
|
||||
$readonlys['button[exception]'] = $event['recur_type'] == MCAL_RECUR_NONE;
|
||||
}
|
||||
$readonlys['button[delete]'] = !$event['id'] || !$this->bo->check_perms(EGW_ACL_DELETE,$event);
|
||||
|
||||
if ($event['id'] || $this->bo->check_perms(EGW_ACL_EDIT,$event)) // new event or edit rights to the event ==> allow to add alarm for all users
|
||||
{
|
||||
$sel_options['owner'][0] = lang('All participants');
|
||||
@ -729,7 +728,8 @@ class uiforms extends uical
|
||||
//echo "preserv="; _debug_array($preserv);
|
||||
//echo "readonlys="; _debug_array($readonlys);
|
||||
//echo "sel_options="; _debug_array($sel_options);
|
||||
$GLOBALS['egw_info']['flags']['app_header'] = lang('calendar') . ' - ' . ($event['id'] ? ($view ? lang('View') : lang('Edit')) : lang('Add'));
|
||||
$GLOBALS['egw_info']['flags']['app_header'] = lang('calendar') . ' - ' . ($event['id'] ? ($view ? lang('View') :
|
||||
($content['edit_single'] ? lang('Edit exception') : lang('Edit'))) : lang('Add'));
|
||||
$GLOBALS['egw_info']['flags']['java_script'] .= "<script>\n$js\n</script>\n";
|
||||
$etpl->exec('calendar.uiforms.process_edit',$content,$sel_options,$readonlys,$preserv,$preserv['no_popup'] ? 0 : 2);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// eTemplates for Application 'calendar', generated by soetemplate::dump4setup() 2005-11-23 11:13
|
||||
// eTemplates for Application 'calendar', generated by soetemplate::dump4setup() 2005-11-23 21:53
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
@ -11,6 +11,8 @@ $templ_data[] = array('name' => 'calendar.edit','template' => '','lang' => '','g
|
||||
|
||||
$templ_data[] = array('name' => 'calendar.edit','template' => '','lang' => '','group' => '0','version' => '1.0.1.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:7:{s:2:"h1";s:6:",!@msg";s:2:"c2";s:2:"th";s:1:"A";s:3:"100";s:2:"c4";s:3:"row";s:2:"h4";s:8:",!@owner";s:1:"B";s:3:"300";s:2:"h2";s:2:"28";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:2;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Title";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"name";s:5:"title";s:4:"span";s:3:"all";s:6:"needed";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:63:"General|Description|Participants|Recurrence|Custom|Links|Alarms";s:4:"name";s:63:"general|description|participants|recurrence|custom|links|alarms";s:4:"help";s:158:"Location, Start- and Endtimes, ...|Full description|Participants, Resources, ...|Repeating Event Information|Custom fields|Links, Attachments|Alarm management";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:5:"owner";s:8:"readonly";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:9:"date-time";s:5:"label";s:7:"Updated";s:4:"name";s:8:"modified";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:14:"select-account";s:5:"label";s:2:"by";s:4:"name";s:8:"modifier";s:8:"readonly";s:1:"1";}}}i:5;a:3:{s:1:"A";a:11:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"8";s:4:"span";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:4:"name";s:19:"button[edit_series]";s:5:"label";s:11:"Edit series";s:4:"help";s:35:"Edit this series of recuring events";}i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[edit]";s:5:"label";s:4:"Edit";s:4:"help";s:15:"Edit this event";}i:3;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[copy]";s:5:"label";s:4:"Copy";s:4:"help";s:15:"Copy this event";}i:4;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[vcal]";s:5:"label";s:6:"Export";s:4:"help";s:27:"Download this event as iCal";}i:5;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:4:"help";s:22:"saves the changes made";}i:6;a:4:{s:4:"type";s:6:"button";s:4:"name";s:13:"button[apply]";s:5:"label";s:5:"Apply";s:4:"help";s:17:"apply the changes";}i:7;a:5:{s:4:"type";s:6:"button";s:4:"name";s:14:"button[cancel]";s:5:"label";s:6:"Cancel";s:7:"onclick";s:15:"window.close();";s:4:"help";s:16:"Close the window";}i:8;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:11:"custom_mail";s:5:"label";s:21:"mail all participants";s:4:"help";s:59:"compose a mail to all participants after the event is saved";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:5:"align";s:5:"right";s:4:"size";s:1:"2";i:1;a:5:{s:4:"type";s:6:"button";s:4:"name";s:21:"button[delete_series]";s:5:"label";s:13:"Delete series";s:4:"help";s:37:"Delete this series of recuring events";s:7:"onclick";s:56:"return confirm(\'Delete this series of recuring events\');";}i:2;a:5:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:14:"button[delete]";s:4:"help";s:17:"Delete this event";s:7:"onclick";s:36:"return confirm(\'Delete this event\');";}}}}s:4:"rows";i:5;s:4:"cols";i:3;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1118477069',);
|
||||
|
||||
$templ_data[] = array('name' => 'calendar.edit','template' => '','lang' => '','group' => '0','version' => '1.0.1.003','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:7:{s:2:"h1";s:6:",!@msg";s:2:"c2";s:2:"th";s:1:"A";s:3:"100";s:2:"c4";s:3:"row";s:2:"h4";s:8:",!@owner";s:1:"B";s:3:"300";s:2:"h2";s:2:"28";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:2;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Title";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"name";s:5:"title";s:4:"span";s:3:"all";s:6:"needed";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:63:"General|Description|Participants|Recurrence|Custom|Links|Alarms";s:4:"name";s:63:"general|description|participants|recurrence|custom|links|alarms";s:4:"help";s:158:"Location, Start- and Endtimes, ...|Full description|Participants, Resources, ...|Repeating Event Information|Custom fields|Links, Attachments|Alarm management";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:5:"owner";s:8:"readonly";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:9:"date-time";s:5:"label";s:7:"Updated";s:4:"name";s:8:"modified";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:14:"select-account";s:5:"label";s:2:"by";s:4:"name";s:8:"modifier";s:8:"readonly";s:1:"1";}}}i:5;a:3:{s:1:"A";a:11:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"8";s:4:"span";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[edit]";s:5:"label";s:4:"Edit";s:4:"help";s:15:"Edit this event";}i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:17:"button[exception]";s:5:"label";s:9:"Exception";s:4:"help";s:42:"Create an exception at this recuring event";}i:3;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[copy]";s:5:"label";s:4:"Copy";s:4:"help";s:15:"Copy this event";}i:4;a:4:{s:4:"type";s:6:"button";s:4:"name";s:12:"button[vcal]";s:5:"label";s:6:"Export";s:4:"help";s:27:"Download this event as iCal";}i:5;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:4:"help";s:22:"saves the changes made";}i:6;a:4:{s:4:"type";s:6:"button";s:4:"name";s:13:"button[apply]";s:5:"label";s:5:"Apply";s:4:"help";s:17:"apply the changes";}i:7;a:5:{s:4:"type";s:6:"button";s:4:"name";s:14:"button[cancel]";s:5:"label";s:6:"Cancel";s:7:"onclick";s:15:"window.close();";s:4:"help";s:16:"Close the window";}i:8;a:4:{s:4:"type";s:8:"checkbox";s:4:"name";s:11:"custom_mail";s:5:"label";s:21:"mail all participants";s:4:"help";s:59:"compose a mail to all participants after the event is saved";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:6:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:14:"button[delete]";s:4:"help";s:17:"Delete this event";s:7:"onclick";s:36:"return confirm(\'Delete this event\');";s:5:"align";s:5:"right";}}}s:4:"rows";i:5;s:4:"cols";i:3;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1132776053',);
|
||||
|
||||
$templ_data[] = array('name' => 'calendar.edit.alarms','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:3:{i:0;a:5:{s:2:"c1";s:3:"row";s:1:"A";s:2:"95";s:2:"h1";s:16:"20,@no_add_alarm";s:2:"c2";s:4:",top";s:2:"h2";s:8:",!@alarm";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"before the event";}s:1:"B";a:10:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"8";i:1;a:3:{s:4:"type";s:13:"select-number";s:4:"size";s:4:",0,7";s:4:"name";s:15:"new_alarm[days]";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"size";s:18:",,,new_alarm[days]";s:5:"label";s:4:"days";}i:3;a:3:{s:4:"type";s:13:"select-number";s:4:"name";s:16:"new_alarm[hours]";s:4:"size";s:5:",0,23";}i:4;a:3:{s:4:"type";s:5:"label";s:4:"size";s:19:",,,new_alarm[hours]";s:5:"label";s:5:"hours";}i:5;a:3:{s:4:"type";s:13:"select-number";s:4:"name";s:15:"new_alarm[mins]";s:4:"size";s:7:",0,55,5";}i:6;a:3:{s:4:"type";s:5:"label";s:4:"size";s:18:",,,new_alarm[mins]";s:5:"label";s:7:"Minutes";}i:7;a:5:{s:4:"type";s:6:"select";s:4:"name";s:16:"new_alarm[owner]";s:7:"no_lang";s:1:"1";s:5:"label";s:3:"for";s:4:"help";s:31:"Select who should get the alarm";}i:8;a:3:{s:4:"type";s:6:"button";s:4:"name";s:17:"button[add_alarm]";s:5:"label";s:9:"Add alarm";}}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Alarms";}s:1:"B";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";}i:1;a:5:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Time";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"before the event";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"All participants";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";}}i:2;a:5:{s:1:"A";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:12:"${row}[time]";s:8:"readonly";s:1:"1";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:4:"name";s:14:"${row}[offset]";s:7:"no_lang";s:1:"1";}s:1:"C";a:4:{s:4:"type";s:8:"checkbox";s:5:"align";s:6:"center";s:4:"name";s:11:"${row}[all]";s:8:"readonly";s:1:"1";}s:1:"D";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:13:"${row}[owner]";s:8:"readonly";s:1:"1";}s:1:"E";a:7:{s:4:"type";s:6:"button";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:5:"align";s:6:"center";s:4:"name";s:27:"delete_alarm[$row_cont[id]]";s:4:"help";s:17:"Delete this alarm";s:7:"onclick";s:36:"return confirm(\'Delete this alarm\');";}}}s:4:"rows";i:2;s:4:"cols";i:5;s:4:"name";s:5:"alarm";s:7:"options";a:0:{}}}}s:4:"rows";i:2;s:4:"cols";i:2;s:4:"size";s:17:"100%,200,,,,,auto";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' => '1118780740',);
|
||||
|
||||
$templ_data[] = array('name' => 'calendar.edit.custom','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:2:{i:0;a:1:{s:2:"c1";s:4:",top";}i:1;a:1:{s:1:"A";a:2:{s:4:"type";s:12:"customfields";s:4:"name";s:12:"customfields";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:17:"100%,200,,,,,auto";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' => '1118737582',);
|
||||
|
@ -45,6 +45,7 @@ copy of: calendar de Kopie von:
|
||||
copy this event calendar de Kopiert diesen Termin
|
||||
countries calendar de Länder
|
||||
country calendar de Land
|
||||
create an exception at this recuring event calendar de Erzeugt eine Ausnahme an diesem wiederholenden Termin
|
||||
create new links calendar de Neue Verknüpfung erstellen
|
||||
csv calendar de CSV
|
||||
csv-fieldname calendar de CSV-Feldname
|
||||
@ -76,6 +77,7 @@ do you wish to autoload calendar holidays files dynamically? admin de Sollen die
|
||||
download calendar de Herunterladen
|
||||
download this event as ical calendar de Termin als iCal herunterladen
|
||||
duration of the meeting calendar de Dauer des Termins
|
||||
edit exception calendar de Ausname bearbeiten
|
||||
edit series calendar de Serie bearbeiten
|
||||
edit this event calendar de Diesen Termin bearbeiten
|
||||
edit this series of recuring events calendar de Diese Serie von wiederholenden Terminen bearbeiten
|
||||
@ -96,6 +98,7 @@ event deleted calendar de Termin gel
|
||||
event details follow calendar de Details zum Termin folgen
|
||||
event saved calendar de Termin gespeichert
|
||||
event will occupy the whole day calendar de Termin nimmt den ganzen Tag ein
|
||||
exception calendar de Ausnahme
|
||||
exceptions calendar de Ausnahmen
|
||||
existing links calendar de Bestehende Verknüpfungen
|
||||
export calendar de Exportieren
|
||||
|
@ -45,6 +45,7 @@ copy of: calendar en Copy of:
|
||||
copy this event calendar en Copy this event
|
||||
countries calendar en Countries
|
||||
country calendar en Country
|
||||
create an exception at this recuring event calendar en Create an exception at this recuring event
|
||||
create new links calendar en Create new links
|
||||
csv calendar en CSV
|
||||
csv-fieldname calendar en CSV-Fieldname
|
||||
@ -76,6 +77,7 @@ do you wish to autoload calendar holidays files dynamically? admin en Do you wis
|
||||
download calendar en Download
|
||||
download this event as ical calendar en Download this event as iCal
|
||||
duration of the meeting calendar en Duration of the meeting
|
||||
edit exception calendar en Edit exception
|
||||
edit series calendar en Edit series
|
||||
edit this event calendar en Edit this event
|
||||
edit this series of recuring events calendar en Edit this series of recuring events
|
||||
@ -96,6 +98,7 @@ event deleted calendar en Event deleted
|
||||
event details follow calendar en Event Details follow
|
||||
event saved calendar en Event saved
|
||||
event will occupy the whole day calendar en Event will occupy the whole day
|
||||
exception calendar en Exception
|
||||
exceptions calendar en Exceptions
|
||||
existing links calendar en Existing links
|
||||
export calendar en Export
|
||||
|
@ -57,7 +57,7 @@
|
||||
</rows>
|
||||
</grid>
|
||||
</template>
|
||||
<template id="calendar.edit.participants" template="" lang="" group="0" version="1.0.1.002">
|
||||
<template id="calendar.edit.participants" template="" lang="" group="0" version="1.0.1.003">
|
||||
<grid width="100%" height="200" class="row_on" overflow="auto">
|
||||
<columns>
|
||||
<column width="95"/>
|
||||
@ -68,7 +68,7 @@
|
||||
<rows>
|
||||
<row class="row" valign="top" disabled="@view">
|
||||
<description options=",,,participants" value="Participants"/>
|
||||
<listbox type="select-account" rows="14" id="participants[accounts]"/>
|
||||
<listbox type="select-account" rows="14" options="calendar+" id="participants[accounts]"/>
|
||||
<description value="Resources" align="right"/>
|
||||
<resources_select options="14" id="participants[resources]"/>
|
||||
</row>
|
||||
@ -250,7 +250,7 @@
|
||||
</rows>
|
||||
</grid>
|
||||
</template>
|
||||
<template id="calendar.edit" template="" lang="" group="0" version="1.0.1.002">
|
||||
<template id="calendar.edit" template="" lang="" group="0" version="1.0.1.003">
|
||||
<grid width="100%">
|
||||
<columns>
|
||||
<column width="100"/>
|
||||
@ -303,8 +303,8 @@
|
||||
</row>
|
||||
<row>
|
||||
<hbox span="2">
|
||||
<button id="button[edit_series]" label="Edit series" statustext="Edit this series of recuring events"/>
|
||||
<button id="button[edit]" label="Edit" statustext="Edit this event"/>
|
||||
<button id="button[exception]" label="Exception" statustext="Create an exception at this recuring event"/>
|
||||
<button id="button[copy]" label="Copy" statustext="Copy this event"/>
|
||||
<button id="button[vcal]" label="Export" statustext="Download this event as iCal"/>
|
||||
<button label="Save" id="button[save]" statustext="saves the changes made"/>
|
||||
@ -312,10 +312,7 @@
|
||||
<button id="button[cancel]" label="Cancel" onclick="window.close();" statustext="Close the window"/>
|
||||
<checkbox id="custom_mail" label="mail all participants" statustext="compose a mail to all participants after the event is saved"/>
|
||||
</hbox>
|
||||
<hbox align="right">
|
||||
<button id="button[delete_series]" label="Delete series" statustext="Delete this series of recuring events" onclick="return confirm('Delete this series of recuring events');"/>
|
||||
<button label="Delete" id="button[delete]" statustext="Delete this event" onclick="return confirm('Delete this event');"/>
|
||||
</hbox>
|
||||
<button label="Delete" id="button[delete]" statustext="Delete this event" onclick="return confirm('Delete this event');" align="right"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
|
Loading…
Reference in New Issue
Block a user