mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-16 21:13:23 +01:00
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++)
|
for (var x = 0; x < _row.length; x++)
|
||||||
{
|
{
|
||||||
this.columns[x] = {
|
this.columns[x] = jQuery.extend({
|
||||||
"widget": _row[x].widget
|
"widget": _row[x].widget
|
||||||
};
|
},_colData[x]);
|
||||||
|
|
||||||
|
|
||||||
columnData[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
|
// 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
|
// so we have to check that as well
|
||||||
$details = $query['filter2'] == 'all';
|
$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);
|
//_debug_array($columselection);
|
||||||
if ($columselection)
|
if ($columselection)
|
||||||
{
|
{
|
||||||
@ -394,13 +398,11 @@ class infolog_ui
|
|||||||
// add a '-details' to the name of the columnselection pref
|
// add a '-details' to the name of the columnselection pref
|
||||||
if ($details)
|
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';
|
||||||
$query['default_cols'] = '!cat_id,info_used_time_info_planned_time,info_used_time_info_planned_time_info_replanned_time,info_id,actions';
|
|
||||||
}
|
}
|
||||||
else
|
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';
|
||||||
$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';
|
|
||||||
}
|
}
|
||||||
// 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)
|
// 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;
|
$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();";
|
$values['nm']['filter_onchange'] = "app.infolog.filter_change();";
|
||||||
|
|
||||||
//apply infolog_filter2_change javascript method (show/hide details each rows) over onchange filter2
|
//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
|
// disable favories dropdown button, if not running as infolog
|
||||||
if ($called_as && $called_as != 'infolog')
|
if ($called_as && $called_as != 'infolog')
|
||||||
@ -878,9 +880,11 @@ class infolog_ui
|
|||||||
$values['nm']['placeholder_actions'] = array('new');
|
$values['nm']['placeholder_actions'] = array('new');
|
||||||
|
|
||||||
// disable columns for main entry as set in the pref for details or no details
|
// 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')
|
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)
|
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;
|
$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
|
* show or hide the details of rows by selecting the filter2 option
|
||||||
* either 'all' for details or 'no_description' for no details
|
* 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 = nm.getWidgetById('filter2');
|
||||||
var filter2 = this.et2.getWidgetById('filter2');
|
|
||||||
|
|
||||||
if (nm && filter2)
|
if (nm && filter2)
|
||||||
{
|
{
|
||||||
@ -163,16 +164,17 @@ app.classes.infolog = AppJS.extend(
|
|||||||
this.show_details(filter2.value == 'all');
|
this.show_details(filter2.value == 'all');
|
||||||
|
|
||||||
// Change preference location - widget is nextmatch
|
// 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
|
// Load new preferences
|
||||||
var colData = [];
|
var colData = nm.columns.slice();
|
||||||
for(var i = 0; i < nm.columns.length; i++) colData[i] = {disabled: true, width: '20'};
|
for(var i = 0; i < nm.columns.length; i++) colData[i].disabled=false;
|
||||||
nm._applyUserPreferences(nm.columns, colData);
|
nm._applyUserPreferences(nm.columns, colData);
|
||||||
|
|
||||||
|
// Now apply them to columns
|
||||||
for(var i = 0; i < colData.length; i++)
|
for(var i = 0; i < colData.length; i++)
|
||||||
{
|
{
|
||||||
// Wants a string
|
nm.dataview.getColumnMgr().columns[i].set_width(colData[i].width);
|
||||||
nm.dataview.getColumnMgr().columns[i].set_width(colData[i].width + 'px');
|
|
||||||
nm.dataview.getColumnMgr().columns[i].set_visibility(!colData[i].disabled);
|
nm.dataview.getColumnMgr().columns[i].set_visibility(!colData[i].disabled);
|
||||||
}
|
}
|
||||||
nm.dataview.getColumnMgr().updated = true;
|
nm.dataview.getColumnMgr().updated = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user