Improve save logic.

This commit is contained in:
Paulo Gustavo Veiga 2022-03-13 16:36:39 -03:00
parent 3db587aa4b
commit 2d6bde66d8
2 changed files with 19 additions and 19 deletions

View File

@ -33,8 +33,6 @@ import { $msg } from '@wisemapping/mindplot';
class Menu extends IMenu { class Menu extends IMenu {
constructor(designer: Designer, containerId: string, readOnly = false, baseUrl = '') { constructor(designer: Designer, containerId: string, readOnly = false, baseUrl = '') {
super(designer, containerId); super(designer, containerId);
const saveElem = $('#save');
const widgetsBaseUrl = `${baseUrl}css/widget`; const widgetsBaseUrl = `${baseUrl}css/widget`;
// Create panels ... // Create panels ...
@ -274,30 +272,31 @@ class Menu extends IMenu {
Menu._registerTooltip('fontItalic', $msg('FONT_ITALIC'), 'meta+I'); Menu._registerTooltip('fontItalic', $msg('FONT_ITALIC'), 'meta+I');
if (saveElem) { if (!readOnly) {
// Register action on save ...
const saveElem = $('#save');
this._addButton('save', false, false, this._addButton('save', false, false,
() => { () => {
this.save(saveElem, designer, true); this.save(saveElem, designer, true);
}); });
Menu._registerTooltip('save', $msg('SAVE'), 'meta+S'); Menu._registerTooltip('save', $msg('SAVE'), 'meta+S');
if (!readOnly) { // Register unload save ...
window.addEventListener('beforeunload', () => { window.addEventListener('beforeunload', () => {
if (this.isSaveRequired()) {
this.save(saveElem, designer, false);
}
this.unlockMap(designer);
});
// Autosave on a fixed period of time ...
setInterval(
() => {
if (this.isSaveRequired()) { if (this.isSaveRequired()) {
this.save(saveElem, designer, false); this.save(saveElem, designer, false);
} }
this.unlockMap(designer); }, 10000,
}); );
// Autosave on a fixed period of time ...
setInterval(
() => {
if (this.isSaveRequired()) {
this.save(saveElem, designer, false);
}
}, 10000,
);
}
} }
} }

View File

@ -32,12 +32,13 @@ class LocalStorageManager extends PersistenceManager {
this.readOnly = readOnly; this.readOnly = readOnly;
} }
saveMapXml(mapId: string, mapDoc: Document): void { saveMapXml(mapId: string, mapDoc: Document, _pref: string, _saveHistory: boolean, events): void {
const mapXml = new XMLSerializer().serializeToString(mapDoc); const mapXml = new XMLSerializer().serializeToString(mapDoc);
if (!this.readOnly) { if (!this.readOnly) {
localStorage.setItem(`${mapId}-xml`, mapXml); localStorage.setItem(`${mapId}-xml`, mapXml);
events.onSuccess();
} }
console.log(`Map XML to save => ${this.saveMapXml}`); console.log(`Map XML to save => ${mapXml}`);
} }
discardChanges(mapId: string) { discardChanges(mapId: string) {