ui: fix problem_edit subcategory tag selection (#660)

This commit is contained in:
panda authored and GitHub committed 2023-09-21 02:50:24 +08:00
1 parent a9b2f68d2d
commit 6940eae888
1 file changed
+8 -15
+8 -15
View File
@@ -116,34 +116,27 @@ function buildCategoryFilter() {
});
$(document).on('click', '.widget--category-filter__tag', (ev) => {
if (ev.shiftKey || ev.metaKey || ev.ctrlKey) return;
const category = $(ev.currentTarget).text();
const treeItem = categories[category];
const tag = $(ev.currentTarget).text();
const category = $(ev.currentTarget).attr('data-category');
const treeItem = category ? categories[category].children[tag] : categories[tag];
// the effect should be cancelSelect if it is shown as selected when clicking
const shouldSelect = treeItem.$tag.hasClass('selected') ? false : !treeItem.select;
treeItem.select = shouldSelect;
dirtyCategories.push({ type: 'category', category });
if (!shouldSelect) {
dirtyCategories.push(category
? { type: 'subcategory', subcategory: tag, category }
: { type: 'category', category: tag });
if (!category && !shouldSelect) {
// de-select children
_.forEach(treeItem.children, (treeSubItem, subcategory) => {
if (treeSubItem.select) {
treeSubItem.select = false;
dirtyCategories.push({ type: 'subcategory', subcategory, category });
dirtyCategories.push({ type: 'subcategory', subcategory, category: tag });
}
});
}
updateSelection();
ev.preventDefault();
});
$(document).on('click', '.widget--category-filter__subcategory-tag', (ev) => {
if (ev.shiftKey || ev.metaKey || ev.ctrlKey) return;
const subcategory = $(ev.currentTarget).text();
const category = $(ev.currentTarget).attr('data-category');
const treeItem = categories[category].children[subcategory];
treeItem.select = !treeItem.select;
dirtyCategories.push({ type: 'subcategory', subcategory, category });
updateSelection();
ev.preventDefault();
});
}
async function handleSection(ev, sidebar, type) {