import server from "../../services/server.js"; import froca from "../../services/froca.js"; import linkService from "../../services/link.js"; import utils from "../../services/utils.js"; import BasicWidget from "../basic_widget.js"; import { t } from "../../services/i18n.js"; import type { FAttributeRow } from "../../entities/fattribute.js"; // TODO: Use common with server. interface Response { noteIdsToBeDeleted: string[]; brokenRelations: FAttributeRow[]; } export interface ResolveOptions { proceed: boolean; deleteAllClones?: boolean; eraseNotes?: boolean; } interface ShowDeleteNotesDialogOpts { branchIdsToDelete: string[]; callback: (opts: ResolveOptions) => void; forceDeleteAllClones: boolean; } const TPL = `
${attr.name}
`,
source: (await linkService.createLink(attr.noteId)).html()
})
)
);
}
}
async showDeleteNotesDialogEvent({ branchIdsToDelete, callback, forceDeleteAllClones }: ShowDeleteNotesDialogOpts) {
this.branchIds = branchIdsToDelete;
this.forceDeleteAllClones = forceDeleteAllClones;
await this.renderDeletePreview();
utils.openDialog(this.$widget);
this.$deleteAllClones.prop("checked", !!forceDeleteAllClones).prop("disabled", !!forceDeleteAllClones);
this.$eraseNotes.prop("checked", false);
this.resolve = callback;
}
isDeleteAllClonesChecked() {
return this.$deleteAllClones.is(":checked");
}
isEraseNotesChecked() {
return this.$eraseNotes.is(":checked");
}
}