mirror of
https://github.com/Piwigo/Piwigo.git
synced 2025-04-27 19:59:56 +03:00
1658 lines
No EOL
58 KiB
JavaScript
1658 lines
No EOL
58 KiB
JavaScript
$(document).ready(function () {
|
||
/** @type {AlbumSelector} */
|
||
let ab;
|
||
|
||
$(".linkedAlbumPopInContainer .ClosePopIn").addClass(prefix_icon + "cancel");
|
||
$(".linkedAlbumPopInContainer .searching").addClass(prefix_icon + "spin6").hide();
|
||
$(".AddIconContainer").css('display', 'none');
|
||
$(".filter-validate").on("click", function () {
|
||
$(this).find(".loading").css("display", "block");
|
||
$(this).find(".validate-text").hide();
|
||
});
|
||
|
||
// If we open another filter, hide all other dropdowns expect the one just opened
|
||
$("div.filter").on("click", function () {
|
||
$(this).siblings().removeClass("show-filter-dropdown");
|
||
$(this).siblings().children("div.filter-form").css('display','none');
|
||
});
|
||
|
||
// If we open the choose filters modal hide all filter forms if any open
|
||
$("div.filter-manager").on("click", function () {
|
||
$('div.filter').children("div.filter-form").css('display','none');
|
||
});
|
||
|
||
global_params.search_id = search_id;
|
||
|
||
if (!global_params.fields) {
|
||
global_params.fields = {};
|
||
}
|
||
|
||
// Declare params sent to pwg.images.filteredSearch.update
|
||
// PS for performSearch()
|
||
PS_params = {};
|
||
PS_params.search_id = search_id;
|
||
empty_filters_list = [];
|
||
|
||
// Setup word filter
|
||
if (global_params.fields.allwords) {
|
||
$(".filter-word").css("display", "flex");
|
||
$(".filter-manager-controller.word").prop("checked", true);
|
||
|
||
word_search_str = "";
|
||
word_search_words = global_params.fields.allwords.words != null ? global_params.fields.allwords.words : [];
|
||
word_search_words.forEach(word => {
|
||
word_search_str += word + " ";
|
||
});
|
||
$("#word-search").val(word_search_str.slice(0, -1));
|
||
|
||
if (global_params.fields.allwords.words && global_params.fields.allwords.words.length > 0) {
|
||
$(".filter-word").addClass("filter-filled");
|
||
$(".filter-word .search-words").html(word_search_str.slice(0, -1));
|
||
} else {
|
||
$(".filter-word .search-words").html(str_word_widget_label);
|
||
}
|
||
|
||
word_search_fields = global_params.fields.allwords.fields;
|
||
Object.keys(word_search_fields).forEach(field_key => {
|
||
$("#"+word_search_fields[field_key]).prop("checked", true);
|
||
});
|
||
|
||
word_search_mode = global_params.fields.allwords.mode;
|
||
$(".word-search-options input[value=" + word_search_mode + "]").prop("checked", true);
|
||
|
||
if (global_params.fields.search_in_tags) {
|
||
$("#tags").prop("checked", true);
|
||
}
|
||
|
||
$(".filter-word .filter-actions .clear").on('click', function () {
|
||
$(".filter-word #word-search").val('');
|
||
$(".filter-word .search-params input").prop('checked', true);
|
||
$(".filter-word .word-search-options input[value='AND']").prop('checked', true);
|
||
});
|
||
|
||
PS_params.allwords = word_search_str.slice(0, -1);
|
||
PS_params.allwords_fields = word_search_fields;
|
||
PS_params.allwords_mode = word_search_mode;
|
||
|
||
empty_filters_list.push(PS_params.allwords);
|
||
}
|
||
//Hide filter spinner
|
||
$(".filter-spinner").hide();
|
||
|
||
// Setup tag filter
|
||
$("#tag-search").each(function() {
|
||
$(this).selectize({
|
||
plugins: ['remove_button'],
|
||
maxOptions:$(this).find("option").length,
|
||
items: global_params.fields.tags ? global_params.fields.tags.words : null,
|
||
});
|
||
});
|
||
|
||
if (global_params.fields.tags) {
|
||
$(".filter-tag").css("display", "flex");
|
||
$(".filter-manager-controller.tags").prop("checked", true);
|
||
$(".filter-tag-form .search-params input[value=" + global_params.fields.tags.mode + "]").prop("checked", true);
|
||
|
||
tag_search_str = "";
|
||
$("#tag-search")[0].selectize.getValue().forEach(id => {
|
||
tag_search_str += $("#tag-search")[0].selectize.getItem(id).text().replace(/\(\d+ \w+\)×/, '').trim() + ", ";
|
||
});
|
||
if (global_params.fields.tags.words && global_params.fields.tags.words.length > 0) {
|
||
$(".filter-tag").addClass("filter-filled");
|
||
$(".filter.filter-tag .search-words").text(tag_search_str.slice(0, -2));
|
||
} else {
|
||
$(".filter.filter-tag .search-words").text(str_tags_widget_label);
|
||
}
|
||
|
||
$(".filter-tag .filter-actions .clear").on('click', function () {
|
||
$("#tag-search")[0].selectize.clear();
|
||
$(".filter-tag .search-params input[value='AND']").prop('checked', true);
|
||
});
|
||
|
||
PS_params.tags = global_params.fields.tags.words.length > 0 ? global_params.fields.tags.words : '';
|
||
PS_params.tags_mode = global_params.fields.tags.mode;
|
||
|
||
empty_filters_list.push(PS_params.tags);
|
||
}
|
||
|
||
// Setup Date post filter
|
||
if (global_params.fields.date_posted) {
|
||
|
||
$(".filter-date_posted").css("display", "flex");
|
||
$(".filter-manager-controller.date_posted").prop("checked", true);
|
||
|
||
if (global_params.fields.date_posted.preset != null && global_params.fields.date_posted.preset != "") {
|
||
// If filter is used and not empty check preset date option
|
||
$("#date_posted-" + global_params.fields.date_posted.preset).prop("checked", true);
|
||
date_posted_str = $('.date_posted-option label#'+ global_params.fields.date_posted.preset +' .date-period').text();
|
||
|
||
// if option is custom check custom dates
|
||
if ('custom' == global_params.fields.date_posted.preset && global_params.fields.date_posted.custom != null)
|
||
{
|
||
date_posted_str = '';
|
||
var customArray = global_params.fields.date_posted.custom
|
||
|
||
$(customArray).each(function( index ) {
|
||
var customValue = this.substring(1, $(this).length);
|
||
|
||
$("#date_posted_"+customValue).prop("checked", true).addClass('selected');
|
||
$("#date_posted_"+customValue).siblings('label').find('.checked-icon').show();
|
||
|
||
date_posted_str += $('.date_posted-option label#'+ customValue +' .date-period').text()
|
||
|
||
if($(global_params.fields.date_posted.custom).length > 1 && index != $(customArray).length-1)
|
||
{
|
||
date_posted_str += ', ';
|
||
}
|
||
});
|
||
|
||
$('.date_posted-option.year').each(function () {
|
||
updateDateFilters(`.custom_posted_date #${$(this).attr('id')}`);
|
||
});
|
||
}
|
||
|
||
// change badge label if filter not empty
|
||
$(".filter-date_posted").addClass("filter-filled");
|
||
$(".filter.filter-date_posted .search-words").text(date_posted_str);
|
||
}
|
||
|
||
$(".filter-date_posted .filter-actions .clear").on('click', function () {
|
||
updateFilters('date_posted', 'add');
|
||
$(".date_posted-option input").prop('checked', false);
|
||
$(".date_posted-option input").trigger('change');
|
||
});
|
||
|
||
// Disable possiblity for user to select custom option, its gets selected programtically later on
|
||
$("#date_posted_custom").attr('disabled', 'disabled');
|
||
|
||
// Handle toggle between preset and custom options
|
||
$(".custom_posted_date_toggle").on("click", function (e) {
|
||
$('.custom_posted_date').toggle()
|
||
$('.preset_posted_date').toggle()
|
||
});
|
||
|
||
// Handle accoridan features in custom options
|
||
$(".custom_posted_date .accordion-toggle").on("click", function (e) {
|
||
var clickedOption = $(this).parent();
|
||
$(clickedOption).toggleClass('show-child');
|
||
if('year' == $(this).data('type'))
|
||
{
|
||
$(clickedOption).parent().find('.date_posted-option.month').toggle();
|
||
}
|
||
else if('month' == $(this).data('type'))
|
||
{
|
||
$(clickedOption).parent().find('.date_posted-option.day').toggle();
|
||
}
|
||
});
|
||
|
||
// For debug
|
||
// $('.date_posted-option-container').find(':input').show();
|
||
|
||
// On custom date input select
|
||
$(".custom_posted_date .date_posted-option input").change(function() {
|
||
const currentYear = $(this).data('year');
|
||
|
||
const selector = `.custom_posted_date #container_${currentYear}`;
|
||
updateDateFilters(selector);
|
||
|
||
// Used to select custom in preset list if dates are selected
|
||
if($('.custom_posted_date input:checked').length > 0)
|
||
{
|
||
$("#date_posted-custom").prop('checked', true);
|
||
$('.preset_posted_date input').attr('disabled', 'disabled');
|
||
}
|
||
else{
|
||
$("#date_posted-custom").prop('checked', false);
|
||
$('.preset_posted_date input').removeAttr('disabled');
|
||
}
|
||
|
||
});
|
||
|
||
// Used to select custom in preset list if dates are selected
|
||
if($('.custom_posted_date input:checked').length > 0)
|
||
{
|
||
$("#date_posted-custom").prop('checked', true);
|
||
$('.preset_posted_date input').attr('disabled', 'disabled');
|
||
}
|
||
else{
|
||
$("#date_posted-custom").prop('checked', false);
|
||
$('.preset_posted_date input').removeAttr('disabled');
|
||
}
|
||
|
||
PS_params.date_posted_preset = global_params.fields.date_posted.preset != '' ? global_params.fields.date_posted.preset : '';
|
||
PS_params.date_posted_custom = global_params.fields.date_posted.custom != '' ? global_params.fields.date_posted.custom : '';
|
||
|
||
empty_filters_list.push(PS_params.date_posted_preset);
|
||
empty_filters_list.push(PS_params.date_posted_custom);
|
||
}
|
||
|
||
// Setup Date creation filter
|
||
|
||
if (global_params.fields.date_created) {
|
||
$(".filter-date_created").css("display", "flex");
|
||
$(".filter-manager-controller.date_created").prop("checked", true);
|
||
|
||
if (global_params.fields.date_created.preset != null && global_params.fields.date_created.preset != "") {
|
||
// If filter is used and not empty check preset date option
|
||
$("#date_created-" + global_params.fields.date_created.preset).prop("checked", true);
|
||
date_created_str = $('.date_created-option label#'+ global_params.fields.date_created.preset +' .date-period').text();
|
||
|
||
// if option is custom check custom dates
|
||
if ('custom' == global_params.fields.date_created.preset && global_params.fields.date_created.custom != null)
|
||
{
|
||
date_created_str = '';
|
||
var customArray = global_params.fields.date_created.custom
|
||
|
||
$(customArray).each(function( index ) {
|
||
var customValue = this.substring(1, $(this).length);
|
||
|
||
$("#date_created_"+customValue).prop("checked", true).addClass('selected');
|
||
$("#date_created_"+customValue).siblings('label').find('.checked-icon').show();
|
||
|
||
date_created_str += $('.date_created-option label#'+ customValue +' .date-period').text()
|
||
|
||
if($(global_params.fields.date_created.custom).length > 1 && index != $(customArray).length-1)
|
||
{
|
||
date_created_str += ', ';
|
||
}
|
||
});
|
||
|
||
$('.date_created-option.year').each(function () {
|
||
updateDateFilters(`.custom_created_date #${$(this).attr('id')}`);
|
||
});
|
||
}
|
||
|
||
// change badge label if filter not empty
|
||
$(".filter-date_created").addClass("filter-filled");
|
||
$(".filter.filter-date_created .search-words").text(date_created_str);
|
||
}
|
||
|
||
$(".filter-date_created .filter-actions .clear").on('click', function () {
|
||
updateFilters('date_created', 'add');
|
||
$(".date_created-option input").prop('checked', false);
|
||
$(".date_created-option input").trigger('change');
|
||
|
||
// $('.date_created-option input').removeAttr('disabled');
|
||
// $('.date_created-option input').removeClass('grey-icon');
|
||
});
|
||
|
||
// Disable possiblity for user to select custom option, its gets selected programtically later on
|
||
$("#date_created_custom").attr('disabled', 'disabled');
|
||
|
||
// Handle toggle between preset and custom options
|
||
$(".custom_created_date_toggle").on("click", function (e) {
|
||
$('.custom_created_date').toggle()
|
||
$('.preset_created_date').toggle()
|
||
});
|
||
|
||
// Handle accoridan features in custom options
|
||
$(".custom_created_date .accordion-toggle").on("click", function (e) {
|
||
var clickedOption = $(this).parent();
|
||
$(clickedOption).toggleClass('show-child');
|
||
if('year' == $(this).data('type'))
|
||
{
|
||
$(clickedOption).parent().find('.date_created-option.month').toggle();
|
||
}
|
||
else if('month' == $(this).data('type'))
|
||
{
|
||
$(clickedOption).parent().find('.date_created-option.day').toggle();
|
||
}
|
||
});
|
||
|
||
// On custom date input select
|
||
$(".custom_created_date .date_created-option input").change(function() {
|
||
const currentYear = $(this).data('year');
|
||
const selector = `.custom_created_date #container_${currentYear}`;
|
||
updateDateFilters(selector);
|
||
|
||
// Used to select custom in preset list if dates are selected
|
||
if($('.custom_created_date input:checked').length > 0)
|
||
{
|
||
$("#date_created-custom").prop('checked', true);
|
||
$('.preset_created_date input').attr('disabled', 'disabled');
|
||
}
|
||
else{
|
||
$("#date_created-custom").prop('checked', false);
|
||
$('.preset_created_date input').removeAttr('disabled');
|
||
}
|
||
|
||
});
|
||
|
||
// Used to select custom in preset list if dates are selected
|
||
if($('.custom_created_date input:checked').length > 0)
|
||
{
|
||
$("#date_created-custom").prop('checked', true);
|
||
$('.preset_created_date input').attr('disabled', 'disabled');
|
||
}
|
||
else{
|
||
$("#date_created-custom").prop('checked', false);
|
||
$('.preset_created_date input').removeAttr('disabled');
|
||
}
|
||
|
||
PS_params.date_created_preset = global_params.fields.date_created.preset != '' ? global_params.fields.date_created.preset : '';
|
||
PS_params.date_created_custom = global_params.fields.date_created.custom != '' ? global_params.fields.date_created.custom : '';
|
||
|
||
empty_filters_list.push(PS_params.date_created_preset);
|
||
empty_filters_list.push(PS_params.date_created_custom);
|
||
}
|
||
|
||
// Setup album filter
|
||
if (global_params.fields.cat) {
|
||
$(".filter-album").css("display", "flex");
|
||
$(".filter-manager-controller.album").prop("checked", true);
|
||
|
||
album_widget_value = "";
|
||
global_params.fields.cat.words.forEach(cat_id => {
|
||
display_related_category(cat_id, fullname_of_cat[cat_id]);
|
||
album_widget_value += fullname_of_cat[cat_id] + ", ";
|
||
});
|
||
|
||
// Load Album Selector
|
||
ab = new AlbumSelector({
|
||
selectedCategoriesIds: global_params.fields.cat.words,
|
||
selectAlbum: add_related_category,
|
||
removeSelectedAlbum: remove_related_category,
|
||
modalTitle: str_search_in_ab,
|
||
});
|
||
|
||
$(".add-album-button").on("click", function () {
|
||
ab.open();
|
||
});
|
||
|
||
$('.selected-categories-container').on('click', (e) => {
|
||
if (e.target.classList.contains("remove-item")) {
|
||
ab.remove_selected_album($(e.target).attr('id'));
|
||
}
|
||
});
|
||
|
||
if (global_params.fields.cat.words && global_params.fields.cat.words.length > 0) {
|
||
$(".filter-album").addClass("filter-filled");
|
||
$(".filter-album .search-words").html(album_widget_value.slice(0, -2));
|
||
} else {
|
||
$(".filter-album .search-words").html(str_album_widget_label);
|
||
}
|
||
|
||
if (global_params.fields.cat.sub_inc) {
|
||
$("#search-sub-cats").prop("checked", true);
|
||
}
|
||
|
||
$(".filter-album .filter-actions .clear").on('click', function () {
|
||
$(".filter-album .search-params input[value='AND']");
|
||
ab.resetAll();
|
||
$(".selected-categories-container").empty();
|
||
$("#search-sub-cats").prop('checked', false);
|
||
});
|
||
|
||
PS_params.categories = global_params.fields.cat.words.length > 0 ? global_params.fields.cat.words : '';
|
||
PS_params.categories_withsubs = global_params.fields.cat.sub_inc;
|
||
|
||
empty_filters_list.push(PS_params.categories);
|
||
}
|
||
|
||
// Setup author filter
|
||
$("#authors").each(function() {
|
||
$(this).selectize({
|
||
plugins: ['remove_button'],
|
||
maxOptions:$(this).find("option").length,
|
||
items: global_params.fields.author ? global_params.fields.author.words : null,
|
||
});
|
||
if (global_params.fields.author) {
|
||
$(".filter-authors").css("display", "flex");
|
||
$(".filter-manager-controller.author").prop("checked", true);
|
||
|
||
author_search_str = "";
|
||
$("#authors")[0].selectize.getValue().forEach(id => {
|
||
author_search_str += $("#authors")[0].selectize.getItem(id).text().replace(/\(\d+ \w+\)×/, '').trim() + ", ";
|
||
});
|
||
|
||
if (global_params.fields.author.words && global_params.fields.author.words.length > 0) {
|
||
$(".filter-authors").addClass("filter-filled");
|
||
$(".filter.filter-authors .search-words").text(author_search_str.slice(0, -2));
|
||
} else {
|
||
$(".filter.filter-authors .search-words").text(str_author_widget_label);
|
||
}
|
||
|
||
$(".filter-authors .filter-actions .clear").on('click', function () {
|
||
$("#authors")[0].selectize.clear();
|
||
});
|
||
|
||
PS_params.authors = global_params.fields.author.words.length > 0 ? global_params.fields.author.words : '';
|
||
|
||
empty_filters_list.push(PS_params.authors);
|
||
}
|
||
});
|
||
|
||
// Setup added_by filter
|
||
if (global_params.fields.added_by) {
|
||
$(".filter-added_by").css("display", "flex");
|
||
$(".filter-manager-controller.added_by").prop("checked", true);
|
||
|
||
if (global_params.fields.added_by && global_params.fields.added_by.length > 0) {
|
||
$(".filter-added_by").addClass("filter-filled");
|
||
|
||
added_by_names = [];
|
||
|
||
$(".added_by-option").each(function () {
|
||
input = $(this).find('input');
|
||
added_by_id = parseInt(input.attr('name'));
|
||
|
||
if (jQuery.inArray(added_by_id, global_params.fields.added_by) >= 0) {
|
||
input.prop('checked', true);
|
||
added_by_names.push($(this).find('.added_by-name').text());
|
||
}
|
||
});
|
||
|
||
$(".filter.filter-added_by .search-words").text(added_by_names.join(', '));
|
||
|
||
} else {
|
||
$(".filter.filter-added_by .search-words").text(str_added_by_widget_label);
|
||
}
|
||
|
||
$(".filter-added_by .filter-actions .clear").on('click', function () {
|
||
$(".filter-added_by .added_by-option input").prop("checked", false);
|
||
});
|
||
|
||
PS_params.added_by = global_params.fields.added_by.length > 0 ? global_params.fields.added_by : '';
|
||
|
||
empty_filters_list.push(PS_params.added_by);
|
||
}
|
||
|
||
// Setup filetypes filter
|
||
if (global_params.fields.filetypes) {
|
||
$(".filter-filetypes").css("display", "flex");
|
||
$(".filter-manager-controller.filetypes").prop("checked", true);
|
||
|
||
filetypes_search_str = "";
|
||
global_params.fields.filetypes.forEach(ft => {
|
||
filetypes_search_str += ft + ", ";
|
||
});
|
||
|
||
if (global_params.fields.filetypes && global_params.fields.filetypes.length > 0) {
|
||
$(".filter-filetypes").addClass("filter-filled");
|
||
$(".filter.filter-filetypes .search-words").text(filetypes_search_str.toUpperCase().slice(0, -2));
|
||
|
||
$(".filetypes-option input").each(function () {
|
||
if (global_params.fields.filetypes.includes($(this).attr('name'))) {
|
||
$(this).prop('checked', true);
|
||
}
|
||
});
|
||
} else {
|
||
$(".filter.filter-filetypes .search-words").text(str_filetypes_widget_label);
|
||
}
|
||
|
||
$(".filter-filetypes .filter-actions .clear").on('click', function () {
|
||
$(".filter-filetypes .filetypes-option input").prop("checked", false);
|
||
});
|
||
|
||
PS_params.filetypes = global_params.fields.filetypes.length > 0 ? global_params.fields.filetypes : '';
|
||
|
||
empty_filters_list.push(PS_params.filetypes);
|
||
}
|
||
|
||
// Setup Ratio filter
|
||
if (global_params.fields.ratios) {
|
||
$(".filter-ratios").css("display", "flex");
|
||
$(".filter-manager-controller.ratios").prop("checked", true);
|
||
|
||
ratios_search_str = "";
|
||
global_params.fields.ratios.forEach(ft => {
|
||
ratios_search_str += str_ratios_label[ft] + ", ";
|
||
});
|
||
|
||
if (global_params.fields.ratios && global_params.fields.ratios.length > 0) {
|
||
$(".filter-ratios").addClass("filter-filled");
|
||
$(".filter.filter-ratios .search-words").text(ratios_search_str.slice(0, -2));
|
||
|
||
$(".ratios-option input").each(function () {
|
||
if (global_params.fields.ratios.includes($(this).attr('name'))) {
|
||
$(this).prop('checked', true);
|
||
}
|
||
});
|
||
} else {
|
||
$(".filter.filter-ratios .search-words").text(str_ratio_widget_label);
|
||
}
|
||
|
||
$(".filter-ratios .filter-actions .clear").on('click', function () {
|
||
$(".filter-ratios .ratios-option input").prop("checked", false);
|
||
});
|
||
|
||
PS_params.ratios = global_params.fields.ratios.length > 0 ? global_params.fields.ratios : '';
|
||
|
||
empty_filters_list.push(PS_params.ratios);
|
||
}
|
||
|
||
// Setup rating filter
|
||
if (global_params.fields.ratings && show_filter_ratings) {
|
||
|
||
$(".filter-ratings").css("display", "flex");
|
||
$(".filter-manager-controller.ratings").prop("checked", true);
|
||
|
||
ratings_search_str = "";
|
||
global_params.fields.ratings.forEach(function(ft, i){
|
||
if(0 == ft )
|
||
{
|
||
ratings_search_str += str_no_rating
|
||
if(global_params.fields.ratings.length > 1)
|
||
{
|
||
ratings_search_str += ", ";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
str_between = str_between_rating.split("%d");
|
||
ratings_search_str += str_between[0] + (ft-1) + str_between[1] + ft + str_between[2];
|
||
if(global_params.fields.ratings.length-1 != i)
|
||
{
|
||
ratings_search_str += ", ";
|
||
}
|
||
}
|
||
});
|
||
|
||
if (global_params.fields.ratings && global_params.fields.ratings.length > 0) {
|
||
$(".filter-ratings").addClass("filter-filled");
|
||
$(".filter.filter-ratings .search-words").text(ratings_search_str);
|
||
|
||
$(".ratings-option input").each(function () {
|
||
if (global_params.fields.ratings.includes($(this).attr('name'))) {
|
||
$(this).prop('checked', true);
|
||
}
|
||
});
|
||
} else {
|
||
$(".filter.filter-ratings .search-words").text(str_rating_widget_label);
|
||
}
|
||
|
||
$(".filter-ratings .filter-actions .clear").on('click', function () {
|
||
$(".filter-ratings .ratings-option input").prop("checked", false);
|
||
});
|
||
|
||
PS_params.ratings = global_params.fields.ratings.length > 0 ? global_params.fields.ratings : '';
|
||
|
||
empty_filters_list.push(PS_params.ratings);
|
||
}
|
||
else if (!show_filter_ratings)
|
||
{
|
||
updateFilters('ratings', 'add');
|
||
}
|
||
|
||
// Setup filesize filter
|
||
if (global_params.fields.filesize_min != null && global_params.fields.filesize_max != null) {
|
||
|
||
$(".filter-filesize").css("display", "flex");
|
||
$(".filter-manager-controller.filesize").prop("checked", true);
|
||
$(".filter.filter-filesize .slider-info").html(sprintf(sliders.filesizes.text,sliders.filesizes.selected.min,sliders.filesizes.selected.max,));
|
||
|
||
$('[data-slider=filesizes]').pwgDoubleSlider(sliders.filesizes);
|
||
|
||
$('[data-slider=filesizes]').on("slidestop", function(event, ui) {
|
||
var min = $('[data-slider=filesizes]').find('[data-input=min]').val();
|
||
var max = $('[data-slider=filesizes]').find('[data-input=max]').val();
|
||
|
||
$('input[name=filter_filesize_min_text]').val(min).trigger('change');
|
||
$('input[name=filter_filesize_max_text]').val(max).trigger('change');
|
||
|
||
});
|
||
|
||
if( global_params.fields.filesize_min != null && global_params.fields.filesize_max > 0) {
|
||
$(".filter-filesize").addClass("filter-filled");
|
||
$(".filter.filter-filesize .search-words").html(sprintf(sliders.filesizes.text,sliders.filesizes.selected.min,sliders.filesizes.selected.max,));
|
||
}
|
||
else
|
||
{
|
||
$(".filter.filter-filesize .search-words").text(str_filesize_widget_label);
|
||
}
|
||
|
||
$(".filter-filesize .filter-actions .clear").on('click', function () {
|
||
updateFilters('filesize', 'add');
|
||
$(".filter-filesize").trigger("click");
|
||
$('[data-slider=filesizes]').pwgDoubleSlider(sliders.filesizes);
|
||
if ($(".filter-filesize").hasClass("filter-filled")) {
|
||
$(".filter-filesize").removeClass("filter-filled")
|
||
$(".filter.filter-filesize .search-words").text(str_filesize_widget_label);
|
||
}
|
||
});
|
||
|
||
PS_params.filesize_min = global_params.fields.filesize_min != null ? global_params.fields.filesize_min : '';
|
||
PS_params.filesize_max = global_params.fields.filesize_max != null ? global_params.fields.filesize_max : '';
|
||
|
||
empty_filters_list.push(PS_params.filesize_min);
|
||
empty_filters_list.push(PS_params.filesize_max);
|
||
}
|
||
|
||
// Setup Height filter
|
||
if (global_params.fields.height_min != null && global_params.fields.height_max != null) {
|
||
$(".filter-height").css("display", "flex");
|
||
$(".filter-manager-controller.height").prop("checked", true);
|
||
$(".filter.filter-height .slider-info").html(sprintf(sliders.heights.text,sliders.heights.selected.min,sliders.heights.selected.max,));
|
||
|
||
$('[data-slider=heights]').pwgDoubleSlider(sliders.heights);
|
||
|
||
if( global_params.fields.height_min > 0 && global_params.fields.height_max > 0) {
|
||
$(".filter-height").addClass("filter-filled");
|
||
$(".filter.filter-height .search-words").html(sprintf(sliders.heights.text,sliders.heights.selected.min,sliders.heights.selected.max,));
|
||
}
|
||
else
|
||
{
|
||
$(".filter.filter-height .search-words").text(str_height_widget_label);
|
||
}
|
||
|
||
$(".filter-height .filter-actions .clear").on('click', function () {
|
||
updateFilters('height', 'add');
|
||
$(".filter-height").trigger("click");
|
||
$('[data-slider=heights]').pwgDoubleSlider(sliders.heights);
|
||
if ($(".filter-height").hasClass("filter-filled")) {
|
||
$(".filter-height").removeClass("filter-filled")
|
||
$(".filter.filter-height .search-words").text(str_height_widget_label);
|
||
}
|
||
});
|
||
|
||
PS_params.height_min = global_params.fields.height_min != null ? global_params.fields.height_min : '';
|
||
PS_params.height_max = global_params.fields.height_max != null ? global_params.fields.height_max : '';
|
||
|
||
empty_filters_list.push(PS_params.height_min);
|
||
empty_filters_list.push(PS_params.height_max);
|
||
}
|
||
|
||
// Setup Width filter
|
||
if (global_params.fields.width_min != null && global_params.fields.width_max != null) {
|
||
$(".filter-width").css("display", "flex");
|
||
$(".filter-manager-controller.width").prop("checked", true);
|
||
$(".filter.filter-width .slider-info").html(sprintf(sliders.widths.text,sliders.widths.selected.min,sliders.widths.selected.max,));
|
||
|
||
$('[data-slider=widths]').pwgDoubleSlider(sliders.widths);
|
||
|
||
if( global_params.fields.width_min > 0 && global_params.fields.width_max > 0) {
|
||
$(".filter-width").addClass("filter-filled");
|
||
$(".filter.filter-width .search-words").html(sprintf(sliders.widths.text,sliders.widths.selected.min,sliders.widths.selected.max,));
|
||
}
|
||
else
|
||
{
|
||
$(".filter.filter-width .search-words").text(str_width_widget_label);
|
||
}
|
||
|
||
$(".filter-width .filter-actions .clear").on('click', function () {
|
||
updateFilters('width', 'add');
|
||
$(".filter-width").trigger("click");
|
||
$('[data-slider=widths]').pwgDoubleSlider(sliders.widths);
|
||
if ($(".filter-width").hasClass("filter-filled")) {
|
||
$(".filter-width").removeClass("filter-filled")
|
||
$(".filter.filter-width .search-words").text(str_width_widget_label);
|
||
}
|
||
});
|
||
|
||
PS_params.width_min = global_params.fields.width_min != null ? global_params.fields.width_min : '';
|
||
PS_params.width_max = global_params.fields.width_max != null ? global_params.fields.width_max : '';
|
||
|
||
empty_filters_list.push(PS_params.width_min);
|
||
empty_filters_list.push(PS_params.width_max);
|
||
}
|
||
|
||
|
||
// Adapt no result message
|
||
if ($(".filter-filled").length === 0) {
|
||
$(".mcs-no-result .text .top").html(str_empty_search_top_alt);
|
||
$(".mcs-no-result .text .bot").html(str_empty_search_bot_alt);
|
||
}
|
||
|
||
if (!empty_filters_list.every(param => param === "" || param === null)) {
|
||
$(".clear-all").addClass("clickable");
|
||
$(".clear-all.clickable").on('click', function () {
|
||
exclude_params = ['search_id', 'allwords_mode', 'allwords_fields', 'tags_mode', 'categories_withsubs'];
|
||
for (const key in PS_params) {
|
||
if (!exclude_params.includes(key)) {
|
||
if("date_posted_custom" == key || "date_created_custom" == key)
|
||
{
|
||
PS_params[key] = [];
|
||
}
|
||
else
|
||
{
|
||
PS_params[key] = '';
|
||
}
|
||
}
|
||
}
|
||
performSearch(PS_params, true);
|
||
});
|
||
}
|
||
|
||
/**
|
||
* Filter Manager
|
||
*/
|
||
$(".filter-manager").on('click', function () {
|
||
$(".filter-manager-popin").show();
|
||
});
|
||
|
||
$(document).on('keyup', function (e) {
|
||
// 27 is 'Escape'
|
||
if(e.keyCode === 27) {
|
||
$(".filter-manager-popin .filter-manager-close").trigger('click');
|
||
}
|
||
// 13 is 'Enter'
|
||
if (e.keyCode === 13) {
|
||
$('.filter-form .filter-validate').each(function () {
|
||
if ($(this).is(':visible')) {
|
||
$(this).trigger('click');
|
||
}
|
||
})
|
||
}
|
||
});
|
||
|
||
$(".filter-manager-popin").on('click', function(e) {
|
||
if ($(this).is(e.target) && $(this).has(e.target).length === 0) {
|
||
$(".filter-manager-popin .filter-manager-close").trigger('click');
|
||
}
|
||
});
|
||
|
||
$(".filter-manager-popin .filter-cancel, .filter-manager-popin .filter-manager-close").on('click', function () {
|
||
$(".filter-manager-popin").hide();
|
||
$(".filter-manager-controller-container input").each(function (e) {
|
||
if ($(this).is(':checked')) {
|
||
if (!$(".filter.filter-" + $(this).data("wid")).is(':visible')) {
|
||
$(this).prop('checked', false);
|
||
}
|
||
} else {
|
||
if ($(".filter.filter-" + $(this).data("wid")).is(':visible')) {
|
||
$(this).prop('checked', true);
|
||
}
|
||
}
|
||
});
|
||
});
|
||
|
||
$(".filter-manager-popin .filter-validate").on('click', function () {
|
||
$(".filter-manager-controller-container input").each(function (e) {
|
||
if ($(this).is(':checked')) {
|
||
if (!$(".filter.filter-" + $(this).data("wid")).is(':visible')) {
|
||
updateFilters($(this).data("wid"), 'add');
|
||
}
|
||
} else {
|
||
if ($(".filter.filter-" + $(this).data("wid")).is(':visible')) {
|
||
updateFilters($(this).data("wid"), 'del');
|
||
}
|
||
}
|
||
});
|
||
// Set second param to true to trigger reload
|
||
performSearch(PS_params ,true);
|
||
});
|
||
|
||
/**
|
||
* Tags & Albums found
|
||
*/
|
||
$(".mcs-tags-found").on('click', function () {
|
||
$(".tags-found-popin").show();
|
||
});
|
||
$(".mcs-albums-found").on('click', function () {
|
||
$(".albums-found-popin").show();
|
||
});
|
||
|
||
$(document).on('keyup', function (e) {
|
||
// 27 is 'Escape'
|
||
if(e.keyCode === 27) {
|
||
$(".tags-found-popin .tags-found-close").trigger('click');
|
||
$(".albums-found-popin .albums-found-close").trigger('click');
|
||
}
|
||
});
|
||
|
||
$(".tags-found-popin").on('click', function(e) {
|
||
if ($(this).is(e.target) && $(this).has(e.target).length === 0) {
|
||
$(".tags-found-popin .tags-found-close").trigger('click');
|
||
}
|
||
});
|
||
$(".tags-found-close").on('click', function () {
|
||
$(".tags-found-popin").hide();
|
||
});
|
||
|
||
$(".albums-found-popin").on('click', function(e) {
|
||
if ($(this).is(e.target) && $(this).has(e.target).length === 0) {
|
||
$(".albums-found-popin .albums-found-close").trigger('click');
|
||
}
|
||
});
|
||
$(".albums-found-close").on('click', function () {
|
||
$(".albums-found-popin").hide();
|
||
})
|
||
|
||
|
||
/**
|
||
* Filter Word
|
||
*/
|
||
$(".filter-word").on("click", function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form")) {
|
||
return;
|
||
}
|
||
$(".filter-word-form").toggle(0, function () {
|
||
|
||
if ($(this).is(':visible')) {
|
||
$(".filter-word").addClass("show-filter-dropdown");
|
||
$("#word-search").focus();
|
||
} else {
|
||
$(".filter-word").removeClass("show-filter-dropdown");
|
||
|
||
global_params.fields.allwords = {};
|
||
global_params.fields.allwords.words = $("#word-search").val();
|
||
global_params.fields.allwords.mode = $(".word-search-options input:checked").attr('value');
|
||
|
||
PS_params.allwords = $("#word-search").val();
|
||
PS_params.allwords_mode = $(".word-search-options input:checked").attr('value');
|
||
|
||
new_fields = [];
|
||
$(".filter-word-form .search-params input:checked").each(function () {
|
||
if ($(this).attr("name") == "tags") {
|
||
global_params.fields.search_in_tags = true;
|
||
}
|
||
new_fields.push($(this).attr("name"));
|
||
});
|
||
if ($(".filter-word-form .search-params input[name='tags']:checked").length == 0) {
|
||
delete global_params.fields.search_in_tags;
|
||
}
|
||
global_params.fields.allwords.fields = new_fields;
|
||
PS_params.allwords_fields = new_fields.length > 0 ? new_fields : '';
|
||
}
|
||
});
|
||
});
|
||
$(".filter-word .filter-validate").on("click", function () {
|
||
$(".filter-word").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
$(".filter-word .filter-actions .delete").on("click", function () {
|
||
updateFilters('word', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-word").hasClass("filter-filled")) {
|
||
$(".filter-word").hide();
|
||
$(".filter-manager-controller.word").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* Filter Tag
|
||
*/
|
||
$(".filter-tag").on("click", function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form") ||
|
||
$(e.target).hasClass("remove")) {
|
||
return;
|
||
}
|
||
$(".filter-tag-form").toggle(0, function () {
|
||
if ($(this).is(':visible')) {
|
||
$(".filter-tag").addClass("show-filter-dropdown");
|
||
} else {
|
||
$(".filter-tag").removeClass("show-filter-dropdown");
|
||
global_params.fields.tags = {};
|
||
global_params.fields.tags.mode = $(".filter-tag-form .search-params input:checked").val();
|
||
global_params.fields.tags.words = $("#tag-search")[0].selectize.getValue();
|
||
|
||
PS_params.tags = $("#tag-search")[0].selectize.getValue().length > 0 ? $("#tag-search")[0].selectize.getValue() : '';
|
||
PS_params.tags_mode = $(".filter-tag-form .search-params input:checked").val();
|
||
}
|
||
});
|
||
});
|
||
$(".filter-tag .filter-validate").on("click", function () {
|
||
$(".filter-tag").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
$(".filter-tag .filter-actions .delete").on("click", function () {
|
||
updateFilters('tag', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-tag").hasClass("filter-filled")) {
|
||
$(".filter-tag").hide();
|
||
$(".filter-manager-controller.tags").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* Filter Date posted
|
||
*/
|
||
$(".filter-date_posted").on("click", function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form")) {
|
||
return;
|
||
}
|
||
$(".filter-date_posted-form").toggle(0, function () {
|
||
if ($(this).is(':visible'))
|
||
{
|
||
$(".filter-date_posted").addClass("show-filter-dropdown");
|
||
}
|
||
else
|
||
{
|
||
$(".filter-date_posted").removeClass("show-filter-dropdown");
|
||
|
||
var presetValue = $(".preset_posted_date .date_posted-option input:checked").val();
|
||
|
||
global_params.fields.date_posted.preset = presetValue;
|
||
PS_params.date_posted_preset = presetValue != null ? presetValue : "";
|
||
|
||
if ('custom' == presetValue)
|
||
{
|
||
var customDates = [];
|
||
|
||
$(".custom_posted_date .date_posted-option input:checked").each(function(){
|
||
customDates.push($(this).val());
|
||
});
|
||
|
||
global_params.fields.date_posted.custom = customDates;
|
||
PS_params.date_posted_custom = customDates.length > 0 ? customDates : "";
|
||
}
|
||
|
||
}
|
||
});
|
||
});
|
||
|
||
$(".filter-date_posted .filter-validate").on("click", function () {
|
||
$(".filter-date_posted").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
|
||
$(".filter-date_posted .filter-actions .delete").on("click", function () {
|
||
updateFilters('date_posted', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-date_posted").hasClass("filter-filled")) {
|
||
$(".filter-date_posted").hide();
|
||
$(".filter-manager-controller.date").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* Filter Date created
|
||
*/
|
||
$(".filter-date_created").on("click", function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form")) {
|
||
return;
|
||
}
|
||
$(".filter-date_created-form").toggle(0, function () {
|
||
if ($(this).is(':visible'))
|
||
{
|
||
$(".filter-date_created").addClass("show-filter-dropdown");
|
||
}
|
||
else
|
||
{
|
||
$(".filter-date_created").removeClass("show-filter-dropdown");
|
||
|
||
var presetValue = $(".preset_created_date .date_created-option input:checked").val();
|
||
|
||
global_params.fields.date_created.preset = presetValue;
|
||
PS_params.date_created_preset = presetValue != null ? presetValue : "";
|
||
|
||
if ('custom' == presetValue)
|
||
{
|
||
var customDates = [];
|
||
|
||
$(".custom_created_date .date_created-option input:checked").each(function(){
|
||
customDates.push($(this).val());
|
||
});
|
||
|
||
global_params.fields.date_created.custom = customDates;
|
||
PS_params.date_created_custom = customDates.length > 0 ? customDates : "";
|
||
}
|
||
|
||
}
|
||
});
|
||
});
|
||
|
||
$(".filter-date_created .filter-validate").on("click", function () {
|
||
$(".filter-date_created").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
|
||
$(".filter-date_created .filter-actions .delete").on("click", function () {
|
||
updateFilters('date_created', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-date_created").hasClass("filter-filled")) {
|
||
$(".filter-date_created").hide();
|
||
$(".filter-manager-controller.date").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* Filter Album
|
||
*/
|
||
$(".filter-album").on("click", function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form") ||
|
||
$(e.target).hasClass("remove-item")) {
|
||
return;
|
||
}
|
||
$(".filter-album-form").toggle(0, function () {
|
||
if ($(this).is(':visible')) {
|
||
$(".filter-album").addClass("show-filter-dropdown");
|
||
} else {
|
||
$(".filter-album").removeClass("show-filter-dropdown");
|
||
global_params.fields.cat = {};
|
||
global_params.fields.cat.words = ab.get_selected_albums();
|
||
// global_params.fields.cat.search_params = $(".filter-form.filter-album-form .search-params input:checked").val().toLowerCase();
|
||
global_params.fields.cat.sub_inc = $("input[name='search-sub-cats']:checked").length != 0;
|
||
|
||
PS_params.categories = ab.get_selected_albums().length > 0 ? ab.get_selected_albums() : '';
|
||
PS_params.categories_withsubs = $("input[name='search-sub-cats']:checked").length != 0;
|
||
}
|
||
});
|
||
});
|
||
$(".filter-album .filter-validate").on("click", function () {
|
||
$(".filter-album").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
$(".filter-album .filter-actions .delete").on("click", function () {
|
||
updateFilters('album', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-album").hasClass("filter-filled")) {
|
||
$(".filter-album").hide();
|
||
$(".filter-manager-controller.album").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* Author Widget
|
||
*/
|
||
$(".filter-authors").on("click", function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form") ||
|
||
$(e.target).hasClass("remove")) {
|
||
return;
|
||
}
|
||
$(".filter-author-form").toggle(0, function () {
|
||
if ($(this).is(':visible')) {
|
||
$(".filter-authors").addClass("show-filter-dropdown");
|
||
} else {
|
||
$(".filter-authors").removeClass("show-filter-dropdown");
|
||
global_params.fields.author = {};
|
||
global_params.fields.author.mode = "OR";
|
||
global_params.fields.author.words = $("#authors")[0].selectize.getValue();
|
||
|
||
PS_params.authors = $("#authors")[0].selectize.getValue().length > 0 ? $("#authors")[0].selectize.getValue() : '';
|
||
}
|
||
});
|
||
});
|
||
$(".filter-authors .filter-validate").on("click", function () {
|
||
$(".filter-authors").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
$(".filter-authors .filter-actions .delete").on("click", function () {
|
||
updateFilters('authors', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-authors").hasClass("filter-filled")) {
|
||
$(".filter-authors").hide();
|
||
$(".filter-manager-controller.author").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* Added by Widget
|
||
*/
|
||
$(".filter-added_by").on("click", function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form") ||
|
||
$(e.target).hasClass("remove")) {
|
||
return;
|
||
}
|
||
$(".filter-added_by-form").toggle(0, function () {
|
||
if ($(this).is(':visible')) {
|
||
$(".filter-added_by").addClass("show-filter-dropdown");
|
||
} else {
|
||
$(".filter-added_by").removeClass("show-filter-dropdown");
|
||
global_params.fields.added_by = {};
|
||
global_params.fields.added_by.mode = "OR";
|
||
|
||
added_by_array = []
|
||
$(".added_by-option input:checked").each(function () {
|
||
added_by_array.push($(this).attr('name'));
|
||
});
|
||
|
||
global_params.fields.added_by.words = added_by_array;
|
||
|
||
PS_params.added_by = added_by_array.length > 0 ? added_by_array : '';
|
||
}
|
||
});
|
||
});
|
||
$(".filter-added_by .filter-validate").on("click", function () {
|
||
$(".filter-added_by").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
$(".filter-added_by .filter-actions .delete").on("click", function () {
|
||
updateFilters('added_by', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-added_by").hasClass("filter-filled")) {
|
||
$(".filter-added_by").hide();
|
||
$(".filter-manager-controller.added_by").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* File type Widget
|
||
*/
|
||
$(".filter-filetypes").on("click", function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form") ||
|
||
$(e.target).hasClass("remove")) {
|
||
return;
|
||
}
|
||
$(".filter-filetypes-form").toggle(0, function () {
|
||
if ($(this).is(':visible')) {
|
||
$(".filter-filetypes").addClass("show-filter-dropdown");
|
||
} else {
|
||
$(".filter-filetypes").removeClass("show-filter-dropdown");
|
||
|
||
filetypes_array = []
|
||
$(".filetypes-option input:checked").each(function () {
|
||
filetypes_array.push($(this).attr('name'));
|
||
});
|
||
|
||
global_params.fields.filetypes = filetypes_array;
|
||
|
||
PS_params.filetypes = filetypes_array.length > 0 ? filetypes_array : '';
|
||
}
|
||
});
|
||
});
|
||
|
||
$(".filter-filetypes .filter-validate").on("click", function () {
|
||
$(".filter-filetypes").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
$(".filter-filetypes .filter-actions .delete").on("click", function () {
|
||
updateFilters('filetypes', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-filetypes").hasClass("filter-filled")) {
|
||
$(".filter-filetypes").hide();
|
||
$(".filter-manager-controller.filetypes").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* Ratios widget
|
||
*/
|
||
$(".filter-ratios").on('click', function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form") ||
|
||
$(e.target).hasClass("remove")) {
|
||
return;
|
||
}
|
||
$(".filter-ratios-form").toggle(0, function () {
|
||
if ($(this).is(':visible')) {
|
||
$(".filter-ratios").addClass("show-filter-dropdown");
|
||
} else {
|
||
$(".filter-ratios").removeClass("show-filter-dropdown");
|
||
|
||
ratios_array = []
|
||
$(".ratios-option input:checked").each(function () {
|
||
ratios_array.push($(this).attr('name'));
|
||
});
|
||
|
||
global_params.fields.ratios = ratios_array;
|
||
|
||
PS_params.ratios = ratios_array.length > 0 ? ratios_array : '';
|
||
}
|
||
});
|
||
});
|
||
|
||
$(".filter-ratios .filter-validate").on("click", function () {
|
||
$(".filter-ratios").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
$(".filter-ratios .filter-actions .delete").on("click", function () {
|
||
updateFilters('ratios', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-ratios").hasClass("filter-filled")) {
|
||
$(".filter-ratios").hide();
|
||
$(".filter-manager-controller.ratios").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* Rating widget
|
||
*/
|
||
$(".filter-ratings").on('click', function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form") ||
|
||
$(e.target).hasClass("remove")) {
|
||
return;
|
||
}
|
||
$(".filter-ratings-form").toggle(0, function () {
|
||
if ($(this).is(':visible')) {
|
||
$(".filter-ratings").addClass("show-filter-dropdown");
|
||
} else {
|
||
$(".filter-ratings").removeClass("show-filter-dropdown");
|
||
ratings_array = []
|
||
|
||
$(".ratings-option input:checked").each(function () {
|
||
ratings_array.push($(this).attr('name'));
|
||
});
|
||
|
||
global_params.fields.ratings = ratings_array;
|
||
PS_params.ratings = ratings_array.length > 0 ? ratings_array : '';
|
||
|
||
}
|
||
});
|
||
});
|
||
|
||
$(".filter-ratings .filter-validate").on("click", function () {
|
||
$(".filter-ratings").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
$(".filter-ratings .filter-actions .delete").on("click", function () {
|
||
updateFilters('ratings', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-ratings").hasClass("filter-filled")) {
|
||
$(".filter-ratings").hide();
|
||
$(".filter-manager-controller.ratings").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* Filesize widget
|
||
*/
|
||
$(".filter-filesize").on('click', function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form") ||
|
||
$(e.target).hasClass("remove")) {
|
||
return;
|
||
}
|
||
$(".filter-filesize-form").toggle(0, function () {
|
||
if ($(this).is(':visible')) {
|
||
$(".filter-filesize").addClass("show-filter-dropdown");
|
||
} else {
|
||
$(".filter-filesize").removeClass("show-filter-dropdown");
|
||
}
|
||
});
|
||
|
||
});
|
||
$(".filter-filesize .filter-validate").on("click", function () {
|
||
filesize_min = Math.floor(($('input[name=filter_filesize_min]').val())*1024)
|
||
filesize_max = Math.ceil(($('input[name=filter_filesize_max]').val())*1024)
|
||
|
||
global_params.fields.filesize_min = filesize_min;
|
||
global_params.fields.filesize_max = filesize_max;
|
||
|
||
PS_params.filesize_min = filesize_min;
|
||
PS_params.filesize_max = filesize_max;
|
||
|
||
$(".filter-filesize").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
|
||
$(".filter-filesize .filter-actions .delete").on("click", function () {
|
||
updateFilters('filesize', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-filesize").hasClass("filter-filled")) {
|
||
$(".filter-filesize").hide();
|
||
$(".filter-manager-controller.filesize").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* Height widget
|
||
*/
|
||
$(".filter-height").on('click', function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form") ||
|
||
$(e.target).hasClass("remove")) {
|
||
return;
|
||
}
|
||
$(".filter-height-form").toggle(0, function () {
|
||
if ($(this).is(':visible')) {
|
||
$(".filter-height").addClass("show-filter-dropdown");
|
||
} else {
|
||
$(".filter-height").removeClass("show-filter-dropdown");
|
||
}
|
||
});
|
||
|
||
});
|
||
$(".filter-height .filter-validate").on("click", function () {
|
||
height_min = $('input[name=filter_height_min]').val()
|
||
height_max = $('input[name=filter_height_max]').val()
|
||
|
||
global_params.fields.height_min = height_min;
|
||
global_params.fields.height_max = height_max;
|
||
|
||
PS_params.height_min = height_min;
|
||
PS_params.height_max = height_max;
|
||
|
||
$(".filter-height").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
|
||
$(".filter-height .filter-actions .delete").on("click", function () {
|
||
updateFilters('height', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-height").hasClass("filter-filled")) {
|
||
$(".filter-height").hide();
|
||
$(".filter-manager-controller.height").prop("checked", false);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* Width widget
|
||
*/
|
||
$(".filter-width").on('click', function (e) {
|
||
if ($(".filter-form").has(e.target).length != 0 ||
|
||
$(e.target).hasClass("filter-form") ||
|
||
$(e.target).hasClass("remove")) {
|
||
return;
|
||
}
|
||
$(".filter-width-form").toggle(0, function () {
|
||
if ($(this).is(':visible')) {
|
||
$(".filter-width").addClass("show-filter-dropdown");
|
||
} else {
|
||
$(".filter-width").removeClass("show-filter-dropdown");
|
||
}
|
||
});
|
||
|
||
});
|
||
$(".filter-width .filter-validate").on("click", function () {
|
||
width_min = $('input[name=filter_width_min]').val()
|
||
width_max = $('input[name=filter_width_max]').val()
|
||
|
||
global_params.fields.width_min = width_min;
|
||
global_params.fields.width_max = width_max;
|
||
|
||
PS_params.width_min = width_min;
|
||
PS_params.width_max = width_max;
|
||
|
||
$(".filter-width").trigger("click");
|
||
performSearch(PS_params, true);
|
||
});
|
||
|
||
$(".filter-width .filter-actions .delete").on("click", function () {
|
||
updateFilters('width', 'del');
|
||
performSearch(PS_params, true);
|
||
if (!$(".filter-width").hasClass("filter-filled")) {
|
||
$(".filter-width").hide();
|
||
$(".filter-manager-controller.width").prop("checked", false);
|
||
}
|
||
});
|
||
})
|
||
|
||
function performSearch(params, reload = false) {
|
||
$.ajax({
|
||
url: "ws.php?format=json&method=pwg.images.filteredSearch.create",
|
||
type:"POST",
|
||
dataType: "json",
|
||
data: params,
|
||
success:function(data) {
|
||
if (reload && typeof data.result.search_url !== 'undefined') {
|
||
reloadPage(data.result.search_url);
|
||
}
|
||
},
|
||
error:function(e) {
|
||
console.log(e);
|
||
$(".filter-form ").append('<p class="error">Error</p>')
|
||
$(".filter-validate").find(".validate-text").css("display", "block");
|
||
$(".filter-validate").find(".loading").hide();
|
||
$(".remove-filter").removeClass(prefix_icon + 'spin6 animate-spin').addClass(prefix_icon + 'cancel');
|
||
},
|
||
});
|
||
}
|
||
|
||
function add_related_category({ album, addSelectedAlbum }) {
|
||
display_related_category(album.id, album.name);
|
||
$(".invisible-related-categories-select").append(`<option selected value="${album.id}"></option>`);
|
||
addSelectedAlbum();
|
||
}
|
||
|
||
function remove_related_category({ id_album }) {
|
||
$("#" + id_album).parent().remove();
|
||
}
|
||
|
||
function display_related_category(cat_id, cat_link_path) {
|
||
$(".selected-categories-container").append(
|
||
`<div class="breadcrumb-item">
|
||
<span class="link-path">${cat_link_path}</span><span id="${cat_id}" class="mcs-icon ${prefix_icon}cancel remove-item"></span>
|
||
</div>`
|
||
);
|
||
}
|
||
|
||
function updateFilters(filterName, mode) {
|
||
switch (filterName) {
|
||
case 'word':
|
||
if (mode == 'add') {
|
||
global_params.fields.allwords = {};
|
||
|
||
PS_params.allwords = '';
|
||
PS_params.allwords_mode = 'AND';
|
||
PS_params.allwords_fields = [];
|
||
} else if (mode == 'del') {
|
||
delete global_params.fields.allwords;
|
||
|
||
delete PS_params.allwords;
|
||
delete PS_params.allwords_mode;
|
||
delete PS_params.allwords_fields;
|
||
}
|
||
break;
|
||
|
||
case 'tag':
|
||
if (mode == 'add') {
|
||
global_params.fields.tags = {};
|
||
|
||
PS_params.tags = '';
|
||
PS_params.tags_mode = 'AND';
|
||
} else if (mode == 'del') {
|
||
delete global_params.fields.tags;
|
||
|
||
delete PS_params.tags;
|
||
delete PS_params.tags_mode;
|
||
}
|
||
break;
|
||
|
||
case 'album':
|
||
if (mode == 'add') {
|
||
global_params.fields.cat = {};
|
||
|
||
PS_params.categories = '';
|
||
PS_params.categories_withsubs = false;
|
||
} else if (mode == 'del') {
|
||
delete global_params.fields.cat;
|
||
|
||
delete PS_params.categories;
|
||
delete PS_params.categories_withsubs;
|
||
}
|
||
break;
|
||
|
||
case 'date_posted':
|
||
if (mode == 'add') {
|
||
global_params.fields['date_posted'] = {};
|
||
global_params.fields.date_posted.preset = '';
|
||
global_params.fields.date_posted.custom = [];
|
||
|
||
PS_params.date_posted_preset = '';
|
||
PS_params.date_posted_custom = [];
|
||
|
||
} else if (mode == 'del') {
|
||
delete global_params.fields.date_posted.preset;
|
||
delete global_params.fields.date_posted.custom;
|
||
|
||
delete PS_params.date_posted_preset;
|
||
delete PS_params.date_posted_custom;
|
||
}
|
||
break;
|
||
|
||
case 'date_created':
|
||
if (mode == 'add') {
|
||
global_params.fields['date_created'] = {};
|
||
global_params.fields.date_created.preset = '';
|
||
global_params.fields.date_created.custom = [];
|
||
|
||
PS_params.date_created_preset = '';
|
||
PS_params.date_created_custom = [];
|
||
|
||
} else if (mode == 'del') {
|
||
delete global_params.fields.date_created.preset;
|
||
delete global_params.fields.date_created.custom;
|
||
|
||
delete PS_params.date_created_preset;
|
||
delete PS_params.date_created_custom;
|
||
}
|
||
break;
|
||
|
||
case 'filesize':
|
||
if (mode == 'add') {
|
||
global_params.fields.filesize_min = '';
|
||
global_params.fields.filesize_max = '';
|
||
|
||
PS_params.filesize_min = '';
|
||
PS_params.filesize_max = '';
|
||
|
||
} else if (mode == 'del') {
|
||
delete global_params.fields.filesize_min;
|
||
delete global_params.fields.filesize_max;
|
||
|
||
delete PS_params.filesize_min;
|
||
delete PS_params.filesize_max;
|
||
}
|
||
break;
|
||
|
||
case 'height':
|
||
if (mode == 'add') {
|
||
global_params.fields.height_min = '';
|
||
global_params.fields.height_max = '';
|
||
|
||
PS_params.height_min = '';
|
||
PS_params.height_max = '';
|
||
|
||
} else if (mode == 'del') {
|
||
delete global_params.fields.height_min;
|
||
delete global_params.fields.height_max;
|
||
|
||
delete PS_params.height_min;
|
||
delete PS_params.height_max;
|
||
}
|
||
break;
|
||
|
||
case 'width':
|
||
if (mode == 'add') {
|
||
global_params.fields.width_min = '';
|
||
global_params.fields.width_max = '';
|
||
|
||
PS_params.width_min = '';
|
||
PS_params.width_max = '';
|
||
|
||
} else if (mode == 'del') {
|
||
delete global_params.fields.width_min;
|
||
delete global_params.fields.width_max;
|
||
|
||
delete PS_params.width_min;
|
||
delete PS_params.width_max;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
if (mode == 'add') {
|
||
global_params.fields[filterName] = {};
|
||
|
||
PS_params[filterName] = '';
|
||
} else if (mode == 'del') {
|
||
delete global_params.fields[filterName];
|
||
|
||
delete PS_params[filterName];
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
function reloadPage(url){
|
||
window.location.href = url;
|
||
}
|
||
|
||
function updateDateFilters(selector) {
|
||
const ctx = $(selector);
|
||
const inputYear = ctx.find('.year_input input');
|
||
const iconYear = ctx.find('.year_input .mcs-icon');
|
||
const allMonth = ctx.find('.months_container').children();
|
||
const allDays = ctx.find('.days_container').children();
|
||
let yearIsCheck = false;
|
||
|
||
// check year
|
||
// year state
|
||
// check => check mark
|
||
// uncheck with children checked => outline check mark
|
||
// uncheck without children checked => hide
|
||
if (inputYear.is(':checked')) {
|
||
console.log('state : Year is check')
|
||
yearIsCheck = true;
|
||
ctx.find(':input:not(:checked)').attr('disabled', true);
|
||
iconYear.removeClass('gallery-icon-check-outline grey-icon')
|
||
.addClass('gallery-icon-checkmark').show();
|
||
} else if (ctx.find(':input:checked').length) {
|
||
console.log('state : Year is uncheck but have children', ctx.find(':input:checked'));
|
||
ctx.find(':input').attr('disabled', false);
|
||
iconYear.removeClass('gallery-icon-checkmark')
|
||
.addClass('gallery-icon-check-outline grey-icon').show();
|
||
} else {
|
||
console.log('state: Year is uncheck and doesnt have children');
|
||
ctx.find(':input').attr('disabled', false);
|
||
iconYear.removeClass('grey-icon').hide();
|
||
}
|
||
|
||
// check month and his days
|
||
// month state
|
||
// check => check mark
|
||
// uncheck with children check => outline check mark
|
||
// uncheck with no children and year is checked => grey check mark
|
||
// uncheck with no children => hide
|
||
allMonth.each(function () {
|
||
const monthInput = $(this).find('.month_input input');
|
||
const iconMonth = $(this).find('.month_input .mcs-icon');
|
||
const allDays = $(this).find('.days_container').children();
|
||
let monthIsChecked = false;
|
||
|
||
if (monthInput.is(':checked')) {
|
||
monthIsChecked = true;
|
||
allDays.find(':input:not(:checked)').attr('disabled', true);
|
||
iconMonth.removeClass('gallery-icon-check-outline grey-icon')
|
||
.addClass('gallery-icon-checkmark').show();
|
||
} else if (allDays.find(':input:checked').length) {
|
||
iconMonth.removeClass('gallery-icon-checkmark')
|
||
.addClass('gallery-icon-check-outline grey-icon').show();
|
||
} else if (yearIsCheck) {
|
||
iconMonth.removeClass('gallery-icon-check-outline')
|
||
.addClass('gallery-icon-checkmark grey-icon').show();
|
||
} else {
|
||
iconMonth.removeClass('grey-icon').hide();
|
||
}
|
||
|
||
// day state
|
||
// check => check mark
|
||
// uncheck with year or month checked => grey check mark
|
||
// uncheck without year or month checked => hide
|
||
allDays.each(function () {
|
||
const inputDay = $(this).find('input');
|
||
const iconDay = $(this).find('.mcs-icon');
|
||
|
||
if (inputDay.is(':checked')) {
|
||
iconDay.removeClass('grey-icon').show();
|
||
} else if (monthIsChecked || yearIsCheck) {
|
||
iconDay.addClass('grey-icon').show();
|
||
} else {
|
||
iconDay.removeClass('grey-icon').hide();
|
||
}
|
||
});
|
||
});
|
||
}
|
||
|
||
/**
|
||
* Replace the filter_form elements if they exceed the window
|
||
*/
|
||
function resize_filter_form(){
|
||
$('.form_mobile_arrow').remove();
|
||
$('.filter').each(function() {
|
||
const window_width = $(window).innerWidth();
|
||
const left_distance = $(this).offset().left;
|
||
const filter_form = $(this).find($('.filter-form'));
|
||
const filter_form_width = filter_form.innerWidth();
|
||
const too_left = (left_distance + $(this).innerWidth()) - filter_form_width;
|
||
const is_desktop = window.matchMedia("(min-width: 600px)").matches;
|
||
filter_form.css('left', '0px');
|
||
const margin_left = is_desktop ? 15 : 0;
|
||
|
||
if(left_distance + filter_form_width > window_width) {
|
||
const check_left = too_left < 0 ? Math.abs(too_left - margin_left) : 0;
|
||
const mobile_marg = is_desktop ? 0 : 2;
|
||
const replace_form_width = - filter_form_width + $(this).innerWidth() + check_left - mobile_marg;
|
||
filter_form.css('left', replace_form_width+'px');
|
||
}
|
||
if(!is_desktop){
|
||
const left_arrow = $(this).offset().left + ($(this).innerWidth() / 2);
|
||
filter_form.prepend('<svg width="10" height="10" viewBox="0 0 14 14" class="form_mobile_arrow" style="left:'+left_arrow+'px"><polygon class="arrow-border" points="7,0 14,14 0,14"/><polygon class="arrow-fill" points="7,1 13.5,14 0.5,14"/></svg>');
|
||
}
|
||
});
|
||
}
|
||
$(window).on('load', function() {
|
||
resize_filter_form();
|
||
});
|
||
$(window).on('resize', function() {
|
||
resize_filter_form();
|
||
}); |