From eaaad855216836e84f2635ec309b537837754638 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Tue, 18 Mar 2014 13:22:15 +0000 Subject: [PATCH] reverted r42883: Make sure there is a "None" option if the select-account is not required so user is not forced to pick an account --> if "None" option is wanted, it should be added to template, that is the logic in regular select box too --- etemplate/js/et2_widget_selectAccount.js | 50 +++++++++++------------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/etemplate/js/et2_widget_selectAccount.js b/etemplate/js/et2_widget_selectAccount.js index 6c7285bcba..1ed522fe59 100644 --- a/etemplate/js/et2_widget_selectAccount.js +++ b/etemplate/js/et2_widget_selectAccount.js @@ -1,6 +1,6 @@ /** * EGroupware eTemplate2 - JS Select account widget - * + * * Selecting accounts needs special UI, and displaying needs special consideration * to avoid sending the entire user list to the client. * @@ -29,7 +29,7 @@ * - 'popup' => No selectbox, just search. No popup, the search replaces the selectbox * * Only primary_group and popup need anything different from a normal selectbox - * + * * @augments et2_selectbox */ var et2_selectAccount = et2_selectbox.extend( @@ -49,7 +49,7 @@ var et2_selectAccount = et2_selectbox.extend( /** * Constructor - * + * * @param _parent * @param _attrs * @memberOf et2_selectAccount @@ -59,7 +59,7 @@ var et2_selectAccount = et2_selectbox.extend( // Type in rows or somewhere else? if(jQuery.inArray(_attrs['empty_label'], this.account_types) > 0 && ( - jQuery.inArray(_attrs['account_type'], this.account_types) < 0 || + jQuery.inArray(_attrs['account_type'], this.account_types) < 0 || _attrs['account_type'] == this.attributes.account_type['default']) ) { @@ -70,12 +70,6 @@ var et2_selectAccount = et2_selectbox.extend( { this.egw().debug("warn", "Invalid account_type: %s Valid options:",_attrs['account_type'], this.account_types); } - - // If not required, make sure there's an empty label - if(_attrs['rows'] == 1 && !_attrs['empty_label'] && !_attrs['needed']) - { - _attrs['empty_label'] = 'None'; - } // Holder for search jQuery nodes this.search = null; @@ -108,7 +102,7 @@ var et2_selectAccount = et2_selectbox.extend( /** * Single selection - override to add search button */ - createInputWidget: function() + createInputWidget: function() { this._super.apply(this, arguments); @@ -178,7 +172,7 @@ var et2_selectAccount = et2_selectbox.extend( // Fix ID as sent from server - must be numeric selected.item.value = parseInt(selected.item.value); - + // This one is important, it makes sure the option is there old_select.apply(this, arguments); @@ -200,7 +194,7 @@ var et2_selectAccount = et2_selectbox.extend( this.search = jQuery(document.createElement("li")) .appendTo(this.multiOptions.prev().find('ul')); this.options.multiple = true; - + // Add search button var button = jQuery(document.createElement("li")) .addClass("et2_clickable") @@ -296,14 +290,14 @@ var et2_selectAccount = et2_selectbox.extend( table.css("width", "100%").css("height", "100%"); var search_col = jQuery('#search_col',table); var select_col = jQuery('#selection_col',table); - + // Search / Selection search_col.append(widget._create_search()); - + // Currently selected select_col.append(widget._create_selected()); - - var ok_click = function() { + + var ok_click = function() { jQuery(this).dialog("close"); // Update widget with selected var ids = []; @@ -349,7 +343,7 @@ var et2_selectAccount = et2_selectbox.extend( click: update_function },{ text: this.egw().lang("cancel"), - click: function() { + click: function() { jQuery(this).dialog("close"); jQuery(this).dialog("destroy"); }} @@ -421,7 +415,7 @@ var et2_selectAccount = et2_selectbox.extend( .css("height", "100%") .append(results) .appendTo(search); - + // Override link-entry auto-complete for custom display // Don't show normal drop-down search_widget.search.data("ui-autocomplete")._suggest = function(items) { @@ -508,7 +502,7 @@ var et2_selectAccount = et2_selectbox.extend( node = jQuery(document.createElement('li')); } node.attr("data-id", item.value); - + jQuery('') .css("float", "right") .appendTo(node) @@ -535,7 +529,7 @@ var et2_selectAccount = et2_selectbox.extend( var label = jQuery(document.createElement('label')) .addClass("loading") .appendTo(node); - + this.egw().link_title('home-accounts', item.value, function(name) { label.text(name).removeClass("loading"); }, label); @@ -596,7 +590,7 @@ var et2_selectAccount = et2_selectbox.extend( there.show(); return; } - + var option = jQuery(document.createElement('li')) .attr("data-id",value) .appendTo(list); @@ -624,10 +618,10 @@ et2_register_widget(et2_selectAccount, ["select-account"]); * et2_selectAccount_ro is the readonly implementation of select account * It extends et2_link to avoid needing the whole user list on the client. * Instead, it just asks for the names of the ones needed, as needed. - * + * * @augments et2_link_string */ -var et2_selectAccount_ro = et2_link_string.extend([et2_IDetachedDOM], +var et2_selectAccount_ro = et2_link_string.extend([et2_IDetachedDOM], { attributes: { "empty_label": { @@ -642,7 +636,7 @@ var et2_selectAccount_ro = et2_link_string.extend([et2_IDetachedDOM], /** * Constructor - * + * * @param _parent * @param options * @memberOf et2_selectAccount_ro @@ -650,7 +644,7 @@ var et2_selectAccount_ro = et2_link_string.extend([et2_IDetachedDOM], init: function(_parent, options) { /** Resolve some circular dependency problems here - selectAccount extends link, link is in a file that needs select, + selectAccount extends link, link is in a file that needs select, select has menulist wrapper, which needs to know about selectAccount before it allows it */ if(_parent.supportedWidgetClasses.indexOf(et2_selectAccount_ro) < 0) @@ -660,7 +654,7 @@ var et2_selectAccount_ro = et2_link_string.extend([et2_IDetachedDOM], this._super.apply(this, arguments); - // Legacy options could have row count or empty label in first slot + // Legacy options could have row count or empty label in first slot if(typeof this.options.empty_label == "string") { if(isNaN(this.options.empty_label)) @@ -681,7 +675,7 @@ var et2_selectAccount_ro = et2_link_string.extend([et2_IDetachedDOM], set_value: function(_value) { // Explode csv - if(typeof _value == 'string' && _value.indexOf(',') > 0) + if(typeof _value == 'string' && _value.indexOf(',') > 0) { _value = _value.split(','); }