mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-03 04:29:28 +01:00
Context menu for InfoLog: NOT YET COMPLETET, SOME STUFF WILL NOT WORK!
ToDo: - implement view subs or parent from context - test all context actions (some do not work) - test CSS based disabling of actions - change delegation or links popup not yet working (just an alert in index.js) - delete of entries with subs (serverside confirmation displaying subs) probably not working
This commit is contained in:
parent
87c960b6ea
commit
1ef6edd5e8
@ -128,7 +128,7 @@ class infolog_bo
|
||||
'own-open-overdue' => 'own overdue',
|
||||
'own-upcoming' => 'own upcoming',
|
||||
'own-open-upcoming' => 'own open and upcoming',
|
||||
'open-today' => 'open',
|
||||
'open-today' => 'open(status)',
|
||||
'open-overdue' => 'overdue',
|
||||
'upcoming' => 'upcoming',
|
||||
'open-upcoming' => 'open and upcoming',
|
||||
|
@ -91,7 +91,7 @@ class infolog_ui
|
||||
*/
|
||||
function __construct()
|
||||
{
|
||||
if ($GLOBALS['egw_info']['flags']['currentapp'] != 'infolog') $GLOBALS['egw']->translation->add_app('infolog');
|
||||
if ($GLOBALS['egw_info']['flags']['currentapp'] != 'infolog') translation::add_app('infolog');
|
||||
$this->bo = new infolog_bo();
|
||||
|
||||
$this->tmpl = new etemplate();
|
||||
@ -161,8 +161,11 @@ class infolog_ui
|
||||
$info['info_percent'] = (int) $info['info_percent'].'%';
|
||||
$editrights = $this->bo->check_access($info,EGW_ACL_EDIT);
|
||||
$isresposible = $this->bo->is_responsible($info);
|
||||
$readonlys["edit[$id]"] = !($editrights || // edit rights or more then standard responsible rights
|
||||
$isresposible && array_diff($this->bo->responsible_edit,array('info_status','info_percent','info_datecompleted')));
|
||||
if (($readonlys["edit[$id]"] = !($editrights || // edit rights or more then standard responsible rights
|
||||
$isresposible && array_diff($this->bo->responsible_edit,array('info_status','info_percent','info_datecompleted')))))
|
||||
{
|
||||
$info['class'] .= 'rowNoEdit ';
|
||||
}
|
||||
$readonlys["close[$id]"] = $done || ($readonlys["edit_status[$id]"] =
|
||||
!($editrights || $isresposible));
|
||||
$readonlys["close_all[$id]"] = ($done) || !$info['info_anz_subs'] || ($readonlys["edit_status[$id]"] =
|
||||
@ -172,11 +175,21 @@ class infolog_ui
|
||||
$readonlys["edit_status[$id]"] = $readonlys["edit_percent[$id]"] =
|
||||
!$editrights && !$isresposible &&
|
||||
!$this->bo->check_access($info,EGW_ACL_UNDELETE); // undelete is handled like status edit
|
||||
$readonlys["delete[$id]"] = !$this->bo->check_access($info,EGW_ACL_DELETE);
|
||||
$readonlys["sp[$id]"] = !$this->bo->check_access($info,EGW_ACL_ADD);
|
||||
if (($readonlys["delete[$id]"] = !$this->bo->check_access($info,EGW_ACL_DELETE)))
|
||||
{
|
||||
$info['class'] .= 'rowNoDelete ';
|
||||
}
|
||||
if (($readonlys["sp[$id]"] = !$this->bo->check_access($info,EGW_ACL_ADD)))
|
||||
{
|
||||
$info['class'] .= 'rowNoSubs ';
|
||||
}
|
||||
if ($info['info_id_parent']) $info['class'] .= 'rowHasParent ';
|
||||
if ($info['info_anz_subs'] > 0) $info['class'] .= 'rowHasSubs ';
|
||||
|
||||
$readonlys["view[$id]"] = $info['info_anz_subs'] < 1;
|
||||
$readonlys['view[0]'] = True; // no parent
|
||||
$readonlys["timesheet[$id]"] = !isset($GLOBALS['egw_info']['user']['apps']['timesheet']);
|
||||
$readonlys["document[$id]"] = !$this->prefs['default_document'];
|
||||
|
||||
if (!$show_links) $show_links = $this->prefs['show_links'];
|
||||
if (($show_links != 'none' && $show_links != 'no_describtion' ||
|
||||
@ -233,56 +246,6 @@ class infolog_ui
|
||||
return $info;
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves state of the infolog list in the session
|
||||
*
|
||||
* @param array $values
|
||||
*/
|
||||
function save_sessiondata($values)
|
||||
{
|
||||
$for = @$values['session_for'] ? $values['session_for'] : @$this->called_by;
|
||||
//echo "<p>$for: ".__METHOD__.'('.print_r($values,True).") called_by='$this->called_by', for='$for'<br />".function_backtrace()."</p>\n";
|
||||
|
||||
$arrayToStore = array(
|
||||
'search' => $values['search'],
|
||||
'start' => $values['start'],
|
||||
'num_rows' => $values['num_rows'],
|
||||
'filter' => $values['filter'],
|
||||
'filter2' => $values['filter2'],
|
||||
'cat_id' => $values['cat_id'],
|
||||
'order' => $values['order'],
|
||||
'sort' => $values['sort'],
|
||||
'action' => $values['action'],
|
||||
'action_id' => $values['action_id'],
|
||||
'action_title' => $values['action_title'],
|
||||
'col_filter' => $values['col_filter'],
|
||||
'session_for' => $for
|
||||
);
|
||||
if ($values['filter']=='bydate')
|
||||
{
|
||||
$arrayToStore['startdate'] = $values['startdate'];
|
||||
$arrayToStore['enddate'] = $values['enddate'];
|
||||
}
|
||||
$GLOBALS['egw']->session->appsession($for.'session_data','infolog',$arrayToStore);
|
||||
}
|
||||
|
||||
/**
|
||||
* reads list-state from the session
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function read_sessiondata()
|
||||
{
|
||||
$values = $GLOBALS['egw']->session->appsession(@$this->called_by.'session_data','infolog');
|
||||
if (!@$values['session_for'] && $this->called_by)
|
||||
{
|
||||
$values['session_for'] = $this->called_by;
|
||||
$this->save_sessiondata($values);
|
||||
}
|
||||
//echo "<p>called_by='$this->called_by': ".__METHOD__."() = ".print_r($values,True)."</p>\n";
|
||||
return $values;
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for nextmatch widget
|
||||
*
|
||||
@ -293,6 +256,11 @@ class infolog_ui
|
||||
*/
|
||||
function get_rows(&$query,&$rows,&$readonlys)
|
||||
{
|
||||
if (!$query['csv_export'])
|
||||
{
|
||||
egw_cache::setSession('infolog', $query['session_for'].'session_data', $query);
|
||||
$query['actions'] = $this->get_actions($query);
|
||||
}
|
||||
$orginal_colfilter = $query['col_filter'];
|
||||
if ($query['filter'] == 'bydate')
|
||||
{
|
||||
@ -300,8 +268,6 @@ class infolog_ui
|
||||
$GLOBALS['egw']->js->set_onload("set_style_by_class('table','custom_hide','visibility','visible');");
|
||||
if (is_int($query['startdate'])) $query['col_filter'][] = 'info_startdate >= '.$GLOBALS['egw']->db->quote($query['startdate']);
|
||||
if (is_int($query['enddate'])) $query['col_filter'][] = 'info_startdate <= '.$GLOBALS['egw']->db->quote($query['enddate']+(60*60*24)-1);
|
||||
//unset($query['startdate']);
|
||||
//unset($query['enddate']);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -309,17 +275,11 @@ class infolog_ui
|
||||
unset($query['startdate']);
|
||||
unset($query['enddate']);
|
||||
}
|
||||
//_debug_array($query);
|
||||
//_debug_array($query['col_filter']);
|
||||
|
||||
//echo "<p>infolog_ui.get_rows(start=$query[start],search='$query[search]',filter='$query[filter]',cat_id=$query[cat_id],action='$query[action]/$query[action_id]',col_filter=".print_r($query['col_filter'],True).",sort=$query[sort],order=$query[order])</p>\n";
|
||||
if (!isset($query['start'])) $query['start'] = 0;
|
||||
|
||||
if (!$query['csv_export'])
|
||||
{
|
||||
$this->save_sessiondata($query);
|
||||
}
|
||||
else
|
||||
if ($query['csv_export'])
|
||||
{
|
||||
$query['csv_fields'] = $this->csv_export_fields($query['col_filter']['info_type']);
|
||||
}
|
||||
@ -412,10 +372,16 @@ class infolog_ui
|
||||
}
|
||||
}
|
||||
$rows[] = $info;
|
||||
$readonlys["document[{$info['info_id']}]"] = !$this->prefs['default_document'];
|
||||
}
|
||||
unset($links);
|
||||
|
||||
if ($query['action'] == 'sp' && ($main = $this->bo->read($query['action_id'])))
|
||||
{
|
||||
$main = $this->get_info($main, $readonlys);
|
||||
$main['class'] .= 'th ';
|
||||
array_unshift($rows, $main);
|
||||
}
|
||||
|
||||
if ($query['cat_id']) $rows['no_cat_id'] = true;
|
||||
if ($query['no_actions']) $rows['no_actions'] = true;
|
||||
$rows['no_timesheet'] = !isset($GLOBALS['egw_info']['user']['apps']['timesheet']);
|
||||
@ -459,7 +425,7 @@ class infolog_ui
|
||||
{
|
||||
$GLOBALS['egw_info']['flags']['app_header'] .= ' - '.lang($this->filters[$query['filter']]);
|
||||
}
|
||||
if ($query['action'] && ($title = $query['action_title'] ? $query['action_title'] : egw_link::title($query['action'],$query['action_id'])))
|
||||
if ($query['action'] && ($title = $query['action_title'] ? $query['action_title'] : egw_link::title($query['action']=='sp'?'infolog':$query['action'],$query['action_id'])))
|
||||
{
|
||||
$GLOBALS['egw_info']['flags']['app_header'] .= ': '.$title;
|
||||
}
|
||||
@ -507,23 +473,23 @@ class infolog_ui
|
||||
if (is_array($values) && isset($values['nm']['rows']['document'])) // handle insert in default document button like an action
|
||||
{
|
||||
list($id) = @each($values['nm']['rows']['document']);
|
||||
$values['multi_action'] = 'document';
|
||||
$values['nm']['rows']['checked'] = array($id);
|
||||
$values['nm']['action'] = 'document';
|
||||
$values['nm']['selected'] = array($id);
|
||||
}
|
||||
if (is_array($values) && isset($values['multi_action']) && $values['multi_action'] !== '')
|
||||
if (is_array($values) && !empty($values['nm']['action']))
|
||||
{
|
||||
if (!count($values['nm']['rows']['checked']) && !$values['use_all'])
|
||||
if (!count($values['nm']['selected']) && !$values['nm']['select_all'])
|
||||
{
|
||||
$msg = lang('You need to select some entries first');
|
||||
}
|
||||
else
|
||||
{
|
||||
// Some processing to add values in for links and cats
|
||||
$multi_action = $values['multi_action'];
|
||||
$multi_action = $values['nm']['action'];
|
||||
// Action has an additional action - add / delete, etc. Buttons named <multi-action>_action[action_name]
|
||||
if(in_array($multi_action, array('link', 'responsible')))
|
||||
{
|
||||
$values['multi_action'] .= '_' . key($values[$multi_action . '_action']);
|
||||
$values['nm']['action'] .= '_' . key($values[$multi_action . '_action']);
|
||||
}
|
||||
// Action has a parameter - cat_id, percent, etc
|
||||
if (in_array($multi_action, array('link', 'cat', 'completion', 'responsible')))
|
||||
@ -532,10 +498,10 @@ class infolog_ui
|
||||
{
|
||||
$values[$multi_action] = implode(',',$values[$multi_action]);
|
||||
}
|
||||
$values['multi_action'] .= '_' . $values[$multi_action];
|
||||
$values['nm']['action'] .= '_' . $values[$multi_action];
|
||||
}
|
||||
if ($this->action($values['multi_action'],$values['nm']['rows']['checked'],$values['use_all'],
|
||||
$success,$failed,$action_msg,false,$msg, $values['no_notifications']))
|
||||
if ($this->action($values['nm']['action'], $values['nm']['selected'], $values['nm']['select_all'],
|
||||
$success, $failed, $action_msg, $values['nm'], $msg, $values['nm']['checkboxes']['no_notifications']))
|
||||
{
|
||||
$msg .= lang('%1 entries %2',$success,$action_msg);
|
||||
}
|
||||
@ -543,42 +509,29 @@ class infolog_ui
|
||||
{
|
||||
$msg .= lang('%1 entries %2, %3 failed because of insufficent rights !!!',$success,$action_msg,$failed);
|
||||
}
|
||||
unset($values['multi_action']);
|
||||
unset($values['use_all']);
|
||||
unset($values['nm']['action']);
|
||||
unset($values['nm']['select_all']);
|
||||
}
|
||||
$values['msg'] = $msg;
|
||||
}
|
||||
if(isset($values['nm']['rows'])) unset($values['nm']['rows']['checked']); // Can cause problems lower, no longer needed
|
||||
if (!$action)
|
||||
{
|
||||
$action = $values['action'] ? $values['action'] : get_var('action',array('POST','GET'));
|
||||
$action_id = $values['action_id'] ? $values['action_id'] : get_var('action_id',array('POST','GET'));
|
||||
$action_title = $values['action_title'] ? $values['action_title'] : get_var('action_title',array('POST','GET'));
|
||||
|
||||
if ($values === 'reset_action_view') // only read action from session, if not called by index.php
|
||||
{
|
||||
$session = $this->read_sessiondata();
|
||||
$session['action'] = $action = '';
|
||||
$session['action_id'] = $action_id = 0;
|
||||
$session['action_title'] = $action_title = '';
|
||||
$this->save_sessiondata($session);
|
||||
unset($session);
|
||||
}
|
||||
elseif (!$action)
|
||||
{
|
||||
$session = $this->read_sessiondata();
|
||||
$action = $session['action'];
|
||||
$action_id = $session['action_id'];
|
||||
$action_title = $session['action_title'];
|
||||
// no action -> try to restore the previous colfilter
|
||||
$colfilter = $session['col_filter'];
|
||||
unset($session);
|
||||
}
|
||||
}
|
||||
//echo "<p>".__METHOD__."(action='$action/$action_id',called_as='$called_as/$values[referer]',own_referer='$own_referer') values=\n"; _debug_array($values);
|
||||
if (!is_array($values))
|
||||
{
|
||||
$values = array('nm' => $this->read_sessiondata());
|
||||
$nm = egw_cache::getSession('infolog', $this->called_by.'session_data');
|
||||
if ($values === 'reset_action_view')
|
||||
{
|
||||
$nm['action'] = $action = '';
|
||||
$nm['action_id'] = $action_id = 0;
|
||||
$nm['action_title'] = $action_title = '';
|
||||
}
|
||||
$values = array('nm' => $nm);
|
||||
|
||||
if (isset($_GET['filter']) && $_GET['filter'] != 'default' || !isset($values['nm']['filter']) && !$this->called_by)
|
||||
{
|
||||
$values['nm']['filter'] = $_GET['filter'] && $_GET['filter'] != 'default' ? $_GET['filter'] :
|
||||
@ -588,19 +541,25 @@ class infolog_ui
|
||||
{
|
||||
$values['nm']['order'] = 'info_datemodified';
|
||||
$values['nm']['sort'] = 'DESC';
|
||||
$values['nm']['row_id'] = 'info_id';
|
||||
}
|
||||
|
||||
if (!$values['nm']['session_for'] && $this->called_by) $values['nm']['session_for'] = $this->called_by;
|
||||
|
||||
$values['msg'] = $_GET['msg'];
|
||||
$values['action'] = $action;
|
||||
$values['action_id'] = $action_id;
|
||||
$values['action_title'] = $action_title;
|
||||
}
|
||||
if($_GET['search']) {
|
||||
$values['nm']['search'] = $_GET['search'];
|
||||
}
|
||||
if($_GET['search']) $values['nm']['search'] = $_GET['search'];
|
||||
|
||||
if ($values['nm']['add'])
|
||||
{
|
||||
$values['add'] = $values['nm']['add'];
|
||||
unset($values['nm']['add']);
|
||||
}
|
||||
unset($values['nm']['rows']['checked']); // not longer used, but hides button actions
|
||||
|
||||
if ($values['add'] || $values['cancel'] || isset($values['nm']['rows']) || isset($values['main']))
|
||||
{
|
||||
if ($values['add'])
|
||||
@ -610,10 +569,9 @@ class infolog_ui
|
||||
}
|
||||
elseif ($values['cancel'] && $own_referer)
|
||||
{
|
||||
$session = $this->read_sessiondata();
|
||||
unset($session['action']);
|
||||
unset($session['action_id']);
|
||||
$this->save_sessiondata($session);
|
||||
unset($values['nm']['action']);
|
||||
unset($values['nm']['action_id']);
|
||||
egw_cache::setSession('infolog', $values['nm']['session_for'].'session_data', $values['nm']);
|
||||
$this->tmpl->location($own_referer);
|
||||
}
|
||||
else
|
||||
@ -621,11 +579,9 @@ class infolog_ui
|
||||
list($do,$do_id) = isset($values['main']) ? each($values['main']) : @each($values['nm']['rows']);
|
||||
list($do_id) = @each($do_id);
|
||||
//echo "<p>infolog::index: do='$do/$do_id', referer="; _debug_array($called_as);
|
||||
// todo: move this to actions(), interactive delete only if subs
|
||||
switch($do)
|
||||
{
|
||||
case 'edit':
|
||||
case 'edit_status':
|
||||
return $this->edit($do_id,$action,$action_id,'',$called_as);
|
||||
case 'delete':
|
||||
if (!($values['msg'] = $this->delete($do_id,$called_as,$called_as ? '' : 'index'))) return;
|
||||
// did we deleted the entries, whos subentries we are showing?
|
||||
@ -647,8 +603,6 @@ class infolog_ui
|
||||
case 'close_all':
|
||||
$this->close($do_id,$called_as,$closesingle);
|
||||
break;
|
||||
case 'sp':
|
||||
return $this->edit(0,'sp',$do_id,'',$called_as);
|
||||
case 'view':
|
||||
$value = array();
|
||||
$action = 'sp';
|
||||
@ -671,7 +625,6 @@ class infolog_ui
|
||||
$action_id = 0;
|
||||
break;
|
||||
}
|
||||
$values['main'][1] = $this->get_info($action_id,$readonlys['main']);
|
||||
break;
|
||||
}
|
||||
$readonlys['cancel'] = $action != 'sp';
|
||||
@ -724,10 +677,11 @@ class infolog_ui
|
||||
$persist['called_as'] = $called_as;
|
||||
$persist['own_referer'] = $own_referer;
|
||||
$values['nm']['csv_fields'] = true; // get set in get_rows to not include all custom fields
|
||||
$persist['nm'] = array(
|
||||
'sort' => $values['nm']['sort'],
|
||||
'order' => $values['nm']['order'],
|
||||
);
|
||||
|
||||
// store whole $values[nm] in etemplate request
|
||||
unset($values['nm']['rows']);
|
||||
$persist['nm'] = $values['nm'];
|
||||
|
||||
if (!$called_as)
|
||||
{
|
||||
$GLOBALS['egw_info']['flags']['params']['manual'] = array('page' => 'ManualInfologIndex');
|
||||
@ -748,22 +702,25 @@ class infolog_ui
|
||||
$sel_options = array(
|
||||
'info_type' => $this->bo->enums['type'],
|
||||
'pm_id' => array(lang('No project')),
|
||||
'multi_action' => array(
|
||||
'close' => lang('Close'),
|
||||
'delete' => lang('Delete'),
|
||||
'cat' => lang('Change category'),
|
||||
'link' => lang('Add or delete links'),
|
||||
'completion' => lang('Change completion'),
|
||||
'responsible' => lang('Change responsible'),
|
||||
)
|
||||
);
|
||||
|
||||
// Add in multi-infolog actions
|
||||
// Types
|
||||
foreach($this->bo->enums['type'] as $type => $label)
|
||||
{
|
||||
$types['type_'.$type] = $label;
|
||||
egw_framework::validate_file('.','index','infolog');
|
||||
|
||||
return $this->tmpl->exec('infolog.infolog_ui.index',$values,$sel_options,$readonlys,$persist,$return_html ? -1 : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get actions / context menu items
|
||||
*
|
||||
* @param array $query
|
||||
* @return array see nextmatch_widget::get_actions()
|
||||
*/
|
||||
private function get_actions(array $query)
|
||||
{
|
||||
for($i = 0; $i <= 100; $i += 10) $percent[$i] = $i.'%';
|
||||
|
||||
// Types
|
||||
$types = $this->bo->enums['type'];
|
||||
if ($this->bo->group_owners)
|
||||
{
|
||||
// remove types owned by groups the user has no edit grant
|
||||
@ -771,41 +728,204 @@ class infolog_ui
|
||||
{
|
||||
if (!($this->bo->grants[$group] & EGW_ACL_EDIT))
|
||||
{
|
||||
unset($types['type_'.$type]);
|
||||
unset($types[$type]);
|
||||
}
|
||||
}
|
||||
}
|
||||
$sel_options['multi_action'][lang('Change type:')] = $types;
|
||||
$types_add = array();
|
||||
foreach($types as $type => &$data)
|
||||
{
|
||||
$data = array(
|
||||
'caption' => $data,
|
||||
'icon' => $type,
|
||||
);
|
||||
$types_add[$type] = $data + array(
|
||||
'url' => 'menuaction=infolog.infolog_ui.edit&type='.$type,
|
||||
'popup' => egw_link::get_registry('infolog', 'add_popup'),
|
||||
);
|
||||
}
|
||||
|
||||
// if filtered by type, show only the stati of the filtered type
|
||||
if ($values['nm']['col_filter']['info_type'] && isset($this->bo->status[$values['nm']['col_filter']['info_type']]))
|
||||
if ($query['col_filter']['info_type'] && isset($this->bo->status[$query['col_filter']['info_type']]))
|
||||
{
|
||||
$statis = $this->bo->status[$values['nm']['col_filter']['info_type']];
|
||||
$statis = $this->bo->status[$query['col_filter']['info_type']];
|
||||
}
|
||||
else // show all stati
|
||||
{
|
||||
$statis = array();
|
||||
foreach($this->bo->status as $typ => $stati)
|
||||
foreach($this->bo->status as $type => $stati)
|
||||
{
|
||||
if($typ == 'defaults') continue;
|
||||
if ($type == 'defaults') continue;
|
||||
$statis += $stati;
|
||||
}
|
||||
$statis = array_unique($statis);
|
||||
}
|
||||
foreach($statis as $id => $label)
|
||||
foreach($statis as $type => &$data)
|
||||
{
|
||||
$change_status['status_'.$id] = $label;
|
||||
$data = array(
|
||||
'caption' => $data,
|
||||
'icon' => $type,
|
||||
);
|
||||
}
|
||||
$sel_options['multi_action'][lang('Change status:')] = $change_status;
|
||||
|
||||
// Merge print
|
||||
if ($this->prefs['document_dir'])
|
||||
$actions = array(
|
||||
'open' => array(
|
||||
'caption' => 'Open',
|
||||
'default' => true,
|
||||
'allowOnMultiple' => false,
|
||||
'url' => 'menuaction=infolog.infolog_ui.edit&info_id=$id',
|
||||
'popup' => egw_link::get_registry('infolog', 'add_popup'),
|
||||
'group' => $group=1,
|
||||
),
|
||||
'sp' => array(
|
||||
'caption' => 'View subs',
|
||||
'icon' => 'view',
|
||||
'group' => $group,
|
||||
'hint' => 'View all subs of this entry',
|
||||
'enableClass' => 'rowHasSubs',
|
||||
),
|
||||
'parent' => array(
|
||||
'caption' => 'View parent',
|
||||
'icon' => 'parent',
|
||||
'group' => $group,
|
||||
'hideOnDisabled' => true,
|
||||
'hint' => 'View the parent of this entry and all his subs',
|
||||
'enableClass' => 'rowHasParent'
|
||||
),
|
||||
'add' => array(
|
||||
'caption' => 'Add',
|
||||
'group' => $group,
|
||||
'children' => array(
|
||||
'new' => array(
|
||||
'caption' => 'New',
|
||||
'children' => $types_add,
|
||||
'icon' => 'task',
|
||||
),
|
||||
'sub' => array(
|
||||
'caption' => 'Sub-entry',
|
||||
'url' => 'menuaction=infolog.infolog_ui.edit&action=sp&action_id=$id',
|
||||
'popup' => egw_link::get_registry('infolog', 'add_popup'),
|
||||
'allowOnMultiple' => false,
|
||||
'hint' => 'Add a new sub-task, -note, -call to this entry',
|
||||
'icon' => 'new',
|
||||
'disableClass' => 'rowNoSubs',
|
||||
),
|
||||
'copy' => array(
|
||||
'caption' => 'Copy',
|
||||
'url' => 'menuaction=infolog.infolog_ui.edit&action=copy&info_id=$id',
|
||||
'popup' => egw_link::get_registry('infolog', 'add_popup'),
|
||||
'allowOnMultiple' => false,
|
||||
'icon' => 'copy',
|
||||
),
|
||||
),
|
||||
),
|
||||
'select_all' => array(
|
||||
'caption' => 'Whole query',
|
||||
'checkbox' => true,
|
||||
'hint' => 'Apply the action on the whole query, NOT only the shown entries',
|
||||
'group' => ++$group,
|
||||
),
|
||||
'no_notifications' => array(
|
||||
'caption' => 'Do not notify',
|
||||
'checkbox' => true,
|
||||
'hint' => 'Do not notify of these changes',
|
||||
'group' => $group,
|
||||
),
|
||||
// modifying content of one or multiple infolog(s)
|
||||
'change' => array(
|
||||
'caption' => 'Change',
|
||||
'group' => ++$group,
|
||||
'icon' => 'edit',
|
||||
'disableClass' => 'rowNoEdit',
|
||||
'children' => array(
|
||||
'type' => array(
|
||||
'caption' => 'Type',
|
||||
'prefix' => 'type_',
|
||||
'children' => $types,
|
||||
'group' => $group,
|
||||
'icon' => 'task',
|
||||
),
|
||||
'status' => array(
|
||||
'caption' => 'Status',
|
||||
'prefix' => 'status_',
|
||||
'children' => $statis,
|
||||
'group' => $group,
|
||||
'icon' => 'ongoing',
|
||||
),
|
||||
'completion' => array(
|
||||
'caption' => 'Completed',
|
||||
'prefix' => 'completion_',
|
||||
'children' => $percent,
|
||||
'group' => $group,
|
||||
'icon' => 'completed',
|
||||
),
|
||||
'cat' => nextmatch_widget::category_action(
|
||||
'infolog',$group,'Change category','cat_'
|
||||
),
|
||||
'responsible' => array(
|
||||
'caption' => 'Delegation',
|
||||
'group' => $group,
|
||||
'icon' => 'users',
|
||||
'onExecute' => 'javaScript:open_popup',
|
||||
),
|
||||
'link' => array(
|
||||
'caption' => 'Links',
|
||||
'group' => $group,
|
||||
'onExecute' => 'javaScript:open_popup',
|
||||
),
|
||||
),
|
||||
),
|
||||
'close' => array(
|
||||
'caption' => 'Close',
|
||||
'icon' => 'done',
|
||||
'group' => $group,
|
||||
),
|
||||
'close_all' => array(
|
||||
'caption' => 'Close all',
|
||||
'icon' => 'done_all',
|
||||
'group' => $group,
|
||||
'hint' => 'Sets the status of this entry and its subs to done',
|
||||
'allowOnMultiple' => false,
|
||||
),
|
||||
);
|
||||
++$group; // integration with other apps
|
||||
if ($GLOBALS['egw_info']['user']['apps']['filemanager'])
|
||||
{
|
||||
$sel_options['multi_action'][lang('Insert in document').':'] = $this->get_document_actions();
|
||||
$actions['filemanager'] = array(
|
||||
'icon' => 'filemanager/navbar',
|
||||
'caption' => 'Filemanager',
|
||||
'url' => 'menuaction=filemanager.filemanager_ui.index&path=/apps/addressbook/$id',
|
||||
'allowOnMultiple' => false,
|
||||
'group' => $group,
|
||||
);
|
||||
}
|
||||
if ($GLOBALS['egw_info']['user']['apps']['timesheet'])
|
||||
{
|
||||
$actions['timesheet'] = array( // interactive add for a single event
|
||||
'icon' => 'timesheet/navbar',
|
||||
'caption' => 'Timesheet',
|
||||
'url' => 'menuaction=timesheet.timesheet_ui.edit&link_app[]=infolog&link_id[]=$id',
|
||||
'group' => $group,
|
||||
'allowOnMultiple' => false,
|
||||
'popup' => egw_link::get_registry('timesheet', 'add_popup'),
|
||||
);
|
||||
}
|
||||
egw_framework::validate_file('.','index','infolog');
|
||||
|
||||
return $this->tmpl->exec('infolog.infolog_ui.index',$values,$sel_options,$readonlys,$persist,$return_html ? -1 : 0);
|
||||
$actions['documents'] = infolog_merge::document_action(
|
||||
$this->prefs['document_dir'], ++$group, 'Insert in document', 'document_',
|
||||
$this->prefs['default_document']
|
||||
);
|
||||
|
||||
$actions['delete'] = array(
|
||||
'caption' => 'Delete',
|
||||
'confirm' => 'Delete this entry',
|
||||
'confirm_multiple' => 'Delete these entries',
|
||||
'group' => ++$group,
|
||||
'disableClass' => 'rowNoDelete',
|
||||
);
|
||||
|
||||
//echo "<p>".__METHOD__."($do_email, $tid_filter, $org_view)</p>\n"; _debug_array($actions);
|
||||
return $actions;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -817,22 +937,16 @@ class infolog_ui
|
||||
* @param int &$success number of succeded actions
|
||||
* @param int &$failed number of failed actions (not enought permissions)
|
||||
* @param string &$action_msg translated verb for the actions, to be used in a message like '%1 entries deleted'
|
||||
* @param string/array $session_name 'index', or array with session-data depending
|
||||
* @param array $query get_rows parameter
|
||||
* @param string &$msg on return user feedback
|
||||
* @param boolean $skip_notifications=false true to NOT notify users about changes
|
||||
* @return boolean true if all actions succeded, false otherwise
|
||||
*/
|
||||
function action($action,$checked,$use_all,&$success,&$failed,&$action_msg,$session_name = false,&$msg, $skip_notifications = false)
|
||||
function action($action, $checked, $use_all, &$success, &$failed, &$action_msg,
|
||||
array $query, &$msg, $skip_notifications = false)
|
||||
{
|
||||
//echo "<p>infolog_ui::action('$action',".print_r($checked,true).','.(int)$use_all.",...)</p>\n";
|
||||
$success = $failed = 0;
|
||||
if ($use_all)
|
||||
{
|
||||
// get the whole selection
|
||||
if($session_name) {
|
||||
$query = is_array($session_name) ? $session_name : egw_session::appsession($session_name,'infolog');
|
||||
} else {
|
||||
$query = $this->read_sessiondata();
|
||||
}
|
||||
|
||||
if ($use_all)
|
||||
{
|
||||
@set_time_limit(0); // switch off the execution time limit, as it's for big selections to small
|
||||
@ -847,7 +961,6 @@ class infolog_ui
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Actions with options in the selectbox
|
||||
list($action, $settings) = explode('_', $action, 2);
|
||||
@ -861,17 +974,19 @@ class infolog_ui
|
||||
if(!$link_id)
|
||||
{
|
||||
$action_msg = 'linked';
|
||||
$msg = lang('You need to select an entry for linking. ');
|
||||
$msg = lang('You need to select an entry for linking.');
|
||||
break;
|
||||
}
|
||||
$title = egw_link::title($app, $link_id);
|
||||
foreach($checked as $id)
|
||||
{
|
||||
if(!$this->bo->check_access($id, EGW_ACL_EDIT)) {
|
||||
if(!$this->bo->check_access($id, EGW_ACL_EDIT))
|
||||
{
|
||||
$failed++;
|
||||
continue;
|
||||
}
|
||||
if($add_remove == 'add') {
|
||||
if($add_remove == 'add')
|
||||
{
|
||||
$action_msg = lang('linked to %1', $title);
|
||||
if(egw_link::link('infolog', $id, $app, $link_id))
|
||||
{
|
||||
@ -881,17 +996,24 @@ class infolog_ui
|
||||
{
|
||||
$failed++;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
$action_msg = lang('unlinked from %1', $title);
|
||||
$count = egw_link::unlink(0, 'infolog', $id, '', $app, $link_id);
|
||||
$success += $count;
|
||||
}
|
||||
}
|
||||
return ($failed == 0);
|
||||
return $failed == 0;
|
||||
|
||||
case 'document':
|
||||
$msg = $this->download_document($checked,$settings);
|
||||
$failed = count($checked);
|
||||
return false;
|
||||
|
||||
case 'view':
|
||||
// todo: implement or better move code from index to here
|
||||
return false;
|
||||
}
|
||||
|
||||
// Actions that need to loop
|
||||
@ -908,6 +1030,7 @@ class infolog_ui
|
||||
$this->close($id, '', false, $skip_notifications);
|
||||
$success++;
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
$action_msg = lang('deleted');
|
||||
$result = $this->delete($id, '', 'multi-action', $skip_notifications);
|
||||
@ -920,6 +1043,7 @@ class infolog_ui
|
||||
$failed++;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'type':
|
||||
$action_msg = lang('changed type');
|
||||
// Dont allow to change the type, if user has no delete rights from the group-owner
|
||||
@ -937,7 +1061,8 @@ class infolog_ui
|
||||
$action_msg = lang('changed completion to %1%', $settings);
|
||||
$entry['info_percent'] = $settings;
|
||||
// Done entries will get changed right back if we don't change the status too
|
||||
if($entry['info_status'] == 'done') {
|
||||
if($entry['info_status'] == 'done')
|
||||
{
|
||||
$entry['info_status'] = 'ongoing';
|
||||
}
|
||||
if($this->bo->write($entry, true,true,true,$skip_notifications))
|
||||
@ -963,11 +1088,14 @@ class infolog_ui
|
||||
{
|
||||
$success++;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
$msg .= lang('Invalid status for entry type %1. ', lang($this->bo->enums['type'][$entry['info_type']]));
|
||||
$failed++;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'cat':
|
||||
$cat_name = categories::id2name($settings);
|
||||
$action_msg = lang('changed category to %1', $cat_name);
|
||||
@ -981,6 +1109,7 @@ class infolog_ui
|
||||
$failed++;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'responsible':
|
||||
list($add_remove, $users) = explode('_', $settings, 2);
|
||||
$action_msg = lang('changed responsible') . ' - ' . ($add_remove == 'add' ? lang('added') : lang('removed')) . ' ';
|
||||
@ -1003,7 +1132,7 @@ class infolog_ui
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ($failed == 0);
|
||||
return $failed == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1154,36 +1283,8 @@ class infolog_ui
|
||||
if ($button)
|
||||
{
|
||||
//Copy Infolog
|
||||
if (($button == 'copy'))
|
||||
{
|
||||
unset($content['info_id']);
|
||||
unset ($info_id);
|
||||
unset($content['info_datemodified']);
|
||||
unset($content['info_modifier']);
|
||||
if ($button == 'copy') $action = 'copy';
|
||||
|
||||
// Get links to be copied
|
||||
$content['link_to']['to_id'] = egw_link::get_links($content['link_to']['to_app'], $content['link_to']['to_id']);
|
||||
// Special mangling for files so the files get copied
|
||||
foreach($content['link_to']['to_id'] as $link_id => &$link)
|
||||
{
|
||||
if ($link['app'] == egw_link::VFS_APPNAME)
|
||||
{
|
||||
$link['id'] = $link + array(
|
||||
'tmp_name' => egw_link::vfs_path($link['app2'], $link['id2']).'/'.$link['id'],
|
||||
'name' => $link['id'],
|
||||
);
|
||||
}
|
||||
}
|
||||
if($content['info_link_id'])
|
||||
{
|
||||
$info_link_id = $content['info_link_id'];
|
||||
unset($content['info_link_id']);
|
||||
}
|
||||
|
||||
$content['info_owner'] = !(int)$this->owner || !$this->bo->check_perms(EGW_ACL_ADD,0,$this->owner) ? $this->user : $this->owner;
|
||||
$content['msg'] = lang('Infolog copied - the copy can now be edited');
|
||||
$content['info_subject'] = lang('Copy of:').' '.$content['info_subject'];
|
||||
}
|
||||
if ($button == 'print')
|
||||
{
|
||||
$content['js'] = $this->custom_print($content,!$content['info_id'])."\n".$js; // first open the new window and then update the view
|
||||
@ -1523,6 +1624,36 @@ class infolog_ui
|
||||
$content['info_type'] = 'note';
|
||||
}
|
||||
}
|
||||
if ($action == 'copy') // get's called via actions selectbox or url (action=copy&info_id=123)
|
||||
{
|
||||
unset($content['info_id']);
|
||||
unset ($info_id);
|
||||
unset($content['info_datemodified']);
|
||||
unset($content['info_modifier']);
|
||||
|
||||
// Get links to be copied
|
||||
$content['link_to']['to_id'] = egw_link::get_links($content['link_to']['to_app'], $content['link_to']['to_id']);
|
||||
// Special mangling for files so the files get copied
|
||||
foreach($content['link_to']['to_id'] as $link_id => &$link)
|
||||
{
|
||||
if ($link['app'] == egw_link::VFS_APPNAME)
|
||||
{
|
||||
$link['id'] = $link + array(
|
||||
'tmp_name' => egw_link::vfs_path($link['app2'], $link['id2']).'/'.$link['id'],
|
||||
'name' => $link['id'],
|
||||
);
|
||||
}
|
||||
}
|
||||
if($content['info_link_id'])
|
||||
{
|
||||
$info_link_id = $content['info_link_id'];
|
||||
unset($content['info_link_id']);
|
||||
}
|
||||
|
||||
$content['info_owner'] = !(int)$this->owner || !$this->bo->check_perms(EGW_ACL_ADD,0,$this->owner) ? $this->user : $this->owner;
|
||||
$content['msg'] = lang('Infolog copied - the copy can now be edited');
|
||||
$content['info_subject'] = lang('Copy of:').' '.$content['info_subject'];
|
||||
}
|
||||
// group owners
|
||||
$types = $this->bo->enums['type'];
|
||||
if ($this->bo->group_owners)
|
||||
@ -1966,7 +2097,7 @@ class infolog_ui
|
||||
}
|
||||
$this->called_by = $app; // for read/save_sessiondata, to have different sessions for the hooks
|
||||
|
||||
$GLOBALS['egw']->translation->add_app('infolog');
|
||||
translation::add_app('infolog');
|
||||
|
||||
etemplate::$hooked = true;
|
||||
$this->index(0,$app,$args[$view_id],array(
|
||||
|
@ -18,6 +18,11 @@ function do_infolog_action(selbox) {
|
||||
selbox.value = "";
|
||||
}
|
||||
|
||||
function open_popup(_action, _senders)
|
||||
{
|
||||
alert('Show popup: '+_action.id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide popup and clear values
|
||||
*/
|
||||
|
@ -218,7 +218,7 @@ only for details infolog bg Само за детайлите
|
||||
only if i get assigned or removed infolog bg Само ако бъда включен или изключен
|
||||
only the attachments infolog bg само приложенията
|
||||
only the links infolog bg само връзките
|
||||
open infolog bg отвори
|
||||
open(status) infolog bg отвори
|
||||
optional note to the link infolog bg бележка към връзката
|
||||
order infolog bg Ред
|
||||
overdue infolog bg просрочен
|
||||
|
@ -192,7 +192,7 @@ ongoing infolog ca en curs
|
||||
only for details infolog ca Només per detalls
|
||||
only the attachments infolog ca només adjunts
|
||||
only the links infolog ca només enllaços
|
||||
open infolog ca obert
|
||||
open(status) infolog ca obert
|
||||
optional note to the link infolog ca nota opcional per a l'enllaç
|
||||
order infolog ca Ordre
|
||||
overdue infolog ca vençut
|
||||
|
@ -238,7 +238,7 @@ only for details infolog cs Jen pro detaily
|
||||
only if i get assigned or removed infolog cs Jen pokud budu přidělen nebo odebrán
|
||||
only the attachments infolog cs jen přílohy
|
||||
only the links infolog cs jen odkazy
|
||||
open infolog cs otevřít
|
||||
open(status) infolog cs otevřít
|
||||
open and upcoming infolog cs otevřené a nadcházející
|
||||
optional note to the link infolog cs volitelná poznámka k odkazu
|
||||
order infolog cs Pořadí
|
||||
|
@ -166,7 +166,7 @@ ongoing infolog da i gang
|
||||
only the attachments infolog da kun vedhæftninger
|
||||
only the links infolog da kun linkene
|
||||
only up to this number of entries are displayed on the main screen. infolog da Kun op til dette antal opgaver er vist på startsiden
|
||||
open infolog da åben
|
||||
open(status) infolog da åben
|
||||
optional note to the link infolog da Valgfri notat til Link
|
||||
order infolog da Rækkefølge
|
||||
overdue infolog da forfalden
|
||||
|
@ -67,18 +67,15 @@ cancel infolog de Abbruch
|
||||
cancelled infolog de abgesagt
|
||||
categories infolog de Kategorien
|
||||
category infolog de Kategorie
|
||||
change infolog de Ändern
|
||||
change category infolog de Kategorie ändern
|
||||
change completed infolog de Änderungen duchgeführt
|
||||
change completion infolog de Bearbeitungsstatus ändern
|
||||
change history infolog de Änderungsverlauf
|
||||
change owner when updating infolog de Ändert den Benutzer bei bei diesem Änderungsvorgang
|
||||
change responsible infolog de Zuständigkeit ändern
|
||||
change status: infolog de Status ändern
|
||||
change the status of an entry, eg. close it infolog de Status eines Eintrags ändern, z.B. Ihn als erledigt markieren
|
||||
change type: infolog de Infolog Typ ändern
|
||||
changed category to %1 infolog de Kategorie geändert zu %1
|
||||
changed completion to %1% infolog de Bearbeitungsstatus geändert zu %1
|
||||
changed responsible infolog de Zuständigkeit ändern
|
||||
changed status to %1 infolog de Typ geändert zu %1
|
||||
changed type infolog de Typ ändern
|
||||
charset of file infolog de Zeichensatz der Datei
|
||||
@ -302,8 +299,8 @@ only for details infolog de Nur bei Details
|
||||
only if i get assigned or removed infolog de Nur wenn ich zugewiesen oder entfernt werde
|
||||
only the attachments infolog de nur die Anhänge
|
||||
only the links infolog de nur die Verknüpfungen
|
||||
open infolog de offen
|
||||
open and upcoming infolog de zukünftige und offene
|
||||
open(status) infolog de offen
|
||||
optional note to the link infolog de zusätzliche Notiz zur Verknüpfung
|
||||
order infolog de Reihenfolge
|
||||
organization infolog de Organisation
|
||||
@ -420,6 +417,7 @@ status ... infolog de Status ...
|
||||
sub infolog de Unter-<br />einträge
|
||||
sub-entries become subs of the parent or main entries, if there's no parent infolog de Untereinträge gehören dann zum übergeordneten Eintrag oder werden Haupteinträge wenn es keinen übergeordneten gibt.
|
||||
sub-entries will not be closed infolog de Untereinträge werden nicht geschlossen
|
||||
sub-entry infolog de Untereintrag
|
||||
subject infolog de Titel
|
||||
sum infolog de Summe
|
||||
tag to mark positions for address labels infolog de Platzhalter, um die Position der Adresslabels festzulegen
|
||||
@ -458,7 +456,7 @@ used time infolog de benötigte Zeit
|
||||
values for selectbox infolog de Werte für die Auswahlbox
|
||||
view all subs of this entry infolog de alle Untereinträge dieses Eintrag anzeigen
|
||||
view other subs infolog de andere Untereinträge anzeigen
|
||||
view parent infolog de übergeordneter Eintrag anzeigen
|
||||
view parent infolog de Elterneintrag anzeigen
|
||||
view subs infolog de Untereinträge anzeigen
|
||||
view the parent of this entry and all his subs infolog de übergeordneter Eintrag mit allen seinen Untereinträgen anzeigen
|
||||
view this linked entry in its application infolog de diesen verknüpfen Eintrag in seiner Anwendung anzeigen
|
||||
@ -466,7 +464,6 @@ when should the todo or phonecall be started, it shows up from that date in the
|
||||
which additional fields should the responsible be allowed to edit without having edit rights?<br />status, percent and date completed are always allowed. infolog de Welche zusätzlichen Felder soll der Verantwortliche bearbeiten können ohne Bearbeitungsrechte zu haben?<br />Status, Prozent und Datum erledigt sind immer erlaubt.
|
||||
which implicit acl rights should the responsible get? infolog de Welche impliziten Zugriffsrechte soll der Verantwortliche bekommen?
|
||||
which types should the calendar show infolog de Welche Typen soll der Kalender anzeigen
|
||||
whole query infolog de gesamte Abfrage
|
||||
will-call infolog de ruft zurück
|
||||
write (add or update) a record by passing its fields. infolog de Schreiben (zufügen oder aktualisieren) eines Datensatzes durch Angabe seiner Felder.
|
||||
yes - close infolog de Ja schließen
|
||||
|
@ -205,7 +205,7 @@ only for details infolog el Μόνο για λεπτομέρειες
|
||||
only if i get assigned or removed infolog el Μόνο εάν μου ανατεθεί ή αφαιρεθεί
|
||||
only the attachments infolog el μόνο οι επισυνάψεις
|
||||
only the links infolog el μόνο οι σύνδεσμοι
|
||||
open infolog el ανοικτά
|
||||
open(status) infolog el ανοικτά
|
||||
optional note to the link infolog el προαιρετική σημείωση στο σύνδεσμο
|
||||
order infolog el Παραγγελία
|
||||
overdue infolog el καθυστερημένα
|
||||
|
@ -67,18 +67,15 @@ cancel infolog en Cancel
|
||||
cancelled infolog en cancelled
|
||||
categories infolog en Categories
|
||||
category infolog en Category
|
||||
change infolog en Change
|
||||
change category infolog en Change category
|
||||
change completed infolog en Change completed
|
||||
change completion infolog en Change completion
|
||||
change history infolog en Change history
|
||||
change owner when updating infolog en Change owner when updating
|
||||
change responsible infolog en Change responsible
|
||||
change status: infolog en Change status:
|
||||
change the status of an entry, eg. close it infolog en Change the status of an entry, eg. close it
|
||||
change type: infolog en Change type:
|
||||
changed category to %1 infolog en changed category to %1
|
||||
changed completion to %1% infolog en changed completion to %1%
|
||||
changed responsible infolog en changed responsible
|
||||
changed status to %1 infolog en changed status to %1
|
||||
changed type infolog en changed type
|
||||
charset of file infolog en Charset of file
|
||||
@ -302,8 +299,8 @@ only for details infolog en Only for details
|
||||
only if i get assigned or removed infolog en Only if I get assigned or removed
|
||||
only the attachments infolog en only the attachments
|
||||
only the links infolog en only the links
|
||||
open infolog en open
|
||||
open and upcoming infolog en open and upcoming
|
||||
open(status) infolog en open
|
||||
optional note to the link infolog en optional note to the Link
|
||||
order infolog en Order
|
||||
organization infolog en Organization
|
||||
@ -421,6 +418,7 @@ status ... infolog en Status ...
|
||||
sub infolog en Sub
|
||||
sub-entries become subs of the parent or main entries, if there's no parent infolog en Sub-entries become subs of the parent or main entries, if there's no parent
|
||||
sub-entries will not be closed infolog en Sub-entries will not be closed
|
||||
sub-entry infolog en Sub-entry
|
||||
subject infolog en Subject
|
||||
sum infolog en Sum
|
||||
tag to mark positions for address labels infolog en Tag to mark positions for address labels
|
||||
@ -468,7 +466,6 @@ when should the todo or phonecall be started, it shows up from that date in the
|
||||
which additional fields should the responsible be allowed to edit without having edit rights?<br />status, percent and date completed are always allowed. infolog en Which additional fields should the responsible be allowed to edit without having edit rights?<br />Status, percent and date completed are always allowed.
|
||||
which implicit acl rights should the responsible get? infolog en Which implicit ACL rights should the responsible get?
|
||||
which types should the calendar show infolog en Which types should the calendar show
|
||||
whole query infolog en whole query
|
||||
will-call infolog en will call
|
||||
write (add or update) a record by passing its fields. infolog en Write (add or update) a record by passing its fields.
|
||||
yes - close infolog en Yes - Close
|
||||
|
@ -234,7 +234,7 @@ only for details infolog es-es Sólo para los detalles
|
||||
only if i get assigned or removed infolog es-es Sólo si se me asigna o se me borra
|
||||
only the attachments infolog es-es sólo los adjuntos
|
||||
only the links infolog es-es sólo los enlaces
|
||||
open infolog es-es abrir
|
||||
open(status) infolog es-es abrir
|
||||
optional note to the link infolog es-es nota opcional para el enlace
|
||||
order infolog es-es Ordenar
|
||||
organization infolog es-es Organización
|
||||
|
@ -126,7 +126,7 @@ offer infolog et pakkumine
|
||||
one day after infolog et üks päev pärast
|
||||
one day in advance infolog et üks päev enne
|
||||
ongoing infolog et käimasolev
|
||||
open infolog et avatud
|
||||
open(status) infolog et avatud
|
||||
own infolog et endaoma
|
||||
own open infolog et endaoma avatud
|
||||
percent completed infolog et Protsent valmis
|
||||
|
@ -142,7 +142,7 @@ offer infolog eu Eskaini
|
||||
ongoing infolog eu momentukoak
|
||||
only the attachments infolog eu eranskinak soilik
|
||||
only the links infolog eu loturak soilik
|
||||
open infolog eu ireki
|
||||
open(status) infolog eu ireki
|
||||
optional note to the link infolog eu aukerako oharra loturarentzat
|
||||
order infolog eu Ordenatu
|
||||
overdue infolog eu garaitua
|
||||
|
@ -200,7 +200,7 @@ ongoing infolog fa درحال انجام
|
||||
only for details infolog fa فقط برای جزئیات
|
||||
only the attachments infolog fa فقط پیوستها
|
||||
only the links infolog fa فقط پیوندها
|
||||
open infolog fa کارهای باز
|
||||
open(status) infolog fa کارهای باز
|
||||
optional note to the link infolog fa یادداشت دلخواه برای پیوند
|
||||
order infolog fa ترتیب
|
||||
overdue infolog fa کارهای سررسیده
|
||||
|
@ -233,7 +233,7 @@ only for details infolog fi Vain lisätiedot
|
||||
only if i get assigned or removed infolog fi Vain jos minulle delegoidaan tai minut poistetaan vastuusta
|
||||
only the attachments infolog fi Vain liitteet
|
||||
only the links infolog fi Vain linkit
|
||||
open infolog fi Avoimet
|
||||
open(status) infolog fi Avoimet
|
||||
open and upcoming infolog fi Avoimet ja tulevat
|
||||
optional note to the link infolog fi Vapaaehtoinen muistiinpano linkkiin
|
||||
order infolog fi Järjestä
|
||||
|
@ -185,7 +185,7 @@ ongoing infolog fr Entrant
|
||||
only for details infolog fr Seulement pour les détails
|
||||
only the attachments infolog fr Seulement les attachements
|
||||
only the links infolog fr Seulement les liens
|
||||
open infolog fr Ouvrir
|
||||
open(status) infolog fr Ouvrir
|
||||
optional note to the link infolog fr note optionnelle vers le lien
|
||||
order infolog fr Tri
|
||||
overdue infolog fr Tardif
|
||||
|
@ -160,7 +160,7 @@ ongoing infolog hr traje (trajući)
|
||||
only the attachments infolog hr Samo privitke
|
||||
only the links infolog hr only the links
|
||||
only up to this number of entries are displayed on the main screen. infolog hr Only up to this number of entries are displayed on the main screen.
|
||||
open infolog hr otvori
|
||||
open(status) infolog hr otvori
|
||||
optional note to the link infolog hr optional note to the Link
|
||||
order infolog hr Naredi
|
||||
overdue infolog hr prošao rok
|
||||
|
@ -234,7 +234,7 @@ only for details infolog hu Csak a részletekhez
|
||||
only if i get assigned or removed infolog hu Csak ha hozzám rendelték vagy törölték
|
||||
only the attachments infolog hu csupán a mellékletek
|
||||
only the links infolog hu csupán a hivatkozások
|
||||
open infolog hu nyitott
|
||||
open(status) infolog hu nyitott
|
||||
optional note to the link infolog hu tetszőleges megjegyzés a hivatkozáshoz
|
||||
order infolog hu Rendezés
|
||||
organization infolog hu Szervezet
|
||||
|
@ -172,7 +172,7 @@ offer infolog id penawaran
|
||||
one day after infolog id sehari setelah
|
||||
one day in advance infolog id sehari dimuka
|
||||
ongoing infolog id berlangsung
|
||||
open infolog id buka
|
||||
open(status) infolog id buka
|
||||
order infolog id Urutan
|
||||
organization infolog id Organisasi
|
||||
overdue infolog id lewat waktu
|
||||
|
@ -183,7 +183,7 @@ ongoing infolog it in corso
|
||||
only for details infolog it Solo per dettagli
|
||||
only the attachments infolog it solo gli allegati
|
||||
only the links infolog it solo i collegamenti
|
||||
open infolog it aperte
|
||||
open(status) infolog it aperte
|
||||
optional note to the link infolog it note opzionali per il Link
|
||||
order infolog it Ordine
|
||||
overdue infolog it scaduto
|
||||
|
@ -146,7 +146,7 @@ ongoing infolog iw מתמשך
|
||||
only the attachments infolog iw רק את המצורפים
|
||||
only the links infolog iw רק את הקישורים
|
||||
only up to this number of entries are displayed on the main screen. infolog iw רק עד כמות רשומות זו תוצג במסך הראשי
|
||||
open infolog iw פתח
|
||||
open(status) infolog iw פתח
|
||||
optional note to the link infolog iw הערה אופציונלית לקישור
|
||||
order infolog iw סדר
|
||||
overdue infolog iw עבר זמנו
|
||||
|
@ -121,7 +121,7 @@ note infolog ko 노트
|
||||
number of records to read (%1) infolog ko %1 개의 레코드를 읽었습니다.
|
||||
offer infolog ko 제안
|
||||
ongoing infolog ko 진행중
|
||||
open infolog ko 개설
|
||||
open(status) infolog ko 개설
|
||||
overdue infolog ko 만기초과
|
||||
own infolog ko 소유
|
||||
own open infolog ko 소유 개설
|
||||
|
@ -152,7 +152,7 @@ ongoing infolog lv notiekošs
|
||||
only the attachments infolog lv tikai pielikumi
|
||||
only the links infolog lv tikai saites
|
||||
only up to this number of entries are displayed on the main screen. infolog lv Galvenajā logā tiek parādīti ieraksti tikai līdz norādītajam skaitlim
|
||||
open infolog lv atvērt
|
||||
open(status) infolog lv atvērt
|
||||
optional note to the link infolog lv izvēles piezīme saitei
|
||||
order infolog lv Kārtība
|
||||
own open infolog lv pats atveras
|
||||
|
@ -224,7 +224,7 @@ only for details infolog nl Alleen voor details
|
||||
only if i get assigned or removed infolog nl Alleen indien ik wordt toegewezen of verwijderd
|
||||
only the attachments infolog nl alleen de bijlagen
|
||||
only the links infolog nl alleen de links
|
||||
open infolog nl open
|
||||
open(status) infolog nl open
|
||||
optional note to the link infolog nl optionele notitie bij de link
|
||||
order infolog nl Order
|
||||
overdue infolog nl te laat
|
||||
|
@ -178,7 +178,7 @@ ongoing infolog no pågående
|
||||
only the attachments infolog no kun vedlegg
|
||||
only the links infolog no kun lenker
|
||||
only up to this number of entries are displayed on the main screen. infolog no Maks antall innslag som vises på hovedskjerm.
|
||||
open infolog no åpen
|
||||
open(status) infolog no åpen
|
||||
optional note to the link infolog no valgfri notat om Lenken
|
||||
order infolog no Ordre
|
||||
overdue infolog no forfalt
|
||||
|
@ -185,7 +185,7 @@ ongoing infolog pl W toku
|
||||
only for details infolog pl Tylko dla szczegółów
|
||||
only the attachments infolog pl tylko załączniki
|
||||
only the links infolog pl tylko linki
|
||||
open infolog pl otwarte
|
||||
open(status) infolog pl otwarte
|
||||
optional note to the link infolog pl opcjonalna notatka do linku
|
||||
order infolog pl Kolejność
|
||||
overdue infolog pl zaległe
|
||||
|
@ -220,7 +220,7 @@ only for details infolog pt-br Somente para detalhes
|
||||
only if i get assigned or removed infolog pt-br Somente se eu for designado ou removido
|
||||
only the attachments infolog pt-br apenas arquivos anexos
|
||||
only the links infolog pt-br apenas links
|
||||
open infolog pt-br abrir
|
||||
open(status) infolog pt-br abrir
|
||||
optional note to the link infolog pt-br Nota opcional para o Link
|
||||
order infolog pt-br Ordem
|
||||
overdue infolog pt-br atrasado
|
||||
|
@ -180,7 +180,7 @@ ongoing infolog pt Em processamento
|
||||
only for details infolog pt Apenas para detalhes
|
||||
only the attachments infolog pt Apenas os anexos
|
||||
only the links infolog pt Apenas as ligações
|
||||
open infolog pt Abrir
|
||||
open(status) infolog pt Abrir
|
||||
optional note to the link infolog pt nota opcional da ligação
|
||||
order infolog pt Ordenar
|
||||
overdue infolog pt Em atraso
|
||||
|
@ -220,7 +220,7 @@ only for details infolog ru Только для подробностей
|
||||
only if i get assigned or removed infolog ru Только если Я присоединен или отсоединен
|
||||
only the attachments infolog ru только вложения
|
||||
only the links infolog ru только ссылки
|
||||
open infolog ru открытые
|
||||
open(status) infolog ru открытые
|
||||
optional note to the link infolog ru необязательная заметка к Ссылке
|
||||
order infolog ru Порядок
|
||||
overdue infolog ru просроченные
|
||||
|
@ -238,7 +238,7 @@ only for details infolog sk Len pre podrobnosti
|
||||
only if i get assigned or removed infolog sk Iba ak mi je to priradené alebo odobraté
|
||||
only the attachments infolog sk Iba prílohy
|
||||
only the links infolog sk Iba odkazy
|
||||
open infolog sk Otvorené
|
||||
open(status) infolog sk Otvorené
|
||||
open and upcoming infolog sk Otvorené a blížiace sa
|
||||
optional note to the link infolog sk Voliteľná poznámka k odkazu
|
||||
order infolog sk Triedenie
|
||||
|
@ -215,7 +215,7 @@ only for details infolog sl Samo za podrobnosti
|
||||
only if i get assigned or removed infolog sl Samo če sem dodeljen ali odstranjen
|
||||
only the attachments infolog sl Samo priloge
|
||||
only the links infolog sl Samo povezave
|
||||
open infolog sl Odprt
|
||||
open(status) infolog sl Odprt
|
||||
optional note to the link infolog sl Neobvezna opomba za povezavo
|
||||
order infolog sl Vrstni red
|
||||
overdue infolog sl Zapadel
|
||||
|
@ -183,7 +183,7 @@ ongoing infolog sv Pågående
|
||||
only for details infolog sv Endast detaljer
|
||||
only the attachments infolog sv Endast bilagor
|
||||
only the links infolog sv Endast länkar
|
||||
open infolog sv Öppen
|
||||
open(status) infolog sv Öppen
|
||||
optional note to the link infolog sv Frivillig anteckning till länken
|
||||
order infolog sv Sortering
|
||||
overdue infolog sv Förfallen
|
||||
|
@ -155,7 +155,7 @@ ongoing tr s
|
||||
only the attachments tr sadece ekler
|
||||
only the links tr sadece baðlantýlar
|
||||
only up to this number of entries are displayed on the main screen. tr Ana penecerede gösterilecek en fazla giriþ sayýsý.
|
||||
open tr aç
|
||||
open(status) tr aç
|
||||
optional note to the link tr Baðlantý için isteðe baðlý not
|
||||
order tr Sýra
|
||||
overdue tr gecikme
|
||||
|
@ -156,7 +156,7 @@ ongoing infolog uk в роботі
|
||||
only the attachments infolog uk тільки додатки
|
||||
only the links infolog uk тільки посилання
|
||||
only up to this number of entries are displayed on the main screen. infolog uk На основному екрані показується не більше вказаної кількості записів
|
||||
open infolog uk відкрито
|
||||
open(status) infolog uk відкрито
|
||||
optional note to the link infolog uk необов'язкова примітка до Посилання
|
||||
order infolog uk
|
||||
overdue infolog uk прострочено
|
||||
|
@ -215,7 +215,7 @@ only for details infolog zh-tw 只顯示細節
|
||||
only if i get assigned or removed infolog zh-tw 只在我被指派或移除時
|
||||
only the attachments infolog zh-tw 只有附加檔案
|
||||
only the links infolog zh-tw 只有連結
|
||||
open infolog zh-tw 開啟
|
||||
open(status) infolog zh-tw 開啟
|
||||
optional note to the link infolog zh-tw 連結的附加說明
|
||||
order infolog zh-tw 順序
|
||||
overdue infolog zh-tw 過期的
|
||||
|
@ -172,7 +172,7 @@ ongoing infolog zh 正在进行
|
||||
only the attachments infolog zh 仅显示关联文件
|
||||
only the links infolog zh 仅显示关联条目
|
||||
only up to this number of entries are displayed on the main screen. infolog zh 首页中最多可显示多少事项?
|
||||
open infolog zh 待决事项
|
||||
open(status) infolog zh 待决事项
|
||||
optional note about the link infolog zh 该关联的说明
|
||||
optional note to the link infolog zh 该关联的说明
|
||||
order infolog zh 顺序
|
||||
|
File diff suppressed because one or more lines are too long
BIN
infolog/templates/default/images/completed.png
Normal file
BIN
infolog/templates/default/images/completed.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 235 B |
@ -2,158 +2,19 @@
|
||||
<!-- $Id$ -->
|
||||
<overlay>
|
||||
<template id="infolog.index.header_left" template="" lang="" group="0" version="1.0.1.001">
|
||||
<description class="headertext bold" value="InfoLog"/>
|
||||
<description value="InfoLog" class="headertext bold"/>
|
||||
<styles>.bold { font-weight: bold; }</styles>
|
||||
</template>
|
||||
<template id="infolog.index.header_right" template="" lang="" group="0" version="1.7.001">
|
||||
<hbox>
|
||||
<description class="headertext" value="Add:"/>
|
||||
<button image="task" label="ToDo" id="add[task]" statustext="Add a new ToDo" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&type=task&action=$cont[action]&action_id=$cont[action_id]&cat_id=$cont[cat_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="phone" label="Phonecall" id="add[phone]" statustext="Add a new Phonecall" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&type=phone&action=$cont[action]&action_id=$cont[action_id]&cat_id=$cont[cat_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="note" label="Note" id="add[note]" statustext="Add a new Note" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&type=note&action=$cont[action]&action_id=$cont[action_id]&cat_id=$cont[cat_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<description value="Add:" class="headertext"/>
|
||||
<button label="ToDo" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&type=task&action=$cont[action]&action_id=$cont[action_id]&cat_id=$cont[cat_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;" id="add[task]" image="task" statustext="Add a new ToDo"/>
|
||||
<button label="Phonecall" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&type=phone&action=$cont[action]&action_id=$cont[action_id]&cat_id=$cont[cat_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;" id="add[phone]" image="phone" statustext="Add a new Phonecall"/>
|
||||
<button label="Note" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&type=note&action=$cont[action]&action_id=$cont[action_id]&cat_id=$cont[cat_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;" id="add[note]" image="note" statustext="Add a new Note"/>
|
||||
</hbox>
|
||||
</template>
|
||||
<template id="infolog.index.rows-noheader" template="" lang="" group="0" version="1.7.005">
|
||||
<grid width="100%" class="my_form">
|
||||
<columns>
|
||||
<column width="2%"/>
|
||||
<column/>
|
||||
<column disabled="@no_customfields"/>
|
||||
<column width="120"/>
|
||||
<column/>
|
||||
<column disabled="@no_info_used_time_info_planned_time"/>
|
||||
<column width="8%" disabled="@no_info_onwer_info_responsible"/>
|
||||
<column width="12%" disabled="@no_info_datemodified"/>
|
||||
<column width="3%" disabled="@no_actions"/>
|
||||
<column width="3%" disabled="@no_actions"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row class="th">
|
||||
<vbox options="0,0">
|
||||
<description value="Type"/>
|
||||
<description value="Status" align="center"/>
|
||||
<description value="Completed" align="right"/>
|
||||
</vbox>
|
||||
<vbox rows="2" cols="1" options="2">
|
||||
<description value="Subject"/>
|
||||
<description value="Description"/>
|
||||
</vbox>
|
||||
<vbox options="0,0">
|
||||
<description id="customfields" options="Custom fields"/>
|
||||
<grid spacing="0" padding="0">
|
||||
<columns>
|
||||
<column disabled="@no_customfields"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<description no_lang="1" id="customfields[$row][label]" options="Custom fields"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</vbox>
|
||||
<vbox options="0,0">
|
||||
<description value="Startdate"/>
|
||||
<description value="Enddate"/>
|
||||
<description value="Date completed"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<description value="Times"/>
|
||||
<description class="planned" value="planned"/>
|
||||
</vbox>
|
||||
<vbox options="0,0">
|
||||
<description value="Times"/>
|
||||
<description class="planned" value="planned"/>
|
||||
<description class="replanned" value="Re-planned"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<description value="Owner"/>
|
||||
<description value="Responsible"/>
|
||||
</vbox>
|
||||
<description value="last changed"/>
|
||||
<description value="Sub" class="noPrint"/>
|
||||
<description value="Action" class="noPrint"/>
|
||||
</row>
|
||||
<row class="row" valign="top">
|
||||
<hbox options="5" align="center">
|
||||
<image label="$row_cont[info_type]" src="${row}[info_type]"/>
|
||||
<button image="$row_cont[info_status_label]" ro_image="$row_cont[info_status_label]" label="$row_cont[info_status_label]" id="edit_status[$row_cont[info_id]]" statustext="Change the status of an entry, eg. close it" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="$row_cont[info_percent]" label="$row_cont[info_percent]" id="edit_percent[$row_cont[info_id]]" statustext="Change the status of an entry, eg. close it" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<image label="$row_cont[info_percent2]" src="{$row}[info_percent2]" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
</hbox>
|
||||
<vbox options="0,0" class="fullWidth">
|
||||
<link label="%s $row_cont[info_addr]" id="${row}[info_link]" options="b"/>
|
||||
<hbox options="0,0">
|
||||
<description class="$row_cont[sub_class]" no_lang="1" id="${row}[info_subject]"/>
|
||||
<description no_lang="1" align="right" id="{$row}[info_number]" class="infoId"/>
|
||||
</hbox>
|
||||
<description options=",,1" no_lang="1" id="${row}[info_des]"/>
|
||||
<link-string id="${row}[filelinks]"/>
|
||||
</vbox>
|
||||
<customfields-list class="customfields" id="$row" readonly="true"/>
|
||||
<vbox options="0,0,1" rows="3" cols="1">
|
||||
<date-time options=",8" id="${row}[info_startdate]" readonly="true" class="fixedHeight"/>
|
||||
<date class="$row_cont[end_class] fixedHeight" id="${row}[info_enddate]" readonly="true"/>
|
||||
<date-time id="${row}[info_datecompleted]" readonly="true" class="fixedHeight"/>
|
||||
</vbox>
|
||||
<vbox rows="3" cols="1">
|
||||
<hbox readonly="true" options="1,0">
|
||||
<date-duration id="${row}[info_used_time]" readonly="true" options="@duration_format"/>
|
||||
<date-duration id="${row}[info_sum_timesheets]" readonly="true" options="@duration_format" class="timesheet"/>
|
||||
</hbox>
|
||||
<date-duration id="${row}[info_planned_time]" span="all" class="planned" readonly="true" options="@duration_format"/>
|
||||
</vbox>
|
||||
<vbox rows="3" cols="1" options="0,0">
|
||||
<hbox options="1,0" id="l_used_time">
|
||||
<image label="Times" src="timesheet"/>
|
||||
<date-duration id="${row}[info_used_time]" readonly="true" options="@duration_format"/>
|
||||
<date-duration id="${row}[info_sum_timesheets]" readonly="true" options="@duration_format" class="timesheet"/>
|
||||
</hbox>
|
||||
<hbox options="1,0" id="lplanified">
|
||||
<image label="planned time" src="k_alarm.png"/>
|
||||
<date-duration id="${row}[info_planned_time]" span="all" class="planned" readonly="true" options="@duration_format"/>
|
||||
</hbox>
|
||||
<hbox options="1,0" id="replanified">
|
||||
<image label="Re-planned time" src="agt_reload.png"/>
|
||||
<date-duration id="${row}[info_replanned_time]" span="all" class="replanned" readonly="true" options="@duration_format"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
<vbox options="0,0">
|
||||
<menulist>
|
||||
<menupopup type="select-account" id="${row}[info_owner]" readonly="true"/>
|
||||
</menulist>
|
||||
<listbox type="select-account" id="${row}[info_responsible]" readonly="true" rows="5"/>
|
||||
</vbox>
|
||||
<vbox options="0" orient="0">
|
||||
<date-time id="${row}[info_datemodified]" readonly="true"/>
|
||||
<menulist>
|
||||
<menupopup type="select-account" id="${row}[info_modifier]" readonly="true"/>
|
||||
</menulist>
|
||||
</vbox>
|
||||
<vbox options="0" align="center" class="noPrint" orient="0">
|
||||
<button image="new" label="Add sub" align="center" id="sp[$row_cont[info_id]]" statustext="Add a new sub-task, -note, -call to this entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&action=sp&action_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="view.gif" label="View subs" align="center" id="view[$row_cont[info_id]]" statustext="View all subs of this entry"/>
|
||||
<button image="parent.gif" label="View parent" align="center" id="view[$row_cont[info_id_parent]]" statustext="View the parent of this entry and all his subs"/>
|
||||
<button image="timesheet" label="Add timesheet entry" id="timesheet[$row_cont[info_id]]" onclick="window.open(egw::link('/index.php','menuaction=timesheet.timesheet_ui.edit&link_app[]=infolog&link_id[]=$row_cont[info_id]$row_cont[extra_links]'),'_blank','dependent=yes,width=600,height=400,scrollbars=yes,status=yes'); return false;" align="center"/>
|
||||
</vbox>
|
||||
<vbox class="noPrint">
|
||||
<hbox options="0,0" class="noPrint" orient="0">
|
||||
<button image="edit" label="Edit" id="edit[$row_cont[info_id]]" statustext="Edit this entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="delete" label="Delete" id="delete[$row_cont[info_id]]" statustext="Delete this entry" onclick="return $row_cont[info_anz_subs] || confirm('Delete this entry');"/>
|
||||
</hbox>
|
||||
<hbox options="0,0" class="noPrint" orient="0">
|
||||
<button image="done" label="Set status to done" id="close[$row_cont[info_id]]" statustext="Sets the status of this entry to done"/>
|
||||
<button image="done_all" label="Set status to done for all entries" id="close_all[$row_cont[info_id]]" statustext="Sets the status of this entry and its subs to done"/>
|
||||
<description/>
|
||||
<description/>
|
||||
</hbox>
|
||||
<image src="filemanager/navbar" options="/index.php?menuaction=filemanager.filemanager_ui.index&path=/apps/infolog/$row_cont[info_id]" class="image16" label="Filemanager"/>
|
||||
</vbox>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</template>
|
||||
<template id="infolog.index.rows" template="" lang="" group="0" version="1.7.005">
|
||||
<grid>
|
||||
<template id="infolog.index.rows" template="" lang="" group="0" version="1.9.002">
|
||||
<grid width="100%">
|
||||
<columns>
|
||||
<column width="2%"/>
|
||||
<column/>
|
||||
@ -216,9 +77,9 @@
|
||||
</vbox>
|
||||
<nextmatch-sortheader label="last changed" id="info_datemodified" options="DESC"/>
|
||||
<description value="Sub" class="noPrint"/>
|
||||
<description value="Action" class="noPrint"/>
|
||||
<nextmatch-header label="Action" class="noPrint" id="actions"/>
|
||||
</row>
|
||||
<row class="row" valign="top">
|
||||
<row class="row $row_cont[class] $row_cont[cat_id]" valign="top">
|
||||
<hbox options="5" align="center">
|
||||
<image label="$row_cont[info_type]" src="${row}[info_type]"/>
|
||||
<button image="$row_cont[info_status_label]" ro_image="$row_cont[info_status_label]" label="$row_cont[info_status_label]" id="edit_status[$row_cont[info_id]]" statustext="Change the status of an entry, eg. close it" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
@ -292,21 +153,25 @@
|
||||
<hbox options="0,0" class="noPrint" orient="0">
|
||||
<button image="edit" label="Edit" id="edit[$row_cont[info_id]]" statustext="Edit this entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="delete" label="Delete" id="delete[$row_cont[info_id]]" statustext="Delete this entry" onclick="return $row_cont[info_anz_subs] || confirm('Delete this entry');"/>
|
||||
<checkbox id="checked[]" options="$row_cont[info_id]" statustext="Select multiple contacts for a further action" align="right"/>
|
||||
</hbox>
|
||||
<hbox options="0,0" class="noPrint" orient="0">
|
||||
<button image="done" label="Set status to done" id="close[$row_cont[info_id]]" statustext="Sets the status of this entry to done"/>
|
||||
<button image="done_all" label="Set status to done for all entries" id="close_all[$row_cont[info_id]]" statustext="Sets the status of this entry and its subs to done"/>
|
||||
</hbox>
|
||||
<hbox options="0,0" class="image16" orient="0">
|
||||
<button id="document[$row_cont[info_id]]" image="etemplate/merge" label="Insert in document"/>
|
||||
<image src="filemanager/navbar" options="/index.php?menuaction=filemanager.filemanager_ui.index&path=/apps/infolog/$row_cont[info_id]" class="image16" label="Filemanager"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</template>
|
||||
<template id="infolog.index" template="" lang="" group="0" version="1.7.003">
|
||||
<template id="infolog.index" template="" lang="" group="0" version="1.9.002">
|
||||
<grid width="100%" border="0" spacing="0" padding="0">
|
||||
<columns>
|
||||
<column width="90%"/>
|
||||
<column width="70%"/>
|
||||
<column/>
|
||||
</columns>
|
||||
<rows>
|
||||
@ -321,19 +186,78 @@
|
||||
<template id="header_left"/>
|
||||
<template id="header_right"/>
|
||||
</row>
|
||||
<row disabled="!@main">
|
||||
<template content="main" span="all" id="infolog.index.rows-noheader"/>
|
||||
</row>
|
||||
<row>
|
||||
<nextmatch options="infolog.index.rows" span="all" id="nm"/>
|
||||
</row>
|
||||
<row class="noPrint">
|
||||
<hbox span="all">
|
||||
<row class="noPrint" disabled="!@nm[selectcols]=/actions/">
|
||||
<hbox>
|
||||
<button label="Add" id="add[note]" statustext="Add a new Entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.infolog_ui.edit&type=note&action=$cont[action]&action_id=$cont[action_id]&cat_id={$cont[nm][cat_id]}'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button label="Cancel" id="cancel" statustext="Back to main list"/>
|
||||
</hbox>
|
||||
<hbox options="0" align="right" orient="0">
|
||||
<buttononly id="legacy_actions" statustext="Select action" label="Select action" onclick="if (!egw_objectManager.executeActionImplementation(this, 'popup')) alert(egw::lang('You need to select some entries first!')); return false;;"/>
|
||||
<button image="arrow_ltr" label="Check all" id="check_all" statustext="Check all" onclick="toggle_all(this.form,form::name('nm[rows][checked][]')); return false;" needed="1" class="checkAllArrow"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<box id="responsible_popup" class="action_popup prompt">
|
||||
<vbox>
|
||||
<description class="promptheader" value="Change responsible"/>
|
||||
<description value="Select users or groups"/>
|
||||
<listbox type="select-account" class="action_popup-content" id="responsible" rows="5" options="both"/>
|
||||
<hbox>
|
||||
<button label="Add" id="responsible_action[add]"/>
|
||||
<button id="responsible_action[delete]" label="Delete"/>
|
||||
<buttononly label="Cancel" onclick="hide_popup(this,'responsible_popup');"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</box>
|
||||
<box id="link_popup" class="action_popup prompt">
|
||||
<vbox>
|
||||
<description class="promptheader" value="Add / Remove link"/>
|
||||
<link-entry id="link" class="action_popup-content"/>
|
||||
<hbox>
|
||||
<button label="Add" id="link_action[add]"/>
|
||||
<button id="link_action[delete]" label="Delete"/>
|
||||
<buttononly label="Cancel" onclick="hide_popup(this,'link_popup');"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</box>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<styles>
|
||||
/**
|
||||
* Add / remove link or category popup used for actions on multiple entries
|
||||
*/
|
||||
|
||||
.action_popup {
|
||||
position: fixed;
|
||||
top: 200px;
|
||||
left: 450px;
|
||||
width: 76ex;
|
||||
z-index: 20000;
|
||||
display: none;
|
||||
border-collapse:collapse;
|
||||
border-spacing:0px
|
||||
}
|
||||
.action_popup-content {
|
||||
display:block;
|
||||
padding:2ex;
|
||||
color:#666666;
|
||||
margin: -2px -1px 0px -2px;
|
||||
}
|
||||
.action_popup > table {
|
||||
width: 100%
|
||||
}
|
||||
.action_popup .promptheader {
|
||||
padding: 1ex;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.action_select {
|
||||
width: 100%
|
||||
}
|
||||
</styles>
|
||||
</template>
|
||||
</overlay>
|
Loading…
Reference in New Issue
Block a user