mirror of
https://github.com/Piwigo/Piwigo.git
synced 2025-04-25 19:00:03 +03:00
fixes #2339 prevent backend validation errors...
...by adding frontend checks for albums and tags
This commit is contained in:
parent
c4e23c642f
commit
4efcd98036
2 changed files with 52 additions and 0 deletions
|
@ -35,10 +35,24 @@ function filter_disable(filter) {
|
|||
function select_album_filter({ album, newSelectedAlbum, getSelectedAlbum }) {
|
||||
$('#selectedAlbumNameFilter').html(album.name);
|
||||
newSelectedAlbum();
|
||||
hide_filters_error(str_select_album);
|
||||
$('#filterCategoryValue').val(+getSelectedAlbum()[0]);
|
||||
$('#selectAlbumFilter').hide();
|
||||
$('#selectedAlbumFilterArea').fadeIn();
|
||||
}
|
||||
|
||||
// Tags and Albums validation
|
||||
function show_filters_error(message) {
|
||||
errorFilters = message;
|
||||
$('#errorFilter').html(`<p>${message}</p>`).fadeIn();
|
||||
}
|
||||
|
||||
function hide_filters_error(message) {
|
||||
if (message === errorFilters) {
|
||||
$('#errorFilter').hide();
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
const ab_filter = new AlbumSelector({
|
||||
selectedCategoriesIds: selected_filter_cat_ids,
|
||||
|
@ -83,5 +97,37 @@ $(document).ready(function () {
|
|||
$('.addFilter-dropdown').slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Filter JS Validation
|
||||
$('.filterBlock select[data-selectize="tags"]').on('change', function() {
|
||||
if ($(this).val()) {
|
||||
hide_filters_error(str_select_tag);
|
||||
}
|
||||
})
|
||||
|
||||
$('#applyFilter').on('click', function(e) {
|
||||
if ($('#filter_tags').is(':visible')) {
|
||||
const tags = $('.filterBlock select[data-selectize="tags"]');
|
||||
if (!tags.val()) {
|
||||
e.preventDefault();
|
||||
show_filters_error(str_select_tag);
|
||||
$('#filter_tags .removeFilter').off('click.apply').on('click.apply', function() {
|
||||
hide_filters_error(str_select_tag);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if ($('#filter_category').is(':visible')) {
|
||||
const albums = ab_filter.get_selected_albums();
|
||||
if (albums.length === 0) {
|
||||
e.preventDefault();
|
||||
show_filters_error(str_select_album);
|
||||
$('#filter_category .removeFilter').off('click.apply').on('click.apply', function() {
|
||||
hide_filters_error(str_select_album);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
|
|
|
@ -49,6 +49,10 @@ const selected_filter_cat_ids = ["{$filter_category_selected|@json_encode|escape
|
|||
{else}
|
||||
const selected_filter_cat_ids = [];
|
||||
{/if}
|
||||
|
||||
const str_select_album = "{'Select at least one album'|@translate|escape:javascript}";
|
||||
const str_select_tag = "{'Select at least one tag'|@translate|escape:javascript}";
|
||||
let errorFilters = '';
|
||||
{/footer_script}
|
||||
|
||||
{combine_script id='batchManagerFilter' load='footer' path='admin/themes/default/js/batchManagerFilter.js'}
|
||||
|
@ -256,6 +260,8 @@ const selected_filter_cat_ids = [];
|
|||
<button id="applyFilter" name="submitFilter" type="submit">
|
||||
<i class="icon-arrows-cw"></i> {'Refresh photo set'|@translate}
|
||||
</button>
|
||||
|
||||
<div id="errorFilter" class="icon-red-error" style="display: none; margin-left: 10px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue