mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-02-13 10:44:20 +01:00
This commit is contained in:
parent
cbbca634f5
commit
e492c973ac
5 changed files with 51 additions and 5 deletions
|
|
@ -281,6 +281,10 @@
|
|||
box-sizing: border-box;
|
||||
translate: var(--b3-transition);
|
||||
|
||||
&--show {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: var(--b3-theme-on-background);
|
||||
background-color: var(--b3-list-icon-hover);
|
||||
|
|
|
|||
|
|
@ -167,10 +167,10 @@ export const getGroupsHTML = (columns: IAVColumn[], view: IAVView) => {
|
|||
groupHTML = '<button class="b3-menu__separator"></button>';
|
||||
const disabledDrag = ["created", "date", "created", "updated"].includes(column.type);
|
||||
view.groups.forEach(item => {
|
||||
groupHTML += `<button class="b3-menu__item" draggable="${disabledDrag ? "false" : "true"}">
|
||||
groupHTML += `<button class="b3-menu__item" draggable="${disabledDrag ? "false" : "true"}" data-id="${item.id}">
|
||||
${disabledDrag ? "" : '<svg class="b3-menu__icon fn__grab"><use xlink:href="#iconDrag"></use></svg>'}
|
||||
<div class="b3-menu__label fn__flex">${item.name || ""}</div>
|
||||
<svg class="b3-menu__action" data-type="hideGroup" data-id="${item.id}"><use xlink:href="#iconEye${item.groupHidden === 0 ? "" : "off"}"></use></svg>
|
||||
<svg class="b3-menu__action b3-menu__action--show" data-type="hideGroup" data-id="${item.id}"><use xlink:href="#iconEye${item.groupHidden === 0 ? "" : "off"}"></use></svg>
|
||||
</button>`;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -431,9 +431,8 @@ export const openMenuPanel = (options: {
|
|||
}, options.cellElements);
|
||||
return;
|
||||
}
|
||||
|
||||
if (targetElement.getAttribute("data-type") === "editCol") {
|
||||
const previousID = (targetElement.classList.contains("dragover__top") ? targetElement.previousElementSibling?.getAttribute("data-id") : targetElement.getAttribute("data-id")) || "";
|
||||
const previousID = (isTop ? targetElement.previousElementSibling?.getAttribute("data-id") : targetElement.getAttribute("data-id")) || "";
|
||||
const undoPreviousID = sourceElement.previousElementSibling?.getAttribute("data-id") || "";
|
||||
if (previousID !== undoPreviousID && previousID !== sourceId) {
|
||||
transaction(options.protyle, [{
|
||||
|
|
@ -470,6 +469,48 @@ export const openMenuPanel = (options: {
|
|||
menuElement.innerHTML = getPropertiesHTML(fields);
|
||||
return;
|
||||
}
|
||||
if (targetElement.querySelector('[data-type="hideGroup"]')) {
|
||||
const previousID = (isTop ? targetElement.previousElementSibling?.getAttribute("data-id") : targetElement.getAttribute("data-id")) || "";
|
||||
const undoPreviousID = sourceElement.previousElementSibling?.getAttribute("data-id") || "";
|
||||
if (previousID !== undoPreviousID && previousID !== sourceId) {
|
||||
transaction(options.protyle, [{
|
||||
action: "sortAttrViewGroup",
|
||||
avID,
|
||||
blockID,
|
||||
previousID,
|
||||
id: sourceId,
|
||||
}], [{
|
||||
action: "sortAttrViewGroup",
|
||||
avID,
|
||||
blockID,
|
||||
previousID: undoPreviousID,
|
||||
id: sourceId,
|
||||
}]);
|
||||
data.view.groups.find((group, index) => {
|
||||
if (group.id === sourceId) {
|
||||
const groupData = data.view.groups.splice(index, 1)[0];
|
||||
data.view.groups.find((item, index: number) => {
|
||||
if (item.id === targetId) {
|
||||
if (isTop) {
|
||||
data.view.groups.splice(index, 0, groupData);
|
||||
} else {
|
||||
data.view.groups.splice(index + 1, 0, groupData);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}
|
||||
});
|
||||
if (isTop) {
|
||||
targetElement.before(sourceElement);
|
||||
} else {
|
||||
targetElement.after(sourceElement);
|
||||
}
|
||||
}
|
||||
targetElement.classList.remove("dragover__top", "dragover__bottom");
|
||||
return;
|
||||
}
|
||||
});
|
||||
let dragoverElement: HTMLElement;
|
||||
avPanelElement.addEventListener("dragover", (event: DragEvent) => {
|
||||
|
|
|
|||
|
|
@ -860,7 +860,7 @@ export const onTransaction = (protyle: IProtyle, operation: IOperation, isUndo:
|
|||
"updateAttrViewColRelation", "setAttrViewPageSize", "updateAttrViewColRollup", "sortAttrViewKey", "setAttrViewColDesc",
|
||||
"duplicateAttrViewKey", "setAttrViewViewDesc", "setAttrViewCoverFrom", "setAttrViewCoverFromAssetKeyID",
|
||||
"setAttrViewBlockView", "setAttrViewCardSize", "setAttrViewCardAspectRatio", "hideAttrViewName", "setAttrViewShowIcon",
|
||||
"setAttrViewWrapField", "setAttrViewGroup", "removeAttrViewGroup", "hideAttrViewGroup"].includes(operation.action)) {
|
||||
"setAttrViewWrapField", "setAttrViewGroup", "removeAttrViewGroup", "hideAttrViewGroup", "sortAttrViewGroup"].includes(operation.action)) {
|
||||
if (!isUndo) {
|
||||
// 撤销 transaction 会进行推送,需使用推送来进行刷新最新数据 https://github.com/siyuan-note/siyuan/issues/13607
|
||||
refreshAV(protyle, operation);
|
||||
|
|
|
|||
1
app/src/types/index.d.ts
vendored
1
app/src/types/index.d.ts
vendored
|
|
@ -67,6 +67,7 @@ type TOperation =
|
|||
| "removeAttrViewGroup"
|
||||
| "syncAttrViewTableColWidth"
|
||||
| "hideAttrViewGroup"
|
||||
| "sortAttrViewGroup"
|
||||
type TBazaarType = "templates" | "icons" | "widgets" | "themes" | "plugins"
|
||||
type TCardType = "doc" | "notebook" | "all"
|
||||
type TEventBus = "ws-main" | "sync-start" | "sync-end" | "sync-fail" |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue