util.getFormWidgetValues = function()

in broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js [655:730]


        util.getFormWidgetValues = function (form, initialData)
        {
            var values = {};
            var formWidgets = form.getChildren();
            for (var i in formWidgets)
            {
                var widget = formWidgets[i];
                var value = widget.get("value") != "undefined" ? widget.get("value") : undefined;
                var propName = widget.get("name") != "undefined" ? widget.get("name") : undefined;
                var required = widget.get("required") != "undefined" ? widget.get("required") : undefined;
                var excluded = widget.get("excluded") != "undefined" ? widget.get("excluded") : undefined;
                var checked = widget.get("checked") != "undefined" ? widget.get("checked") : undefined;
                var type = widget.get("type") != "undefined" ? widget.get("type") : undefined;
                if (!excluded && propName && (value !== undefined || required))
                {
                    if (widget instanceof dijit.form.RadioButton)
                    {
                        if (checked)
                        {
                            var currentValue = values[propName];
                            if (currentValue)
                            {
                                if (lang.isArray(currentValue))
                                {
                                    currentValue.push(value)
                                }
                                else
                                {
                                    values[propName] = [currentValue, value];
                                }
                            }
                            else
                            {
                                values[propName] = value;
                            }
                        }
                    }
                    else if (widget instanceof dijit.form.CheckBox)
                    {
                        values[propName] = checked;
                    }
                    else
                    {
                        if (type === "password" || widget.hasOwnProperty("secureAttribute"))
                        {
                            if (value)
                            {
                                values[propName] = value;
                            }
                        }
                        else
                        {
                             if (widget.hasOwnProperty("effectiveDefaultValue") &&
                                 value === widget.effectiveDefaultValue && initialData &&
                                 (initialData[propName] === null || initialData[propName] === undefined))
                             {
                                 // widget value is effective default value, thus, skipping it...
                                 continue;
                             }
                            values[propName] = value ? value : null;
                        }
                    }
                }
            }
            if (initialData)
            {
                for (var propName in values)
                {
                    if (values[propName] == initialData[propName])
                    {
                        delete values[propName];
                    }
                }
            }
            return values;
        };