mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-30 11:42:26 +08:00
chore(client/ts): port widgets/dialogs/delete_notes
This commit is contained in:
parent
00870ba807
commit
cc8f927718
@ -6,9 +6,14 @@ import appContext from "../components/app_context.js";
|
|||||||
|
|
||||||
export interface Node {
|
export interface Node {
|
||||||
getParent(): Node;
|
getParent(): Node;
|
||||||
|
getChildren(): Node[];
|
||||||
|
folder: boolean;
|
||||||
|
renderTitle(): void,
|
||||||
data: {
|
data: {
|
||||||
noteId?: string;
|
noteId?: string;
|
||||||
isProtected?: boolean;
|
isProtected?: boolean;
|
||||||
|
branchId: string;
|
||||||
|
noteType: string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ class BasicWidget extends Component {
|
|||||||
private classes: string[];
|
private classes: string[];
|
||||||
private childPositionCounter: number;
|
private childPositionCounter: number;
|
||||||
private cssEl?: string;
|
private cssEl?: string;
|
||||||
private $widget!: JQuery<HTMLElement>;
|
protected $widget!: JQuery<HTMLElement>;
|
||||||
_noteId!: string;
|
_noteId!: string;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
@ -4,6 +4,25 @@ import linkService from "../../services/link.js";
|
|||||||
import utils from "../../services/utils.js";
|
import utils from "../../services/utils.js";
|
||||||
import BasicWidget from "../basic_widget.js";
|
import BasicWidget from "../basic_widget.js";
|
||||||
import { t } from "../../services/i18n.js";
|
import { t } from "../../services/i18n.js";
|
||||||
|
import FAttribute, { FAttributeRow } from "../../entities/fattribute.js";
|
||||||
|
|
||||||
|
// TODO: Use common with server.
|
||||||
|
interface Response {
|
||||||
|
noteIdsToBeDeleted: string[];
|
||||||
|
brokenRelations: FAttributeRow[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ResolveOptions {
|
||||||
|
proceed: boolean;
|
||||||
|
deleteAllClones?: boolean;
|
||||||
|
eraseNotes?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ShowDeleteNotesDialogOpts {
|
||||||
|
branchIdsToDelete: string[];
|
||||||
|
callback: (opts: ResolveOptions) => void;
|
||||||
|
forceDeleteAllClones: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
const TPL = `
|
const TPL = `
|
||||||
<div class="delete-notes-dialog modal mx-auto" tabindex="-1" role="dialog">
|
<div class="delete-notes-dialog modal mx-auto" tabindex="-1" role="dialog">
|
||||||
@ -54,11 +73,29 @@ const TPL = `
|
|||||||
</div>`;
|
</div>`;
|
||||||
|
|
||||||
export default class DeleteNotesDialog extends BasicWidget {
|
export default class DeleteNotesDialog extends BasicWidget {
|
||||||
|
|
||||||
|
private branchIds: string[] | null;
|
||||||
|
private resolve!: (options: ResolveOptions) => void;
|
||||||
|
|
||||||
|
private $content!: JQuery<HTMLElement>;
|
||||||
|
private $okButton!: JQuery<HTMLElement>;
|
||||||
|
private $cancelButton!: JQuery<HTMLElement>;
|
||||||
|
private $deleteNotesList!: JQuery<HTMLElement>;
|
||||||
|
private $brokenRelationsList!: JQuery<HTMLElement>;
|
||||||
|
private $deletedNotesCount!: JQuery<HTMLElement>;
|
||||||
|
private $noNoteToDeleteWrapper!: JQuery<HTMLElement>;
|
||||||
|
private $deleteNotesListWrapper!: JQuery<HTMLElement>;
|
||||||
|
private $brokenRelationsListWrapper!: JQuery<HTMLElement>;
|
||||||
|
private $brokenRelationsCount!: JQuery<HTMLElement>;
|
||||||
|
private $deleteAllClones!: JQuery<HTMLElement>;
|
||||||
|
private $eraseNotes!: JQuery<HTMLElement>;
|
||||||
|
|
||||||
|
private forceDeleteAllClones?: boolean;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.branchIds = null;
|
this.branchIds = null;
|
||||||
this.resolve = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
doRender() {
|
doRender() {
|
||||||
@ -98,7 +135,7 @@ export default class DeleteNotesDialog extends BasicWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async renderDeletePreview() {
|
async renderDeletePreview() {
|
||||||
const response = await server.post('delete-notes-preview', {
|
const response = await server.post<Response>('delete-notes-preview', {
|
||||||
branchIdsToDelete: this.branchIds,
|
branchIdsToDelete: this.branchIds,
|
||||||
deleteAllClones: this.forceDeleteAllClones || this.isDeleteAllClonesChecked()
|
deleteAllClones: this.forceDeleteAllClones || this.isDeleteAllClonesChecked()
|
||||||
});
|
});
|
||||||
@ -135,7 +172,7 @@ export default class DeleteNotesDialog extends BasicWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async showDeleteNotesDialogEvent({branchIdsToDelete, callback, forceDeleteAllClones}) {
|
async showDeleteNotesDialogEvent({branchIdsToDelete, callback, forceDeleteAllClones}: ShowDeleteNotesDialogOpts) {
|
||||||
this.branchIds = branchIdsToDelete;
|
this.branchIds = branchIdsToDelete;
|
||||||
this.forceDeleteAllClones = forceDeleteAllClones;
|
this.forceDeleteAllClones = forceDeleteAllClones;
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user