Hi,
fetchMissingValueReply -> _fetchMissingDisplayFieldValueReply -> _clearLoadingDisplayValue -> _fetchMissingValueInProgress(checkDisplayFieldValues, newValue):
when there is selected multiple items in a SelectItem, newValue variable will contain an array, and code inside will always return true, and that's why our SelectItem fields is never set back to setCanEdit(true) after "Loading..."
Currently fast fix, is to override "isc.propertyDefined" and add support to accept array in second argument.
PS. Sorry, I'm really busy now, so cannot provide simple test case. Hope the description will be clear to understand a problem :)
fetchMissingValueReply -> _fetchMissingDisplayFieldValueReply -> _clearLoadingDisplayValue -> _fetchMissingValueInProgress(checkDisplayFieldValues, newValue):
when there is selected multiple items in a SelectItem, newValue variable will contain an array, and code inside will always return true, and that's why our SelectItem fields is never set back to setCanEdit(true) after "Loading..."
Code:
_fetchMissingValueInProgress : function (checkDisplayFieldValues, newValue) { // Assertion - if we have the value in our _displayFieldValueMap, we've already // fetched and retrieved the display value var undef; if (newValue !== undef && checkDisplayFieldValues && this._displayFieldValueMap && isc.propertyDefined(this._displayFieldValueMap, newValue)) /// <- isc.propertyDefined doesn't support "newValue" to be an array so, we never call "return false;" { return false; }
Code:
_clearLoadingDisplayValue : function (notFoundCount) { //.... var value = this.getValue(); if (!this._fetchMissingValueInProgress(true, value)) { // <- on multiple items we never entering into this block this.logDebug("clearLoadingDisplayValue() - " + "no outstanding fetch for display value, so clearing loading marker", "loadingDisplayValue"); this._showingLoadingDisplayValue = false; if (this._readOnlyFetchMissingValue) { delete this._readOnlyFetchMissingValue; this.setCanEdit(this._explicitCanEdit); }
PS. Sorry, I'm really busy now, so cannot provide simple test case. Hope the description will be clear to understand a problem :)
Comment