how can I modify the Search Widget to stop zooming after a search and to pan if the searched item is outside the current extent?
I did the same in Flex...but with Web AppBuilder I don't understand where I have to modify...
Thanks,
Naty
Naty,
Sure it will require some code changes though:
In the [install dir]\server\apps\[app#]\widgets\Search\Widgets.js, find the _convertConfig function and add line 10 and the comma on 9:
def.resolve({
locator: new Locator(source.url || ""),
outFields: ["*"],
singleLineFieldName: source.singleLineFieldName || "",
name: jimuUtils.stripHTML(source.name || ""),
placeholder: jimuUtils.stripHTML(source.placeholder || ""),
countryCode: source.countryCode || "",
maxResults: source.maxResults || 6,
useMapExtent: !!source.searchInCurrentMapExtent,
autoNavigate: false
});If you want to do the same for feature layers as well then make these changes as well Line 12 and comma on 11:
var convertedSource = {
featureLayer: flayer,
outFields: ["*"],
searchFields: fNames,
displayField: source.displayField || "",
exactMatch: !!source.exactMatch,
name: jimuUtils.stripHTML(source.name || ""),
placeholder: jimuUtils.stripHTML(source.placeholder || ""),
maxResults: source.maxResults || 6,
infoTemplate: template,
useMapExtent: !!source.searchInCurrentMapExtent,
autoNavigate: false
};Then in the _onSelectResult function add these line to the end of that function:
if(result.feature.geometry.type === 'point'){
this.map.centerAt(result.feature.geometry);
}else{
this.map.centerAt(result.feature.geometry.getExtent().getCenter());
}