diff --git a/config/searchWidget.js b/config/searchWidget.js index 0b4cac3..396f777 100644 --- a/config/searchWidget.js +++ b/config/searchWidget.js @@ -42,6 +42,7 @@ define([ }, enableAdvancedSearch: true, + enableClearButton: true, layers: [ { @@ -104,6 +105,7 @@ define([ sublayerID: 5, outFields: ['*'] }, + enableClearButton: false, searchFields: [ { field: 'Hospital Name', diff --git a/widgets/Search.js b/widgets/Search.js index e9388bc..102c7a5 100644 --- a/widgets/Search.js +++ b/widgets/Search.js @@ -1165,6 +1165,7 @@ define([ domStyle.set(this.divQueryContains, 'display', ((layer.findOptions) ? 'block' : 'none')); this.checkAdvancedSearchEnabled(layer, search); + this.checkClearButtonEnabled(layer, search); // put focus on the first input field var input = registry.byId(search.inputIds[0]); @@ -1175,6 +1176,30 @@ define([ })); }, + clearAttributeFields: function () { + var layer = this.layers[this.attributeLayer]; + if (layer) { + var searches = layer.attributeSearches; + if (searches) { + for (var j = 0; j < searches.length; j++) { + var search = searches[j]; + if (search) { + var divNode = dom.byId(search.divName); + if (!divNode) { + return; + } + for (var k = 0; k < search.searchFields.length; k++) { + var input = registry.byId(search.inputIds[k]); + if (input) { + input.setValue(''); + } + } + } + } + } + } + }, + getDefaultWhereClause: function (layer, search, field) { var where = layer.expression || ''; if (search && search.expression) { @@ -1369,6 +1394,22 @@ define([ return enabled; }, + checkClearButtonEnabled: function (layer, search) { + var enabled = this.enableClearButton; + if (layer && layer.enableClearButton === false) { + enabled = false; + } else if (search && search.enableClearButton === false) { + enabled = false; + } + + if (enabled) { + this.showClearButton(); + } else { + this.hideClearButton(); + } + return enabled; + }, + showAdvancedSearch: function () { if (this.enableAdvancedSearch) { domStyle.set(this.divAdvancedSearchButtons, 'display', 'block'); @@ -1380,6 +1421,16 @@ define([ this.setAdvancedSearch(false); }, + showClearButton: function () { + if (this.enableClearButton) { + domStyle.set(this.divExtraActions, 'display', 'inline-block'); + } + }, + + hideClearButton: function () { + domStyle.set(this.divExtraActions, 'display', 'none'); + }, + doExportSQL: function () { domAttr.set(this.sqlImportExportDialogTitle, 'textContent', this.i18n.Labels.exportDialogTitle); this.sqlImportExportTextbox.set('disabled', true); diff --git a/widgets/Search/nls/Search.js b/widgets/Search/nls/Search.js index 2380c8d..7ac0caf 100644 --- a/widgets/Search/nls/Search.js +++ b/widgets/Search/nls/Search.js @@ -88,6 +88,10 @@ define({ exportSQL: { label: 'Export', showLabel: false + }, + clearFields: { + label: 'Clear', + showLabel: true } } } diff --git a/widgets/Search/templates/Search.html b/widgets/Search/templates/Search.html index 20f326e..4074726 100644 --- a/widgets/Search/templates/Search.html +++ b/widgets/Search/templates/Search.html @@ -81,6 +81,11 @@ +
+ +