Vanessa 2024-01-28 13:01:40 +08:00
parent fa4d66dcce
commit a555105a55
7 changed files with 69 additions and 4 deletions

View file

@ -1,4 +1,5 @@
{
"addToDatabase": "Add to Database",
"clearContext": "Clear context",
"cloudStoragePurge": "Purge cloud storage",
"cloudStoragePurgeConfirm": "Note:<ul class='fn__list'><li>Please ensure that other devices have paused sync before execution</li><li>The purge operation is very time-consuming, please ensure that the network is stable</li></ul>Are you sure to execute it now?",

View file

@ -1,4 +1,5 @@
{
"addToDatabase": "Agregar a la base de datos",
"clearContext": "Borrar contexto",
"cloudStoragePurge": "Borrar almacenamiento en la nube",
"cloudStoragePurgeConfirm": "Nota:<ul class='fn__list'><li>Asegúrese de que otros dispositivos hayan pausado la sincronización antes de la ejecución</li><li>La operación de purga requiere mucho tiempo; asegúrese de que la red esté estable</li></ul>¿Está seguro de ejecutarla ahora?",

View file

@ -1,4 +1,5 @@
{
"addToDatabase": "Ajouter à la base de données",
"clearContext": "Effacer le contexte",
"cloudStoragePurge": "Purger le stockage cloud",
"cloudStoragePurgeConfirm": "Remarque :<ul class='fn__list'><li>Veuillez vous assurer que la synchronisation des autres appareils a été suspendue avant l'exécution</li><li>L'opération de purge prend beaucoup de temps, veuillez vous assurer que le réseau est stable</li></ul>Êtes-vous sûr de l'exécuter maintenant ?",

View file

@ -1,4 +1,5 @@
{
"addToDatabase": "新增至資料庫",
"clearContext": "清空上下文",
"cloudStoragePurge": "清理雲端儲存",
"cloudStoragePurgeConfirm": "請注意:<ul class='fn__list'><li>執行前請確保其他設備已經暫停同步</li><li>清理作業非常耗時,請確保網路穩定</li></ul>確定現在就執行嗎?",

View file

@ -1,4 +1,5 @@
{
"addToDatabase": "添加到数据库",
"clearContext": "清空上下文",
"cloudStoragePurge": "清理云端存储",
"cloudStoragePurgeConfirm": "请注意:<ul class='fn__list'><li>执行前请确保其他设备已经暂停同步</li><li>清理操作非常耗时,请确保网络稳定</li></ul> 确定现在就执行吗?",

View file

@ -46,6 +46,7 @@ import {avRender} from "../render/av/render";
import {emitOpenMenu} from "../../plugin/EventBus";
import {insertAttrViewBlockAnimation} from "../render/av/row";
import {avContextmenu} from "../render/av/action";
import {openSearchAV} from "../render/av/relation";
export class Gutter {
public element: HTMLElement;
@ -785,6 +786,29 @@ export class Gutter {
});
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.addToDatabase,
icon: "iconDatabase",
click: () => {
openSearchAV("", this.element, (listItemElement) => {
const sourceIds: string[] = []
selectsElement.forEach(item => {
sourceIds.push(item.getAttribute("data-node-id"));
});
const avID = listItemElement.dataset.avId;
transaction(protyle, [{
action: "insertAttrViewBlock",
avID,
srcIDs: sourceIds,
isDetached: false,
}], [{
action: "removeAttrViewBlock",
srcIDs: sourceIds,
avID,
}]);
});
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.delete,
icon: "iconTrashcan",
@ -1214,6 +1238,26 @@ export class Gutter {
});
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.addToDatabase,
icon: "iconDatabase",
click: () => {
openSearchAV("", this.element, (listItemElement) => {
const sourceIds: string[] = [nodeElement.getAttribute("data-node-id")];
const avID = listItemElement.dataset.avId;
transaction(protyle, [{
action: "insertAttrViewBlock",
avID,
srcIDs: sourceIds,
isDetached: false,
}], [{
action: "removeAttrViewBlock",
srcIDs: sourceIds,
avID,
}]);
});
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.delete,
icon: "iconTrashcan",

View file

@ -45,7 +45,7 @@ const setDatabase = (avId: string, element: HTMLElement, item: HTMLElement) => {
}
};
export const openSearchAV = (avId: string, target: HTMLElement) => {
export const openSearchAV = (avId: string, target: HTMLElement, cb?: (element: HTMLElement) => void) => {
window.siyuan.menus.menu.remove();
const menu = new Menu();
menu.addItem({
@ -72,19 +72,34 @@ export const openSearchAV = (avId: string, target: HTMLElement) => {
if (event.key === "Enter") {
event.preventDefault();
event.stopPropagation();
setDatabase(avId, target, listElement.querySelector(".b3-list-item--focus"));
const listItemElement = listElement.querySelector(".b3-list-item--focus") as HTMLElement;
if (cb) {
cb(listItemElement);
} else {
setDatabase(avId, target, listItemElement);
}
window.siyuan.menus.menu.remove();
}
});
inputElement.addEventListener("input", (event) => {
inputElement.addEventListener("input", (event: InputEvent) => {
event.stopPropagation();
if (event.isComposing) {
return;
}
genSearchList(listElement, inputElement.value, avId);
});
inputElement.addEventListener("compositionend", () => {
genSearchList(listElement, inputElement.value, avId);
});
element.lastElementChild.addEventListener("click", (event) => {
const listItemElement = hasClosestByClassName(event.target as HTMLElement, "b3-list-item");
if (listItemElement) {
event.stopPropagation();
setDatabase(avId, target, listItemElement);
if (cb) {
cb(listItemElement);
} else {
setDatabase(avId, target, listItemElement);
}
window.siyuan.menus.menu.remove();
}
});
@ -225,6 +240,7 @@ const filterItem = (listElement: Element, key: string) => {
}
})
}
export const bindRelationEvent = (options: {
menuElement: HTMLElement,
protyle: IProtyle,