mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-29 11:23:54 +01:00
More involved searching for where sel_options could be. Added nm[rows][sel_options][ID] as an option
This commit is contained in:
parent
f29d9ce72d
commit
7e77eff672
@ -1097,13 +1097,12 @@ var et2_nextmatch_header_bar = et2_DOMWidget.extend(et2_INextmatchHeader, {
|
|||||||
* Sets value, options, labels, and change handlers
|
* Sets value, options, labels, and change handlers
|
||||||
*/
|
*/
|
||||||
_build_select: function(name, type, value, lang) {
|
_build_select: function(name, type, value, lang) {
|
||||||
// Create widget
|
var widget_options = {
|
||||||
var select = et2_createWidget(type, {
|
|
||||||
"id": name,
|
"id": name,
|
||||||
"label": this.nextmatch.options.settings[name+"_label"]
|
"label": this.nextmatch.options.settings[name+"_label"],
|
||||||
},this);
|
};
|
||||||
|
|
||||||
// Set options
|
// Set select options
|
||||||
// Check in content for options-<name>
|
// Check in content for options-<name>
|
||||||
var mgr = this.nextmatch.getArrayMgr("content");
|
var mgr = this.nextmatch.getArrayMgr("content");
|
||||||
var options = mgr.getEntry("options-" + name);
|
var options = mgr.getEntry("options-" + name);
|
||||||
@ -1111,6 +1110,35 @@ var et2_nextmatch_header_bar = et2_DOMWidget.extend(et2_INextmatchHeader, {
|
|||||||
if(!options) options = this.nextmatch.getArrayMgr("sel_options").getEntry(name);
|
if(!options) options = this.nextmatch.getArrayMgr("sel_options").getEntry(name);
|
||||||
// Check parent sel_options, because those are usually global and don't get passed down
|
// Check parent sel_options, because those are usually global and don't get passed down
|
||||||
if(!options) options = this.nextmatch.getArrayMgr("sel_options").parentMgr.getEntry(name);
|
if(!options) options = this.nextmatch.getArrayMgr("sel_options").parentMgr.getEntry(name);
|
||||||
|
// Sometimes legacy stuff puts it in here
|
||||||
|
if(!options) options = mgr.getEntry('rows[sel_options]['+name+']');
|
||||||
|
|
||||||
|
// Maybe in a row, and options got stuck in ${row} instead of top level
|
||||||
|
var row_stuck = ['${row}','{$row}'];
|
||||||
|
for(var i = 0; !options && i < row_stuck.length; i++)
|
||||||
|
{
|
||||||
|
var row_id = '';
|
||||||
|
if((!options || options.length == 0) && (
|
||||||
|
// perspectiveData.row in nm, data["${row}"] in an auto-repeat grid
|
||||||
|
this.nextmatch.getArrayMgr("sel_options").perspectiveData.row || this.nextmatch.getArrayMgr("sel_options").data[row_stuck[i]]))
|
||||||
|
{
|
||||||
|
var row_id = name.replace(/[0-9]+/,row_stuck[i]);
|
||||||
|
options = this.nextmatch.getArrayMgr("sel_options").getEntry(row_id);
|
||||||
|
if(!options)
|
||||||
|
{
|
||||||
|
row_id = row_stuck[i] + "["+name+"]";
|
||||||
|
options = this.nextmatch.getArrayMgr("sel_options").getEntry(row_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(options)
|
||||||
|
{
|
||||||
|
this.egw().debug('warn', 'Nextmatch filter options in a weird place - "%s". Should be in sel_options[%s].',row_id,name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create widget
|
||||||
|
var select = et2_createWidget(type, widget_options, this);
|
||||||
|
|
||||||
if(options) select.set_select_options(options);
|
if(options) select.set_select_options(options);
|
||||||
|
|
||||||
// Set value
|
// Set value
|
||||||
@ -1147,7 +1175,7 @@ var et2_nextmatch_header_bar = et2_DOMWidget.extend(et2_INextmatchHeader, {
|
|||||||
else // default request changed rows with new filters, previous this.form.submit()
|
else // default request changed rows with new filters, previous this.form.submit()
|
||||||
{
|
{
|
||||||
input.change(this.nextmatch, function(event) {
|
input.change(this.nextmatch, function(event) {
|
||||||
event.data.activeFilters[name] = input.val();
|
event.data.activeFilters[name] = select.getValue();
|
||||||
event.data.applyFilters();
|
event.data.applyFilters();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user