diff --git a/create_date_poll.php b/create_date_poll.php index 0de33ee..97150f8 100644 --- a/create_date_poll.php +++ b/create_date_poll.php @@ -120,6 +120,17 @@ switch ($step) { // Clear previous choices $_SESSION['form']->clearChoices(); + // Reorder moments to deal with suppressed dates + $moments = array(); + $i = 0; + while(count($moments) < count($_POST['days'])) { + if (!empty($_POST['horaires' . $i])) { + $moments[] = $_POST['horaires' . $i]; + } + $i++; + } + + for ($i = 0; $i < count($_POST['days']); $i++) { $day = $_POST['days'][$i]; @@ -130,7 +141,7 @@ switch ($step) { $choice = new Choice($time); $_SESSION['form']->addChoice($choice); - $schedules = $inputService->filterArray($_POST['horaires' . $i], FILTER_DEFAULT); + $schedules = $inputService->filterArray($moments[$i], FILTER_DEFAULT); for ($j = 0; $j < count($schedules); $j++) { if (!empty($schedules[$j])) { $choice->addSlot(strip_tags($schedules[$j])); @@ -138,6 +149,7 @@ switch ($step) { } } } + $_SESSION['form']->sortChoices(); } // Display step 3 diff --git a/css/style.css b/css/style.css index cb2d524..a7d744d 100644 --- a/css/style.css +++ b/css/style.css @@ -475,6 +475,15 @@ table.results > tbody > tr:hover > td .glyphicon { border:none; background:transparent; } + +#selected-days legend .input-group-addon:last-of-type { + padding-top: 0; + padding-bottom: 0; +} +#selected-days legend { + height: 33px; +} + /* create_classic_poll.php */ .md-a-img { text-decoration:none !important; diff --git a/js/app/date_poll.js b/js/app/date_poll.js index ada78bc..db90cbd 100644 --- a/js/app/date_poll.js +++ b/js/app/date_poll.js @@ -73,29 +73,43 @@ $(document).ready(function () { .replace('%Y', ("0000" + date.getFullYear()).slice(-4)); }; + function getLastDayNumber(last_day) { + if (last_day == null) + last_day = $selected_days.find('fieldset').filter(':last'); + return parseInt(/^d([0-9]+)-h[0-9]+$/.exec($(last_day).find('.hours').filter(':first').attr('id'))[1]) + } + function newDateFields(dateStr) { - var nb_days = $selected_days.find('fieldset').length; - var last_day = $selected_days.find('fieldset:last'); + var last_day = $selected_days.find('fieldset').filter(':last'); var last_day_title = last_day.find('legend input').attr('title'); + var new_day_number = getLastDayNumber(last_day) + 1; - 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 re_id_hours = new RegExp('"d' + (new_day_number - 1) + '-h', 'g'); + var re_name_hours = new RegExp('name="horaires' + (new_day_number - 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('for="day' + (nb_days - 1) + '"', 'for="day' + nb_days + '"') - .replace(re_name_hours, 'name="horaires' + nb_days) + var new_day_html = last_day.html().replace(re_id_hours, '"d' + new_day_number + '-h') + .replace('id="day' + (new_day_number - 1) + '"', 'id="day' + new_day_number + '"') + .replace('for="day' + (new_day_number - 1) + '"', 'for="day' + new_day_number + '"') + .replace(re_name_hours, 'name="horaires' + new_day_number) .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) + '"'); + .replace('title="' + last_day_title + '"', 'title="' + last_day_title.substring(0, last_day_title.indexOf(' ')) + ' ' + (new_day_number + 1) + '"'); last_day .after('
' + new_day_html + '
') .next().find('legend input').val(dateStr); - $('#day' + (nb_days)).focus(); + $('#day' + (new_day_number)).focus(); $removeaday_and_copyhours.removeClass('disabled'); } + function manageRemoveadayAndCopyhoursButtons() { + var nb_days = $selected_days.find('fieldset').length; + $('#day' + (getLastDayNumber() - 1)).focus(); + if (nb_days == 1) { + $removeaday_and_copyhours.addClass('disabled'); + } + } + var useFirstEmptyDateField = function (dateStr) { var used = false; $selected_days.find('fieldset legend input').each(function () { @@ -218,11 +232,18 @@ $(document).ready(function () { $('#remove-a-day').on('click', function () { $selected_days.find('fieldset:last').remove(); - var nb_days = $selected_days.find('fieldset').length; - $('#day' + (nb_days - 1)).focus(); - if (nb_days == 1) { - $removeaday_and_copyhours.addClass('disabled'); + + manageRemoveadayAndCopyhoursButtons(); + submitDaysAvalaible(); + }); + + // Button "Remove the current day" + + $(document).on('click', '.remove-day', function () { + if ($('#days_container').find('fieldset').length > 1) { + $(this).parents('fieldset').remove(); } + manageRemoveadayAndCopyhoursButtons(); submitDaysAvalaible(); }); diff --git a/locale/br.json b/locale/br.json index e397832..ccf8f3d 100644 --- a/locale/br.json +++ b/locale/br.json @@ -260,6 +260,7 @@ "Copy hours of the first day": "Eilañ eurioù an devezh kentañ war an devezhioù all", "Remove a day": "Dilemel an devezh diwezhañ", "Add a day": "Ouzhpennañ un devezh", + "Remove this day": "BR_Supprimer ce jour", "Remove all days": "Dilemel an holl zevezhioù", "Remove all hours": "Dilemel an holl eurioù" }, diff --git a/locale/de.json b/locale/de.json index 3dec874..e2d2d89 100644 --- a/locale/de.json +++ b/locale/de.json @@ -262,6 +262,7 @@ "Copy hours of the first day": "Uhrzeiten des ersten Tags kopieren", "Remove a day": "Einen Tag entfernen", "Add a day": "Einen Tag hinzufügen", + "Remove this day": "DE_Supprimer ce jour", "Remove all days": "Alle Tage entfernen", "Remove all hours": "Alle Uhrzeiten entfernen" }, diff --git a/locale/en.json b/locale/en.json index dcd18a0..b26536f 100644 --- a/locale/en.json +++ b/locale/en.json @@ -262,6 +262,7 @@ "Copy hours of the first day": "Copy times from the first day", "Remove a day": "Remove a day", "Add a day": "Add a day", + "Remove this day": "Remove this day", "Remove all days": "Remove all days", "Remove all hours": "Remove all times" }, diff --git a/locale/es.json b/locale/es.json index 859b81f..3f79e53 100644 --- a/locale/es.json +++ b/locale/es.json @@ -262,6 +262,7 @@ "Copy hours of the first day": "Copiar los horarios del primer día en los otros días", "Remove a day": "Borrar el último día", "Add a day": "Añadir un día", + "Remove this day": "ES_Supprimer ce jour", "Remove all days": "Borrar todos los días", "Remove all hours": "Borrar todos los horarios" }, diff --git a/locale/fr.json b/locale/fr.json index d5dae19..94562d1 100644 --- a/locale/fr.json +++ b/locale/fr.json @@ -262,6 +262,7 @@ "Copy hours of the first day": "Reporter les horaires du premier jour sur les autres jours", "Remove a day": "Supprimer le dernier jour", "Add a day": "Ajouter un jour", + "Remove this day": "Supprimer ce jour", "Remove all days": "Effacer tous les jours", "Remove all hours": "Effacer tous les horaires" }, diff --git a/locale/it.json b/locale/it.json index 40217fb..d5bd192 100644 --- a/locale/it.json +++ b/locale/it.json @@ -262,6 +262,7 @@ "Copy hours of the first day": "Copiare gli orari del primo giorno", "Remove a day": "Eliminare l'ultimo giorno", "Add a day": "Aggiungere un giorno", + "Remove this day": "IT_Supprimer ce jour", "Remove all days": "Cancellare tutti i giorni", "Remove all hours": "Cancellare tutti gli orari" }, diff --git a/locale/oc.json b/locale/oc.json index 70fd79f..9317653 100644 --- a/locale/oc.json +++ b/locale/oc.json @@ -262,6 +262,7 @@ "Copy hours of the first day": "Reportar los oraris del primièr jorn suls autres jorns", "Remove a day": "Suprimir lo darrièr jorn", "Add a day": "Ajustar un jorn", + "Remove this day": "OC_Supprimer ce jour", "Remove all days": "Suprimir totes los jorns", "Remove all hours": "Suprimir totes los oraris" }, diff --git a/tpl/create_date_poll_step_2.tpl b/tpl/create_date_poll_step_2.tpl index 7253a19..926bc1d 100644 --- a/tpl/create_date_poll_step_2.tpl +++ b/tpl/create_date_poll_step_2.tpl @@ -36,49 +36,60 @@

{__('Step 2 date', 'For each selected day, you can choose, or not, meeting hours (e.g.: "8h", "8:30", "8h-10h", "evening", etc.)')}

- {foreach $choices as $i=>$choice} - {if $choice->getName()} - {$day_value = $choice->getName()|date_format:$date_format['txt_date']} - {else} - {$day_value = ''} - {/if} -
-
- - +
+ {foreach $choices as $i=>$choice} + {if $choice->getName()} + {$day_value = $choice->getName()|date_format:$date_format['txt_date']} + {else} + {$day_value = ''} + {/if} +
+
+ + -
- - -
- ({__('Date', 'dd/mm/yyyy')}) -
+
+
+ + +
+
+
+ +
+ + ({__('Date', 'dd/mm/yyyy')}) + + + {foreach $choice->getSlots() as $j=>$slot} +
+ + +
+ {/foreach} - {foreach $choice->getSlots() as $j=>$slot}
- - -
- {/foreach} - -
-
- - +
+ + +
-
-
- {/foreach} +
+ {/foreach} +