Skip to content

Commit

Permalink
Merge pull request #52 from carrbrpoa/search/fixed-values
Browse files Browse the repository at this point in the history
Adds a new possibility of Search's input data and change .gitignore
  • Loading branch information
tmcgee committed Feb 15, 2016
2 parents 43e26c4 + 00489a8 commit e01af19
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 12 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
*.sublime-workspace
*.sublime-project
node_modules/
dist/
dist/
.project
1 change: 1 addition & 0 deletions config/searchWidget.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ define([
label: 'Type of Damage',
expression: '(typdamage LIKE \'[value]%\')',
placeholder: 'Enter the text Destroyed, Major or Minor',
values: ['Destroyed', 'Major', 'Minor'],
minChars: 3
}
],
Expand Down
59 changes: 48 additions & 11 deletions widgets/Search.js
Original file line number Diff line number Diff line change
Expand Up @@ -493,9 +493,11 @@ define([
},

getSearchTerm: function (idx, field) {
var searchTerm = this['inputSearchTerm' + idx].get('value');
var fixedValues = field.values && field.values.length > 0;
var targedField = this[(fixedValues ? 'selectSearchTerm' : 'inputSearchTerm') + idx];
var searchTerm = targedField.get('value');
if (!searchTerm && field.required) {
this['inputSearchTerm' + idx].domNode.focus();
targedField.domNode.focus();

topic.publish('growler/growl', {
title: 'Search',
Expand Down Expand Up @@ -523,6 +525,7 @@ define([
executeSearch: function (options) {
if (options.searchTerm) {
this.inputSearchTerm0.set('value', options.searchTerm);
this.selectSearchTerm0.set('value', options.searchTerm);
}
if (options.bufferDistance) {
this.inputBufferDistance.set('value', options.bufferDistance);
Expand Down Expand Up @@ -646,26 +649,60 @@ define([
if (k > 0 && layer.findOptions) { // only show one field for FindTasks
display = 'none';
}
var hasField = false;
var formLabel = this['labelSearchTerm' + k];
var formInput = this['inputSearchTerm' + k];
if (formInput) {
var formSelect = this['selectSearchTerm' + k];
var targetInput = formInput;
if (formInput || formSelect) {
var field = fields[k];
if (field) {
hasField = true;
var txt = field.label + ':';
if (field.minChars) {
txt += ' (at least ' + field.minChars + ' chars)';
}

formLabel.textContent = txt;
formInput.set('value', '');
formInput.set('placeHolder', field.placeholder);

var fixedValues = field.values && field.values.length > 0;
if (fixedValues) {
targetInput = formSelect;
targetInput.set('value', null);
targetInput.set('options', null);

var options = [];
for (var i = 0; i < field.values.length; i++) {
var option = {
value: field.values[i],
label: field.values[i]
};
options.push(option);
if (i === 0) {
options[i].selected = true;
}
}

domStyle.set(formInput.domNode, 'display', 'none');
targetInput.set('options', options);
targetInput.set('value', options[0].value);
} else {
if (field.minChars) {
txt += ' (at least ' + field.minChars + ' chars)';
}

domStyle.set(formSelect.domNode, 'display', 'none');
targetInput.set('value', '');
targetInput.set('placeHolder', field.placeholder);
}
} else {
display = 'none';
disabled = true;
}

formInput.set('disabled', disabled);
domStyle.set(formInput.domNode, 'display', display);
targetInput.set('disabled', disabled);
if (hasField) {
domStyle.set(targetInput.domNode, 'display', display);
} else {
domStyle.set(formInput.domNode, 'display', display);
domStyle.set(formSelect.domNode, 'display', display);
}
domStyle.set(formLabel, 'display', display);
}
}
Expand Down
5 changes: 5 additions & 0 deletions widgets/Search/templates/Search.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,23 @@
<div id="divAttributeQueryFields" class="searchSelector searchFields">
<label data-dojo-attach-point="labelSearchTerm0">&nbsp;</label>
<input type="text" style="width:100%;" data-dojo-type="dijit/form/TextBox" data-dojo-attach-point="inputSearchTerm0" data-dojo-props="trim:true,disabled:true" />
<select style="width:100%; display:none;" data-dojo-attach-point="selectSearchTerm0" data-dojo-type="dijit/form/Select"></select>
<div data-dojo-attach-point="queryContainsDom">
<input type="checkbox" data-dojo-attach-point="containsSearchText" data-dojo-type="dijit/form/CheckBox" data-dojo-props="'class':'optionsCheckBox'"/>
<label>${i18n.Labels.exactMatches}</label>
</div>
<label data-dojo-attach-point="labelSearchTerm1">&nbsp;</label>
<input type="text" style="width:100%;" data-dojo-type="dijit/form/TextBox" data-dojo-attach-point="inputSearchTerm1" data-dojo-props="trim:true,disabled:true" />
<select style="width:100%; display:none;" data-dojo-attach-point="selectSearchTerm1" data-dojo-type="dijit/form/Select"></select>
<label data-dojo-attach-point="labelSearchTerm2">&nbsp;</label>
<input type="text" style="width:100%;" data-dojo-type="dijit/form/TextBox" data-dojo-attach-point="inputSearchTerm2" data-dojo-props="trim:true,disabled:true" />
<select style="width:100%; display:none;" data-dojo-attach-point="selectSearchTerm2" data-dojo-type="dijit/form/Select"></select>
<label data-dojo-attach-point="labelSearchTerm3">&nbsp;</label>
<input type="text" style="width:100%;" data-dojo-type="dijit/form/TextBox" data-dojo-attach-point="inputSearchTerm3" data-dojo-props="trim:true,disabled:true" />
<select style="width:100%; display:none;" data-dojo-attach-point="selectSearchTerm3" data-dojo-type="dijit/form/Select"></select>
<label data-dojo-attach-point="labelSearchTerm4">&nbsp;</label>
<input type="text" style="width:100%;" data-dojo-type="dijit/form/TextBox" data-dojo-attach-point="inputSearchTerm4" data-dojo-props="trim:true,disabled:true" />
<select style="width:100%; display:none;" data-dojo-attach-point="selectSearchTerm4" data-dojo-type="dijit/form/Select"></select>
</div>
<div data-dojo-attach-point="divAttributeSpatialFilter" class="searchSelector">
<label>${i18n.Labels.spatialFilter}:</label><br>
Expand Down

0 comments on commit e01af19

Please sign in to comment.