fix(web): Tags filter broken.

This commit is contained in:
Terry Geng 2020-07-21 10:29:31 +08:00
parent 2f81f6527c
commit 2304b9e67a
No known key found for this signature in database
GPG Key ID: F982F8EA1DF720E7

View File

@ -503,6 +503,8 @@ const tag_edit_element = $('.library-item-edit');
// var notag_element = $(".library-item-notag");
// var tag_element = $(".library-item-tag");
let library_tags = [];
function updateLibraryControls(){
$.ajax({
type: 'GET',
@ -539,27 +541,42 @@ function displayLibraryControls(data){
}
// ----- Tag filters -----
$(".filter-tag").remove();
if (data.tags.length > 0) {
data.tags.forEach(function (tag) {
const tag_copy = lib_filter_tag_element.clone();
tag_copy.html(tag);
tag_copy.addClass('badge-' + getColor(tag));
tag_copy.appendTo(lib_filter_tag_group);
});
}
// Bind Event
$('.filter-tag').click(function (e) {
const tag = $(e.currentTarget);
if (!tag.hasClass('tag-clicked')) {
tag.addClass('tag-clicked');
tag.removeClass('tag-unclicked');
} else {
tag.addClass('tag-unclicked');
tag.removeClass('tag-clicked');
}
updateResults();
let tags = [];
let tags_dict = {};
$(".filter-tag").each(function(i, tag_element){
tags_dict[tag_element.innerHTML] = tag_element;
tags.push(tag_element.innerHTML);
});
if (data.tags.length > 0) {
for (const tag of data.tags){
if (tags.includes(tag)){
let index = tags.indexOf(tag);
tags.splice(index, 1);
} else {
const tag_copy = lib_filter_tag_element.clone();
tag_copy.html(tag);
tag_copy.addClass('badge-' + getColor(tag));
tag_copy.appendTo(lib_filter_tag_group);
// Bind Event
tag_copy.click(function (e) {
const tag = $(e.currentTarget);
if (!tag.hasClass('tag-clicked')) {
tag.addClass('tag-clicked');
tag.removeClass('tag-unclicked');
} else {
tag.addClass('tag-unclicked');
tag.removeClass('tag-clicked');
}
updateResults();
});
}
}
for (const tag of tags) {
tags_dict[tag].remove();
}
} else {
$(".filter-tag").remove();
}
}
function addResultItem(item) {
@ -865,8 +882,8 @@ document.getElementById('addTagModalSubmit').addEventListener('click', () => {
id: add_tag_modal_item_id.val(),
tags: tags.join(','),
},
complete: function () { updateResults(active_page); },
});
updateResults(active_page);
});
// ---------------------