recent changes now display also newly created notes without any revisions, some extra improvements to the dialog

This commit is contained in:
zadam 2019-09-02 20:26:18 +02:00
parent a981df6282
commit a6f57d7761
4 changed files with 46 additions and 17 deletions

View file

@ -1,6 +1,8 @@
import linkService from '../services/link.js'; import linkService from '../services/link.js';
import utils from '../services/utils.js'; import utils from '../services/utils.js';
import server from '../services/server.js'; import server from '../services/server.js';
import treeService from "../services/tree.js";
import treeCache from "../services/tree_cache.js";
const $dialog = $("#recent-changes-dialog"); const $dialog = $("#recent-changes-dialog");
const $content = $("#recent-changes-content"); const $content = $("#recent-changes-content");
@ -14,6 +16,9 @@ export async function showDialog() {
const result = await server.get('recent-changes'); const result = await server.get('recent-changes');
// preload all notes into cache
await treeCache.getNotes(result.map(r => r.noteId), true);
$content.empty(); $content.empty();
if (result.length === 0) { if (result.length === 0) {
@ -28,7 +33,7 @@ export async function showDialog() {
const dayEl = $('<div>').append($('<b>').html(utils.formatDate(dateDay))).append(changesListEl); const dayEl = $('<div>').append($('<b>').html(utils.formatDate(dateDay))).append(changesListEl);
for (const change of dayChanges) { for (const change of dayChanges) {
const formattedTime = utils.formatTime(utils.parseDate(change.utcDateModifiedTo)); const formattedTime = utils.formatTime(utils.parseDate(change.date));
let noteLink; let noteLink;
@ -36,7 +41,10 @@ export async function showDialog() {
noteLink = change.current_title; noteLink = change.current_title;
} }
else { else {
noteLink = await linkService.createNoteLink(change.noteId, change.title); const note = await treeCache.getNote(change.noteId);
const notePath = await treeService.getSomeNotePath(note);
noteLink = await linkService.createNoteLinkWithPath(notePath, change.title);
} }
changesListEl.append($('<li>') changesListEl.append($('<li>')
@ -53,7 +61,7 @@ function groupByDate(result) {
const dayCache = {}; const dayCache = {};
for (const row of result) { for (const row of result) {
let dateDay = utils.parseDate(row.utcDateModifiedTo); let dateDay = utils.parseDate(row.date);
dateDay.setHours(0); dateDay.setHours(0);
dateDay.setMinutes(0); dateDay.setMinutes(0);
dateDay.setSeconds(0); dateDay.setSeconds(0);

View file

@ -30,8 +30,8 @@ async function createNoteLink(notePath, noteTitle = null) {
return noteLink; return noteLink;
} }
async function createNoteLinkWithPath(notePath) { async function createNoteLinkWithPath(notePath, noteTitle = null) {
const $link = await createNoteLink(notePath); const $link = await createNoteLink(notePath, noteTitle);
const $res = $("<span>").append($link); const $res = $("<span>").append($link);

View file

@ -5,17 +5,38 @@ const protectedSessionService = require('../../services/protected_session');
async function getRecentChanges() { async function getRecentChanges() {
const recentChanges = await sql.getRows( const recentChanges = await sql.getRows(
`SELECT `
notes.isDeleted AS current_isDeleted, SELECT * FROM (
notes.title AS current_title, SELECT
notes.isProtected AS current_isProtected, notes.noteId,
note_revisions.* notes.isDeleted AS current_isDeleted,
FROM notes.title AS current_title,
note_revisions notes.isProtected AS current_isProtected,
JOIN notes USING(noteId) note_revisions.title,
ORDER BY note_revisions.utcDateModifiedTo AS date
utcDateModifiedTo DESC FROM
LIMIT 1000`); note_revisions
JOIN notes USING(noteId)
ORDER BY
utcDateModifiedTo DESC
LIMIT 1000
)
UNION ALL SELECT * FROM (
SELECT
notes.noteId,
notes.isDeleted AS current_isDeleted,
notes.title AS current_title,
notes.isProtected AS current_isProtected,
notes.title,
notes.utcDateCreated AS date
FROM
notes
ORDER BY
utcDateCreated DESC
LIMIT 1000
)
ORDER BY date DESC
LIMIT 200`);
for (const change of recentChanges) { for (const change of recentChanges) {
if (change.current_isProtected) { if (change.current_isProtected) {

View file

@ -1,5 +1,5 @@
<div id="recent-changes-dialog" class="modal fade mx-auto" tabindex="-1" role="dialog"> <div id="recent-changes-dialog" class="modal fade mx-auto" tabindex="-1" role="dialog">
<div class="modal-dialog modal-dialog-scrollable" role="document"> <div class="modal-dialog modal-lg modal-dialog-scrollable" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title">Recent changes</h5> <h5 class="modal-title">Recent changes</h5>