Add geonames module

This commit is contained in:
Nicolas Le Goff
2013-07-03 20:11:59 +02:00
parent 456bbbb0ee
commit e20e21a3d9
7 changed files with 69 additions and 139 deletions

View File

@@ -18,16 +18,20 @@ require.config({
i18n: "../assets/i18next/release/i18next.amd-1.6.2.min",
bootstrap: "../skins/build/bootstrap/js/bootstrap.min",
multiselect: "../assets/bootstrap-multiselect/js/bootstrap-multiselect",
"jquery.geocompleter": "../assets/geonames-server-jquery-plugin/jquery.geonames"
"jquery.geonames": "../assets/geonames-server-jquery-plugin/jquery.geonames",
geonames: "../skins/geonames/geonames"
},
shim: {
bootstrap : ["jquery"],
jqueryui: {
deps: ["jquery"]
},
"jquery.geocompleter" : {
deps: ['jquery'],
exports: 'jQuery.fn.geocompleter'
"jquery.geonames" : {
deps: ['jquery', 'jqueryui'],
exports: '$.fn.geocompleter'
},
geonames: {
deps: ["jquery.geonames"]
},
multiselect: {
deps: ["jquery", "bootstrap"]

View File

@@ -13,9 +13,8 @@ require([
"i18n",
"apps/login/home/common",
"common/forms/views/formType/passwordSetter",
"jqueryui",
"jquery.geocompleter"
], function($, i18n, Common, RegisterForm) {
"geonames"
], function($, i18n, Common, RegisterForm, geonames) {
var fieldsConfiguration = [];
$.when.apply($, [
@@ -89,7 +88,7 @@ require([
rules: rules
});
var geocompleter = $("#geonameid").geocompleter({
var geocompleter = geonames.init($("#geonameid"), {
"server": $form.data("geonames-server-adress"),
"limit": 40
});
@@ -101,38 +100,10 @@ require([
"at": "left bottom"
});
// 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 open menu calculate max-width
geocompleter.geocompleter("autocompleter", "on", "autocompleteopen", function(event, ui) {
$(this).autocomplete("widget").css("min-width", geocompleter.closest(".input-table").outerWidth());
});
// 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');
});
});
});
});