Vanessa 2023-07-13 00:07:33 +08:00
parent f68857fda5
commit ebd399c018
11 changed files with 13 additions and 81 deletions

View file

@ -4,7 +4,6 @@ import {transaction} from "../../wysiwyg/transaction";
export const addCol = (protyle: IProtyle, blockElement: HTMLElement) => {
const menu = new Menu("av-header-add");
const avID = blockElement.getAttribute("data-av-id");
const viewID = blockElement.querySelector(".item--focus").getAttribute("data-id");
menu.addItem({
icon: "iconAlignLeft",
label: window.siyuan.languages.text,
@ -14,14 +13,12 @@ export const addCol = (protyle: IProtyle, blockElement: HTMLElement) => {
action: "addAttrViewCol",
name: "Text",
avID,
viewID,
type: "text",
id
}], [{
action: "removeAttrViewCol",
id,
avID,
viewID,
}]);
}
});
@ -34,14 +31,12 @@ export const addCol = (protyle: IProtyle, blockElement: HTMLElement) => {
action: "addAttrViewCol",
name: "Number",
avID,
viewID,
type: "number",
id
}], [{
action: "removeAttrViewCol",
id,
avID,
viewID,
}]);
}
});
@ -54,14 +49,12 @@ export const addCol = (protyle: IProtyle, blockElement: HTMLElement) => {
action: "addAttrViewCol",
name: "Select",
avID,
viewID,
type: "select",
id
}], [{
action: "removeAttrViewCol",
id,
avID,
viewID,
}]);
}
});
@ -74,14 +67,12 @@ export const addCol = (protyle: IProtyle, blockElement: HTMLElement) => {
action: "addAttrViewCol",
name: "Multi-select",
avID,
viewID,
type: "mSelect",
id
}], [{
action: "removeAttrViewCol",
id,
avID,
viewID,
}]);
}
});
@ -94,14 +85,12 @@ export const addCol = (protyle: IProtyle, blockElement: HTMLElement) => {
action: "addAttrViewCol",
name: "Date",
avID,
viewID,
type: "date",
id
}], [{
action: "removeAttrViewCol",
id,
avID,
viewID,
}]);
}
});

View file

