From 243f20e98cab980b3f3c9c0738940316ff774b1c Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Fri, 10 Jan 2014 07:08:45 +0000 Subject: [PATCH] fixed handling of optgroups, eg. notification chains in prefs --- .../inc/class.etemplate_widget_menupopup.inc.php | 15 +++++++++++++-- etemplate/js/et2_widget_selectbox.js | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/etemplate/inc/class.etemplate_widget_menupopup.inc.php b/etemplate/inc/class.etemplate_widget_menupopup.inc.php index 71e6044ab0..a360cab60f 100644 --- a/etemplate/inc/class.etemplate_widget_menupopup.inc.php +++ b/etemplate/inc/class.etemplate_widget_menupopup.inc.php @@ -288,15 +288,26 @@ class etemplate_widget_menupopup extends etemplate_widget $values = array(); foreach($options as $key => $val) { - if (is_array($val) && isset($val['value'])) + if (is_array($val)) { - $values[] = $val['value']; + if (isset($val['value'])) + { + $values[] = $val['value']; + } + else // optgroup + { + foreach($val as $k => $v) + { + $values[] = is_array($v) && isset($v['value']) ? $v['value'] : $k; + } + } } else { $values[] = $key; } } + //error_log(__METHOD__."('$name', TRUE) options=".array2string($options).' --> values='.array2string($values)); $options = $values; } //error_log(__METHOD__."('$name') returning ".array2string($options)); diff --git a/etemplate/js/et2_widget_selectbox.js b/etemplate/js/et2_widget_selectbox.js index 87a7b896b4..aba83231b3 100644 --- a/etemplate/js/et2_widget_selectbox.js +++ b/etemplate/js/et2_widget_selectbox.js @@ -684,7 +684,7 @@ var et2_selectbox = et2_inputWidget.extend( } else { - this._appendOptionElement(key, _options[key][sub],undefined,group); + this._appendOptionElement(sub, _options[key][sub],undefined,group); } } }