Simplify map lock support.

This commit is contained in:
Paulo Gustavo Veiga 2022-03-23 23:33:44 -03:00
parent 56906fd2fd
commit 602e58f58e
6 changed files with 4 additions and 34 deletions

View File

@ -11,7 +11,6 @@ This is a work in progress and for now mindplot needs to be instantiated using t
ReactDOM.render( ReactDOM.render(
<Editor <Editor
mapId={1} mapId={1}
memoryPersistence={false}
readOnlyMode={false} readOnlyMode={false}
locale="en" locale="en"
onAction={(action) => console.log('action called:', action)} onAction={(action) => console.log('action called:', action)}

View File

@ -73,7 +73,7 @@ class ImageIcon extends Icon {
static _getNextFamilyIconId(iconId) { static _getNextFamilyIconId(iconId) {
const familyIcons = ImageIcon._getFamilyIcons(iconId); const familyIcons = ImageIcon._getFamilyIcons(iconId);
$assert(familyIcons != null, `Family Icon not found: ${iconId}`); $assert(familyIcons !== null, `Family Icon not found: ${iconId}`);
let result = null; let result = null;
for (let i = 0; i < familyIcons.length && result == null; i++) { for (let i = 0; i < familyIcons.length && result == null; i++) {

View File

@ -27,27 +27,19 @@ class RESTPersistenceManager extends PersistenceManager {
private lockUrl: string; private lockUrl: string;
private timestamp: string;
private session: string;
private onSave: boolean; private onSave: boolean;
private clearTimeout; private clearTimeout;
constructor(options) { constructor(options: { documentUrl: string, revertUrl: string, lockUrl: string }) {
$assert(options.documentUrl, 'documentUrl can not be null'); $assert(options.documentUrl, 'documentUrl can not be null');
$assert(options.revertUrl, 'revertUrl can not be null'); $assert(options.revertUrl, 'revertUrl can not be null');
$assert(options.lockUrl, 'lockUrl can not be null'); $assert(options.lockUrl, 'lockUrl can not be null');
$assert(options.session, 'session can not be null');
$assert(options.timestamp, 'timestamp can not be null');
super(); super();
this.documentUrl = options.documentUrl; this.documentUrl = options.documentUrl;
this.revertUrl = options.revertUrl; this.revertUrl = options.revertUrl;
this.lockUrl = options.lockUrl; this.lockUrl = options.lockUrl;
this.timestamp = options.timestamp;
this.session = options.session;
} }
saveMapXml(mapId: string, mapXml: Document, pref: string, saveHistory: boolean, events): void { saveMapXml(mapId: string, mapXml: Document, pref: string, saveHistory: boolean, events): void {
@ -57,9 +49,7 @@ class RESTPersistenceManager extends PersistenceManager {
properties: pref, properties: pref,
}; };
let query = `minor=${!saveHistory}`; const query = `minor=${!saveHistory}`;
query = `${query}&timestamp=${this.timestamp}`;
query = `${query}&session=${this.session}`;
if (!this.onSave) { if (!this.onSave) {
// Mark save in process and fire a event unlocking the save ... // Mark save in process and fire a event unlocking the save ...
@ -80,7 +70,6 @@ class RESTPersistenceManager extends PersistenceManager {
}, },
).then(async (response: Response) => { ).then(async (response: Response) => {
if (response.ok) { if (response.ok) {
persistence.timestamp = await response.text();
events.onSuccess(); events.onSuccess();
} else { } else {
console.log(`Saving error: ${response.status}`); console.log(`Saving error: ${response.status}`);

View File

@ -22,7 +22,6 @@ import {
import { import {
buildDesigner, buildDesigner,
} from './components/DesignerBuilder'; } from './components/DesignerBuilder';
import RESTPersistenceManager from './components/RestPersistenceManager';
import PersistenceManager from './components/PersistenceManager'; import PersistenceManager from './components/PersistenceManager';
import LocalStorageManager from './components/LocalStorageManager'; import LocalStorageManager from './components/LocalStorageManager';
import DesignerOptionsBuilder from './components/DesignerOptionsBuilder'; import DesignerOptionsBuilder from './components/DesignerOptionsBuilder';
@ -34,15 +33,7 @@ require('../../../libraries/bootstrap/js/bootstrap.min');
// Configure designer options ... // Configure designer options ...
let persistence: PersistenceManager; let persistence: PersistenceManager;
if (!global.memoryPersistence && !global.readOnly) { if (global.readOnly) {
persistence = new RESTPersistenceManager({
documentUrl: '/c/restful/maps/{id}/document',
revertUrl: '/c/restful/maps/{id}/history/latest',
lockUrl: '/c/restful/maps/{id}/lock',
timestamp: global.lockTimestamp,
session: global.lockSession,
});
} else {
const historyId = global.historyId ? `${global.historyId}/` : ''; const historyId = global.historyId ? `${global.historyId}/` : '';
persistence = new LocalStorageManager( persistence = new LocalStorageManager(
`/c/restful/maps/{id}/${historyId}document/xml${!global.isAuth ? '-pub' : ''}`, `/c/restful/maps/{id}/${historyId}document/xml${!global.isAuth ? '-pub' : ''}`,

View File

@ -2,8 +2,6 @@ declare module '*.png';
declare module '*.svg'; declare module '*.svg';
declare module '*.wxml'; declare module '*.wxml';
declare global { declare global {
const lockTimestamp: string;
const lockSession: string;
const isAuth: boolean; const isAuth: boolean;
const mapId: number; const mapId: number;
const userOptions: { zoom: string | number } | null; const userOptions: { zoom: string | number } | null;

View File

@ -618,17 +618,10 @@ export default class RestClient implements Client {
let persistence: PersistenceManager; let persistence: PersistenceManager;
if (editorMode === 'edition-owner' || editorMode === 'edition-editor') { if (editorMode === 'edition-owner' || editorMode === 'edition-editor') {
if (!global.lockSession) {
throw new Error(`Session could not be found: global.lockSession: '${global.lockSession}' - global.lockTimestamp: '${global.lockTimestamp}' - ${global.mindmapLocked} - ${global.mindmapLockedMsg}`)
}
persistence = new RESTPersistenceManager({ persistence = new RESTPersistenceManager({
documentUrl: '/c/restful/maps/{id}/document', documentUrl: '/c/restful/maps/{id}/document',
revertUrl: '/c/restful/maps/{id}/history/latest', revertUrl: '/c/restful/maps/{id}/history/latest',
lockUrl: '/c/restful/maps/{id}/lock', lockUrl: '/c/restful/maps/{id}/lock',
timestamp: global.lockTimestamp,
session: global.lockSession,
}); });
} else { } else {
persistence = new LocalStorageManager( persistence = new LocalStorageManager(