Etemplate: Fix some selectAccount bugs when multiple=true

This commit is contained in:
nathangray 2020-09-15 11:23:02 -06:00
parent a19e97df63
commit 39b630d36e
4 changed files with 14 additions and 9 deletions

View File

@ -619,7 +619,9 @@ var et2_link_entry = /** @class */ (function (_super) {
select: function (event, item) { select: function (event, item) {
event.data = self; event.data = self;
// Correct changed value from server // Correct changed value from server
item.item.value = item.item.value.trim(); if (item.item.value) {
item.item.value = ("" + item.item.value).trim();
}
self.select(event, item); self.select(event, item);
return false; return false;
}, },

View File

@ -804,7 +804,10 @@ export class et2_link_entry extends et2_inputWidget
{ {
event.data = self; event.data = self;
// Correct changed value from server // Correct changed value from server
item.item.value = item.item.value.trim(); if(item.item.value)
{
item.item.value = (""+item.item.value).trim();
}
self.select(event,item); self.select(event,item);
return false; return false;
}, },

View File

@ -326,10 +326,10 @@ var et2_selectAccount = /** @class */ (function (_super) {
// Add to list // Add to list
ids.push(id); ids.push(id);
// Make sure option is there // Make sure option is there
if (!widget.options.multiple && jQuery('input[id$="_opt_' + id + '"]', widget.multiOptions).length == 0) { if (widget.options.multiple && jQuery('input[id$="_opt_' + id + '"]', widget.multiOptions).length == 0) {
widget._appendMultiOption(id, jQuery('label', this).text()); widget._appendMultiOption(id, jQuery('label', this).text());
} }
else if (widget.options.multiple && jQuery('option[value="' + id + '"]', widget.node).length == 0) { else if (!widget.options.multiple && jQuery('option[value="' + id + '"]', widget.node).length == 0) {
widget._appendOptionElement(id, jQuery('label', this).text()); widget._appendOptionElement(id, jQuery('label', this).text());
} }
}); });
@ -395,7 +395,7 @@ var et2_selectAccount = /** @class */ (function (_super) {
self._appendOptionElement(selected.item.value, selected.item.label); self._appendOptionElement(selected.item.value, selected.item.label);
} }
self.set_value(selected.item.value); self.set_value(selected.item.value);
if (self.dialog) { if (self.dialog && self.dialog.div) {
self.dialog.div.dialog("close"); self.dialog.div.dialog("close");
} }
// Fire change event // Fire change event

View File

@ -405,11 +405,11 @@ export class et2_selectAccount extends et2_selectbox
ids.push(id); ids.push(id);
// Make sure option is there // Make sure option is there
if(!widget.options.multiple && jQuery('input[id$="_opt_'+id+'"]',widget.multiOptions).length == 0) if(widget.options.multiple && jQuery('input[id$="_opt_'+id+'"]',widget.multiOptions).length == 0)
{ {
widget._appendMultiOption(id,jQuery('label',this).text()); widget._appendMultiOption(id,jQuery('label',this).text());
} }
else if (widget.options.multiple && jQuery('option[value="'+id+'"]',widget.node).length == 0) else if (!widget.options.multiple && jQuery('option[value="'+id+'"]',widget.node).length == 0)
{ {
widget._appendOptionElement(id,jQuery('label',this).text()); widget._appendOptionElement(id,jQuery('label',this).text());
} }
@ -480,7 +480,7 @@ export class et2_selectAccount extends et2_selectbox
return true; return true;
}, },
'select'( e, selected) 'select'( e, selected)
{ {
// Make sure option is there // Make sure option is there
var already_there = false; var already_there = false;
var last_key = null; var last_key = null;
@ -495,7 +495,7 @@ export class et2_selectAccount extends et2_selectbox
self._appendOptionElement(selected.item.value, selected.item.label); self._appendOptionElement(selected.item.value, selected.item.label);
} }
self.set_value(selected.item.value); self.set_value(selected.item.value);
if(self.dialog) if(self.dialog && self.dialog.div)
{ {
self.dialog.div.dialog("close"); self.dialog.div.dialog("close");
} }