mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-17 09:36:08 +08:00
ui: fix problem_edit subcategory tag selection (#660)
This commit is contained in:
1 parent
a9b2f68d2d
commit
6940eae888
1 file changed
+8
-15
@@ -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) {
|
||||
|
||||
Reference in new issue
Block a user