Merged in bugfix/relationships (pull request #18)

Relationships fixes
* Fix event trigger with custom data. This was causing an error when adding relationships
* Fix save after deleting a relationship
* Disallow relationship edit when in readOnly mode
* Fix typos

* Update snapshots from docker


Approved-by: Paulo Veiga
This commit is contained in:
Matias Arriola 2021-12-29 18:10:35 +00:00 committed by Paulo Veiga
parent e32836c430
commit 89765aa93d
34 changed files with 28 additions and 10 deletions

View File

@ -1,5 +1,5 @@
{ {
"name": "wisemapping-font-end", "name": "wisemapping-front-end",
"scripts": { "scripts": {
"bootstrap": "lerna bootstrap", "bootstrap": "lerna bootstrap",
"build": "lerna run build", "build": "lerna run build",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 KiB

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 92 KiB

View File

@ -79,7 +79,7 @@ class Designer extends Events {
// Init Screen manager.. // Init Screen manager..
const screenManager = new ScreenManager(divElement); const screenManager = new ScreenManager(divElement);
this._workspace = new Workspace(screenManager, this._model.getZoom()); this._workspace = new Workspace(screenManager, this._model.getZoom(), !!options.readOnly);
// Init layout manager ... // Init layout manager ...
this._eventBussDispatcher = new EventBusDispatcher(this.getModel()); this._eventBussDispatcher = new EventBusDispatcher(this.getModel());

View File

@ -169,7 +169,11 @@ class Relationship extends ConnectionLine {
workspace.append(this._controlPointsController); workspace.append(this._controlPointsController);
this._controlPointControllerListener = this._initializeControlPointController.bind(this); this._controlPointControllerListener = this._initializeControlPointController.bind(this);
if (workspace.isReadOnly) {
this._line2d.setCursor('default');
} else {
this._line2d.addEvent('click', this._controlPointControllerListener); this._line2d.addEvent('click', this._controlPointControllerListener);
}
this._isInWorkspace = true; this._isInWorkspace = true;
workspace.append(this._startArrow); workspace.append(this._startArrow);
@ -187,7 +191,9 @@ class Relationship extends ConnectionLine {
removeFromWorkspace(workspace) { removeFromWorkspace(workspace) {
workspace.removeChild(this._focusShape); workspace.removeChild(this._focusShape);
workspace.removeChild(this._controlPointsController); workspace.removeChild(this._controlPointsController);
if (!workspace.isReadOnly) {
this._line2d.removeEvent('click', this._controlPointControllerListener); this._line2d.removeEvent('click', this._controlPointControllerListener);
}
this._isInWorkspace = false; this._isInWorkspace = false;
workspace.removeChild(this._startArrow); workspace.removeChild(this._startArrow);
if (this._endArrow) workspace.removeChild(this._endArrow); if (this._endArrow) workspace.removeChild(this._endArrow);

View File

@ -19,13 +19,14 @@ import { $assert, $defined } from '@wisemapping/core-js';
import { Workspace as Workspace2D, Toolkit } from '@wisemapping/web2d'; import { Workspace as Workspace2D, Toolkit } from '@wisemapping/web2d';
class Workspace { class Workspace {
constructor(screenManager, zoom) { constructor(screenManager, zoom, isReadOnly) {
// Create a suitable container ... // Create a suitable container ...
$assert(screenManager, 'Div container can not be null'); $assert(screenManager, 'Div container can not be null');
$assert(zoom, 'zoom container can not be null'); $assert(zoom, 'zoom container can not be null');
this._zoom = zoom; this._zoom = zoom;
this._screenManager = screenManager; this._screenManager = screenManager;
this._isReadOnly = isReadOnly;
const divContainer = screenManager.getContainer(); const divContainer = screenManager.getContainer();
this._screenWidth = parseInt(divContainer.css('width'), 10); this._screenWidth = parseInt(divContainer.css('width'), 10);
@ -44,6 +45,10 @@ class Workspace {
this._eventsEnabled = true; this._eventsEnabled = true;
} }
get isReadOnly() {
return this._isReadOnly;
}
_createWorkspace() { _createWorkspace() {
// Initialize workspace ... // Initialize workspace ...
const coordOriginX = -(this._screenWidth / 2); const coordOriginX = -(this._screenWidth / 2);

View File

@ -150,7 +150,7 @@ class Mindmap extends IMindmap {
* @param relationship * @param relationship
*/ */
deleteRelationship(relationship) { deleteRelationship(relationship) {
this._relationships = this._branches.filter((r) => r !== relationship); this._relationships = this._relationships.filter((r) => r !== relationship);
} }
findNodeById(id) { findNodeById(id) {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 KiB

After

Width:  |  Height:  |  Size: 321 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 KiB

After

Width:  |  Height:  |  Size: 296 KiB

View File

@ -34,6 +34,9 @@ class ElementPeer {
this._size = { width: 1, height: 1 }; this._size = { width: 1, height: 1 };
this._changeListeners = {}; this._changeListeners = {};
// http://support.adobe.com/devsup/devsup.nsf/docs/50493.htm // http://support.adobe.com/devsup/devsup.nsf/docs/50493.htm
// __handlers stores handlers references so they can be removed afterwards
this.__handlers = new Map();
} }
setChildren(children) { setChildren(children) {
@ -95,12 +98,15 @@ class ElementPeer {
* http://developer.mozilla.org/en/docs/addEvent * http://developer.mozilla.org/en/docs/addEvent
*/ */
addEvent(type, listener) { addEvent(type, listener) {
this._native.addEventListener(type, listener); // wrap it so it can be ~backward compatible with jQuery.trigger
const wrappedListener = (e) => listener(e, e.detail);
this.__handlers.set(listener, wrappedListener);
this._native.addEventListener(type, wrappedListener);
} }
trigger(type, event) { trigger(type, event) {
// TODO: check this for correctness and for real jQuery.trigger replacement // TODO: check this for correctness and for real jQuery.trigger replacement
this._native.dispatchEvent(new CustomEvent(type, event)); this._native.dispatchEvent(new CustomEvent(type, { detail: event }));
} }
// eslint-disable-next-line class-methods-use-this // eslint-disable-next-line class-methods-use-this
@ -109,7 +115,8 @@ class ElementPeer {
} }
removeEvent(type, listener) { removeEvent(type, listener) {
this._native.removeEventListener(type, listener); this._native.removeEventListener(type, this.__handlers.get(listener));
this.__handlers.delete(listener);
} }
setSize(width, height) { setSize(width, height) {

View File

@ -1,6 +1,6 @@
# Running tests with cypress. # Running tests with cypress.
For details on why we picked Cypress, check the following [PR](https://bitbucket.org/wisemapping/wisemapping-react/pull-requests/1) For details on why we picked Cypress, check the following [PR](https://bitbucket.org/wisemapping/wisemapping-frontend/pull-requests/1)
Check the [Cypress docs](https://docs.cypress.io/guides/overview/why-cypress.html) for more information Check the [Cypress docs](https://docs.cypress.io/guides/overview/why-cypress.html) for more information

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 54 KiB