note revisions sidebar

This commit is contained in:
zadam 2019-07-25 22:31:09 +02:00
parent 78ffac8232
commit 85e4bd817b
2 changed files with 54 additions and 1 deletions

View file

@ -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);
}

View 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;