This commit is contained in:
parent
5bb7a630a3
commit
0d1cba588a
2 changed files with 27 additions and 32 deletions
|
@ -70,7 +70,7 @@ export const openMenuPanel = (options: {
|
|||
const data = response.data as IAV;
|
||||
let html;
|
||||
if (options.type === "config") {
|
||||
html = getViewHTML(data.view);
|
||||
html = getViewHTML(data);
|
||||
} else if (options.type === "properties") {
|
||||
html = getPropertiesHTML(data.view);
|
||||
} else if (options.type === "sorts") {
|
||||
|
@ -518,7 +518,7 @@ export const openMenuPanel = (options: {
|
|||
event.stopPropagation();
|
||||
break;
|
||||
} else if (type === "go-config") {
|
||||
menuElement.innerHTML = getViewHTML(data.view);
|
||||
menuElement.innerHTML = getViewHTML(data);
|
||||
setPosition(menuElement, tabRect.right - menuElement.clientWidth, tabRect.bottom, tabRect.height);
|
||||
bindViewEvent({protyle: options.protyle, data, menuElement, blockElement: options.blockElement});
|
||||
window.siyuan.menus.menu.remove();
|
||||
|
@ -758,16 +758,12 @@ export const openMenuPanel = (options: {
|
|||
event.stopPropagation();
|
||||
break;
|
||||
} else if (type === "delete-view") {
|
||||
if (data.views.length === 1) {
|
||||
removeBlock(options.protyle, options.blockElement, getEditorRange(options.blockElement), "remove");
|
||||
} else {
|
||||
transaction(options.protyle, [{
|
||||
action: "removeAttrViewView",
|
||||
avID,
|
||||
id: data.viewID,
|
||||
blockID
|
||||
}]);
|
||||
}
|
||||
transaction(options.protyle, [{
|
||||
action: "removeAttrViewView",
|
||||
avID,
|
||||
id: data.viewID,
|
||||
blockID
|
||||
}]);
|
||||
avPanelElement.remove();
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
|
|
@ -63,14 +63,12 @@ export const openViewMenu = (options: { protyle: IProtyle, blockElement: HTMLEle
|
|||
options.blockElement.setAttribute(Constants.CUSTOM_SY_AV_VIEW, id);
|
||||
}
|
||||
});
|
||||
menu.addItem({
|
||||
icon: "iconTrashcan",
|
||||
label: window.siyuan.languages.delete,
|
||||
click() {
|
||||
document.querySelector(".av__panel")?.remove();
|
||||
if (options.blockElement.querySelectorAll(".layout-tab-bar .item").length === 1) {
|
||||
removeBlock(options.protyle, options.blockElement, getEditorRange(options.blockElement), "remove");
|
||||
} else {
|
||||
if (options.blockElement.querySelectorAll(".layout-tab-bar .item").length > 1) {
|
||||
menu.addItem({
|
||||
icon: "iconTrashcan",
|
||||
label: window.siyuan.languages.delete,
|
||||
click() {
|
||||
document.querySelector(".av__panel")?.remove();
|
||||
transaction(options.protyle, [{
|
||||
action: "removeAttrViewView",
|
||||
avID: options.blockElement.dataset.avId,
|
||||
|
@ -78,8 +76,8 @@ export const openViewMenu = (options: { protyle: IProtyle, blockElement: HTMLEle
|
|||
blockID: options.blockElement.dataset.nodeId
|
||||
}]);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
const rect = options.element.getBoundingClientRect();
|
||||
menu.open({
|
||||
x: rect.left,
|
||||
|
@ -156,46 +154,47 @@ export const bindViewEvent = (options: {
|
|||
});
|
||||
};
|
||||
|
||||
export const getViewHTML = (data: IAVTable) => {
|
||||
export const getViewHTML = (data: IAV) => {
|
||||
const view = data.view;
|
||||
return `<div class="b3-menu__items">
|
||||
<button class="b3-menu__item" data-type="nobg">
|
||||
<span class="b3-menu__label ft__center">${window.siyuan.languages.config}</span>
|
||||
</button>
|
||||
<button class="b3-menu__separator"></button>
|
||||
<button class="b3-menu__item" data-type="nobg">
|
||||
<span style="padding: 5px;margin-right: 8px;width: 14px;font-size: 14px;" class="block__icon block__icon--show" data-icon="${data.icon}" data-type="update-view-icon">${data.icon ? unicode2Emoji(data.icon) : '<svg><use xlink:href="#iconTable"></use></svg>'}</span>
|
||||
<span class="b3-menu__label" style="padding: 4px;display: flex;"><input data-type="name" class="b3-text-field fn__block" type="text" value="${data.name}" data-value="${data.name}"></span>
|
||||
<span style="padding: 5px;margin-right: 8px;width: 14px;font-size: 14px;" class="block__icon block__icon--show" data-icon="${view.icon}" data-type="update-view-icon">${view.icon ? unicode2Emoji(view.icon) : '<svg><use xlink:href="#iconTable"></use></svg>'}</span>
|
||||
<span class="b3-menu__label" style="padding: 4px;display: flex;"><input data-type="name" class="b3-text-field fn__block" type="text" value="${view.name}" data-value="${view.name}"></span>
|
||||
</button>
|
||||
<button class="b3-menu__separator"></button>
|
||||
<button class="b3-menu__item" data-type="go-properties">
|
||||
<svg class="b3-menu__icon"></svg>
|
||||
<span class="b3-menu__label">${window.siyuan.languages.attr}</span>
|
||||
<span class="b3-menu__accelerator">${data.columns.filter((item: IAVColumn) => !item.hidden).length}/${data.columns.length}</span>
|
||||
<span class="b3-menu__accelerator">${view.columns.filter((item: IAVColumn) => !item.hidden).length}/${view.columns.length}</span>
|
||||
<svg class="b3-menu__icon b3-menu__icon--small"><use xlink:href="#iconRight"></use></svg>
|
||||
</button>
|
||||
<button class="b3-menu__item" data-type="goFilters">
|
||||
<svg class="b3-menu__icon"><use xlink:href="#iconFilter"></use></svg>
|
||||
<span class="b3-menu__label">${window.siyuan.languages.filter}</span>
|
||||
<span class="b3-menu__accelerator">${data.filters.length}</span>
|
||||
<span class="b3-menu__accelerator">${view.filters.length}</span>
|
||||
<svg class="b3-menu__icon b3-menu__icon--small"><use xlink:href="#iconRight"></use></svg>
|
||||
</button>
|
||||
<button class="b3-menu__item" data-type="goSorts">
|
||||
<svg class="b3-menu__icon"><use xlink:href="#iconSort"></use></svg>
|
||||
<span class="b3-menu__label">${window.siyuan.languages.sort}</span>
|
||||
<span class="b3-menu__accelerator">${data.sorts.length}</span>
|
||||
<span class="b3-menu__accelerator">${view.sorts.length}</span>
|
||||
<svg class="b3-menu__icon b3-menu__icon--small"><use xlink:href="#iconRight"></use></svg>
|
||||
</button>
|
||||
<button class="b3-menu__item" data-type="set-page-size" data-size="${data.pageSize}">
|
||||
<button class="b3-menu__item" data-type="set-page-size" data-size="${view.pageSize}">
|
||||
<svg class="b3-menu__icon"></svg>
|
||||
<span class="b3-menu__label">${window.siyuan.languages.pageCount}</span>
|
||||
<span class="b3-menu__accelerator">${data.pageSize === Constants.SIZE_DATABASE_MAZ_SIZE ? window.siyuan.languages.all : data.pageSize}</span>
|
||||
<span class="b3-menu__accelerator">${view.pageSize === Constants.SIZE_DATABASE_MAZ_SIZE ? window.siyuan.languages.all : view.pageSize}</span>
|
||||
<svg class="b3-menu__icon b3-menu__icon--small"><use xlink:href="#iconRight"></use></svg>
|
||||
</button>
|
||||
<label class="b3-menu__item">
|
||||
<svg class="b3-menu__icon"></svg>
|
||||
<span class="fn__flex-center">${window.siyuan.languages.showTitle}</span>
|
||||
<span class="fn__space fn__flex-1"></span>
|
||||
<input data-type="toggle-view-title" type="checkbox" class="b3-switch b3-switch--menu" ${data.hideAttrViewName ? "" : "checked"}>
|
||||
<input data-type="toggle-view-title" type="checkbox" class="b3-switch b3-switch--menu" ${view.hideAttrViewName ? "" : "checked"}>
|
||||
</label>
|
||||
<button class="b3-menu__separator"></button>
|
||||
<button class="b3-menu__item" data-type="duplicate-view">
|
||||
|
@ -204,7 +203,7 @@ export const getViewHTML = (data: IAVTable) => {
|
|||
</svg>
|
||||
<span class="b3-menu__label">${window.siyuan.languages.duplicate}</span>
|
||||
</button>
|
||||
<button class="b3-menu__item" data-type="delete-view">
|
||||
<button class="b3-menu__item${data.views.length > 1 ? "" : " fn__none"}" data-type="delete-view">
|
||||
<svg class="b3-menu__icon"><use xlink:href="#iconTrashcan"></use></svg>
|
||||
<span class="b3-menu__label">${window.siyuan.languages.delete}</span>
|
||||
</button>
|
||||
|
|
Loading…
Add table
Reference in a new issue