Files
Phraseanet/www/scripts/common/geonames.js
2015-11-19 17:56:51 +01:00

45 lines
1.8 KiB
JavaScript

;
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
define(['jquery.geonames'], factory);
} else {
root.geonames = factory();
}
}(this, function () {
return {
init: function ($field, options) {
var geocompleter = $field.geocompleter(options);
// On focus add select-state
geocompleter.geocompleter("autocompleter", "on", "autocompletefocus", function (event, ui) {
$("li", $(event.originalEvent.target)).closest("li").removeClass("selected");
$("a.ui-state-active, a.ui-state-hover, a.ui-state-focus", $(event.originalEvent.target)).closest("li").addClass("selected");
});
// On search request add loading-state
geocompleter.geocompleter("autocompleter", "on", "autocompletesearch", function (event, ui) {
$(this).addClass('input-loading');
$(this).removeClass('input-error');
});
// On response remove loading-state
geocompleter.geocompleter("autocompleter", "on", "autocompleteresponse", function (event, ui) {
$(this).removeClass('input-loading');
});
// On close menu remove loading-state
geocompleter.geocompleter("autocompleter", "on", "autocompleteclose", function (event, ui) {
$(this).removeClass('input-loading');
});
// On request error add error-state
geocompleter.geocompleter("autocompleter", "on", "geotocompleter.request.error", function (jqXhr, status, error) {
$(this).removeClass('input-loading');
$(this).addClass('input-error');
});
return geocompleter;
}
};
}));