Merge branch 'develop' of https://bitbucket.org/wisemapping/wisemapping-frontend into feature/import-freemind-to-wisemapping

This commit is contained in:
Ezequiel-Vega 2022-03-25 22:48:24 -03:00
commit 2b953a3bd6
8 changed files with 20 additions and 40 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

@ -60,7 +60,7 @@ class LinkEditor extends BootstrapDialog {
// Add Input
const input = $('<input id="inputUrl"/>').attr({
placeholder: 'http://www.example.com/',
placeholder: 'https://www.example.com/',
required: 'true',
autofocus: 'autofocus',
class: 'form-control',
@ -92,9 +92,10 @@ class LinkEditor extends BootstrapDialog {
const me = this;
this.form.unbind('submit').submit((event) => {
event.preventDefault();
if (me.checkURL(input.val())) {
let inputValue = input.val();
inputValue = this.hasProtocol(inputValue) ? inputValue : `https://${inputValue}`;
if (me.checkURL(inputValue)) {
me.cleanError();
const inputValue = input.val();
if (inputValue != null && $.trim(inputValue) !== '') {
model.setValue(inputValue);
}
@ -115,7 +116,16 @@ class LinkEditor extends BootstrapDialog {
* @return {Boolean} true if the url is valid
*/
checkURL(url) {
const regex = /^(http|https|ftp):\/\/[a-z0-9]+([-.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/i;
const regex = /^(http|https):\/\/[a-z0-9]+([-.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/i;
return (regex.test(url));
}
/**
* checks whether the input is a valid url
* @return {Boolean} true if the url is valid
*/
hasProtocol(url) {
const regex = /^(http|https):\/\//i;
return (regex.test(url));
}

View File

@ -40,8 +40,8 @@ class LinkIconTooltip extends FloatingTip {
static _buildContent(linkIcon) {
const url = linkIcon.getModel().getUrl();
const linkText = `URL: ${url}`;
const linkPreview = `http://free.pagepeeker.com/v2/thumbs.php?size=m&url=${url}`;
const linkText = `${url}`;
const linkPreview = `https://free.pagepeeker.com/v2/thumbs.php?size=m&url=${url}`;
const result = $('<div></div>').css({
padding: '5px',

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(