mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 05:28:59 +01:00 
			
		
		
		
	feat(views/table): basic renaming of fields
This commit is contained in:
		
							parent
							
								
									14cdc52670
								
							
						
					
					
						commit
						504a19275c
					
				@ -0,0 +1,32 @@
 | 
			
		||||
import { t } from "i18next";
 | 
			
		||||
import attributes from "../../../services/attributes";
 | 
			
		||||
import froca from "../../../services/froca";
 | 
			
		||||
import server from "../../../services/server";
 | 
			
		||||
import toast from "../../../services/toast";
 | 
			
		||||
import ws from "../../../services/ws";
 | 
			
		||||
 | 
			
		||||
export async function renameColumn(parentNoteId: string, type: "label" | "relation", originalName: string, newName: string) {
 | 
			
		||||
    const bulkActionNote = await froca.getNote("_bulkAction");
 | 
			
		||||
    if (!bulkActionNote) {
 | 
			
		||||
        console.warn("Bulk action note not found");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (type === "label") {
 | 
			
		||||
        attributes.setLabel("_bulkAction", "action", JSON.stringify({
 | 
			
		||||
            name: "renameLabel",
 | 
			
		||||
            oldLabelName: originalName,
 | 
			
		||||
            newLabelName: newName
 | 
			
		||||
        }));
 | 
			
		||||
        await server.post("bulk-action/execute", {
 | 
			
		||||
            noteIds: [ parentNoteId ],
 | 
			
		||||
            includeDescendants: true
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        await ws.waitForMaxKnownEntityChangeId();
 | 
			
		||||
        toast.showMessage(t("bulk_actions.bulk_actions_executed"), 3000);
 | 
			
		||||
    } else {
 | 
			
		||||
        console.warn("Renaming relation columns is not supported yet");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -5,6 +5,7 @@ import Component from "../../../components/component";
 | 
			
		||||
import { CommandListenerData, EventData } from "../../../components/app_context";
 | 
			
		||||
import attributes from "../../../services/attributes";
 | 
			
		||||
import FNote from "../../../entities/fnote";
 | 
			
		||||
import { renameColumn } from "./bulk_actions";
 | 
			
		||||
 | 
			
		||||
export default class TableColumnEditing extends Component {
 | 
			
		||||
 | 
			
		||||
@ -73,13 +74,20 @@ export default class TableColumnEditing extends Component {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const { name, value } = this.newAttribute;
 | 
			
		||||
        const { name, type, value } = this.newAttribute;
 | 
			
		||||
 | 
			
		||||
        this.api.blockRedraw();
 | 
			
		||||
 | 
			
		||||
        if (this.existingAttributeToEdit && this.existingAttributeToEdit.name !== name) {
 | 
			
		||||
            attributes.removeOwnedLabelByName(this.parentNote, this.existingAttributeToEdit.name);
 | 
			
		||||
 | 
			
		||||
            const oldName = this.existingAttributeToEdit.name.split(":")[1];
 | 
			
		||||
            const newName = name.split(":")[1];
 | 
			
		||||
            await renameColumn(this.parentNote.noteId, type, oldName, newName);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        attributes.setLabel(this.parentNote.noteId, name, value);
 | 
			
		||||
        this.api.restoreRedraw();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    getNewAttributePosition() {
 | 
			
		||||
 | 
			
		||||
@ -197,8 +197,8 @@ export default class TableView extends ViewMode<StateInfo> {
 | 
			
		||||
            attr.type === "label" &&
 | 
			
		||||
            (attr.name?.startsWith("label:") || attr.name?.startsWith("relation:")) &&
 | 
			
		||||
            attributes.isAffecting(attr, this.parentNote))) {
 | 
			
		||||
                console.log("Col update");
 | 
			
		||||
            this.#manageColumnUpdate();
 | 
			
		||||
            return await this.#manageRowsUpdate();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (loadResults.getBranchRows().some(branch => branch.parentNoteId === this.parentNote.noteId || this.noteIds.includes(branch.parentNoteId ?? ""))
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,9 @@ import bulkActionService from "../../services/bulk_actions.js";
 | 
			
		||||
 | 
			
		||||
function execute(req: Request) {
 | 
			
		||||
    const { noteIds, includeDescendants } = req.body;
 | 
			
		||||
    if (!Array.isArray(noteIds)) {
 | 
			
		||||
        throw new Error("noteIds must be an array");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const affectedNoteIds = getAffectedNoteIds(noteIds, includeDescendants);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user