diff --git a/api/js/etemplate/et2_extension_nextmatch.js b/api/js/etemplate/et2_extension_nextmatch.js index 4c32b8475a..16f878867c 100644 --- a/api/js/etemplate/et2_extension_nextmatch.js +++ b/api/js/etemplate/et2_extension_nextmatch.js @@ -1063,16 +1063,18 @@ var et2_nextmatch = (function(){ "use strict"; return et2_DOMWidget.extend([et2_ // efficient apps that didn't send all custom fields in the first request var cf_added = jQuery(changed).filter(jQuery(custom_fields)).length > 0; - // Save visible columns - // 'nextmatch-' prefix is there in preference name, but not in setting, so add it in - this.egw().set_preference(app, pref, this.activeFilters.selectcols.join(","), - // Use callback after the preference gets set to trigger refresh, in case app - // isn't looking at selectcols and just uses preference - cf_added ? jQuery.proxy(function() {if(this.controller) this.controller.update(true);}, this):null - ); - - // Save adjusted column sizes - this.egw().set_preference(app, pref+"-size", colSize); + // Save visible columns and sizes if selectcols is not emtpy (an empty selectcols actually deletes the prefrence) + if(!jQuery.isEmptyObject(this.activeFilters.selectcols)){ + // 'nextmatch-' prefix is there in preference name, but not in setting, so add it in + this.egw().set_preference(app, pref, this.activeFilters.selectcols.join(","), + // Use callback after the preference gets set to trigger refresh, in case app + // isn't looking at selectcols and just uses preference + cf_added ? jQuery.proxy(function() {if(this.controller) this.controller.update(true);}, this):null + ); + // Save adjusted column sizes and inform user about it + this.egw().set_preference(app, pref+"-size", colSize); + this.egw().message(egw().lang("Saved column sizes to preferences.")); + } // No significant change (just normal columns shown) and no need to wait, // but the grid still needs to be redrawn if a custom field was removed because