import linkService from '../../services/link.js'; import utils from '../../services/utils.js'; import server from '../../services/server.js'; import treeService from "../../services/tree.js"; import froca from "../../services/froca.js"; import appContext from "../../services/app_context.js"; import hoistedNoteService from "../../services/hoisted_note.js"; import BasicWidget from "../basic_widget.js"; import dialogService from "../dialog.js"; const TPL = ` `; export default class RecentChangesDialog extends BasicWidget { doRender() { this.$widget = $(TPL); this.$content = this.$widget.find(".recent-changes-content"); } async showRecentChangesEvent({ancestorNoteId}) { await this.refresh(ancestorNoteId); utils.openDialog(this.$widget); } async refresh(ancestorNoteId) { if (!ancestorNoteId) { ancestorNoteId = hoistedNoteService.getHoistedNoteId(); } const recentChangesRows = await server.get('recent-changes/' + ancestorNoteId); // preload all notes into cache await froca.getNotes(recentChangesRows.map(r => r.noteId), true); this.$content.empty(); if (recentChangesRows.length === 0) { this.$content.append("No changes yet ..."); } const groupedByDate = this.groupByDate(recentChangesRows); for (const [dateDay, dayChanges] of groupedByDate) { const $changesList = $('