forked from extern/egroupware
Backport commit r48263, committed by Nathan Gray. Infolog lists embedded as action can have their own separate column preferences.
This commit is contained in:
parent
9e7b3107b5
commit
59f0b65e63
@ -955,9 +955,9 @@ var et2_nextmatch = et2_DOMWidget.extend([et2_IResizeable, et2_IInput],
|
||||
|
||||
for (var x = 0; x < _row.length; x++)
|
||||
{
|
||||
this.columns[x] = {
|
||||
this.columns[x] = jQuery.extend({
|
||||
"widget": _row[x].widget
|
||||
};
|
||||
},_colData[x]);
|
||||
|
||||
|
||||
columnData[x] = {
|
||||
|
@ -372,7 +372,11 @@ class infolog_ui
|
||||
// do we need to read the custom fields, depends on the column is enabled and customfields exist, prefs are filter specific
|
||||
// so we have to check that as well
|
||||
$details = $query['filter2'] == 'all';
|
||||
$columselection = $this->prefs['nextmatch-infolog.index.rows'.($details?'-details':'')];
|
||||
$columnselection_pref = 'nextmatch-'.($query['action'] ? 'infolog.'.$query['action'] : (is_object($query['template']) ? $query['template']->name : 'infolog.index.rows'))
|
||||
.($details ? '-details' : '');
|
||||
|
||||
$columselection = $this->prefs[$columnselection_pref];
|
||||
|
||||
//_debug_array($columselection);
|
||||
if ($columselection)
|
||||
{
|
||||
@ -394,13 +398,11 @@ class infolog_ui
|
||||
// add a '-details' to the name of the columnselection pref
|
||||
if ($details)
|
||||
{
|
||||
$query['columnselection_pref'] = 'nextmatch-'.(is_object($query['template'])?$query['template']->name:'infolog.index.rows').'-details';
|
||||
$query['default_cols'] = '!cat_id,info_used_time_info_planned_time,info_used_time_info_planned_time_info_replanned_time,info_id,actions';
|
||||
$query['default_cols'] = '!cat_id,info_used_time_info_planned_time,info_used_time_info_planned_time_info_replanned_time,info_id';
|
||||
}
|
||||
else
|
||||
{
|
||||
$query['columnselection_pref'] = 'nextmatch-infolog.index.rows';
|
||||
$query['default_cols'] = '!cat_id,info_datemodified,info_used_time_info_planned_time,info_used_time_info_planned_time_info_replanned_time,info_id,actions';
|
||||
$query['default_cols'] = '!cat_id,info_datemodified,info_used_time_info_planned_time,info_used_time_info_planned_time_info_replanned_time,info_id';
|
||||
}
|
||||
// set old show_times pref, that get_info calculates the cumulated time of the timesheets (we only check used&planned to work for both time cols)
|
||||
$this->prefs['show_times'] = strpos($this->prefs[$query['columnselection_pref']],'info_used_time_info_planned_time') !== false;
|
||||
@ -861,7 +863,7 @@ class infolog_ui
|
||||
$values['nm']['filter_onchange'] = "app.infolog.filter_change();";
|
||||
|
||||
//apply infolog_filter2_change javascript method (show/hide details each rows) over onchange filter2
|
||||
$values['nm']['filter2_onchange'] = "app.infolog.filter2_change();";
|
||||
$values['nm']['filter2_onchange'] = "app.infolog.filter2_change";
|
||||
|
||||
// disable favories dropdown button, if not running as infolog
|
||||
if ($called_as && $called_as != 'infolog')
|
||||
@ -878,9 +880,11 @@ class infolog_ui
|
||||
$values['nm']['placeholder_actions'] = array('new');
|
||||
|
||||
// disable columns for main entry as set in the pref for details or no details
|
||||
$values['nm']['columnselection_pref'] = 'nextmatch-'.($action ? 'infolog.'.$action : 'infolog.index.rows')
|
||||
.($values['nm']['filter2']=='all' ? '-details' : '');
|
||||
if ($action == 'sp')
|
||||
{
|
||||
$pref = 'nextmatch-infolog.index.rows'.($values['nm']['filter2']=='all'?'-details':'');
|
||||
$pref = $values['nm']['columnselection_pref'];
|
||||
foreach(array('info_used_time_info_planned_time_info_replanned_time','info_datemodified','info_owner_info_responsible','customfields') as $name)
|
||||
{
|
||||
$values['main']['no_'.$name] = strpos($this->prefs[$pref],$name) === false;
|
||||
|
@ -151,11 +151,12 @@ app.classes.infolog = AppJS.extend(
|
||||
* show or hide the details of rows by selecting the filter2 option
|
||||
* either 'all' for details or 'no_description' for no details
|
||||
*
|
||||
* @param {Event} event Change event
|
||||
* @param {et2_nextmatch} nm The nextmatch widget that owns the filter
|
||||
*/
|
||||
filter2_change: function()
|
||||
filter2_change: function(event, nm)
|
||||
{
|
||||
var nm = this.et2.getWidgetById('nm');
|
||||
var filter2 = this.et2.getWidgetById('filter2');
|
||||
var filter2 = nm.getWidgetById('filter2');
|
||||
|
||||
if (nm && filter2)
|
||||
{
|
||||
@ -163,16 +164,17 @@ app.classes.infolog = AppJS.extend(
|
||||
this.show_details(filter2.value == 'all');
|
||||
|
||||
// Change preference location - widget is nextmatch
|
||||
nm.options.settings.columnselection_pref = 'infolog.index.rows'+(filter2.value == 'all' ? '-details' :'');
|
||||
|
||||
nm.options.settings.columnselection_pref = nm.options.settings.columnselection_pref.replace('-details','') + (filter2.value == 'all' ? '-details' :'');
|
||||
|
||||
// Load new preferences
|
||||
var colData = [];
|
||||
for(var i = 0; i < nm.columns.length; i++) colData[i] = {disabled: true, width: '20'};
|
||||
var colData = nm.columns.slice();
|
||||
for(var i = 0; i < nm.columns.length; i++) colData[i].disabled=false;
|
||||
nm._applyUserPreferences(nm.columns, colData);
|
||||
|
||||
// Now apply them to columns
|
||||
for(var i = 0; i < colData.length; i++)
|
||||
{
|
||||
// Wants a string
|
||||
nm.dataview.getColumnMgr().columns[i].set_width(colData[i].width + 'px');
|
||||
nm.dataview.getColumnMgr().columns[i].set_width(colData[i].width);
|
||||
nm.dataview.getColumnMgr().columns[i].set_visibility(!colData[i].disabled);
|
||||
}
|
||||
nm.dataview.getColumnMgr().updated = true;
|
||||
|
Loading…
Reference in New Issue
Block a user