mirror of
https://github.com/zadam/trilium.git
synced 2025-02-23 14:35:40 +08:00
note revisions sidebar
This commit is contained in:
parent
78ffac8232
commit
85e4bd817b
2 changed files with 54 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
|||
import NoteInfoWidget from "../widgets/note_info.js";
|
||||
import LinkMapWidget from "../widgets/link_map.js";
|
||||
import NoteRevisionsWidget from "../widgets/note_revisions.js";
|
||||
|
||||
const WIDGET_TPL = `
|
||||
<div class="card widget">
|
||||
|
@ -48,6 +49,7 @@ class Sidebar {
|
|||
|
||||
this.addNoteInfoWidget();
|
||||
this.addLinkMapWidget();
|
||||
this.addNoteRevisionsWidget();
|
||||
}
|
||||
|
||||
async addNoteInfoWidget() {
|
||||
|
@ -65,7 +67,14 @@ class Sidebar {
|
|||
const linkMapWidget = new LinkMapWidget(this.ctx, $widget);
|
||||
await linkMapWidget.renderBody();
|
||||
|
||||
console.log($widget);
|
||||
this.$widgets.append($widget);
|
||||
}
|
||||
|
||||
async addNoteRevisionsWidget() {
|
||||
const $widget = this.createWidgetElement();
|
||||
|
||||
const noteRevisionsWidget = new NoteRevisionsWidget(this.ctx, $widget);
|
||||
await noteRevisionsWidget.renderBody();
|
||||
|
||||
this.$widgets.append($widget);
|
||||
}
|
||||
|
|
44
src/public/javascripts/widgets/note_revisions.js
Normal file
44
src/public/javascripts/widgets/note_revisions.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
import server from "../services/server.js";
|
||||
|
||||
const TPL = `
|
||||
<ul class="note-revision-list" style="max-height: 150px; overflow: auto;">
|
||||
</ul>
|
||||
`;
|
||||
|
||||
class NoteRevisionsWidget {
|
||||
/**
|
||||
* @param {TabContext} ctx
|
||||
* @param {jQuery} $widget
|
||||
*/
|
||||
constructor(ctx, $widget) {
|
||||
this.ctx = ctx;
|
||||
this.$widget = $widget;
|
||||
this.$title = this.$widget.find('.widget-title');
|
||||
this.$title.text("Note revisions");
|
||||
}
|
||||
|
||||
async renderBody() {
|
||||
const $body = this.$widget.find('.card-body');
|
||||
const revisionItems = await server.get(`notes/${this.ctx.note.noteId}/revisions`);
|
||||
|
||||
if (revisionItems.length === 0) {
|
||||
$body.text("No revisions yet...");
|
||||
return;
|
||||
}
|
||||
|
||||
$body.html(TPL);
|
||||
|
||||
const $list = $body.find('.note-revision-list');
|
||||
|
||||
for (const item of revisionItems) {
|
||||
$list.append($('<li>').append($("<a>", {
|
||||
'data-action': 'note-revision',
|
||||
'data-note-path': this.ctx.note.noteId,
|
||||
'data-note-revision-id': item.noteRevisionId,
|
||||
href: 'javascript:'
|
||||
}).text(item.dateModifiedFrom)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default NoteRevisionsWidget;
|
Loading…
Reference in a new issue