refactor(views/table): move bulk action implementation in service

This commit is contained in:
Elian Doran 2025-07-19 12:46:38 +03:00
parent 5d619131ec
commit 0d3de92890
No known key found for this signature in database
2 changed files with 21 additions and 23 deletions

View File

@ -15,6 +15,7 @@ import AddRelationBulkAction from "../widgets/bulk_actions/relation/add_relation
import RenameNoteBulkAction from "../widgets/bulk_actions/note/rename_note.js";
import { t } from "./i18n.js";
import type FNote from "../entities/fnote.js";
import toast from "./toast.js";
const ACTION_GROUPS = [
{
@ -89,6 +90,17 @@ function parseActions(note: FNote) {
.filter((action) => !!action);
}
export async function executeBulkActions(parentNoteId: string, actions: {}[]) {
await server.post("bulk-action/execute", {
noteIds: [ parentNoteId ],
includeDescendants: true,
actions
});
await ws.waitForMaxKnownEntityChangeId();
toast.showMessage(t("bulk_actions.bulk_actions_executed"), 3000);
}
export default {
addAction,
parseActions,

View File

@ -1,45 +1,31 @@
import { t } from "i18next";
import server from "../../../services/server";
import toast from "../../../services/toast";
import ws from "../../../services/ws";
import { executeBulkActions } from "../../../services/bulk_action.js";
export async function renameColumn(parentNoteId: string, type: "label" | "relation", originalName: string, newName: string) {
if (type === "label") {
return executeBulkAction(parentNoteId, {
return executeBulkActions(parentNoteId, [{
name: "renameLabel",
oldLabelName: originalName,
newLabelName: newName
});
}]);
} else {
return executeBulkAction(parentNoteId, {
return executeBulkActions(parentNoteId, [{
name: "renameRelation",
oldRelationName: originalName,
newRelationName: newName
});
}]);
}
}
export async function deleteColumn(parentNoteId: string, type: "label" | "relation", columnName: string) {
if (type === "label") {
return executeBulkAction(parentNoteId, {
return executeBulkActions(parentNoteId, [{
name: "deleteLabel",
labelName: columnName
});
}]);
} else {
return executeBulkAction(parentNoteId, {
return executeBulkActions(parentNoteId, [{
name: "deleteRelation",
relationName: columnName
});
}]);
}
}
async function executeBulkAction(parentNoteId: string, action: {}) {
await server.post("bulk-action/execute", {
noteIds: [ parentNoteId ],
includeDescendants: true,
actions: [ action ]
});
await ws.waitForMaxKnownEntityChangeId();
toast.showMessage(t("bulk_actions.bulk_actions_executed"), 3000);
}