Login page geonames plugin integration

This commit is contained in:
Nicolas Le Goff
2013-07-02 21:36:30 +02:00
parent bb98eabdfa
commit a64c70ae8d
21 changed files with 427 additions and 384 deletions

View File

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

View File

@@ -12,7 +12,9 @@ require([
"jquery",
"i18n",
"apps/login/home/common",
"common/forms/views/formType/passwordSetter"
"common/forms/views/formType/passwordSetter",
"jqueryui",
"jquery.geocompleter"
], function($, i18n, Common, RegisterForm) {
var fieldsConfiguration = [];
@@ -80,10 +82,57 @@ require([
}
});
var $form = $("form[name=registerForm]");
new RegisterForm({
el : $("form[name=registerForm]"),
el : $form,
rules: rules
});
var geocompleter = $("#geonameid").geocompleter({
"server": $form.data("geonames-server-adress"),
"limit": 40
});
// Positioning menu below input
geocompleter.geocompleter("autocompleter", "option", "position", {
"of": geocompleter.closest(".input-table"),
"my": "left top",
"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');
});
});
});
});