Merge branch 'feature/allow-to-remove-date-in-wizard' into 'develop'
Refactoring on button state handling See merge request !155
This commit is contained in:
commit
7c1b3b163d
@ -21,28 +21,45 @@ $(document).ready(function () {
|
|||||||
// Global variables
|
// Global variables
|
||||||
|
|
||||||
var $selected_days = $('#selected-days');
|
var $selected_days = $('#selected-days');
|
||||||
var $removeaday_and_copyhours = $('#remove-a-day, #copyhours');
|
var $removeaday = $('#remove-a-day');
|
||||||
|
var $copyhours = $('#copyhours');
|
||||||
|
var $next = $('button[name="choixheures"]');
|
||||||
|
|
||||||
|
|
||||||
|
var updateButtonState = function () {
|
||||||
|
$removeaday.toggleClass('disabled', $selected_days.find('fieldset').length <= 1);
|
||||||
|
$copyhours.toggleClass('disabled', !hasFirstDayFilledHours());
|
||||||
|
$next.toggleClass('disabled', countFilledDays() < 1)
|
||||||
|
};
|
||||||
|
|
||||||
// at least 1 day filled and you can submit
|
// at least 1 day filled and you can submit
|
||||||
|
var isSubmitDaysAvaillable = function() {
|
||||||
|
return (countFilledDays() >= 1);
|
||||||
|
};
|
||||||
|
|
||||||
var submitDaysAvalaible = function () {
|
var countFilledDays = function () {
|
||||||
var nb_filled_days = 0;
|
var nb_filled_days = 0;
|
||||||
|
|
||||||
$selected_days.find('fieldset legend input').each(function () {
|
$selected_days.find('fieldset legend input').each(function () {
|
||||||
if ($(this).val() != '') {
|
if ($(this).val() != '') {
|
||||||
nb_filled_days++;
|
nb_filled_days++;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
return nb_filled_days;
|
||||||
if (nb_filled_days >= 1) {
|
|
||||||
$('button[name="choixheures"]').removeClass('disabled');
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
$('button[name="choixheures"]').addClass('disabled');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var hasFirstDayFilledHours = function () {
|
||||||
|
var hasFilledHours = false;
|
||||||
|
$selected_days.find('fieldset').first().find('.hours').each(function () {
|
||||||
|
if ($(this).val() != '') {
|
||||||
|
hasFilledHours = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return hasFilledHours;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse a string date
|
* Parse a string date
|
||||||
* @param dateStr The string date
|
* @param dateStr The string date
|
||||||
@ -75,7 +92,7 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
function getLastDayNumber(last_day) {
|
function getLastDayNumber(last_day) {
|
||||||
if (last_day == null)
|
if (last_day == null)
|
||||||
last_day = $selected_days.find('fieldset').filter(':last');
|
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])
|
return parseInt(/^d([0-9]+)-h[0-9]+$/.exec($(last_day).find('.hours').filter(':first').attr('id'))[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,15 +116,7 @@ $(document).ready(function () {
|
|||||||
.after('<fieldset>' + new_day_html + '</fieldset>')
|
.after('<fieldset>' + new_day_html + '</fieldset>')
|
||||||
.next().find('legend input').val(dateStr);
|
.next().find('legend input').val(dateStr);
|
||||||
$('#day' + (new_day_number)).focus();
|
$('#day' + (new_day_number)).focus();
|
||||||
$removeaday_and_copyhours.removeClass('disabled');
|
updateButtonState();
|
||||||
}
|
|
||||||
|
|
||||||
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 useFirstEmptyDateField = function (dateStr) {
|
||||||
@ -126,7 +135,7 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
// Handle form submission
|
// Handle form submission
|
||||||
$(document.formulaire).on('submit', function (e) {
|
$(document.formulaire).on('submit', function (e) {
|
||||||
if (!submitDaysAvalaible()) {
|
if (!isSubmitDaysAvaillable()) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
}
|
}
|
||||||
@ -139,19 +148,20 @@ $(document).ready(function () {
|
|||||||
$(this).find('.hours:gt(2)').parent().remove();
|
$(this).find('.hours:gt(2)').parent().remove();
|
||||||
});
|
});
|
||||||
$('#d0-h0').focus();
|
$('#d0-h0').focus();
|
||||||
$selected_days.find('fieldset .hours').attr('value', '');
|
$selected_days.find('fieldset .hours').val('');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Button "Remove all days"
|
// Button "Remove all days"
|
||||||
|
|
||||||
$('#resetdays').on('click', function () {
|
$('#resetdays').on('click', function () {
|
||||||
$selected_days.find('fieldset:gt(0)').remove();
|
$selected_days.find('fieldset:gt(0)').remove();
|
||||||
$('#day0').focus();
|
$('#day0').focus();
|
||||||
$removeaday_and_copyhours.addClass('disabled');
|
updateButtonState();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Button "Copy hours of the first day"
|
// Button "Copy hours of the first day"
|
||||||
|
|
||||||
$('#copyhours').on('click', function () {
|
$copyhours.on('click', function () {
|
||||||
var first_day_hours = $selected_days.find('fieldset:eq(0) .hours').map(function () {
|
var first_day_hours = $selected_days.find('fieldset:eq(0) .hours').map(function () {
|
||||||
return $(this).val();
|
return $(this).val();
|
||||||
});
|
});
|
||||||
@ -219,7 +229,7 @@ $(document).ready(function () {
|
|||||||
$(this).addClass('disabled');
|
$(this).addClass('disabled');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
submitDaysAvalaible();
|
updateButtonState();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Button "Add a day"
|
// Button "Add a day"
|
||||||
@ -230,11 +240,12 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
// Button "Remove a day"
|
// Button "Remove a day"
|
||||||
|
|
||||||
$('#remove-a-day').on('click', function () {
|
$removeaday.on('click', function () {
|
||||||
$selected_days.find('fieldset:last').remove();
|
$selected_days.find('fieldset:last').remove();
|
||||||
|
|
||||||
manageRemoveadayAndCopyhoursButtons();
|
$('#day' + (getLastDayNumber() - 1)).focus();
|
||||||
submitDaysAvalaible();
|
|
||||||
|
updateButtonState();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Button "Remove the current day"
|
// Button "Remove the current day"
|
||||||
@ -243,8 +254,7 @@ $(document).ready(function () {
|
|||||||
if ($('#days_container').find('fieldset').length > 1) {
|
if ($('#days_container').find('fieldset').length > 1) {
|
||||||
$(this).parents('fieldset').remove();
|
$(this).parents('fieldset').remove();
|
||||||
}
|
}
|
||||||
manageRemoveadayAndCopyhoursButtons();
|
updateButtonState();
|
||||||
submitDaysAvalaible();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Add an range of dates
|
// Add an range of dates
|
||||||
@ -276,7 +286,7 @@ $(document).ready(function () {
|
|||||||
startDateField.val('');
|
startDateField.val('');
|
||||||
endDateField.val('');
|
endDateField.val('');
|
||||||
$('#add_days').modal('hide');
|
$('#add_days').modal('hide');
|
||||||
submitDaysAvalaible();
|
updateButtonState();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
@ -317,14 +327,8 @@ $(document).ready(function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('keyup, change', '.hours, #selected-days fieldset legend input', function () {
|
$(document).on('keyup change', '.hours, #selected-days fieldset legend input', function () {
|
||||||
submitDaysAvalaible();
|
updateButtonState();
|
||||||
});
|
});
|
||||||
submitDaysAvalaible();
|
updateButtonState();
|
||||||
|
});
|
||||||
// 2 days and you can remove a day or copy hours
|
|
||||||
|
|
||||||
if ($selected_days.find('fieldset').length > 1) {
|
|
||||||
$removeaday_and_copyhours.removeClass('disabled');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
Loading…
Reference in New Issue
Block a user