diff --git a/Resources/public/js/chill.js b/Resources/public/js/chill.js new file mode 100644 index 000000000..fb553dfa1 --- /dev/null +++ b/Resources/public/js/chill.js @@ -0,0 +1,102 @@ +/* jslint vars: true */ +/*jslint indent: 3 */ +/* global moment, $ */ +'use strict'; + +var chill = function() { + + /* intialiase the pikaday module */ + function initPikaday(locale) { + var i18n_trad = { + fr: { + previousMonth : 'Mois précédent', + nextMonth : 'Mois suivant', + months : ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'], + weekdays : ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], + weekdaysShort : ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'] + }, + nl: { + previousMonth : 'Vorig maand', + nextMonth : 'Volgende maand', + months : ['Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December'], + weekdays : ['Zondag','Maandag','Dinsdag','Woensdag','Donderdag','Vrijdag','Zaterdag'], + weekdaysShort : ['Zon','Ma','Di','Wo','Do','Vri','Zat'] + } + }; + + var pikaday_options = { + format: 'D-M-YYYY', + yearRange: [parseInt(moment().format('YYYY')) - 100, parseInt(moment().format('YYYY'))], + }; + + if(locale in i18n_trad) { + pikaday_options.i18n = i18n_trad[locale]; + } + + $('.datepicker').pikaday( + pikaday_options + ); + } + + /* emulate the position:sticky */ + function emulateSticky() { + var need_emulation = false; + + $('.sticky-form-buttons').each(function(i,stick_element) { + if($(stick_element).css('position') !== 'sticky') { + need_emulation = true; + stick_element.init_offset_top = $(stick_element).offset().top; + } + }); + + function emulate() { + $('.sticky-form-buttons').each(function(i,stick_element) { + if (($(window).scrollTop() + $(window).height()) < stick_element.init_offset_top) { + //sticky at bottom + $(stick_element).css('position','fixed'); + $(stick_element).css('bottom','0'); + $(stick_element).css('top',''); + $(stick_element).css('width',$(stick_element).parent().outerWidth()); + } else if (stick_element.init_offset_top < $(window).scrollTop()) { + //sticky at top + $(stick_element).css('position','fixed'); + $(stick_element).css('top','0'); + $(stick_element).css('bottom',''); + $(stick_element).css('width',$(stick_element).parent().outerWidth()); + } else { + //no sticky + $(stick_element).css('position','initial'); + $(stick_element).css('bottom',''); + $(stick_element).css('width',''); + $(stick_element).css('top',''); + } + }); + } + + if(need_emulation) { + $(window).scroll(function() { + emulate(); + }); + + emulate(); + } + } + + /* Enable the following behavior : when the user change the value + of an other field, its checkbox is checked. + */ + function checkOtherValueOnChange() { + $('.input-text-other-value').each(function() { + $(this).change(function() { + var checkbox = $(this).parent().find('input[type=checkbox][value=_other]')[0]; + $(checkbox).prop('checked', ($(this).val() !== '')); + }); + }); + } + + return { + initPikaday: initPikaday, + emulateSticky: emulateSticky, + checkOtherValueOnChange: checkOtherValueOnChange, + }; +} (); \ No newline at end of file diff --git a/Resources/public/js/main.js b/Resources/public/js/main.js deleted file mode 100644 index 972734d3d..000000000 --- a/Resources/public/js/main.js +++ /dev/null @@ -1 +0,0 @@ -var main = {}; \ No newline at end of file diff --git a/Resources/views/layout.html.twig b/Resources/views/layout.html.twig index ad78d0a5d..41d93ef55 100644 --- a/Resources/views/layout.html.twig +++ b/Resources/views/layout.html.twig @@ -127,87 +127,6 @@ chill.emulateSticky(); chill.checkOtherValueOnChange(); $('.select2').select2(); - - /* - - function init_pikaday(locale) { - var i18n_trad = { - fr: { - previousMonth : 'Mois précédent', - nextMonth : 'Mois suivant', - months : ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'], - weekdays : ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], - weekdaysShort : ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'] - }, - nl: { - previousMonth : 'Vorig maand', - nextMonth : 'Volgende maand', - months : ['Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December'], - weekdays : ['Zondag','Maandag','Dinsdag','Woensdag','Donderdag','Vrijdag','Zaterdag'], - weekdaysShort : ['Zon','Ma','Di','Wo','Do','Vri','Zat'] - } - }; - - var pikaday_options = { - format: "D-M-YYYY", - yearRange: [parseInt(moment().format('YYYY')) - 100, parseInt(moment().format('YYYY'))], - }; - - if(locale in i18n_trad) { - pikaday_options.i18n = i18n_trad[locale]; - } - - $('.datepicker').pikaday( - pikaday_options - ); - }; - - init_pikaday('{{ app.request.locale }}'); - - $('.input-text-other-value').each(function() { - $(this).change(function() { - checkbox = $(this).parent().find("input[type=checkbox][value=_other]")[0]; - $(checkbox).prop('checked', ($(this).val() !== "")) - }); - }); - - $('.select2').select2(); - - - $('.sticky-form-buttons').each(function(i,stick_element) { - if($(stick_element).css('position') !== 'sticky') { - var sticky_form_buttons_offset_top = $(stick_element).offset().top; - - function stickyEmulate() { - if (($(window).scrollTop() + $(window).height()) < sticky_form_buttons_offset_top) { - //sticky at bottom - $(stick_element).css('position','fixed'); - $(stick_element).css('bottom','0'); - $(stick_element).css('top',''); - $(stick_element).css('width',$(stick_element).parent().outerWidth()); - } else if (sticky_form_buttons_offset_top < $(window).scrollTop()) { - //sticky at top - $(stick_element).css('position','fixed'); - $(stick_element).css('top','0'); - $(stick_element).css('bottom',''); - $(stick_element).css('width',$(stick_element).parent().outerWidth()); - } else { - //no sticky - $(stick_element).css('position','initial'); - $(stick_element).css('bottom',''); - $(stick_element).css('width',''); - $(stick_element).css('top',''); - } - } - - $(window).scroll(function() { - stickyEmulate(); - }); - - stickyEmulate(); - } - }); -*/ {% block js%}{% endblock %}