Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $(document).ready(function () {
- /*ELIGIBLE WORK FIELD RECUPERATION*/
- // Categories vars
- var catContainer = $('#categories-container');
- var catTrigger = $('select[name*=eligible_category]');
- var currentValue = lower_first_word(catTrigger.find('option').first().text());
- var newValue;
- var workInput = $('select[name*=eligible_work]');
- var categoryId = catTrigger.find('option:first').attr('value');
- // Work vars
- var workTrigger = $('select[name*=eligible_work]');
- var workContainer = $('.input-container');
- var currentId = workTrigger.find('option:selected').attr('value');
- // Form vars
- var submitTrigger = $('input[type*=submit]');
- var form = $('form[name*=front_simulation]');
- var inputContainers;
- var canSubmit;
- var hideInputsConditions = [
- {
- cond: function () {
- if ($.inArray(parseInt(workTrigger.find('option:selected').attr('value')), [115, 116, 227]) === -1)
- return false;
- var LOG = $('form[name*=front_simulation]').find("input[name*=LOG]:checked");
- var logVal = LOG.length > 0 ? LOG.val() : null;
- return logVal == 1;
- },
- hideList: ['NAPP', 'TCH']
- },
- {
- cond: function () {
- if (workTrigger.find('option:selected').attr('value') != 204)
- return false;
- var LOG = $('form[name*=front_simulation]').find("input[name*=LOG]:checked");
- var logVal = LOG.length > 0 ? LOG.val() : null;
- return logVal == 1;
- },
- hideList: ['NAPP']
- }
- ];
- var hideWorkConditions = [
- // Résidentiel
- {
- 'triggerName': 'LOG',
- 'cond': function (val) {
- return val == 2;
- },
- 'hideList': [113, 114, 203]
- },
- {
- 'triggerName': 'P3_ETAS',
- 'cond': function (val) {
- if (!val)
- return;
- var typePac = $('form[name*=front_simulation]').find("input[name*=P3_TYPE_PAC]:checked");
- var typePacVal = typePac.length > 0 ? typePac.val() : null;
- var alertMsg = null;
- var returnresult = false;
- if (val.length > 0) {
- if (typePacVal == 0) {
- alertMsg = "Ces travaux ne sont pas éligibles pour les caractéristiques techniques que vous avez indiquées (Efficacité énergétique saisonnière doit être supérieure ou égale à 126)";
- returnresult = val < 126;
- }
- else if (typePacVal == 1) {
- alertMsg = "Ces travaux ne sont pas éligibles pour les caractéristiques techniques que vous avez indiquées (Efficacité énergétique saisonnière doit être supérieure ou égale à 111)";
- returnresult = val < 111;
- }
- }
- if (alertMsg && returnresult) {
- alert(alertMsg);
- $('form[name*=front_simulation]').find("input[name*=P3_ETAS]").val('');
- typePac.removeAttr('checked');
- }
- return returnresult;
- },
- }
- ];
- this.inputs = [];
- this.works = [];
- var pthis = this;
- function applyWorkFilters() {
- var worksToHide = [];
- for (var i = 0; i < hideWorkConditions.length; i++) {
- var conf = hideWorkConditions[i];
- if (!conf) continue;
- var triggerName = conf.triggerName;
- var condHandler = conf.cond;
- var trigger = $("input, select").filter("[name*='" + triggerName + "']");
- // On prend le type de trigger en considération
- var type = trigger.attr('type');
- if (type && type.toLowerCase() == 'radio')
- value = trigger.filter(":checked").val();
- else
- value = trigger.val();
- // Vérifions si la condition est remplie => si elle l'est on devra masquer tous les éléments listés
- var doHide = condHandler(value);
- if (doHide)
- worksToHide = worksToHide.concat(conf.hideList);
- }
- return worksToHide;
- };
- function applyInputFilters() {
- var inputsToHide = [];
- for (var i = 0; i < hideInputsConditions.length; i++) {
- var conf = hideInputsConditions[i];
- var doHide = conf.cond();
- if (doHide)
- inputsToHide = inputsToHide.concat(conf.hideList);
- }
- return inputsToHide;
- };
- function createOptions() {
- workInput.empty();
- var worksToHide = applyWorkFilters();
- $.each(pthis.works, function (key, value) {
- if ($.inArray(parseInt(value.id), worksToHide) == -1) {
- var option = $('<option>')
- .attr('value', value.id)
- .text(value.title)
- ;
- if (currentId == value.id) {
- option.attr('selected', 'selected')
- }
- workInput.append(option);
- }
- });
- }
- catTrigger.change(function () {
- categoryId = $(this).val();
- currentId = workTrigger.find('option:selected').attr('value');
- newValue = lower_first_word($(this).find('option:selected').text());
- newValue = newValue.normalize('NFD').replace(/[\u0300-\u036f]/g, "");
- if (currentValue != newValue) {
- updateContainer(newValue);
- }
- $.ajax(Routing.generate('api_get_category_works', {
- type: 'particulier',
- category_id: categoryId
- }))
- .done(function (data) {
- pthis.works = data;
- createOptions();
- workTrigger.change();
- });
- });
- function updateContainer(value) {
- var currentClass = '.' + currentValue;
- catContainer.find(currentClass)
- .removeClass(currentValue)
- .addClass(value);
- currentValue = value;
- }
- function lower_first_word(str) {
- var asArray = str.split(" ");
- return asArray[0].toLowerCase();
- }
- workTrigger.change(function () {
- currentId = $(this).find('option:selected').attr('value');
- $.ajax(Routing.generate('api_get_work_fields', {
- slug: 'particulier',
- id: currentId
- }))
- .done(function (data) {
- pthis.inputs = data;
- displayInputs();
- });
- });
- function displayInputs() {
- resetInputs();
- var inputsToHide = applyInputFilters();
- $.each(pthis.inputs, function (key, value) {
- if ($.inArray(value.name, inputsToHide) == -1) {
- inputName = "front_simulation[" + value.name + "]";
- var input = $('input[name="' + inputName + '"]');
- if (!input.length)
- input = $('select[name="' + inputName + '"]');
- input.closest('.field-container').removeClass('no-visibility');
- }
- });
- }
- function resetInputs() {
- $.each(workContainer.find('.field-container'), function () {
- $(this).addClass('no-visibility');
- });
- }
- $('input[type=submit]').click(function (e) {
- if (canSubmit) {
- return;
- } else {
- e.preventDefault();
- inputContainers = $(".field-container.no-visibility");
- $.each(inputContainers, function () {
- var conditions = $(this).has('input[name*=_token]').length + $(this).has('input[name*=quotation_date]').length;
- if (conditions == 0) {
- $(this).attr('disabled');
- $(this).remove();
- }
- });
- canSubmit = true;
- $(this).trigger('click');
- }
- });
- resetInputs();
- catTrigger.change();
- workTrigger.change();
- form.find('select, input[type=radio], input[type=text]').change(function () {
- displayInputs();
- });
- $("[name*='LOG'],[name*='P3_ETAS'],[name*='P3_TYPE_PAC']").change(function () {
- createOptions();
- workTrigger.change();
- });
- /*DEPT MAP SELECTOR*/
- var deptSelect = $('select[name*=DEPT]');
- deptSelect.change(function () {
- if ($(this).val() == 0) {
- $('#mb-current').attr('class', 'mb');
- }
- else {
- var text = $.trim(deptSelect.find("option:selected").text());
- var dept = text.substring(0, 2);
- $("#frenchMap").find("a").each(function () {
- if ($(this).data('departements').indexOf(dept) >= 0) {
- var className = $(this).attr('class') + "b";
- if ($(this).attr('class'))
- $('#mb-current').attr('class', 'mb ' + className);
- }
- });
- }
- });
- deptSelect.change();
- if ($('input[name*=quotation_signed]:checked').val() == 1) {
- if($('#quotation-signed-error-modal').length > 0) {
- setTimeout(function () {
- $('#quotation-signed-error-modal').dialogMp();
- }, 1000);
- }
- }
- // /*ENR_COMB_CDP DISPLAY SCRIPT*/
- // var enrCdpTriggers = $('input[name="front_simulation[CDP_ENR]"]');
- // var enrCombCdpInput = $('select[name="front_simulation[CDP_ENR_COMB]"]');
- // var currentValueCdp = $('input[name="front_simulation[CDP_ENR]"]:checked').val();
- //
- // enrCdpTriggers.change(function () {
- // currentValueCdp = $(this).val();
- // if (currentValueCdp == 1) {
- // enrCombCdpInput.closest('.field-container').addClass('no-visibility');
- // } else {
- // enrCombCdpInput.closest('.field-container').removeClass('no-visibility');
- // }
- // }).change();
- //
- // /*ENR_COMBDISPLAY SCRIPT*/
- // var enrTriggers = $('input[name="front_simulation[ENR]"]');
- // var enrCombInput = $('select[name="front_simulation[ENR_COMB]"]');
- // var currentEnrValue = $('input[name="front_simulation[ENR]"]:checked').val();
- //
- // enrTriggers.change(function () {
- // currentEnrValue = $(this).val();
- // if (currentEnrValue == 1) {
- // enrCombInput.closest('.field-container').addClass('no-visibility');
- // } else {
- // enrCombInput.closest('.field-container').removeClass('no-visibility');
- // }
- // }).change();
- //
- // // ajout du placeholder sur tous les inputs avec unités
- // $('form input[type=text][data-unit]').each(function () {
- // var unitSpan = $('<span class="text m2">').text($(this).data('unit'));
- // $(this).after(unitSpan);
- // });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement