diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 6565234e0..7613ef4dc 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1,4 +1,5 @@ { + "showTitle": "Show database title", "fillCreated": "Default fill created time", "removeCard": "Remove flashcard", "updateLayout": "Update layout", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index 8cf8fb985..0e79f8e5b 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1,4 +1,5 @@ { + "showTitle": "Mostrar título de la base de datos", "fillCreated": "Hora de creación del relleno predeterminado", "removeCard": "Eliminar tarjeta flash", "updateLayout": "Actualizar diseño", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index e29e23d0b..b8c41d8b8 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1,4 +1,5 @@ { + "showTitle": "Afficher le titre de la base de données", "fillCreated": "Heure de création de remplissage par défaut", "removeCard": "Supprimer la flashcard", "updateLayout": "Mettre à jour la mise en page", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index e1599a09a..59dd659b1 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1,4 +1,5 @@ { + "showTitle": "顯示資料庫標題", "fillCreated": "Default fill creation time", "removeCard": "移除閃卡", "updateLayout": "更新版面配置", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 44bba66da..1b3447ce6 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1,4 +1,5 @@ { + "showTitle": "显示数据库标题", "fillCreated": "默认填充创建时间", "removeCard": "移除闪卡", "updateLayout": "更新布局", diff --git a/app/src/protyle/render/av/openMenuPanel.ts b/app/src/protyle/render/av/openMenuPanel.ts index d9d9d86e5..d7066a8b1 100644 --- a/app/src/protyle/render/av/openMenuPanel.ts +++ b/app/src/protyle/render/av/openMenuPanel.ts @@ -164,7 +164,7 @@ export const openMenuPanel = (options: { } else if (options.type === "edit") { bindEditEvent({protyle: options.protyle, data, menuElement, isCustomAttr}); } else if (options.type === "config") { - bindViewEvent({protyle: options.protyle, data, menuElement}); + bindViewEvent({protyle: options.protyle, data, menuElement, blockElement: options.blockElement}); } } if (options.cb) { @@ -479,7 +479,7 @@ export const openMenuPanel = (options: { } else if (type === "go-config") { menuElement.innerHTML = getViewHTML(data.view); setPosition(menuElement, tabRect.right - menuElement.clientWidth, tabRect.bottom, tabRect.height); - bindViewEvent({protyle: options.protyle, data, menuElement}); + bindViewEvent({protyle: options.protyle, data, menuElement, blockElement: options.blockElement}); event.preventDefault(); event.stopPropagation(); break; @@ -690,39 +690,6 @@ export const openMenuPanel = (options: { event.preventDefault(); event.stopPropagation(); break; - } else if (type === "toggle-view-title") { - if (target.firstElementChild.getAttribute("xlink:href") === "#iconEyeoff") { - // hide - transaction(options.protyle, [{ - action: "hideAttrViewName", - avID, - blockID, - data: true - }], [{ - action: "hideAttrViewName", - avID, - blockID, - data: false - }]); - options.blockElement.querySelector(".av__title").classList.add("av__title--hide"); - } else { - transaction(options.protyle, [{ - action: "hideAttrViewName", - avID, - blockID, - data: false - }], [{ - action: "hideAttrViewName", - avID, - blockID, - data: true - }]); - options.blockElement.querySelector(".av__title").classList.remove("av__title--hide"); - } - avPanelElement.remove(); - event.preventDefault(); - event.stopPropagation(); - break; } else if (type === "duplicate-view") { const id = Lute.NewNodeID(); transaction(options.protyle, [{ diff --git a/app/src/protyle/render/av/view.ts b/app/src/protyle/render/av/view.ts index 190bfdb3a..fc17e288f 100644 --- a/app/src/protyle/render/av/view.ts +++ b/app/src/protyle/render/av/view.ts @@ -88,6 +88,7 @@ export const bindViewEvent = (options: { protyle: IProtyle, data: IAV, menuElement: HTMLElement + blockElement: Element }) => { const inputElement = options.menuElement.querySelector('.b3-text-field[data-type="name"]') as HTMLInputElement; inputElement.addEventListener("blur", () => { @@ -117,6 +118,39 @@ export const bindViewEvent = (options: { } }); inputElement.select(); + const toggleTitleElement = options.menuElement.querySelector('.b3-switch[data-type="toggle-view-title"]') as HTMLInputElement; + toggleTitleElement.addEventListener("change", () => { + const avID = options.blockElement.getAttribute("data-av-id"); + const blockID = options.blockElement.getAttribute("data-node-id"); + if (!toggleTitleElement.checked) { + // hide + transaction(options.protyle, [{ + action: "hideAttrViewName", + avID, + blockID, + data: true + }], [{ + action: "hideAttrViewName", + avID, + blockID, + data: false + }]); + options.blockElement.querySelector(".av__title").classList.add("av__title--hide"); + } else { + transaction(options.protyle, [{ + action: "hideAttrViewName", + avID, + blockID, + data: false + }], [{ + action: "hideAttrViewName", + avID, + blockID, + data: true + }]); + options.blockElement.querySelector(".av__title").classList.remove("av__title--hide"); + } + }) }; export const getViewHTML = (data: IAVTable) => { @@ -154,13 +188,12 @@ export const getViewHTML = (data: IAVTable) => { ${data.pageSize} - +