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(
<Editor
mapId={1}
memoryPersistence={false}
readOnlyMode={false}
locale="en"
onAction={(action) => console.log('action called:', action)}

View File

@ -73,7 +73,7 @@ class ImageIcon extends Icon {
static _getNextFamilyIconId(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;
for (let i = 0; i < familyIcons.length && result == null; i++) {

View File

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

View File

@ -22,7 +22,6 @@ import {
import {
buildDesigner,
} from './components/DesignerBuilder';
import RESTPersistenceManager from './components/RestPersistenceManager';
import PersistenceManager from './components/PersistenceManager';
import LocalStorageManager from './components/LocalStorageManager';
import DesignerOptionsBuilder from './components/DesignerOptionsBuilder';
@ -34,15 +33,7 @@ require('../../../libraries/bootstrap/js/bootstrap.min');
// Configure designer options ...
let persistence: PersistenceManager;
if (!global.memoryPersistence && !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 {
if (global.readOnly) {
const historyId = global.historyId ? `${global.historyId}/` : '';
persistence = new LocalStorageManager(
`/c/restful/maps/{id}/${historyId}document/xml${!global.isAuth ? '-pub' : ''}`,

View File

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

View File

@ -618,17 +618,10 @@ export default class RestClient implements Client {
let persistence: PersistenceManager;
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({
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 {
persistence = new LocalStorageManager(