forked from extern/egroupware
Add an option to keep deleted events, only an admin can purge them
This commit is contained in:
parent
a6cc1cfe18
commit
cb5054f2e4
@ -1160,7 +1160,10 @@ class calendar_boupdate extends calendar_bo
|
|||||||
|
|
||||||
if (!$recur_date || $event['recur_type'] == MCAL_RECUR_NONE)
|
if (!$recur_date || $event['recur_type'] == MCAL_RECUR_NONE)
|
||||||
{
|
{
|
||||||
$this->so->delete($cal_id);
|
$config = config::read('phpgwapi');
|
||||||
|
if(!$config['calendar_delete_history'] || $GLOBALS['egw']->contenthistory->getTSforAction('calendar', $cal_id, 'delete')) {
|
||||||
|
$this->so->delete($cal_id);
|
||||||
|
}
|
||||||
$GLOBALS['egw']->contenthistory->updateTimeStamp('calendar',$cal_id,'delete',time());
|
$GLOBALS['egw']->contenthistory->updateTimeStamp('calendar',$cal_id,'delete',time());
|
||||||
|
|
||||||
// delete all links to the event
|
// delete all links to the event
|
||||||
|
@ -380,8 +380,13 @@ class calendar_so
|
|||||||
}
|
}
|
||||||
$where[] = '('.implode(' OR ',$to_or).')';
|
$where[] = '('.implode(' OR ',$to_or).')';
|
||||||
|
|
||||||
|
if($filter != 'deleted') {
|
||||||
|
$where[] = "sync_deleted IS NULL";
|
||||||
|
}
|
||||||
switch($filter)
|
switch($filter)
|
||||||
{
|
{
|
||||||
|
case 'deleted':
|
||||||
|
$where[] = "sync_deleted IS NOT NULL"; break;
|
||||||
case 'unknown':
|
case 'unknown':
|
||||||
$where[] = "cal_status='U'"; break;
|
$where[] = "cal_status='U'"; break;
|
||||||
case 'accepted':
|
case 'accepted':
|
||||||
@ -417,7 +422,7 @@ class calendar_so
|
|||||||
// changed the original OR in the query into a union, to speed up the query execution under MySQL 5
|
// changed the original OR in the query into a union, to speed up the query execution under MySQL 5
|
||||||
$select = array(
|
$select = array(
|
||||||
'table' => $this->cal_table,
|
'table' => $this->cal_table,
|
||||||
'join' => "JOIN $this->dates_table ON $this->cal_table.cal_id=$this->dates_table.cal_id JOIN $this->user_table ON $this->cal_table.cal_id=$this->user_table.cal_id LEFT JOIN $this->repeats_table ON $this->cal_table.cal_id=$this->repeats_table.cal_id",
|
'join' => "JOIN $this->dates_table ON $this->cal_table.cal_id=$this->dates_table.cal_id JOIN $this->user_table ON $this->cal_table.cal_id=$this->user_table.cal_id LEFT JOIN $this->repeats_table ON $this->cal_table.cal_id=$this->repeats_table.cal_id JOIN egw_api_content_history ON egw_api_content_history.sync_appname = 'calendar' AND egw_api_content_history.sync_contentid=$this->cal_table.cal_id",
|
||||||
'cols' => $cols,
|
'cols' => $cols,
|
||||||
'where' => $where,
|
'where' => $where,
|
||||||
'app' => 'calendar',
|
'app' => 'calendar',
|
||||||
|
@ -719,6 +719,13 @@ class calendar_ui
|
|||||||
list($label,$title) = $label;
|
list($label,$title) = $label;
|
||||||
$options .= '<option value="'.$value.'"'.($this->filter == $value ? ' selected="selected"' : '').' title="'.$title.'">'.$label.'</options>'."\n";
|
$options .= '<option value="'.$value.'"'.($this->filter == $value ? ' selected="selected"' : '').' title="'.$title.'">'.$label.'</options>'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add in deleted for admins
|
||||||
|
$config = config::read('phpgwapi');
|
||||||
|
if($config['calendar_delete_history'] && $GLOBALS['egw_info']['user']['apps']['admin']) {
|
||||||
|
$options .= '<option value="deleted"'.($this->filter == 'deleted' ? ' selected="selected"' : '').' title="'.lang('Show events that have been deleted').'">'.lang('Deleted').'</options>'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
$file[] = $this->_select_box('Filter','filter',$options,$baseurl ? $baseurl.'&filter=' : '');
|
$file[] = $this->_select_box('Filter','filter',$options,$baseurl ? $baseurl.'&filter=' : '');
|
||||||
|
|
||||||
// Calendarselection: User or Group
|
// Calendarselection: User or Group
|
||||||
|
@ -56,6 +56,18 @@
|
|||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr class="th">
|
||||||
|
<td colspan="2"> <b>{lang_History_logging}</b></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row_on">
|
||||||
|
<td> {lang_Prevent_deleting_of_entries}</td>
|
||||||
|
<td>
|
||||||
|
<select name="newsettings[calendar_delete_history]">
|
||||||
|
<option value="">{lang_No}</option>
|
||||||
|
<option value="history"{selected_calendar_delete_history_history}>{lang_Yes,_only_admins_can_purge_deleted_items}</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr class="th">
|
<tr class="th">
|
||||||
<td colspan="2"><b>{lang_Birthdays}</b></td>
|
<td colspan="2"><b>{lang_Birthdays}</b></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
Loading…
Reference in New Issue
Block a user