mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +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) => {
|
$(document).on('click', '.widget--category-filter__tag', (ev) => {
|
||||||
if (ev.shiftKey || ev.metaKey || ev.ctrlKey) return;
|
if (ev.shiftKey || ev.metaKey || ev.ctrlKey) return;
|
||||||
const category = $(ev.currentTarget).text();
|
const tag = $(ev.currentTarget).text();
|
||||||
const treeItem = categories[category];
|
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
|
// the effect should be cancelSelect if it is shown as selected when clicking
|
||||||
const shouldSelect = treeItem.$tag.hasClass('selected') ? false : !treeItem.select;
|
const shouldSelect = treeItem.$tag.hasClass('selected') ? false : !treeItem.select;
|
||||||
treeItem.select = shouldSelect;
|
treeItem.select = shouldSelect;
|
||||||
dirtyCategories.push({ type: 'category', category });
|
dirtyCategories.push(category
|
||||||
if (!shouldSelect) {
|
? { type: 'subcategory', subcategory: tag, category }
|
||||||
|
: { type: 'category', category: tag });
|
||||||
|
if (!category && !shouldSelect) {
|
||||||
// de-select children
|
// de-select children
|
||||||
_.forEach(treeItem.children, (treeSubItem, subcategory) => {
|
_.forEach(treeItem.children, (treeSubItem, subcategory) => {
|
||||||
if (treeSubItem.select) {
|
if (treeSubItem.select) {
|
||||||
treeSubItem.select = false;
|
treeSubItem.select = false;
|
||||||
dirtyCategories.push({ type: 'subcategory', subcategory, category });
|
dirtyCategories.push({ type: 'subcategory', subcategory, category: tag });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
updateSelection();
|
updateSelection();
|
||||||
ev.preventDefault();
|
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) {
|
async function handleSection(ev, sidebar, type) {
|
||||||
|
|||||||
Reference in new issue
Block a user