$(document).ready(function() { var lang = $('html').attr('lang'); // Datepicker $('.input-group.date').datepicker({ format: "dd/mm/yyyy", todayBtn: "linked", orientation: "top left", autoclose: true, language: lang }); /** * choix_date.php **/ // Button "Remove all hours" $(document).on('click','#resethours', function() { $('#selected-days fieldset').each(function() { $(this).find('.hours:gt(2)').parent().remove(); }); $('#d0-h0').focus(); $('#selected-days fieldset .hours').attr('value',''); }); // Button "Remove all days" $('#resetdays').on('click', function() { $('#selected-days fieldset:gt(0)').remove(); $('#day0').focus(); $('#remove-a-day, #copyhours').addClass('disabled'); }); // Button "Copy hours of the first day" $('#copyhours').on('click', function() { var first_day_hours = $('#selected-days fieldset:eq(0) .hours').map(function() { return $(this).val(); }); $('#selected-days fieldset:gt(0)').each(function() { for ($i = 0; $i < first_day_hours.length; $i++) { $(this).find('.hours:eq('+$i+')').val(first_day_hours[$i]); // fill hours } }); $('#d0-h0').focus(); }); // Buttons "Add an hour" $(document).on('click','.add-an-hour', function() { var last_hour = $(this).parent('div').parent('div').prev(); // for and id var di_hj = last_hour.children('.hours').attr('id').split('-'); var di = parseInt(di_hj[0].replace('d','')); var hj = parseInt(di_hj[1].replace('h','')); // label, title and placeholder var last_hour_label = last_hour.children('.hours').attr('placeholder'); var hour_text = last_hour_label.substring(0, last_hour_label.indexOf(' ')); // RegEx for multiple replace var re_label = new RegExp(last_hour_label, 'g'); var re_id = new RegExp('"d'+di+'-h'+hj+'"', 'g'); // HTML code of the new hour var new_hour_html = '
'+ last_hour.html().replace(re_label, hour_text+' '+(hj+2)) .replace(re_id,'"d'+di+'-h'+(hj+1)+'"') .replace(/value="(.*?)"/g, 'value=""')+ '
'; // After 11 + button is disable if (hj<10) { last_hour.after(new_hour_html); $('#d'+di+'-h'+(hj+1)).focus(); $(this).prev('.remove-an-hour').removeClass('disabled'); if (hj==9) { $(this).addClass('disabled'); } }; }); // Buttons "Remove an hour" $(document).on('click', '.remove-an-hour', function() { var last_hour = $(this).parent('div').parent('div').prev(); // for and id var di_hj = last_hour.children('.hours').attr('id').split('-'); var di = parseInt(di_hj[0].replace('d','')); var hj = parseInt(di_hj[1].replace('h','')); // The first hour must not be removed if (hj>0) { last_hour.remove(); $('#d'+di+'-h'+(hj-1)).focus(); $(this).next('.add-an-hour').removeClass('disabled'); if (hj==1) { $(this).addClass('disabled'); } }; }); // Button "Add a day" $('#add-a-day').on('click', function() { var nb_days = $('#selected-days fieldset').length; var last_day = $('#selected-days fieldset:last'); var last_day_title = last_day.find('legend input').attr('title'); var re_id_hours = new RegExp('"d'+(nb_days-1)+'-h', 'g'); var re_name_hours = new RegExp('name="horaires'+(nb_days-1), 'g'); var new_day_html = last_day.html().replace(re_id_hours, '"d'+nb_days+'-h') .replace('id="day'+(nb_days-1)+'"', 'id="day'+nb_days+'"') .replace(re_name_hours, 'name="horaires'+nb_days) .replace(/value="(.*?)"/g, 'value=""') .replace(/hours" title="(.*?)"/g, 'hours" title="" p') .replace('title="'+last_day_title+'"', 'title="'+last_day_title.substring(0, last_day_title.indexOf(' '))+' '+(nb_days+1)+'"'); last_day.after('
'+new_day_html+'
'); $('#day'+(nb_days)).focus(); $('#remove-a-day, #copyhours').removeClass('disabled'); // Repeat datepicker init (junk code but it works for added days) $('.input-group.date').datepicker({ format: "dd/mm/yyyy", todayBtn: "linked", orientation: "top left", autoclose: true, language: lang }); }); // Button "Remove a day" $('#remove-a-day').on('click', function() { var nb_days = $('#selected-days fieldset').length; $('#selected-days fieldset:last').remove(); $('#day'+(nb_days-1)).focus(); if ( nb_days == 1) { $('#remove-a-day, #copyhours').addClass('disabled'); }; }); // Title update on hours and buttons -/+ hours $(document).on('change','#selected-days legend input', function() { $('#selected-days .hours').each(function () { $(this).attr('title', $(this).parents('fieldset').find('legend input').val()+' - '+$(this).attr('placeholder')); }); $('#selected-days .add-an-hour, #selected-days .remove-an-hour').each(function () { var old_title = $(this).attr('title'); if(old_title.indexOf('-')>0) { old_title = old_title.substring(old_title.indexOf('-')+2,old_title.length); } $(this).attr('title', $(this).parents('fieldset').find('legend input').val()+' - '+old_title); }); }); // 1 day and 2 hours or 2 days and you can submit function SubmitDaysAvalaible() { var nb_filled_days = 0; var nb_filled_hours = 0; $('#selected-days fieldset legend input').each(function() { if($(this).val()!='') { nb_filled_days++; } }); $('#selected-days .hours').each(function() { if($(this).val()!='') { nb_filled_hours++; } }); if (nb_filled_days>1) { $('button[name="choixheures"]').removeClass('disabled'); } else if (nb_filled_hours>1 && nb_filled_days==1) { $('button[name="choixheures"]').removeClass('disabled'); } else { $('button[name="choixheures"]').addClass('disabled'); } } $(document).on('change','.hours, #selected-days fieldset legend input', function() { SubmitDaysAvalaible() }); SubmitDaysAvalaible(); // 2 days and you can remove a day or copy hours if($('#selected-days fieldset').length>1) { $('#remove-a-day, #copyhours').removeClass('disabled'); } /** * choix_autre.php **/ // Button "Add a choice" $('#add-a-choice').on('click', function() { var nb_choices = $('.choice-field').length; var last_choice = $('.choice-field:last'); var new_choice = last_choice.html(); // label var last_choice_label = last_choice.children('label').text(); var choice_text = last_choice_label.substring(0, last_choice_label.indexOf(' ')); // for and id var re_id_choice = new RegExp('"choice'+(nb_choices-1)+'"', 'g'); var last_choice_label = last_choice.children('label').text(); var new_choice_html = new_choice.replace(re_id_choice, '"choice'+nb_choices+'"') .replace(last_choice_label, choice_text+' '+(nb_choices+1)) .replace(/value="(.*?)"/g, 'value=""'); last_choice.after('
'+new_choice_html+'
'); $('#choice'+nb_choices).focus(); $('#remove-a-choice').removeClass('disabled'); }); // Button "Remove a choice" $('#remove-a-choice').on('click', function() { var nb_choices = $('.choice-field').length; $('.choice-field:last').remove(); $('#choice'+(nb_choices-2)).focus(); if (nb_choices == 3) { $('#remove-a-choice, button[name="fin_sondage_autre"]').addClass('disabled'); }; }); // 2 choices filled and you can submit function SubmitChoicesAvalaible() { var nb_filled_choices = 0; $('.choice-field input').each(function() { if($(this).val()!='') { nb_filled_choices++; } }); if(nb_filled_choices>1) { $('button[name="fin_sondage_autre"]').removeClass('disabled'); } else { $('button[name="fin_sondage_autre"]').addClass('disabled'); } } $(document).on('change','.choice-field input', function() { SubmitChoicesAvalaible() }); SubmitChoicesAvalaible(); /** * adminstuds.php **/ $('#title-form .btn-edit').on('click', function() { $('#title-form h2').hide(); $('.js-title').removeClass("hidden"); $('.js-title input').focus(); return false; }); $('#title-form .btn-cancel').on('click', function() { $('#title-form h2').show(); $('#title-form .js-title').addClass("hidden"); $('#title-form .btn-edit').focus(); return false; }); $('#email-form .btn-edit').on('click', function() { $('#email-form p').hide(); $('#email-form .js-email').removeClass("hidden"); $('.js-email input').focus(); return false; }); $('#email-form .btn-cancel').on('click', function() { $('#email-form p').show(); $('#email-form .js-email').addClass("hidden"); $('#email-form .btn-edit').focus(); return false; }); $('#description-form .btn-edit').on('click', function() { $('#description-form .well').hide(); $('#description-form .js-desc').removeClass("hidden"); $('.js-desc textarea').focus(); return false; }); $('#description-form .btn-cancel').on('click', function() { $('#description-form .well').show(); $('#description-form .js-desc').addClass("hidden"); $('.js-desc .btn-edit').focus(); return false; }); });