improvements in frontend sync (WIP)

This commit is contained in:
zadam 2021-08-24 22:59:51 +02:00
parent d27fcaf317
commit 66374bf95f
9 changed files with 29 additions and 12 deletions

View file

@ -37,7 +37,7 @@ export default class KeyboardShortcutsOptions {
constructor() {
$("#options-keyboard-shortcuts").html(TPL);
$("#options-keyboard-shortcuts-reload-app").on("click", () => utils.reloadApp());
$("#options-keyboard-shortcuts-reload-app").on("click", () => utils.reloadFrontendApp());
const $table = $("#keyboard-shortcut-table tbody");

View file

@ -128,7 +128,7 @@ async function moveNodeUpInHierarchy(node) {
if (!hoistedNoteService.isTopLevelNode(node) && node.getParent().getChildren().length <= 1) {
node.getParent().folder = false;
node.getParent().getTitle();
node.getParent().renderTitle();
}
}

View file

@ -129,7 +129,7 @@ export default class Entrypoints extends Component {
}
reloadFrontendAppCommand() {
utils.reloadApp();
utils.reloadFrontendApp();
}
logoutCommand() {
@ -169,7 +169,7 @@ export default class Entrypoints extends Component {
async switchToDesktopVersionCommand() {
utils.setCookie('trilium-device', 'desktop');
utils.reloadApp();
utils.reloadFrontendApp();
}
async openInWindowCommand({notePath, hoistedNoteId}) {

View file

@ -1,5 +1,6 @@
import LoadResults from "./load_results.js";
import froca from "./froca.js";
import utils from "./utils.js";
import options from "./options.js";
import noteAttributeCache from "./note_attribute_cache.js";
import Branch from "../entities/branch.js";
@ -84,6 +85,11 @@ function processNoteChange(loadResults, ec) {
loadResults.addNote(ec.entityId, ec.sourceId);
if (ec.isErased && ec.entityId in froca.notes) {
utils.reloadFrontendApp();
return;
}
if (ec.isErased || ec.entity?.isDeleted) {
delete froca.notes[ec.entityId];
}
@ -93,6 +99,11 @@ function processNoteChange(loadResults, ec) {
}
function processBranchChange(loadResults, ec) {
if (ec.isErased && ec.entityId in froca.branches) {
utils.reloadFrontendApp();
return;
}
let branch = froca.branches[ec.entityId];
if (ec.isErased || ec.entity?.isDeleted) {
@ -127,7 +138,7 @@ function processBranchChange(loadResults, ec) {
branch.update(ec.entity);
}
else if (childNote || parentNote) {
froca.branches[branch.branchId] = branch = new Branch(froca, ec.entity);
froca.branches[ec.entityId] = branch = new Branch(froca, ec.entity);
}
if (childNote) {
@ -166,6 +177,11 @@ function processNoteReordering(loadResults, ec) {
function processAttributeChange(loadResults, ec) {
let attribute = froca.attributes[ec.entityId];
if (ec.isErased && ec.entityId in froca.attributes) {
utils.reloadFrontendApp();
return;
}
if (ec.isErased || ec.entity?.isDeleted) {
if (attribute) {
const sourceNote = froca.notes[attribute.noteId];

View file

@ -69,7 +69,7 @@ ws.subscribeToMessages(async message => {
toastService.showMessage("Protected session has been started.");
}
else if (message.type === 'protectedSessionLogout') {
utils.reloadApp();
utils.reloadFrontendApp();
}
});

View file

@ -1,4 +1,4 @@
function reloadApp() {
function reloadFrontendApp() {
window.location.reload(true);
}
@ -353,7 +353,7 @@ function isValidAttributeName(name) {
}
export default {
reloadApp,
reloadFrontendApp,
parseDate,
padNum,
formatTime,

View file

@ -149,7 +149,7 @@ async function consumeFrontendUpdateData() {
if (!glob.isDev && !options.is('debugModeEnabled')) {
// if there's an error in updating the frontend then the easy option to recover is to reload the frontend completely
utils.reloadApp();
utils.reloadFrontendApp();
}
else {
console.log("nonProcessedEntityChanges causing the timeout", nonProcessedEntityChanges);

View file

@ -139,7 +139,7 @@ async function checkOutstandingSyncs() {
remote.app.exit(0);
}
else {
utils.reloadApp();
utils.reloadFrontendApp();
}
}
else {

View file

@ -1031,9 +1031,10 @@ export default class NoteTreeWidget extends NoteContextAwareWidget {
if (!found) {
// make sure it's loaded
await froca.getNote(branch.noteId);
const frocaBranch = froca.getBranch(branch.branchId);
// we're forcing lazy since it's not clear if the whole required subtree is in froca
parentNode.addChildren([this.prepareNode(branch, true)]);
// we're forcing lazy since it's not clear if the whole required subtree is in froca
parentNode.addChildren([this.prepareNode(frocaBranch, true)]);
this.sortChildren(parentNode);