@ -56,8 +56,8 @@ const updateCellValue = (protyle: IProtyle, cellElement: HTMLElement, type: TAVC
}
const avMaskElement = document.querySelector(".av__mask");
const cellId = cellElement.getAttribute("data-id");
const avId = blockElement.getAttribute("data-av-id");
const rowId = rowElement.getAttribute("data-id");
const colId = cellElement.getAttribute("data-col-id");
const avID = blockElement.getAttribute("data-av-id");
let inputValue: string | number = (avMaskElement.querySelector(".b3-text-field") as HTMLInputElement).value;
let oldValue: string | number = cellElement.textContent.trim();
if (type === "number") {
@ -67,16 +67,16 @@ const updateCellValue = (protyle: IProtyle, cellElement: HTMLElement, type: TAVC
transaction(protyle, [{
action: "updateAttrViewCell",
id: cellId,
rowID: rowId,
parentID: avId,
avID,
keyID: colId,
data: {
[type]: {content: inputValue}
}
}], [{
action: "updateAttrViewCell",
id: cellId,
rowID: rowId,
parentID: avId,
avID,
keyID: colId,
data: {
[type]: {content: oldValue}
}

View file

@ -66,7 +66,6 @@ export const showColMenu = (protyle: IProtyle, blockElement: HTMLElement, cellEl
const type = cellElement.getAttribute("data-dtype") as TAVCol;
const colId = cellElement.getAttribute("data-col-id");
const avId = blockElement.getAttribute("data-av-id");
const viewId = blockElement.querySelector(".item--focus").getAttribute("data-id");
const menu = new Menu("av-header-cell", () => {
const newValue = (window.siyuan.menus.menu.element.querySelector(".b3-text-field") as HTMLInputElement).value;
if (newValue === cellElement.textContent.trim()) {
@ -76,14 +75,12 @@ export const showColMenu = (protyle: IProtyle, blockElement: HTMLElement, cellEl
action: "updateAttrViewCol",
id: colId,
avID: avId,
viewID: viewId,
name: newValue,
type,
}], [{
action: "updateAttrViewCol",
id: colId,
avID: avId,
viewID: viewId,
name: cellElement.textContent.trim(),
type,
}]);
@ -110,7 +107,6 @@ export const showColMenu = (protyle: IProtyle, blockElement: HTMLElement, cellEl
transaction(protyle, [{
action: "setAttrViewSorts",
avID: response.data.id,
viewID: response.data.viewID,
data: [{
column: colId,
order: "ASC"
@ -118,7 +114,6 @@ export const showColMenu = (protyle: IProtyle, blockElement: HTMLElement, cellEl
}], [{
action: "setAttrViewSorts",
avID: response.data.id,
viewID: response.data.viewID,
data: response.data.view.sorts
}]);
});
@ -132,7 +127,6 @@ export const showColMenu = (protyle: IProtyle, blockElement: HTMLElement, cellEl
transaction(protyle, [{
action: "setAttrViewSorts",
avID: response.data.id,
viewID: response.data.viewID,
data: [{
column: colId,
order: "DESC"
@ -140,7 +134,6 @@ export const showColMenu = (protyle: IProtyle, blockElement: HTMLElement, cellEl
}], [{
action: "setAttrViewSorts",
avID: response.data.id,
viewID: response.data.viewID,
data: response.data.view.sorts
}]);
});
@ -169,12 +162,10 @@ export const showColMenu = (protyle: IProtyle, blockElement: HTMLElement, cellEl
transaction(protyle, [{
action: "setAttrViewFilters",
avID: avId,
viewID: avData.viewID,
data: [filter]
}], [{
action: "setAttrViewFilters",
avID: avId,
viewID: avData.viewID,
data: []
}]);
}
@ -197,13 +188,11 @@ export const showColMenu = (protyle: IProtyle, blockElement: HTMLElement, cellEl
action: "setAttrViewColHidden",
id: colId,
avID: avId,
viewID: viewId,
data: true
}], [{
action: "setAttrViewColHidden",
id: colId,
avID: avId,
viewID: viewId,
data: false
}]);
}
@ -223,12 +212,10 @@ export const showColMenu = (protyle: IProtyle, blockElement: HTMLElement, cellEl
action: "removeAttrViewCol",
id: colId,
avID: avId,
viewID: viewId,
}], [{
action: "addAttrViewCol",
name: cellElement.textContent.trim(),
avID: avId,
viewID: viewId,
type: type,
id: colId
}]);
@ -247,13 +234,11 @@ export const showColMenu = (protyle: IProtyle, blockElement: HTMLElement, cellEl
action: "setAttrViewColWrap",
id: colId,
avID: avId,
viewID: viewId,
data: inputElement.checked
}], [{
action: "setAttrViewColWrap",
id: colId,
avID: avId,
viewID: viewId,
data: !inputElement.checked
}]);
});

View file

@ -75,12 +75,10 @@ export const setFilter = (options: {
transaction(options.protyle, [{
action: "setAttrViewFilters",
avID: options.data.id,
viewID: options.data.viewID,
data: options.data.view.filters
}], [{
action: "setAttrViewFilters",
avID: options.data.id,
viewID: options.data.viewID,
data: oldFilters
}]);
const menuElement = hasClosestByClassName(options.target, "b3-menu");
@ -177,12 +175,10 @@ export const setFilter = (options: {
transaction(options.protyle, [{
action: "setAttrViewFilters",
avID: options.data.id,
viewID: options.data.viewID,
data: options.data.view.filters
}], [{
action: "setAttrViewFilters",
avID: options.data.id,
viewID: options.data.viewID,
data: oldFilters
}]);
const menuElement = hasClosestByClassName(options.target, "b3-menu");
@ -255,12 +251,10 @@ export const addFilter = (options: {
transaction(options.protyle, [{
action: "setAttrViewFilters",
avID: options.data.id,
viewID: options.data.viewID,
data: options.data.view.filters
}], [{
action: "setAttrViewFilters",
avID: options.data.id,
viewID: options.data.viewID,
data: oldFilters
}]);
options.menuElement.innerHTML = getFiltersHTML(options.data.view);

View file

@ -139,12 +139,10 @@ export const openMenuPanel = (protyle: IProtyle,
transaction(protyle, [{
action: "setAttrViewSorts",
avID: avId,
viewID: data.viewID,
data: changeData
}], [{
action: "setAttrViewSorts",
avID: avId,
viewID: data.viewID,
data: oldData
}]);
menuElement.innerHTML = getSortsHTML(data.view.columns, data.view.sorts);
@ -175,12 +173,10 @@ export const openMenuPanel = (protyle: IProtyle,
transaction(protyle, [{
action: "setAttrViewFilters",
avID: avId,
viewID: data.viewID,
data: changeData
}], [{
action: "setAttrViewFilters",
avID: avId,
viewID: data.viewID,
data: oldData
}]);
menuElement.innerHTML = getFiltersHTML(data.view);
@ -189,13 +185,11 @@ export const openMenuPanel = (protyle: IProtyle,
transaction(protyle, [{
action: "sortAttrViewCol",
avID: avId,
viewID: data.viewID,
previousID: (targetElement.classList.contains("dragover__top") ? targetElement.previousElementSibling?.getAttribute("data-id") : targetElement.getAttribute("data-id")) || "",
id: sourceId,
}], [{
action: "sortAttrViewCol",
avID: avId,
viewID: data.viewID,
previousID: sourceElement.previousElementSibling?.getAttribute("data-id") || "",
id: sourceId,
}]);
@ -281,12 +275,10 @@ export const openMenuPanel = (protyle: IProtyle,
transaction(protyle, [{
action: "setAttrViewSorts",
avID: avId,
viewID: data.viewID,
data: []
}], [{
action: "setAttrViewSorts",
avID: avId,
viewID: data.viewID,
data: data.view.sorts
}]);
data.view.sorts = [];
@ -310,12 +302,10 @@ export const openMenuPanel = (protyle: IProtyle,
transaction(protyle, [{
action: "setAttrViewSorts",
avID: avId,
viewID: data.viewID,
data: data.view.sorts
}], [{
action: "setAttrViewSorts",
avID: avId,
viewID: data.viewID,
data: oldSorts
}]);
menuElement.innerHTML = getSortsHTML(data.view.columns, data.view.sorts);
@ -332,12 +322,10 @@ export const openMenuPanel = (protyle: IProtyle,
transaction(protyle, [{
action: "setAttrViewFilters",
avID: avId,
viewID: data.viewID,
data: []
}], [{
action: "setAttrViewFilters",
avID: avId,
viewID: data.viewID,
data: data.view.filters
}]);
data.view.filters = [];
@ -361,12 +349,10 @@ export const openMenuPanel = (protyle: IProtyle,
transaction(protyle, [{
action: "setAttrViewFilters",
avID: avId,
viewID: data.viewID,
data: data.view.filters
}], [{
action: "setAttrViewFilters",
avID: avId,
viewID: data.viewID,
data: oldFilters
}]);
menuElement.innerHTML = getFiltersHTML(data.view);
@ -407,14 +393,12 @@ export const openMenuPanel = (protyle: IProtyle,
action: "setAttrViewColHidden",
id: item.id,
avID: avId,
viewID: data.viewID,
data: false
});
undoOperations.push({
action: "setAttrViewColHidden",
id: item.id,
avID: avId,
viewID: data.viewID,
data: true
});
item.hidden = false;
@ -436,14 +420,12 @@ export const openMenuPanel = (protyle: IProtyle,
action: "setAttrViewColHidden",
id: item.id,
avID: avId,
viewID: data.viewID,
data: true
});
undoOperations.push({
action: "setAttrViewColHidden",
id: item.id,
avID: avId,
viewID: data.viewID,
data: false
});
item.hidden = true;
@ -462,13 +444,11 @@ export const openMenuPanel = (protyle: IProtyle,
action: "setAttrViewColHidden",
id: colId,
avID: avId,
viewID: data.viewID,
data: true
}], [{
action: "setAttrViewColHidden",
id: colId,
avID: avId,
viewID: data.viewID,
data: false
}]);
data.view.columns.find((item: IAVColumn) => item.id === colId).hidden = true;
@ -482,13 +462,11 @@ export const openMenuPanel = (protyle: IProtyle,
action: "setAttrViewColHidden",
id: colId,
avID: avId,
viewID: data.viewID,
data: false
}], [{
action: "setAttrViewColHidden",
id: colId,
avID: avId,
viewID: data.viewID,
data: true
}]);
data.view.columns.find((item: IAVColumn) => item.id === colId).hidden = false;

View file

@ -85,13 +85,13 @@ export const removeSelectCell = (protyle: IProtyle, data: IAVTable, options: {
transaction(protyle, [{
action: "updateAttrViewCell",
id: cellId,
rowID: rowId,
keyID: colId,
parentID: data.id,
data: cellData.value
}], [{
action: "updateAttrViewCell",
id: cellId,
rowID: rowId,
keyID: colId,
parentID: data.id,
data: {
[colData.type]: oldValue
@ -403,7 +403,7 @@ export const addSelectColAndCell = (protyle: IProtyle, data: IAVTable, options:
}, {
action: "updateAttrViewCell",
id: cellId,
rowID: rowId,
keyID: colId,
parentID: data.id,
data: cellData.value
}], [{
@ -416,13 +416,13 @@ export const addSelectColAndCell = (protyle: IProtyle, data: IAVTable, options:
transaction(protyle, [{
action: "updateAttrViewCell",
id: cellId,
rowID: rowId,
keyID: colId,
parentID: data.id,
data: cellData.value
}], [{
action: "updateAttrViewCell",
id: cellId,
rowID: rowId,
keyID: colId,
parentID: data.id,
data: {
[colData.type]: oldValue

View file

@ -33,12 +33,10 @@ export const addSort = (options: {
transaction(options.protyle, [{
action: "setAttrViewSorts",
avID: options.data.id,
viewID: options.data.viewID,
data: options.data.view.sorts
}], [{
action: "setAttrViewSorts",
avID: options.data.id,
viewID: options.data.viewID,
data: oldSorts
}]);
options.menuElement.innerHTML = getSortsHTML(options.data.view.columns, options.data.view.sorts);
@ -74,12 +72,10 @@ export const bindSortsEvent = (protyle: IProtyle, menuElement: HTMLElement, data
transaction(protyle, [{
action: "setAttrViewSorts",
avID: data.id,
viewID: data.viewID,
data: data.view.sorts
}], [{
action: "setAttrViewSorts",
avID: data.id,
viewID: data.viewID,
data: oldSort
}]);
});

View file

@ -824,17 +824,14 @@ export const dropEvent = (protyle: IProtyle, editorElement: HTMLElement) => {
return;
}
const avID = blockElement.getAttribute("data-av-id");
const viewID = blockElement.querySelector(".item--focus").getAttribute("data-av-id");
transaction(protyle, [{
action: "sortAttrViewCol",
avID,
viewID,
previousID: (targetElement.classList.contains("dragover__left") ? targetElement.previousElementSibling?.getAttribute("data-id") : targetElement.getAttribute("data-id")) || "",
id: gutterTypes[2],
}], [{
action: "sortAttrViewCol",
avID,
viewID,
previousID: targetElement.parentElement.querySelector(`[data-id="${gutterTypes[2]}"`).previousElementSibling?.getAttribute("data-id") || "",
id: gutterTypes[2],
}]);
@ -853,7 +850,6 @@ export const dropEvent = (protyle: IProtyle, editorElement: HTMLElement) => {
previousID = targetElement.previousElementSibling?.getAttribute("data-id") || "";
}
const avID = blockElement.getAttribute("data-av-id");
const viewID = blockElement.querySelector(".item--focus").getAttribute("data-id");
if (gutterTypes[0] === "nodeattributeview" && gutterTypes[1] === "row") {
// 行内拖拽
const doOperations: IOperation[] = [];
@ -863,14 +859,12 @@ export const dropEvent = (protyle: IProtyle, editorElement: HTMLElement) => {
doOperations.push({
action: "sortAttrViewRow",
avID,
viewID,
previousID,
id: item,
});
undoOperations.push({
action: "sortAttrViewRow",
avID,
viewID,
previousID: undoPreviousId,
id: item,
});

View file

@ -353,7 +353,6 @@ export class WYSIWYG {
return;
}
const avId = nodeElement.getAttribute("data-av-id");
const viewId = (nodeElement.querySelector(".item--focus") as HTMLElement).dataset.id;
const dragElement = target.parentElement;
const oldWidth = dragElement.clientWidth;
const dragColId = dragElement.getAttribute("data-col-id");
@ -375,13 +374,11 @@ export class WYSIWYG {
action: "setAttrViewColWidth",
id: dragColId,
avID: avId,
viewID: viewId,
data: newWidth
}], [{
action: "setAttrViewColWidth",
id: dragColId,
avID: avId,
viewID: viewId,
data: oldWidth + "px"
}]);
};

View file

@ -13,7 +13,7 @@ import {addLoading, setPadding} from "../protyle/ui/initUI";
import {getIconByType} from "../editor/getIcon";
import {unicode2Emoji} from "../emoji";
import {hasClosestByClassName} from "../protyle/util/hasClosest";
import {setStorageVal, updateHotkeyTip} from "../protyle/util/compatibility";
import {isCtrl, setStorageVal, updateHotkeyTip} from "../protyle/util/compatibility";
import {newFileByName} from "../util/newFile";
import {matchHotKey} from "../protyle/util/hotKey";
import {filterMenu, getKeyByLiElement, initCriteriaMenu, moreMenu, queryMenu, saveCriterion} from "./menu";

View file

@ -308,7 +308,7 @@ interface IOperation {
action: TOperation, // move delete 不需要传 data
id?: string,
avID?: string, // av
viewID?: string, // av
keyID?: string // updateAttrViewCell 专享
data?: any, // updateAttr 时为 { old: IObject, new: IObject }, updateAttrViewCell 时为 {TAVCol: {content: string}}
parentID?: string
previousID?: string
@ -317,7 +317,6 @@ interface IOperation {
srcIDs?: string[] // insertAttrViewBlock 专享
name?: string // addAttrViewCol 专享
type?: TAVCol // addAttrViewCol 专享
rowID?: string // updateAttrViewCell 专享
deckID?: string // add/removeFlashcards 专享
blockIDs?: string[] // add/removeFlashcards 专享
}