|
@@ -11,37 +11,34 @@ |
|
@@ -11,37 +11,34 @@ |
11
|
* @param {number} x X-coordinate of the point.
|
11
|
* @param {number} x X-coordinate of the point.
|
12
|
* @param {number} y Y-coordinate of the point.
|
12
|
* @param {number} y Y-coordinate of the point.
|
13
|
*/
|
13
|
*/
|
14
|
-App = function(editor, container, lightbox)
|
|
|
15
|
-{
|
14
|
+App = function (editor, container, lightbox) {
|
16
|
EditorUi.call(this, editor, container, (lightbox != null) ? lightbox :
|
15
|
EditorUi.call(this, editor, container, (lightbox != null) ? lightbox :
|
17
|
(urlParams['lightbox'] == '1' || (uiTheme == 'min' &&
|
16
|
(urlParams['lightbox'] == '1' || (uiTheme == 'min' &&
|
18
|
- urlParams['chrome'] != '0')));
|
17
|
+ urlParams['chrome'] != '0')));
|
19
|
|
18
|
|
20
|
// Logs unloading of window with modifications for Google Drive file
|
19
|
// Logs unloading of window with modifications for Google Drive file
|
21
|
- if (!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp)
|
|
|
22
|
- {
|
|
|
23
|
- window.onunload = mxUtils.bind(this, function()
|
|
|
24
|
- {
|
20
|
+ if (!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp) {
|
|
|
21
|
+ window.onunload = mxUtils.bind(this, function () {
|
25
|
var file = this.getCurrentFile();
|
22
|
var file = this.getCurrentFile();
|
26
|
|
23
|
|
27
|
- if (file != null && file.isModified())
|
|
|
28
|
- {
|
|
|
29
|
- var evt = {category: 'DISCARD-FILE-' + file.getHash(),
|
24
|
+ if (file != null && file.isModified()) {
|
|
|
25
|
+ var evt = {
|
|
|
26
|
+ category: 'DISCARD-FILE-' + file.getHash(),
|
30
|
action: ((file.savingFile) ? 'saving' : '') +
|
27
|
action: ((file.savingFile) ? 'saving' : '') +
|
31
|
- ((file.savingFile && file.savingFileTime != null) ? '_' +
|
|
|
32
|
- Math.round((Date.now() - file.savingFileTime.getTime()) / 1000) : '') +
|
|
|
33
|
- ((file.saveLevel != null) ? ('-sl_' + file.saveLevel) : '') +
|
|
|
34
|
- '-age_' + ((file.ageStart != null) ? Math.round((Date.now() - file.ageStart.getTime()) / 1000) : 'x') +
|
|
|
35
|
- ((this.editor.autosave) ? '' : '-nosave') +
|
|
|
36
|
- ((file.isAutosave()) ? '' : '-noauto') +
|
|
|
37
|
- '-open_' + ((file.opened != null) ? Math.round((Date.now() - file.opened.getTime()) / 1000) : 'x') +
|
|
|
38
|
- '-save_' + ((file.lastSaved != null) ? Math.round((Date.now() - file.lastSaved.getTime()) / 1000) : 'x') +
|
|
|
39
|
- '-change_' + ((file.lastChanged != null) ? Math.round((Date.now() - file.lastChanged.getTime()) / 1000) : 'x') +
|
|
|
40
|
- '-alive_' + Math.round((Date.now() - App.startTime.getTime()) / 1000),
|
|
|
41
|
- label: (file.sync != null) ? ('client_' + file.sync.clientId) : 'nosync'};
|
|
|
42
|
-
|
|
|
43
|
- if (file.constructor == DriveFile && file.desc != null && this.drive != null)
|
|
|
44
|
- {
|
28
|
+ ((file.savingFile && file.savingFileTime != null) ? '_' +
|
|
|
29
|
+ Math.round((Date.now() - file.savingFileTime.getTime()) / 1000) : '') +
|
|
|
30
|
+ ((file.saveLevel != null) ? ('-sl_' + file.saveLevel) : '') +
|
|
|
31
|
+ '-age_' + ((file.ageStart != null) ? Math.round((Date.now() - file.ageStart.getTime()) / 1000) : 'x') +
|
|
|
32
|
+ ((this.editor.autosave) ? '' : '-nosave') +
|
|
|
33
|
+ ((file.isAutosave()) ? '' : '-noauto') +
|
|
|
34
|
+ '-open_' + ((file.opened != null) ? Math.round((Date.now() - file.opened.getTime()) / 1000) : 'x') +
|
|
|
35
|
+ '-save_' + ((file.lastSaved != null) ? Math.round((Date.now() - file.lastSaved.getTime()) / 1000) : 'x') +
|
|
|
36
|
+ '-change_' + ((file.lastChanged != null) ? Math.round((Date.now() - file.lastChanged.getTime()) / 1000) : 'x') +
|
|
|
37
|
+ '-alive_' + Math.round((Date.now() - App.startTime.getTime()) / 1000),
|
|
|
38
|
+ label: (file.sync != null) ? ('client_' + file.sync.clientId) : 'nosync'
|
|
|
39
|
+ };
|
|
|
40
|
+
|
|
|
41
|
+ if (file.constructor == DriveFile && file.desc != null && this.drive != null) {
|
45
|
evt.label += ((this.drive.user != null) ? ('-user_' + this.drive.user.id) : '-nouser') + '-rev_' +
|
42
|
evt.label += ((this.drive.user != null) ? ('-user_' + this.drive.user.id) : '-nouser') + '-rev_' +
|
46
|
file.desc.headRevisionId + '-mod_' + file.desc.modifiedDate + '-size_' + file.getSize() +
|
43
|
file.desc.headRevisionId + '-mod_' + file.desc.modifiedDate + '-size_' + file.getSize() +
|
47
|
'-mime_' + file.desc.mimeType;
|
44
|
'-mime_' + file.desc.mimeType;
|
|
@@ -53,55 +50,47 @@ App = function(editor, container, lightbox) |
|
@@ -53,55 +50,47 @@ App = function(editor, container, lightbox) |
53
|
}
|
50
|
}
|
54
|
|
51
|
|
55
|
// Logs changes to autosave
|
52
|
// Logs changes to autosave
|
56
|
- this.editor.addListener('autosaveChanged', mxUtils.bind(this, function()
|
|
|
57
|
- {
|
53
|
+ this.editor.addListener('autosaveChanged', mxUtils.bind(this, function () {
|
58
|
var file = this.getCurrentFile();
|
54
|
var file = this.getCurrentFile();
|
59
|
|
55
|
|
60
|
- if (file != null)
|
|
|
61
|
- {
|
|
|
62
|
- EditorUi.logEvent({category: ((this.editor.autosave) ? 'ON' : 'OFF') +
|
|
|
63
|
- '-AUTOSAVE-FILE-' + file.getHash(), action: 'changed',
|
|
|
64
|
- label: 'autosave_' + ((this.editor.autosave) ? 'on' : 'off')});
|
56
|
+ if (file != null) {
|
|
|
57
|
+ EditorUi.logEvent({
|
|
|
58
|
+ category: ((this.editor.autosave) ? 'ON' : 'OFF') +
|
|
|
59
|
+ '-AUTOSAVE-FILE-' + file.getHash(), action: 'changed',
|
|
|
60
|
+ label: 'autosave_' + ((this.editor.autosave) ? 'on' : 'off')
|
|
|
61
|
+ });
|
65
|
}
|
62
|
}
|
66
|
}));
|
63
|
}));
|
67
|
|
64
|
|
68
|
// Pre-fetches images
|
65
|
// Pre-fetches images
|
69
|
- if (mxClient.IS_SVG)
|
|
|
70
|
- {
|
66
|
+ if (mxClient.IS_SVG) {
|
71
|
mxGraph.prototype.warningImage.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE7SURBVHjaYvz//z8DJQAggBjwGXDuHMP/tWuD/uPTCxBAOA0AaQRK/f/+XeJ/cbHlf1wGAAQQTgPu3QNLgfHSpZo4DQAIIKwGwGyH4e/fFbG6AiQJEEAs2Ew2NFzH8OOHBMO6dT/A/KCg7wxGRh+wuhQggDBcALMdFIAcHBxgDGJjcwVIIUAAYbhAUXEdVos4OO4DXcGBIQ4QQCguQPY7sgtgAYruCpAgQACx4LJdU1OCwctLEcyWlLwPJF+AXQE0EMUBAAEEdwF6yMOiD4RRY0QT7gqQAEAAseDzu6XldYYPH9DD4joQa8L5AAEENgWb7SBcXa0JDQMBrK4AcQACiAlfyOMCEFdAnAYQQEz4FLa0XGf4/v0H0IIPONUABBAjyBmMjIwMS5cK/L927QORbtBkaG29DtYLEGAAH6f7oq3Zc+kAAAAASUVORK5CYII=';
|
67
|
mxGraph.prototype.warningImage.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE7SURBVHjaYvz//z8DJQAggBjwGXDuHMP/tWuD/uPTCxBAOA0AaQRK/f/+XeJ/cbHlf1wGAAQQTgPu3QNLgfHSpZo4DQAIIKwGwGyH4e/fFbG6AiQJEEAs2Ew2NFzH8OOHBMO6dT/A/KCg7wxGRh+wuhQggDBcALMdFIAcHBxgDGJjcwVIIUAAYbhAUXEdVos4OO4DXcGBIQ4QQCguQPY7sgtgAYruCpAgQACx4LJdU1OCwctLEcyWlLwPJF+AXQE0EMUBAAEEdwF6yMOiD4RRY0QT7gqQAEAAseDzu6XldYYPH9DD4joQa8L5AAEENgWb7SBcXa0JDQMBrK4AcQACiAlfyOMCEFdAnAYQQEz4FLa0XGf4/v0H0IIPONUABBAjyBmMjIwMS5cK/L927QORbtBkaG29DtYLEGAAH6f7oq3Zc+kAAAAASUVORK5CYII=';
|
72
|
}
|
68
|
}
|
73
|
- else
|
|
|
74
|
- {
|
69
|
+ else {
|
75
|
var img = new Image();
|
70
|
var img = new Image();
|
76
|
img.src = mxGraph.prototype.warningImage.src;
|
71
|
img.src = mxGraph.prototype.warningImage.src;
|
77
|
}
|
72
|
}
|
78
|
|
73
|
|
79
|
// Global helper method to deal with popup blockers
|
74
|
// Global helper method to deal with popup blockers
|
80
|
- window.openWindow = mxUtils.bind(this, function(url, pre, fallback)
|
|
|
81
|
- {
|
|
|
82
|
- if (urlParams['openInSameWin'] == '1' || navigator.standalone)
|
|
|
83
|
- {
|
75
|
+ window.openWindow = mxUtils.bind(this, function (url, pre, fallback) {
|
|
|
76
|
+ if (urlParams['openInSameWin'] == '1' || navigator.standalone) {
|
84
|
fallback();
|
77
|
fallback();
|
85
|
return;
|
78
|
return;
|
86
|
}
|
79
|
}
|
87
|
|
80
|
|
88
|
var wnd = null;
|
81
|
var wnd = null;
|
89
|
|
82
|
|
90
|
- try
|
|
|
91
|
- {
|
83
|
+ try {
|
92
|
wnd = window.open(url);
|
84
|
wnd = window.open(url);
|
93
|
}
|
85
|
}
|
94
|
- catch (e)
|
|
|
95
|
- {
|
86
|
+ catch (e) {
|
96
|
// ignore
|
87
|
// ignore
|
97
|
}
|
88
|
}
|
98
|
|
89
|
|
99
|
- if (wnd == null || wnd === undefined)
|
|
|
100
|
- {
|
90
|
+ if (wnd == null || wnd === undefined) {
|
101
|
this.showDialog(new PopupDialog(this, url, pre, fallback).container, 320, 140, true, true);
|
91
|
this.showDialog(new PopupDialog(this, url, pre, fallback).container, 320, 140, true, true);
|
102
|
}
|
92
|
}
|
103
|
- else if (pre != null)
|
|
|
104
|
- {
|
93
|
+ else if (pre != null) {
|
105
|
pre();
|
94
|
pre();
|
106
|
}
|
95
|
}
|
107
|
});
|
96
|
});
|
|
@@ -111,11 +100,9 @@ App = function(editor, container, lightbox) |
|
@@ -111,11 +100,9 @@ App = function(editor, container, lightbox) |
111
|
this.updateUi();
|
100
|
this.updateUi();
|
112
|
|
101
|
|
113
|
// Global helper method to display error messages
|
102
|
// Global helper method to display error messages
|
114
|
- window.showOpenAlert = mxUtils.bind(this, function(message)
|
|
|
115
|
- {
|
103
|
+ window.showOpenAlert = mxUtils.bind(this, function (message) {
|
116
|
// Cancel must be called before showing error message
|
104
|
// Cancel must be called before showing error message
|
117
|
- if (window.openFile != null)
|
|
|
118
|
- {
|
105
|
+ if (window.openFile != null) {
|
119
|
window.openFile.cancel(true);
|
106
|
window.openFile.cancel(true);
|
120
|
}
|
107
|
}
|
121
|
|
108
|
|
|
@@ -123,54 +110,42 @@ App = function(editor, container, lightbox) |
|
@@ -123,54 +110,42 @@ App = function(editor, container, lightbox) |
123
|
});
|
110
|
});
|
124
|
|
111
|
|
125
|
// Handles opening files via drag and drop
|
112
|
// Handles opening files via drag and drop
|
126
|
- if (!this.editor.chromeless || this.editor.editable)
|
|
|
127
|
- {
|
113
|
+ if (!this.editor.chromeless || this.editor.editable) {
|
128
|
this.addFileDropHandler([document]);
|
114
|
this.addFileDropHandler([document]);
|
129
|
}
|
115
|
}
|
130
|
|
116
|
|
131
|
// Process the queue for waiting plugins
|
117
|
// Process the queue for waiting plugins
|
132
|
- if (App.DrawPlugins != null)
|
|
|
133
|
- {
|
|
|
134
|
- for (var i = 0; i < App.DrawPlugins.length; i++)
|
|
|
135
|
- {
|
|
|
136
|
- try
|
|
|
137
|
- {
|
118
|
+ if (App.DrawPlugins != null) {
|
|
|
119
|
+ for (var i = 0; i < App.DrawPlugins.length; i++) {
|
|
|
120
|
+ try {
|
138
|
App.DrawPlugins[i](this);
|
121
|
App.DrawPlugins[i](this);
|
139
|
}
|
122
|
}
|
140
|
- catch (e)
|
|
|
141
|
- {
|
|
|
142
|
- if (window.console != null)
|
|
|
143
|
- {
|
123
|
+ catch (e) {
|
|
|
124
|
+ if (window.console != null) {
|
144
|
console.log('Plugin Error:', e, App.DrawPlugins[i]);
|
125
|
console.log('Plugin Error:', e, App.DrawPlugins[i]);
|
145
|
}
|
126
|
}
|
146
|
}
|
127
|
}
|
147
|
- finally
|
|
|
148
|
- {
|
128
|
+ finally {
|
149
|
App.embedModePluginsCount--;
|
129
|
App.embedModePluginsCount--;
|
150
|
this.initializeEmbedMode();
|
130
|
this.initializeEmbedMode();
|
151
|
}
|
131
|
}
|
152
|
}
|
132
|
}
|
153
|
|
133
|
|
154
|
// Installs global callback for plugins
|
134
|
// Installs global callback for plugins
|
155
|
- window.Draw.loadPlugin = mxUtils.bind(this, function(callback)
|
|
|
156
|
- {
|
|
|
157
|
- try
|
|
|
158
|
- {
|
135
|
+ window.Draw.loadPlugin = mxUtils.bind(this, function (callback) {
|
|
|
136
|
+ try {
|
159
|
callback(this);
|
137
|
callback(this);
|
160
|
}
|
138
|
}
|
161
|
- finally
|
|
|
162
|
- {
|
139
|
+ finally {
|
163
|
App.embedModePluginsCount--;
|
140
|
App.embedModePluginsCount--;
|
164
|
this.initializeEmbedMode();
|
141
|
this.initializeEmbedMode();
|
165
|
}
|
142
|
}
|
166
|
});
|
143
|
});
|
167
|
|
144
|
|
168
|
//Set a timeout in case a plugin doesn't load quickly or doesn't load at all
|
145
|
//Set a timeout in case a plugin doesn't load quickly or doesn't load at all
|
169
|
- setTimeout(mxUtils.bind(this, function()
|
|
|
170
|
- {
|
146
|
+ setTimeout(mxUtils.bind(this, function () {
|
171
|
//Force finish loading if its not yet called
|
147
|
//Force finish loading if its not yet called
|
172
|
- if (App.embedModePluginsCount > 0)
|
|
|
173
|
- {
|
148
|
+ if (App.embedModePluginsCount > 0) {
|
174
|
App.embedModePluginsCount = 0;
|
149
|
App.embedModePluginsCount = 0;
|
175
|
this.initializeEmbedMode();
|
150
|
this.initializeEmbedMode();
|
176
|
}
|
151
|
}
|
|
@@ -253,7 +228,7 @@ App.DROPBOX_APPKEY = window.DRAWIO_DROPBOX_ID; |
|
@@ -253,7 +228,7 @@ App.DROPBOX_APPKEY = window.DRAWIO_DROPBOX_ID; |
253
|
/**
|
228
|
/**
|
254
|
* Sets URL to load the Dropbox SDK from
|
229
|
* Sets URL to load the Dropbox SDK from
|
255
|
*/
|
230
|
*/
|
256
|
-App.DROPBOX_URL = window.DRAWIO_BASE_URL + Proxy_Prefix + '/js/dropbox/Dropbox-sdk.min.js';
|
231
|
+App.DROPBOX_URL = window.DRAWIO_BASE_URL + Proxy_Prefix + '/js/dropbox/Dropbox-sdk.min.js';
|
257
|
|
232
|
|
258
|
/**
|
233
|
/**
|
259
|
* Sets URL to load the Dropbox dropins JS from.
|
234
|
* Sets URL to load the Dropbox dropins JS from.
|
|
@@ -266,7 +241,7 @@ App.DROPINS_URL = ''; |
|
@@ -266,7 +241,7 @@ App.DROPINS_URL = ''; |
266
|
* OneDrive Client JS (file/folder picker). This is a slightly modified version to allow using accessTokens
|
241
|
* OneDrive Client JS (file/folder picker). This is a slightly modified version to allow using accessTokens
|
267
|
* But it doesn't work for IE11, so we fallback to the original one
|
242
|
* But it doesn't work for IE11, so we fallback to the original one
|
268
|
*/
|
243
|
*/
|
269
|
-App.ONEDRIVE_URL = mxClient.IS_IE11? 'https://js.live.net/v7.2/OneDrive.js' : window.DRAWIO_BASE_URL + Proxy_Prefix + '/js/onedrive/OneDrive.js';
|
244
|
+App.ONEDRIVE_URL = mxClient.IS_IE11 ? 'https://js.live.net/v7.2/OneDrive.js' : window.DRAWIO_BASE_URL + Proxy_Prefix + '/js/onedrive/OneDrive.js';
|
270
|
|
245
|
|
271
|
/**
|
246
|
/**
|
272
|
* Trello URL
|
247
|
* Trello URL
|
|
@@ -296,7 +271,7 @@ App.PUSHER_URL = 'https://js.pusher.com/7.0.3/pusher.min.js'; |
|
@@ -296,7 +271,7 @@ App.PUSHER_URL = 'https://js.pusher.com/7.0.3/pusher.min.js'; |
296
|
/**
|
271
|
/**
|
297
|
* SimplePeer library
|
272
|
* SimplePeer library
|
298
|
*/
|
273
|
*/
|
299
|
- App.SIMPLE_PEER_URL = window.DRAWIO_BASE_URL + '/js/simplepeer/simplepeer9.10.0.min.js';
|
274
|
+App.SIMPLE_PEER_URL = window.DRAWIO_BASE_URL + '/js/simplepeer/simplepeer9.10.0.min.js';
|
300
|
|
275
|
|
301
|
/**
|
276
|
/**
|
302
|
* Google APIs to load. The realtime API is needed to notify collaborators of conversion
|
277
|
* Google APIs to load. The realtime API is needed to notify collaborators of conversion
|
|
@@ -315,7 +290,8 @@ App.startTime = new Date(); |
|
@@ -315,7 +290,8 @@ App.startTime = new Date(); |
315
|
* Defines plugin IDs for loading via p URL parameter. Update the table at
|
290
|
* Defines plugin IDs for loading via p URL parameter. Update the table at
|
316
|
* https://www.diagrams.net/doc/faq/supported-url-parameters
|
291
|
* https://www.diagrams.net/doc/faq/supported-url-parameters
|
317
|
*/
|
292
|
*/
|
318
|
-App.pluginRegistry = {'4xAKTrabTpTzahoLthkwPNUn': 'plugins/explore.js',
|
293
|
+App.pluginRegistry = {
|
|
|
294
|
+ '4xAKTrabTpTzahoLthkwPNUn': 'plugins/explore.js',
|
319
|
'ex': 'plugins/explore.js', 'p1': 'plugins/p1.js',
|
295
|
'ex': 'plugins/explore.js', 'p1': 'plugins/p1.js',
|
320
|
'ac': 'plugins/connect.js', 'acj': 'plugins/connectJira.js',
|
296
|
'ac': 'plugins/connect.js', 'acj': 'plugins/connectJira.js',
|
321
|
'ac148': 'plugins/cConf-1-4-8.js', 'ac148cmnt': 'plugins/cConf-comments.js',
|
297
|
'ac148': 'plugins/cConf-1-4-8.js', 'ac148cmnt': 'plugins/cConf-comments.js',
|
|
@@ -331,7 +307,8 @@ App.pluginRegistry = {'4xAKTrabTpTzahoLthkwPNUn': 'plugins/explore.js', |
|
@@ -331,7 +307,8 @@ App.pluginRegistry = {'4xAKTrabTpTzahoLthkwPNUn': 'plugins/explore.js', |
331
|
'tickets': 'plugins/tickets.js', 'flow': 'plugins/flow.js',
|
307
|
'tickets': 'plugins/tickets.js', 'flow': 'plugins/flow.js',
|
332
|
'webcola': 'plugins/webcola/webcola.js', 'rnd': 'plugins/random.js',
|
308
|
'webcola': 'plugins/webcola/webcola.js', 'rnd': 'plugins/random.js',
|
333
|
'page': 'plugins/page.js', 'gd': 'plugins/googledrive.js',
|
309
|
'page': 'plugins/page.js', 'gd': 'plugins/googledrive.js',
|
334
|
- 'tags': 'plugins/tags.js'};
|
310
|
+ 'tags': 'plugins/tags.js'
|
|
|
311
|
+};
|
335
|
|
312
|
|
336
|
App.publicPlugin = [
|
313
|
App.publicPlugin = [
|
337
|
'ex',
|
314
|
'ex',
|
|
@@ -345,13 +322,13 @@ App.publicPlugin = [ |
|
@@ -345,13 +322,13 @@ App.publicPlugin = [ |
345
|
'anim',
|
322
|
'anim',
|
346
|
'update',
|
323
|
'update',
|
347
|
'trees',
|
324
|
'trees',
|
348
|
-// 'import',
|
325
|
+ // 'import',
|
349
|
'replay',
|
326
|
'replay',
|
350
|
'anon',
|
327
|
'anon',
|
351
|
'tickets',
|
328
|
'tickets',
|
352
|
'flow',
|
329
|
'flow',
|
353
|
'webcola',
|
330
|
'webcola',
|
354
|
-// 'rnd', 'page', 'gd',
|
331
|
+ // 'rnd', 'page', 'gd',
|
355
|
'tags'
|
332
|
'tags'
|
356
|
];
|
333
|
];
|
357
|
|
334
|
|
|
@@ -359,16 +336,12 @@ App.publicPlugin = [ |
|
@@ -359,16 +336,12 @@ App.publicPlugin = [ |
359
|
* Loads all given scripts and invokes onload after
|
336
|
* Loads all given scripts and invokes onload after
|
360
|
* all scripts have finished loading.
|
337
|
* all scripts have finished loading.
|
361
|
*/
|
338
|
*/
|
362
|
-App.loadScripts = function(scripts, onload)
|
|
|
363
|
-{
|
339
|
+App.loadScripts = function (scripts, onload) {
|
364
|
var n = scripts.length;
|
340
|
var n = scripts.length;
|
365
|
|
341
|
|
366
|
- for (var i = 0; i < scripts.length; i++)
|
|
|
367
|
- {
|
|
|
368
|
- mxscript(scripts[i], function()
|
|
|
369
|
- {
|
|
|
370
|
- if (--n == 0 && onload != null)
|
|
|
371
|
- {
|
342
|
+ for (var i = 0; i < scripts.length; i++) {
|
|
|
343
|
+ mxscript(scripts[i], function () {
|
|
|
344
|
+ if (--n == 0 && onload != null) {
|
372
|
onload();
|
345
|
onload();
|
373
|
}
|
346
|
}
|
374
|
});
|
347
|
});
|
|
@@ -380,33 +353,27 @@ App.loadScripts = function(scripts, onload) |
|
@@ -380,33 +353,27 @@ App.loadScripts = function(scripts, onload) |
380
|
*
|
353
|
*
|
381
|
* Returns the current mode.
|
354
|
* Returns the current mode.
|
382
|
*/
|
355
|
*/
|
383
|
-App.getStoredMode = function()
|
|
|
384
|
-{
|
356
|
+App.getStoredMode = function () {
|
385
|
var mode = null;
|
357
|
var mode = null;
|
386
|
|
358
|
|
387
|
- if (mode == null && isLocalStorage)
|
|
|
388
|
- {
|
359
|
+ if (mode == null && isLocalStorage) {
|
389
|
mode = localStorage.getItem('.mode');
|
360
|
mode = localStorage.getItem('.mode');
|
390
|
}
|
361
|
}
|
391
|
|
362
|
|
392
|
- if (mode == null && typeof(Storage) != 'undefined')
|
|
|
393
|
- {
|
363
|
+ if (mode == null && typeof (Storage) != 'undefined') {
|
394
|
var cookies = document.cookie.split(";");
|
364
|
var cookies = document.cookie.split(";");
|
395
|
|
365
|
|
396
|
- for (var i = 0; i < cookies.length; i++)
|
|
|
397
|
- {
|
366
|
+ for (var i = 0; i < cookies.length; i++) {
|
398
|
// Removes spaces around cookie
|
367
|
// Removes spaces around cookie
|
399
|
var cookie = mxUtils.trim(cookies[i]);
|
368
|
var cookie = mxUtils.trim(cookies[i]);
|
400
|
|
369
|
|
401
|
- if (cookie.substring(0, 5) == 'MODE=')
|
|
|
402
|
- {
|
370
|
+ if (cookie.substring(0, 5) == 'MODE=') {
|
403
|
mode = cookie.substring(5);
|
371
|
mode = cookie.substring(5);
|
404
|
break;
|
372
|
break;
|
405
|
}
|
373
|
}
|
406
|
}
|
374
|
}
|
407
|
|
375
|
|
408
|
- if (mode != null && isLocalStorage)
|
|
|
409
|
- {
|
376
|
+ if (mode != null && isLocalStorage) {
|
410
|
// Moves to local storage
|
377
|
// Moves to local storage
|
411
|
var expiry = new Date();
|
378
|
var expiry = new Date();
|
412
|
expiry.setYear(expiry.getFullYear() - 1);
|
379
|
expiry.setYear(expiry.getFullYear() - 1);
|
|
@@ -421,23 +388,18 @@ App.getStoredMode = function() |
|
@@ -421,23 +388,18 @@ App.getStoredMode = function() |
421
|
/**
|
388
|
/**
|
422
|
* Static Application initializer executed at load-time.
|
389
|
* Static Application initializer executed at load-time.
|
423
|
*/
|
390
|
*/
|
424
|
-(function()
|
|
|
425
|
-{
|
|
|
426
|
- if (!mxClient.IS_CHROMEAPP)
|
|
|
427
|
- {
|
|
|
428
|
- if (urlParams['offline'] != '1')
|
|
|
429
|
- {
|
391
|
+(function () {
|
|
|
392
|
+ if (!mxClient.IS_CHROMEAPP) {
|
|
|
393
|
+ if (urlParams['offline'] != '1') {
|
430
|
// Switches to dropbox mode for db.draw.io
|
394
|
// Switches to dropbox mode for db.draw.io
|
431
|
- if (window.location.hostname == 'db.draw.io' && urlParams['mode'] == null)
|
|
|
432
|
- {
|
395
|
+ if (window.location.hostname == 'db.draw.io' && urlParams['mode'] == null) {
|
433
|
urlParams['mode'] = 'dropbox';
|
396
|
urlParams['mode'] = 'dropbox';
|
434
|
}
|
397
|
}
|
435
|
|
398
|
|
436
|
App.mode = urlParams['mode'];
|
399
|
App.mode = urlParams['mode'];
|
437
|
}
|
400
|
}
|
438
|
|
401
|
|
439
|
- if (App.mode == null)
|
|
|
440
|
- {
|
402
|
+ if (App.mode == null) {
|
441
|
// Stored mode overrides preferred mode
|
403
|
// Stored mode overrides preferred mode
|
442
|
App.mode = App.getStoredMode();
|
404
|
App.mode = App.getStoredMode();
|
443
|
}
|
405
|
}
|
|
@@ -445,33 +407,26 @@ App.getStoredMode = function() |
|
@@ -445,33 +407,26 @@ App.getStoredMode = function() |
445
|
/**
|
407
|
/**
|
446
|
* Lazy loading backends.
|
408
|
* Lazy loading backends.
|
447
|
*/
|
409
|
*/
|
448
|
- if (window.mxscript != null)
|
|
|
449
|
- {
|
410
|
+ if (window.mxscript != null) {
|
450
|
// Loads gapi for all browsers but IE8 and below if not disabled or if enabled and in embed mode
|
411
|
// Loads gapi for all browsers but IE8 and below if not disabled or if enabled and in embed mode
|
451
|
- if (urlParams['embed'] != '1')
|
|
|
452
|
- {
|
|
|
453
|
- if (typeof window.DriveClient === 'function')
|
|
|
454
|
- {
|
412
|
+ if (urlParams['embed'] != '1') {
|
|
|
413
|
+ if (typeof window.DriveClient === 'function') {
|
455
|
if (urlParams['gapi'] != '0' && isSvgBrowser &&
|
414
|
if (urlParams['gapi'] != '0' && isSvgBrowser &&
|
456
|
- (document.documentMode == null || document.documentMode >= 10))
|
|
|
457
|
- {
|
415
|
+ (document.documentMode == null || document.documentMode >= 10)) {
|
458
|
// Immediately loads client
|
416
|
// Immediately loads client
|
459
|
if (App.mode == App.MODE_GOOGLE || (urlParams['state'] != null &&
|
417
|
if (App.mode == App.MODE_GOOGLE || (urlParams['state'] != null &&
|
460
|
window.location.hash == '') || (window.location.hash != null &&
|
418
|
window.location.hash == '') || (window.location.hash != null &&
|
461
|
- window.location.hash.substring(0, 2) == '#G'))
|
|
|
462
|
- {
|
419
|
+ window.location.hash.substring(0, 2) == '#G')) {
|
463
|
mxscript('https://apis.google.com/js/api.js');
|
420
|
mxscript('https://apis.google.com/js/api.js');
|
464
|
}
|
421
|
}
|
465
|
// Keeps lazy loading for fallback to authenticated Google file if not public in loadFile
|
422
|
// Keeps lazy loading for fallback to authenticated Google file if not public in loadFile
|
466
|
else if (urlParams['chrome'] == '0' && (window.location.hash == null ||
|
423
|
else if (urlParams['chrome'] == '0' && (window.location.hash == null ||
|
467
|
- window.location.hash.substring(0, 45) !== '#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D'))
|
|
|
468
|
- {
|
424
|
+ window.location.hash.substring(0, 45) !== '#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D')) {
|
469
|
// Disables loading of client
|
425
|
// Disables loading of client
|
470
|
window.DriveClient = null;
|
426
|
window.DriveClient = null;
|
471
|
}
|
427
|
}
|
472
|
}
|
428
|
}
|
473
|
- else
|
|
|
474
|
- {
|
429
|
+ else {
|
475
|
// Disables loading of client
|
430
|
// Disables loading of client
|
476
|
window.DriveClient = null;
|
431
|
window.DriveClient = null;
|
477
|
}
|
432
|
}
|
|
@@ -479,80 +434,63 @@ App.getStoredMode = function() |
|
@@ -479,80 +434,63 @@ App.getStoredMode = function() |
479
|
|
434
|
|
480
|
// Loads dropbox for all browsers but IE8 and below (no CORS) if not disabled or if enabled and in embed mode
|
435
|
// Loads dropbox for all browsers but IE8 and below (no CORS) if not disabled or if enabled and in embed mode
|
481
|
// KNOWN: Picker does not work in IE11 (https://dropbox.zendesk.com/requests/1650781)
|
436
|
// KNOWN: Picker does not work in IE11 (https://dropbox.zendesk.com/requests/1650781)
|
482
|
- if (typeof window.DropboxClient === 'function')
|
|
|
483
|
- {
|
437
|
+ if (typeof window.DropboxClient === 'function') {
|
484
|
if (urlParams['db'] != '0' && isSvgBrowser &&
|
438
|
if (urlParams['db'] != '0' && isSvgBrowser &&
|
485
|
- (document.documentMode == null || document.documentMode > 9))
|
|
|
486
|
- {
|
439
|
+ (document.documentMode == null || document.documentMode > 9)) {
|
487
|
// Immediately loads client
|
440
|
// Immediately loads client
|
488
|
if (App.mode == App.MODE_DROPBOX || (window.location.hash != null &&
|
441
|
if (App.mode == App.MODE_DROPBOX || (window.location.hash != null &&
|
489
|
- window.location.hash.substring(0, 2) == '#D'))
|
|
|
490
|
- {
|
|
|
491
|
- mxscript(App.DROPBOX_URL, function()
|
|
|
492
|
- {
|
442
|
+ window.location.hash.substring(0, 2) == '#D')) {
|
|
|
443
|
+ mxscript(App.DROPBOX_URL, function () {
|
493
|
// Must load this after the dropbox SDK since they use the same namespace
|
444
|
// Must load this after the dropbox SDK since they use the same namespace
|
494
|
mxscript(App.DROPINS_URL, null, 'dropboxjs', App.DROPBOX_APPKEY, true);
|
445
|
mxscript(App.DROPINS_URL, null, 'dropboxjs', App.DROPBOX_APPKEY, true);
|
495
|
});
|
446
|
});
|
496
|
}
|
447
|
}
|
497
|
- else if (urlParams['chrome'] == '0')
|
|
|
498
|
- {
|
448
|
+ else if (urlParams['chrome'] == '0') {
|
499
|
window.DropboxClient = null;
|
449
|
window.DropboxClient = null;
|
500
|
}
|
450
|
}
|
501
|
}
|
451
|
}
|
502
|
- else
|
|
|
503
|
- {
|
452
|
+ else {
|
504
|
// Disables loading of client
|
453
|
// Disables loading of client
|
505
|
window.DropboxClient = null;
|
454
|
window.DropboxClient = null;
|
506
|
}
|
455
|
}
|
507
|
}
|
456
|
}
|
508
|
|
457
|
|
509
|
// Loads OneDrive for all browsers but IE6/IOS if not disabled or if enabled and in embed mode
|
458
|
// Loads OneDrive for all browsers but IE6/IOS if not disabled or if enabled and in embed mode
|
510
|
- if (typeof window.OneDriveClient === 'function')
|
|
|
511
|
- {
|
459
|
+ if (typeof window.OneDriveClient === 'function') {
|
512
|
if (urlParams['od'] != '0' && (navigator.userAgent == null ||
|
460
|
if (urlParams['od'] != '0' && (navigator.userAgent == null ||
|
513
|
- navigator.userAgent.indexOf('MSIE') < 0 || document.documentMode >= 10))
|
|
|
514
|
- {
|
461
|
+ navigator.userAgent.indexOf('MSIE') < 0 || document.documentMode >= 10)) {
|
515
|
// Immediately loads client
|
462
|
// Immediately loads client
|
516
|
if (App.mode == App.MODE_ONEDRIVE || (window.location.hash != null &&
|
463
|
if (App.mode == App.MODE_ONEDRIVE || (window.location.hash != null &&
|
517
|
- window.location.hash.substring(0, 2) == '#W'))
|
|
|
518
|
- {
|
464
|
+ window.location.hash.substring(0, 2) == '#W')) {
|
519
|
//Editor.oneDriveInlinePicker can be set with configuration which is done later, so load it all time
|
465
|
//Editor.oneDriveInlinePicker can be set with configuration which is done later, so load it all time
|
520
|
mxscript(App.ONEDRIVE_URL);
|
466
|
mxscript(App.ONEDRIVE_URL);
|
521
|
}
|
467
|
}
|
522
|
- else if (urlParams['chrome'] == '0')
|
|
|
523
|
- {
|
468
|
+ else if (urlParams['chrome'] == '0') {
|
524
|
window.OneDriveClient = null;
|
469
|
window.OneDriveClient = null;
|
525
|
}
|
470
|
}
|
526
|
}
|
471
|
}
|
527
|
- else
|
|
|
528
|
- {
|
472
|
+ else {
|
529
|
// Disables loading of client
|
473
|
// Disables loading of client
|
530
|
window.OneDriveClient = null;
|
474
|
window.OneDriveClient = null;
|
531
|
}
|
475
|
}
|
532
|
}
|
476
|
}
|
533
|
|
477
|
|
534
|
// Loads Trello for all browsers but < IE10 if not disabled or if enabled and in embed mode
|
478
|
// Loads Trello for all browsers but < IE10 if not disabled or if enabled and in embed mode
|
535
|
- if (typeof window.TrelloClient === 'function')
|
|
|
536
|
- {
|
479
|
+ if (typeof window.TrelloClient === 'function') {
|
537
|
if (urlParams['tr'] == '1' && isSvgBrowser && !mxClient.IS_IE11 &&
|
480
|
if (urlParams['tr'] == '1' && isSvgBrowser && !mxClient.IS_IE11 &&
|
538
|
- (document.documentMode == null || document.documentMode >= 10))
|
|
|
539
|
- {
|
481
|
+ (document.documentMode == null || document.documentMode >= 10)) {
|
540
|
// Immediately loads client
|
482
|
// Immediately loads client
|
541
|
if (App.mode == App.MODE_TRELLO || (window.location.hash != null &&
|
483
|
if (App.mode == App.MODE_TRELLO || (window.location.hash != null &&
|
542
|
- window.location.hash.substring(0, 2) == '#T'))
|
|
|
543
|
- {
|
|
|
544
|
- mxscript(App.TRELLO_JQUERY_URL, function()
|
|
|
545
|
- {
|
484
|
+ window.location.hash.substring(0, 2) == '#T')) {
|
|
|
485
|
+ mxscript(App.TRELLO_JQUERY_URL, function () {
|
546
|
mxscript(App.TRELLO_URL);
|
486
|
mxscript(App.TRELLO_URL);
|
547
|
});
|
487
|
});
|
548
|
}
|
488
|
}
|
549
|
- else if (urlParams['chrome'] == '0')
|
|
|
550
|
- {
|
489
|
+ else if (urlParams['chrome'] == '0') {
|
551
|
window.TrelloClient = null;
|
490
|
window.TrelloClient = null;
|
552
|
}
|
491
|
}
|
553
|
}
|
492
|
}
|
554
|
- else
|
|
|
555
|
- {
|
493
|
+ else {
|
556
|
// Disables loading of client
|
494
|
// Disables loading of client
|
557
|
window.TrelloClient = null;
|
495
|
window.TrelloClient = null;
|
558
|
}
|
496
|
}
|
|
@@ -565,19 +503,14 @@ App.getStoredMode = function() |
|
@@ -565,19 +503,14 @@ App.getStoredMode = function() |
565
|
/**
|
503
|
/**
|
566
|
* Clears the PWA cache.
|
504
|
* Clears the PWA cache.
|
567
|
*/
|
505
|
*/
|
568
|
-App.clearServiceWorker = function(success)
|
|
|
569
|
-{
|
|
|
570
|
- navigator.serviceWorker.getRegistrations().then(function(registrations)
|
|
|
571
|
- {
|
|
|
572
|
- if (registrations != null && registrations.length > 0)
|
|
|
573
|
- {
|
|
|
574
|
- for (var i = 0; i < registrations.length; i++)
|
|
|
575
|
- {
|
506
|
+App.clearServiceWorker = function (success) {
|
|
|
507
|
+ navigator.serviceWorker.getRegistrations().then(function (registrations) {
|
|
|
508
|
+ if (registrations != null && registrations.length > 0) {
|
|
|
509
|
+ for (var i = 0; i < registrations.length; i++) {
|
576
|
registrations[i].unregister();
|
510
|
registrations[i].unregister();
|
577
|
}
|
511
|
}
|
578
|
|
512
|
|
579
|
- if (success != null)
|
|
|
580
|
- {
|
513
|
+ if (success != null) {
|
581
|
success();
|
514
|
success();
|
582
|
}
|
515
|
}
|
583
|
}
|
516
|
}
|
|
@@ -590,19 +523,17 @@ App.clearServiceWorker = function(success) |
|
@@ -590,19 +523,17 @@ App.clearServiceWorker = function(success) |
590
|
* Optional callback is called with the app instance.
|
523
|
* Optional callback is called with the app instance.
|
591
|
*/
|
524
|
*/
|
592
|
let defHttp;
|
525
|
let defHttp;
|
593
|
-App.main = function(callback, createUi)
|
|
|
594
|
-{
|
526
|
+App.main = function (callback, createUi) {
|
595
|
|
527
|
|
596
|
Editor.configurationId = urlParams.configurationId;
|
528
|
Editor.configurationId = urlParams.configurationId;
|
597
|
const localStorageInfo = localStorage.getItem(GLOBAL_STORAGE_KEY);
|
529
|
const localStorageInfo = localStorage.getItem(GLOBAL_STORAGE_KEY);
|
598
|
// 应用启动入口时创建一个axios实例,供全局使用
|
530
|
// 应用启动入口时创建一个axios实例,供全局使用
|
599
|
defHttp = createAxios({
|
531
|
defHttp = createAxios({
|
600
|
- timeout:10*1000,
|
|
|
601
|
- baseURL:'/api',
|
532
|
+ timeout: 10 * 1000,
|
|
|
533
|
+ baseURL: '/api',
|
602
|
})
|
534
|
})
|
603
|
// Logs uncaught errors
|
535
|
// Logs uncaught errors
|
604
|
- window.onerror = function(message, url, linenumber, colno, err)
|
|
|
605
|
- {
|
536
|
+ window.onerror = function (message, url, linenumber, colno, err) {
|
606
|
EditorUi.logError('Global: ' + ((message != null) ? message : ''),
|
537
|
EditorUi.logError('Global: ' + ((message != null) ? message : ''),
|
607
|
url, linenumber, colno, err, null, true);
|
538
|
url, linenumber, colno, err, null, true);
|
608
|
};
|
539
|
};
|
|
@@ -610,9 +541,8 @@ App.main = function(callback, createUi) |
|
@@ -610,9 +541,8 @@ App.main = function(callback, createUi) |
610
|
// Blocks stand-alone mode for certain subdomains
|
541
|
// Blocks stand-alone mode for certain subdomains
|
611
|
if (window.top == window.self &&
|
542
|
if (window.top == window.self &&
|
612
|
(/ac\.draw\.io$/.test(window.location.hostname) ||
|
543
|
(/ac\.draw\.io$/.test(window.location.hostname) ||
|
613
|
- /ac-ent\.draw\.io$/.test(window.location.hostname) ||
|
|
|
614
|
- /aj\.draw\.io$/.test(window.location.hostname)))
|
|
|
615
|
- {
|
544
|
+ /ac-ent\.draw\.io$/.test(window.location.hostname) ||
|
|
|
545
|
+ /aj\.draw\.io$/.test(window.location.hostname))) {
|
616
|
document.body.innerHTML = '<div style="margin-top:10%;text-align:center;">Stand-alone mode not allowed for this domain.</div>';
|
546
|
document.body.innerHTML = '<div style="margin-top:10%;text-align:center;">Stand-alone mode not allowed for this domain.</div>';
|
617
|
|
547
|
|
618
|
return;
|
548
|
return;
|
|
@@ -632,71 +562,57 @@ App.main = function(callback, createUi) |
|
@@ -632,71 +562,57 @@ App.main = function(callback, createUi) |
632
|
|
562
|
|
633
|
// Redirects to the latest AWS icons
|
563
|
// Redirects to the latest AWS icons
|
634
|
if (document.referrer != null && urlParams['libs'] == 'aws3' &&
|
564
|
if (document.referrer != null && urlParams['libs'] == 'aws3' &&
|
635
|
- document.referrer.substring(0, 42) == 'https://aws.amazon.com/architecture/icons/')
|
|
|
636
|
- {
|
565
|
+ document.referrer.substring(0, 42) == 'https://aws.amazon.com/architecture/icons/') {
|
637
|
urlParams['libs'] = 'aws4';
|
566
|
urlParams['libs'] = 'aws4';
|
638
|
}
|
567
|
}
|
639
|
|
568
|
|
640
|
- if (window.mxscript != null)
|
|
|
641
|
- {
|
569
|
+ if (window.mxscript != null) {
|
642
|
// Checks for script content changes to avoid CSP errors in production
|
570
|
// Checks for script content changes to avoid CSP errors in production
|
643
|
if (urlParams['dev'] == '1' && !mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp &&
|
571
|
if (urlParams['dev'] == '1' && !mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp &&
|
644
|
- CryptoJS != null && App.mode != App.MODE_DROPBOX && App.mode != App.MODE_TRELLO)
|
|
|
645
|
- {
|
572
|
+ CryptoJS != null && App.mode != App.MODE_DROPBOX && App.mode != App.MODE_TRELLO) {
|
646
|
var scripts = document.getElementsByTagName('script');
|
573
|
var scripts = document.getElementsByTagName('script');
|
647
|
|
574
|
|
648
|
// Checks bootstrap script
|
575
|
// Checks bootstrap script
|
649
|
- if (scripts != null && scripts.length > 0)
|
|
|
650
|
- {
|
576
|
+ if (scripts != null && scripts.length > 0) {
|
651
|
var content = mxUtils.getTextContent(scripts[0]);
|
577
|
var content = mxUtils.getTextContent(scripts[0]);
|
652
|
|
578
|
|
653
|
//开发模式下检查MD5脚本
|
579
|
//开发模式下检查MD5脚本
|
654
|
- if (CryptoJS.MD5(content).toString() != 'd41d8cd98f00b204e9800998ecf8427e')
|
|
|
655
|
- {
|
580
|
+ if (CryptoJS.MD5(content).toString() != 'd41d8cd98f00b204e9800998ecf8427e') {
|
656
|
console.log('Change bootstrap script MD5 in the previous line:', CryptoJS.MD5(content).toString());
|
581
|
console.log('Change bootstrap script MD5 in the previous line:', CryptoJS.MD5(content).toString());
|
657
|
alert('[Dev] Bootstrap script change requires update of CSP');
|
582
|
alert('[Dev] Bootstrap script change requires update of CSP');
|
658
|
}
|
583
|
}
|
659
|
}
|
584
|
}
|
660
|
|
585
|
|
661
|
// Checks main script
|
586
|
// Checks main script
|
662
|
- if (scripts != null && scripts.length > 1)
|
|
|
663
|
- {
|
587
|
+ if (scripts != null && scripts.length > 1) {
|
664
|
var content = mxUtils.getTextContent(scripts[scripts.length - 1]);
|
588
|
var content = mxUtils.getTextContent(scripts[scripts.length - 1]);
|
665
|
|
589
|
|
666
|
// if (CryptoJS.MD5(content).toString() != 'd53805dd6f0bbba2da4966491ca0a505')
|
590
|
// if (CryptoJS.MD5(content).toString() != 'd53805dd6f0bbba2da4966491ca0a505')
|
667
|
- if (CryptoJS.MD5(content).toString() != 'c4cfc8a77f5990a4d86c0fbc4443328b')
|
|
|
668
|
- {
|
591
|
+ if (CryptoJS.MD5(content).toString() != 'c4cfc8a77f5990a4d86c0fbc4443328b') {
|
669
|
console.log('Change main script MD5 in the previous line:', CryptoJS.MD5(content).toString());
|
592
|
console.log('Change main script MD5 in the previous line:', CryptoJS.MD5(content).toString());
|
670
|
alert('[Dev] Main script change requires update of CSP');
|
593
|
alert('[Dev] Main script change requires update of CSP');
|
671
|
}
|
594
|
}
|
672
|
}
|
595
|
}
|
673
|
}
|
596
|
}
|
674
|
|
597
|
|
675
|
- try
|
|
|
676
|
- {
|
598
|
+ try {
|
677
|
// Removes PWA cache on www.draw.io to force use of new domain via redirect
|
599
|
// Removes PWA cache on www.draw.io to force use of new domain via redirect
|
678
|
if (Editor.enableServiceWorker && (urlParams['offline'] == '0' ||
|
600
|
if (Editor.enableServiceWorker && (urlParams['offline'] == '0' ||
|
679
|
/www\.draw\.io$/.test(window.location.hostname) ||
|
601
|
/www\.draw\.io$/.test(window.location.hostname) ||
|
680
|
- (urlParams['offline'] != '1' && urlParams['dev'] == '1')))
|
|
|
681
|
- {
|
|
|
682
|
- App.clearServiceWorker(function()
|
|
|
683
|
- {
|
|
|
684
|
- if (urlParams['offline'] == '0')
|
|
|
685
|
- {
|
602
|
+ (urlParams['offline'] != '1' && urlParams['dev'] == '1'))) {
|
|
|
603
|
+ App.clearServiceWorker(function () {
|
|
|
604
|
+ if (urlParams['offline'] == '0') {
|
686
|
alert('Cache cleared');
|
605
|
alert('Cache cleared');
|
687
|
}
|
606
|
}
|
688
|
});
|
607
|
});
|
689
|
}
|
608
|
}
|
690
|
- else if (Editor.enableServiceWorker)
|
|
|
691
|
- {
|
609
|
+ else if (Editor.enableServiceWorker) {
|
692
|
// Runs as progressive web app if service workers are supported
|
610
|
// Runs as progressive web app if service workers are supported
|
693
|
navigator.serviceWorker.register('/service-worker.js');
|
611
|
navigator.serviceWorker.register('/service-worker.js');
|
694
|
}
|
612
|
}
|
695
|
}
|
613
|
}
|
696
|
- catch (e)
|
|
|
697
|
- {
|
|
|
698
|
- if (window.console != null)
|
|
|
699
|
- {
|
614
|
+ catch (e) {
|
|
|
615
|
+ if (window.console != null) {
|
700
|
console.error(e);
|
616
|
console.error(e);
|
701
|
}
|
617
|
}
|
702
|
}
|
618
|
}
|
|
@@ -704,41 +620,34 @@ App.main = function(callback, createUi) |
|
@@ -704,41 +620,34 @@ App.main = function(callback, createUi) |
704
|
// Loads Pusher API
|
620
|
// Loads Pusher API
|
705
|
if (('ArrayBuffer' in window) && !mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp &&
|
621
|
if (('ArrayBuffer' in window) && !mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp &&
|
706
|
DrawioFile.SYNC == 'auto' && (urlParams['embed'] != '1' ||
|
622
|
DrawioFile.SYNC == 'auto' && (urlParams['embed'] != '1' ||
|
707
|
- urlParams['embedRT'] == '1') && urlParams['local'] != '1' &&
|
623
|
+ urlParams['embedRT'] == '1') && urlParams['local'] != '1' &&
|
708
|
(urlParams['chrome'] != '0' || urlParams['rt'] == '1') &&
|
624
|
(urlParams['chrome'] != '0' || urlParams['rt'] == '1') &&
|
709
|
- urlParams['stealth'] != '1' && urlParams['offline'] != '1')
|
|
|
710
|
- {
|
625
|
+ urlParams['stealth'] != '1' && urlParams['offline'] != '1') {
|
711
|
// TODO: Check if async loading is fast enough
|
626
|
// TODO: Check if async loading is fast enough
|
712
|
mxscript(App.PUSHER_URL);
|
627
|
mxscript(App.PUSHER_URL);
|
713
|
|
628
|
|
714
|
- if (urlParams['fast-sync'] == '1')
|
|
|
715
|
- {
|
629
|
+ if (urlParams['fast-sync'] == '1') {
|
716
|
mxscript(App.SIMPLE_PEER_URL);
|
630
|
mxscript(App.SIMPLE_PEER_URL);
|
717
|
}
|
631
|
}
|
718
|
}
|
632
|
}
|
719
|
|
633
|
|
720
|
// Loads plugins
|
634
|
// Loads plugins
|
721
|
- if (urlParams['plugins'] != '0' && urlParams['offline'] != '1')
|
|
|
722
|
- {
|
635
|
+ if (urlParams['plugins'] != '0' && urlParams['offline'] != '1') {
|
723
|
// mxSettings is not yet initialized in configure mode, redirect parameter
|
636
|
// mxSettings is not yet initialized in configure mode, redirect parameter
|
724
|
// to p URL parameter in caller for plugins in embed mode
|
637
|
// to p URL parameter in caller for plugins in embed mode
|
725
|
var plugins = (mxSettings.settings != null) ? mxSettings.getPlugins() : null;
|
638
|
var plugins = (mxSettings.settings != null) ? mxSettings.getPlugins() : null;
|
726
|
|
639
|
|
727
|
// Configured plugins in embed mode with configure=1 URL should be loaded so we
|
640
|
// Configured plugins in embed mode with configure=1 URL should be loaded so we
|
728
|
// look ahead here and parse the config to fetch the list of custom plugins
|
641
|
// look ahead here and parse the config to fetch the list of custom plugins
|
729
|
- if (mxSettings.settings == null && isLocalStorage && typeof(JSON) !== 'undefined')
|
|
|
730
|
- {
|
|
|
731
|
- try
|
|
|
732
|
- {
|
642
|
+ if (mxSettings.settings == null && isLocalStorage && typeof (JSON) !== 'undefined') {
|
|
|
643
|
+ try {
|
733
|
var temp = JSON.parse(localStorage.getItem(mxSettings.key));
|
644
|
var temp = JSON.parse(localStorage.getItem(mxSettings.key));
|
734
|
|
645
|
|
735
|
- if (temp != null)
|
|
|
736
|
- {
|
646
|
+ if (temp != null) {
|
737
|
plugins = temp.plugins;
|
647
|
plugins = temp.plugins;
|
738
|
}
|
648
|
}
|
739
|
}
|
649
|
}
|
740
|
- catch (e)
|
|
|
741
|
- {
|
650
|
+ catch (e) {
|
742
|
// ignore
|
651
|
// ignore
|
743
|
}
|
652
|
}
|
744
|
}
|
653
|
}
|
|
@@ -746,49 +655,39 @@ App.main = function(callback, createUi) |
|
@@ -746,49 +655,39 @@ App.main = function(callback, createUi) |
746
|
var temp = urlParams['p'];
|
655
|
var temp = urlParams['p'];
|
747
|
App.initPluginCallback();
|
656
|
App.initPluginCallback();
|
748
|
|
657
|
|
749
|
- if (temp != null)
|
|
|
750
|
- {
|
658
|
+ if (temp != null) {
|
751
|
// Mapping from key to URL in App.plugins
|
659
|
// Mapping from key to URL in App.plugins
|
752
|
App.loadPlugins(temp.split(';'));
|
660
|
App.loadPlugins(temp.split(';'));
|
753
|
}
|
661
|
}
|
754
|
|
662
|
|
755
|
- if (plugins != null && plugins.length > 0 && urlParams['plugins'] != '0')
|
|
|
756
|
- {
|
663
|
+ if (plugins != null && plugins.length > 0 && urlParams['plugins'] != '0') {
|
757
|
// Loading plugins inside the asynchronous block below stops the page from loading so a
|
664
|
// Loading plugins inside the asynchronous block below stops the page from loading so a
|
758
|
// hardcoded message for the warning dialog is used since the resources are loadd below
|
665
|
// hardcoded message for the warning dialog is used since the resources are loadd below
|
759
|
var warning = 'The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n';
|
666
|
var warning = 'The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n';
|
760
|
var tmp = window.location.protocol + '//' + window.location.host;
|
667
|
var tmp = window.location.protocol + '//' + window.location.host;
|
761
|
var local = true;
|
668
|
var local = true;
|
762
|
|
669
|
|
763
|
- for (var i = 0; i < plugins.length && local; i++)
|
|
|
764
|
- {
|
|
|
765
|
- if (plugins[i].charAt(0) != '/' && plugins[i].substring(0, tmp.length) != tmp)
|
|
|
766
|
- {
|
670
|
+ for (var i = 0; i < plugins.length && local; i++) {
|
|
|
671
|
+ if (plugins[i].charAt(0) != '/' && plugins[i].substring(0, tmp.length) != tmp) {
|
767
|
local = false;
|
672
|
local = false;
|
768
|
}
|
673
|
}
|
769
|
}
|
674
|
}
|
770
|
|
675
|
|
771
|
- if (local || mxUtils.confirm(mxResources.replacePlaceholders(warning, [plugins.join('\n')]).replace(/\\n/g, '\n')))
|
|
|
772
|
- {
|
|
|
773
|
- for (var i = 0; i < plugins.length; i++)
|
|
|
774
|
- {
|
|
|
775
|
- try
|
|
|
776
|
- {
|
|
|
777
|
- if (App.pluginsLoaded[plugins[i]] == null)
|
|
|
778
|
- {
|
676
|
+ if (local || mxUtils.confirm(mxResources.replacePlaceholders(warning, [plugins.join('\n')]).replace(/\\n/g, '\n'))) {
|
|
|
677
|
+ for (var i = 0; i < plugins.length; i++) {
|
|
|
678
|
+ try {
|
|
|
679
|
+ if (App.pluginsLoaded[plugins[i]] == null) {
|
779
|
App.pluginsLoaded[plugins[i]] = true;
|
680
|
App.pluginsLoaded[plugins[i]] = true;
|
780
|
App.embedModePluginsCount++;
|
681
|
App.embedModePluginsCount++;
|
781
|
|
682
|
|
782
|
- if (plugins[i].charAt(0) == '/')
|
|
|
783
|
- {
|
683
|
+ if (plugins[i].charAt(0) == '/') {
|
784
|
plugins[i] = PLUGINS_BASE_PATH + plugins[i];
|
684
|
plugins[i] = PLUGINS_BASE_PATH + plugins[i];
|
785
|
}
|
685
|
}
|
786
|
|
686
|
|
787
|
mxscript(plugins[i]);
|
687
|
mxscript(plugins[i]);
|
788
|
}
|
688
|
}
|
789
|
}
|
689
|
}
|
790
|
- catch (e)
|
|
|
791
|
- {
|
690
|
+ catch (e) {
|
792
|
// ignore
|
691
|
// ignore
|
793
|
}
|
692
|
}
|
794
|
}
|
693
|
}
|
|
@@ -800,14 +699,12 @@ App.main = function(callback, createUi) |
|
@@ -800,14 +699,12 @@ App.main = function(callback, createUi) |
800
|
// Special case: Cannot load in asynchronous code below
|
699
|
// Special case: Cannot load in asynchronous code below
|
801
|
if (typeof window.DriveClient === 'function' &&
|
700
|
if (typeof window.DriveClient === 'function' &&
|
802
|
(typeof gapi === 'undefined' && (((urlParams['embed'] != '1' && urlParams['gapi'] != '0') ||
|
701
|
(typeof gapi === 'undefined' && (((urlParams['embed'] != '1' && urlParams['gapi'] != '0') ||
|
803
|
- (urlParams['embed'] == '1' && urlParams['gapi'] == '1')) && isSvgBrowser &&
|
|
|
804
|
- isLocalStorage && (document.documentMode == null || document.documentMode >= 10))))
|
|
|
805
|
- {
|
702
|
+ (urlParams['embed'] == '1' && urlParams['gapi'] == '1')) && isSvgBrowser &&
|
|
|
703
|
+ isLocalStorage && (document.documentMode == null || document.documentMode >= 10)))) {
|
806
|
mxscript('https://apis.google.com/js/api.js?onload=DrawGapiClientCallback', null, null, null, mxClient.IS_SVG);
|
704
|
mxscript('https://apis.google.com/js/api.js?onload=DrawGapiClientCallback', null, null, null, mxClient.IS_SVG);
|
807
|
}
|
705
|
}
|
808
|
// Disables client
|
706
|
// Disables client
|
809
|
- else if (typeof window.gapi === 'undefined')
|
|
|
810
|
- {
|
707
|
+ else if (typeof window.gapi === 'undefined') {
|
811
|
window.DriveClient = null;
|
708
|
window.DriveClient = null;
|
812
|
}
|
709
|
}
|
813
|
}
|
710
|
}
|
|
@@ -815,44 +712,34 @@ App.main = function(callback, createUi) |
|
@@ -815,44 +712,34 @@ App.main = function(callback, createUi) |
815
|
/**
|
712
|
/**
|
816
|
* Asynchronous MathJax extension.
|
713
|
* Asynchronous MathJax extension.
|
817
|
*/
|
714
|
*/
|
818
|
- if (urlParams['math'] != '0')
|
|
|
819
|
- {
|
715
|
+ if (urlParams['math'] != '0') {
|
820
|
Editor.initMath();
|
716
|
Editor.initMath();
|
821
|
}
|
717
|
}
|
822
|
|
718
|
|
823
|
- function doLoad(bundle)
|
|
|
824
|
- {
|
719
|
+ function doLoad(bundle) {
|
825
|
// Prefetches asynchronous requests so that below code runs synchronous
|
720
|
// Prefetches asynchronous requests so that below code runs synchronous
|
826
|
// Loading the correct bundle (one file) via the fallback system in mxResources. The stylesheet
|
721
|
// Loading the correct bundle (one file) via the fallback system in mxResources. The stylesheet
|
827
|
// is compiled into JS in the build process and is only needed for local development.
|
722
|
// is compiled into JS in the build process and is only needed for local development.
|
828
|
mxUtils.getAll((urlParams['dev'] != '1') ? [bundle] : [bundle,
|
723
|
mxUtils.getAll((urlParams['dev'] != '1') ? [bundle] : [bundle,
|
829
|
- STYLE_PATH + '/default.xml'], function(xhr)
|
|
|
830
|
- {
|
724
|
+ STYLE_PATH + '/default.xml'], function (xhr) {
|
831
|
// Adds bundle text to resources
|
725
|
// Adds bundle text to resources
|
832
|
mxResources.parse(xhr[0].getText());
|
726
|
mxResources.parse(xhr[0].getText());
|
833
|
|
727
|
|
834
|
// Configuration mode
|
728
|
// Configuration mode
|
835
|
if (isLocalStorage && localStorage != null && window.location.hash != null &&
|
729
|
if (isLocalStorage && localStorage != null && window.location.hash != null &&
|
836
|
- window.location.hash.substring(0, 9) == '#_CONFIG_')
|
|
|
837
|
- {
|
|
|
838
|
- try
|
|
|
839
|
- {
|
730
|
+ window.location.hash.substring(0, 9) == '#_CONFIG_') {
|
|
|
731
|
+ try {
|
840
|
var trustedPlugins = {};
|
732
|
var trustedPlugins = {};
|
841
|
|
733
|
|
842
|
- for (var key in App.pluginRegistry)
|
|
|
843
|
- {
|
734
|
+ for (var key in App.pluginRegistry) {
|
844
|
trustedPlugins[App.pluginRegistry[key]] = true;
|
735
|
trustedPlugins[App.pluginRegistry[key]] = true;
|
845
|
}
|
736
|
}
|
846
|
|
737
|
|
847
|
// Only allows trusted plugins
|
738
|
// Only allows trusted plugins
|
848
|
- function checkPlugins(plugins)
|
|
|
849
|
- {
|
|
|
850
|
- if (plugins != null)
|
|
|
851
|
- {
|
|
|
852
|
- for (var i = 0; i < plugins.length; i++)
|
|
|
853
|
- {
|
|
|
854
|
- if (!trustedPlugins[plugins[i]])
|
|
|
855
|
- {
|
739
|
+ function checkPlugins(plugins) {
|
|
|
740
|
+ if (plugins != null) {
|
|
|
741
|
+ for (var i = 0; i < plugins.length; i++) {
|
|
|
742
|
+ if (!trustedPlugins[plugins[i]]) {
|
856
|
throw new Error(mxResources.get('invalidInput') + ' "' + plugins[i]) + '"';
|
743
|
throw new Error(mxResources.get('invalidInput') + ' "' + plugins[i]) + '"';
|
857
|
}
|
744
|
}
|
858
|
}
|
745
|
}
|
|
@@ -863,43 +750,35 @@ App.main = function(callback, createUi) |
|
@@ -863,43 +750,35 @@ App.main = function(callback, createUi) |
863
|
|
750
|
|
864
|
var value = JSON.parse(Graph.decompress(window.location.hash.substring(9)));
|
751
|
var value = JSON.parse(Graph.decompress(window.location.hash.substring(9)));
|
865
|
|
752
|
|
866
|
- if (value != null && checkPlugins(value.plugins))
|
|
|
867
|
- {
|
753
|
+ if (value != null && checkPlugins(value.plugins)) {
|
868
|
EditorUi.debug('Setting configuration', JSON.stringify(value));
|
754
|
EditorUi.debug('Setting configuration', JSON.stringify(value));
|
869
|
|
755
|
|
870
|
- if (value.merge != null)
|
|
|
871
|
- {
|
756
|
+ if (value.merge != null) {
|
872
|
var temp = localStorage.getItem(Editor.configurationKey);
|
757
|
var temp = localStorage.getItem(Editor.configurationKey);
|
873
|
|
758
|
|
874
|
- if (temp != null)
|
|
|
875
|
- {
|
759
|
+ if (temp != null) {
|
876
|
|
760
|
|
877
|
- try
|
|
|
878
|
- {
|
761
|
+ try {
|
879
|
var config = JSON.parse(temp);
|
762
|
var config = JSON.parse(temp);
|
880
|
|
763
|
|
881
|
- for (var key in value.merge)
|
|
|
882
|
- {
|
764
|
+ for (var key in value.merge) {
|
883
|
config[key] = value.merge[key];
|
765
|
config[key] = value.merge[key];
|
884
|
}
|
766
|
}
|
885
|
|
767
|
|
886
|
value = config;
|
768
|
value = config;
|
887
|
}
|
769
|
}
|
888
|
- catch (e)
|
|
|
889
|
- {
|
770
|
+ catch (e) {
|
890
|
window.location.hash = '';
|
771
|
window.location.hash = '';
|
891
|
alert(e);
|
772
|
alert(e);
|
892
|
}
|
773
|
}
|
893
|
}
|
774
|
}
|
894
|
- else
|
|
|
895
|
- {
|
775
|
+ else {
|
896
|
value = value.merge;
|
776
|
value = value.merge;
|
897
|
}
|
777
|
}
|
898
|
}
|
778
|
}
|
899
|
|
779
|
|
900
|
if (confirm(mxResources.get('configLinkWarn')) &&
|
780
|
if (confirm(mxResources.get('configLinkWarn')) &&
|
901
|
- confirm(mxResources.get('configLinkConfirm')))
|
|
|
902
|
- {
|
781
|
+ confirm(mxResources.get('configLinkConfirm'))) {
|
903
|
localStorage.setItem(Editor.configurationKey, JSON.stringify(value));
|
782
|
localStorage.setItem(Editor.configurationKey, JSON.stringify(value));
|
904
|
window.location.hash = '';
|
783
|
window.location.hash = '';
|
905
|
window.location.reload();
|
784
|
window.location.reload();
|
|
@@ -908,65 +787,55 @@ App.main = function(callback, createUi) |
|
@@ -908,65 +787,55 @@ App.main = function(callback, createUi) |
908
|
|
787
|
|
909
|
window.location.hash = '';
|
788
|
window.location.hash = '';
|
910
|
}
|
789
|
}
|
911
|
- catch (e)
|
|
|
912
|
- {
|
790
|
+ catch (e) {
|
913
|
window.location.hash = '';
|
791
|
window.location.hash = '';
|
914
|
alert(e);
|
792
|
alert(e);
|
915
|
}
|
793
|
}
|
916
|
}
|
794
|
}
|
917
|
|
795
|
|
918
|
// Prepares themes with mapping from old default-style to old XML file
|
796
|
// Prepares themes with mapping from old default-style to old XML file
|
919
|
- if (xhr.length > 1)
|
|
|
920
|
- {
|
797
|
+ if (xhr.length > 1) {
|
921
|
Graph.prototype.defaultThemes['default-style2'] = xhr[1].getDocumentElement();
|
798
|
Graph.prototype.defaultThemes['default-style2'] = xhr[1].getDocumentElement();
|
922
|
- Graph.prototype.defaultThemes['darkTheme'] = xhr[1].getDocumentElement();
|
799
|
+ Graph.prototype.defaultThemes['darkTheme'] = xhr[1].getDocumentElement();
|
923
|
}
|
800
|
}
|
924
|
|
801
|
|
925
|
// Main
|
802
|
// Main
|
926
|
- function realMain()
|
|
|
927
|
- {
|
803
|
+ function realMain() {
|
928
|
var ui = (createUi != null) ? createUi() : new App(new Editor(
|
804
|
var ui = (createUi != null) ? createUi() : new App(new Editor(
|
929
|
- urlParams['chrome'] == '0' || uiTheme == 'min',
|
|
|
930
|
- null, null, null, urlParams['chrome'] != '0'));
|
805
|
+ urlParams['chrome'] == '0' || uiTheme == 'min',
|
|
|
806
|
+ null, null, null, urlParams['chrome'] != '0'));
|
931
|
|
807
|
|
932
|
- if (window.mxscript != null)
|
|
|
933
|
- {
|
808
|
+ if (window.mxscript != null) {
|
934
|
// Loads dropbox for all browsers but IE8 and below (no CORS) if not disabled or if enabled and in embed mode
|
809
|
// Loads dropbox for all browsers but IE8 and below (no CORS) if not disabled or if enabled and in embed mode
|
935
|
// KNOWN: Picker does not work in IE11 (https://dropbox.zendesk.com/requests/1650781)
|
810
|
// KNOWN: Picker does not work in IE11 (https://dropbox.zendesk.com/requests/1650781)
|
936
|
if (typeof window.DropboxClient === 'function' &&
|
811
|
if (typeof window.DropboxClient === 'function' &&
|
937
|
(window.Dropbox == null && window.DrawDropboxClientCallback != null &&
|
812
|
(window.Dropbox == null && window.DrawDropboxClientCallback != null &&
|
938
|
- (((urlParams['embed'] != '1' && urlParams['db'] != '0') ||
|
|
|
939
|
- (urlParams['embed'] == '1' && urlParams['db'] == '1')) &&
|
|
|
940
|
- isSvgBrowser && (document.documentMode == null || document.documentMode > 9))))
|
|
|
941
|
- {
|
|
|
942
|
- mxscript(App.DROPBOX_URL, function()
|
|
|
943
|
- {
|
813
|
+ (((urlParams['embed'] != '1' && urlParams['db'] != '0') ||
|
|
|
814
|
+ (urlParams['embed'] == '1' && urlParams['db'] == '1')) &&
|
|
|
815
|
+ isSvgBrowser && (document.documentMode == null || document.documentMode > 9)))) {
|
|
|
816
|
+ mxscript(App.DROPBOX_URL, function () {
|
944
|
// Must load this after the dropbox SDK since they use the same namespace
|
817
|
// Must load this after the dropbox SDK since they use the same namespace
|
945
|
- mxscript(App.DROPINS_URL, function()
|
|
|
946
|
- {
|
818
|
+ mxscript(App.DROPINS_URL, function () {
|
947
|
DrawDropboxClientCallback();
|
819
|
DrawDropboxClientCallback();
|
948
|
}, 'dropboxjs', App.DROPBOX_APPKEY);
|
820
|
}, 'dropboxjs', App.DROPBOX_APPKEY);
|
949
|
});
|
821
|
});
|
950
|
}
|
822
|
}
|
951
|
// Disables client
|
823
|
// Disables client
|
952
|
- else if (typeof window.Dropbox === 'undefined' || typeof window.Dropbox.choose === 'undefined')
|
|
|
953
|
- {
|
824
|
+ else if (typeof window.Dropbox === 'undefined' || typeof window.Dropbox.choose === 'undefined') {
|
954
|
window.DropboxClient = null;
|
825
|
window.DropboxClient = null;
|
955
|
}
|
826
|
}
|
956
|
|
827
|
|
957
|
// Loads OneDrive for all browsers but IE6/IOS if not disabled or if enabled and in embed mode
|
828
|
// Loads OneDrive for all browsers but IE6/IOS if not disabled or if enabled and in embed mode
|
958
|
if (typeof window.OneDriveClient === 'function' &&
|
829
|
if (typeof window.OneDriveClient === 'function' &&
|
959
|
(typeof OneDrive === 'undefined' && window.DrawOneDriveClientCallback != null &&
|
830
|
(typeof OneDrive === 'undefined' && window.DrawOneDriveClientCallback != null &&
|
960
|
- (((urlParams['embed'] != '1' && urlParams['od'] != '0') || (urlParams['embed'] == '1' &&
|
|
|
961
|
- urlParams['od'] == '1')) && (navigator.userAgent == null ||
|
|
|
962
|
- navigator.userAgent.indexOf('MSIE') < 0 || document.documentMode >= 10))))
|
|
|
963
|
- {
|
831
|
+ (((urlParams['embed'] != '1' && urlParams['od'] != '0') || (urlParams['embed'] == '1' &&
|
|
|
832
|
+ urlParams['od'] == '1')) && (navigator.userAgent == null ||
|
|
|
833
|
+ navigator.userAgent.indexOf('MSIE') < 0 || document.documentMode >= 10)))) {
|
964
|
//Editor.oneDriveInlinePicker can be set with configuration which is done later, so load it all time
|
834
|
//Editor.oneDriveInlinePicker can be set with configuration which is done later, so load it all time
|
965
|
mxscript(App.ONEDRIVE_URL, window.DrawOneDriveClientCallback);
|
835
|
mxscript(App.ONEDRIVE_URL, window.DrawOneDriveClientCallback);
|
966
|
}
|
836
|
}
|
967
|
// Disables client
|
837
|
// Disables client
|
968
|
- else if (typeof window.OneDrive === 'undefined')
|
|
|
969
|
- {
|
838
|
+ else if (typeof window.OneDrive === 'undefined') {
|
970
|
window.OneDriveClient = null;
|
839
|
window.OneDriveClient = null;
|
971
|
}
|
840
|
}
|
972
|
|
841
|
|
|
@@ -974,39 +843,32 @@ App.main = function(callback, createUi) |
|
@@ -974,39 +843,32 @@ App.main = function(callback, createUi) |
974
|
if (typeof window.TrelloClient === 'function' && !mxClient.IS_IE11 &&
|
843
|
if (typeof window.TrelloClient === 'function' && !mxClient.IS_IE11 &&
|
975
|
typeof window.Trello === 'undefined' && window.DrawTrelloClientCallback != null &&
|
844
|
typeof window.Trello === 'undefined' && window.DrawTrelloClientCallback != null &&
|
976
|
urlParams['tr'] == '1' && (navigator.userAgent == null ||
|
845
|
urlParams['tr'] == '1' && (navigator.userAgent == null ||
|
977
|
- navigator.userAgent.indexOf('MSIE') < 0 || document.documentMode >= 10))
|
|
|
978
|
- {
|
|
|
979
|
- mxscript(App.TRELLO_JQUERY_URL, function()
|
|
|
980
|
- {
|
846
|
+ navigator.userAgent.indexOf('MSIE') < 0 || document.documentMode >= 10)) {
|
|
|
847
|
+ mxscript(App.TRELLO_JQUERY_URL, function () {
|
981
|
// Must load this after the dropbox SDK since they use the same namespace
|
848
|
// Must load this after the dropbox SDK since they use the same namespace
|
982
|
- mxscript(App.TRELLO_URL, function()
|
|
|
983
|
- {
|
849
|
+ mxscript(App.TRELLO_URL, function () {
|
984
|
DrawTrelloClientCallback();
|
850
|
DrawTrelloClientCallback();
|
985
|
});
|
851
|
});
|
986
|
});
|
852
|
});
|
987
|
}
|
853
|
}
|
988
|
// Disables client
|
854
|
// Disables client
|
989
|
- else if (typeof window.Trello === 'undefined')
|
|
|
990
|
- {
|
855
|
+ else if (typeof window.Trello === 'undefined') {
|
991
|
window.TrelloClient = null;
|
856
|
window.TrelloClient = null;
|
992
|
}
|
857
|
}
|
993
|
|
858
|
|
994
|
}
|
859
|
}
|
995
|
|
860
|
|
996
|
- if (callback != null)
|
|
|
997
|
- {
|
861
|
+ if (callback != null) {
|
998
|
callback(ui);
|
862
|
callback(ui);
|
999
|
}
|
863
|
}
|
1000
|
|
864
|
|
1001
|
/**
|
865
|
/**
|
1002
|
* For developers only
|
866
|
* For developers only
|
1003
|
*/
|
867
|
*/
|
1004
|
- if (urlParams['chrome'] != '0' && urlParams['test'] == '1')
|
|
|
1005
|
- {
|
868
|
+ if (urlParams['chrome'] != '0' && urlParams['test'] == '1') {
|
1006
|
EditorUi.debug('App.start', [ui, (new Date().getTime() - t0.getTime()) + 'ms']);
|
869
|
EditorUi.debug('App.start', [ui, (new Date().getTime() - t0.getTime()) + 'ms']);
|
1007
|
|
870
|
|
1008
|
- if (urlParams['export'] != null)
|
|
|
1009
|
- {
|
871
|
+ if (urlParams['export'] != null) {
|
1010
|
EditorUi.debug('Export:', EXPORT_URL);
|
872
|
EditorUi.debug('Export:', EXPORT_URL);
|
1011
|
}
|
873
|
}
|
1012
|
}
|
874
|
}
|
|
@@ -1016,8 +878,7 @@ App.main = function(callback, createUi) |
|
@@ -1016,8 +878,7 @@ App.main = function(callback, createUi) |
1016
|
{
|
878
|
{
|
1017
|
realMain();
|
879
|
realMain();
|
1018
|
}
|
880
|
}
|
1019
|
- else
|
|
|
1020
|
- {
|
881
|
+ else {
|
1021
|
mxStencilRegistry.allowEval = false;
|
882
|
mxStencilRegistry.allowEval = false;
|
1022
|
let loadScriptList = [
|
883
|
let loadScriptList = [
|
1023
|
'js/shapes-14-6-5.min.js',
|
884
|
'js/shapes-14-6-5.min.js',
|
|
@@ -1036,85 +897,68 @@ App.main = function(callback, createUi) |
|
@@ -1036,85 +897,68 @@ App.main = function(callback, createUi) |
1036
|
// const extensionsMinSrc = 'js/extensions.min.js'
|
897
|
// const extensionsMinSrc = 'js/extensions.min.js'
|
1037
|
App.loadScripts(loadScriptList, realMain);
|
898
|
App.loadScripts(loadScriptList, realMain);
|
1038
|
}
|
899
|
}
|
1039
|
- }, function(xhr)
|
|
|
1040
|
- {
|
900
|
+ }, function (xhr) {
|
1041
|
var st = document.getElementById('geStatus');
|
901
|
var st = document.getElementById('geStatus');
|
1042
|
|
902
|
|
1043
|
- if (st != null)
|
|
|
1044
|
- {
|
903
|
+ if (st != null) {
|
1045
|
st.innerHTML = 'Error loading page. <a>Please try refreshing.</a>';
|
904
|
st.innerHTML = 'Error loading page. <a>Please try refreshing.</a>';
|
1046
|
|
905
|
|
1047
|
// Tries reload with default resources in case any language resources were not available
|
906
|
// Tries reload with default resources in case any language resources were not available
|
1048
|
- st.getElementsByTagName('a')[0].onclick = function()
|
|
|
1049
|
- {
|
907
|
+ st.getElementsByTagName('a')[0].onclick = function () {
|
1050
|
mxLanguage = 'en';
|
908
|
mxLanguage = 'en';
|
1051
|
doLoad(mxResources.getDefaultBundle(RESOURCE_BASE, mxLanguage) ||
|
909
|
doLoad(mxResources.getDefaultBundle(RESOURCE_BASE, mxLanguage) ||
|
1052
|
- mxResources.getSpecialBundle(RESOURCE_BASE, mxLanguage));
|
910
|
+ mxResources.getSpecialBundle(RESOURCE_BASE, mxLanguage));
|
1053
|
};
|
911
|
};
|
1054
|
}
|
912
|
}
|
1055
|
});
|
913
|
});
|
1056
|
};
|
914
|
};
|
1057
|
|
915
|
|
1058
|
- function doMain()
|
|
|
1059
|
- {
|
916
|
+ function doMain() {
|
1060
|
// Optional override for autosaveDelay and defaultEdgeLength
|
917
|
// Optional override for autosaveDelay and defaultEdgeLength
|
1061
|
- try
|
|
|
1062
|
- {
|
|
|
1063
|
- if (mxSettings.settings != null)
|
|
|
1064
|
- {
|
918
|
+ try {
|
|
|
919
|
+ if (mxSettings.settings != null) {
|
1065
|
document.body.style.backgroundColor = (uiTheme == 'dark' ||
|
920
|
document.body.style.backgroundColor = (uiTheme == 'dark' ||
|
1066
|
mxSettings.settings.darkMode) ? Editor.darkColor : '#ffffff';
|
921
|
mxSettings.settings.darkMode) ? Editor.darkColor : '#ffffff';
|
1067
|
|
922
|
|
1068
|
- if (mxSettings.settings.autosaveDelay != null)
|
|
|
1069
|
- {
|
923
|
+ if (mxSettings.settings.autosaveDelay != null) {
|
1070
|
var val = parseInt(mxSettings.settings.autosaveDelay);
|
924
|
var val = parseInt(mxSettings.settings.autosaveDelay);
|
1071
|
|
925
|
|
1072
|
- if (!isNaN(val) && val > 0)
|
|
|
1073
|
- {
|
926
|
+ if (!isNaN(val) && val > 0) {
|
1074
|
DrawioFile.prototype.autosaveDelay = val;
|
927
|
DrawioFile.prototype.autosaveDelay = val;
|
1075
|
EditorUi.debug('Setting autosaveDelay', val);
|
928
|
EditorUi.debug('Setting autosaveDelay', val);
|
1076
|
}
|
929
|
}
|
1077
|
- else
|
|
|
1078
|
- {
|
930
|
+ else {
|
1079
|
EditorUi.debug('Invalid autosaveDelay', val);
|
931
|
EditorUi.debug('Invalid autosaveDelay', val);
|
1080
|
}
|
932
|
}
|
1081
|
}
|
933
|
}
|
1082
|
|
934
|
|
1083
|
- if (mxSettings.settings.defaultEdgeLength != null)
|
|
|
1084
|
- {
|
935
|
+ if (mxSettings.settings.defaultEdgeLength != null) {
|
1085
|
var val = parseInt(mxSettings.settings.defaultEdgeLength);
|
936
|
var val = parseInt(mxSettings.settings.defaultEdgeLength);
|
1086
|
|
937
|
|
1087
|
- if (!isNaN(val) && val > 0)
|
|
|
1088
|
- {
|
938
|
+ if (!isNaN(val) && val > 0) {
|
1089
|
Graph.prototype.defaultEdgeLength = val;
|
939
|
Graph.prototype.defaultEdgeLength = val;
|
1090
|
EditorUi.debug('Using defaultEdgeLength', val);
|
940
|
EditorUi.debug('Using defaultEdgeLength', val);
|
1091
|
}
|
941
|
}
|
1092
|
- else
|
|
|
1093
|
- {
|
942
|
+ else {
|
1094
|
EditorUi.debug('Invalid defaultEdgeLength', val);
|
943
|
EditorUi.debug('Invalid defaultEdgeLength', val);
|
1095
|
}
|
944
|
}
|
1096
|
}
|
945
|
}
|
1097
|
}
|
946
|
}
|
1098
|
}
|
947
|
}
|
1099
|
- catch (e)
|
|
|
1100
|
- {
|
|
|
1101
|
- if (window.console != null)
|
|
|
1102
|
- {
|
948
|
+ catch (e) {
|
|
|
949
|
+ if (window.console != null) {
|
1103
|
console.error(e);
|
950
|
console.error(e);
|
1104
|
}
|
951
|
}
|
1105
|
}
|
952
|
}
|
1106
|
|
953
|
|
1107
|
// Prefetches default fonts with URLs
|
954
|
// Prefetches default fonts with URLs
|
1108
|
- if (Menus.prototype.defaultFonts != null)
|
|
|
1109
|
- {
|
|
|
1110
|
- for (var i = 0; i < Menus.prototype.defaultFonts.length; i++)
|
|
|
1111
|
- {
|
955
|
+ if (Menus.prototype.defaultFonts != null) {
|
|
|
956
|
+ for (var i = 0; i < Menus.prototype.defaultFonts.length; i++) {
|
1112
|
var value = Menus.prototype.defaultFonts[i];
|
957
|
var value = Menus.prototype.defaultFonts[i];
|
1113
|
|
958
|
|
1114
|
if (typeof value !== 'string' &&
|
959
|
if (typeof value !== 'string' &&
|
1115
|
value.fontFamily != null &&
|
960
|
value.fontFamily != null &&
|
1116
|
- value.fontUrl != null)
|
|
|
1117
|
- {
|
961
|
+ value.fontUrl != null) {
|
1118
|
Graph.addFont(value.fontFamily, value.fontUrl);
|
962
|
Graph.addFont(value.fontFamily, value.fontUrl);
|
1119
|
}
|
963
|
}
|
1120
|
}
|
964
|
}
|
|
@@ -1128,30 +972,23 @@ App.main = function(callback, createUi) |
|
@@ -1128,30 +972,23 @@ App.main = function(callback, createUi) |
1128
|
};
|
972
|
};
|
1129
|
|
973
|
|
1130
|
// Sends load event if configuration is requested and waits for configure message
|
974
|
// Sends load event if configuration is requested and waits for configure message
|
1131
|
- if (urlParams['configure'] == '1')
|
|
|
1132
|
- {
|
975
|
+ if (urlParams['configure'] == '1') {
|
1133
|
var op = window.opener || window.parent;
|
976
|
var op = window.opener || window.parent;
|
1134
|
|
977
|
|
1135
|
- var configHandler = function(evt)
|
|
|
1136
|
- {
|
|
|
1137
|
- if (evt.source == op)
|
|
|
1138
|
- {
|
|
|
1139
|
- try
|
|
|
1140
|
- {
|
978
|
+ var configHandler = function (evt) {
|
|
|
979
|
+ if (evt.source == op) {
|
|
|
980
|
+ try {
|
1141
|
var data = JSON.parse(evt.data);
|
981
|
var data = JSON.parse(evt.data);
|
1142
|
|
982
|
|
1143
|
- if (data != null && data.action == 'configure')
|
|
|
1144
|
- {
|
983
|
+ if (data != null && data.action == 'configure') {
|
1145
|
mxEvent.removeListener(window, 'message', configHandler);
|
984
|
mxEvent.removeListener(window, 'message', configHandler);
|
1146
|
Editor.configure(data.config, true);
|
985
|
Editor.configure(data.config, true);
|
1147
|
mxSettings.load();
|
986
|
mxSettings.load();
|
1148
|
doMain();
|
987
|
doMain();
|
1149
|
}
|
988
|
}
|
1150
|
}
|
989
|
}
|
1151
|
- catch (e)
|
|
|
1152
|
- {
|
|
|
1153
|
- if (window.console != null)
|
|
|
1154
|
- {
|
990
|
+ catch (e) {
|
|
|
991
|
+ if (window.console != null) {
|
1155
|
console.log('Error in configure message: ' + e, evt.data);
|
992
|
console.log('Error in configure message: ' + e, evt.data);
|
1156
|
}
|
993
|
}
|
1157
|
}
|
994
|
}
|
|
@@ -1160,52 +997,40 @@ App.main = function(callback, createUi) |
|
@@ -1160,52 +997,40 @@ App.main = function(callback, createUi) |
1160
|
|
997
|
|
1161
|
// Receives XML message from opener and puts it into the graph
|
998
|
// Receives XML message from opener and puts it into the graph
|
1162
|
mxEvent.addListener(window, 'message', configHandler);
|
999
|
mxEvent.addListener(window, 'message', configHandler);
|
1163
|
- op.postMessage(JSON.stringify({event: 'configure'}), '*');
|
1000
|
+ op.postMessage(JSON.stringify({ event: 'configure' }), '*');
|
1164
|
}
|
1001
|
}
|
1165
|
- else
|
|
|
1166
|
- {
|
|
|
1167
|
- if (Editor.config == null)
|
|
|
1168
|
- {
|
1002
|
+ else {
|
|
|
1003
|
+ if (Editor.config == null) {
|
1169
|
// Loads configuration from global scope or local storage
|
1004
|
// Loads configuration from global scope or local storage
|
1170
|
- if (window.DRAWIO_CONFIG != null)
|
|
|
1171
|
- {
|
|
|
1172
|
- try
|
|
|
1173
|
- {
|
1005
|
+ if (window.DRAWIO_CONFIG != null) {
|
|
|
1006
|
+ try {
|
1174
|
EditorUi.debug('Using global configuration', window.DRAWIO_CONFIG);
|
1007
|
EditorUi.debug('Using global configuration', window.DRAWIO_CONFIG);
|
1175
|
Editor.configure(window.DRAWIO_CONFIG);
|
1008
|
Editor.configure(window.DRAWIO_CONFIG);
|
1176
|
mxSettings.load();
|
1009
|
mxSettings.load();
|
1177
|
}
|
1010
|
}
|
1178
|
- catch (e)
|
|
|
1179
|
- {
|
|
|
1180
|
- if (window.console != null)
|
|
|
1181
|
- {
|
1011
|
+ catch (e) {
|
|
|
1012
|
+ if (window.console != null) {
|
1182
|
console.error(e);
|
1013
|
console.error(e);
|
1183
|
}
|
1014
|
}
|
1184
|
}
|
1015
|
}
|
1185
|
}
|
1016
|
}
|
1186
|
|
1017
|
|
1187
|
// Loads configuration from local storage
|
1018
|
// Loads configuration from local storage
|
1188
|
- if (isLocalStorage && localStorage != null && urlParams['embed'] != '1')
|
|
|
1189
|
- {
|
1019
|
+ if (isLocalStorage && localStorage != null && urlParams['embed'] != '1') {
|
1190
|
var configData = localStorage.getItem(Editor.configurationKey);
|
1020
|
var configData = localStorage.getItem(Editor.configurationKey);
|
1191
|
|
1021
|
|
1192
|
- if (configData != null)
|
|
|
1193
|
- {
|
|
|
1194
|
- try
|
|
|
1195
|
- {
|
1022
|
+ if (configData != null) {
|
|
|
1023
|
+ try {
|
1196
|
configData = JSON.parse(configData);
|
1024
|
configData = JSON.parse(configData);
|
1197
|
|
1025
|
|
1198
|
- if (configData != null)
|
|
|
1199
|
- {
|
1026
|
+ if (configData != null) {
|
1200
|
EditorUi.debug('Using local configuration', configData);
|
1027
|
EditorUi.debug('Using local configuration', configData);
|
1201
|
Editor.configure(configData);
|
1028
|
Editor.configure(configData);
|
1202
|
mxSettings.load();
|
1029
|
mxSettings.load();
|
1203
|
}
|
1030
|
}
|
1204
|
}
|
1031
|
}
|
1205
|
- catch (e)
|
|
|
1206
|
- {
|
|
|
1207
|
- if (window.console != null)
|
|
|
1208
|
- {
|
1032
|
+ catch (e) {
|
|
|
1033
|
+ if (window.console != null) {
|
1209
|
console.error(e);
|
1034
|
console.error(e);
|
1210
|
}
|
1035
|
}
|
1211
|
}
|
1036
|
}
|
|
@@ -1274,30 +1099,25 @@ App.prototype.fullscreenMode = false; |
|
@@ -1274,30 +1099,25 @@ App.prototype.fullscreenMode = false; |
1274
|
/**
|
1099
|
/**
|
1275
|
* Overriden UI settings depending on mode.
|
1100
|
* Overriden UI settings depending on mode.
|
1276
|
*/
|
1101
|
*/
|
1277
|
-if (urlParams['embed'] != '1')
|
|
|
1278
|
-{
|
1102
|
+if (urlParams['embed'] != '1') {
|
1279
|
App.prototype.menubarHeight = 64;
|
1103
|
App.prototype.menubarHeight = 64;
|
1280
|
}
|
1104
|
}
|
1281
|
-else
|
|
|
1282
|
-{
|
1105
|
+else {
|
1283
|
App.prototype.footerHeight = 0;
|
1106
|
App.prototype.footerHeight = 0;
|
1284
|
}
|
1107
|
}
|
1285
|
|
1108
|
|
1286
|
/**
|
1109
|
/**
|
1287
|
* Queue for loading plugins and wait for UI instance
|
1110
|
* Queue for loading plugins and wait for UI instance
|
1288
|
*/
|
1111
|
*/
|
1289
|
-App.initPluginCallback = function()
|
|
|
1290
|
-{
|
|
|
1291
|
- if (App.DrawPlugins == null)
|
|
|
1292
|
- {
|
1112
|
+App.initPluginCallback = function () {
|
|
|
1113
|
+ if (App.DrawPlugins == null) {
|
1293
|
// Workaround for need to load plugins now but wait for UI instance
|
1114
|
// Workaround for need to load plugins now but wait for UI instance
|
1294
|
App.DrawPlugins = [];
|
1115
|
App.DrawPlugins = [];
|
1295
|
|
1116
|
|
1296
|
// Global entry point for plugins is Draw.loadPlugin. This is the only
|
1117
|
// Global entry point for plugins is Draw.loadPlugin. This is the only
|
1297
|
// long-term supported solution for access to the EditorUi instance.
|
1118
|
// long-term supported solution for access to the EditorUi instance.
|
1298
|
window.Draw = new Object();
|
1119
|
window.Draw = new Object();
|
1299
|
- window.Draw.loadPlugin = function(callback)
|
|
|
1300
|
- {
|
1120
|
+ window.Draw.loadPlugin = function (callback) {
|
1301
|
App.DrawPlugins.push(callback);
|
1121
|
App.DrawPlugins.push(callback);
|
1302
|
};
|
1122
|
};
|
1303
|
}
|
1123
|
}
|
|
@@ -1312,58 +1132,43 @@ App.embedModePluginsCount = 0; |
|
@@ -1312,58 +1132,43 @@ App.embedModePluginsCount = 0; |
1312
|
/**
|
1132
|
/**
|
1313
|
* Queue for loading plugins and wait for UI instance
|
1133
|
* Queue for loading plugins and wait for UI instance
|
1314
|
*/
|
1134
|
*/
|
1315
|
-App.loadPlugins = function(plugins, useInclude)
|
|
|
1316
|
-{
|
1135
|
+App.loadPlugins = function (plugins, useInclude) {
|
1317
|
EditorUi.debug('Loading plugins', plugins);
|
1136
|
EditorUi.debug('Loading plugins', plugins);
|
1318
|
|
1137
|
|
1319
|
- for (var i = 0; i < plugins.length; i++)
|
|
|
1320
|
- {
|
|
|
1321
|
- if (plugins[i] != null && plugins[i].length > 0)
|
|
|
1322
|
- {
|
|
|
1323
|
- try
|
|
|
1324
|
- {
|
1138
|
+ for (var i = 0; i < plugins.length; i++) {
|
|
|
1139
|
+ if (plugins[i] != null && plugins[i].length > 0) {
|
|
|
1140
|
+ try {
|
1325
|
var url = PLUGINS_BASE_PATH + App.pluginRegistry[plugins[i]];
|
1141
|
var url = PLUGINS_BASE_PATH + App.pluginRegistry[plugins[i]];
|
1326
|
|
1142
|
|
1327
|
- if (url != null)
|
|
|
1328
|
- {
|
|
|
1329
|
- if (App.pluginsLoaded[url] == null)
|
|
|
1330
|
- {
|
1143
|
+ if (url != null) {
|
|
|
1144
|
+ if (App.pluginsLoaded[url] == null) {
|
1331
|
App.pluginsLoaded[url] = true;
|
1145
|
App.pluginsLoaded[url] = true;
|
1332
|
App.embedModePluginsCount++;
|
1146
|
App.embedModePluginsCount++;
|
1333
|
|
1147
|
|
1334
|
- if (typeof window.drawDevUrl === 'undefined')
|
|
|
1335
|
- {
|
|
|
1336
|
- if (useInclude)
|
|
|
1337
|
- {
|
1148
|
+ if (typeof window.drawDevUrl === 'undefined') {
|
|
|
1149
|
+ if (useInclude) {
|
1338
|
mxinclude(url);
|
1150
|
mxinclude(url);
|
1339
|
}
|
1151
|
}
|
1340
|
- else
|
|
|
1341
|
- {
|
1152
|
+ else {
|
1342
|
mxscript(url);
|
1153
|
mxscript(url);
|
1343
|
}
|
1154
|
}
|
1344
|
}
|
1155
|
}
|
1345
|
- else
|
|
|
1346
|
- {
|
|
|
1347
|
- if (useInclude)
|
|
|
1348
|
- {
|
1156
|
+ else {
|
|
|
1157
|
+ if (useInclude) {
|
1349
|
mxinclude(url);
|
1158
|
mxinclude(url);
|
1350
|
}
|
1159
|
}
|
1351
|
- else
|
|
|
1352
|
- {
|
1160
|
+ else {
|
1353
|
mxscript(drawDevUrl + url);
|
1161
|
mxscript(drawDevUrl + url);
|
1354
|
}
|
1162
|
}
|
1355
|
}
|
1163
|
}
|
1356
|
}
|
1164
|
}
|
1357
|
}
|
1165
|
}
|
1358
|
- else if (window.console != null)
|
|
|
1359
|
- {
|
1166
|
+ else if (window.console != null) {
|
1360
|
console.log('Unknown plugin:', plugins[i]);
|
1167
|
console.log('Unknown plugin:', plugins[i]);
|
1361
|
}
|
1168
|
}
|
1362
|
}
|
1169
|
}
|
1363
|
- catch (e)
|
|
|
1364
|
- {
|
|
|
1365
|
- if (window.console != null)
|
|
|
1366
|
- {
|
1170
|
+ catch (e) {
|
|
|
1171
|
+ if (window.console != null) {
|
1367
|
console.log('Error loading plugin:', plugins[i], e);
|
1172
|
console.log('Error loading plugin:', plugins[i], e);
|
1368
|
}
|
1173
|
}
|
1369
|
}
|
1174
|
}
|
|
@@ -1375,21 +1180,16 @@ App.loadPlugins = function(plugins, useInclude) |
|
@@ -1375,21 +1180,16 @@ App.loadPlugins = function(plugins, useInclude) |
1375
|
* Delay embed mode initialization until all plugins are loaded
|
1180
|
* Delay embed mode initialization until all plugins are loaded
|
1376
|
* 延迟嵌入模式初始化,直到所有插件加载完毕
|
1181
|
* 延迟嵌入模式初始化,直到所有插件加载完毕
|
1377
|
*/
|
1182
|
*/
|
1378
|
-App.prototype.initializeEmbedMode = function()
|
|
|
1379
|
-{
|
|
|
1380
|
- if (urlParams['embed'] == '1')
|
|
|
1381
|
- {
|
|
|
1382
|
- if (window.location.hostname == 'app.diagrams.net')
|
|
|
1383
|
- {
|
1183
|
+App.prototype.initializeEmbedMode = function () {
|
|
|
1184
|
+ if (urlParams['embed'] == '1') {
|
|
|
1185
|
+ if (window.location.hostname == 'app.diagrams.net') {
|
1384
|
this.showBanner('EmbedDeprecationFooter', 'app.diagrams.net will stop working for embed mode. Please use embed.diagrams.net.');
|
1186
|
this.showBanner('EmbedDeprecationFooter', 'app.diagrams.net will stop working for embed mode. Please use embed.diagrams.net.');
|
1385
|
}
|
1187
|
}
|
1386
|
|
1188
|
|
1387
|
- if (App.embedModePluginsCount > 0 || this.initEmbedDone)
|
|
|
1388
|
- {
|
1189
|
+ if (App.embedModePluginsCount > 0 || this.initEmbedDone) {
|
1389
|
return; //Wait for plugins to load, or this is a duplicate call due to timeout
|
1190
|
return; //Wait for plugins to load, or this is a duplicate call due to timeout
|
1390
|
}
|
1191
|
}
|
1391
|
- else
|
|
|
1392
|
- {
|
1192
|
+ else {
|
1393
|
this.initEmbedDone = true;
|
1193
|
this.initEmbedDone = true;
|
1394
|
}
|
1194
|
}
|
1395
|
|
1195
|
|
|
@@ -1400,14 +1200,11 @@ App.prototype.initializeEmbedMode = function() |
|
@@ -1400,14 +1200,11 @@ App.prototype.initializeEmbedMode = function() |
1400
|
/**
|
1200
|
/**
|
1401
|
* TODO: Define viewer protocol and implement new viewer style toolbar
|
1201
|
* TODO: Define viewer protocol and implement new viewer style toolbar
|
1402
|
*/
|
1202
|
*/
|
1403
|
-App.prototype.initializeViewerMode = function()
|
|
|
1404
|
-{
|
1203
|
+App.prototype.initializeViewerMode = function () {
|
1405
|
var parent = window.opener || window.parent;
|
1204
|
var parent = window.opener || window.parent;
|
1406
|
|
1205
|
|
1407
|
- if (parent != null)
|
|
|
1408
|
- {
|
|
|
1409
|
- this.editor.graph.addListener(mxEvent.SIZE, mxUtils.bind(this, function()
|
|
|
1410
|
- {
|
1206
|
+ if (parent != null) {
|
|
|
1207
|
+ this.editor.graph.addListener(mxEvent.SIZE, mxUtils.bind(this, function () {
|
1411
|
parent.postMessage(JSON.stringify(this.createLoadMessage('size')), '*');
|
1208
|
parent.postMessage(JSON.stringify(this.createLoadMessage('size')), '*');
|
1412
|
}));
|
1209
|
}));
|
1413
|
}
|
1210
|
}
|
|
@@ -1419,8 +1216,7 @@ App.prototype.initializeViewerMode = function() |
|
@@ -1419,8 +1216,7 @@ App.prototype.initializeViewerMode = function() |
1419
|
* @param {number} dx X-coordinate of the translation.
|
1216
|
* @param {number} dx X-coordinate of the translation.
|
1420
|
* @param {number} dy Y-coordinate of the translation.
|
1217
|
* @param {number} dy Y-coordinate of the translation.
|
1421
|
*/
|
1218
|
*/
|
1422
|
-App.prototype.init = function()
|
|
|
1423
|
-{
|
1219
|
+App.prototype.init = function () {
|
1424
|
EditorUi.prototype.init.apply(this, arguments);
|
1220
|
EditorUi.prototype.init.apply(this, arguments);
|
1425
|
|
1221
|
|
1426
|
/**
|
1222
|
/**
|
|
@@ -1437,14 +1233,12 @@ App.prototype.init = function() |
|
@@ -1437,14 +1233,12 @@ App.prototype.init = function() |
1437
|
* Creates github client.
|
1233
|
* Creates github client.
|
1438
|
*/
|
1234
|
*/
|
1439
|
this.gitHub = (!mxClient.IS_IE || document.documentMode == 10 ||
|
1235
|
this.gitHub = (!mxClient.IS_IE || document.documentMode == 10 ||
|
1440
|
- mxClient.IS_IE11 || mxClient.IS_EDGE) &&
|
|
|
1441
|
- (urlParams['gh'] != '0' && (urlParams['embed'] != '1' ||
|
1236
|
+ mxClient.IS_IE11 || mxClient.IS_EDGE) &&
|
|
|
1237
|
+ (urlParams['gh'] != '0' && (urlParams['embed'] != '1' ||
|
1442
|
urlParams['gh'] == '1')) ? new GitHubClient(this) : null;
|
1238
|
urlParams['gh'] == '1')) ? new GitHubClient(this) : null;
|
1443
|
|
1239
|
|
1444
|
- if (this.gitHub != null)
|
|
|
1445
|
- {
|
|
|
1446
|
- this.gitHub.addListener('userChanged', mxUtils.bind(this, function()
|
|
|
1447
|
- {
|
1240
|
+ if (this.gitHub != null) {
|
|
|
1241
|
+ this.gitHub.addListener('userChanged', mxUtils.bind(this, function () {
|
1448
|
this.updateUserElement();
|
1242
|
this.updateUserElement();
|
1449
|
this.restoreLibraries();
|
1243
|
this.restoreLibraries();
|
1450
|
}));
|
1244
|
}));
|
|
@@ -1456,12 +1250,10 @@ App.prototype.init = function() |
|
@@ -1456,12 +1250,10 @@ App.prototype.init = function() |
1456
|
this.gitLab = (!mxClient.IS_IE || document.documentMode == 10 ||
|
1250
|
this.gitLab = (!mxClient.IS_IE || document.documentMode == 10 ||
|
1457
|
mxClient.IS_IE11 || mxClient.IS_EDGE) &&
|
1251
|
mxClient.IS_IE11 || mxClient.IS_EDGE) &&
|
1458
|
(urlParams['gl'] != '0' && (urlParams['embed'] != '1' ||
|
1252
|
(urlParams['gl'] != '0' && (urlParams['embed'] != '1' ||
|
1459
|
- urlParams['gl'] == '1')) ? new GitLabClient(this) : null;
|
1253
|
+ urlParams['gl'] == '1')) ? new GitLabClient(this) : null;
|
1460
|
|
1254
|
|
1461
|
- if (this.gitLab != null)
|
|
|
1462
|
- {
|
|
|
1463
|
- this.gitLab.addListener('userChanged', mxUtils.bind(this, function()
|
|
|
1464
|
- {
|
1255
|
+ if (this.gitLab != null) {
|
|
|
1256
|
+ this.gitLab.addListener('userChanged', mxUtils.bind(this, function () {
|
1465
|
this.updateUserElement();
|
1257
|
this.updateUserElement();
|
1466
|
this.restoreLibraries();
|
1258
|
this.restoreLibraries();
|
1467
|
}));
|
1259
|
}));
|
|
@@ -1470,22 +1262,18 @@ App.prototype.init = function() |
|
@@ -1470,22 +1262,18 @@ App.prototype.init = function() |
1470
|
/**
|
1262
|
/**
|
1471
|
* Lazy-loading for individual backends
|
1263
|
* Lazy-loading for individual backends
|
1472
|
*/
|
1264
|
*/
|
1473
|
- if (urlParams['embed'] != '1' || urlParams['od'] == '1')
|
|
|
1474
|
- {
|
1265
|
+ if (urlParams['embed'] != '1' || urlParams['od'] == '1') {
|
1475
|
/**
|
1266
|
/**
|
1476
|
* Creates onedrive client if all required libraries are available.
|
1267
|
* Creates onedrive client if all required libraries are available.
|
1477
|
*/
|
1268
|
*/
|
1478
|
- var initOneDriveClient = mxUtils.bind(this, function()
|
|
|
1479
|
- {
|
|
|
1480
|
- if (typeof OneDrive !== 'undefined')
|
|
|
1481
|
- {
|
1269
|
+ var initOneDriveClient = mxUtils.bind(this, function () {
|
|
|
1270
|
+ if (typeof OneDrive !== 'undefined') {
|
1482
|
/**
|
1271
|
/**
|
1483
|
* Holds the x-coordinate of the point.
|
1272
|
* Holds the x-coordinate of the point.
|
1484
|
*/
|
1273
|
*/
|
1485
|
this.oneDrive = new OneDriveClient(this);
|
1274
|
this.oneDrive = new OneDriveClient(this);
|
1486
|
|
1275
|
|
1487
|
- this.oneDrive.addListener('userChanged', mxUtils.bind(this, function()
|
|
|
1488
|
- {
|
1276
|
+ this.oneDrive.addListener('userChanged', mxUtils.bind(this, function () {
|
1489
|
this.updateUserElement();
|
1277
|
this.updateUserElement();
|
1490
|
this.restoreLibraries();
|
1278
|
this.restoreLibraries();
|
1491
|
}));
|
1279
|
}));
|
|
@@ -1493,8 +1281,7 @@ App.prototype.init = function() |
|
@@ -1493,8 +1281,7 @@ App.prototype.init = function() |
1493
|
// Notifies listeners of new client
|
1281
|
// Notifies listeners of new client
|
1494
|
this.fireEvent(new mxEventObject('clientLoaded', 'client', this.oneDrive));
|
1282
|
this.fireEvent(new mxEventObject('clientLoaded', 'client', this.oneDrive));
|
1495
|
}
|
1283
|
}
|
1496
|
- else if (window.DrawOneDriveClientCallback == null)
|
|
|
1497
|
- {
|
1284
|
+ else if (window.DrawOneDriveClientCallback == null) {
|
1498
|
window.DrawOneDriveClientCallback = initOneDriveClient;
|
1285
|
window.DrawOneDriveClientCallback = initOneDriveClient;
|
1499
|
}
|
1286
|
}
|
1500
|
});
|
1287
|
});
|
|
@@ -1505,22 +1292,17 @@ App.prototype.init = function() |
|
@@ -1505,22 +1292,17 @@ App.prototype.init = function() |
1505
|
/**
|
1292
|
/**
|
1506
|
* Lazy-loading for Trello
|
1293
|
* Lazy-loading for Trello
|
1507
|
*/
|
1294
|
*/
|
1508
|
- if (urlParams['embed'] != '1' || urlParams['tr'] == '1')
|
|
|
1509
|
- {
|
1295
|
+ if (urlParams['embed'] != '1' || urlParams['tr'] == '1') {
|
1510
|
/**
|
1296
|
/**
|
1511
|
* Creates Trello client if all required libraries are available.
|
1297
|
* Creates Trello client if all required libraries are available.
|
1512
|
*/
|
1298
|
*/
|
1513
|
- var initTrelloClient = mxUtils.bind(this, function()
|
|
|
1514
|
- {
|
|
|
1515
|
- if (typeof window.Trello !== 'undefined')
|
|
|
1516
|
- {
|
|
|
1517
|
- try
|
|
|
1518
|
- {
|
1299
|
+ var initTrelloClient = mxUtils.bind(this, function () {
|
|
|
1300
|
+ if (typeof window.Trello !== 'undefined') {
|
|
|
1301
|
+ try {
|
1519
|
this.trello = new TrelloClient(this);
|
1302
|
this.trello = new TrelloClient(this);
|
1520
|
|
1303
|
|
1521
|
//TODO we have no user info from Trello so we don't set a user
|
1304
|
//TODO we have no user info from Trello so we don't set a user
|
1522
|
- this.trello.addListener('userChanged', mxUtils.bind(this, function()
|
|
|
1523
|
- {
|
1305
|
+ this.trello.addListener('userChanged', mxUtils.bind(this, function () {
|
1524
|
this.updateUserElement();
|
1306
|
this.updateUserElement();
|
1525
|
this.restoreLibraries();
|
1307
|
this.restoreLibraries();
|
1526
|
}));
|
1308
|
}));
|
|
@@ -1528,16 +1310,13 @@ App.prototype.init = function() |
|
@@ -1528,16 +1310,13 @@ App.prototype.init = function() |
1528
|
// Notifies listeners of new client
|
1310
|
// Notifies listeners of new client
|
1529
|
this.fireEvent(new mxEventObject('clientLoaded', 'client', this.trello));
|
1311
|
this.fireEvent(new mxEventObject('clientLoaded', 'client', this.trello));
|
1530
|
}
|
1312
|
}
|
1531
|
- catch (e)
|
|
|
1532
|
- {
|
|
|
1533
|
- if (window.console != null)
|
|
|
1534
|
- {
|
1313
|
+ catch (e) {
|
|
|
1314
|
+ if (window.console != null) {
|
1535
|
console.error(e);
|
1315
|
console.error(e);
|
1536
|
}
|
1316
|
}
|
1537
|
}
|
1317
|
}
|
1538
|
}
|
1318
|
}
|
1539
|
- else if (window.DrawTrelloClientCallback == null)
|
|
|
1540
|
- {
|
1319
|
+ else if (window.DrawTrelloClientCallback == null) {
|
1541
|
window.DrawTrelloClientCallback = initTrelloClient;
|
1320
|
window.DrawTrelloClientCallback = initTrelloClient;
|
1542
|
}
|
1321
|
}
|
1543
|
});
|
1322
|
});
|
|
@@ -1548,21 +1327,16 @@ App.prototype.init = function() |
|
@@ -1548,21 +1327,16 @@ App.prototype.init = function() |
1548
|
/**
|
1327
|
/**
|
1549
|
* Creates drive client with all required libraries are available.
|
1328
|
* Creates drive client with all required libraries are available.
|
1550
|
*/
|
1329
|
*/
|
1551
|
- if (urlParams['embed'] != '1' || urlParams['gapi'] == '1')
|
|
|
1552
|
- {
|
|
|
1553
|
- var initDriveClient = mxUtils.bind(this, function()
|
|
|
1554
|
- {
|
1330
|
+ if (urlParams['embed'] != '1' || urlParams['gapi'] == '1') {
|
|
|
1331
|
+ var initDriveClient = mxUtils.bind(this, function () {
|
1555
|
/**
|
1332
|
/**
|
1556
|
* Creates google drive client if all required libraries are available.
|
1333
|
* Creates google drive client if all required libraries are available.
|
1557
|
*/
|
1334
|
*/
|
1558
|
- if (typeof gapi !== 'undefined')
|
|
|
1559
|
- {
|
|
|
1560
|
- var doInit = mxUtils.bind(this, function()
|
|
|
1561
|
- {
|
1335
|
+ if (typeof gapi !== 'undefined') {
|
|
|
1336
|
+ var doInit = mxUtils.bind(this, function () {
|
1562
|
this.drive = new DriveClient(this);
|
1337
|
this.drive = new DriveClient(this);
|
1563
|
|
1338
|
|
1564
|
- this.drive.addListener('userChanged', mxUtils.bind(this, function()
|
|
|
1565
|
- {
|
1339
|
+ this.drive.addListener('userChanged', mxUtils.bind(this, function () {
|
1566
|
this.updateUserElement();
|
1340
|
this.updateUserElement();
|
1567
|
this.restoreLibraries();
|
1341
|
this.restoreLibraries();
|
1568
|
this.checkLicense();
|
1342
|
this.checkLicense();
|
|
@@ -1572,22 +1346,19 @@ App.prototype.init = function() |
|
@@ -1572,22 +1346,19 @@ App.prototype.init = function() |
1572
|
this.fireEvent(new mxEventObject('clientLoaded', 'client', this.drive));
|
1346
|
this.fireEvent(new mxEventObject('clientLoaded', 'client', this.drive));
|
1573
|
});
|
1347
|
});
|
1574
|
|
1348
|
|
1575
|
- if (window.DrawGapiClientCallback != null)
|
|
|
1576
|
- {
|
|
|
1577
|
- gapi.load(((urlParams['picker'] != '0') ? 'picker,': '') + App.GOOGLE_APIS, doInit);
|
1349
|
+ if (window.DrawGapiClientCallback != null) {
|
|
|
1350
|
+ gapi.load(((urlParams['picker'] != '0') ? 'picker,' : '') + App.GOOGLE_APIS, doInit);
|
1578
|
|
1351
|
|
1579
|
/**
|
1352
|
/**
|
1580
|
* Clears any callbacks.
|
1353
|
* Clears any callbacks.
|
1581
|
*/
|
1354
|
*/
|
1582
|
window.DrawGapiClientCallback = null;
|
1355
|
window.DrawGapiClientCallback = null;
|
1583
|
}
|
1356
|
}
|
1584
|
- else
|
|
|
1585
|
- {
|
1357
|
+ else {
|
1586
|
doInit();
|
1358
|
doInit();
|
1587
|
}
|
1359
|
}
|
1588
|
}
|
1360
|
}
|
1589
|
- else if (window.DrawGapiClientCallback == null)
|
|
|
1590
|
- {
|
1361
|
+ else if (window.DrawGapiClientCallback == null) {
|
1591
|
window.DrawGapiClientCallback = initDriveClient;
|
1362
|
window.DrawGapiClientCallback = initDriveClient;
|
1592
|
}
|
1363
|
}
|
1593
|
});
|
1364
|
});
|
|
@@ -1595,15 +1366,12 @@ App.prototype.init = function() |
|
@@ -1595,15 +1366,12 @@ App.prototype.init = function() |
1595
|
initDriveClient();
|
1366
|
initDriveClient();
|
1596
|
}
|
1367
|
}
|
1597
|
|
1368
|
|
1598
|
- if (urlParams['embed'] != '1' || urlParams['db'] == '1')
|
|
|
1599
|
- {
|
1369
|
+ if (urlParams['embed'] != '1' || urlParams['db'] == '1') {
|
1600
|
/**
|
1370
|
/**
|
1601
|
* Creates dropbox client if all required libraries are available.
|
1371
|
* Creates dropbox client if all required libraries are available.
|
1602
|
*/
|
1372
|
*/
|
1603
|
- var initDropboxClient = mxUtils.bind(this, function()
|
|
|
1604
|
- {
|
|
|
1605
|
- if (typeof Dropbox === 'function' && typeof Dropbox.choose !== 'undefined')
|
|
|
1606
|
- {
|
1373
|
+ var initDropboxClient = mxUtils.bind(this, function () {
|
|
|
1374
|
+ if (typeof Dropbox === 'function' && typeof Dropbox.choose !== 'undefined') {
|
1607
|
/**
|
1375
|
/**
|
1608
|
* Clears dropbox client callback.
|
1376
|
* Clears dropbox client callback.
|
1609
|
*/
|
1377
|
*/
|
|
@@ -1612,12 +1380,10 @@ App.prototype.init = function() |
|
@@ -1612,12 +1380,10 @@ App.prototype.init = function() |
1612
|
/**
|
1380
|
/**
|
1613
|
* Holds the x-coordinate of the point.
|
1381
|
* Holds the x-coordinate of the point.
|
1614
|
*/
|
1382
|
*/
|
1615
|
- try
|
|
|
1616
|
- {
|
1383
|
+ try {
|
1617
|
this.dropbox = new DropboxClient(this);
|
1384
|
this.dropbox = new DropboxClient(this);
|
1618
|
|
1385
|
|
1619
|
- this.dropbox.addListener('userChanged', mxUtils.bind(this, function()
|
|
|
1620
|
- {
|
1386
|
+ this.dropbox.addListener('userChanged', mxUtils.bind(this, function () {
|
1621
|
this.updateUserElement();
|
1387
|
this.updateUserElement();
|
1622
|
this.restoreLibraries();
|
1388
|
this.restoreLibraries();
|
1623
|
}));
|
1389
|
}));
|
|
@@ -1625,16 +1391,13 @@ App.prototype.init = function() |
|
@@ -1625,16 +1391,13 @@ App.prototype.init = function() |
1625
|
// Notifies listeners of new client
|
1391
|
// Notifies listeners of new client
|
1626
|
this.fireEvent(new mxEventObject('clientLoaded', 'client', this.dropbox));
|
1392
|
this.fireEvent(new mxEventObject('clientLoaded', 'client', this.dropbox));
|
1627
|
}
|
1393
|
}
|
1628
|
- catch (e)
|
|
|
1629
|
- {
|
|
|
1630
|
- if (window.console != null)
|
|
|
1631
|
- {
|
1394
|
+ catch (e) {
|
|
|
1395
|
+ if (window.console != null) {
|
1632
|
console.error(e);
|
1396
|
console.error(e);
|
1633
|
}
|
1397
|
}
|
1634
|
}
|
1398
|
}
|
1635
|
}
|
1399
|
}
|
1636
|
- else if (window.DrawDropboxClientCallback == null)
|
|
|
1637
|
- {
|
1400
|
+ else if (window.DrawDropboxClientCallback == null) {
|
1638
|
window.DrawDropboxClientCallback = initDropboxClient;
|
1401
|
window.DrawDropboxClientCallback = initDropboxClient;
|
1639
|
}
|
1402
|
}
|
1640
|
});
|
1403
|
});
|
|
@@ -1642,8 +1405,7 @@ App.prototype.init = function() |
|
@@ -1642,8 +1405,7 @@ App.prototype.init = function() |
1642
|
initDropboxClient();
|
1405
|
initDropboxClient();
|
1643
|
}
|
1406
|
}
|
1644
|
|
1407
|
|
1645
|
- if (urlParams['embed'] != '1')
|
|
|
1646
|
- {
|
1408
|
+ if (urlParams['embed'] != '1') {
|
1647
|
/**
|
1409
|
/**
|
1648
|
* Holds the background element.
|
1410
|
* Holds the background element.
|
1649
|
*/
|
1411
|
*/
|
|
@@ -1656,45 +1418,35 @@ App.prototype.init = function() |
|
@@ -1656,45 +1418,35 @@ App.prototype.init = function() |
1656
|
this.sidebarFooterContainer.style.display = 'none';
|
1418
|
this.sidebarFooterContainer.style.display = 'none';
|
1657
|
|
1419
|
|
1658
|
// Sets the initial mode
|
1420
|
// Sets the initial mode
|
1659
|
- if (urlParams['local'] == '1')
|
|
|
1660
|
- {
|
1421
|
+ if (urlParams['local'] == '1') {
|
1661
|
this.setMode(App.MODE_DEVICE);
|
1422
|
this.setMode(App.MODE_DEVICE);
|
1662
|
}
|
1423
|
}
|
1663
|
- else
|
|
|
1664
|
- {
|
1424
|
+ else {
|
1665
|
this.mode = App.mode;
|
1425
|
this.mode = App.mode;
|
1666
|
}
|
1426
|
}
|
1667
|
|
1427
|
|
1668
|
// Add to Home Screen dialog for mobile devices
|
1428
|
// Add to Home Screen dialog for mobile devices
|
1669
|
if ('serviceWorker' in navigator && !this.editor.isChromelessView() &&
|
1429
|
if ('serviceWorker' in navigator && !this.editor.isChromelessView() &&
|
1670
|
- (mxClient.IS_ANDROID || mxClient.IS_IOS))
|
|
|
1671
|
- {
|
|
|
1672
|
- window.addEventListener('beforeinstallprompt', mxUtils.bind(this, function(e)
|
|
|
1673
|
- {
|
|
|
1674
|
- this.showBanner('AddToHomeScreenFooter', mxResources.get('installApp'), function()
|
|
|
1675
|
- {
|
|
|
1676
|
- e.prompt();
|
1430
|
+ (mxClient.IS_ANDROID || mxClient.IS_IOS)) {
|
|
|
1431
|
+ window.addEventListener('beforeinstallprompt', mxUtils.bind(this, function (e) {
|
|
|
1432
|
+ this.showBanner('AddToHomeScreenFooter', mxResources.get('installApp'), function () {
|
|
|
1433
|
+ e.prompt();
|
1677
|
});
|
1434
|
});
|
1678
|
}));
|
1435
|
}));
|
1679
|
}
|
1436
|
}
|
1680
|
|
1437
|
|
1681
|
if (!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp && !this.isOffline() &&
|
1438
|
if (!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp && !this.isOffline() &&
|
1682
|
!mxClient.IS_ANDROID && !mxClient.IS_IOS && urlParams['open'] == null &&
|
1439
|
!mxClient.IS_ANDROID && !mxClient.IS_IOS && urlParams['open'] == null &&
|
1683
|
- (!this.editor.chromeless || this.editor.editable))
|
|
|
1684
|
- {
|
|
|
1685
|
- this.editor.addListener('fileLoaded', mxUtils.bind(this, function()
|
|
|
1686
|
- {
|
1440
|
+ (!this.editor.chromeless || this.editor.editable)) {
|
|
|
1441
|
+ this.editor.addListener('fileLoaded', mxUtils.bind(this, function () {
|
1687
|
var file = this.getCurrentFile();
|
1442
|
var file = this.getCurrentFile();
|
1688
|
var mode = (file != null) ? file.getMode() : null;
|
1443
|
var mode = (file != null) ? file.getMode() : null;
|
1689
|
|
1444
|
|
1690
|
- if (urlParams['extAuth'] != '1' && (mode == App.MODE_DEVICE || mode == App.MODE_BROWSER))
|
|
|
1691
|
- {
|
1445
|
+ if (urlParams['extAuth'] != '1' && (mode == App.MODE_DEVICE || mode == App.MODE_BROWSER)) {
|
1692
|
//关闭桌面弹出广告
|
1446
|
//关闭桌面弹出广告
|
1693
|
//this.showDownloadDesktopBanner();
|
1447
|
//this.showDownloadDesktopBanner();
|
1694
|
}
|
1448
|
}
|
1695
|
- else if (urlParams['embed'] != '1' && this.getServiceName() == 'draw.io')
|
|
|
1696
|
-
|
|
|
1697
|
- {
|
1449
|
+ else if (urlParams['embed'] != '1' && this.getServiceName() == 'draw.io') {
|
1698
|
// just app.diagrams.net users
|
1450
|
// just app.diagrams.net users
|
1699
|
// this.showNameConfBanner();
|
1451
|
// this.showNameConfBanner();
|
1700
|
}
|
1452
|
}
|
|
@@ -1703,13 +1455,11 @@ App.prototype.init = function() |
|
@@ -1703,13 +1455,11 @@ App.prototype.init = function() |
1703
|
|
1455
|
|
1704
|
if (!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp && urlParams['embed'] != '1' && DrawioFile.SYNC == 'auto' &&
|
1456
|
if (!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp && urlParams['embed'] != '1' && DrawioFile.SYNC == 'auto' &&
|
1705
|
urlParams['local'] != '1' && urlParams['stealth'] != '1' && !this.isOffline() &&
|
1457
|
urlParams['local'] != '1' && urlParams['stealth'] != '1' && !this.isOffline() &&
|
1706
|
- (!this.editor.chromeless || this.editor.editable))
|
|
|
1707
|
- {
|
1458
|
+ (!this.editor.chromeless || this.editor.editable)) {
|
1708
|
// Checks if the cache is alive
|
1459
|
// Checks if the cache is alive
|
1709
|
var acceptResponse = true;
|
1460
|
var acceptResponse = true;
|
1710
|
|
1461
|
|
1711
|
- var timeoutThread = window.setTimeout(mxUtils.bind(this, function()
|
|
|
1712
|
- {
|
1462
|
+ var timeoutThread = window.setTimeout(mxUtils.bind(this, function () {
|
1713
|
acceptResponse = false;
|
1463
|
acceptResponse = false;
|
1714
|
|
1464
|
|
1715
|
// Switches to manual sync if cache cannot be reached
|
1465
|
// Switches to manual sync if cache cannot be reached
|
|
@@ -1717,36 +1467,32 @@ App.prototype.init = function() |
|
@@ -1717,36 +1467,32 @@ App.prototype.init = function() |
1717
|
|
1467
|
|
1718
|
var file = this.getCurrentFile();
|
1468
|
var file = this.getCurrentFile();
|
1719
|
|
1469
|
|
1720
|
- if (file != null && file.sync != null)
|
|
|
1721
|
- {
|
1470
|
+ if (file != null && file.sync != null) {
|
1722
|
file.sync.destroy();
|
1471
|
file.sync.destroy();
|
1723
|
file.sync = null;
|
1472
|
file.sync = null;
|
1724
|
|
1473
|
|
1725
|
var status = mxUtils.htmlEntities(mxResources.get('timeout'));
|
1474
|
var status = mxUtils.htmlEntities(mxResources.get('timeout'));
|
1726
|
- this.editor.setStatus('<div title="'+ status +
|
1475
|
+ this.editor.setStatus('<div title="' + status +
|
1727
|
'" class="geStatusAlert">' + status + '</div>');
|
1476
|
'" class="geStatusAlert">' + status + '</div>');
|
1728
|
}
|
1477
|
}
|
1729
|
|
1478
|
|
1730
|
- EditorUi.logEvent({category: 'TIMEOUT-CACHE-CHECK', action: 'timeout', label: 408});
|
1479
|
+ EditorUi.logEvent({ category: 'TIMEOUT-CACHE-CHECK', action: 'timeout', label: 408 });
|
1731
|
}), Editor.cacheTimeout);
|
1480
|
}), Editor.cacheTimeout);
|
1732
|
|
1481
|
|
1733
|
var t0 = new Date().getTime();
|
1482
|
var t0 = new Date().getTime();
|
1734
|
|
1483
|
|
1735
|
- mxUtils.get(EditorUi.cacheUrl + '?alive', mxUtils.bind(this, function(req)
|
|
|
1736
|
- {
|
1484
|
+ mxUtils.get(EditorUi.cacheUrl + '?alive', mxUtils.bind(this, function (req) {
|
1737
|
window.clearTimeout(timeoutThread);
|
1485
|
window.clearTimeout(timeoutThread);
|
1738
|
}));
|
1486
|
}));
|
1739
|
}
|
1487
|
}
|
1740
|
}
|
1488
|
}
|
1741
|
- else if (this.menubar != null)
|
|
|
1742
|
- {
|
1489
|
+ else if (this.menubar != null) {
|
1743
|
this.menubar.container.style.paddingTop = '0px';
|
1490
|
this.menubar.container.style.paddingTop = '0px';
|
1744
|
}
|
1491
|
}
|
1745
|
|
1492
|
|
1746
|
this.updateHeader();
|
1493
|
this.updateHeader();
|
1747
|
|
1494
|
|
1748
|
- if (this.menubar != null)
|
|
|
1749
|
- {
|
1495
|
+ if (this.menubar != null) {
|
1750
|
this.buttonContainer = document.createElement('div');
|
1496
|
this.buttonContainer = document.createElement('div');
|
1751
|
this.buttonContainer.style.display = 'inline-block';
|
1497
|
this.buttonContainer.style.display = 'inline-block';
|
1752
|
this.buttonContainer.style.paddingRight = '48px';
|
1498
|
this.buttonContainer.style.paddingRight = '48px';
|
|
@@ -1756,10 +1502,8 @@ App.prototype.init = function() |
|
@@ -1756,10 +1502,8 @@ App.prototype.init = function() |
1756
|
this.menubar.container.appendChild(this.buttonContainer);
|
1502
|
this.menubar.container.appendChild(this.buttonContainer);
|
1757
|
}
|
1503
|
}
|
1758
|
|
1504
|
|
1759
|
- if ((uiTheme == 'atlas' || urlParams['atlas'] == '1') && this.menubar != null)
|
|
|
1760
|
- {
|
|
|
1761
|
- if (this.toggleElement != null)
|
|
|
1762
|
- {
|
1505
|
+ if ((uiTheme == 'atlas' || urlParams['atlas'] == '1') && this.menubar != null) {
|
|
|
1506
|
+ if (this.toggleElement != null) {
|
1763
|
this.toggleElement.click();
|
1507
|
this.toggleElement.click();
|
1764
|
this.toggleElement.style.display = 'none';
|
1508
|
this.toggleElement.style.display = 'none';
|
1765
|
}
|
1509
|
}
|
|
@@ -1767,19 +1511,17 @@ App.prototype.init = function() |
|
@@ -1767,19 +1511,17 @@ App.prototype.init = function() |
1767
|
this.icon = document.createElement('img');
|
1511
|
this.icon = document.createElement('img');
|
1768
|
this.icon.setAttribute('src', IMAGE_PATH + '/logo-flat-small.png');
|
1512
|
this.icon.setAttribute('src', IMAGE_PATH + '/logo-flat-small.png');
|
1769
|
this.icon.setAttribute('title', mxResources.get('draw.io'));
|
1513
|
this.icon.setAttribute('title', mxResources.get('draw.io'));
|
1770
|
- this.icon.style.padding = urlParams['atlas'] == '1'? '7px' : '6px';
|
1514
|
+ this.icon.style.padding = urlParams['atlas'] == '1' ? '7px' : '6px';
|
1771
|
this.icon.style.cursor = 'pointer';
|
1515
|
this.icon.style.cursor = 'pointer';
|
1772
|
|
1516
|
|
1773
|
- mxEvent.addListener(this.icon, 'click', mxUtils.bind(this, function(evt)
|
|
|
1774
|
- {
|
1517
|
+ mxEvent.addListener(this.icon, 'click', mxUtils.bind(this, function (evt) {
|
1775
|
this.appIconClicked(evt);
|
1518
|
this.appIconClicked(evt);
|
1776
|
}));
|
1519
|
}));
|
1777
|
|
1520
|
|
1778
|
this.menubar.container.insertBefore(this.icon, this.menubar.container.firstChild);
|
1521
|
this.menubar.container.insertBefore(this.icon, this.menubar.container.firstChild);
|
1779
|
}
|
1522
|
}
|
1780
|
|
1523
|
|
1781
|
- if (this.editor.graph.isViewer())
|
|
|
1782
|
- {
|
1524
|
+ if (this.editor.graph.isViewer()) {
|
1783
|
this.initializeViewerMode();
|
1525
|
this.initializeViewerMode();
|
1784
|
}
|
1526
|
}
|
1785
|
};
|
1527
|
};
|
|
@@ -1788,13 +1530,10 @@ App.prototype.init = function() |
|
@@ -1788,13 +1530,10 @@ App.prototype.init = function() |
1788
|
* Schedules a sanity check.
|
1530
|
* Schedules a sanity check.
|
1789
|
* 定时完整性检查
|
1531
|
* 定时完整性检查
|
1790
|
*/
|
1532
|
*/
|
1791
|
-App.prototype.scheduleSanityCheck = function()
|
|
|
1792
|
-{
|
1533
|
+App.prototype.scheduleSanityCheck = function () {
|
1793
|
if (!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp &&
|
1534
|
if (!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp &&
|
1794
|
- this.sanityCheckThread == null)
|
|
|
1795
|
- {
|
|
|
1796
|
- this.sanityCheckThread = window.setTimeout(mxUtils.bind(this, function()
|
|
|
1797
|
- {
|
1535
|
+ this.sanityCheckThread == null) {
|
|
|
1536
|
+ this.sanityCheckThread = window.setTimeout(mxUtils.bind(this, function () {
|
1798
|
this.sanityCheckThread = null;
|
1537
|
this.sanityCheckThread = null;
|
1799
|
this.sanityCheck();
|
1538
|
this.sanityCheck();
|
1800
|
}), this.warnInterval);
|
1539
|
}), this.warnInterval);
|
|
@@ -1805,10 +1544,8 @@ App.prototype.scheduleSanityCheck = function() |
|
@@ -1805,10 +1544,8 @@ App.prototype.scheduleSanityCheck = function() |
1805
|
* Stops sanity checks.
|
1544
|
* Stops sanity checks.
|
1806
|
* 停止完整性检查
|
1545
|
* 停止完整性检查
|
1807
|
*/
|
1546
|
*/
|
1808
|
-App.prototype.stopSanityCheck = function()
|
|
|
1809
|
-{
|
|
|
1810
|
- if (this.sanityCheckThread != null)
|
|
|
1811
|
- {
|
1547
|
+App.prototype.stopSanityCheck = function () {
|
|
|
1548
|
+ if (this.sanityCheckThread != null) {
|
1812
|
window.clearTimeout(this.sanityCheckThread);
|
1549
|
window.clearTimeout(this.sanityCheckThread);
|
1813
|
this.sanityCheckThread = null;
|
1550
|
this.sanityCheckThread = null;
|
1814
|
}
|
1551
|
}
|
|
@@ -1818,28 +1555,27 @@ App.prototype.stopSanityCheck = function() |
|
@@ -1818,28 +1555,27 @@ App.prototype.stopSanityCheck = function() |
1818
|
* Shows a warning after some time with unsaved changes and autosave.
|
1555
|
* Shows a warning after some time with unsaved changes and autosave.
|
1819
|
*
|
1556
|
*
|
1820
|
*/
|
1557
|
*/
|
1821
|
-App.prototype.sanityCheck = function()
|
|
|
1822
|
-{
|
1558
|
+App.prototype.sanityCheck = function () {
|
1823
|
var file = this.getCurrentFile();
|
1559
|
var file = this.getCurrentFile();
|
1824
|
|
1560
|
|
1825
|
- if (file != null && file.isModified() && file.isAutosave() && file.isOverdue())
|
|
|
1826
|
- {
|
|
|
1827
|
- var evt = {category: 'WARN-FILE-' + file.getHash(),
|
1561
|
+ if (file != null && file.isModified() && file.isAutosave() && file.isOverdue()) {
|
|
|
1562
|
+ var evt = {
|
|
|
1563
|
+ category: 'WARN-FILE-' + file.getHash(),
|
1828
|
action: ((file.savingFile) ? 'saving' : '') +
|
1564
|
action: ((file.savingFile) ? 'saving' : '') +
|
1829
|
- ((file.savingFile && file.savingFileTime != null) ? '_' +
|
|
|
1830
|
- Math.round((Date.now() - file.savingFileTime.getTime()) / 1000) : '') +
|
|
|
1831
|
- ((file.saveLevel != null) ? ('-sl_' + file.saveLevel) : '') +
|
|
|
1832
|
- '-age_' + ((file.ageStart != null) ? Math.round((Date.now() - file.ageStart.getTime()) / 1000) : 'x') +
|
|
|
1833
|
- ((this.editor.autosave) ? '' : '-nosave') +
|
|
|
1834
|
- ((file.isAutosave()) ? '' : '-noauto') +
|
|
|
1835
|
- '-open_' + ((file.opened != null) ? Math.round((Date.now() - file.opened.getTime()) / 1000) : 'x') +
|
|
|
1836
|
- '-save_' + ((file.lastSaved != null) ? Math.round((Date.now() - file.lastSaved.getTime()) / 1000) : 'x') +
|
|
|
1837
|
- '-change_' + ((file.lastChanged != null) ? Math.round((Date.now() - file.lastChanged.getTime()) / 1000) : 'x')+
|
|
|
1838
|
- '-alive_' + Math.round((Date.now() - App.startTime.getTime()) / 1000),
|
|
|
1839
|
- label: (file.sync != null) ? ('client_' + file.sync.clientId) : 'nosync'};
|
|
|
1840
|
-
|
|
|
1841
|
- if (file.constructor == DriveFile && file.desc != null && this.drive != null)
|
|
|
1842
|
- {
|
1565
|
+ ((file.savingFile && file.savingFileTime != null) ? '_' +
|
|
|
1566
|
+ Math.round((Date.now() - file.savingFileTime.getTime()) / 1000) : '') +
|
|
|
1567
|
+ ((file.saveLevel != null) ? ('-sl_' + file.saveLevel) : '') +
|
|
|
1568
|
+ '-age_' + ((file.ageStart != null) ? Math.round((Date.now() - file.ageStart.getTime()) / 1000) : 'x') +
|
|
|
1569
|
+ ((this.editor.autosave) ? '' : '-nosave') +
|
|
|
1570
|
+ ((file.isAutosave()) ? '' : '-noauto') +
|
|
|
1571
|
+ '-open_' + ((file.opened != null) ? Math.round((Date.now() - file.opened.getTime()) / 1000) : 'x') +
|
|
|
1572
|
+ '-save_' + ((file.lastSaved != null) ? Math.round((Date.now() - file.lastSaved.getTime()) / 1000) : 'x') +
|
|
|
1573
|
+ '-change_' + ((file.lastChanged != null) ? Math.round((Date.now() - file.lastChanged.getTime()) / 1000) : 'x') +
|
|
|
1574
|
+ '-alive_' + Math.round((Date.now() - App.startTime.getTime()) / 1000),
|
|
|
1575
|
+ label: (file.sync != null) ? ('client_' + file.sync.clientId) : 'nosync'
|
|
|
1576
|
+ };
|
|
|
1577
|
+
|
|
|
1578
|
+ if (file.constructor == DriveFile && file.desc != null && this.drive != null) {
|
1843
|
evt.label += ((this.drive.user != null) ? ('-user_' + this.drive.user.id) : '-nouser') + '-rev_' +
|
1579
|
evt.label += ((this.drive.user != null) ? ('-user_' + this.drive.user.id) : '-nouser') + '-rev_' +
|
1844
|
file.desc.headRevisionId + '-mod_' + file.desc.modifiedDate + '-size_' + file.getSize() +
|
1580
|
file.desc.headRevisionId + '-mod_' + file.desc.modifiedDate + '-size_' + file.getSize() +
|
1845
|
'-mime_' + file.desc.mimeType;
|
1581
|
'-mime_' + file.desc.mimeType;
|
|
@@ -1849,12 +1585,10 @@ App.prototype.sanityCheck = function() |
|
@@ -1849,12 +1585,10 @@ App.prototype.sanityCheck = function() |
1849
|
|
1585
|
|
1850
|
var msg = mxResources.get('ensureDataSaved');
|
1586
|
var msg = mxResources.get('ensureDataSaved');
|
1851
|
|
1587
|
|
1852
|
- if (file.lastSaved != null)
|
|
|
1853
|
- {
|
1588
|
+ if (file.lastSaved != null) {
|
1854
|
var str = this.timeSince(file.lastSaved);
|
1589
|
var str = this.timeSince(file.lastSaved);
|
1855
|
|
1590
|
|
1856
|
- if (str == null)
|
|
|
1857
|
- {
|
1591
|
+ if (str == null) {
|
1858
|
str = mxResources.get('lessThanAMinute');
|
1592
|
str = mxResources.get('lessThanAMinute');
|
1859
|
}
|
1593
|
}
|
1860
|
|
1594
|
|
|
@@ -1865,16 +1599,13 @@ App.prototype.sanityCheck = function() |
|
@@ -1865,16 +1599,13 @@ App.prototype.sanityCheck = function() |
1865
|
this.spinner.stop();
|
1599
|
this.spinner.stop();
|
1866
|
|
1600
|
|
1867
|
this.showError(mxResources.get('unsavedChanges'), msg, mxResources.get('ignore'),
|
1601
|
this.showError(mxResources.get('unsavedChanges'), msg, mxResources.get('ignore'),
|
1868
|
- mxUtils.bind(this, function()
|
|
|
1869
|
- {
|
1602
|
+ mxUtils.bind(this, function () {
|
1870
|
this.hideDialog();
|
1603
|
this.hideDialog();
|
1871
|
- }), null, mxResources.get('save'), mxUtils.bind(this, function()
|
|
|
1872
|
- {
|
1604
|
+ }), null, mxResources.get('save'), mxUtils.bind(this, function () {
|
1873
|
this.stopSanityCheck();
|
1605
|
this.stopSanityCheck();
|
1874
|
this.actions.get((this.mode == null || !file.isEditable()) ?
|
1606
|
this.actions.get((this.mode == null || !file.isEditable()) ?
|
1875
|
'saveAs' : 'save').funct();
|
1607
|
'saveAs' : 'save').funct();
|
1876
|
- }), null, null, 360, 120, null, mxUtils.bind(this, function()
|
|
|
1877
|
- {
|
1608
|
+ }), null, null, 360, 120, null, mxUtils.bind(this, function () {
|
1878
|
this.scheduleSanityCheck();
|
1609
|
this.scheduleSanityCheck();
|
1879
|
}));
|
1610
|
}));
|
1880
|
}
|
1611
|
}
|
|
@@ -1883,28 +1614,25 @@ App.prototype.sanityCheck = function() |
|
@@ -1883,28 +1614,25 @@ App.prototype.sanityCheck = function() |
1883
|
/**
|
1614
|
/**
|
1884
|
* Returns true if the current domain is for the new drive app.
|
1615
|
* Returns true if the current domain is for the new drive app.
|
1885
|
*/
|
1616
|
*/
|
1886
|
-App.prototype.isDriveDomain = function()
|
|
|
1887
|
-{
|
1617
|
+App.prototype.isDriveDomain = function () {
|
1888
|
return urlParams['drive'] != '0' &&
|
1618
|
return urlParams['drive'] != '0' &&
|
1889
|
(window.location.hostname == 'test.draw.io' ||
|
1619
|
(window.location.hostname == 'test.draw.io' ||
|
1890
|
- window.location.hostname == 'www.draw.io' ||
|
|
|
1891
|
- window.location.hostname == 'drive.draw.io' ||
|
|
|
1892
|
- window.location.hostname == 'app.diagrams.net' ||
|
|
|
1893
|
- window.location.hostname == 'jgraph.github.io');
|
1620
|
+ window.location.hostname == 'www.draw.io' ||
|
|
|
1621
|
+ window.location.hostname == 'drive.draw.io' ||
|
|
|
1622
|
+ window.location.hostname == 'app.diagrams.net' ||
|
|
|
1623
|
+ window.location.hostname == 'jgraph.github.io');
|
1894
|
};
|
1624
|
};
|
1895
|
|
1625
|
|
1896
|
/**
|
1626
|
/**
|
1897
|
* Returns the pusher instance for notifications. Creates the instance of none exists.
|
1627
|
* Returns the pusher instance for notifications. Creates the instance of none exists.
|
1898
|
*/
|
1628
|
*/
|
1899
|
-App.prototype.getPusher = function()
|
|
|
1900
|
-{
|
|
|
1901
|
- if (this.pusher == null && typeof window.Pusher === 'function')
|
|
|
1902
|
- {
|
1629
|
+App.prototype.getPusher = function () {
|
|
|
1630
|
+ if (this.pusher == null && typeof window.Pusher === 'function') {
|
1903
|
this.pusher = new Pusher(App.PUSHER_KEY,
|
1631
|
this.pusher = new Pusher(App.PUSHER_KEY,
|
1904
|
- {
|
|
|
1905
|
- cluster: App.PUSHER_CLUSTER,
|
|
|
1906
|
- encrypted: true
|
|
|
1907
|
- });
|
1632
|
+ {
|
|
|
1633
|
+ cluster: App.PUSHER_CLUSTER,
|
|
|
1634
|
+ encrypted: true
|
|
|
1635
|
+ });
|
1908
|
}
|
1636
|
}
|
1909
|
|
1637
|
|
1910
|
return this.pusher;
|
1638
|
return this.pusher;
|
|
@@ -1913,10 +1641,8 @@ App.prototype.getPusher = function() |
|
@@ -1913,10 +1641,8 @@ App.prototype.getPusher = function() |
1913
|
/**
|
1641
|
/**
|
1914
|
* Shows a footer to download the desktop version once per session.
|
1642
|
* Shows a footer to download the desktop version once per session.
|
1915
|
*/
|
1643
|
*/
|
1916
|
-App.prototype.showNameChangeBanner = function()
|
|
|
1917
|
-{
|
|
|
1918
|
- this.showBanner('DiagramsFooter', 'draw.io is now diagrams.net', mxUtils.bind(this, function()
|
|
|
1919
|
- {
|
1644
|
+App.prototype.showNameChangeBanner = function () {
|
|
|
1645
|
+ this.showBanner('DiagramsFooter', 'draw.io is now diagrams.net', mxUtils.bind(this, function () {
|
1920
|
this.openLink('https://www.diagrams.net/blog/move-diagrams-net');
|
1646
|
this.openLink('https://www.diagrams.net/blog/move-diagrams-net');
|
1921
|
}));
|
1647
|
}));
|
1922
|
};
|
1648
|
};
|
|
@@ -1924,10 +1650,8 @@ App.prototype.showNameChangeBanner = function() |
|
@@ -1924,10 +1650,8 @@ App.prototype.showNameChangeBanner = function() |
1924
|
/**
|
1650
|
/**
|
1925
|
* Shows a footer to download the desktop version once per session.
|
1651
|
* Shows a footer to download the desktop version once per session.
|
1926
|
*/
|
1652
|
*/
|
1927
|
-App.prototype.showNameConfBanner = function()
|
|
|
1928
|
-{
|
|
|
1929
|
- this.showBanner('ConfFooter', 'Try draw.io for Confluence', mxUtils.bind(this, function()
|
|
|
1930
|
- {
|
1653
|
+App.prototype.showNameConfBanner = function () {
|
|
|
1654
|
+ this.showBanner('ConfFooter', 'Try draw.io for Confluence', mxUtils.bind(this, function () {
|
1931
|
this.openLink('https://marketplace.atlassian.com/apps/1210933/draw-io-diagrams-for-confluence');
|
1655
|
this.openLink('https://marketplace.atlassian.com/apps/1210933/draw-io-diagrams-for-confluence');
|
1932
|
}), true);
|
1656
|
}), true);
|
1933
|
};
|
1657
|
};
|
|
@@ -1935,10 +1659,8 @@ App.prototype.showNameConfBanner = function() |
|
@@ -1935,10 +1659,8 @@ App.prototype.showNameConfBanner = function() |
1935
|
/**
|
1659
|
/**
|
1936
|
* Shows a footer to download the desktop version once per session.
|
1660
|
* Shows a footer to download the desktop version once per session.
|
1937
|
*/
|
1661
|
*/
|
1938
|
-App.prototype.showDownloadDesktopBanner = function()
|
|
|
1939
|
-{
|
|
|
1940
|
- this.showBanner('DesktopFooter', mxResources.get('downloadDesktop'), mxUtils.bind(this, function()
|
|
|
1941
|
- {
|
1662
|
+App.prototype.showDownloadDesktopBanner = function () {
|
|
|
1663
|
+ this.showBanner('DesktopFooter', mxResources.get('downloadDesktop'), mxUtils.bind(this, function () {
|
1942
|
this.openLink('https://get.diagrams.net/');
|
1664
|
this.openLink('https://get.diagrams.net/');
|
1943
|
}));
|
1665
|
}));
|
1944
|
};
|
1666
|
};
|
|
@@ -1946,140 +1668,127 @@ App.prototype.showDownloadDesktopBanner = function() |
|
@@ -1946,140 +1668,127 @@ App.prototype.showDownloadDesktopBanner = function() |
1946
|
/**
|
1668
|
/**
|
1947
|
* Shows a footer to download the desktop version once per session.
|
1669
|
* Shows a footer to download the desktop version once per session.
|
1948
|
*/
|
1670
|
*/
|
1949
|
-App.prototype.showRatingBanner = function()
|
|
|
1950
|
-{
|
|
|
1951
|
- if (!this.bannerShowing && !this['hideBanner' + 'ratingFooter'] &&
|
|
|
1952
|
- (!isLocalStorage || mxSettings.settings == null ||
|
|
|
1953
|
- mxSettings.settings['close' + 'ratingFooter'] == null))
|
|
|
1954
|
- {
|
|
|
1955
|
- var banner = document.createElement('div');
|
|
|
1956
|
- banner.style.cssText = 'position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;' +
|
|
|
1957
|
- 'font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:' + mxPopupMenu.prototype.zIndex + ';';
|
|
|
1958
|
- mxUtils.setPrefixedStyle(banner.style, 'box-shadow', '1px 1px 2px 0px #ddd');
|
|
|
1959
|
- mxUtils.setPrefixedStyle(banner.style, 'transform', 'translate(-50%,120%)');
|
|
|
1960
|
- mxUtils.setPrefixedStyle(banner.style, 'transition', 'all 1s ease');
|
|
|
1961
|
- banner.className = 'geBtn gePrimaryBtn';
|
|
|
1962
|
-
|
|
|
1963
|
- var img = document.createElement('img');
|
|
|
1964
|
- img.setAttribute('src', Dialog.prototype.closeImage);
|
|
|
1965
|
- img.setAttribute('title', mxResources.get('close'));
|
|
|
1966
|
- img.setAttribute('border', '0');
|
|
|
1967
|
- img.style.cssText = 'position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;';
|
|
|
1968
|
- banner.appendChild(img);
|
|
|
1969
|
-
|
|
|
1970
|
- var star = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZ' +
|
|
|
1971
|
- 'XdvcmtzIENTM5jWRgMAAAQRdEVYdFhNTDpjb20uYWRvYmUueG1wADw/eHBhY2tldCBiZWdpbj0iICAgIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8i' +
|
|
|
1972
|
- 'IHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMS1jMDM0IDQ2LjI3Mjk3NiwgU2F0IEphbiAyNyAyMDA3IDIyOjExOjQxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDI' +
|
|
|
1973
|
- 'vMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iPgogICAgICAgICA8eGFwOkNyZW' +
|
|
|
1974
|
- 'F0b3JUb29sPkFkb2JlIEZpcmV3b3JrcyBDUzM8L3hhcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhhcDpDcmVhdGVEYXRlPjIwMDgtMDItMTdUMDI6MzY6NDVaPC94YXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhhcDpNb2RpZ' +
|
|
|
1975
|
- 'nlEYXRlPjIwMDktMDMtMTdUMTQ6MTI6MDJaPC94YXA6TW9kaWZ5RGF0ZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJo' +
|
|
|
1976
|
- 'dHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo' +
|
|
|
1977
|
- 'gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC' +
|
|
|
1978
|
- 'AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI' +
|
|
|
1979
|
- 'CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIIImu8AAAAAVdEVYdENyZWF0aW9uIFRpbWUAMi8xNy8wOCCcqlgAAAHuSURBVDiNlZJBi1JRGIbfk+fc0ZuMXorJe4XujWoMdREaA23HICj6AQeLINr0C4I27ab2' +
|
|
|
1980
|
- '7VqOI9+q/sH8gMDceG1RkIwgClEXFMbRc5zTZgZURmG+5fu9PN/7Hg6wZohoh4h21nn4uqXW+q0xZgzg+SrPlTXX73uet+26bp6ICpcGaK1fua57M5vN3tZav7gUgIiSqVTqcRAEm0EQbCaTyQoRXb3Iy4hoG8CT6XSaY4xtMMa' +
|
|
|
1981
|
- 'SQohMPp8v+r7vAEC3243CMGwqpfoApsaYE8uyfgM45ABOjDEvXdfNlMvlzFINAIDneY7neZVzvdlsDgaDQYtzfsjOIjtKqU+e5+0Wi0V3VV8ACMOw3+/3v3HOX0sp/7K53te11h/S6fRuoVAIhBAL76OUOm2320dRFH0VQuxJKf' +
|
|
|
1982
|
- '8BAFu+UKvVvpRKpWe2bYt5fTweq0ajQUKIN1LK43N94SMR0Y1YLLYlhBBKqQUw51wkEol7WmuzoC8FuJtIJLaUUoii6Ljb7f4yxpz6vp9zHMe2bfvacDi8BeDHKkBuNps5rVbr52QyaVuW9ZExttHpdN73ej0/Ho+nADxYCdBaV' +
|
|
|
1983
|
- '0aj0RGAz5ZlHUgpx2erR/V6/d1wOHwK4CGA/QsBnPN9AN+llH+WkqFare4R0QGAO/M6M8Ysey81/wGqa8MlVvHPNAAAAABJRU5ErkJggg==';
|
|
|
1984
|
-
|
|
|
1985
|
- mxUtils.write(banner, 'Please rate us');
|
|
|
1986
|
- document.body.appendChild(banner);
|
|
|
1987
|
-
|
|
|
1988
|
- var star1 = document.createElement('img');
|
|
|
1989
|
- star1.setAttribute('border', '0');
|
|
|
1990
|
- star1.setAttribute('align', 'absmiddle');
|
|
|
1991
|
- star1.setAttribute('title', '1 star');
|
|
|
1992
|
- star1.setAttribute('style', 'margin-top:-6px;cursor:pointer;margin-left:8px;');
|
|
|
1993
|
- star1.setAttribute('src', star);
|
|
|
1994
|
- banner.appendChild(star1);
|
|
|
1995
|
-
|
|
|
1996
|
- var star2 = document.createElement('img');
|
|
|
1997
|
- star2.setAttribute('border', '0');
|
|
|
1998
|
- star2.setAttribute('align', 'absmiddle');
|
|
|
1999
|
- star2.setAttribute('title', '2 star');
|
|
|
2000
|
- star2.setAttribute('style', 'margin-top:-6px;margin-left:3px;cursor:pointer;');
|
|
|
2001
|
- star2.setAttribute('src', star);
|
|
|
2002
|
- banner.appendChild(star2);
|
|
|
2003
|
-
|
|
|
2004
|
- var star3 = document.createElement('img');
|
|
|
2005
|
- star3.setAttribute('border', '0');
|
|
|
2006
|
- star3.setAttribute('align', 'absmiddle');
|
|
|
2007
|
- star3.setAttribute('title', '3 star');
|
|
|
2008
|
- star3.setAttribute('style', 'margin-top:-6px;margin-left:3px;cursor:pointer;');
|
|
|
2009
|
- star3.setAttribute('src', star);
|
|
|
2010
|
- banner.appendChild(star3);
|
|
|
2011
|
-
|
|
|
2012
|
- var star4 = document.createElement('img');
|
|
|
2013
|
- star4.setAttribute('border', '0');
|
|
|
2014
|
- star4.setAttribute('align', 'absmiddle');
|
|
|
2015
|
- star4.setAttribute('title', '4 star');
|
|
|
2016
|
- star4.setAttribute('style', 'margin-top:-6px;margin-left:3px;cursor:pointer;');
|
|
|
2017
|
- star4.setAttribute('src', star);
|
|
|
2018
|
- banner.appendChild(star4);
|
|
|
2019
|
-
|
|
|
2020
|
- this.bannerShowing = true;
|
|
|
2021
|
-
|
|
|
2022
|
- var onclose = mxUtils.bind(this, function()
|
|
|
2023
|
- {
|
|
|
2024
|
- if (banner.parentNode != null)
|
|
|
2025
|
- {
|
|
|
2026
|
- banner.parentNode.removeChild(banner);
|
|
|
2027
|
- this.bannerShowing = false;
|
|
|
2028
|
-
|
|
|
2029
|
- this['hideBanner' + 'ratingFooter'] = true;
|
|
|
2030
|
-
|
|
|
2031
|
- if (isLocalStorage && mxSettings.settings != null)
|
|
|
2032
|
- {
|
|
|
2033
|
- mxSettings.settings['close' + 'ratingFooter'] = Date.now();
|
|
|
2034
|
- mxSettings.save();
|
|
|
2035
|
- }
|
1671
|
+App.prototype.showRatingBanner = function () {
|
|
|
1672
|
+ if (!this.bannerShowing && !this['hideBanner' + 'ratingFooter'] &&
|
|
|
1673
|
+ (!isLocalStorage || mxSettings.settings == null ||
|
|
|
1674
|
+ mxSettings.settings['close' + 'ratingFooter'] == null)) {
|
|
|
1675
|
+ var banner = document.createElement('div');
|
|
|
1676
|
+ banner.style.cssText = 'position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;' +
|
|
|
1677
|
+ 'font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:' + mxPopupMenu.prototype.zIndex + ';';
|
|
|
1678
|
+ mxUtils.setPrefixedStyle(banner.style, 'box-shadow', '1px 1px 2px 0px #ddd');
|
|
|
1679
|
+ mxUtils.setPrefixedStyle(banner.style, 'transform', 'translate(-50%,120%)');
|
|
|
1680
|
+ mxUtils.setPrefixedStyle(banner.style, 'transition', 'all 1s ease');
|
|
|
1681
|
+ banner.className = 'geBtn gePrimaryBtn';
|
|
|
1682
|
+
|
|
|
1683
|
+ var img = document.createElement('img');
|
|
|
1684
|
+ img.setAttribute('src', Dialog.prototype.closeImage);
|
|
|
1685
|
+ img.setAttribute('title', mxResources.get('close'));
|
|
|
1686
|
+ img.setAttribute('border', '0');
|
|
|
1687
|
+ img.style.cssText = 'position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;';
|
|
|
1688
|
+ banner.appendChild(img);
|
|
|
1689
|
+
|
|
|
1690
|
+ var star = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZ' +
|
|
|
1691
|
+ 'XdvcmtzIENTM5jWRgMAAAQRdEVYdFhNTDpjb20uYWRvYmUueG1wADw/eHBhY2tldCBiZWdpbj0iICAgIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8i' +
|
|
|
1692
|
+ 'IHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMS1jMDM0IDQ2LjI3Mjk3NiwgU2F0IEphbiAyNyAyMDA3IDIyOjExOjQxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDI' +
|
|
|
1693
|
+ 'vMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iPgogICAgICAgICA8eGFwOkNyZW' +
|
|
|
1694
|
+ 'F0b3JUb29sPkFkb2JlIEZpcmV3b3JrcyBDUzM8L3hhcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhhcDpDcmVhdGVEYXRlPjIwMDgtMDItMTdUMDI6MzY6NDVaPC94YXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhhcDpNb2RpZ' +
|
|
|
1695
|
+ 'nlEYXRlPjIwMDktMDMtMTdUMTQ6MTI6MDJaPC94YXA6TW9kaWZ5RGF0ZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJo' +
|
|
|
1696
|
+ 'dHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo' +
|
|
|
1697
|
+ 'gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC' +
|
|
|
1698
|
+ 'AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI' +
|
|
|
1699
|
+ 'CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIIImu8AAAAAVdEVYdENyZWF0aW9uIFRpbWUAMi8xNy8wOCCcqlgAAAHuSURBVDiNlZJBi1JRGIbfk+fc0ZuMXorJe4XujWoMdREaA23HICj6AQeLINr0C4I27ab2' +
|
|
|
1700
|
+ '7VqOI9+q/sH8gMDceG1RkIwgClEXFMbRc5zTZgZURmG+5fu9PN/7Hg6wZohoh4h21nn4uqXW+q0xZgzg+SrPlTXX73uet+26bp6ICpcGaK1fua57M5vN3tZav7gUgIiSqVTqcRAEm0EQbCaTyQoRXb3Iy4hoG8CT6XSaY4xtMMa' +
|
|
|
1701
|
+ 'SQohMPp8v+r7vAEC3243CMGwqpfoApsaYE8uyfgM45ABOjDEvXdfNlMvlzFINAIDneY7neZVzvdlsDgaDQYtzfsjOIjtKqU+e5+0Wi0V3VV8ACMOw3+/3v3HOX0sp/7K53te11h/S6fRuoVAIhBAL76OUOm2320dRFH0VQuxJKf' +
|
|
|
1702
|
+ '8BAFu+UKvVvpRKpWe2bYt5fTweq0ajQUKIN1LK43N94SMR0Y1YLLYlhBBKqQUw51wkEol7WmuzoC8FuJtIJLaUUoii6Ljb7f4yxpz6vp9zHMe2bfvacDi8BeDHKkBuNps5rVbr52QyaVuW9ZExttHpdN73ej0/Ho+nADxYCdBaV' +
|
|
|
1703
|
+ '0aj0RGAz5ZlHUgpx2erR/V6/d1wOHwK4CGA/QsBnPN9AN+llH+WkqFare4R0QGAO/M6M8Ysey81/wGqa8MlVvHPNAAAAABJRU5ErkJggg==';
|
|
|
1704
|
+
|
|
|
1705
|
+ mxUtils.write(banner, 'Please rate us');
|
|
|
1706
|
+ document.body.appendChild(banner);
|
|
|
1707
|
+
|
|
|
1708
|
+ var star1 = document.createElement('img');
|
|
|
1709
|
+ star1.setAttribute('border', '0');
|
|
|
1710
|
+ star1.setAttribute('align', 'absmiddle');
|
|
|
1711
|
+ star1.setAttribute('title', '1 star');
|
|
|
1712
|
+ star1.setAttribute('style', 'margin-top:-6px;cursor:pointer;margin-left:8px;');
|
|
|
1713
|
+ star1.setAttribute('src', star);
|
|
|
1714
|
+ banner.appendChild(star1);
|
|
|
1715
|
+
|
|
|
1716
|
+ var star2 = document.createElement('img');
|
|
|
1717
|
+ star2.setAttribute('border', '0');
|
|
|
1718
|
+ star2.setAttribute('align', 'absmiddle');
|
|
|
1719
|
+ star2.setAttribute('title', '2 star');
|
|
|
1720
|
+ star2.setAttribute('style', 'margin-top:-6px;margin-left:3px;cursor:pointer;');
|
|
|
1721
|
+ star2.setAttribute('src', star);
|
|
|
1722
|
+ banner.appendChild(star2);
|
|
|
1723
|
+
|
|
|
1724
|
+ var star3 = document.createElement('img');
|
|
|
1725
|
+ star3.setAttribute('border', '0');
|
|
|
1726
|
+ star3.setAttribute('align', 'absmiddle');
|
|
|
1727
|
+ star3.setAttribute('title', '3 star');
|
|
|
1728
|
+ star3.setAttribute('style', 'margin-top:-6px;margin-left:3px;cursor:pointer;');
|
|
|
1729
|
+ star3.setAttribute('src', star);
|
|
|
1730
|
+ banner.appendChild(star3);
|
|
|
1731
|
+
|
|
|
1732
|
+ var star4 = document.createElement('img');
|
|
|
1733
|
+ star4.setAttribute('border', '0');
|
|
|
1734
|
+ star4.setAttribute('align', 'absmiddle');
|
|
|
1735
|
+ star4.setAttribute('title', '4 star');
|
|
|
1736
|
+ star4.setAttribute('style', 'margin-top:-6px;margin-left:3px;cursor:pointer;');
|
|
|
1737
|
+ star4.setAttribute('src', star);
|
|
|
1738
|
+ banner.appendChild(star4);
|
|
|
1739
|
+
|
|
|
1740
|
+ this.bannerShowing = true;
|
|
|
1741
|
+
|
|
|
1742
|
+ var onclose = mxUtils.bind(this, function () {
|
|
|
1743
|
+ if (banner.parentNode != null) {
|
|
|
1744
|
+ banner.parentNode.removeChild(banner);
|
|
|
1745
|
+ this.bannerShowing = false;
|
|
|
1746
|
+
|
|
|
1747
|
+ this['hideBanner' + 'ratingFooter'] = true;
|
|
|
1748
|
+
|
|
|
1749
|
+ if (isLocalStorage && mxSettings.settings != null) {
|
|
|
1750
|
+ mxSettings.settings['close' + 'ratingFooter'] = Date.now();
|
|
|
1751
|
+ mxSettings.save();
|
2036
|
}
|
1752
|
}
|
2037
|
- });
|
1753
|
+ }
|
|
|
1754
|
+ });
|
2038
|
|
1755
|
|
2039
|
- mxEvent.addListener(img, 'click', mxUtils.bind(this, function(e)
|
|
|
2040
|
- {
|
|
|
2041
|
- mxEvent.consume(e);
|
|
|
2042
|
- onclose();
|
|
|
2043
|
- }));
|
|
|
2044
|
- mxEvent.addListener(star1, 'click', mxUtils.bind(this, function(e)
|
|
|
2045
|
- {
|
|
|
2046
|
- mxEvent.consume(e);
|
|
|
2047
|
- onclose();
|
|
|
2048
|
- }));
|
|
|
2049
|
- mxEvent.addListener(star2, 'click', mxUtils.bind(this, function(e)
|
|
|
2050
|
- {
|
|
|
2051
|
- mxEvent.consume(e);
|
|
|
2052
|
- onclose();
|
|
|
2053
|
- }));
|
|
|
2054
|
- mxEvent.addListener(star3, 'click', mxUtils.bind(this, function(e)
|
|
|
2055
|
- {
|
|
|
2056
|
- mxEvent.consume(e);
|
|
|
2057
|
- onclose();
|
|
|
2058
|
- }));
|
|
|
2059
|
- mxEvent.addListener(star4, 'click', mxUtils.bind(this, function(e)
|
|
|
2060
|
- {
|
|
|
2061
|
- mxEvent.consume(e);
|
|
|
2062
|
- window.open('https://marketplace.atlassian.com/apps/1210933/draw-io-diagrams-for-confluence?hosting=datacenter&tab=reviews');
|
|
|
2063
|
- onclose();
|
|
|
2064
|
- }));
|
1756
|
+ mxEvent.addListener(img, 'click', mxUtils.bind(this, function (e) {
|
|
|
1757
|
+ mxEvent.consume(e);
|
|
|
1758
|
+ onclose();
|
|
|
1759
|
+ }));
|
|
|
1760
|
+ mxEvent.addListener(star1, 'click', mxUtils.bind(this, function (e) {
|
|
|
1761
|
+ mxEvent.consume(e);
|
|
|
1762
|
+ onclose();
|
|
|
1763
|
+ }));
|
|
|
1764
|
+ mxEvent.addListener(star2, 'click', mxUtils.bind(this, function (e) {
|
|
|
1765
|
+ mxEvent.consume(e);
|
|
|
1766
|
+ onclose();
|
|
|
1767
|
+ }));
|
|
|
1768
|
+ mxEvent.addListener(star3, 'click', mxUtils.bind(this, function (e) {
|
|
|
1769
|
+ mxEvent.consume(e);
|
|
|
1770
|
+ onclose();
|
|
|
1771
|
+ }));
|
|
|
1772
|
+ mxEvent.addListener(star4, 'click', mxUtils.bind(this, function (e) {
|
|
|
1773
|
+ mxEvent.consume(e);
|
|
|
1774
|
+ window.open('https://marketplace.atlassian.com/apps/1210933/draw-io-diagrams-for-confluence?hosting=datacenter&tab=reviews');
|
|
|
1775
|
+ onclose();
|
|
|
1776
|
+ }));
|
2065
|
|
1777
|
|
2066
|
- var hide = mxUtils.bind(this, function()
|
|
|
2067
|
- {
|
|
|
2068
|
- mxUtils.setPrefixedStyle(banner.style, 'transform', 'translate(-50%,120%)');
|
1778
|
+ var hide = mxUtils.bind(this, function () {
|
|
|
1779
|
+ mxUtils.setPrefixedStyle(banner.style, 'transform', 'translate(-50%,120%)');
|
2069
|
|
1780
|
|
2070
|
- window.setTimeout(mxUtils.bind(this, function()
|
|
|
2071
|
- {
|
|
|
2072
|
- onclose();
|
|
|
2073
|
- }), 1000);
|
|
|
2074
|
- });
|
1781
|
+ window.setTimeout(mxUtils.bind(this, function () {
|
|
|
1782
|
+ onclose();
|
|
|
1783
|
+ }), 1000);
|
|
|
1784
|
+ });
|
2075
|
|
1785
|
|
2076
|
- window.setTimeout(mxUtils.bind(this, function()
|
|
|
2077
|
- {
|
|
|
2078
|
- mxUtils.setPrefixedStyle(banner.style, 'transform', 'translate(-50%,0%)');
|
|
|
2079
|
- }), 500);
|
1786
|
+ window.setTimeout(mxUtils.bind(this, function () {
|
|
|
1787
|
+ mxUtils.setPrefixedStyle(banner.style, 'transform', 'translate(-50%,0%)');
|
|
|
1788
|
+ }), 500);
|
2080
|
|
1789
|
|
2081
|
- window.setTimeout(hide, 60000);
|
|
|
2082
|
- }
|
1790
|
+ window.setTimeout(hide, 60000);
|
|
|
1791
|
+ }
|
2083
|
};
|
1792
|
};
|
2084
|
|
1793
|
|
2085
|
/**
|
1794
|
/**
|
|
@@ -2087,13 +1796,11 @@ App.prototype.showRatingBanner = function() |
|
@@ -2087,13 +1796,11 @@ App.prototype.showRatingBanner = function() |
2087
|
* IMPORTANT: Do not change this function without consulting
|
1796
|
* IMPORTANT: Do not change this function without consulting
|
2088
|
* the privacy lead. No personal information must be sent.
|
1797
|
* the privacy lead. No personal information must be sent.
|
2089
|
*/
|
1798
|
*/
|
2090
|
-App.prototype.checkLicense = function()
|
|
|
2091
|
-{
|
1799
|
+App.prototype.checkLicense = function () {
|
2092
|
var driveUser = this.drive.getUser();
|
1800
|
var driveUser = this.drive.getUser();
|
2093
|
var email = (driveUser != null) ? driveUser.email : null;
|
1801
|
var email = (driveUser != null) ? driveUser.email : null;
|
2094
|
|
1802
|
|
2095
|
- if (!this.isOffline() && !this.editor.chromeless && email != null && driveUser.id != null)
|
|
|
2096
|
- {
|
1803
|
+ if (!this.isOffline() && !this.editor.chromeless && email != null && driveUser.id != null) {
|
2097
|
// Only the domain and hashed user ID are transmitted. This code was reviewed and deemed
|
1804
|
// Only the domain and hashed user ID are transmitted. This code was reviewed and deemed
|
2098
|
// compliant by dbenson 2021-09-01.
|
1805
|
// compliant by dbenson 2021-09-01.
|
2099
|
var at = email.lastIndexOf('@');
|
1806
|
var at = email.lastIndexOf('@');
|
|
@@ -2102,28 +1809,22 @@ App.prototype.checkLicense = function() |
|
@@ -2102,28 +1809,22 @@ App.prototype.checkLicense = function() |
2102
|
|
1809
|
|
2103
|
// Timestamp is workaround for cached response in certain environments
|
1810
|
// Timestamp is workaround for cached response in certain environments
|
2104
|
mxUtils.post('/license', 'domain=' + encodeURIComponent(domain) + '&id=' + encodeURIComponent(userId) +
|
1811
|
mxUtils.post('/license', 'domain=' + encodeURIComponent(domain) + '&id=' + encodeURIComponent(userId) +
|
2105
|
- '&ts=' + new Date().getTime(),
|
|
|
2106
|
- mxUtils.bind(this, function(req)
|
|
|
2107
|
- {
|
|
|
2108
|
- try
|
|
|
2109
|
- {
|
|
|
2110
|
- if (req.getStatus() >= 200 && req.getStatus() <= 299)
|
|
|
2111
|
- {
|
1812
|
+ '&ts=' + new Date().getTime(),
|
|
|
1813
|
+ mxUtils.bind(this, function (req) {
|
|
|
1814
|
+ try {
|
|
|
1815
|
+ if (req.getStatus() >= 200 && req.getStatus() <= 299) {
|
2112
|
var value = req.getText();
|
1816
|
var value = req.getText();
|
2113
|
|
1817
|
|
2114
|
- if (value.length > 0)
|
|
|
2115
|
- {
|
1818
|
+ if (value.length > 0) {
|
2116
|
var lic = JSON.parse(value);
|
1819
|
var lic = JSON.parse(value);
|
2117
|
|
1820
|
|
2118
|
- if (lic != null)
|
|
|
2119
|
- {
|
1821
|
+ if (lic != null) {
|
2120
|
this.handleLicense(lic, domain);
|
1822
|
this.handleLicense(lic, domain);
|
2121
|
}
|
1823
|
}
|
2122
|
}
|
1824
|
}
|
2123
|
}
|
1825
|
}
|
2124
|
}
|
1826
|
}
|
2125
|
- catch (e)
|
|
|
2126
|
- {
|
1827
|
+ catch (e) {
|
2127
|
// ignore
|
1828
|
// ignore
|
2128
|
}
|
1829
|
}
|
2129
|
}));
|
1830
|
}));
|
|
@@ -2133,10 +1834,8 @@ App.prototype.checkLicense = function() |
|
@@ -2133,10 +1834,8 @@ App.prototype.checkLicense = function() |
2133
|
/**
|
1834
|
/**
|
2134
|
* Returns true if the current domain is for the new drive app.
|
1835
|
* Returns true if the current domain is for the new drive app.
|
2135
|
*/
|
1836
|
*/
|
2136
|
-App.prototype.handleLicense = function(lic, domain)
|
|
|
2137
|
-{
|
|
|
2138
|
- if (lic != null && lic.plugins != null)
|
|
|
2139
|
- {
|
1837
|
+App.prototype.handleLicense = function (lic, domain) {
|
|
|
1838
|
+ if (lic != null && lic.plugins != null) {
|
2140
|
App.loadPlugins(lic.plugins.split(';'), true);
|
1839
|
App.loadPlugins(lic.plugins.split(';'), true);
|
2141
|
}
|
1840
|
}
|
2142
|
};
|
1841
|
};
|
|
@@ -2144,16 +1843,13 @@ App.prototype.handleLicense = function(lic, domain) |
|
@@ -2144,16 +1843,13 @@ App.prototype.handleLicense = function(lic, domain) |
2144
|
/**
|
1843
|
/**
|
2145
|
*
|
1844
|
*
|
2146
|
*/
|
1845
|
*/
|
2147
|
-App.prototype.getEditBlankXml = function()
|
|
|
2148
|
-{
|
1846
|
+App.prototype.getEditBlankXml = function () {
|
2149
|
var file = this.getCurrentFile();
|
1847
|
var file = this.getCurrentFile();
|
2150
|
|
1848
|
|
2151
|
- if (file != null && this.editor.isChromelessView() && this.editor.graph.isLightboxView())
|
|
|
2152
|
- {
|
1849
|
+ if (file != null && this.editor.isChromelessView() && this.editor.graph.isLightboxView()) {
|
2153
|
return file.getData();
|
1850
|
return file.getData();
|
2154
|
}
|
1851
|
}
|
2155
|
- else
|
|
|
2156
|
- {
|
1852
|
+ else {
|
2157
|
return this.getFileData(true);
|
1853
|
return this.getFileData(true);
|
2158
|
}
|
1854
|
}
|
2159
|
};
|
1855
|
};
|
|
@@ -2161,8 +1857,7 @@ App.prototype.getEditBlankXml = function() |
|
@@ -2161,8 +1857,7 @@ App.prototype.getEditBlankXml = function() |
2161
|
/**
|
1857
|
/**
|
2162
|
* Updates action states depending on the selection.
|
1858
|
* Updates action states depending on the selection.
|
2163
|
*/
|
1859
|
*/
|
2164
|
-App.prototype.updateActionStates = function()
|
|
|
2165
|
-{
|
1860
|
+App.prototype.updateActionStates = function () {
|
2166
|
EditorUi.prototype.updateActionStates.apply(this, arguments);
|
1861
|
EditorUi.prototype.updateActionStates.apply(this, arguments);
|
2167
|
|
1862
|
|
2168
|
this.actions.get('revisionHistory').setEnabled(this.isRevisionHistoryEnabled());
|
1863
|
this.actions.get('revisionHistory').setEnabled(this.isRevisionHistoryEnabled());
|
|
@@ -2171,29 +1866,22 @@ App.prototype.updateActionStates = function() |
|
@@ -2171,29 +1866,22 @@ App.prototype.updateActionStates = function() |
2171
|
/**
|
1866
|
/**
|
2172
|
* Adds the specified entry to the recent file list in local storage
|
1867
|
* Adds the specified entry to the recent file list in local storage
|
2173
|
*/
|
1868
|
*/
|
2174
|
-App.prototype.addRecent = function(entry)
|
|
|
2175
|
-{
|
|
|
2176
|
- if (isLocalStorage && localStorage != null)
|
|
|
2177
|
- {
|
1869
|
+App.prototype.addRecent = function (entry) {
|
|
|
1870
|
+ if (isLocalStorage && localStorage != null) {
|
2178
|
var recent = this.getRecent();
|
1871
|
var recent = this.getRecent();
|
2179
|
|
1872
|
|
2180
|
- if (recent == null)
|
|
|
2181
|
- {
|
1873
|
+ if (recent == null) {
|
2182
|
recent = [];
|
1874
|
recent = [];
|
2183
|
}
|
1875
|
}
|
2184
|
- else
|
|
|
2185
|
- {
|
|
|
2186
|
- for (var i = 0; i < recent.length; i++)
|
|
|
2187
|
- {
|
|
|
2188
|
- if (recent[i].id == entry.id)
|
|
|
2189
|
- {
|
1876
|
+ else {
|
|
|
1877
|
+ for (var i = 0; i < recent.length; i++) {
|
|
|
1878
|
+ if (recent[i].id == entry.id) {
|
2190
|
recent.splice(i, 1);
|
1879
|
recent.splice(i, 1);
|
2191
|
}
|
1880
|
}
|
2192
|
}
|
1881
|
}
|
2193
|
}
|
1882
|
}
|
2194
|
|
1883
|
|
2195
|
- if (recent != null)
|
|
|
2196
|
- {
|
1884
|
+ if (recent != null) {
|
2197
|
recent.unshift(entry);
|
1885
|
recent.unshift(entry);
|
2198
|
recent = recent.slice(0, 10);
|
1886
|
recent = recent.slice(0, 10);
|
2199
|
localStorage.setItem('.recent', JSON.stringify(recent));
|
1887
|
localStorage.setItem('.recent', JSON.stringify(recent));
|
|
@@ -2204,21 +1892,16 @@ App.prototype.addRecent = function(entry) |
|
@@ -2204,21 +1892,16 @@ App.prototype.addRecent = function(entry) |
2204
|
/**
|
1892
|
/**
|
2205
|
* Returns the recent file list from local storage
|
1893
|
* Returns the recent file list from local storage
|
2206
|
*/
|
1894
|
*/
|
2207
|
-App.prototype.getRecent = function()
|
|
|
2208
|
-{
|
|
|
2209
|
- if (isLocalStorage && localStorage != null)
|
|
|
2210
|
- {
|
|
|
2211
|
- try
|
|
|
2212
|
- {
|
1895
|
+App.prototype.getRecent = function () {
|
|
|
1896
|
+ if (isLocalStorage && localStorage != null) {
|
|
|
1897
|
+ try {
|
2213
|
var recent = localStorage.getItem('.recent');
|
1898
|
var recent = localStorage.getItem('.recent');
|
2214
|
|
1899
|
|
2215
|
- if (recent != null)
|
|
|
2216
|
- {
|
1900
|
+ if (recent != null) {
|
2217
|
return JSON.parse(recent);
|
1901
|
return JSON.parse(recent);
|
2218
|
}
|
1902
|
}
|
2219
|
}
|
1903
|
}
|
2220
|
- catch (e)
|
|
|
2221
|
- {
|
1904
|
+ catch (e) {
|
2222
|
// ignore
|
1905
|
// ignore
|
2223
|
}
|
1906
|
}
|
2224
|
|
1907
|
|
|
@@ -2229,16 +1912,12 @@ App.prototype.getRecent = function() |
|
@@ -2229,16 +1912,12 @@ App.prototype.getRecent = function() |
2229
|
/**
|
1912
|
/**
|
2230
|
* Clears the recent file list in local storage
|
1913
|
* Clears the recent file list in local storage
|
2231
|
*/
|
1914
|
*/
|
2232
|
-App.prototype.resetRecent = function(entry)
|
|
|
2233
|
-{
|
|
|
2234
|
- if (isLocalStorage && localStorage != null)
|
|
|
2235
|
- {
|
|
|
2236
|
- try
|
|
|
2237
|
- {
|
1915
|
+App.prototype.resetRecent = function (entry) {
|
|
|
1916
|
+ if (isLocalStorage && localStorage != null) {
|
|
|
1917
|
+ try {
|
2238
|
localStorage.removeItem('.recent');
|
1918
|
localStorage.removeItem('.recent');
|
2239
|
}
|
1919
|
}
|
2240
|
- catch (e)
|
|
|
2241
|
- {
|
1920
|
+ catch (e) {
|
2242
|
// ignore
|
1921
|
// ignore
|
2243
|
}
|
1922
|
}
|
2244
|
}
|
1923
|
}
|
|
@@ -2247,31 +1926,24 @@ App.prototype.resetRecent = function(entry) |
|
@@ -2247,31 +1926,24 @@ App.prototype.resetRecent = function(entry) |
2247
|
/**
|
1926
|
/**
|
2248
|
* Sets the onbeforeunload for the application
|
1927
|
* Sets the onbeforeunload for the application
|
2249
|
*/
|
1928
|
*/
|
2250
|
-App.prototype.onBeforeUnload = function()
|
|
|
2251
|
-{
|
|
|
2252
|
- if (urlParams['embed'] == '1' && this.editor.modified)
|
|
|
2253
|
- {
|
1929
|
+App.prototype.onBeforeUnload = function () {
|
|
|
1930
|
+ if (urlParams['embed'] == '1' && this.editor.modified) {
|
2254
|
return mxResources.get('allChangesLost');
|
1931
|
return mxResources.get('allChangesLost');
|
2255
|
}
|
1932
|
}
|
2256
|
- else
|
|
|
2257
|
- {
|
1933
|
+ else {
|
2258
|
var file = this.getCurrentFile();
|
1934
|
var file = this.getCurrentFile();
|
2259
|
|
1935
|
|
2260
|
- if (file != null)
|
|
|
2261
|
- {
|
1936
|
+ if (file != null) {
|
2262
|
// KNOWN: Message is ignored by most browsers
|
1937
|
// KNOWN: Message is ignored by most browsers
|
2263
|
if (file.constructor == LocalFile && file.getHash() == '' && !file.isModified() &&
|
1938
|
if (file.constructor == LocalFile && file.getHash() == '' && !file.isModified() &&
|
2264
|
urlParams['nowarn'] != '1' && !this.isDiagramEmpty() && urlParams['url'] == null &&
|
1939
|
urlParams['nowarn'] != '1' && !this.isDiagramEmpty() && urlParams['url'] == null &&
|
2265
|
- !this.editor.isChromelessView() && file.fileHandle == null)
|
|
|
2266
|
- {
|
1940
|
+ !this.editor.isChromelessView() && file.fileHandle == null) {
|
2267
|
return mxResources.get('ensureDataSaved');
|
1941
|
return mxResources.get('ensureDataSaved');
|
2268
|
}
|
1942
|
}
|
2269
|
- else if (file.isModified())
|
|
|
2270
|
- {
|
1943
|
+ else if (file.isModified()) {
|
2271
|
return mxResources.get('allChangesLost');
|
1944
|
return mxResources.get('allChangesLost');
|
2272
|
}
|
1945
|
}
|
2273
|
- else
|
|
|
2274
|
- {
|
1946
|
+ else {
|
2275
|
file.close(true);
|
1947
|
file.close(true);
|
2276
|
}
|
1948
|
}
|
2277
|
}
|
1949
|
}
|
|
@@ -2284,26 +1956,21 @@ App.prototype.onBeforeUnload = function() |
|
@@ -2284,26 +1956,21 @@ App.prototype.onBeforeUnload = function() |
2284
|
* @param {number} dx X-coordinate of the translation.
|
1956
|
* @param {number} dx X-coordinate of the translation.
|
2285
|
* @param {number} dy Y-coordinate of the translation.
|
1957
|
* @param {number} dy Y-coordinate of the translation.
|
2286
|
*/
|
1958
|
*/
|
2287
|
-App.prototype.updateDocumentTitle = function()
|
|
|
2288
|
-{
|
|
|
2289
|
- if (!this.editor.graph.isLightboxView())
|
|
|
2290
|
- {
|
1959
|
+App.prototype.updateDocumentTitle = function () {
|
|
|
1960
|
+ if (!this.editor.graph.isLightboxView()) {
|
2291
|
var title = this.editor.appName;
|
1961
|
var title = this.editor.appName;
|
2292
|
var file = this.getCurrentFile();
|
1962
|
var file = this.getCurrentFile();
|
2293
|
|
1963
|
|
2294
|
- if (this.isOfflineApp())
|
|
|
2295
|
- {
|
1964
|
+ if (this.isOfflineApp()) {
|
2296
|
title += ' app';
|
1965
|
title += ' app';
|
2297
|
}
|
1966
|
}
|
2298
|
|
1967
|
|
2299
|
- if (file != null)
|
|
|
2300
|
- {
|
1968
|
+ if (file != null) {
|
2301
|
var filename = (file.getTitle() != null) ? file.getTitle() : this.defaultFilename;
|
1969
|
var filename = (file.getTitle() != null) ? file.getTitle() : this.defaultFilename;
|
2302
|
title = filename + ' - ' + title;
|
1970
|
title = filename + ' - ' + title;
|
2303
|
}
|
1971
|
}
|
2304
|
|
1972
|
|
2305
|
- if (document.title != title)
|
|
|
2306
|
- {
|
1973
|
+ if (document.title != title) {
|
2307
|
document.title = title;
|
1974
|
document.title = title;
|
2308
|
var graph = this.editor.graph;
|
1975
|
var graph = this.editor.graph;
|
2309
|
graph.invalidateDescendantsWithPlaceholders(graph.model.getRoot());
|
1976
|
graph.invalidateDescendantsWithPlaceholders(graph.model.getRoot());
|
|
@@ -2315,32 +1982,26 @@ App.prototype.updateDocumentTitle = function() |
|
@@ -2315,32 +1982,26 @@ App.prototype.updateDocumentTitle = function() |
2315
|
/**
|
1982
|
/**
|
2316
|
* Returns a thumbnail of the current file.
|
1983
|
* Returns a thumbnail of the current file.
|
2317
|
*/
|
1984
|
*/
|
2318
|
-App.prototype.getThumbnail = function(width, fn)
|
|
|
2319
|
-{
|
1985
|
+App.prototype.getThumbnail = function (width, fn) {
|
2320
|
var result = false;
|
1986
|
var result = false;
|
2321
|
|
1987
|
|
2322
|
- try
|
|
|
2323
|
- {
|
1988
|
+ try {
|
2324
|
var acceptResponse = true;
|
1989
|
var acceptResponse = true;
|
2325
|
|
1990
|
|
2326
|
- var timeoutThread = window.setTimeout(mxUtils.bind(this, function()
|
|
|
2327
|
- {
|
1991
|
+ var timeoutThread = window.setTimeout(mxUtils.bind(this, function () {
|
2328
|
acceptResponse = false;
|
1992
|
acceptResponse = false;
|
2329
|
fn(null);
|
1993
|
fn(null);
|
2330
|
}), this.timeout);
|
1994
|
}), this.timeout);
|
2331
|
|
1995
|
|
2332
|
- var success = mxUtils.bind(this, function(canvas)
|
|
|
2333
|
- {
|
1996
|
+ var success = mxUtils.bind(this, function (canvas) {
|
2334
|
window.clearTimeout(timeoutThread);
|
1997
|
window.clearTimeout(timeoutThread);
|
2335
|
|
1998
|
|
2336
|
- if (acceptResponse)
|
|
|
2337
|
- {
|
1999
|
+ if (acceptResponse) {
|
2338
|
fn(canvas);
|
2000
|
fn(canvas);
|
2339
|
}
|
2001
|
}
|
2340
|
});
|
2002
|
});
|
2341
|
|
2003
|
|
2342
|
- if (this.thumbImageCache == null)
|
|
|
2343
|
- {
|
2004
|
+ if (this.thumbImageCache == null) {
|
2344
|
this.thumbImageCache = new Object();
|
2005
|
this.thumbImageCache = new Object();
|
2345
|
}
|
2006
|
}
|
2346
|
|
2007
|
|
|
@@ -2352,31 +2013,25 @@ App.prototype.getThumbnail = function(width, fn) |
|
@@ -2352,31 +2013,25 @@ App.prototype.getThumbnail = function(width, fn) |
2352
|
// To avoid refresh during save dark theme uses separate graph instance
|
2013
|
// To avoid refresh during save dark theme uses separate graph instance
|
2353
|
var darkTheme = graph.themes != null && graph.defaultThemeName == 'darkTheme';
|
2014
|
var darkTheme = graph.themes != null && graph.defaultThemeName == 'darkTheme';
|
2354
|
|
2015
|
|
2355
|
- if (this.pages != null && (darkTheme || this.currentPage != this.pages[0]))
|
|
|
2356
|
- {
|
2016
|
+ if (this.pages != null && (darkTheme || this.currentPage != this.pages[0])) {
|
2357
|
var graphGetGlobalVariable = graph.getGlobalVariable;
|
2017
|
var graphGetGlobalVariable = graph.getGlobalVariable;
|
2358
|
graph = this.createTemporaryGraph(graph.getStylesheet());
|
2018
|
graph = this.createTemporaryGraph(graph.getStylesheet());
|
2359
|
graph.setBackgroundImage = this.editor.graph.setBackgroundImage;
|
2019
|
graph.setBackgroundImage = this.editor.graph.setBackgroundImage;
|
2360
|
var page = this.pages[0];
|
2020
|
var page = this.pages[0];
|
2361
|
|
2021
|
|
2362
|
- if (this.currentPage == page)
|
|
|
2363
|
- {
|
2022
|
+ if (this.currentPage == page) {
|
2364
|
graph.setBackgroundImage(bgImg);
|
2023
|
graph.setBackgroundImage(bgImg);
|
2365
|
}
|
2024
|
}
|
2366
|
- else if (page.viewState != null && page.viewState != null)
|
|
|
2367
|
- {
|
2025
|
+ else if (page.viewState != null && page.viewState != null) {
|
2368
|
bgImg = page.viewState.backgroundImage;
|
2026
|
bgImg = page.viewState.backgroundImage;
|
2369
|
graph.setBackgroundImage(bgImg);
|
2027
|
graph.setBackgroundImage(bgImg);
|
2370
|
}
|
2028
|
}
|
2371
|
|
2029
|
|
2372
|
- graph.getGlobalVariable = function(name)
|
|
|
2373
|
- {
|
|
|
2374
|
- if (name == 'page')
|
|
|
2375
|
- {
|
2030
|
+ graph.getGlobalVariable = function (name) {
|
|
|
2031
|
+ if (name == 'page') {
|
2376
|
return page.getName();
|
2032
|
return page.getName();
|
2377
|
}
|
2033
|
}
|
2378
|
- else if (name == 'pagenumber')
|
|
|
2379
|
- {
|
2034
|
+ else if (name == 'pagenumber') {
|
2380
|
return 1;
|
2035
|
return 1;
|
2381
|
}
|
2036
|
}
|
2382
|
|
2037
|
|
|
@@ -2389,42 +2044,34 @@ App.prototype.getThumbnail = function(width, fn) |
|
@@ -2389,42 +2044,34 @@ App.prototype.getThumbnail = function(width, fn) |
2389
|
}
|
2044
|
}
|
2390
|
|
2045
|
|
2391
|
// Uses client-side canvas export
|
2046
|
// Uses client-side canvas export
|
2392
|
- if (mxClient.IS_CHROMEAPP || this.useCanvasForExport)
|
|
|
2393
|
- {
|
|
|
2394
|
- this.editor.exportToCanvas(mxUtils.bind(this, function(canvas)
|
|
|
2395
|
- {
|
|
|
2396
|
- try
|
|
|
2397
|
- {
|
|
|
2398
|
- // Removes temporary graph from DOM
|
|
|
2399
|
- if (graph != this.editor.graph && graph.container.parentNode != null)
|
|
|
2400
|
- {
|
2047
|
+ if (mxClient.IS_CHROMEAPP || this.useCanvasForExport) {
|
|
|
2048
|
+ this.editor.exportToCanvas(mxUtils.bind(this, function (canvas) {
|
|
|
2049
|
+ try {
|
|
|
2050
|
+ // Removes temporary graph from DOM
|
|
|
2051
|
+ if (graph != this.editor.graph && graph.container.parentNode != null) {
|
2401
|
graph.container.parentNode.removeChild(graph.container);
|
2052
|
graph.container.parentNode.removeChild(graph.container);
|
2402
|
}
|
2053
|
}
|
2403
|
}
|
2054
|
}
|
2404
|
- catch (e)
|
|
|
2405
|
- {
|
2055
|
+ catch (e) {
|
2406
|
canvas = null;
|
2056
|
canvas = null;
|
2407
|
}
|
2057
|
}
|
2408
|
|
2058
|
|
2409
|
- success(canvas);
|
|
|
2410
|
- }), width, this.thumbImageCache, '#ffffff', function()
|
|
|
2411
|
- {
|
|
|
2412
|
- // Continues with null in error case
|
|
|
2413
|
- success();
|
|
|
2414
|
- }, null, null, null, null, null, null, graph, null, null, null,
|
|
|
2415
|
- null, 'diagram', null);
|
2059
|
+ success(canvas);
|
|
|
2060
|
+ }), width, this.thumbImageCache, '#ffffff', function () {
|
|
|
2061
|
+ // Continues with null in error case
|
|
|
2062
|
+ success();
|
|
|
2063
|
+ }, null, null, null, null, null, null, graph, null, null, null,
|
|
|
2064
|
+ null, 'diagram', null);
|
2416
|
|
2065
|
|
2417
|
- result = true;
|
2066
|
+ result = true;
|
2418
|
}
|
2067
|
}
|
2419
|
- else if (this.canvasSupported && this.getCurrentFile() != null)
|
|
|
2420
|
- {
|
2068
|
+ else if (this.canvasSupported && this.getCurrentFile() != null) {
|
2421
|
var canvas = document.createElement('canvas');
|
2069
|
var canvas = document.createElement('canvas');
|
2422
|
var bounds = graph.getGraphBounds();
|
2070
|
var bounds = graph.getGraphBounds();
|
2423
|
var t = graph.view.translate;
|
2071
|
var t = graph.view.translate;
|
2424
|
var s = graph.view.scale;
|
2072
|
var s = graph.view.scale;
|
2425
|
|
2073
|
|
2426
|
- if (bgImg != null)
|
|
|
2427
|
- {
|
2074
|
+ if (bgImg != null) {
|
2428
|
bounds = mxRectangle.fromRectangle(bounds);
|
2075
|
bounds = mxRectangle.fromRectangle(bounds);
|
2429
|
bounds.add(new mxRectangle(
|
2076
|
bounds.add(new mxRectangle(
|
2430
|
(t.x + bgImg.x) * s, (t.y + bgImg.y) * s,
|
2077
|
(t.x + bgImg.x) * s, (t.y + bgImg.y) * s,
|
|
@@ -2451,8 +2098,7 @@ App.prototype.getThumbnail = function(width, fn) |
|
@@ -2451,8 +2098,7 @@ App.prototype.getThumbnail = function(width, fn) |
2451
|
// Paint white background instead of transparent
|
2098
|
// Paint white background instead of transparent
|
2452
|
var bg = graph.background;
|
2099
|
var bg = graph.background;
|
2453
|
|
2100
|
|
2454
|
- if (bg == null || bg == '' || bg == mxConstants.NONE)
|
|
|
2455
|
- {
|
2101
|
+ if (bg == null || bg == '' || bg == mxConstants.NONE) {
|
2456
|
bg = '#ffffff';
|
2102
|
bg = '#ffffff';
|
2457
|
}
|
2103
|
}
|
2458
|
|
2104
|
|
|
@@ -2463,8 +2109,7 @@ App.prototype.getThumbnail = function(width, fn) |
|
@@ -2463,8 +2109,7 @@ App.prototype.getThumbnail = function(width, fn) |
2463
|
ctx.restore();
|
2109
|
ctx.restore();
|
2464
|
|
2110
|
|
2465
|
// Paints background image
|
2111
|
// Paints background image
|
2466
|
- if (bgImg != null)
|
|
|
2467
|
- {
|
2112
|
+ if (bgImg != null) {
|
2468
|
var img = new Image();
|
2113
|
var img = new Image();
|
2469
|
img.src = bgImg.src;
|
2114
|
img.src = bgImg.src;
|
2470
|
|
2115
|
|
|
@@ -2486,10 +2131,8 @@ App.prototype.getThumbnail = function(width, fn) |
|
@@ -2486,10 +2131,8 @@ App.prototype.getThumbnail = function(width, fn) |
2486
|
// Render graph
|
2131
|
// Render graph
|
2487
|
var imgExport = new mxImageExport();
|
2132
|
var imgExport = new mxImageExport();
|
2488
|
|
2133
|
|
2489
|
- imgExport.drawShape = function(state, canvas)
|
|
|
2490
|
- {
|
|
|
2491
|
- if (state.shape instanceof mxShape && state.shape.checkBounds())
|
|
|
2492
|
- {
|
2134
|
+ imgExport.drawShape = function (state, canvas) {
|
|
|
2135
|
+ if (state.shape instanceof mxShape && state.shape.checkBounds()) {
|
2493
|
canvas.save();
|
2136
|
canvas.save();
|
2494
|
canvas.translate(0.5, 0.5);
|
2137
|
canvas.translate(0.5, 0.5);
|
2495
|
state.shape.paint(canvas);
|
2138
|
state.shape.paint(canvas);
|
|
@@ -2498,27 +2141,22 @@ App.prototype.getThumbnail = function(width, fn) |
|
@@ -2498,27 +2141,22 @@ App.prototype.getThumbnail = function(width, fn) |
2498
|
}
|
2141
|
}
|
2499
|
};
|
2142
|
};
|
2500
|
|
2143
|
|
2501
|
- imgExport.drawText = function(state, canvas)
|
|
|
2502
|
- {
|
2144
|
+ imgExport.drawText = function (state, canvas) {
|
2503
|
// No text output for thumbnails
|
2145
|
// No text output for thumbnails
|
2504
|
};
|
2146
|
};
|
2505
|
|
2147
|
|
2506
|
imgExport.drawState(graph.getView().getState(graph.model.root), asynCanvas);
|
2148
|
imgExport.drawState(graph.getView().getState(graph.model.root), asynCanvas);
|
2507
|
|
2149
|
|
2508
|
- asynCanvas.finish(mxUtils.bind(this, function()
|
|
|
2509
|
- {
|
|
|
2510
|
- try
|
|
|
2511
|
- {
|
2150
|
+ asynCanvas.finish(mxUtils.bind(this, function () {
|
|
|
2151
|
+ try {
|
2512
|
imgExport.drawState(graph.getView().getState(graph.model.root), htmlCanvas);
|
2152
|
imgExport.drawState(graph.getView().getState(graph.model.root), htmlCanvas);
|
2513
|
|
2153
|
|
2514
|
- // Removes temporary graph from DOM
|
|
|
2515
|
- if (graph != this.editor.graph && graph.container.parentNode != null)
|
|
|
2516
|
- {
|
2154
|
+ // Removes temporary graph from DOM
|
|
|
2155
|
+ if (graph != this.editor.graph && graph.container.parentNode != null) {
|
2517
|
graph.container.parentNode.removeChild(graph.container);
|
2156
|
graph.container.parentNode.removeChild(graph.container);
|
2518
|
}
|
2157
|
}
|
2519
|
}
|
2158
|
}
|
2520
|
- catch (e)
|
|
|
2521
|
- {
|
2159
|
+ catch (e) {
|
2522
|
canvas = null;
|
2160
|
canvas = null;
|
2523
|
}
|
2161
|
}
|
2524
|
|
2162
|
|
|
@@ -2528,19 +2166,16 @@ App.prototype.getThumbnail = function(width, fn) |
|
@@ -2528,19 +2166,16 @@ App.prototype.getThumbnail = function(width, fn) |
2528
|
result = true;
|
2166
|
result = true;
|
2529
|
}
|
2167
|
}
|
2530
|
}
|
2168
|
}
|
2531
|
- catch (e)
|
|
|
2532
|
- {
|
2169
|
+ catch (e) {
|
2533
|
result = false;
|
2170
|
result = false;
|
2534
|
|
2171
|
|
2535
|
// Removes temporary graph from DOM
|
2172
|
// Removes temporary graph from DOM
|
2536
|
- if (graph != null && graph != this.editor.graph && graph.container.parentNode != null)
|
|
|
2537
|
- {
|
2173
|
+ if (graph != null && graph != this.editor.graph && graph.container.parentNode != null) {
|
2538
|
graph.container.parentNode.removeChild(graph.container);
|
2174
|
graph.container.parentNode.removeChild(graph.container);
|
2539
|
}
|
2175
|
}
|
2540
|
}
|
2176
|
}
|
2541
|
|
2177
|
|
2542
|
- if (!result)
|
|
|
2543
|
- {
|
2178
|
+ if (!result) {
|
2544
|
window.clearTimeout(timeoutThread);
|
2179
|
window.clearTimeout(timeoutThread);
|
2545
|
}
|
2180
|
}
|
2546
|
|
2181
|
|
|
@@ -2553,8 +2188,7 @@ App.prototype.getThumbnail = function(width, fn) |
|
@@ -2553,8 +2188,7 @@ App.prototype.getThumbnail = function(width, fn) |
2553
|
* @param {number} dx X-coordinate of the translation.
|
2188
|
* @param {number} dx X-coordinate of the translation.
|
2554
|
* @param {number} dy Y-coordinate of the translation.
|
2189
|
* @param {number} dy Y-coordinate of the translation.
|
2555
|
*/
|
2190
|
*/
|
2556
|
-App.prototype.createBackground = function()
|
|
|
2557
|
-{
|
2191
|
+App.prototype.createBackground = function () {
|
2558
|
var bg = this.createDiv('background');
|
2192
|
var bg = this.createDiv('background');
|
2559
|
bg.style.position = 'absolute';
|
2193
|
bg.style.position = 'absolute';
|
2560
|
bg.style.background = 'white';
|
2194
|
bg.style.background = 'white';
|
|
@@ -2574,65 +2208,52 @@ App.prototype.createBackground = function() |
|
@@ -2574,65 +2208,52 @@ App.prototype.createBackground = function() |
2574
|
* @param {number} dx X-coordinate of the translation.
|
2208
|
* @param {number} dx X-coordinate of the translation.
|
2575
|
* @param {number} dy Y-coordinate of the translation.
|
2209
|
* @param {number} dy Y-coordinate of the translation.
|
2576
|
*/
|
2210
|
*/
|
2577
|
-(function()
|
|
|
2578
|
-{
|
2211
|
+(function () {
|
2579
|
var editorUiSetMode = EditorUi.prototype.setMode;
|
2212
|
var editorUiSetMode = EditorUi.prototype.setMode;
|
2580
|
|
2213
|
|
2581
|
- App.prototype.setMode = function(mode, remember)
|
|
|
2582
|
- {
|
2214
|
+ App.prototype.setMode = function (mode, remember) {
|
2583
|
editorUiSetMode.apply(this, arguments);
|
2215
|
editorUiSetMode.apply(this, arguments);
|
2584
|
|
2216
|
|
2585
|
// Note: UseLocalStorage affects the file dialogs
|
2217
|
// Note: UseLocalStorage affects the file dialogs
|
2586
|
// and should not be modified if mode is undefined
|
2218
|
// and should not be modified if mode is undefined
|
2587
|
- if (this.mode != null)
|
|
|
2588
|
- {
|
2219
|
+ if (this.mode != null) {
|
2589
|
Editor.useLocalStorage = this.mode == App.MODE_BROWSER;
|
2220
|
Editor.useLocalStorage = this.mode == App.MODE_BROWSER;
|
2590
|
}
|
2221
|
}
|
2591
|
|
2222
|
|
2592
|
- if (this.appIcon != null)
|
|
|
2593
|
- {
|
2223
|
+ if (this.appIcon != null) {
|
2594
|
var file = this.getCurrentFile();
|
2224
|
var file = this.getCurrentFile();
|
2595
|
mode = (file != null) ? file.getMode() : mode;
|
2225
|
mode = (file != null) ? file.getMode() : mode;
|
2596
|
|
2226
|
|
2597
|
- if (mode == App.MODE_GOOGLE)
|
|
|
2598
|
- {
|
2227
|
+ if (mode == App.MODE_GOOGLE) {
|
2599
|
this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('googleDrive')]));
|
2228
|
this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('googleDrive')]));
|
2600
|
this.appIcon.style.cursor = 'pointer';
|
2229
|
this.appIcon.style.cursor = 'pointer';
|
2601
|
}
|
2230
|
}
|
2602
|
- else if (mode == App.MODE_DROPBOX)
|
|
|
2603
|
- {
|
2231
|
+ else if (mode == App.MODE_DROPBOX) {
|
2604
|
this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('dropbox')]));
|
2232
|
this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('dropbox')]));
|
2605
|
this.appIcon.style.cursor = 'pointer';
|
2233
|
this.appIcon.style.cursor = 'pointer';
|
2606
|
}
|
2234
|
}
|
2607
|
- else if (mode == App.MODE_ONEDRIVE)
|
|
|
2608
|
- {
|
2235
|
+ else if (mode == App.MODE_ONEDRIVE) {
|
2609
|
this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('oneDrive')]));
|
2236
|
this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('oneDrive')]));
|
2610
|
this.appIcon.style.cursor = 'pointer';
|
2237
|
this.appIcon.style.cursor = 'pointer';
|
2611
|
}
|
2238
|
}
|
2612
|
- else
|
|
|
2613
|
- {
|
2239
|
+ else {
|
2614
|
this.appIcon.removeAttribute('title');
|
2240
|
this.appIcon.removeAttribute('title');
|
2615
|
this.appIcon.style.cursor = (mode == App.MODE_DEVICE) ? 'pointer' : 'default';
|
2241
|
this.appIcon.style.cursor = (mode == App.MODE_DEVICE) ? 'pointer' : 'default';
|
2616
|
}
|
2242
|
}
|
2617
|
}
|
2243
|
}
|
2618
|
|
2244
|
|
2619
|
- if (remember)
|
|
|
2620
|
- {
|
|
|
2621
|
- try
|
|
|
2622
|
- {
|
|
|
2623
|
- if (isLocalStorage)
|
|
|
2624
|
- {
|
2245
|
+ if (remember) {
|
|
|
2246
|
+ try {
|
|
|
2247
|
+ if (isLocalStorage) {
|
2625
|
localStorage.setItem('.mode', mode);
|
2248
|
localStorage.setItem('.mode', mode);
|
2626
|
}
|
2249
|
}
|
2627
|
- else if (typeof(Storage) != 'undefined')
|
|
|
2628
|
- {
|
2250
|
+ else if (typeof (Storage) != 'undefined') {
|
2629
|
var expiry = new Date();
|
2251
|
var expiry = new Date();
|
2630
|
expiry.setYear(expiry.getFullYear() + 1);
|
2252
|
expiry.setYear(expiry.getFullYear() + 1);
|
2631
|
document.cookie = 'MODE=' + mode + '; expires=' + expiry.toUTCString();
|
2253
|
document.cookie = 'MODE=' + mode + '; expires=' + expiry.toUTCString();
|
2632
|
}
|
2254
|
}
|
2633
|
}
|
2255
|
}
|
2634
|
- catch (e)
|
|
|
2635
|
- {
|
2256
|
+ catch (e) {
|
2636
|
// ignore possible access denied
|
2257
|
// ignore possible access denied
|
2637
|
}
|
2258
|
}
|
2638
|
}
|
2259
|
}
|
|
@@ -2644,99 +2265,76 @@ App.prototype.createBackground = function() |
|
@@ -2644,99 +2265,76 @@ App.prototype.createBackground = function() |
2644
|
*
|
2265
|
*
|
2645
|
* Authorizes the client, gets the userId and calls <open>.
|
2266
|
* Authorizes the client, gets the userId and calls <open>.
|
2646
|
*/
|
2267
|
*/
|
2647
|
-App.prototype.appIconClicked = function(evt)
|
|
|
2648
|
-{
|
|
|
2649
|
- if (mxEvent.isAltDown(evt))
|
|
|
2650
|
- {
|
2268
|
+App.prototype.appIconClicked = function (evt) {
|
|
|
2269
|
+ if (mxEvent.isAltDown(evt)) {
|
2651
|
this.showSplash(true);
|
2270
|
this.showSplash(true);
|
2652
|
}
|
2271
|
}
|
2653
|
- else
|
|
|
2654
|
- {
|
2272
|
+ else {
|
2655
|
var file = this.getCurrentFile();
|
2273
|
var file = this.getCurrentFile();
|
2656
|
var mode = (file != null) ? file.getMode() : null;
|
2274
|
var mode = (file != null) ? file.getMode() : null;
|
2657
|
|
2275
|
|
2658
|
- if (mode == App.MODE_GOOGLE)
|
|
|
2659
|
- {
|
2276
|
+ if (mode == App.MODE_GOOGLE) {
|
2660
|
if (file != null && file.desc != null && file.desc.parents != null &&
|
2277
|
if (file != null && file.desc != null && file.desc.parents != null &&
|
2661
|
- file.desc.parents.length > 0 && !mxEvent.isShiftDown(evt))
|
|
|
2662
|
- {
|
2278
|
+ file.desc.parents.length > 0 && !mxEvent.isShiftDown(evt)) {
|
2663
|
// Opens containing folder
|
2279
|
// Opens containing folder
|
2664
|
this.openLink('https://drive.google.com/drive/folders/' + file.desc.parents[0].id);
|
2280
|
this.openLink('https://drive.google.com/drive/folders/' + file.desc.parents[0].id);
|
2665
|
}
|
2281
|
}
|
2666
|
- else if (file != null && file.getId() != null)
|
|
|
2667
|
- {
|
2282
|
+ else if (file != null && file.getId() != null) {
|
2668
|
this.openLink('https://drive.google.com/open?id=' + file.getId());
|
2283
|
this.openLink('https://drive.google.com/open?id=' + file.getId());
|
2669
|
}
|
2284
|
}
|
2670
|
- else
|
|
|
2671
|
- {
|
2285
|
+ else {
|
2672
|
this.openLink('https://drive.google.com/?authuser=0');
|
2286
|
this.openLink('https://drive.google.com/?authuser=0');
|
2673
|
}
|
2287
|
}
|
2674
|
}
|
2288
|
}
|
2675
|
- else if (mode == App.MODE_ONEDRIVE)
|
|
|
2676
|
- {
|
|
|
2677
|
- if (file != null && file.meta != null && file.meta.webUrl != null)
|
|
|
2678
|
- {
|
2289
|
+ else if (mode == App.MODE_ONEDRIVE) {
|
|
|
2290
|
+ if (file != null && file.meta != null && file.meta.webUrl != null) {
|
2679
|
var url = file.meta.webUrl;
|
2291
|
var url = file.meta.webUrl;
|
2680
|
var name = encodeURIComponent(file.meta.name);
|
2292
|
var name = encodeURIComponent(file.meta.name);
|
2681
|
|
2293
|
|
2682
|
- if (url.substring(url.length - name.length, url.length) == name)
|
|
|
2683
|
- {
|
2294
|
+ if (url.substring(url.length - name.length, url.length) == name) {
|
2684
|
url = url.substring(0, url.length - name.length);
|
2295
|
url = url.substring(0, url.length - name.length);
|
2685
|
}
|
2296
|
}
|
2686
|
|
2297
|
|
2687
|
this.openLink(url);
|
2298
|
this.openLink(url);
|
2688
|
}
|
2299
|
}
|
2689
|
- else
|
|
|
2690
|
- {
|
2300
|
+ else {
|
2691
|
this.openLink('https://onedrive.live.com/');
|
2301
|
this.openLink('https://onedrive.live.com/');
|
2692
|
}
|
2302
|
}
|
2693
|
}
|
2303
|
}
|
2694
|
- else if (mode == App.MODE_DROPBOX)
|
|
|
2695
|
- {
|
|
|
2696
|
- if (file != null && file.stat != null && file.stat.path_display != null)
|
|
|
2697
|
- {
|
2304
|
+ else if (mode == App.MODE_DROPBOX) {
|
|
|
2305
|
+ if (file != null && file.stat != null && file.stat.path_display != null) {
|
2698
|
var url = 'https://www.dropbox.com/home/Apps/drawio' + file.stat.path_display;
|
2306
|
var url = 'https://www.dropbox.com/home/Apps/drawio' + file.stat.path_display;
|
2699
|
|
2307
|
|
2700
|
- if (!mxEvent.isShiftDown(evt))
|
|
|
2701
|
- {
|
2308
|
+ if (!mxEvent.isShiftDown(evt)) {
|
2702
|
url = url.substring(0, url.length - file.stat.name.length);
|
2309
|
url = url.substring(0, url.length - file.stat.name.length);
|
2703
|
}
|
2310
|
}
|
2704
|
|
2311
|
|
2705
|
this.openLink(url);
|
2312
|
this.openLink(url);
|
2706
|
}
|
2313
|
}
|
2707
|
- else
|
|
|
2708
|
- {
|
2314
|
+ else {
|
2709
|
this.openLink('https://www.dropbox.com/');
|
2315
|
this.openLink('https://www.dropbox.com/');
|
2710
|
}
|
2316
|
}
|
2711
|
}
|
2317
|
}
|
2712
|
- else if (mode == App.MODE_TRELLO)
|
|
|
2713
|
- {
|
2318
|
+ else if (mode == App.MODE_TRELLO) {
|
2714
|
this.openLink('https://trello.com/');
|
2319
|
this.openLink('https://trello.com/');
|
2715
|
}
|
2320
|
}
|
2716
|
- else if (mode == App.MODE_GITHUB)
|
|
|
2717
|
- {
|
|
|
2718
|
- if (file != null && file.constructor == GitHubFile)
|
|
|
2719
|
- {
|
2321
|
+ else if (mode == App.MODE_GITHUB) {
|
|
|
2322
|
+ if (file != null && file.constructor == GitHubFile) {
|
2720
|
this.openLink(file.meta.html_url);
|
2323
|
this.openLink(file.meta.html_url);
|
2721
|
}
|
2324
|
}
|
2722
|
- else
|
|
|
2723
|
- {
|
2325
|
+ else {
|
2724
|
this.openLink('https://github.com/');
|
2326
|
this.openLink('https://github.com/');
|
2725
|
}
|
2327
|
}
|
2726
|
}
|
2328
|
}
|
2727
|
- else if (mode == App.MODE_GITLAB)
|
|
|
2728
|
- {
|
|
|
2729
|
- if (file != null && file.constructor == GitLabFile)
|
|
|
2730
|
- {
|
2329
|
+ else if (mode == App.MODE_GITLAB) {
|
|
|
2330
|
+ if (file != null && file.constructor == GitLabFile) {
|
2731
|
this.openLink(file.meta.html_url);
|
2331
|
this.openLink(file.meta.html_url);
|
2732
|
}
|
2332
|
}
|
2733
|
- else
|
|
|
2734
|
- {
|
2333
|
+ else {
|
2735
|
this.openLink(DRAWIO_GITLAB_URL);
|
2334
|
this.openLink(DRAWIO_GITLAB_URL);
|
2736
|
}
|
2335
|
}
|
2737
|
}
|
2336
|
}
|
2738
|
- else if (mode == App.MODE_DEVICE)
|
|
|
2739
|
- {
|
2337
|
+ else if (mode == App.MODE_DEVICE) {
|
2740
|
this.openLink('https://get.draw.io/');
|
2338
|
this.openLink('https://get.draw.io/');
|
2741
|
}
|
2339
|
}
|
2742
|
}
|
2340
|
}
|
|
@@ -2749,14 +2347,11 @@ App.prototype.appIconClicked = function(evt) |
|
@@ -2749,14 +2347,11 @@ App.prototype.appIconClicked = function(evt) |
2749
|
*
|
2347
|
*
|
2750
|
* Authorizes the client, gets the userId and calls <open>.
|
2348
|
* Authorizes the client, gets the userId and calls <open>.
|
2751
|
*/
|
2349
|
*/
|
2752
|
-App.prototype.clearMode = function()
|
|
|
2753
|
-{
|
|
|
2754
|
- if (isLocalStorage)
|
|
|
2755
|
- {
|
2350
|
+App.prototype.clearMode = function () {
|
|
|
2351
|
+ if (isLocalStorage) {
|
2756
|
localStorage.removeItem('.mode');
|
2352
|
localStorage.removeItem('.mode');
|
2757
|
}
|
2353
|
}
|
2758
|
- else if (typeof(Storage) != 'undefined')
|
|
|
2759
|
- {
|
2354
|
+ else if (typeof (Storage) != 'undefined') {
|
2760
|
var expiry = new Date();
|
2355
|
var expiry = new Date();
|
2761
|
expiry.setYear(expiry.getFullYear() - 1);
|
2356
|
expiry.setYear(expiry.getFullYear() - 1);
|
2762
|
document.cookie = 'MODE=; expires=' + expiry.toUTCString();
|
2357
|
document.cookie = 'MODE=; expires=' + expiry.toUTCString();
|
|
@@ -2769,23 +2364,19 @@ App.prototype.clearMode = function() |
|
@@ -2769,23 +2364,19 @@ App.prototype.clearMode = function() |
2769
|
* @param {number} dx X-coordinate of the translation.
|
2364
|
* @param {number} dx X-coordinate of the translation.
|
2770
|
* @param {number} dy Y-coordinate of the translation.
|
2365
|
* @param {number} dy Y-coordinate of the translation.
|
2771
|
*/
|
2366
|
*/
|
2772
|
-App.prototype.getDiagramId = function()
|
|
|
2773
|
-{
|
2367
|
+App.prototype.getDiagramId = function () {
|
2774
|
var id = window.location.hash;
|
2368
|
var id = window.location.hash;
|
2775
|
|
2369
|
|
2776
|
// Strips the hash sign
|
2370
|
// Strips the hash sign
|
2777
|
- if (id != null && id.length > 0)
|
|
|
2778
|
- {
|
2371
|
+ if (id != null && id.length > 0) {
|
2779
|
id = id.substring(1);
|
2372
|
id = id.substring(1);
|
2780
|
}
|
2373
|
}
|
2781
|
|
2374
|
|
2782
|
// Workaround for Trello client appending data after hash
|
2375
|
// Workaround for Trello client appending data after hash
|
2783
|
- if (id != null && id.length > 1 && id.charAt(0) == 'T')
|
|
|
2784
|
- {
|
2376
|
+ if (id != null && id.length > 1 && id.charAt(0) == 'T') {
|
2785
|
var idx = id.indexOf('#');
|
2377
|
var idx = id.indexOf('#');
|
2786
|
|
2378
|
|
2787
|
- if (idx > 0)
|
|
|
2788
|
- {
|
2379
|
+ if (idx > 0) {
|
2789
|
id = id.substring(0, idx);
|
2380
|
id = id.substring(0, idx);
|
2790
|
}
|
2381
|
}
|
2791
|
}
|
2382
|
}
|
|
@@ -2796,48 +2387,38 @@ App.prototype.getDiagramId = function() |
|
@@ -2796,48 +2387,38 @@ App.prototype.getDiagramId = function() |
2796
|
/**
|
2387
|
/**
|
2797
|
* Opens any file specified in the URL parameters.
|
2388
|
* Opens any file specified in the URL parameters.
|
2798
|
*/
|
2389
|
*/
|
2799
|
-App.prototype.open = function()
|
|
|
2800
|
-{
|
2390
|
+App.prototype.open = function () {
|
2801
|
// Cross-domain window access is not allowed in FF, so if we
|
2391
|
// Cross-domain window access is not allowed in FF, so if we
|
2802
|
// were opened from another domain then this will fail.
|
2392
|
// were opened from another domain then this will fail.
|
2803
|
- try
|
|
|
2804
|
- {
|
2393
|
+ try {
|
2805
|
// If the create URL param is used in embed mode then
|
2394
|
// If the create URL param is used in embed mode then
|
2806
|
// we try to open the XML from window.opener[value].
|
2395
|
// we try to open the XML from window.opener[value].
|
2807
|
// Use this for embedding via tab to bypass the timing
|
2396
|
// Use this for embedding via tab to bypass the timing
|
2808
|
// issues when passing messages without onload event.
|
2397
|
// issues when passing messages without onload event.
|
2809
|
- if (window.opener != null)
|
|
|
2810
|
- {
|
2398
|
+ if (window.opener != null) {
|
2811
|
var value = urlParams['create'];
|
2399
|
var value = urlParams['create'];
|
2812
|
|
2400
|
|
2813
|
- if (value != null)
|
|
|
2814
|
- {
|
2401
|
+ if (value != null) {
|
2815
|
value = decodeURIComponent(value);
|
2402
|
value = decodeURIComponent(value);
|
2816
|
}
|
2403
|
}
|
2817
|
|
2404
|
|
2818
|
if (value != null && value.length > 0 && value.substring(0, 7) != 'http://' &&
|
2405
|
if (value != null && value.length > 0 && value.substring(0, 7) != 'http://' &&
|
2819
|
- value.substring(0, 8) != 'https://')
|
|
|
2820
|
- {
|
2406
|
+ value.substring(0, 8) != 'https://') {
|
2821
|
var doc = mxUtils.parseXml(window.opener[value]);
|
2407
|
var doc = mxUtils.parseXml(window.opener[value]);
|
2822
|
this.editor.setGraphXml(doc.documentElement);
|
2408
|
this.editor.setGraphXml(doc.documentElement);
|
2823
|
}
|
2409
|
}
|
2824
|
- else if (window.opener.openFile != null)
|
|
|
2825
|
- {
|
|
|
2826
|
- window.opener.openFile.setConsumer(mxUtils.bind(this, function(xml, filename, temp)
|
|
|
2827
|
- {
|
2410
|
+ else if (window.opener.openFile != null) {
|
|
|
2411
|
+ window.opener.openFile.setConsumer(mxUtils.bind(this, function (xml, filename, temp) {
|
2828
|
this.spinner.stop();
|
2412
|
this.spinner.stop();
|
2829
|
|
2413
|
|
2830
|
- if (filename == null)
|
|
|
2831
|
- {
|
2414
|
+ if (filename == null) {
|
2832
|
var title = urlParams['title'];
|
2415
|
var title = urlParams['title'];
|
2833
|
temp = true;
|
2416
|
temp = true;
|
2834
|
|
2417
|
|
2835
|
- if (title != null)
|
|
|
2836
|
- {
|
2418
|
+ if (title != null) {
|
2837
|
filename = decodeURIComponent(title);
|
2419
|
filename = decodeURIComponent(title);
|
2838
|
}
|
2420
|
}
|
2839
|
- else
|
|
|
2840
|
- {
|
2421
|
+ else {
|
2841
|
filename = this.defaultFilename;
|
2422
|
filename = this.defaultFilename;
|
2842
|
}
|
2423
|
}
|
2843
|
}
|
2424
|
}
|
|
@@ -2845,8 +2426,7 @@ App.prototype.open = function() |
|
@@ -2845,8 +2426,7 @@ App.prototype.open = function() |
2845
|
// Replaces PNG with XML extension
|
2426
|
// Replaces PNG with XML extension
|
2846
|
var dot = (!this.useCanvasForExport) ? filename.substring(filename.length - 4) == '.png' : -1;
|
2427
|
var dot = (!this.useCanvasForExport) ? filename.substring(filename.length - 4) == '.png' : -1;
|
2847
|
|
2428
|
|
2848
|
- if (dot > 0)
|
|
|
2849
|
- {
|
2429
|
+ if (dot > 0) {
|
2850
|
filename = filename.substring(0, filename.length - 4) + '.drawio';
|
2430
|
filename = filename.substring(0, filename.length - 4) + '.drawio';
|
2851
|
}
|
2431
|
}
|
2852
|
|
2432
|
|
|
@@ -2857,17 +2437,14 @@ App.prototype.open = function() |
|
@@ -2857,17 +2437,14 @@ App.prototype.open = function() |
2857
|
}
|
2437
|
}
|
2858
|
}
|
2438
|
}
|
2859
|
}
|
2439
|
}
|
2860
|
- catch(e)
|
|
|
2861
|
- {
|
2440
|
+ catch (e) {
|
2862
|
// ignore
|
2441
|
// ignore
|
2863
|
}
|
2442
|
}
|
2864
|
};
|
2443
|
};
|
2865
|
|
2444
|
|
2866
|
-App.prototype.loadGapi = function(then)
|
|
|
2867
|
-{
|
|
|
2868
|
- if (typeof gapi !== 'undefined')
|
|
|
2869
|
- {
|
|
|
2870
|
- gapi.load(((urlParams['picker'] != '0') ? 'picker,': '') + App.GOOGLE_APIS, then);
|
2445
|
+App.prototype.loadGapi = function (then) {
|
|
|
2446
|
+ if (typeof gapi !== 'undefined') {
|
|
|
2447
|
+ gapi.load(((urlParams['picker'] != '0') ? 'picker,' : '') + App.GOOGLE_APIS, then);
|
2871
|
}
|
2448
|
}
|
2872
|
};
|
2449
|
};
|
2873
|
|
2450
|
|
|
@@ -2877,19 +2454,14 @@ App.prototype.loadGapi = function(then) |
|
@@ -2877,19 +2454,14 @@ App.prototype.loadGapi = function(then) |
2877
|
* @param {number} dx X-coordinate of the translation.
|
2454
|
* @param {number} dx X-coordinate of the translation.
|
2878
|
* @param {number} dy Y-coordinate of the translation.
|
2455
|
* @param {number} dy Y-coordinate of the translation.
|
2879
|
*/
|
2456
|
*/
|
2880
|
-App.prototype.load = function()
|
|
|
2881
|
-{
|
2457
|
+App.prototype.load = function () {
|
2882
|
// Checks if we're running in embedded mode
|
2458
|
// Checks if we're running in embedded mode
|
2883
|
- if (urlParams['embed'] != '1')
|
|
|
2884
|
- {
|
|
|
2885
|
- if (this.spinner.spin(document.body, mxResources.get('starting')))
|
|
|
2886
|
- {
|
|
|
2887
|
- try
|
|
|
2888
|
- {
|
2459
|
+ if (urlParams['embed'] != '1') {
|
|
|
2460
|
+ if (this.spinner.spin(document.body, mxResources.get('starting'))) {
|
|
|
2461
|
+ try {
|
2889
|
this.stateArg = (urlParams['state'] != null && this.drive != null) ? JSON.parse(decodeURIComponent(urlParams['state'])) : null;
|
2462
|
this.stateArg = (urlParams['state'] != null && this.drive != null) ? JSON.parse(decodeURIComponent(urlParams['state'])) : null;
|
2890
|
}
|
2463
|
}
|
2891
|
- catch (e)
|
|
|
2892
|
- {
|
2464
|
+ catch (e) {
|
2893
|
// ignores invalid state args
|
2465
|
// ignores invalid state args
|
2894
|
}
|
2466
|
}
|
2895
|
|
2467
|
|
|
@@ -2897,46 +2469,37 @@ App.prototype.load = function() |
|
@@ -2897,46 +2469,37 @@ App.prototype.load = function() |
2897
|
|
2469
|
|
2898
|
// Passes the userId from the state parameter to the client
|
2470
|
// Passes the userId from the state parameter to the client
|
2899
|
if ((window.location.hash == null || window.location.hash.length == 0) &&
|
2471
|
if ((window.location.hash == null || window.location.hash.length == 0) &&
|
2900
|
- this.drive != null && this.stateArg != null && this.stateArg.userId != null)
|
|
|
2901
|
- {
|
2472
|
+ this.drive != null && this.stateArg != null && this.stateArg.userId != null) {
|
2902
|
this.drive.setUserId(this.stateArg.userId);
|
2473
|
this.drive.setUserId(this.stateArg.userId);
|
2903
|
}
|
2474
|
}
|
2904
|
|
2475
|
|
2905
|
// Legacy support for fileId parameter which is moved to the hash tag
|
2476
|
// Legacy support for fileId parameter which is moved to the hash tag
|
2906
|
- if (urlParams['fileId'] != null)
|
|
|
2907
|
- {
|
2477
|
+ if (urlParams['fileId'] != null) {
|
2908
|
window.location.hash = 'G' + urlParams['fileId'];
|
2478
|
window.location.hash = 'G' + urlParams['fileId'];
|
2909
|
window.location.search = this.getSearch(['fileId']);
|
2479
|
window.location.search = this.getSearch(['fileId']);
|
2910
|
}
|
2480
|
}
|
2911
|
- else
|
|
|
2912
|
- {
|
2481
|
+ else {
|
2913
|
// Asynchronous or disabled loading of client
|
2482
|
// Asynchronous or disabled loading of client
|
2914
|
- if (this.drive == null)
|
|
|
2915
|
- {
|
|
|
2916
|
- if (this.mode == App.MODE_GOOGLE)
|
|
|
2917
|
- {
|
2483
|
+ if (this.drive == null) {
|
|
|
2484
|
+ if (this.mode == App.MODE_GOOGLE) {
|
2918
|
this.mode = null;
|
2485
|
this.mode = null;
|
2919
|
}
|
2486
|
}
|
2920
|
|
2487
|
|
2921
|
this.start();
|
2488
|
this.start();
|
2922
|
}
|
2489
|
}
|
2923
|
- else
|
|
|
2924
|
- {
|
|
|
2925
|
- this.loadGapi(mxUtils.bind(this, function()
|
|
|
2926
|
- {
|
2490
|
+ else {
|
|
|
2491
|
+ this.loadGapi(mxUtils.bind(this, function () {
|
2927
|
this.start();
|
2492
|
this.start();
|
2928
|
}));
|
2493
|
}));
|
2929
|
}
|
2494
|
}
|
2930
|
}
|
2495
|
}
|
2931
|
}
|
2496
|
}
|
2932
|
}
|
2497
|
}
|
2933
|
- else
|
|
|
2934
|
- {
|
2498
|
+ else {
|
2935
|
this.restoreLibraries();
|
2499
|
this.restoreLibraries();
|
2936
|
|
2500
|
|
2937
|
- if (urlParams['gapi'] == '1')
|
|
|
2938
|
- {
|
|
|
2939
|
- this.loadGapi(function() {});
|
2501
|
+ if (urlParams['gapi'] == '1') {
|
|
|
2502
|
+ this.loadGapi(function () { });
|
2940
|
}
|
2503
|
}
|
2941
|
}
|
2504
|
}
|
2942
|
};
|
2505
|
};
|
|
@@ -2944,31 +2507,26 @@ App.prototype.load = function() |
|
@@ -2944,31 +2507,26 @@ App.prototype.load = function() |
2944
|
/**
|
2507
|
/**
|
2945
|
* Adds the listener for automatically saving the diagram for local changes.
|
2508
|
* Adds the listener for automatically saving the diagram for local changes.
|
2946
|
*/
|
2509
|
*/
|
2947
|
-App.prototype.showRefreshDialog = function(title, message)
|
|
|
2948
|
-{
|
|
|
2949
|
- if (!this.showingRefreshDialog)
|
|
|
2950
|
- {
|
2510
|
+App.prototype.showRefreshDialog = function (title, message) {
|
|
|
2511
|
+ if (!this.showingRefreshDialog) {
|
2951
|
this.showingRefreshDialog = true;
|
2512
|
this.showingRefreshDialog = true;
|
2952
|
|
2513
|
|
2953
|
this.showError(title || mxResources.get('externalChanges'),
|
2514
|
this.showError(title || mxResources.get('externalChanges'),
|
2954
|
message || mxResources.get('redirectToNewApp'),
|
2515
|
message || mxResources.get('redirectToNewApp'),
|
2955
|
- mxResources.get('refresh'), mxUtils.bind(this, function()
|
|
|
2956
|
- {
|
|
|
2957
|
- var file = this.getCurrentFile();
|
2516
|
+ mxResources.get('refresh'), mxUtils.bind(this, function () {
|
|
|
2517
|
+ var file = this.getCurrentFile();
|
2958
|
|
2518
|
|
2959
|
- if (file != null)
|
|
|
2960
|
- {
|
|
|
2961
|
- file.setModified(false);
|
|
|
2962
|
- }
|
2519
|
+ if (file != null) {
|
|
|
2520
|
+ file.setModified(false);
|
|
|
2521
|
+ }
|
2963
|
|
2522
|
|
2964
|
- this.spinner.spin(document.body, mxResources.get('connecting'));
|
|
|
2965
|
- this.editor.graph.setEnabled(false);
|
|
|
2966
|
- window.location.reload();
|
|
|
2967
|
- }), null, null, null, null, null, 340, 180);
|
2523
|
+ this.spinner.spin(document.body, mxResources.get('connecting'));
|
|
|
2524
|
+ this.editor.graph.setEnabled(false);
|
|
|
2525
|
+ window.location.reload();
|
|
|
2526
|
+ }), null, null, null, null, null, 340, 180);
|
2968
|
|
2527
|
|
2969
|
// Adds important notice to dialog
|
2528
|
// Adds important notice to dialog
|
2970
|
- if (this.dialog != null && this.dialog.container != null)
|
|
|
2971
|
- {
|
2529
|
+ if (this.dialog != null && this.dialog.container != null) {
|
2972
|
var alert = this.createRealtimeNotice();
|
2530
|
var alert = this.createRealtimeNotice();
|
2973
|
alert.style.left = '0';
|
2531
|
alert.style.left = '0';
|
2974
|
alert.style.right = '0';
|
2532
|
alert.style.right = '0';
|
|
@@ -2986,10 +2544,8 @@ App.prototype.showRefreshDialog = function(title, message) |
|
@@ -2986,10 +2544,8 @@ App.prototype.showRefreshDialog = function(title, message) |
2986
|
/**
|
2544
|
/**
|
2987
|
* Called in start after the spinner stops.
|
2545
|
* Called in start after the spinner stops.
|
2988
|
*/
|
2546
|
*/
|
2989
|
-App.prototype.showAlert = function(message)
|
|
|
2990
|
-{
|
|
|
2991
|
- if (message != null && message.length > 0)
|
|
|
2992
|
- {
|
2547
|
+App.prototype.showAlert = function (message) {
|
|
|
2548
|
+ if (message != null && message.length > 0) {
|
2993
|
var div = document.createElement('div');
|
2549
|
var div = document.createElement('div');
|
2994
|
div.className = 'geAlert';
|
2550
|
div.className = 'geAlert';
|
2995
|
div.style.zIndex = 2e9;
|
2551
|
div.style.zIndex = 2e9;
|
|
@@ -3013,10 +2569,8 @@ App.prototype.showAlert = function(message) |
|
@@ -3013,10 +2569,8 @@ App.prototype.showAlert = function(message) |
3013
|
close.innerHTML = mxResources.get('close');
|
2569
|
close.innerHTML = mxResources.get('close');
|
3014
|
div.appendChild(close);
|
2570
|
div.appendChild(close);
|
3015
|
|
2571
|
|
3016
|
- mxEvent.addListener(close, 'click', function(evt)
|
|
|
3017
|
- {
|
|
|
3018
|
- if (div.parentNode != null)
|
|
|
3019
|
- {
|
2572
|
+ mxEvent.addListener(close, 'click', function (evt) {
|
|
|
2573
|
+ if (div.parentNode != null) {
|
3020
|
div.parentNode.removeChild(div);
|
2574
|
div.parentNode.removeChild(div);
|
3021
|
mxEvent.consume(evt);
|
2575
|
mxEvent.consume(evt);
|
3022
|
}
|
2576
|
}
|
|
@@ -3025,21 +2579,17 @@ App.prototype.showAlert = function(message) |
|
@@ -3025,21 +2579,17 @@ App.prototype.showAlert = function(message) |
3025
|
document.body.appendChild(div);
|
2579
|
document.body.appendChild(div);
|
3026
|
|
2580
|
|
3027
|
// Delayed to get smoother animation after DOM rendering
|
2581
|
// Delayed to get smoother animation after DOM rendering
|
3028
|
- window.setTimeout(function()
|
|
|
3029
|
- {
|
2582
|
+ window.setTimeout(function () {
|
3030
|
div.style.top = '30px';
|
2583
|
div.style.top = '30px';
|
3031
|
}, 10);
|
2584
|
}, 10);
|
3032
|
|
2585
|
|
3033
|
// Fades out the alert after 15 secs
|
2586
|
// Fades out the alert after 15 secs
|
3034
|
- window.setTimeout(function()
|
|
|
3035
|
- {
|
2587
|
+ window.setTimeout(function () {
|
3036
|
mxUtils.setPrefixedStyle(div.style, 'transition', 'all 2s ease');
|
2588
|
mxUtils.setPrefixedStyle(div.style, 'transition', 'all 2s ease');
|
3037
|
div.style.opacity = '0';
|
2589
|
div.style.opacity = '0';
|
3038
|
|
2590
|
|
3039
|
- window.setTimeout(function()
|
|
|
3040
|
- {
|
|
|
3041
|
- if (div.parentNode != null)
|
|
|
3042
|
- {
|
2591
|
+ window.setTimeout(function () {
|
|
|
2592
|
+ if (div.parentNode != null) {
|
3043
|
div.parentNode.removeChild(div);
|
2593
|
div.parentNode.removeChild(div);
|
3044
|
}
|
2594
|
}
|
3045
|
}, 2000);
|
2595
|
}, 2000);
|
|
@@ -3053,48 +2603,38 @@ App.prototype.showAlert = function(message) |
|
@@ -3053,48 +2603,38 @@ App.prototype.showAlert = function(message) |
3053
|
* @param {number} dx X-coordinate of the translation.
|
2603
|
* @param {number} dx X-coordinate of the translation.
|
3054
|
* @param {number} dy Y-coordinate of the translation.
|
2604
|
* @param {number} dy Y-coordinate of the translation.
|
3055
|
*/
|
2605
|
*/
|
3056
|
-App.prototype.start = function()
|
|
|
3057
|
-{
|
|
|
3058
|
- if (this.bg != null && this.bg.parentNode != null)
|
|
|
3059
|
- {
|
2606
|
+App.prototype.start = function () {
|
|
|
2607
|
+ if (this.bg != null && this.bg.parentNode != null) {
|
3060
|
this.bg.parentNode.removeChild(this.bg);
|
2608
|
this.bg.parentNode.removeChild(this.bg);
|
3061
|
}
|
2609
|
}
|
3062
|
|
2610
|
|
3063
|
this.restoreLibraries();
|
2611
|
this.restoreLibraries();
|
3064
|
this.spinner.stop();
|
2612
|
this.spinner.stop();
|
3065
|
|
2613
|
|
3066
|
- try
|
|
|
3067
|
- {
|
2614
|
+ try {
|
3068
|
// Handles all errors
|
2615
|
// Handles all errors
|
3069
|
var ui = this;
|
2616
|
var ui = this;
|
3070
|
|
2617
|
|
3071
|
- window.onerror = function(message, url, linenumber, colno, err)
|
|
|
3072
|
- {
|
2618
|
+ window.onerror = function (message, url, linenumber, colno, err) {
|
3073
|
// Ignores Grammarly error [1344]
|
2619
|
// Ignores Grammarly error [1344]
|
3074
|
- if (message != 'ResizeObserver loop limit exceeded')
|
|
|
3075
|
- {
|
2620
|
+ if (message != 'ResizeObserver loop limit exceeded') {
|
3076
|
EditorUi.logError('Uncaught: ' + ((message != null) ? message : ''),
|
2621
|
EditorUi.logError('Uncaught: ' + ((message != null) ? message : ''),
|
3077
|
url, linenumber, colno, err, null, true);
|
2622
|
url, linenumber, colno, err, null, true);
|
3078
|
- ui.handleError({message: message}, mxResources.get('unknownError'),
|
2623
|
+ ui.handleError({ message: message }, mxResources.get('unknownError'),
|
3079
|
null, null, null, null, true);
|
2624
|
null, null, null, null, true);
|
3080
|
}
|
2625
|
}
|
3081
|
};
|
2626
|
};
|
3082
|
|
2627
|
|
3083
|
// Listens to changes of the hash if not in embed or client mode
|
2628
|
// Listens to changes of the hash if not in embed or client mode
|
3084
|
- if (urlParams['client'] != '1' && urlParams['embed'] != '1')
|
|
|
3085
|
- {
|
2629
|
+ if (urlParams['client'] != '1' && urlParams['embed'] != '1') {
|
3086
|
// Installs listener to claim current draft if there is one
|
2630
|
// Installs listener to claim current draft if there is one
|
3087
|
- try
|
|
|
3088
|
- {
|
|
|
3089
|
- if (isLocalStorage)
|
|
|
3090
|
- {
|
|
|
3091
|
- window.addEventListener('storage', mxUtils.bind(this, function(evt)
|
|
|
3092
|
- {
|
2631
|
+ try {
|
|
|
2632
|
+ if (isLocalStorage) {
|
|
|
2633
|
+ window.addEventListener('storage', mxUtils.bind(this, function (evt) {
|
3093
|
var file = this.getCurrentFile();
|
2634
|
var file = this.getCurrentFile();
|
3094
|
EditorUi.debug('storage event', [evt], [file]);
|
2635
|
EditorUi.debug('storage event', [evt], [file]);
|
3095
|
|
2636
|
|
3096
|
- if (file != null && evt.key == '.draft-alive-check' && evt.newValue != null && file.draftId != null)
|
|
|
3097
|
- {
|
2637
|
+ if (file != null && evt.key == '.draft-alive-check' && evt.newValue != null && file.draftId != null) {
|
3098
|
this.draftAliveCheck = evt.newValue;
|
2638
|
this.draftAliveCheck = evt.newValue;
|
3099
|
file.saveDraft();
|
2639
|
file.saveDraft();
|
3100
|
}
|
2640
|
}
|
|
@@ -3103,36 +2643,28 @@ App.prototype.start = function() |
|
@@ -3103,36 +2643,28 @@ App.prototype.start = function() |
3103
|
|
2643
|
|
3104
|
if (!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp && !this.isOfflineApp() &&
|
2644
|
if (!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp && !this.isOfflineApp() &&
|
3105
|
urlParams['open'] == null && /www\.draw\.io$/.test(window.location.hostname) &&
|
2645
|
urlParams['open'] == null && /www\.draw\.io$/.test(window.location.hostname) &&
|
3106
|
- (!this.editor.chromeless || this.editor.editable))
|
|
|
3107
|
- {
|
2646
|
+ (!this.editor.chromeless || this.editor.editable)) {
|
3108
|
this.showNameChangeBanner();
|
2647
|
this.showNameChangeBanner();
|
3109
|
}
|
2648
|
}
|
3110
|
}
|
2649
|
}
|
3111
|
- catch (e)
|
|
|
3112
|
- {
|
2650
|
+ catch (e) {
|
3113
|
// ignore
|
2651
|
// ignore
|
3114
|
}
|
2652
|
}
|
3115
|
|
2653
|
|
3116
|
- mxEvent.addListener(window, 'hashchange', mxUtils.bind(this, function(evt)
|
|
|
3117
|
- {
|
|
|
3118
|
- try
|
|
|
3119
|
- {
|
2654
|
+ mxEvent.addListener(window, 'hashchange', mxUtils.bind(this, function (evt) {
|
|
|
2655
|
+ try {
|
3120
|
this.hideDialog();
|
2656
|
this.hideDialog();
|
3121
|
var id = this.getDiagramId();
|
2657
|
var id = this.getDiagramId();
|
3122
|
var file = this.getCurrentFile();
|
2658
|
var file = this.getCurrentFile();
|
3123
|
|
2659
|
|
3124
|
- if (file == null || file.getHash() != id)
|
|
|
3125
|
- {
|
2660
|
+ if (file == null || file.getHash() != id) {
|
3126
|
this.loadFile(id, true);
|
2661
|
this.loadFile(id, true);
|
3127
|
}
|
2662
|
}
|
3128
|
}
|
2663
|
}
|
3129
|
- catch (e)
|
|
|
3130
|
- {
|
2664
|
+ catch (e) {
|
3131
|
// Workaround for possible scrollWidth of null in Dialog ctor
|
2665
|
// Workaround for possible scrollWidth of null in Dialog ctor
|
3132
|
- if (document.body != null)
|
|
|
3133
|
- {
|
|
|
3134
|
- this.handleError(e, mxResources.get('errorLoadingFile'), mxUtils.bind(this, function()
|
|
|
3135
|
- {
|
2666
|
+ if (document.body != null) {
|
|
|
2667
|
+ this.handleError(e, mxResources.get('errorLoadingFile'), mxUtils.bind(this, function () {
|
3136
|
var file = this.getCurrentFile();
|
2668
|
var file = this.getCurrentFile();
|
3137
|
window.location.hash = (file != null) ? file.getHash() : '';
|
2669
|
window.location.hash = (file != null) ? file.getHash() : '';
|
3138
|
}));
|
2670
|
}));
|
|
@@ -3142,61 +2674,47 @@ App.prototype.start = function() |
|
@@ -3142,61 +2674,47 @@ App.prototype.start = function() |
3142
|
}
|
2674
|
}
|
3143
|
|
2675
|
|
3144
|
// Descriptor for CSV import
|
2676
|
// Descriptor for CSV import
|
3145
|
- if ((window.location.hash == null || window.location.hash.length <= 1) && urlParams['desc'] != null)
|
|
|
3146
|
- {
|
|
|
3147
|
- try
|
|
|
3148
|
- {
|
2677
|
+ if ((window.location.hash == null || window.location.hash.length <= 1) && urlParams['desc'] != null) {
|
|
|
2678
|
+ try {
|
3149
|
this.loadDescriptor(JSON.parse(Graph.decompress(urlParams['desc'])),
|
2679
|
this.loadDescriptor(JSON.parse(Graph.decompress(urlParams['desc'])),
|
3150
|
- null, mxUtils.bind(this, function(e)
|
|
|
3151
|
- {
|
|
|
3152
|
- this.handleError(e, mxResources.get('errorLoadingFile'));
|
|
|
3153
|
- }));
|
2680
|
+ null, mxUtils.bind(this, function (e) {
|
|
|
2681
|
+ this.handleError(e, mxResources.get('errorLoadingFile'));
|
|
|
2682
|
+ }));
|
3154
|
}
|
2683
|
}
|
3155
|
- catch (e)
|
|
|
3156
|
- {
|
2684
|
+ catch (e) {
|
3157
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
2685
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
3158
|
}
|
2686
|
}
|
3159
|
}
|
2687
|
}
|
3160
|
// Redirects old url URL parameter to new #U format
|
2688
|
// Redirects old url URL parameter to new #U format
|
3161
|
// 文件加载
|
2689
|
// 文件加载
|
3162
|
- else if ((window.location.hash == null || window.location.hash.length <= 1) && urlParams['url'] != null)
|
|
|
3163
|
- {
|
2690
|
+ else if ((window.location.hash == null || window.location.hash.length <= 1) && urlParams['url'] != null) {
|
3164
|
this.loadFile('U' + urlParams['url'], true);
|
2691
|
this.loadFile('U' + urlParams['url'], true);
|
3165
|
}
|
2692
|
}
|
3166
|
//为null时,通过弹出文件框,选择加载文件加载
|
2693
|
//为null时,通过弹出文件框,选择加载文件加载
|
3167
|
- else if (this.getCurrentFile() == null)
|
|
|
3168
|
- {
|
|
|
3169
|
- var done = mxUtils.bind(this, function()
|
|
|
3170
|
- {
|
2694
|
+ else if (this.getCurrentFile() == null) {
|
|
|
2695
|
+ var done = mxUtils.bind(this, function () {
|
3171
|
// Starts in client mode and waits for data
|
2696
|
// Starts in client mode and waits for data
|
3172
|
if (urlParams['client'] == '1' && (window.location.hash == null ||
|
2697
|
if (urlParams['client'] == '1' && (window.location.hash == null ||
|
3173
|
- window.location.hash.length == 0 || window.location.hash.substring(0, 2) == '#P'))
|
|
|
3174
|
- {
|
|
|
3175
|
- var doLoadFile = mxUtils.bind(this, function(xml)
|
|
|
3176
|
- {
|
2698
|
+ window.location.hash.length == 0 || window.location.hash.substring(0, 2) == '#P')) {
|
|
|
2699
|
+ var doLoadFile = mxUtils.bind(this, function (xml) {
|
3177
|
// Extracts graph model from PNG
|
2700
|
// Extracts graph model from PNG
|
3178
|
- if (Editor.isPngDataUrl(xml))
|
|
|
3179
|
- {
|
2701
|
+ if (Editor.isPngDataUrl(xml)) {
|
3180
|
xml = Editor.extractGraphModelFromPng(xml);
|
2702
|
xml = Editor.extractGraphModelFromPng(xml);
|
3181
|
}
|
2703
|
}
|
3182
|
|
2704
|
|
3183
|
var title = urlParams['title'];
|
2705
|
var title = urlParams['title'];
|
3184
|
|
2706
|
|
3185
|
- if (title != null)
|
|
|
3186
|
- {
|
2707
|
+ if (title != null) {
|
3187
|
title = decodeURIComponent(title);
|
2708
|
title = decodeURIComponent(title);
|
3188
|
}
|
2709
|
}
|
3189
|
- else
|
|
|
3190
|
- {
|
2710
|
+ else {
|
3191
|
title = this.defaultFilename;
|
2711
|
title = this.defaultFilename;
|
3192
|
}
|
2712
|
}
|
3193
|
|
2713
|
|
3194
|
var file = new LocalFile(this, xml, title, true);
|
2714
|
var file = new LocalFile(this, xml, title, true);
|
3195
|
|
2715
|
|
3196
|
- if (window.location.hash != null && window.location.hash.substring(0, 2) == '#P')
|
|
|
3197
|
- {
|
|
|
3198
|
- file.getHash = function()
|
|
|
3199
|
- {
|
2716
|
+ if (window.location.hash != null && window.location.hash.substring(0, 2) == '#P') {
|
|
|
2717
|
+ file.getHash = function () {
|
3200
|
return window.location.hash.substring(1);
|
2718
|
return window.location.hash.substring(1);
|
3201
|
};
|
2719
|
};
|
3202
|
}
|
2720
|
}
|
|
@@ -3207,29 +2725,22 @@ App.prototype.start = function() |
|
@@ -3207,29 +2725,22 @@ App.prototype.start = function() |
3207
|
|
2725
|
|
3208
|
var parent = window.opener || window.parent;
|
2726
|
var parent = window.opener || window.parent;
|
3209
|
|
2727
|
|
3210
|
- if (parent != window)
|
|
|
3211
|
- {
|
2728
|
+ if (parent != window) {
|
3212
|
var value = urlParams['create'];
|
2729
|
var value = urlParams['create'];
|
3213
|
|
2730
|
|
3214
|
- if (value != null)
|
|
|
3215
|
- {
|
2731
|
+ if (value != null) {
|
3216
|
doLoadFile(parent[decodeURIComponent(value)]);
|
2732
|
doLoadFile(parent[decodeURIComponent(value)]);
|
3217
|
}
|
2733
|
}
|
3218
|
- else
|
|
|
3219
|
- {
|
2734
|
+ else {
|
3220
|
value = urlParams['data'];
|
2735
|
value = urlParams['data'];
|
3221
|
|
2736
|
|
3222
|
- if (value != null)
|
|
|
3223
|
- {
|
2737
|
+ if (value != null) {
|
3224
|
doLoadFile(decodeURIComponent(value));
|
2738
|
doLoadFile(decodeURIComponent(value));
|
3225
|
}
|
2739
|
}
|
3226
|
- else
|
|
|
3227
|
- {
|
|
|
3228
|
- this.installMessageHandler(mxUtils.bind(this, function(xml, evt)
|
|
|
3229
|
- {
|
2740
|
+ else {
|
|
|
2741
|
+ this.installMessageHandler(mxUtils.bind(this, function (xml, evt) {
|
3230
|
// Ignores messages from other windows
|
2742
|
// Ignores messages from other windows
|
3231
|
- if (evt.source == parent)
|
|
|
3232
|
- {
|
2743
|
+ if (evt.source == parent) {
|
3233
|
doLoadFile(xml);
|
2744
|
doLoadFile(xml);
|
3234
|
}
|
2745
|
}
|
3235
|
}));
|
2746
|
}));
|
|
@@ -3238,72 +2749,57 @@ App.prototype.start = function() |
|
@@ -3238,72 +2749,57 @@ App.prototype.start = function() |
3238
|
}
|
2749
|
}
|
3239
|
}
|
2750
|
}
|
3240
|
// Checks if no earlier loading errors are showing
|
2751
|
// Checks if no earlier loading errors are showing
|
3241
|
- else if (this.dialog == null)
|
|
|
3242
|
- {
|
|
|
3243
|
- if (urlParams['demo'] == '1')
|
|
|
3244
|
- {
|
2752
|
+ else if (this.dialog == null) {
|
|
|
2753
|
+ if (urlParams['demo'] == '1') {
|
3245
|
var prev = Editor.useLocalStorage;
|
2754
|
var prev = Editor.useLocalStorage;
|
3246
|
this.createFile(this.defaultFilename, null, null, null, null, null, null, true);
|
2755
|
this.createFile(this.defaultFilename, null, null, null, null, null, null, true);
|
3247
|
Editor.useLocalStorage = prev;
|
2756
|
Editor.useLocalStorage = prev;
|
3248
|
}
|
2757
|
}
|
3249
|
- else
|
|
|
3250
|
- {
|
2758
|
+ else {
|
3251
|
var waiting = false;
|
2759
|
var waiting = false;
|
3252
|
|
2760
|
|
3253
|
// Checks if we're waiting for some asynchronous file to be loaded
|
2761
|
// Checks if we're waiting for some asynchronous file to be loaded
|
3254
|
// Cross-domain window access is not allowed in FF, so if we
|
2762
|
// Cross-domain window access is not allowed in FF, so if we
|
3255
|
// were opened from another domain then this will fail.
|
2763
|
// were opened from another domain then this will fail.
|
3256
|
- try
|
|
|
3257
|
- {
|
2764
|
+ try {
|
3258
|
waiting = window.opener != null && window.opener.openFile != null;
|
2765
|
waiting = window.opener != null && window.opener.openFile != null;
|
3259
|
}
|
2766
|
}
|
3260
|
- catch(e)
|
|
|
3261
|
- {
|
2767
|
+ catch (e) {
|
3262
|
// ignore
|
2768
|
// ignore
|
3263
|
}
|
2769
|
}
|
3264
|
|
2770
|
|
3265
|
- if (waiting)
|
|
|
3266
|
- {
|
2771
|
+ if (waiting) {
|
3267
|
// Spinner is stopped in App.open
|
2772
|
// Spinner is stopped in App.open
|
3268
|
this.spinner.spin(document.body, mxResources.get('loading'))
|
2773
|
this.spinner.spin(document.body, mxResources.get('loading'))
|
3269
|
}
|
2774
|
}
|
3270
|
- else
|
|
|
3271
|
- {
|
2775
|
+ else {
|
3272
|
var id = this.getDiagramId();
|
2776
|
var id = this.getDiagramId();
|
3273
|
|
2777
|
|
3274
|
if (EditorUi.enableDrafts && urlParams['mode'] == null &&
|
2778
|
if (EditorUi.enableDrafts && urlParams['mode'] == null &&
|
3275
|
this.getServiceName() == 'draw.io' && (id == null || id.length == 0) &&
|
2779
|
this.getServiceName() == 'draw.io' && (id == null || id.length == 0) &&
|
3276
|
- !this.editor.isChromelessView())
|
|
|
3277
|
- {
|
2780
|
+ !this.editor.isChromelessView()) {
|
3278
|
this.checkDrafts();
|
2781
|
this.checkDrafts();
|
3279
|
}
|
2782
|
}
|
3280
|
- else if (id != null && id.length > 0)
|
|
|
3281
|
- {
|
|
|
3282
|
- this.loadFile(id, null, null, mxUtils.bind(this, function()
|
|
|
3283
|
- {
|
2783
|
+ else if (id != null && id.length > 0) {
|
|
|
2784
|
+ this.loadFile(id, null, null, mxUtils.bind(this, function () {
|
3284
|
var temp = decodeURIComponent(urlParams['viewbox'] || '');
|
2785
|
var temp = decodeURIComponent(urlParams['viewbox'] || '');
|
3285
|
|
2786
|
|
3286
|
- if (temp != '')
|
|
|
3287
|
- {
|
|
|
3288
|
- try
|
|
|
3289
|
- {
|
2787
|
+ if (temp != '') {
|
|
|
2788
|
+ try {
|
3290
|
var bounds = JSON.parse(temp);
|
2789
|
var bounds = JSON.parse(temp);
|
3291
|
this.editor.graph.fitWindow(bounds, bounds.border);
|
2790
|
this.editor.graph.fitWindow(bounds, bounds.border);
|
3292
|
}
|
2791
|
}
|
3293
|
- catch (e)
|
|
|
3294
|
- {
|
2792
|
+ catch (e) {
|
3295
|
// Ignore invalid viewport
|
2793
|
// Ignore invalid viewport
|
3296
|
console.error(e);
|
2794
|
console.error(e);
|
3297
|
}
|
2795
|
}
|
3298
|
}
|
2796
|
}
|
3299
|
}));
|
2797
|
}));
|
3300
|
}
|
2798
|
}
|
3301
|
- else if (urlParams['splash'] != '0' || urlParams['mode'] != null)
|
|
|
3302
|
- {
|
2799
|
+ else if (urlParams['splash'] != '0' || urlParams['mode'] != null) {
|
3303
|
this.loadFile();
|
2800
|
this.loadFile();
|
3304
|
}
|
2801
|
}
|
3305
|
- else if (!EditorUi.isElectronApp)
|
|
|
3306
|
- {
|
2802
|
+ else if (!EditorUi.isElectronApp) {
|
3307
|
this.createFile(this.defaultFilename, this.getFileData(), null, null, null, null, null, true);
|
2803
|
this.createFile(this.defaultFilename, this.getFileData(), null, null, null, null, null, true);
|
3308
|
}
|
2804
|
}
|
3309
|
}
|
2805
|
}
|
|
@@ -3314,62 +2810,50 @@ App.prototype.start = function() |
|
@@ -3314,62 +2810,50 @@ App.prototype.start = function() |
3314
|
var value = decodeURIComponent(urlParams['create'] || '');
|
2810
|
var value = decodeURIComponent(urlParams['create'] || '');
|
3315
|
|
2811
|
|
3316
|
if ((window.location.hash == null || window.location.hash.length <= 1) &&
|
2812
|
if ((window.location.hash == null || window.location.hash.length <= 1) &&
|
3317
|
- value != null && value.length > 0 && this.spinner.spin(document.body, mxResources.get('loading')))
|
|
|
3318
|
- {
|
|
|
3319
|
- var reconnect = mxUtils.bind(this, function()
|
|
|
3320
|
- {
|
2813
|
+ value != null && value.length > 0 && this.spinner.spin(document.body, mxResources.get('loading'))) {
|
|
|
2814
|
+ var reconnect = mxUtils.bind(this, function () {
|
3321
|
// Removes URL parameter and reloads the page
|
2815
|
// Removes URL parameter and reloads the page
|
3322
|
- if (this.spinner.spin(document.body, mxResources.get('reconnecting')))
|
|
|
3323
|
- {
|
2816
|
+ if (this.spinner.spin(document.body, mxResources.get('reconnecting'))) {
|
3324
|
window.location.search = this.getSearch(['create', 'title']);
|
2817
|
window.location.search = this.getSearch(['create', 'title']);
|
3325
|
};
|
2818
|
};
|
3326
|
});
|
2819
|
});
|
3327
|
|
2820
|
|
3328
|
- var showCreateDialog = mxUtils.bind(this, function(xml)
|
|
|
3329
|
- {
|
2821
|
+ var showCreateDialog = mxUtils.bind(this, function (xml) {
|
3330
|
this.spinner.stop();
|
2822
|
this.spinner.stop();
|
3331
|
|
2823
|
|
3332
|
// Resets mode for dialog - local file is only for preview
|
2824
|
// Resets mode for dialog - local file is only for preview
|
3333
|
- if (urlParams['splash'] != '0')
|
|
|
3334
|
- {
|
2825
|
+ if (urlParams['splash'] != '0') {
|
3335
|
this.fileLoaded(new LocalFile(this, xml, null));
|
2826
|
this.fileLoaded(new LocalFile(this, xml, null));
|
3336
|
|
2827
|
|
3337
|
this.editor.graph.setEnabled(false);
|
2828
|
this.editor.graph.setEnabled(false);
|
3338
|
this.mode = urlParams['mode'];
|
2829
|
this.mode = urlParams['mode'];
|
3339
|
var title = urlParams['title'];
|
2830
|
var title = urlParams['title'];
|
3340
|
|
2831
|
|
3341
|
- if (title != null)
|
|
|
3342
|
- {
|
2832
|
+ if (title != null) {
|
3343
|
title = decodeURIComponent(title);
|
2833
|
title = decodeURIComponent(title);
|
3344
|
}
|
2834
|
}
|
3345
|
- else
|
|
|
3346
|
- {
|
2835
|
+ else {
|
3347
|
title = this.defaultFilename;
|
2836
|
title = this.defaultFilename;
|
3348
|
}
|
2837
|
}
|
3349
|
|
2838
|
|
3350
|
var serviceCount = this.getServiceCount(true);
|
2839
|
var serviceCount = this.getServiceCount(true);
|
3351
|
|
2840
|
|
3352
|
- if (isLocalStorage)
|
|
|
3353
|
- {
|
2841
|
+ if (isLocalStorage) {
|
3354
|
serviceCount++;
|
2842
|
serviceCount++;
|
3355
|
}
|
2843
|
}
|
3356
|
|
2844
|
|
3357
|
var rowLimit = (serviceCount <= 4) ? 2 : (serviceCount > 6 ? 4 : 3);
|
2845
|
var rowLimit = (serviceCount <= 4) ? 2 : (serviceCount > 6 ? 4 : 3);
|
3358
|
|
2846
|
|
3359
|
- var dlg = new CreateDialog(this, title, mxUtils.bind(this, function(filename, mode)
|
|
|
3360
|
- {
|
|
|
3361
|
- if (mode == null)
|
|
|
3362
|
- {
|
2847
|
+ var dlg = new CreateDialog(this, title, mxUtils.bind(this, function (filename, mode) {
|
|
|
2848
|
+ if (mode == null) {
|
3363
|
this.hideDialog();
|
2849
|
this.hideDialog();
|
3364
|
var prev = Editor.useLocalStorage;
|
2850
|
var prev = Editor.useLocalStorage;
|
3365
|
this.createFile((filename.length > 0) ? filename : this.defaultFilename,
|
2851
|
this.createFile((filename.length > 0) ? filename : this.defaultFilename,
|
3366
|
this.getFileData(), null, null, null, true, null, true);
|
2852
|
this.getFileData(), null, null, null, true, null, true);
|
3367
|
Editor.useLocalStorage = prev;
|
2853
|
Editor.useLocalStorage = prev;
|
3368
|
}
|
2854
|
}
|
3369
|
- else
|
|
|
3370
|
- {
|
|
|
3371
|
- this.pickFolder(mode, mxUtils.bind(this, function(folderId)
|
|
|
3372
|
- {
|
2855
|
+ else {
|
|
|
2856
|
+ this.pickFolder(mode, mxUtils.bind(this, function (folderId) {
|
3373
|
this.createFile(filename, this.getFileData(true),
|
2857
|
this.createFile(filename, this.getFileData(true),
|
3374
|
null, mode, null, true, folderId);
|
2858
|
null, mode, null, true, folderId);
|
3375
|
}));
|
2859
|
}));
|
|
@@ -3378,61 +2862,47 @@ App.prototype.start = function() |
|
@@ -3378,61 +2862,47 @@ App.prototype.start = function() |
3378
|
null, null, true, rowLimit, null, null, null,
|
2862
|
null, null, true, rowLimit, null, null, null,
|
3379
|
this.editor.fileExtensions);
|
2863
|
this.editor.fileExtensions);
|
3380
|
this.showDialog(dlg.container, 420, (serviceCount > rowLimit) ? 390 : 280,
|
2864
|
this.showDialog(dlg.container, 420, (serviceCount > rowLimit) ? 390 : 280,
|
3381
|
- true, false, mxUtils.bind(this, function(cancel)
|
|
|
3382
|
- {
|
|
|
3383
|
- if (cancel && this.getCurrentFile() == null)
|
|
|
3384
|
- {
|
|
|
3385
|
- this.showSplash();
|
|
|
3386
|
- }
|
|
|
3387
|
- }));
|
2865
|
+ true, false, mxUtils.bind(this, function (cancel) {
|
|
|
2866
|
+ if (cancel && this.getCurrentFile() == null) {
|
|
|
2867
|
+ this.showSplash();
|
|
|
2868
|
+ }
|
|
|
2869
|
+ }));
|
3388
|
dlg.init();
|
2870
|
dlg.init();
|
3389
|
}
|
2871
|
}
|
3390
|
});
|
2872
|
});
|
3391
|
|
2873
|
|
3392
|
value = decodeURIComponent(value);
|
2874
|
value = decodeURIComponent(value);
|
3393
|
|
2875
|
|
3394
|
- if (value.substring(0, 7) != 'http://' && value.substring(0, 8) != 'https://')
|
|
|
3395
|
- {
|
2876
|
+ if (value.substring(0, 7) != 'http://' && value.substring(0, 8) != 'https://') {
|
3396
|
// Cross-domain window access is not allowed in FF, so if we
|
2877
|
// Cross-domain window access is not allowed in FF, so if we
|
3397
|
// were opened from another domain then this will fail.
|
2878
|
// were opened from another domain then this will fail.
|
3398
|
- try
|
|
|
3399
|
- {
|
|
|
3400
|
- if (window.opener != null && window.opener[value] != null)
|
|
|
3401
|
- {
|
2879
|
+ try {
|
|
|
2880
|
+ if (window.opener != null && window.opener[value] != null) {
|
3402
|
showCreateDialog(window.opener[value]);
|
2881
|
showCreateDialog(window.opener[value]);
|
3403
|
}
|
2882
|
}
|
3404
|
- else
|
|
|
3405
|
- {
|
2883
|
+ else {
|
3406
|
this.handleError(null, mxResources.get('errorLoadingFile'));
|
2884
|
this.handleError(null, mxResources.get('errorLoadingFile'));
|
3407
|
}
|
2885
|
}
|
3408
|
}
|
2886
|
}
|
3409
|
- catch (e)
|
|
|
3410
|
- {
|
2887
|
+ catch (e) {
|
3411
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
2888
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
3412
|
}
|
2889
|
}
|
3413
|
}
|
2890
|
}
|
3414
|
- else
|
|
|
3415
|
- {
|
|
|
3416
|
- this.loadTemplate(value, function(text)
|
|
|
3417
|
- {
|
2891
|
+ else {
|
|
|
2892
|
+ this.loadTemplate(value, function (text) {
|
3418
|
showCreateDialog(text);
|
2893
|
showCreateDialog(text);
|
3419
|
- }, mxUtils.bind(this, function()
|
|
|
3420
|
- {
|
2894
|
+ }, mxUtils.bind(this, function () {
|
3421
|
this.handleError(null, mxResources.get('errorLoadingFile'), reconnect);
|
2895
|
this.handleError(null, mxResources.get('errorLoadingFile'), reconnect);
|
3422
|
}));
|
2896
|
}));
|
3423
|
}
|
2897
|
}
|
3424
|
}
|
2898
|
}
|
3425
|
- else
|
|
|
3426
|
- {
|
2899
|
+ else {
|
3427
|
// Passes the fileId from the state parameter to the hash tag and reloads
|
2900
|
// Passes the fileId from the state parameter to the hash tag and reloads
|
3428
|
// the page without the state parameter
|
2901
|
// the page without the state parameter
|
3429
|
if ((window.location.hash == null || window.location.hash.length <= 1) &&
|
2902
|
if ((window.location.hash == null || window.location.hash.length <= 1) &&
|
3430
|
- urlParams['state'] != null && this.stateArg != null && this.stateArg.action == 'open')
|
|
|
3431
|
- {
|
|
|
3432
|
- if (this.stateArg.ids != null)
|
|
|
3433
|
- {
|
|
|
3434
|
- if (window.history && window.history.replaceState)
|
|
|
3435
|
- {
|
2903
|
+ urlParams['state'] != null && this.stateArg != null && this.stateArg.action == 'open') {
|
|
|
2904
|
+ if (this.stateArg.ids != null) {
|
|
|
2905
|
+ if (window.history && window.history.replaceState) {
|
3436
|
// Removes state URL parameter without reloading the page
|
2906
|
// Removes state URL parameter without reloading the page
|
3437
|
window.history.replaceState(null, null, window.location.pathname +
|
2907
|
window.history.replaceState(null, null, window.location.pathname +
|
3438
|
this.getSearch(['state']));
|
2908
|
this.getSearch(['state']));
|
|
@@ -3442,10 +2912,8 @@ App.prototype.start = function() |
|
@@ -3442,10 +2912,8 @@ App.prototype.start = function() |
3442
|
}
|
2912
|
}
|
3443
|
}
|
2913
|
}
|
3444
|
else if ((window.location.hash == null || window.location.hash.length <= 1) &&
|
2914
|
else if ((window.location.hash == null || window.location.hash.length <= 1) &&
|
3445
|
- this.drive != null && this.stateArg != null && this.stateArg.action == 'create')
|
|
|
3446
|
- {
|
|
|
3447
|
- if (window.history && window.history.replaceState)
|
|
|
3448
|
- {
|
2915
|
+ this.drive != null && this.stateArg != null && this.stateArg.action == 'create') {
|
|
|
2916
|
+ if (window.history && window.history.replaceState) {
|
3449
|
// Removes state URL parameter without reloading the page
|
2917
|
// Removes state URL parameter without reloading the page
|
3450
|
window.history.replaceState(null, null, window.location.pathname +
|
2918
|
window.history.replaceState(null, null, window.location.pathname +
|
3451
|
this.getSearch(['state']));
|
2919
|
this.getSearch(['state']));
|
|
@@ -3453,22 +2921,18 @@ App.prototype.start = function() |
|
@@ -3453,22 +2921,18 @@ App.prototype.start = function() |
3453
|
|
2921
|
|
3454
|
this.setMode(App.MODE_GOOGLE);
|
2922
|
this.setMode(App.MODE_GOOGLE);
|
3455
|
|
2923
|
|
3456
|
- if (urlParams['splash'] == '0')
|
|
|
3457
|
- {
|
2924
|
+ if (urlParams['splash'] == '0') {
|
3458
|
this.createFile((urlParams['title'] != null) ?
|
2925
|
this.createFile((urlParams['title'] != null) ?
|
3459
|
decodeURIComponent(urlParams['title']) :
|
2926
|
decodeURIComponent(urlParams['title']) :
|
3460
|
this.defaultFilename);
|
2927
|
this.defaultFilename);
|
3461
|
}
|
2928
|
}
|
3462
|
- else
|
|
|
3463
|
- {
|
2929
|
+ else {
|
3464
|
this.actions.get('new').funct();
|
2930
|
this.actions.get('new').funct();
|
3465
|
}
|
2931
|
}
|
3466
|
}
|
2932
|
}
|
3467
|
- else
|
|
|
3468
|
- {
|
2933
|
+ else {
|
3469
|
// Removes open URL parameter. Hash is also updated in Init to load client.
|
2934
|
// Removes open URL parameter. Hash is also updated in Init to load client.
|
3470
|
- if (urlParams['open'] != null && window.history && window.history.replaceState)
|
|
|
3471
|
- {
|
2935
|
+ if (urlParams['open'] != null && window.history && window.history.replaceState) {
|
3472
|
|
2936
|
|
3473
|
window.history.replaceState(null, null, window.location.pathname +
|
2937
|
window.history.replaceState(null, null, window.location.pathname +
|
3474
|
this.getSearch(['open', 'sketch']));
|
2938
|
this.getSearch(['open', 'sketch']));
|
|
@@ -3480,8 +2944,7 @@ App.prototype.start = function() |
|
@@ -3480,8 +2944,7 @@ App.prototype.start = function() |
3480
|
}
|
2944
|
}
|
3481
|
}
|
2945
|
}
|
3482
|
}
|
2946
|
}
|
3483
|
- catch (e)
|
|
|
3484
|
- {
|
2947
|
+ catch (e) {
|
3485
|
this.handleError(e);
|
2948
|
this.handleError(e);
|
3486
|
}
|
2949
|
}
|
3487
|
};
|
2950
|
};
|
|
@@ -3489,20 +2952,15 @@ App.prototype.start = function() |
|
@@ -3489,20 +2952,15 @@ App.prototype.start = function() |
3489
|
/**
|
2952
|
/**
|
3490
|
* Checks for orphaned drafts.
|
2953
|
* Checks for orphaned drafts.
|
3491
|
*/
|
2954
|
*/
|
3492
|
-App.prototype.loadDraft = function(xml, success)
|
|
|
3493
|
-{
|
|
|
3494
|
- this.createFile(this.defaultFilename, xml, null, null, mxUtils.bind(this, function()
|
|
|
3495
|
- {
|
|
|
3496
|
- window.setTimeout(mxUtils.bind(this, function()
|
|
|
3497
|
- {
|
2955
|
+App.prototype.loadDraft = function (xml, success) {
|
|
|
2956
|
+ this.createFile(this.defaultFilename, xml, null, null, mxUtils.bind(this, function () {
|
|
|
2957
|
+ window.setTimeout(mxUtils.bind(this, function () {
|
3498
|
var file = this.getCurrentFile();
|
2958
|
var file = this.getCurrentFile();
|
3499
|
|
2959
|
|
3500
|
- if (file != null)
|
|
|
3501
|
- {
|
2960
|
+ if (file != null) {
|
3502
|
file.fileChanged();
|
2961
|
file.fileChanged();
|
3503
|
|
2962
|
|
3504
|
- if (success != null)
|
|
|
3505
|
- {
|
2963
|
+ if (success != null) {
|
3506
|
success();
|
2964
|
success();
|
3507
|
}
|
2965
|
}
|
3508
|
}
|
2966
|
}
|
|
@@ -3510,41 +2968,32 @@ App.prototype.loadDraft = function(xml, success) |
|
@@ -3510,41 +2968,32 @@ App.prototype.loadDraft = function(xml, success) |
3510
|
}), null, null, true);
|
2968
|
}), null, null, true);
|
3511
|
};
|
2969
|
};
|
3512
|
|
2970
|
|
3513
|
-App.prototype.filterDrafts = function(filePath, guid, callback)
|
|
|
3514
|
-{
|
2971
|
+App.prototype.filterDrafts = function (filePath, guid, callback) {
|
3515
|
var drafts = [];
|
2972
|
var drafts = [];
|
3516
|
|
2973
|
|
3517
|
- function result()
|
|
|
3518
|
- {
|
2974
|
+ function result() {
|
3519
|
callback(drafts);
|
2975
|
callback(drafts);
|
3520
|
};
|
2976
|
};
|
3521
|
|
2977
|
|
3522
|
- try
|
|
|
3523
|
- {
|
|
|
3524
|
- this.getDatabaseItems(mxUtils.bind(this, function(items)
|
|
|
3525
|
- {
|
2978
|
+ try {
|
|
|
2979
|
+ this.getDatabaseItems(mxUtils.bind(this, function (items) {
|
3526
|
// Collects orphaned drafts
|
2980
|
// Collects orphaned drafts
|
3527
|
- for (var i = 0; i < items.length; i++)
|
|
|
3528
|
- {
|
|
|
3529
|
- try
|
|
|
3530
|
- {
|
2981
|
+ for (var i = 0; i < items.length; i++) {
|
|
|
2982
|
+ try {
|
3531
|
var key = items[i].key;
|
2983
|
var key = items[i].key;
|
3532
|
|
2984
|
|
3533
|
- if (key != null && key.substring(0, 7) == '.draft_')
|
|
|
3534
|
- {
|
2985
|
+ if (key != null && key.substring(0, 7) == '.draft_') {
|
3535
|
var obj = JSON.parse(items[i].data);
|
2986
|
var obj = JSON.parse(items[i].data);
|
3536
|
|
2987
|
|
3537
|
if (obj != null && obj.type == 'draft' && obj.aliveCheck != guid &&
|
2988
|
if (obj != null && obj.type == 'draft' && obj.aliveCheck != guid &&
|
3538
|
((filePath == null && obj.fileObject == null) ||
|
2989
|
((filePath == null && obj.fileObject == null) ||
|
3539
|
- (obj.fileObject != null && obj.fileObject.path == filePath)))
|
|
|
3540
|
- {
|
2990
|
+ (obj.fileObject != null && obj.fileObject.path == filePath))) {
|
3541
|
obj.key = key;
|
2991
|
obj.key = key;
|
3542
|
drafts.push(obj);
|
2992
|
drafts.push(obj);
|
3543
|
}
|
2993
|
}
|
3544
|
}
|
2994
|
}
|
3545
|
}
|
2995
|
}
|
3546
|
- catch (e)
|
|
|
3547
|
- {
|
2996
|
+ catch (e) {
|
3548
|
// ignore
|
2997
|
// ignore
|
3549
|
}
|
2998
|
}
|
3550
|
}
|
2999
|
}
|
|
@@ -3552,8 +3001,7 @@ App.prototype.filterDrafts = function(filePath, guid, callback) |
|
@@ -3552,8 +3001,7 @@ App.prototype.filterDrafts = function(filePath, guid, callback) |
3552
|
result();
|
3001
|
result();
|
3553
|
}, result));
|
3002
|
}, result));
|
3554
|
}
|
3003
|
}
|
3555
|
- catch (e)
|
|
|
3556
|
- {
|
3004
|
+ catch (e) {
|
3557
|
result();
|
3005
|
result();
|
3558
|
}
|
3006
|
}
|
3559
|
};
|
3007
|
};
|
|
@@ -3561,83 +3009,65 @@ App.prototype.filterDrafts = function(filePath, guid, callback) |
|
@@ -3561,83 +3009,65 @@ App.prototype.filterDrafts = function(filePath, guid, callback) |
3561
|
/**
|
3009
|
/**
|
3562
|
* Checks for orphaned drafts.
|
3010
|
* Checks for orphaned drafts.
|
3563
|
*/
|
3011
|
*/
|
3564
|
-App.prototype.checkDrafts = function()
|
|
|
3565
|
-{
|
|
|
3566
|
- try
|
|
|
3567
|
- {
|
3012
|
+App.prototype.checkDrafts = function () {
|
|
|
3013
|
+ try {
|
3568
|
// Triggers storage event for other windows to mark active drafts
|
3014
|
// Triggers storage event for other windows to mark active drafts
|
3569
|
var guid = Editor.guid();
|
3015
|
var guid = Editor.guid();
|
3570
|
localStorage.setItem('.draft-alive-check', guid);
|
3016
|
localStorage.setItem('.draft-alive-check', guid);
|
3571
|
|
3017
|
|
3572
|
- window.setTimeout(mxUtils.bind(this, function()
|
|
|
3573
|
- {
|
3018
|
+ window.setTimeout(mxUtils.bind(this, function () {
|
3574
|
localStorage.removeItem('.draft-alive-check');
|
3019
|
localStorage.removeItem('.draft-alive-check');
|
3575
|
|
3020
|
|
3576
|
- this.filterDrafts(null, guid, mxUtils.bind(this, function(drafts)
|
|
|
3577
|
- {
|
|
|
3578
|
- if (drafts.length == 1)
|
|
|
3579
|
- {
|
|
|
3580
|
- this.loadDraft(drafts[0].data, mxUtils.bind(this, function()
|
|
|
3581
|
- {
|
3021
|
+ this.filterDrafts(null, guid, mxUtils.bind(this, function (drafts) {
|
|
|
3022
|
+ if (drafts.length == 1) {
|
|
|
3023
|
+ this.loadDraft(drafts[0].data, mxUtils.bind(this, function () {
|
3582
|
this.removeDatabaseItem(drafts[0].key);
|
3024
|
this.removeDatabaseItem(drafts[0].key);
|
3583
|
}));
|
3025
|
}));
|
3584
|
}
|
3026
|
}
|
3585
|
- else if (drafts.length > 1)
|
|
|
3586
|
- {
|
3027
|
+ else if (drafts.length > 1) {
|
3587
|
var ts = new Date(drafts[0].modified);
|
3028
|
var ts = new Date(drafts[0].modified);
|
3588
|
|
3029
|
|
3589
|
var dlg = new DraftDialog(this, (drafts.length > 1) ? mxResources.get('selectDraft') :
|
3030
|
var dlg = new DraftDialog(this, (drafts.length > 1) ? mxResources.get('selectDraft') :
|
3590
|
mxResources.get('draftFound', [ts.toLocaleDateString() + ' ' + ts.toLocaleTimeString()]),
|
3031
|
mxResources.get('draftFound', [ts.toLocaleDateString() + ' ' + ts.toLocaleTimeString()]),
|
3591
|
- (drafts.length > 1) ? null : drafts[0].data, mxUtils.bind(this, function(index)
|
|
|
3592
|
- {
|
|
|
3593
|
- this.hideDialog();
|
|
|
3594
|
- index = (index != '') ? index : 0;
|
3032
|
+ (drafts.length > 1) ? null : drafts[0].data, mxUtils.bind(this, function (index) {
|
|
|
3033
|
+ this.hideDialog();
|
|
|
3034
|
+ index = (index != '') ? index : 0;
|
3595
|
|
3035
|
|
3596
|
- this.loadDraft(drafts[index].data, mxUtils.bind(this, function()
|
|
|
3597
|
- {
|
|
|
3598
|
- this.removeDatabaseItem(drafts[index].key);
|
|
|
3599
|
- }));
|
|
|
3600
|
- }), mxUtils.bind(this, function(index, success)
|
|
|
3601
|
- {
|
|
|
3602
|
- index = (index != '') ? index : 0;
|
|
|
3603
|
-
|
|
|
3604
|
- // Discard draft
|
|
|
3605
|
- this.confirm(mxResources.get('areYouSure'), null, mxUtils.bind(this, function()
|
|
|
3606
|
- {
|
|
|
3607
|
- this.removeDatabaseItem(drafts[index].key);
|
|
|
3608
|
-
|
|
|
3609
|
- if (success != null)
|
|
|
3610
|
- {
|
|
|
3611
|
- success();
|
|
|
3612
|
- }
|
|
|
3613
|
- }), mxResources.get('no'), mxResources.get('yes'));
|
|
|
3614
|
- }), null, null, null, (drafts.length > 1) ? drafts : null);
|
|
|
3615
|
- this.showDialog(dlg.container, 640, 480, true, false, mxUtils.bind(this, function(cancel)
|
|
|
3616
|
- {
|
|
|
3617
|
- if (urlParams['splash'] != '0')
|
|
|
3618
|
- {
|
3036
|
+ this.loadDraft(drafts[index].data, mxUtils.bind(this, function () {
|
|
|
3037
|
+ this.removeDatabaseItem(drafts[index].key);
|
|
|
3038
|
+ }));
|
|
|
3039
|
+ }), mxUtils.bind(this, function (index, success) {
|
|
|
3040
|
+ index = (index != '') ? index : 0;
|
|
|
3041
|
+
|
|
|
3042
|
+ // Discard draft
|
|
|
3043
|
+ this.confirm(mxResources.get('areYouSure'), null, mxUtils.bind(this, function () {
|
|
|
3044
|
+ this.removeDatabaseItem(drafts[index].key);
|
|
|
3045
|
+
|
|
|
3046
|
+ if (success != null) {
|
|
|
3047
|
+ success();
|
|
|
3048
|
+ }
|
|
|
3049
|
+ }), mxResources.get('no'), mxResources.get('yes'));
|
|
|
3050
|
+ }), null, null, null, (drafts.length > 1) ? drafts : null);
|
|
|
3051
|
+ this.showDialog(dlg.container, 640, 480, true, false, mxUtils.bind(this, function (cancel) {
|
|
|
3052
|
+ if (urlParams['splash'] != '0') {
|
3619
|
this.loadFile();
|
3053
|
this.loadFile();
|
3620
|
}
|
3054
|
}
|
3621
|
- else
|
|
|
3622
|
- {
|
3055
|
+ else {
|
3623
|
this.createFile(this.defaultFilename, this.getFileData(), null, null, null, null, null, true);
|
3056
|
this.createFile(this.defaultFilename, this.getFileData(), null, null, null, null, null, true);
|
3624
|
}
|
3057
|
}
|
3625
|
}));
|
3058
|
}));
|
3626
|
dlg.init();
|
3059
|
dlg.init();
|
3627
|
}
|
3060
|
}
|
3628
|
- else if (urlParams['splash'] != '0')
|
|
|
3629
|
- {
|
3061
|
+ else if (urlParams['splash'] != '0') {
|
3630
|
this.loadFile();
|
3062
|
this.loadFile();
|
3631
|
}
|
3063
|
}
|
3632
|
- else
|
|
|
3633
|
- {
|
3064
|
+ else {
|
3634
|
this.createFile(this.defaultFilename, this.getFileData(), null, null, null, null, null, true);
|
3065
|
this.createFile(this.defaultFilename, this.getFileData(), null, null, null, null, null, true);
|
3635
|
}
|
3066
|
}
|
3636
|
}));
|
3067
|
}));
|
3637
|
}), 0);
|
3068
|
}), 0);
|
3638
|
}
|
3069
|
}
|
3639
|
- catch (e)
|
|
|
3640
|
- {
|
3070
|
+ catch (e) {
|
3641
|
// ignore
|
3071
|
// ignore
|
3642
|
}
|
3072
|
}
|
3643
|
};
|
3073
|
};
|
|
@@ -3648,48 +3078,39 @@ App.prototype.checkDrafts = function() |
|
@@ -3648,48 +3078,39 @@ App.prototype.checkDrafts = function() |
3648
|
* @param {number} dx X-coordinate of the translation.
|
3078
|
* @param {number} dx X-coordinate of the translation.
|
3649
|
* @param {number} dy Y-coordinate of the translation.
|
3079
|
* @param {number} dy Y-coordinate of the translation.
|
3650
|
*/
|
3080
|
*/
|
3651
|
-App.prototype.showSplash = function(force)
|
|
|
3652
|
-{
|
3081
|
+App.prototype.showSplash = function (force) {
|
3653
|
//Splash dialog shouldn't be shownn when running without a file menu
|
3082
|
//Splash dialog shouldn't be shownn when running without a file menu
|
3654
|
- if (urlParams['noFileMenu'] == '1')
|
|
|
3655
|
- {
|
3083
|
+ if (urlParams['noFileMenu'] == '1') {
|
3656
|
return;
|
3084
|
return;
|
3657
|
}
|
3085
|
}
|
3658
|
|
3086
|
|
3659
|
var serviceCount = this.getServiceCount(true);
|
3087
|
var serviceCount = this.getServiceCount(true);
|
3660
|
|
3088
|
|
3661
|
- var showSecondDialog = mxUtils.bind(this, function()
|
|
|
3662
|
- {
|
3089
|
+ var showSecondDialog = mxUtils.bind(this, function () {
|
3663
|
var dlg = new SplashDialog(this);
|
3090
|
var dlg = new SplashDialog(this);
|
3664
|
|
3091
|
|
3665
|
this.showDialog(dlg.container, 340, (mxClient.IS_CHROMEAPP || EditorUi.isElectronApp) ? 200 : 230, true, true,
|
3092
|
this.showDialog(dlg.container, 340, (mxClient.IS_CHROMEAPP || EditorUi.isElectronApp) ? 200 : 230, true, true,
|
3666
|
- mxUtils.bind(this, function(cancel)
|
|
|
3667
|
- {
|
3093
|
+ mxUtils.bind(this, function (cancel) {
|
3668
|
// Creates a blank diagram if the dialog is closed
|
3094
|
// Creates a blank diagram if the dialog is closed
|
3669
|
- if (cancel && !mxClient.IS_CHROMEAPP)
|
|
|
3670
|
- {
|
3095
|
+ if (cancel && !mxClient.IS_CHROMEAPP) {
|
3671
|
var prev = Editor.useLocalStorage;
|
3096
|
var prev = Editor.useLocalStorage;
|
3672
|
- this.createFile(this.defaultFilename + (EditorUi.isElectronApp? '.drawio' : ''), null, null, null, null, null, null,
|
3097
|
+ this.createFile(this.defaultFilename + (EditorUi.isElectronApp ? '.drawio' : ''), null, null, null, null, null, null,
|
3673
|
urlParams['local'] != '1');
|
3098
|
urlParams['local'] != '1');
|
3674
|
Editor.useLocalStorage = prev;
|
3099
|
Editor.useLocalStorage = prev;
|
3675
|
}
|
3100
|
}
|
3676
|
}), true);
|
3101
|
}), true);
|
3677
|
});
|
3102
|
});
|
3678
|
|
3103
|
|
3679
|
- if (this.editor.isChromelessView())
|
|
|
3680
|
- {
|
|
|
3681
|
- this.handleError({message: mxResources.get('noFileSelected')},
|
|
|
3682
|
- mxResources.get('errorLoadingFile'), mxUtils.bind(this, function()
|
|
|
3683
|
- {
|
|
|
3684
|
- this.showSplash();
|
|
|
3685
|
- }));
|
3104
|
+ if (this.editor.isChromelessView()) {
|
|
|
3105
|
+ this.handleError({ message: mxResources.get('noFileSelected') },
|
|
|
3106
|
+ mxResources.get('errorLoadingFile'), mxUtils.bind(this, function () {
|
|
|
3107
|
+ this.showSplash();
|
|
|
3108
|
+ }));
|
3686
|
}
|
3109
|
}
|
3687
|
- else if (!mxClient.IS_CHROMEAPP && (this.mode == null || force))
|
|
|
3688
|
- {
|
3110
|
+ else if (!mxClient.IS_CHROMEAPP && (this.mode == null || force)) {
|
3689
|
var rowLimit = (serviceCount == 4) ? 2 : 3;
|
3111
|
var rowLimit = (serviceCount == 4) ? 2 : 3;
|
3690
|
|
3112
|
|
3691
|
- var dlg = new StorageDialog(this, mxUtils.bind(this, function()
|
|
|
3692
|
- {
|
3113
|
+ var dlg = new StorageDialog(this, mxUtils.bind(this, function () {
|
3693
|
this.hideDialog();
|
3114
|
this.hideDialog();
|
3694
|
showSecondDialog();
|
3115
|
showSecondDialog();
|
3695
|
}), rowLimit);
|
3116
|
}), rowLimit);
|
|
@@ -3697,8 +3118,7 @@ App.prototype.showSplash = function(force) |
|
@@ -3697,8 +3118,7 @@ App.prototype.showSplash = function(force) |
3697
|
this.showDialog(dlg.container, (rowLimit < 3) ? 200 : 300,
|
3118
|
this.showDialog(dlg.container, (rowLimit < 3) ? 200 : 300,
|
3698
|
((serviceCount > 3) ? 320 : 210), true, false);
|
3119
|
((serviceCount > 3) ? 320 : 210), true, false);
|
3699
|
}
|
3120
|
}
|
3700
|
- else if (urlParams['create'] == null)
|
|
|
3701
|
- {
|
3121
|
+ else if (urlParams['create'] == null) {
|
3702
|
showSecondDialog();
|
3122
|
showSecondDialog();
|
3703
|
}
|
3123
|
}
|
3704
|
};
|
3124
|
};
|
|
@@ -3709,13 +3129,11 @@ App.prototype.showSplash = function(force) |
|
@@ -3709,13 +3129,11 @@ App.prototype.showSplash = function(force) |
3709
|
* @param {number} dx X-coordinate of the translation.
|
3129
|
* @param {number} dx X-coordinate of the translation.
|
3710
|
* @param {number} dy Y-coordinate of the translation.
|
3130
|
* @param {number} dy Y-coordinate of the translation.
|
3711
|
*/
|
3131
|
*/
|
3712
|
-App.prototype.addLanguageMenu = function(elt, addLabel)
|
|
|
3713
|
-{
|
3132
|
+App.prototype.addLanguageMenu = function (elt, addLabel) {
|
3714
|
var img = null;
|
3133
|
var img = null;
|
3715
|
var langMenu = this.menus.get('language');
|
3134
|
var langMenu = this.menus.get('language');
|
3716
|
|
3135
|
|
3717
|
- if (langMenu != null)
|
|
|
3718
|
- {
|
3136
|
+ if (langMenu != null) {
|
3719
|
img = document.createElement('div');
|
3137
|
img = document.createElement('div');
|
3720
|
img.setAttribute('title', mxResources.get('language'));
|
3138
|
img.setAttribute('title', mxResources.get('language'));
|
3721
|
img.className = 'geIcon geSprite geSprite-globe';
|
3139
|
img.className = 'geIcon geSprite geSprite-globe';
|
|
@@ -3724,8 +3142,7 @@ App.prototype.addLanguageMenu = function(elt, addLabel) |
|
@@ -3724,8 +3142,7 @@ App.prototype.addLanguageMenu = function(elt, addLabel) |
3724
|
img.style.bottom = '20px';
|
3142
|
img.style.bottom = '20px';
|
3725
|
img.style.right = '20px';
|
3143
|
img.style.right = '20px';
|
3726
|
|
3144
|
|
3727
|
- if (addLabel)
|
|
|
3728
|
- {
|
3145
|
+ if (addLabel) {
|
3729
|
img.style.direction = 'rtl';
|
3146
|
img.style.direction = 'rtl';
|
3730
|
img.style.textAlign = 'right';
|
3147
|
img.style.textAlign = 'right';
|
3731
|
img.style.right = '24px';
|
3148
|
img.style.right = '24px';
|
|
@@ -3741,8 +3158,7 @@ App.prototype.addLanguageMenu = function(elt, addLabel) |
|
@@ -3741,8 +3158,7 @@ App.prototype.addLanguageMenu = function(elt, addLabel) |
3741
|
img.appendChild(label);
|
3158
|
img.appendChild(label);
|
3742
|
}
|
3159
|
}
|
3743
|
|
3160
|
|
3744
|
- mxEvent.addListener(img, 'click', mxUtils.bind(this, function(evt)
|
|
|
3745
|
- {
|
3161
|
+ mxEvent.addListener(img, 'click', mxUtils.bind(this, function (evt) {
|
3746
|
this.editor.graph.popupMenuHandler.hideMenu();
|
3162
|
this.editor.graph.popupMenuHandler.hideMenu();
|
3747
|
var menu = new mxPopupMenu(this.menus.get('language').funct);
|
3163
|
var menu = new mxPopupMenu(this.menus.get('language').funct);
|
3748
|
menu.div.className += ' geMenubarMenu';
|
3164
|
menu.div.className += ' geMenubarMenu';
|
|
@@ -3751,8 +3167,7 @@ App.prototype.addLanguageMenu = function(elt, addLabel) |
|
@@ -3751,8 +3167,7 @@ App.prototype.addLanguageMenu = function(elt, addLabel) |
3751
|
menu.autoExpand = true;
|
3167
|
menu.autoExpand = true;
|
3752
|
|
3168
|
|
3753
|
// Disables autoexpand and destroys menu when hidden
|
3169
|
// Disables autoexpand and destroys menu when hidden
|
3754
|
- menu.hideMenu = mxUtils.bind(this, function()
|
|
|
3755
|
- {
|
3170
|
+ menu.hideMenu = mxUtils.bind(this, function () {
|
3756
|
mxPopupMenu.prototype.hideMenu.apply(menu, arguments);
|
3171
|
mxPopupMenu.prototype.hideMenu.apply(menu, arguments);
|
3757
|
menu.destroy();
|
3172
|
menu.destroy();
|
3758
|
});
|
3173
|
});
|
|
@@ -3773,41 +3188,31 @@ App.prototype.addLanguageMenu = function(elt, addLabel) |
|
@@ -3773,41 +3188,31 @@ App.prototype.addLanguageMenu = function(elt, addLabel) |
3773
|
/**
|
3188
|
/**
|
3774
|
* Loads the given file handle as a local file.
|
3189
|
* Loads the given file handle as a local file.
|
3775
|
*/
|
3190
|
*/
|
3776
|
-App.prototype.loadFileSystemEntry = function(fileHandle, success, error)
|
|
|
3777
|
-{
|
|
|
3778
|
- error = (error != null) ? error : mxUtils.bind(this, function(e)
|
|
|
3779
|
- {
|
3191
|
+App.prototype.loadFileSystemEntry = function (fileHandle, success, error) {
|
|
|
3192
|
+ error = (error != null) ? error : mxUtils.bind(this, function (e) {
|
3780
|
this.handleError(e);
|
3193
|
this.handleError(e);
|
3781
|
});
|
3194
|
});
|
3782
|
|
3195
|
|
3783
|
- try
|
|
|
3784
|
- {
|
|
|
3785
|
- fileHandle.getFile().then(mxUtils.bind(this, function(file)
|
|
|
3786
|
- {
|
3196
|
+ try {
|
|
|
3197
|
+ fileHandle.getFile().then(mxUtils.bind(this, function (file) {
|
3787
|
var reader = new FileReader();
|
3198
|
var reader = new FileReader();
|
3788
|
|
3199
|
|
3789
|
- reader.onload = mxUtils.bind(this, function(e)
|
|
|
3790
|
- {
|
|
|
3791
|
- try
|
|
|
3792
|
- {
|
|
|
3793
|
- if (success != null)
|
|
|
3794
|
- {
|
3200
|
+ reader.onload = mxUtils.bind(this, function (e) {
|
|
|
3201
|
+ try {
|
|
|
3202
|
+ if (success != null) {
|
3795
|
var data = e.target.result;
|
3203
|
var data = e.target.result;
|
3796
|
|
3204
|
|
3797
|
- if (file.type == 'image/png')
|
|
|
3798
|
- {
|
3205
|
+ if (file.type == 'image/png') {
|
3799
|
data = this.extractGraphModelFromPng(data);
|
3206
|
data = this.extractGraphModelFromPng(data);
|
3800
|
}
|
3207
|
}
|
3801
|
|
3208
|
|
3802
|
success(new LocalFile(this, data, file.name, null, fileHandle, file));
|
3209
|
success(new LocalFile(this, data, file.name, null, fileHandle, file));
|
3803
|
}
|
3210
|
}
|
3804
|
- else
|
|
|
3805
|
- {
|
3211
|
+ else {
|
3806
|
this.openFileHandle(e.target.result, file.name, file, false, fileHandle);
|
3212
|
this.openFileHandle(e.target.result, file.name, file, false, fileHandle);
|
3807
|
}
|
3213
|
}
|
3808
|
}
|
3214
|
}
|
3809
|
- catch(e)
|
|
|
3810
|
- {
|
3215
|
+ catch (e) {
|
3811
|
error(e);
|
3216
|
error(e);
|
3812
|
}
|
3217
|
}
|
3813
|
});
|
3218
|
});
|
|
@@ -3816,18 +3221,15 @@ App.prototype.loadFileSystemEntry = function(fileHandle, success, error) |
|
@@ -3816,18 +3221,15 @@ App.prototype.loadFileSystemEntry = function(fileHandle, success, error) |
3816
|
|
3221
|
|
3817
|
if ((file.type.substring(0, 5) === 'image' ||
|
3222
|
if ((file.type.substring(0, 5) === 'image' ||
|
3818
|
file.type === 'application/pdf') &&
|
3223
|
file.type === 'application/pdf') &&
|
3819
|
- file.type.substring(0, 9) !== 'image/svg')
|
|
|
3820
|
- {
|
3224
|
+ file.type.substring(0, 9) !== 'image/svg') {
|
3821
|
reader.readAsDataURL(file);
|
3225
|
reader.readAsDataURL(file);
|
3822
|
}
|
3226
|
}
|
3823
|
- else
|
|
|
3824
|
- {
|
3227
|
+ else {
|
3825
|
reader.readAsText(file);
|
3228
|
reader.readAsText(file);
|
3826
|
}
|
3229
|
}
|
3827
|
}), error);
|
3230
|
}), error);
|
3828
|
}
|
3231
|
}
|
3829
|
- catch (e)
|
|
|
3830
|
- {
|
3232
|
+ catch (e) {
|
3831
|
error(e);
|
3233
|
error(e);
|
3832
|
}
|
3234
|
}
|
3833
|
};
|
3235
|
};
|
|
@@ -3835,70 +3237,58 @@ App.prototype.loadFileSystemEntry = function(fileHandle, success, error) |
|
@@ -3835,70 +3237,58 @@ App.prototype.loadFileSystemEntry = function(fileHandle, success, error) |
3835
|
/**
|
3237
|
/**
|
3836
|
* Loads the given file handle as a local file.
|
3238
|
* Loads the given file handle as a local file.
|
3837
|
*/
|
3239
|
*/
|
3838
|
-App.prototype.createFileSystemOptions = function(name)
|
|
|
3839
|
-{
|
3240
|
+App.prototype.createFileSystemOptions = function (name) {
|
3840
|
var ext = [];
|
3241
|
var ext = [];
|
3841
|
var temp = null;
|
3242
|
var temp = null;
|
3842
|
|
3243
|
|
3843
|
- if (name != null)
|
|
|
3844
|
- {
|
3244
|
+ if (name != null) {
|
3845
|
var idx = name.lastIndexOf('.');
|
3245
|
var idx = name.lastIndexOf('.');
|
3846
|
|
3246
|
|
3847
|
- if (idx > 0)
|
|
|
3848
|
- {
|
3247
|
+ if (idx > 0) {
|
3849
|
temp = name.substring(idx + 1);
|
3248
|
temp = name.substring(idx + 1);
|
3850
|
}
|
3249
|
}
|
3851
|
}
|
3250
|
}
|
3852
|
|
3251
|
|
3853
|
- for (var i = 0; i < this.editor.diagramFileTypes.length; i++)
|
|
|
3854
|
- {
|
|
|
3855
|
- var obj = {description: mxResources.get(this.editor.diagramFileTypes[i].description) +
|
|
|
3856
|
- ((mxClient.IS_MAC) ? ' (.' + this.editor.diagramFileTypes[i].extension + ')' : ''),
|
|
|
3857
|
- accept: {}};
|
3252
|
+ for (var i = 0; i < this.editor.diagramFileTypes.length; i++) {
|
|
|
3253
|
+ var obj = {
|
|
|
3254
|
+ description: mxResources.get(this.editor.diagramFileTypes[i].description) +
|
|
|
3255
|
+ ((mxClient.IS_MAC) ? ' (.' + this.editor.diagramFileTypes[i].extension + ')' : ''),
|
|
|
3256
|
+ accept: {}
|
|
|
3257
|
+ };
|
3858
|
obj.accept[this.editor.diagramFileTypes[i].mimeType] = ['.' + this.editor.diagramFileTypes[i].extension];
|
3258
|
obj.accept[this.editor.diagramFileTypes[i].mimeType] = ['.' + this.editor.diagramFileTypes[i].extension];
|
3859
|
|
3259
|
|
3860
|
- if (this.editor.diagramFileTypes[i].extension == temp)
|
|
|
3861
|
- {
|
3260
|
+ if (this.editor.diagramFileTypes[i].extension == temp) {
|
3862
|
ext.splice(0, 0, obj);
|
3261
|
ext.splice(0, 0, obj);
|
3863
|
}
|
3262
|
}
|
3864
|
- else
|
|
|
3865
|
- {
|
|
|
3866
|
- if (this.editor.diagramFileTypes[i].extension == temp)
|
|
|
3867
|
- {
|
3263
|
+ else {
|
|
|
3264
|
+ if (this.editor.diagramFileTypes[i].extension == temp) {
|
3868
|
ext.splice(0, 0, obj);
|
3265
|
ext.splice(0, 0, obj);
|
3869
|
}
|
3266
|
}
|
3870
|
- else
|
|
|
3871
|
- {
|
3267
|
+ else {
|
3872
|
ext.push(obj);
|
3268
|
ext.push(obj);
|
3873
|
}
|
3269
|
}
|
3874
|
}
|
3270
|
}
|
3875
|
}
|
3271
|
}
|
3876
|
|
3272
|
|
3877
|
// TODO: Specify default filename
|
3273
|
// TODO: Specify default filename
|
3878
|
- return {types: ext, fileName: name};
|
3274
|
+ return { types: ext, fileName: name };
|
3879
|
};
|
3275
|
};
|
3880
|
|
3276
|
|
3881
|
/**
|
3277
|
/**
|
3882
|
* Loads the given file handle as a local file.
|
3278
|
* Loads the given file handle as a local file.
|
3883
|
*/
|
3279
|
*/
|
3884
|
-App.prototype.showSaveFilePicker = function(success, error, opts)
|
|
|
3885
|
-{
|
|
|
3886
|
- error = (error != null) ? error : mxUtils.bind(this, function(e)
|
|
|
3887
|
- {
|
|
|
3888
|
- if (e.name != 'AbortError')
|
|
|
3889
|
- {
|
3280
|
+App.prototype.showSaveFilePicker = function (success, error, opts) {
|
|
|
3281
|
+ error = (error != null) ? error : mxUtils.bind(this, function (e) {
|
|
|
3282
|
+ if (e.name != 'AbortError') {
|
3890
|
this.handleError(e);
|
3283
|
this.handleError(e);
|
3891
|
}
|
3284
|
}
|
3892
|
});
|
3285
|
});
|
3893
|
|
3286
|
|
3894
|
opts = (opts != null) ? opts : this.createFileSystemOptions();
|
3287
|
opts = (opts != null) ? opts : this.createFileSystemOptions();
|
3895
|
|
3288
|
|
3896
|
- window.showSaveFilePicker(opts).then(mxUtils.bind(this, function(fileHandle)
|
|
|
3897
|
- {
|
|
|
3898
|
- if (fileHandle != null)
|
|
|
3899
|
- {
|
|
|
3900
|
- fileHandle.getFile().then(mxUtils.bind(this, function(desc)
|
|
|
3901
|
- {
|
3289
|
+ window.showSaveFilePicker(opts).then(mxUtils.bind(this, function (fileHandle) {
|
|
|
3290
|
+ if (fileHandle != null) {
|
|
|
3291
|
+ fileHandle.getFile().then(mxUtils.bind(this, function (desc) {
|
3902
|
success(fileHandle, desc);
|
3292
|
success(fileHandle, desc);
|
3903
|
}), error);
|
3293
|
}), error);
|
3904
|
}
|
3294
|
}
|
|
@@ -3911,66 +3301,50 @@ App.prototype.showSaveFilePicker = function(success, error, opts) |
|
@@ -3911,66 +3301,50 @@ App.prototype.showSaveFilePicker = function(success, error, opts) |
3911
|
* @param {number} dx X-coordinate of the translation.
|
3301
|
* @param {number} dx X-coordinate of the translation.
|
3912
|
* @param {number} dy Y-coordinate of the translation.
|
3302
|
* @param {number} dy Y-coordinate of the translation.
|
3913
|
*/
|
3303
|
*/
|
3914
|
-App.prototype.pickFile = function(mode)
|
|
|
3915
|
-{
|
|
|
3916
|
- try
|
|
|
3917
|
- {
|
3304
|
+App.prototype.pickFile = function (mode) {
|
|
|
3305
|
+ try {
|
3918
|
mode = (mode != null) ? mode : this.mode;
|
3306
|
mode = (mode != null) ? mode : this.mode;
|
3919
|
|
3307
|
|
3920
|
- if (mode == App.MODE_GOOGLE)
|
|
|
3921
|
- {
|
|
|
3922
|
- if (this.drive != null && typeof(google) != 'undefined' && typeof(google.picker) != 'undefined')
|
|
|
3923
|
- {
|
3308
|
+ if (mode == App.MODE_GOOGLE) {
|
|
|
3309
|
+ if (this.drive != null && typeof (google) != 'undefined' && typeof (google.picker) != 'undefined') {
|
3924
|
this.drive.pickFile();
|
3310
|
this.drive.pickFile();
|
3925
|
}
|
3311
|
}
|
3926
|
- else
|
|
|
3927
|
- {
|
3312
|
+ else {
|
3928
|
this.openLink('https://drive.google.com');
|
3313
|
this.openLink('https://drive.google.com');
|
3929
|
}
|
3314
|
}
|
3930
|
}
|
3315
|
}
|
3931
|
- else
|
|
|
3932
|
- {
|
3316
|
+ else {
|
3933
|
var peer = this.getPeerForMode(mode);
|
3317
|
var peer = this.getPeerForMode(mode);
|
3934
|
|
3318
|
|
3935
|
- if (peer != null)
|
|
|
3936
|
- {
|
3319
|
+ if (peer != null) {
|
3937
|
peer.pickFile();
|
3320
|
peer.pickFile();
|
3938
|
}
|
3321
|
}
|
3939
|
- else if (mode == App.MODE_DEVICE && EditorUi.nativeFileSupport)
|
|
|
3940
|
- {
|
|
|
3941
|
- window.showOpenFilePicker().then(mxUtils.bind(this, function(fileHandles)
|
|
|
3942
|
- {
|
3322
|
+ else if (mode == App.MODE_DEVICE && EditorUi.nativeFileSupport) {
|
|
|
3323
|
+ window.showOpenFilePicker().then(mxUtils.bind(this, function (fileHandles) {
|
3943
|
if (fileHandles != null && fileHandles.length > 0 &&
|
3324
|
if (fileHandles != null && fileHandles.length > 0 &&
|
3944
|
- this.spinner.spin(document.body, mxResources.get('loading')))
|
|
|
3945
|
- {
|
3325
|
+ this.spinner.spin(document.body, mxResources.get('loading'))) {
|
3946
|
this.loadFileSystemEntry(fileHandles[0]);
|
3326
|
this.loadFileSystemEntry(fileHandles[0]);
|
3947
|
}
|
3327
|
}
|
3948
|
- }), mxUtils.bind(this, function(e)
|
|
|
3949
|
- {
|
|
|
3950
|
- if (e.name != 'AbortError')
|
|
|
3951
|
- {
|
3328
|
+ }), mxUtils.bind(this, function (e) {
|
|
|
3329
|
+ if (e.name != 'AbortError') {
|
3952
|
this.handleError(e);
|
3330
|
this.handleError(e);
|
3953
|
}
|
3331
|
}
|
3954
|
}));
|
3332
|
}));
|
3955
|
}
|
3333
|
}
|
3956
|
- else if (mode == App.MODE_DEVICE && Graph.fileSupport)
|
|
|
3957
|
- {
|
|
|
3958
|
- if (this.openFileInputElt == null)
|
|
|
3959
|
- {
|
3334
|
+ else if (mode == App.MODE_DEVICE && Graph.fileSupport) {
|
|
|
3335
|
+ if (this.openFileInputElt == null) {
|
3960
|
var input = document.createElement('input');
|
3336
|
var input = document.createElement('input');
|
3961
|
input.setAttribute('type', 'file');
|
3337
|
input.setAttribute('type', 'file');
|
3962
|
|
3338
|
|
3963
|
- mxEvent.addListener(input, 'change', mxUtils.bind(this, function()
|
|
|
3964
|
- {
|
|
|
3965
|
- if (input.files != null)
|
|
|
3966
|
- {
|
3339
|
+ mxEvent.addListener(input, 'change', mxUtils.bind(this, function () {
|
|
|
3340
|
+ if (input.files != null) {
|
3967
|
this.openFiles(input.files);
|
3341
|
this.openFiles(input.files);
|
3968
|
|
3342
|
|
3969
|
- // Resets input to force change event for
|
3343
|
+ // Resets input to force change event for
|
3970
|
// same file (type reset required for IE)
|
3344
|
// same file (type reset required for IE)
|
3971
|
input.type = '';
|
3345
|
input.type = '';
|
3972
|
input.type = 'file';
|
3346
|
input.type = 'file';
|
3973
|
- input.value = '';
|
3347
|
+ input.value = '';
|
3974
|
}
|
3348
|
}
|
3975
|
}));
|
3349
|
}));
|
3976
|
|
3350
|
|
|
@@ -3981,25 +3355,21 @@ App.prototype.pickFile = function(mode) |
|
@@ -3981,25 +3355,21 @@ App.prototype.pickFile = function(mode) |
3981
|
|
3355
|
|
3982
|
this.openFileInputElt.click();
|
3356
|
this.openFileInputElt.click();
|
3983
|
}
|
3357
|
}
|
3984
|
- else
|
|
|
3985
|
- {
|
3358
|
+ else {
|
3986
|
this.hideDialog();
|
3359
|
this.hideDialog();
|
3987
|
window.openNew = this.getCurrentFile() != null && !this.isDiagramEmpty();
|
3360
|
window.openNew = this.getCurrentFile() != null && !this.isDiagramEmpty();
|
3988
|
window.baseUrl = this.getUrl();
|
3361
|
window.baseUrl = this.getUrl();
|
3989
|
window.openKey = 'open';
|
3362
|
window.openKey = 'open';
|
3990
|
|
3363
|
|
3991
|
- window.listBrowserFiles = mxUtils.bind(this, function(success, error)
|
|
|
3992
|
- {
|
3364
|
+ window.listBrowserFiles = mxUtils.bind(this, function (success, error) {
|
3993
|
StorageFile.listFiles(this, 'F', success, error);
|
3365
|
StorageFile.listFiles(this, 'F', success, error);
|
3994
|
});
|
3366
|
});
|
3995
|
|
3367
|
|
3996
|
- window.openBrowserFile = mxUtils.bind(this, function(title, success, error)
|
|
|
3997
|
- {
|
3368
|
+ window.openBrowserFile = mxUtils.bind(this, function (title, success, error) {
|
3998
|
StorageFile.getFileContent(this, title, success, error);
|
3369
|
StorageFile.getFileContent(this, title, success, error);
|
3999
|
});
|
3370
|
});
|
4000
|
|
3371
|
|
4001
|
- window.deleteBrowserFile = mxUtils.bind(this, function(title, success, error)
|
|
|
4002
|
- {
|
3372
|
+ window.deleteBrowserFile = mxUtils.bind(this, function (title, success, error) {
|
4003
|
StorageFile.deleteFile(this, title, success, error);
|
3373
|
StorageFile.deleteFile(this, title, success, error);
|
4004
|
});
|
3374
|
});
|
4005
|
|
3375
|
|
|
@@ -4008,15 +3378,12 @@ App.prototype.pickFile = function(mode) |
|
@@ -4008,15 +3378,12 @@ App.prototype.pickFile = function(mode) |
4008
|
this.openFile();
|
3378
|
this.openFile();
|
4009
|
|
3379
|
|
4010
|
// Installs local handler for opened files in same window
|
3380
|
// Installs local handler for opened files in same window
|
4011
|
- window.openFile.setConsumer(mxUtils.bind(this, function(xml, filename)
|
|
|
4012
|
- {
|
|
|
4013
|
- var doOpenFile = mxUtils.bind(this, function()
|
|
|
4014
|
- {
|
3381
|
+ window.openFile.setConsumer(mxUtils.bind(this, function (xml, filename) {
|
|
|
3382
|
+ var doOpenFile = mxUtils.bind(this, function () {
|
4015
|
// Replaces PNG with XML extension
|
3383
|
// Replaces PNG with XML extension
|
4016
|
var dot = !this.useCanvasForExport && filename.substring(filename.length - 4) == '.png';
|
3384
|
var dot = !this.useCanvasForExport && filename.substring(filename.length - 4) == '.png';
|
4017
|
|
3385
|
|
4018
|
- if (dot)
|
|
|
4019
|
- {
|
3386
|
+ if (dot) {
|
4020
|
filename = filename.substring(0, filename.length - 4) + '.drawio';
|
3387
|
filename = filename.substring(0, filename.length - 4) + '.drawio';
|
4021
|
}
|
3388
|
}
|
4022
|
|
3389
|
|
|
@@ -4027,12 +3394,10 @@ App.prototype.pickFile = function(mode) |
|
@@ -4027,12 +3394,10 @@ App.prototype.pickFile = function(mode) |
4027
|
|
3394
|
|
4028
|
var currentFile = this.getCurrentFile();
|
3395
|
var currentFile = this.getCurrentFile();
|
4029
|
|
3396
|
|
4030
|
- if (currentFile == null || !currentFile.isModified())
|
|
|
4031
|
- {
|
3397
|
+ if (currentFile == null || !currentFile.isModified()) {
|
4032
|
doOpenFile();
|
3398
|
doOpenFile();
|
4033
|
}
|
3399
|
}
|
4034
|
- else
|
|
|
4035
|
- {
|
3400
|
+ else {
|
4036
|
this.confirm(mxResources.get('allChangesLost'), null, doOpenFile,
|
3401
|
this.confirm(mxResources.get('allChangesLost'), null, doOpenFile,
|
4037
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
3402
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
4038
|
}
|
3403
|
}
|
|
@@ -4042,21 +3407,18 @@ App.prototype.pickFile = function(mode) |
|
@@ -4042,21 +3407,18 @@ App.prototype.pickFile = function(mode) |
4042
|
var dlg = this.dialog;
|
3407
|
var dlg = this.dialog;
|
4043
|
var dlgClose = dlg.close;
|
3408
|
var dlgClose = dlg.close;
|
4044
|
|
3409
|
|
4045
|
- this.dialog.close = mxUtils.bind(this, function(cancel)
|
|
|
4046
|
- {
|
3410
|
+ this.dialog.close = mxUtils.bind(this, function (cancel) {
|
4047
|
Editor.useLocalStorage = prevValue;
|
3411
|
Editor.useLocalStorage = prevValue;
|
4048
|
dlgClose.apply(dlg, arguments);
|
3412
|
dlgClose.apply(dlg, arguments);
|
4049
|
|
3413
|
|
4050
|
- if (this.getCurrentFile() == null)
|
|
|
4051
|
- {
|
3414
|
+ if (this.getCurrentFile() == null) {
|
4052
|
this.showSplash();
|
3415
|
this.showSplash();
|
4053
|
}
|
3416
|
}
|
4054
|
});
|
3417
|
});
|
4055
|
}
|
3418
|
}
|
4056
|
}
|
3419
|
}
|
4057
|
}
|
3420
|
}
|
4058
|
- catch (e)
|
|
|
4059
|
- {
|
3421
|
+ catch (e) {
|
4060
|
this.handleError(e);
|
3422
|
this.handleError(e);
|
4061
|
}
|
3423
|
}
|
4062
|
};
|
3424
|
};
|
|
@@ -4067,53 +3429,40 @@ App.prototype.pickFile = function(mode) |
|
@@ -4067,53 +3429,40 @@ App.prototype.pickFile = function(mode) |
4067
|
* @param {number} dx X-coordinate of the translation.
|
3429
|
* @param {number} dx X-coordinate of the translation.
|
4068
|
* @param {number} dy Y-coordinate of the translation.
|
3430
|
* @param {number} dy Y-coordinate of the translation.
|
4069
|
*/
|
3431
|
*/
|
4070
|
-App.prototype.pickLibrary = function(mode)
|
|
|
4071
|
-{
|
3432
|
+App.prototype.pickLibrary = function (mode) {
|
4072
|
mode = (mode != null) ? mode : this.mode;
|
3433
|
mode = (mode != null) ? mode : this.mode;
|
4073
|
|
3434
|
|
4074
|
if (mode == App.MODE_GOOGLE || mode == App.MODE_DROPBOX || mode == App.MODE_ONEDRIVE ||
|
3435
|
if (mode == App.MODE_GOOGLE || mode == App.MODE_DROPBOX || mode == App.MODE_ONEDRIVE ||
|
4075
|
- mode == App.MODE_GITHUB || mode == App.MODE_GITLAB || mode == App.MODE_TRELLO)
|
|
|
4076
|
- {
|
3436
|
+ mode == App.MODE_GITHUB || mode == App.MODE_GITLAB || mode == App.MODE_TRELLO) {
|
4077
|
var peer = (mode == App.MODE_GOOGLE) ? this.drive :
|
3437
|
var peer = (mode == App.MODE_GOOGLE) ? this.drive :
|
4078
|
((mode == App.MODE_ONEDRIVE) ? this.oneDrive :
|
3438
|
((mode == App.MODE_ONEDRIVE) ? this.oneDrive :
|
4079
|
- ((mode == App.MODE_GITHUB) ? this.gitHub :
|
|
|
4080
|
- ((mode == App.MODE_GITLAB) ? this.gitLab :
|
|
|
4081
|
- ((mode == App.MODE_TRELLO) ? this.trello :
|
|
|
4082
|
- this.dropbox))));
|
|
|
4083
|
-
|
|
|
4084
|
- if (peer != null)
|
|
|
4085
|
- {
|
|
|
4086
|
- peer.pickLibrary(mxUtils.bind(this, function(id, optionalFile)
|
|
|
4087
|
- {
|
|
|
4088
|
- if (optionalFile != null)
|
|
|
4089
|
- {
|
|
|
4090
|
- try
|
|
|
4091
|
- {
|
3439
|
+ ((mode == App.MODE_GITHUB) ? this.gitHub :
|
|
|
3440
|
+ ((mode == App.MODE_GITLAB) ? this.gitLab :
|
|
|
3441
|
+ ((mode == App.MODE_TRELLO) ? this.trello :
|
|
|
3442
|
+ this.dropbox))));
|
|
|
3443
|
+
|
|
|
3444
|
+ if (peer != null) {
|
|
|
3445
|
+ peer.pickLibrary(mxUtils.bind(this, function (id, optionalFile) {
|
|
|
3446
|
+ if (optionalFile != null) {
|
|
|
3447
|
+ try {
|
4092
|
this.loadLibrary(optionalFile);
|
3448
|
this.loadLibrary(optionalFile);
|
4093
|
}
|
3449
|
}
|
4094
|
- catch (e)
|
|
|
4095
|
- {
|
3450
|
+ catch (e) {
|
4096
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
3451
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
4097
|
}
|
3452
|
}
|
4098
|
}
|
3453
|
}
|
4099
|
- else
|
|
|
4100
|
- {
|
|
|
4101
|
- if (this.spinner.spin(document.body, mxResources.get('loading')))
|
|
|
4102
|
- {
|
|
|
4103
|
- peer.getLibrary(id, mxUtils.bind(this, function(file)
|
|
|
4104
|
- {
|
3454
|
+ else {
|
|
|
3455
|
+ if (this.spinner.spin(document.body, mxResources.get('loading'))) {
|
|
|
3456
|
+ peer.getLibrary(id, mxUtils.bind(this, function (file) {
|
4105
|
this.spinner.stop();
|
3457
|
this.spinner.stop();
|
4106
|
|
3458
|
|
4107
|
- try
|
|
|
4108
|
- {
|
3459
|
+ try {
|
4109
|
this.loadLibrary(file);
|
3460
|
this.loadLibrary(file);
|
4110
|
}
|
3461
|
}
|
4111
|
- catch (e)
|
|
|
4112
|
- {
|
3462
|
+ catch (e) {
|
4113
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
3463
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
4114
|
}
|
3464
|
}
|
4115
|
- }), mxUtils.bind(this, function(resp)
|
|
|
4116
|
- {
|
3465
|
+ }), mxUtils.bind(this, function (resp) {
|
4117
|
this.handleError(resp, (resp != null) ? mxResources.get('errorLoadingFile') : null);
|
3466
|
this.handleError(resp, (resp != null) ? mxResources.get('errorLoadingFile') : null);
|
4118
|
}));
|
3467
|
}));
|
4119
|
}
|
3468
|
}
|
|
@@ -4121,31 +3470,22 @@ App.prototype.pickLibrary = function(mode) |
|
@@ -4121,31 +3470,22 @@ App.prototype.pickLibrary = function(mode) |
4121
|
}));
|
3470
|
}));
|
4122
|
}
|
3471
|
}
|
4123
|
}
|
3472
|
}
|
4124
|
- else if (mode == App.MODE_DEVICE && Graph.fileSupport)
|
|
|
4125
|
- {
|
|
|
4126
|
- if (this.libFileInputElt == null)
|
|
|
4127
|
- {
|
3473
|
+ else if (mode == App.MODE_DEVICE && Graph.fileSupport) {
|
|
|
3474
|
+ if (this.libFileInputElt == null) {
|
4128
|
var input = document.createElement('input');
|
3475
|
var input = document.createElement('input');
|
4129
|
input.setAttribute('type', 'file');
|
3476
|
input.setAttribute('type', 'file');
|
4130
|
|
3477
|
|
4131
|
- mxEvent.addListener(input, 'change', mxUtils.bind(this, function()
|
|
|
4132
|
- {
|
|
|
4133
|
- if (input.files != null)
|
|
|
4134
|
- {
|
|
|
4135
|
- for (var i = 0; i < input.files.length; i++)
|
|
|
4136
|
- {
|
|
|
4137
|
- (mxUtils.bind(this, function(file)
|
|
|
4138
|
- {
|
3478
|
+ mxEvent.addListener(input, 'change', mxUtils.bind(this, function () {
|
|
|
3479
|
+ if (input.files != null) {
|
|
|
3480
|
+ for (var i = 0; i < input.files.length; i++) {
|
|
|
3481
|
+ (mxUtils.bind(this, function (file) {
|
4139
|
var reader = new FileReader();
|
3482
|
var reader = new FileReader();
|
4140
|
|
3483
|
|
4141
|
- reader.onload = mxUtils.bind(this, function(e)
|
|
|
4142
|
- {
|
|
|
4143
|
- try
|
|
|
4144
|
- {
|
3484
|
+ reader.onload = mxUtils.bind(this, function (e) {
|
|
|
3485
|
+ try {
|
4145
|
this.loadLibrary(new LocalLibrary(this, e.target.result, file.name));
|
3486
|
this.loadLibrary(new LocalLibrary(this, e.target.result, file.name));
|
4146
|
}
|
3487
|
}
|
4147
|
- catch (e)
|
|
|
4148
|
- {
|
3488
|
+ catch (e) {
|
4149
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
3489
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
4150
|
}
|
3490
|
}
|
4151
|
});
|
3491
|
});
|
|
@@ -4154,10 +3494,10 @@ App.prototype.pickLibrary = function(mode) |
|
@@ -4154,10 +3494,10 @@ App.prototype.pickLibrary = function(mode) |
4154
|
}))(input.files[i]);
|
3494
|
}))(input.files[i]);
|
4155
|
}
|
3495
|
}
|
4156
|
|
3496
|
|
4157
|
- // Resets input to force change event for same file (type reset required for IE)
|
3497
|
+ // Resets input to force change event for same file (type reset required for IE)
|
4158
|
input.type = '';
|
3498
|
input.type = '';
|
4159
|
input.type = 'file';
|
3499
|
input.type = 'file';
|
4160
|
- input.value = '';
|
3500
|
+ input.value = '';
|
4161
|
}
|
3501
|
}
|
4162
|
}));
|
3502
|
}));
|
4163
|
|
3503
|
|
|
@@ -4168,23 +3508,19 @@ App.prototype.pickLibrary = function(mode) |
|
@@ -4168,23 +3508,19 @@ App.prototype.pickLibrary = function(mode) |
4168
|
|
3508
|
|
4169
|
this.libFileInputElt.click();
|
3509
|
this.libFileInputElt.click();
|
4170
|
}
|
3510
|
}
|
4171
|
- else
|
|
|
4172
|
- {
|
3511
|
+ else {
|
4173
|
window.openNew = false;
|
3512
|
window.openNew = false;
|
4174
|
window.openKey = 'open';
|
3513
|
window.openKey = 'open';
|
4175
|
|
3514
|
|
4176
|
- window.listBrowserFiles = mxUtils.bind(this, function(success, error)
|
|
|
4177
|
- {
|
3515
|
+ window.listBrowserFiles = mxUtils.bind(this, function (success, error) {
|
4178
|
StorageFile.listFiles(this, 'L', success, error);
|
3516
|
StorageFile.listFiles(this, 'L', success, error);
|
4179
|
});
|
3517
|
});
|
4180
|
|
3518
|
|
4181
|
- window.openBrowserFile = mxUtils.bind(this, function(title, success, error)
|
|
|
4182
|
- {
|
3519
|
+ window.openBrowserFile = mxUtils.bind(this, function (title, success, error) {
|
4183
|
StorageFile.getFileContent(this, title, success, error);
|
3520
|
StorageFile.getFileContent(this, title, success, error);
|
4184
|
});
|
3521
|
});
|
4185
|
|
3522
|
|
4186
|
- window.deleteBrowserFile = mxUtils.bind(this, function(title, success, error)
|
|
|
4187
|
- {
|
3523
|
+ window.deleteBrowserFile = mxUtils.bind(this, function (title, success, error) {
|
4188
|
StorageFile.deleteFile(this, title, success, error);
|
3524
|
StorageFile.deleteFile(this, title, success, error);
|
4189
|
});
|
3525
|
});
|
4190
|
|
3526
|
|
|
@@ -4192,28 +3528,23 @@ App.prototype.pickLibrary = function(mode) |
|
@@ -4192,28 +3528,23 @@ App.prototype.pickLibrary = function(mode) |
4192
|
Editor.useLocalStorage = mode == App.MODE_BROWSER;
|
3528
|
Editor.useLocalStorage = mode == App.MODE_BROWSER;
|
4193
|
|
3529
|
|
4194
|
// Closes dialog after open
|
3530
|
// Closes dialog after open
|
4195
|
- window.openFile = new OpenFile(mxUtils.bind(this, function(cancel)
|
|
|
4196
|
- {
|
3531
|
+ window.openFile = new OpenFile(mxUtils.bind(this, function (cancel) {
|
4197
|
this.hideDialog(cancel);
|
3532
|
this.hideDialog(cancel);
|
4198
|
}));
|
3533
|
}));
|
4199
|
|
3534
|
|
4200
|
- window.openFile.setConsumer(mxUtils.bind(this, function(xml, filename)
|
|
|
4201
|
- {
|
|
|
4202
|
- try
|
|
|
4203
|
- {
|
3535
|
+ window.openFile.setConsumer(mxUtils.bind(this, function (xml, filename) {
|
|
|
3536
|
+ try {
|
4204
|
this.loadLibrary((mode == App.MODE_BROWSER) ? new StorageLibrary(this, xml, filename) :
|
3537
|
this.loadLibrary((mode == App.MODE_BROWSER) ? new StorageLibrary(this, xml, filename) :
|
4205
|
new LocalLibrary(this, xml, filename));
|
3538
|
new LocalLibrary(this, xml, filename));
|
4206
|
}
|
3539
|
}
|
4207
|
- catch (e)
|
|
|
4208
|
- {
|
3540
|
+ catch (e) {
|
4209
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
3541
|
this.handleError(e, mxResources.get('errorLoadingFile'));
|
4210
|
}
|
3542
|
}
|
4211
|
}));
|
3543
|
}));
|
4212
|
|
3544
|
|
4213
|
// Removes openFile if dialog is closed
|
3545
|
// Removes openFile if dialog is closed
|
4214
|
this.showDialog(new OpenDialog(this).container, (Editor.useLocalStorage) ? 640 : 360,
|
3546
|
this.showDialog(new OpenDialog(this).container, (Editor.useLocalStorage) ? 640 : 360,
|
4215
|
- (Editor.useLocalStorage) ? 480 : 220, true, true, function()
|
|
|
4216
|
- {
|
3547
|
+ (Editor.useLocalStorage) ? 480 : 220, true, true, function () {
|
4217
|
Editor.useLocalStorage = prevValue;
|
3548
|
Editor.useLocalStorage = prevValue;
|
4218
|
window.openFile = null;
|
3549
|
window.openFile = null;
|
4219
|
});
|
3550
|
});
|
|
@@ -4226,21 +3557,17 @@ App.prototype.pickLibrary = function(mode) |
|
@@ -4226,21 +3557,17 @@ App.prototype.pickLibrary = function(mode) |
4226
|
* @param {number} dx X-coordinate of the translation.
|
3557
|
* @param {number} dx X-coordinate of the translation.
|
4227
|
* @param {number} dy Y-coordinate of the translation.
|
3558
|
* @param {number} dy Y-coordinate of the translation.
|
4228
|
*/
|
3559
|
*/
|
4229
|
-App.prototype.saveLibrary = function(name, images, file, mode, noSpin, noReload, fn)
|
|
|
4230
|
-{
|
|
|
4231
|
- try
|
|
|
4232
|
- {
|
3560
|
+App.prototype.saveLibrary = function (name, images, file, mode, noSpin, noReload, fn) {
|
|
|
3561
|
+ try {
|
4233
|
mode = (mode != null) ? mode : this.mode;
|
3562
|
mode = (mode != null) ? mode : this.mode;
|
4234
|
noSpin = (noSpin != null) ? noSpin : false;
|
3563
|
noSpin = (noSpin != null) ? noSpin : false;
|
4235
|
noReload = (noReload != null) ? noReload : false;
|
3564
|
noReload = (noReload != null) ? noReload : false;
|
4236
|
var xml = this.createLibraryDataFromImages(images);
|
3565
|
var xml = this.createLibraryDataFromImages(images);
|
4237
|
|
3566
|
|
4238
|
- var error = mxUtils.bind(this, function(resp)
|
|
|
4239
|
- {
|
3567
|
+ var error = mxUtils.bind(this, function (resp) {
|
4240
|
this.spinner.stop();
|
3568
|
this.spinner.stop();
|
4241
|
|
3569
|
|
4242
|
- if (fn != null)
|
|
|
4243
|
- {
|
3570
|
+ if (fn != null) {
|
4244
|
fn();
|
3571
|
fn();
|
4245
|
}
|
3572
|
}
|
4246
|
|
3573
|
|
|
@@ -4248,130 +3575,101 @@ App.prototype.saveLibrary = function(name, images, file, mode, noSpin, noReload, |
|
@@ -4248,130 +3575,101 @@ App.prototype.saveLibrary = function(name, images, file, mode, noSpin, noReload, |
4248
|
});
|
3575
|
});
|
4249
|
|
3576
|
|
4250
|
// Handles special case for local libraries
|
3577
|
// Handles special case for local libraries
|
4251
|
- if (file == null && mode == App.MODE_DEVICE)
|
|
|
4252
|
- {
|
3578
|
+ if (file == null && mode == App.MODE_DEVICE) {
|
4253
|
file = new LocalLibrary(this, xml, name);
|
3579
|
file = new LocalLibrary(this, xml, name);
|
4254
|
}
|
3580
|
}
|
4255
|
|
3581
|
|
4256
|
- if (file == null)
|
|
|
4257
|
- {
|
|
|
4258
|
- this.pickFolder(mode, mxUtils.bind(this, function(folderId)
|
|
|
4259
|
- {
|
|
|
4260
|
- if (mode == App.MODE_GOOGLE && this.drive != null && this.spinner.spin(document.body, mxResources.get('inserting')))
|
|
|
4261
|
- {
|
|
|
4262
|
- this.drive.insertFile(name, xml, folderId, mxUtils.bind(this, function(newFile)
|
|
|
4263
|
- {
|
3582
|
+ if (file == null) {
|
|
|
3583
|
+ this.pickFolder(mode, mxUtils.bind(this, function (folderId) {
|
|
|
3584
|
+ if (mode == App.MODE_GOOGLE && this.drive != null && this.spinner.spin(document.body, mxResources.get('inserting'))) {
|
|
|
3585
|
+ this.drive.insertFile(name, xml, folderId, mxUtils.bind(this, function (newFile) {
|
4264
|
this.spinner.stop();
|
3586
|
this.spinner.stop();
|
4265
|
this.hideDialog(true);
|
3587
|
this.hideDialog(true);
|
4266
|
this.libraryLoaded(newFile, images);
|
3588
|
this.libraryLoaded(newFile, images);
|
4267
|
}), error, this.drive.libraryMimeType);
|
3589
|
}), error, this.drive.libraryMimeType);
|
4268
|
}
|
3590
|
}
|
4269
|
- else if (mode == App.MODE_GITHUB && this.gitHub != null && this.spinner.spin(document.body, mxResources.get('inserting')))
|
|
|
4270
|
- {
|
|
|
4271
|
- this.gitHub.insertLibrary(name, xml, mxUtils.bind(this, function(newFile)
|
|
|
4272
|
- {
|
3591
|
+ else if (mode == App.MODE_GITHUB && this.gitHub != null && this.spinner.spin(document.body, mxResources.get('inserting'))) {
|
|
|
3592
|
+ this.gitHub.insertLibrary(name, xml, mxUtils.bind(this, function (newFile) {
|
4273
|
this.spinner.stop();
|
3593
|
this.spinner.stop();
|
4274
|
this.hideDialog(true);
|
3594
|
this.hideDialog(true);
|
4275
|
this.libraryLoaded(newFile, images);
|
3595
|
this.libraryLoaded(newFile, images);
|
4276
|
}), error, folderId);
|
3596
|
}), error, folderId);
|
4277
|
}
|
3597
|
}
|
4278
|
- else if (mode == App.MODE_GITLAB && this.gitLab != null && this.spinner.spin(document.body, mxResources.get('inserting')))
|
|
|
4279
|
- {
|
|
|
4280
|
- this.gitLab.insertLibrary(name, xml, mxUtils.bind(this, function(newFile)
|
|
|
4281
|
- {
|
3598
|
+ else if (mode == App.MODE_GITLAB && this.gitLab != null && this.spinner.spin(document.body, mxResources.get('inserting'))) {
|
|
|
3599
|
+ this.gitLab.insertLibrary(name, xml, mxUtils.bind(this, function (newFile) {
|
4282
|
this.spinner.stop();
|
3600
|
this.spinner.stop();
|
4283
|
this.hideDialog(true);
|
3601
|
this.hideDialog(true);
|
4284
|
this.libraryLoaded(newFile, images);
|
3602
|
this.libraryLoaded(newFile, images);
|
4285
|
}), error, folderId);
|
3603
|
}), error, folderId);
|
4286
|
}
|
3604
|
}
|
4287
|
- else if (mode == App.MODE_TRELLO && this.trello != null && this.spinner.spin(document.body, mxResources.get('inserting')))
|
|
|
4288
|
- {
|
|
|
4289
|
- this.trello.insertLibrary(name, xml, mxUtils.bind(this, function(newFile)
|
|
|
4290
|
- {
|
3605
|
+ else if (mode == App.MODE_TRELLO && this.trello != null && this.spinner.spin(document.body, mxResources.get('inserting'))) {
|
|
|
3606
|
+ this.trello.insertLibrary(name, xml, mxUtils.bind(this, function (newFile) {
|
4291
|
this.spinner.stop();
|
3607
|
this.spinner.stop();
|
4292
|
this.hideDialog(true);
|
3608
|
this.hideDialog(true);
|
4293
|
this.libraryLoaded(newFile, images);
|
3609
|
this.libraryLoaded(newFile, images);
|
4294
|
}), error, folderId);
|
3610
|
}), error, folderId);
|
4295
|
}
|
3611
|
}
|
4296
|
- else if (mode == App.MODE_DROPBOX && this.dropbox != null && this.spinner.spin(document.body, mxResources.get('inserting')))
|
|
|
4297
|
- {
|
|
|
4298
|
- this.dropbox.insertLibrary(name, xml, mxUtils.bind(this, function(newFile)
|
|
|
4299
|
- {
|
3612
|
+ else if (mode == App.MODE_DROPBOX && this.dropbox != null && this.spinner.spin(document.body, mxResources.get('inserting'))) {
|
|
|
3613
|
+ this.dropbox.insertLibrary(name, xml, mxUtils.bind(this, function (newFile) {
|
4300
|
this.spinner.stop();
|
3614
|
this.spinner.stop();
|
4301
|
this.hideDialog(true);
|
3615
|
this.hideDialog(true);
|
4302
|
this.libraryLoaded(newFile, images);
|
3616
|
this.libraryLoaded(newFile, images);
|
4303
|
}), error, folderId);
|
3617
|
}), error, folderId);
|
4304
|
}
|
3618
|
}
|
4305
|
- else if (mode == App.MODE_ONEDRIVE && this.oneDrive != null && this.spinner.spin(document.body, mxResources.get('inserting')))
|
|
|
4306
|
- {
|
|
|
4307
|
- this.oneDrive.insertLibrary(name, xml, mxUtils.bind(this, function(newFile)
|
|
|
4308
|
- {
|
3619
|
+ else if (mode == App.MODE_ONEDRIVE && this.oneDrive != null && this.spinner.spin(document.body, mxResources.get('inserting'))) {
|
|
|
3620
|
+ this.oneDrive.insertLibrary(name, xml, mxUtils.bind(this, function (newFile) {
|
4309
|
this.spinner.stop();
|
3621
|
this.spinner.stop();
|
4310
|
this.hideDialog(true);
|
3622
|
this.hideDialog(true);
|
4311
|
this.libraryLoaded(newFile, images);
|
3623
|
this.libraryLoaded(newFile, images);
|
4312
|
}), error, folderId);
|
3624
|
}), error, folderId);
|
4313
|
}
|
3625
|
}
|
4314
|
- else if (mode == App.MODE_BROWSER)
|
|
|
4315
|
- {
|
|
|
4316
|
- var fn = mxUtils.bind(this, function()
|
|
|
4317
|
- {
|
3626
|
+ else if (mode == App.MODE_BROWSER) {
|
|
|
3627
|
+ var fn = mxUtils.bind(this, function () {
|
4318
|
var file = new StorageLibrary(this, xml, name);
|
3628
|
var file = new StorageLibrary(this, xml, name);
|
4319
|
|
3629
|
|
4320
|
// Inserts data into local storage
|
3630
|
// Inserts data into local storage
|
4321
|
- file.saveFile(name, false, mxUtils.bind(this, function()
|
|
|
4322
|
- {
|
3631
|
+ file.saveFile(name, false, mxUtils.bind(this, function () {
|
4323
|
this.hideDialog(true);
|
3632
|
this.hideDialog(true);
|
4324
|
this.libraryLoaded(file, images);
|
3633
|
this.libraryLoaded(file, images);
|
4325
|
}), error);
|
3634
|
}), error);
|
4326
|
});
|
3635
|
});
|
4327
|
|
3636
|
|
4328
|
- if (localStorage.getItem(name) == null)
|
|
|
4329
|
- {
|
3637
|
+ if (localStorage.getItem(name) == null) {
|
4330
|
fn();
|
3638
|
fn();
|
4331
|
}
|
3639
|
}
|
4332
|
- else
|
|
|
4333
|
- {
|
3640
|
+ else {
|
4334
|
this.confirm(mxResources.get('replaceIt', [name]), fn);
|
3641
|
this.confirm(mxResources.get('replaceIt', [name]), fn);
|
4335
|
}
|
3642
|
}
|
4336
|
}
|
3643
|
}
|
4337
|
- else
|
|
|
4338
|
- {
|
|
|
4339
|
- this.handleError({message: mxResources.get('serviceUnavailableOrBlocked')});
|
3644
|
+ else {
|
|
|
3645
|
+ this.handleError({ message: mxResources.get('serviceUnavailableOrBlocked') });
|
4340
|
}
|
3646
|
}
|
4341
|
}));
|
3647
|
}));
|
4342
|
}
|
3648
|
}
|
4343
|
- else if (noSpin || this.spinner.spin(document.body, mxResources.get('saving')))
|
|
|
4344
|
- {
|
3649
|
+ else if (noSpin || this.spinner.spin(document.body, mxResources.get('saving'))) {
|
4345
|
file.setData(xml);
|
3650
|
file.setData(xml);
|
4346
|
|
3651
|
|
4347
|
- var doSave = mxUtils.bind(this, function()
|
|
|
4348
|
- {
|
|
|
4349
|
- file.save(true, mxUtils.bind(this, function(resp)
|
|
|
4350
|
- {
|
3652
|
+ var doSave = mxUtils.bind(this, function () {
|
|
|
3653
|
+ file.save(true, mxUtils.bind(this, function (resp) {
|
4351
|
this.spinner.stop();
|
3654
|
this.spinner.stop();
|
4352
|
this.hideDialog(true);
|
3655
|
this.hideDialog(true);
|
4353
|
|
3656
|
|
4354
|
- if (!noReload)
|
|
|
4355
|
- {
|
3657
|
+ if (!noReload) {
|
4356
|
this.libraryLoaded(file, images);
|
3658
|
this.libraryLoaded(file, images);
|
4357
|
}
|
3659
|
}
|
4358
|
|
3660
|
|
4359
|
- if (fn != null)
|
|
|
4360
|
- {
|
3661
|
+ if (fn != null) {
|
4361
|
fn();
|
3662
|
fn();
|
4362
|
}
|
3663
|
}
|
4363
|
}), error);
|
3664
|
}), error);
|
4364
|
});
|
3665
|
});
|
4365
|
|
3666
|
|
4366
|
- if (name != file.getTitle())
|
|
|
4367
|
- {
|
3667
|
+ if (name != file.getTitle()) {
|
4368
|
var oldHash = file.getHash();
|
3668
|
var oldHash = file.getHash();
|
4369
|
|
3669
|
|
4370
|
- file.rename(name, mxUtils.bind(this, function(resp)
|
|
|
4371
|
- {
|
3670
|
+ file.rename(name, mxUtils.bind(this, function (resp) {
|
4372
|
// Change hash in stored settings
|
3671
|
// Change hash in stored settings
|
4373
|
- if (file.constructor != LocalLibrary && oldHash != file.getHash())
|
|
|
4374
|
- {
|
3672
|
+ if (file.constructor != LocalLibrary && oldHash != file.getHash()) {
|
4375
|
mxSettings.removeCustomLibrary(oldHash);
|
3673
|
mxSettings.removeCustomLibrary(oldHash);
|
4376
|
mxSettings.addCustomLibrary(file.getHash());
|
3674
|
mxSettings.addCustomLibrary(file.getHash());
|
4377
|
}
|
3675
|
}
|
|
@@ -4384,14 +3682,12 @@ App.prototype.saveLibrary = function(name, images, file, mode, noSpin, noReload, |
|
@@ -4384,14 +3682,12 @@ App.prototype.saveLibrary = function(name, images, file, mode, noSpin, noReload, |
4384
|
doSave();
|
3682
|
doSave();
|
4385
|
}), error)
|
3683
|
}), error)
|
4386
|
}
|
3684
|
}
|
4387
|
- else
|
|
|
4388
|
- {
|
3685
|
+ else {
|
4389
|
doSave();
|
3686
|
doSave();
|
4390
|
}
|
3687
|
}
|
4391
|
}
|
3688
|
}
|
4392
|
}
|
3689
|
}
|
4393
|
- catch (e)
|
|
|
4394
|
- {
|
3690
|
+ catch (e) {
|
4395
|
this.handleError(e);
|
3691
|
this.handleError(e);
|
4396
|
}
|
3692
|
}
|
4397
|
};
|
3693
|
};
|
|
@@ -4399,48 +3695,37 @@ App.prototype.saveLibrary = function(name, images, file, mode, noSpin, noReload, |
|
@@ -4399,48 +3695,37 @@ App.prototype.saveLibrary = function(name, images, file, mode, noSpin, noReload, |
4399
|
/**
|
3695
|
/**
|
4400
|
* Adds the label menu items to the given menu and parent.
|
3696
|
* Adds the label menu items to the given menu and parent.
|
4401
|
*/
|
3697
|
*/
|
4402
|
-App.prototype.saveFile = function(forceDialog, success)
|
|
|
4403
|
-{
|
3698
|
+App.prototype.saveFile = function (forceDialog, success) {
|
4404
|
var file = this.getCurrentFile();
|
3699
|
var file = this.getCurrentFile();
|
4405
|
|
3700
|
|
4406
|
- if (file != null)
|
|
|
4407
|
- {
|
3701
|
+ if (file != null) {
|
4408
|
// FIXME: Invoke for local files
|
3702
|
// FIXME: Invoke for local files
|
4409
|
- var done = mxUtils.bind(this, function()
|
|
|
4410
|
- {
|
|
|
4411
|
- if (EditorUi.enableDrafts)
|
|
|
4412
|
- {
|
3703
|
+ var done = mxUtils.bind(this, function () {
|
|
|
3704
|
+ if (EditorUi.enableDrafts) {
|
4413
|
file.removeDraft();
|
3705
|
file.removeDraft();
|
4414
|
}
|
3706
|
}
|
4415
|
|
3707
|
|
4416
|
- if (this.getCurrentFile() != file && !file.isModified())
|
|
|
4417
|
- {
|
3708
|
+ if (this.getCurrentFile() != file && !file.isModified()) {
|
4418
|
// Workaround for possible status update while save as dialog is showing
|
3709
|
// Workaround for possible status update while save as dialog is showing
|
4419
|
// is to show no saved status for device files
|
3710
|
// is to show no saved status for device files
|
4420
|
- if (file.getMode() != App.MODE_DEVICE)
|
|
|
4421
|
- {
|
3711
|
+ if (file.getMode() != App.MODE_DEVICE) {
|
4422
|
this.editor.setStatus(mxUtils.htmlEntities(mxResources.get('allChangesSaved')));
|
3712
|
this.editor.setStatus(mxUtils.htmlEntities(mxResources.get('allChangesSaved')));
|
4423
|
}
|
3713
|
}
|
4424
|
- else
|
|
|
4425
|
- {
|
3714
|
+ else {
|
4426
|
this.editor.setStatus('');
|
3715
|
this.editor.setStatus('');
|
4427
|
}
|
3716
|
}
|
4428
|
}
|
3717
|
}
|
4429
|
|
3718
|
|
4430
|
- if (success != null)
|
|
|
4431
|
- {
|
3719
|
+ if (success != null) {
|
4432
|
success();
|
3720
|
success();
|
4433
|
}
|
3721
|
}
|
4434
|
});
|
3722
|
});
|
4435
|
|
3723
|
|
4436
|
- if (!forceDialog && file.getTitle() != null && file.invalidFileHandle == null && this.mode != null)
|
|
|
4437
|
- {
|
3724
|
+ if (!forceDialog && file.getTitle() != null && file.invalidFileHandle == null && this.mode != null) {
|
4438
|
this.save(file.getTitle(), done);
|
3725
|
this.save(file.getTitle(), done);
|
4439
|
}
|
3726
|
}
|
4440
|
- else if (file != null && file.constructor == LocalFile && file.fileHandle != null)
|
|
|
4441
|
- {
|
|
|
4442
|
- this.showSaveFilePicker(mxUtils.bind(this, function(fileHandle, desc)
|
|
|
4443
|
- {
|
3727
|
+ else if (file != null && file.constructor == LocalFile && file.fileHandle != null) {
|
|
|
3728
|
+ this.showSaveFilePicker(mxUtils.bind(this, function (fileHandle, desc) {
|
4444
|
file.invalidFileHandle = null;
|
3729
|
file.invalidFileHandle = null;
|
4445
|
file.fileHandle = fileHandle;
|
3730
|
file.fileHandle = fileHandle;
|
4446
|
file.title = desc.name;
|
3731
|
file.title = desc.name;
|
|
@@ -4448,56 +3733,43 @@ App.prototype.saveFile = function(forceDialog, success) |
|
@@ -4448,56 +3733,43 @@ App.prototype.saveFile = function(forceDialog, success) |
4448
|
this.save(desc.name, done);
|
3733
|
this.save(desc.name, done);
|
4449
|
}), null, this.createFileSystemOptions(file.getTitle()));
|
3734
|
}), null, this.createFileSystemOptions(file.getTitle()));
|
4450
|
}
|
3735
|
}
|
4451
|
- else
|
|
|
4452
|
- {
|
3736
|
+ else {
|
4453
|
var filename = (file.getTitle() != null) ? file.getTitle() : this.defaultFilename;
|
3737
|
var filename = (file.getTitle() != null) ? file.getTitle() : this.defaultFilename;
|
4454
|
var allowTab = !mxClient.IS_IOS || !navigator.standalone;
|
3738
|
var allowTab = !mxClient.IS_IOS || !navigator.standalone;
|
4455
|
var prev = this.mode;
|
3739
|
var prev = this.mode;
|
4456
|
var serviceCount = this.getServiceCount(true);
|
3740
|
var serviceCount = this.getServiceCount(true);
|
4457
|
|
3741
|
|
4458
|
- if (isLocalStorage)
|
|
|
4459
|
- {
|
3742
|
+ if (isLocalStorage) {
|
4460
|
serviceCount++;
|
3743
|
serviceCount++;
|
4461
|
}
|
3744
|
}
|
4462
|
|
3745
|
|
4463
|
var rowLimit = (serviceCount <= 4) ? 2 : (serviceCount > 6 ? 4 : 3);
|
3746
|
var rowLimit = (serviceCount <= 4) ? 2 : (serviceCount > 6 ? 4 : 3);
|
4464
|
|
3747
|
|
4465
|
- var dlg = new CreateDialog(this, filename, mxUtils.bind(this, function(name, mode, input)
|
|
|
4466
|
- {
|
|
|
4467
|
- if (name != null && name.length > 0)
|
|
|
4468
|
- {
|
3748
|
+ var dlg = new CreateDialog(this, filename, mxUtils.bind(this, function (name, mode, input) {
|
|
|
3749
|
+ if (name != null && name.length > 0) {
|
4469
|
// Handles special case where PDF export is detected
|
3750
|
// Handles special case where PDF export is detected
|
4470
|
- if (/(\.pdf)$/i.test(name))
|
|
|
4471
|
- {
|
|
|
4472
|
- this.confirm(mxResources.get('didYouMeanToExportToPdf'), mxUtils.bind(this, function()
|
|
|
4473
|
- {
|
3751
|
+ if (/(\.pdf)$/i.test(name)) {
|
|
|
3752
|
+ this.confirm(mxResources.get('didYouMeanToExportToPdf'), mxUtils.bind(this, function () {
|
4474
|
this.hideDialog();
|
3753
|
this.hideDialog();
|
4475
|
this.actions.get('exportPdf').funct();
|
3754
|
this.actions.get('exportPdf').funct();
|
4476
|
- }), mxUtils.bind(this, function()
|
|
|
4477
|
- {
|
3755
|
+ }), mxUtils.bind(this, function () {
|
4478
|
input.value = name.split('.').slice(0, -1).join('.');
|
3756
|
input.value = name.split('.').slice(0, -1).join('.');
|
4479
|
input.focus();
|
3757
|
input.focus();
|
4480
|
|
3758
|
|
4481
|
- if (mxClient.IS_GC || mxClient.IS_FF || document.documentMode >= 5)
|
|
|
4482
|
- {
|
3759
|
+ if (mxClient.IS_GC || mxClient.IS_FF || document.documentMode >= 5) {
|
4483
|
input.select();
|
3760
|
input.select();
|
4484
|
}
|
3761
|
}
|
4485
|
- else
|
|
|
4486
|
- {
|
3762
|
+ else {
|
4487
|
document.execCommand('selectAll', false, null);
|
3763
|
document.execCommand('selectAll', false, null);
|
4488
|
}
|
3764
|
}
|
4489
|
}), mxResources.get('yes'), mxResources.get('no'));
|
3765
|
}), mxResources.get('yes'), mxResources.get('no'));
|
4490
|
}
|
3766
|
}
|
4491
|
- else
|
|
|
4492
|
- {
|
3767
|
+ else {
|
4493
|
this.hideDialog();
|
3768
|
this.hideDialog();
|
4494
|
|
3769
|
|
4495
|
- if (prev == null && mode == App.MODE_DEVICE)
|
|
|
4496
|
- {
|
|
|
4497
|
- if (file != null && EditorUi.nativeFileSupport)
|
|
|
4498
|
- {
|
|
|
4499
|
- this.showSaveFilePicker(mxUtils.bind(this, function(fileHandle, desc)
|
|
|
4500
|
- {
|
3770
|
+ if (prev == null && mode == App.MODE_DEVICE) {
|
|
|
3771
|
+ if (file != null && EditorUi.nativeFileSupport) {
|
|
|
3772
|
+ this.showSaveFilePicker(mxUtils.bind(this, function (fileHandle, desc) {
|
4501
|
file.fileHandle = fileHandle;
|
3773
|
file.fileHandle = fileHandle;
|
4502
|
file.mode = App.MODE_DEVICE;
|
3774
|
file.mode = App.MODE_DEVICE;
|
4503
|
file.title = desc.name;
|
3775
|
file.title = desc.name;
|
|
@@ -4505,29 +3777,23 @@ App.prototype.saveFile = function(forceDialog, success) |
|
@@ -4505,29 +3777,23 @@ App.prototype.saveFile = function(forceDialog, success) |
4505
|
|
3777
|
|
4506
|
this.setMode(App.MODE_DEVICE);
|
3778
|
this.setMode(App.MODE_DEVICE);
|
4507
|
this.save(desc.name, done);
|
3779
|
this.save(desc.name, done);
|
4508
|
- }), mxUtils.bind(this, function(e)
|
|
|
4509
|
- {
|
|
|
4510
|
- if (e.name != 'AbortError')
|
|
|
4511
|
- {
|
3780
|
+ }), mxUtils.bind(this, function (e) {
|
|
|
3781
|
+ if (e.name != 'AbortError') {
|
4512
|
this.handleError(e);
|
3782
|
this.handleError(e);
|
4513
|
}
|
3783
|
}
|
4514
|
}), this.createFileSystemOptions(name));
|
3784
|
}), this.createFileSystemOptions(name));
|
4515
|
}
|
3785
|
}
|
4516
|
- else
|
|
|
4517
|
- {
|
3786
|
+ else {
|
4518
|
this.setMode(App.MODE_DEVICE);
|
3787
|
this.setMode(App.MODE_DEVICE);
|
4519
|
this.save(name, done);
|
3788
|
this.save(name, done);
|
4520
|
}
|
3789
|
}
|
4521
|
}
|
3790
|
}
|
4522
|
- else if (mode == 'download')
|
|
|
4523
|
- {
|
3791
|
+ else if (mode == 'download') {
|
4524
|
var tmp = new LocalFile(this, null, name);
|
3792
|
var tmp = new LocalFile(this, null, name);
|
4525
|
tmp.save();
|
3793
|
tmp.save();
|
4526
|
}
|
3794
|
}
|
4527
|
- else if (mode == '_blank')
|
|
|
4528
|
- {
|
|
|
4529
|
- window.openFile = new OpenFile(function()
|
|
|
4530
|
- {
|
3795
|
+ else if (mode == '_blank') {
|
|
|
3796
|
+ window.openFile = new OpenFile(function () {
|
4531
|
window.openFile = null;
|
3797
|
window.openFile = null;
|
4532
|
});
|
3798
|
});
|
4533
|
|
3799
|
|
|
@@ -4535,24 +3801,20 @@ App.prototype.saveFile = function(forceDialog, success) |
|
@@ -4535,24 +3801,20 @@ App.prototype.saveFile = function(forceDialog, success) |
4535
|
window.openFile.setData(this.getFileData(true));
|
3801
|
window.openFile.setData(this.getFileData(true));
|
4536
|
this.openLink(this.getUrl(window.location.pathname), null, true);
|
3802
|
this.openLink(this.getUrl(window.location.pathname), null, true);
|
4537
|
}
|
3803
|
}
|
4538
|
- else if (prev != mode)
|
|
|
4539
|
- {
|
|
|
4540
|
- this.pickFolder(mode, mxUtils.bind(this, function(folderId)
|
|
|
4541
|
- {
|
3804
|
+ else if (prev != mode) {
|
|
|
3805
|
+ this.pickFolder(mode, mxUtils.bind(this, function (folderId) {
|
4542
|
this.createFile(name, this.getFileData(/(\.xml)$/i.test(name) ||
|
3806
|
this.createFile(name, this.getFileData(/(\.xml)$/i.test(name) ||
|
4543
|
name.indexOf('.') < 0 || /(\.drawio)$/i.test(name),
|
3807
|
name.indexOf('.') < 0 || /(\.drawio)$/i.test(name),
|
4544
|
/(\.svg)$/i.test(name), /(\.html)$/i.test(name)),
|
3808
|
/(\.svg)$/i.test(name), /(\.html)$/i.test(name)),
|
4545
|
null, mode, done, this.mode == null, folderId);
|
3809
|
null, mode, done, this.mode == null, folderId);
|
4546
|
}));
|
3810
|
}));
|
4547
|
}
|
3811
|
}
|
4548
|
- else if (mode != null)
|
|
|
4549
|
- {
|
3812
|
+ else if (mode != null) {
|
4550
|
this.save(name, done);
|
3813
|
this.save(name, done);
|
4551
|
}
|
3814
|
}
|
4552
|
}
|
3815
|
}
|
4553
|
}
|
3816
|
}
|
4554
|
- }), mxUtils.bind(this, function()
|
|
|
4555
|
- {
|
3817
|
+ }), mxUtils.bind(this, function () {
|
4556
|
this.hideDialog();
|
3818
|
this.hideDialog();
|
4557
|
}), mxResources.get('saveAs'), mxResources.get('download'), null, null, allowTab,
|
3819
|
}), mxResources.get('saveAs'), mxResources.get('download'), null, null, allowTab,
|
4558
|
null, true, rowLimit, null, null, null, this.editor.fileExtensions, false);
|
3820
|
null, true, rowLimit, null, null, null, this.editor.fileExtensions, false);
|
|
@@ -4568,8 +3830,7 @@ App.prototype.saveFile = function(forceDialog, success) |
|
@@ -4568,8 +3830,7 @@ App.prototype.saveFile = function(forceDialog, success) |
4568
|
* @param {number} dx X-coordinate of the translation.
|
3830
|
* @param {number} dx X-coordinate of the translation.
|
4569
|
* @param {number} dy Y-coordinate of the translation.
|
3831
|
* @param {number} dy Y-coordinate of the translation.
|
4570
|
*/
|
3832
|
*/
|
4571
|
-App.prototype.loadTemplate = function(url, onload, onerror, templateFilename, asLibrary)
|
|
|
4572
|
-{
|
3833
|
+App.prototype.loadTemplate = function (url, onload, onerror, templateFilename, asLibrary) {
|
4573
|
var base64 = false;
|
3834
|
var base64 = false;
|
4574
|
var realUrl = url;
|
3835
|
var realUrl = url;
|
4575
|
var filterFn = (templateFilename != null) ? templateFilename : url;
|
3836
|
var filterFn = (templateFilename != null) ? templateFilename : url;
|
|
@@ -4577,86 +3838,67 @@ App.prototype.loadTemplate = function(url, onload, onerror, templateFilename, as |
|
@@ -4577,86 +3838,67 @@ App.prototype.loadTemplate = function(url, onload, onerror, templateFilename, as |
4577
|
/(\.vs(x|sx?))($|\?)/i.test(filterFn);
|
3838
|
/(\.vs(x|sx?))($|\?)/i.test(filterFn);
|
4578
|
var binary = /\.png$/i.test(filterFn) || /\.pdf$/i.test(filterFn);
|
3839
|
var binary = /\.png$/i.test(filterFn) || /\.pdf$/i.test(filterFn);
|
4579
|
|
3840
|
|
4580
|
- if (!this.editor.isCorsEnabledForUrl(realUrl))
|
|
|
4581
|
- {
|
3841
|
+ if (!this.editor.isCorsEnabledForUrl(realUrl)) {
|
4582
|
base64 = binary || isVisioFilename;
|
3842
|
base64 = binary || isVisioFilename;
|
4583
|
var nocache = 't=' + new Date().getTime();
|
3843
|
var nocache = 't=' + new Date().getTime();
|
4584
|
realUrl = PROXY_URL + '?url=' + encodeURIComponent(url) +
|
3844
|
realUrl = PROXY_URL + '?url=' + encodeURIComponent(url) +
|
4585
|
'&' + nocache + ((base64) ? '&base64=1' : '');
|
3845
|
'&' + nocache + ((base64) ? '&base64=1' : '');
|
4586
|
}
|
3846
|
}
|
4587
|
|
3847
|
|
4588
|
- this.editor.loadUrl(realUrl, mxUtils.bind(this, function(responseData)
|
|
|
4589
|
- {
|
|
|
4590
|
- try
|
|
|
4591
|
- {
|
3848
|
+ this.editor.loadUrl(realUrl, mxUtils.bind(this, function (responseData) {
|
|
|
3849
|
+ try {
|
4592
|
var data = (!base64) ? responseData : ((window.atob && !mxClient.IS_IE && !mxClient.IS_IE11) ?
|
3850
|
var data = (!base64) ? responseData : ((window.atob && !mxClient.IS_IE && !mxClient.IS_IE11) ?
|
4593
|
atob(responseData) : Base64.decode(responseData));
|
3851
|
atob(responseData) : Base64.decode(responseData));
|
4594
|
|
3852
|
|
4595
|
- if (isVisioFilename || this.isVisioData(data))
|
|
|
4596
|
- {
|
3853
|
+ if (isVisioFilename || this.isVisioData(data)) {
|
4597
|
// Adds filename to control converter code
|
3854
|
// Adds filename to control converter code
|
4598
|
- if (!isVisioFilename)
|
|
|
4599
|
- {
|
|
|
4600
|
- if (asLibrary)
|
|
|
4601
|
- {
|
3855
|
+ if (!isVisioFilename) {
|
|
|
3856
|
+ if (asLibrary) {
|
4602
|
filterFn = this.isRemoteVisioData(data) ? 'raw.vss' : 'raw.vssx';
|
3857
|
filterFn = this.isRemoteVisioData(data) ? 'raw.vss' : 'raw.vssx';
|
4603
|
}
|
3858
|
}
|
4604
|
- else
|
|
|
4605
|
- {
|
3859
|
+ else {
|
4606
|
filterFn = this.isRemoteVisioData(data) ? 'raw.vsd' : 'raw.vsdx';
|
3860
|
filterFn = this.isRemoteVisioData(data) ? 'raw.vsd' : 'raw.vsdx';
|
4607
|
}
|
3861
|
}
|
4608
|
}
|
3862
|
}
|
4609
|
|
3863
|
|
4610
|
- this.importVisio(this.base64ToBlob(responseData.substring(responseData.indexOf(',') + 1)), function(xml)
|
|
|
4611
|
- {
|
3864
|
+ this.importVisio(this.base64ToBlob(responseData.substring(responseData.indexOf(',') + 1)), function (xml) {
|
4612
|
onload(xml);
|
3865
|
onload(xml);
|
4613
|
}, onerror, filterFn);
|
3866
|
}, onerror, filterFn);
|
4614
|
}
|
3867
|
}
|
4615
|
- else if (new XMLHttpRequest().upload && this.isRemoteFileFormat(data, filterFn))
|
|
|
4616
|
- {
|
|
|
4617
|
- if (this.isExternalDataComms())
|
|
|
4618
|
- {
|
3868
|
+ else if (new XMLHttpRequest().upload && this.isRemoteFileFormat(data, filterFn)) {
|
|
|
3869
|
+ if (this.isExternalDataComms()) {
|
4619
|
// Asynchronous parsing via server
|
3870
|
// Asynchronous parsing via server
|
4620
|
- this.parseFileData(data, mxUtils.bind(this, function(xhr)
|
|
|
4621
|
- {
|
3871
|
+ this.parseFileData(data, mxUtils.bind(this, function (xhr) {
|
4622
|
if (xhr.readyState == 4 && xhr.status >= 200 && xhr.status <= 299 &&
|
3872
|
if (xhr.readyState == 4 && xhr.status >= 200 && xhr.status <= 299 &&
|
4623
|
- xhr.responseText.substring(0, 13) == '<mxGraphModel')
|
|
|
4624
|
- {
|
3873
|
+ xhr.responseText.substring(0, 13) == '<mxGraphModel') {
|
4625
|
onload(xhr.responseText);
|
3874
|
onload(xhr.responseText);
|
4626
|
}
|
3875
|
}
|
4627
|
}), url);
|
3876
|
}), url);
|
4628
|
}
|
3877
|
}
|
4629
|
- else
|
|
|
4630
|
- {
|
3878
|
+ else {
|
4631
|
this.showError(mxResources.get('error'), mxResources.get('notInOffline'), null, onerror);
|
3879
|
this.showError(mxResources.get('error'), mxResources.get('notInOffline'), null, onerror);
|
4632
|
}
|
3880
|
}
|
4633
|
}
|
3881
|
}
|
4634
|
- else if (this.isLucidChartData(data))
|
|
|
4635
|
- {
|
|
|
4636
|
- this.convertLucidChart(data, mxUtils.bind(this, function(xml)
|
|
|
4637
|
- {
|
3882
|
+ else if (this.isLucidChartData(data)) {
|
|
|
3883
|
+ this.convertLucidChart(data, mxUtils.bind(this, function (xml) {
|
4638
|
onload(xml);
|
3884
|
onload(xml);
|
4639
|
- }), mxUtils.bind(this, function(e)
|
|
|
4640
|
- {
|
3885
|
+ }), mxUtils.bind(this, function (e) {
|
4641
|
onerror(e);
|
3886
|
onerror(e);
|
4642
|
}));
|
3887
|
}));
|
4643
|
}
|
3888
|
}
|
4644
|
- else
|
|
|
4645
|
- {
|
|
|
4646
|
- if (/(\.png)($|\?)/i.test(filterFn) || Editor.isPngData(data))
|
|
|
4647
|
- {
|
3889
|
+ else {
|
|
|
3890
|
+ if (/(\.png)($|\?)/i.test(filterFn) || Editor.isPngData(data)) {
|
4648
|
data = Editor.extractGraphModelFromPng(responseData);
|
3891
|
data = Editor.extractGraphModelFromPng(responseData);
|
4649
|
}
|
3892
|
}
|
4650
|
|
3893
|
|
4651
|
onload(data);
|
3894
|
onload(data);
|
4652
|
}
|
3895
|
}
|
4653
|
}
|
3896
|
}
|
4654
|
- catch (e)
|
|
|
4655
|
- {
|
3897
|
+ catch (e) {
|
4656
|
onerror(e);
|
3898
|
onerror(e);
|
4657
|
}
|
3899
|
}
|
4658
|
}), onerror, /(\.png)($|\?)/i.test(filterFn) || /(\.v(dx|sdx?))($|\?)/i.test(filterFn) ||
|
3900
|
}), onerror, /(\.png)($|\?)/i.test(filterFn) || /(\.v(dx|sdx?))($|\?)/i.test(filterFn) ||
|
4659
|
- /(\.vs(x|sx?))($|\?)/i.test(filterFn), null, null, base64);
|
3901
|
+ /(\.vs(x|sx?))($|\?)/i.test(filterFn), null, null, base64);
|
4660
|
};
|
3902
|
};
|
4661
|
|
3903
|
|
4662
|
/**
|
3904
|
/**
|
|
@@ -4665,34 +3907,26 @@ App.prototype.loadTemplate = function(url, onload, onerror, templateFilename, as |
|
@@ -4665,34 +3907,26 @@ App.prototype.loadTemplate = function(url, onload, onerror, templateFilename, as |
4665
|
* @param {number} dx X-coordinate of the translation.
|
3907
|
* @param {number} dx X-coordinate of the translation.
|
4666
|
* @param {number} dy Y-coordinate of the translation.
|
3908
|
* @param {number} dy Y-coordinate of the translation.
|
4667
|
*/
|
3909
|
*/
|
4668
|
-App.prototype.getPeerForMode = function(mode)
|
|
|
4669
|
-{
|
|
|
4670
|
- if (mode == App.MODE_GOOGLE)
|
|
|
4671
|
- {
|
3910
|
+App.prototype.getPeerForMode = function (mode) {
|
|
|
3911
|
+ if (mode == App.MODE_GOOGLE) {
|
4672
|
return this.drive;
|
3912
|
return this.drive;
|
4673
|
}
|
3913
|
}
|
4674
|
- else if (mode == App.MODE_GITHUB)
|
|
|
4675
|
- {
|
3914
|
+ else if (mode == App.MODE_GITHUB) {
|
4676
|
return this.gitHub;
|
3915
|
return this.gitHub;
|
4677
|
}
|
3916
|
}
|
4678
|
- else if (mode == App.MODE_GITLAB)
|
|
|
4679
|
- {
|
3917
|
+ else if (mode == App.MODE_GITLAB) {
|
4680
|
return this.gitLab;
|
3918
|
return this.gitLab;
|
4681
|
}
|
3919
|
}
|
4682
|
- else if (mode == App.MODE_DROPBOX)
|
|
|
4683
|
- {
|
3920
|
+ else if (mode == App.MODE_DROPBOX) {
|
4684
|
return this.dropbox;
|
3921
|
return this.dropbox;
|
4685
|
}
|
3922
|
}
|
4686
|
- else if (mode == App.MODE_ONEDRIVE)
|
|
|
4687
|
- {
|
3923
|
+ else if (mode == App.MODE_ONEDRIVE) {
|
4688
|
return this.oneDrive;
|
3924
|
return this.oneDrive;
|
4689
|
}
|
3925
|
}
|
4690
|
- else if (mode == App.MODE_TRELLO)
|
|
|
4691
|
- {
|
3926
|
+ else if (mode == App.MODE_TRELLO) {
|
4692
|
return this.trello;
|
3927
|
return this.trello;
|
4693
|
}
|
3928
|
}
|
4694
|
- else
|
|
|
4695
|
- {
|
3929
|
+ else {
|
4696
|
return null;
|
3930
|
return null;
|
4697
|
}
|
3931
|
}
|
4698
|
};
|
3932
|
};
|
|
@@ -4703,124 +3937,95 @@ App.prototype.getPeerForMode = function(mode) |
|
@@ -4703,124 +3937,95 @@ App.prototype.getPeerForMode = function(mode) |
4703
|
* @param {number} dx X-coordinate of the translation.
|
3937
|
* @param {number} dx X-coordinate of the translation.
|
4704
|
* @param {number} dy Y-coordinate of the translation.
|
3938
|
* @param {number} dy Y-coordinate of the translation.
|
4705
|
*/
|
3939
|
*/
|
4706
|
-App.prototype.createFile = function(title, data, libs, mode, done, replace, folderId, tempFile, clibs)
|
|
|
4707
|
-{
|
3940
|
+App.prototype.createFile = function (title, data, libs, mode, done, replace, folderId, tempFile, clibs) {
|
4708
|
mode = (tempFile) ? null : ((mode != null) ? mode : this.mode);
|
3941
|
mode = (tempFile) ? null : ((mode != null) ? mode : this.mode);
|
4709
|
|
3942
|
|
4710
|
- if (title != null && this.spinner.spin(document.body, mxResources.get('inserting')))
|
|
|
4711
|
- {
|
3943
|
+ if (title != null && this.spinner.spin(document.body, mxResources.get('inserting'))) {
|
4712
|
data = (data != null) ? data : this.emptyDiagramXml;
|
3944
|
data = (data != null) ? data : this.emptyDiagramXml;
|
4713
|
|
3945
|
|
4714
|
- var complete = mxUtils.bind(this, function()
|
|
|
4715
|
- {
|
3946
|
+ var complete = mxUtils.bind(this, function () {
|
4716
|
this.spinner.stop();
|
3947
|
this.spinner.stop();
|
4717
|
});
|
3948
|
});
|
4718
|
|
3949
|
|
4719
|
- var error = mxUtils.bind(this, function(resp)
|
|
|
4720
|
- {
|
3950
|
+ var error = mxUtils.bind(this, function (resp) {
|
4721
|
complete();
|
3951
|
complete();
|
4722
|
|
3952
|
|
4723
|
- if (resp == null && this.getCurrentFile() == null && this.dialog == null)
|
|
|
4724
|
- {
|
3953
|
+ if (resp == null && this.getCurrentFile() == null && this.dialog == null) {
|
4725
|
this.showSplash();
|
3954
|
this.showSplash();
|
4726
|
}
|
3955
|
}
|
4727
|
- else if (resp != null)
|
|
|
4728
|
- {
|
3956
|
+ else if (resp != null) {
|
4729
|
this.handleError(resp);
|
3957
|
this.handleError(resp);
|
4730
|
}
|
3958
|
}
|
4731
|
});
|
3959
|
});
|
4732
|
|
3960
|
|
4733
|
- try
|
|
|
4734
|
- {
|
|
|
4735
|
- if (mode == App.MODE_GOOGLE && this.drive != null)
|
|
|
4736
|
- {
|
|
|
4737
|
- if (folderId == null && this.stateArg != null && this.stateArg.folderId != null)
|
|
|
4738
|
- {
|
3961
|
+ try {
|
|
|
3962
|
+ if (mode == App.MODE_GOOGLE && this.drive != null) {
|
|
|
3963
|
+ if (folderId == null && this.stateArg != null && this.stateArg.folderId != null) {
|
4739
|
folderId = this.stateArg.folderId;
|
3964
|
folderId = this.stateArg.folderId;
|
4740
|
}
|
3965
|
}
|
4741
|
|
3966
|
|
4742
|
- this.drive.insertFile(title, data, folderId, mxUtils.bind(this, function(file)
|
|
|
4743
|
- {
|
3967
|
+ this.drive.insertFile(title, data, folderId, mxUtils.bind(this, function (file) {
|
4744
|
complete();
|
3968
|
complete();
|
4745
|
this.fileCreated(file, libs, replace, done, clibs);
|
3969
|
this.fileCreated(file, libs, replace, done, clibs);
|
4746
|
}), error);
|
3970
|
}), error);
|
4747
|
}
|
3971
|
}
|
4748
|
- else if (mode == App.MODE_GITHUB && this.gitHub != null)
|
|
|
4749
|
- {
|
|
|
4750
|
- this.gitHub.insertFile(title, data, mxUtils.bind(this, function(file)
|
|
|
4751
|
- {
|
3972
|
+ else if (mode == App.MODE_GITHUB && this.gitHub != null) {
|
|
|
3973
|
+ this.gitHub.insertFile(title, data, mxUtils.bind(this, function (file) {
|
4752
|
complete();
|
3974
|
complete();
|
4753
|
this.fileCreated(file, libs, replace, done, clibs);
|
3975
|
this.fileCreated(file, libs, replace, done, clibs);
|
4754
|
}), error, false, folderId);
|
3976
|
}), error, false, folderId);
|
4755
|
}
|
3977
|
}
|
4756
|
- else if (mode == App.MODE_GITLAB && this.gitLab != null)
|
|
|
4757
|
- {
|
|
|
4758
|
- this.gitLab.insertFile(title, data, mxUtils.bind(this, function(file)
|
|
|
4759
|
- {
|
3978
|
+ else if (mode == App.MODE_GITLAB && this.gitLab != null) {
|
|
|
3979
|
+ this.gitLab.insertFile(title, data, mxUtils.bind(this, function (file) {
|
4760
|
complete();
|
3980
|
complete();
|
4761
|
this.fileCreated(file, libs, replace, done, clibs);
|
3981
|
this.fileCreated(file, libs, replace, done, clibs);
|
4762
|
}), error, false, folderId);
|
3982
|
}), error, false, folderId);
|
4763
|
}
|
3983
|
}
|
4764
|
- else if (mode == App.MODE_TRELLO && this.trello != null)
|
|
|
4765
|
- {
|
|
|
4766
|
- this.trello.insertFile(title, data, mxUtils.bind(this, function(file)
|
|
|
4767
|
- {
|
3984
|
+ else if (mode == App.MODE_TRELLO && this.trello != null) {
|
|
|
3985
|
+ this.trello.insertFile(title, data, mxUtils.bind(this, function (file) {
|
4768
|
complete();
|
3986
|
complete();
|
4769
|
this.fileCreated(file, libs, replace, done, clibs);
|
3987
|
this.fileCreated(file, libs, replace, done, clibs);
|
4770
|
}), error, false, folderId);
|
3988
|
}), error, false, folderId);
|
4771
|
}
|
3989
|
}
|
4772
|
- else if (mode == App.MODE_DROPBOX && this.dropbox != null)
|
|
|
4773
|
- {
|
|
|
4774
|
- this.dropbox.insertFile(title, data, mxUtils.bind(this, function(file)
|
|
|
4775
|
- {
|
3990
|
+ else if (mode == App.MODE_DROPBOX && this.dropbox != null) {
|
|
|
3991
|
+ this.dropbox.insertFile(title, data, mxUtils.bind(this, function (file) {
|
4776
|
complete();
|
3992
|
complete();
|
4777
|
this.fileCreated(file, libs, replace, done, clibs);
|
3993
|
this.fileCreated(file, libs, replace, done, clibs);
|
4778
|
}), error);
|
3994
|
}), error);
|
4779
|
}
|
3995
|
}
|
4780
|
- else if (mode == App.MODE_ONEDRIVE && this.oneDrive != null)
|
|
|
4781
|
- {
|
|
|
4782
|
- this.oneDrive.insertFile(title, data, mxUtils.bind(this, function(file)
|
|
|
4783
|
- {
|
3996
|
+ else if (mode == App.MODE_ONEDRIVE && this.oneDrive != null) {
|
|
|
3997
|
+ this.oneDrive.insertFile(title, data, mxUtils.bind(this, function (file) {
|
4784
|
complete();
|
3998
|
complete();
|
4785
|
this.fileCreated(file, libs, replace, done, clibs);
|
3999
|
this.fileCreated(file, libs, replace, done, clibs);
|
4786
|
}), error, false, folderId);
|
4000
|
}), error, false, folderId);
|
4787
|
}
|
4001
|
}
|
4788
|
- else if (mode == App.MODE_BROWSER)
|
|
|
4789
|
- {
|
|
|
4790
|
- StorageFile.insertFile(this, title, data, mxUtils.bind(this, function(file)
|
|
|
4791
|
- {
|
4002
|
+ else if (mode == App.MODE_BROWSER) {
|
|
|
4003
|
+ StorageFile.insertFile(this, title, data, mxUtils.bind(this, function (file) {
|
4792
|
complete();
|
4004
|
complete();
|
4793
|
this.fileCreated(file, libs, replace, done, clibs);
|
4005
|
this.fileCreated(file, libs, replace, done, clibs);
|
4794
|
}), error);
|
4006
|
}), error);
|
4795
|
}
|
4007
|
}
|
4796
|
- else if (!tempFile && mode == App.MODE_DEVICE && EditorUi.nativeFileSupport)
|
|
|
4797
|
- {
|
4008
|
+ else if (!tempFile && mode == App.MODE_DEVICE && EditorUi.nativeFileSupport) {
|
4798
|
complete();
|
4009
|
complete();
|
4799
|
|
4010
|
|
4800
|
- this.showSaveFilePicker(mxUtils.bind(this, function(fileHandle, desc)
|
|
|
4801
|
- {
|
4011
|
+ this.showSaveFilePicker(mxUtils.bind(this, function (fileHandle, desc) {
|
4802
|
var file = new LocalFile(this, data, desc.name, null, fileHandle, desc);
|
4012
|
var file = new LocalFile(this, data, desc.name, null, fileHandle, desc);
|
4803
|
|
4013
|
|
4804
|
- file.saveFile(desc.name, false, mxUtils.bind(this, function()
|
|
|
4805
|
- {
|
4014
|
+ file.saveFile(desc.name, false, mxUtils.bind(this, function () {
|
4806
|
this.fileCreated(file, libs, replace, done, clibs);
|
4015
|
this.fileCreated(file, libs, replace, done, clibs);
|
4807
|
}), error, true);
|
4016
|
}), error, true);
|
4808
|
- }), mxUtils.bind(this, function(e)
|
|
|
4809
|
- {
|
|
|
4810
|
- if (e.name != 'AbortError')
|
|
|
4811
|
- {
|
4017
|
+ }), mxUtils.bind(this, function (e) {
|
|
|
4018
|
+ if (e.name != 'AbortError') {
|
4812
|
error(e);
|
4019
|
error(e);
|
4813
|
}
|
4020
|
}
|
4814
|
}), this.createFileSystemOptions(title));
|
4021
|
}), this.createFileSystemOptions(title));
|
4815
|
}
|
4022
|
}
|
4816
|
- else
|
|
|
4817
|
- {
|
4023
|
+ else {
|
4818
|
complete();
|
4024
|
complete();
|
4819
|
this.fileCreated(new LocalFile(this, data, title, mode == null), libs, replace, done, clibs);
|
4025
|
this.fileCreated(new LocalFile(this, data, title, mode == null), libs, replace, done, clibs);
|
4820
|
}
|
4026
|
}
|
4821
|
}
|
4027
|
}
|
4822
|
- catch (e)
|
|
|
4823
|
- {
|
4028
|
+ catch (e) {
|
4824
|
complete();
|
4029
|
complete();
|
4825
|
this.handleError(e);
|
4030
|
this.handleError(e);
|
4826
|
}
|
4031
|
}
|
|
@@ -4833,32 +4038,27 @@ App.prototype.createFile = function(title, data, libs, mode, done, replace, fold |
|
@@ -4833,32 +4038,27 @@ App.prototype.createFile = function(title, data, libs, mode, done, replace, fold |
4833
|
* @param {number} dx X-coordinate of the translation.
|
4038
|
* @param {number} dx X-coordinate of the translation.
|
4834
|
* @param {number} dy Y-coordinate of the translation.
|
4039
|
* @param {number} dy Y-coordinate of the translation.
|
4835
|
*/
|
4040
|
*/
|
4836
|
-App.prototype.fileCreated = function(file, libs, replace, done, clibs)
|
|
|
4837
|
-{
|
4041
|
+App.prototype.fileCreated = function (file, libs, replace, done, clibs) {
|
4838
|
var url = window.location.pathname;
|
4042
|
var url = window.location.pathname;
|
4839
|
|
4043
|
|
4840
|
- if (libs != null && libs.length > 0)
|
|
|
4841
|
- {
|
4044
|
+ if (libs != null && libs.length > 0) {
|
4842
|
url += '?libs=' + libs;
|
4045
|
url += '?libs=' + libs;
|
4843
|
}
|
4046
|
}
|
4844
|
|
4047
|
|
4845
|
- if (clibs != null && clibs.length > 0)
|
|
|
4846
|
- {
|
4048
|
+ if (clibs != null && clibs.length > 0) {
|
4847
|
url += '?clibs=' + clibs;
|
4049
|
url += '?clibs=' + clibs;
|
4848
|
}
|
4050
|
}
|
4849
|
|
4051
|
|
4850
|
url = this.getUrl(url);
|
4052
|
url = this.getUrl(url);
|
4851
|
|
4053
|
|
4852
|
// Always opens a new tab for local files to avoid losing changes
|
4054
|
// Always opens a new tab for local files to avoid losing changes
|
4853
|
- if (file.getMode() != App.MODE_DEVICE)
|
|
|
4854
|
- {
|
4055
|
+ if (file.getMode() != App.MODE_DEVICE) {
|
4855
|
url += '#' + file.getHash();
|
4056
|
url += '#' + file.getHash();
|
4856
|
}
|
4057
|
}
|
4857
|
|
4058
|
|
4858
|
// Makes sure to produce consistent output with finalized files via createFileData this needs
|
4059
|
// Makes sure to produce consistent output with finalized files via createFileData this needs
|
4859
|
// to save the file again since it needs the newly created file ID for redirecting in HTML
|
4060
|
// to save the file again since it needs the newly created file ID for redirecting in HTML
|
4860
|
- if (this.spinner.spin(document.body, mxResources.get('inserting')))
|
|
|
4861
|
- {
|
4061
|
+ if (this.spinner.spin(document.body, mxResources.get('inserting'))) {
|
4862
|
var data = file.getData();
|
4062
|
var data = file.getData();
|
4863
|
var dataNode = (data.length > 0) ? this.editor.extractGraphModel(
|
4063
|
var dataNode = (data.length > 0) ? this.editor.extractGraphModel(
|
4864
|
mxUtils.parseXml(data).documentElement, true) : null;
|
4064
|
mxUtils.parseXml(data).documentElement, true) : null;
|
|
@@ -4867,8 +4067,7 @@ App.prototype.fileCreated = function(file, libs, replace, done, clibs) |
|
@@ -4867,8 +4067,7 @@ App.prototype.fileCreated = function(file, libs, replace, done, clibs) |
4867
|
var graph = null;
|
4067
|
var graph = null;
|
4868
|
|
4068
|
|
4869
|
// Handles special case where SVG files need a rendered graph to be saved
|
4069
|
// Handles special case where SVG files need a rendered graph to be saved
|
4870
|
- if (dataNode != null && /\.svg$/i.test(file.getTitle()))
|
|
|
4871
|
- {
|
4070
|
+ if (dataNode != null && /\.svg$/i.test(file.getTitle())) {
|
4872
|
graph = this.createTemporaryGraph(this.editor.graph.getStylesheet());
|
4071
|
graph = this.createTemporaryGraph(this.editor.graph.getStylesheet());
|
4873
|
document.body.appendChild(graph.container);
|
4072
|
document.body.appendChild(graph.container);
|
4874
|
node = this.decodeNodeIntoGraph(node, graph);
|
4073
|
node = this.decodeNodeIntoGraph(node, graph);
|
|
@@ -4876,49 +4075,40 @@ App.prototype.fileCreated = function(file, libs, replace, done, clibs) |
|
@@ -4876,49 +4075,40 @@ App.prototype.fileCreated = function(file, libs, replace, done, clibs) |
4876
|
|
4075
|
|
4877
|
file.setData(this.createFileData(dataNode, graph, file, redirect));
|
4076
|
file.setData(this.createFileData(dataNode, graph, file, redirect));
|
4878
|
|
4077
|
|
4879
|
- if (graph != null)
|
|
|
4880
|
- {
|
4078
|
+ if (graph != null) {
|
4881
|
graph.container.parentNode.removeChild(graph.container);
|
4079
|
graph.container.parentNode.removeChild(graph.container);
|
4882
|
}
|
4080
|
}
|
4883
|
|
4081
|
|
4884
|
- var complete = mxUtils.bind(this, function()
|
|
|
4885
|
- {
|
4082
|
+ var complete = mxUtils.bind(this, function () {
|
4886
|
this.spinner.stop();
|
4083
|
this.spinner.stop();
|
4887
|
});
|
4084
|
});
|
4888
|
|
4085
|
|
4889
|
- var fn = mxUtils.bind(this, function()
|
|
|
4890
|
- {
|
4086
|
+ var fn = mxUtils.bind(this, function () {
|
4891
|
complete();
|
4087
|
complete();
|
4892
|
|
4088
|
|
4893
|
var currentFile = this.getCurrentFile();
|
4089
|
var currentFile = this.getCurrentFile();
|
4894
|
|
4090
|
|
4895
|
- if (replace == null && currentFile != null)
|
|
|
4896
|
- {
|
4091
|
+ if (replace == null && currentFile != null) {
|
4897
|
replace = !currentFile.isModified() && currentFile.getMode() == null;
|
4092
|
replace = !currentFile.isModified() && currentFile.getMode() == null;
|
4898
|
}
|
4093
|
}
|
4899
|
|
4094
|
|
4900
|
- var fn3 = mxUtils.bind(this, function()
|
|
|
4901
|
- {
|
4095
|
+ var fn3 = mxUtils.bind(this, function () {
|
4902
|
window.openFile = null;
|
4096
|
window.openFile = null;
|
4903
|
this.fileLoaded(file);
|
4097
|
this.fileLoaded(file);
|
4904
|
|
4098
|
|
4905
|
- if (replace)
|
|
|
4906
|
- {
|
4099
|
+ if (replace) {
|
4907
|
file.addAllSavedStatus();
|
4100
|
file.addAllSavedStatus();
|
4908
|
}
|
4101
|
}
|
4909
|
|
4102
|
|
4910
|
- if (libs != null)
|
|
|
4911
|
- {
|
4103
|
+ if (libs != null) {
|
4912
|
this.sidebar.showEntries(libs);
|
4104
|
this.sidebar.showEntries(libs);
|
4913
|
}
|
4105
|
}
|
4914
|
|
4106
|
|
4915
|
- if (clibs != null)
|
|
|
4916
|
- {
|
4107
|
+ if (clibs != null) {
|
4917
|
var temp = [];
|
4108
|
var temp = [];
|
4918
|
var tokens = clibs.split(';');
|
4109
|
var tokens = clibs.split(';');
|
4919
|
|
4110
|
|
4920
|
- for (var i = 0; i < tokens.length; i++)
|
|
|
4921
|
- {
|
4111
|
+ for (var i = 0; i < tokens.length; i++) {
|
4922
|
temp.push(decodeURIComponent(tokens[i]));
|
4112
|
temp.push(decodeURIComponent(tokens[i]));
|
4923
|
}
|
4113
|
}
|
4924
|
|
4114
|
|
|
@@ -4926,67 +4116,53 @@ App.prototype.fileCreated = function(file, libs, replace, done, clibs) |
|
@@ -4926,67 +4116,53 @@ App.prototype.fileCreated = function(file, libs, replace, done, clibs) |
4926
|
}
|
4116
|
}
|
4927
|
});
|
4117
|
});
|
4928
|
|
4118
|
|
4929
|
- var fn2 = mxUtils.bind(this, function()
|
|
|
4930
|
- {
|
|
|
4931
|
- if (replace || currentFile == null || !currentFile.isModified())
|
|
|
4932
|
- {
|
4119
|
+ var fn2 = mxUtils.bind(this, function () {
|
|
|
4120
|
+ if (replace || currentFile == null || !currentFile.isModified()) {
|
4933
|
fn3();
|
4121
|
fn3();
|
4934
|
}
|
4122
|
}
|
4935
|
- else
|
|
|
4936
|
- {
|
4123
|
+ else {
|
4937
|
this.confirm(mxResources.get('allChangesLost'), null, fn3,
|
4124
|
this.confirm(mxResources.get('allChangesLost'), null, fn3,
|
4938
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
4125
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
4939
|
}
|
4126
|
}
|
4940
|
});
|
4127
|
});
|
4941
|
|
4128
|
|
4942
|
- if (done != null)
|
|
|
4943
|
- {
|
4129
|
+ if (done != null) {
|
4944
|
done();
|
4130
|
done();
|
4945
|
}
|
4131
|
}
|
4946
|
|
4132
|
|
4947
|
// Opens the file in a new window
|
4133
|
// Opens the file in a new window
|
4948
|
- if (replace != null && !replace)
|
|
|
4949
|
- {
|
4134
|
+ if (replace != null && !replace) {
|
4950
|
// Opens local file in a new window
|
4135
|
// Opens local file in a new window
|
4951
|
- if (file.constructor == LocalFile)
|
|
|
4952
|
- {
|
|
|
4953
|
- window.openFile = new OpenFile(function()
|
|
|
4954
|
- {
|
4136
|
+ if (file.constructor == LocalFile) {
|
|
|
4137
|
+ window.openFile = new OpenFile(function () {
|
4955
|
window.openFile = null;
|
4138
|
window.openFile = null;
|
4956
|
});
|
4139
|
});
|
4957
|
|
4140
|
|
4958
|
window.openFile.setData(file.getData(), file.getTitle(), file.getMode() == null);
|
4141
|
window.openFile.setData(file.getData(), file.getTitle(), file.getMode() == null);
|
4959
|
}
|
4142
|
}
|
4960
|
|
4143
|
|
4961
|
- if (done != null)
|
|
|
4962
|
- {
|
4144
|
+ if (done != null) {
|
4963
|
done();
|
4145
|
done();
|
4964
|
}
|
4146
|
}
|
4965
|
|
4147
|
|
4966
|
window.openWindow(url, null, fn2);
|
4148
|
window.openWindow(url, null, fn2);
|
4967
|
}
|
4149
|
}
|
4968
|
- else
|
|
|
4969
|
- {
|
4150
|
+ else {
|
4970
|
fn2();
|
4151
|
fn2();
|
4971
|
}
|
4152
|
}
|
4972
|
});
|
4153
|
});
|
4973
|
|
4154
|
|
4974
|
// Updates data in memory for local files
|
4155
|
// Updates data in memory for local files
|
4975
|
- if (file.constructor == LocalFile)
|
|
|
4976
|
- {
|
4156
|
+ if (file.constructor == LocalFile) {
|
4977
|
fn();
|
4157
|
fn();
|
4978
|
}
|
4158
|
}
|
4979
|
- else
|
|
|
4980
|
- {
|
|
|
4981
|
- file.saveFile(file.getTitle(), false, mxUtils.bind(this, function()
|
|
|
4982
|
- {
|
4159
|
+ else {
|
|
|
4160
|
+ file.saveFile(file.getTitle(), false, mxUtils.bind(this, function () {
|
4983
|
fn();
|
4161
|
fn();
|
4984
|
- }), mxUtils.bind(this, function(resp)
|
|
|
4985
|
- {
|
4162
|
+ }), mxUtils.bind(this, function (resp) {
|
4986
|
complete();
|
4163
|
complete();
|
4987
|
|
4164
|
|
4988
|
- if (resp == null || resp.name != 'AbortError')
|
|
|
4989
|
- {
|
4165
|
+ if (resp == null || resp.name != 'AbortError') {
|
4990
|
this.handleError(resp);
|
4166
|
this.handleError(resp);
|
4991
|
}
|
4167
|
}
|
4992
|
}));
|
4168
|
}));
|
|
@@ -5024,71 +4200,71 @@ App.prototype.loadFile = function (id, sameWindow, file, success, force) { |
|
@@ -5024,71 +4200,71 @@ App.prototype.loadFile = function (id, sameWindow, file, success, force) { |
5024
|
|
4200
|
|
5025
|
if (urlParams.userId) {
|
4201
|
if (urlParams.userId) {
|
5026
|
axios.get(`/api/yt/third/login/id/${urlParams.userId}`)
|
4202
|
axios.get(`/api/yt/third/login/id/${urlParams.userId}`)
|
5027
|
- .then(res => {
|
|
|
5028
|
- const {token, refreshToken} = res.data || {}
|
|
|
5029
|
- GLOBAL_TOKEN.token = token
|
|
|
5030
|
- GLOBAL_TOKEN.refreshToken = refreshToken
|
|
|
5031
|
- getSaveContent()
|
|
|
5032
|
- })
|
4203
|
+ .then(res => {
|
|
|
4204
|
+ const { token, refreshToken } = res.data || {}
|
|
|
4205
|
+ GLOBAL_TOKEN.token = token
|
|
|
4206
|
+ GLOBAL_TOKEN.refreshToken = refreshToken
|
|
|
4207
|
+ getSaveContent()
|
|
|
4208
|
+ })
|
5033
|
} else {
|
4209
|
} else {
|
5034
|
getSaveContent()
|
4210
|
getSaveContent()
|
5035
|
}
|
4211
|
}
|
5036
|
}
|
4212
|
}
|
5037
|
|
4213
|
|
5038
|
getToken()
|
4214
|
getToken()
|
5039
|
-
|
4215
|
+
|
5040
|
var updateButtonContainer = this.updateButtonContainer
|
4216
|
var updateButtonContainer = this.updateButtonContainer
|
5041
|
// var lockUnlock = this.actions.actions.lockUnlock.funct
|
4217
|
// var lockUnlock = this.actions.actions.lockUnlock.funct
|
5042
|
// var selectAll = this.actions.actions.selectAll.funct
|
4218
|
// var selectAll = this.actions.actions.selectAll.funct
|
5043
|
function getUserPermission() {
|
4219
|
function getUserPermission() {
|
5044
|
- defHttp.get('/yt/role/me/permissions')
|
|
|
5045
|
- .then(res => {
|
|
|
5046
|
- USER_PERMISSION.permission = res
|
|
|
5047
|
- console.log({USER_PERMISSION})
|
|
|
5048
|
- updateButtonContainer()
|
|
|
5049
|
- // var flag = hasSavePermission()
|
|
|
5050
|
- // if (!flag) {
|
|
|
5051
|
- // selectAll()
|
|
|
5052
|
- // lockUnlock()
|
|
|
5053
|
- // }
|
|
|
5054
|
- })
|
4220
|
+ defHttp.get('/yt/role/me/permissions')
|
|
|
4221
|
+ .then(res => {
|
|
|
4222
|
+ USER_PERMISSION.permission = res
|
|
|
4223
|
+ console.log({ USER_PERMISSION })
|
|
|
4224
|
+ updateButtonContainer()
|
|
|
4225
|
+ // var flag = hasSavePermission()
|
|
|
4226
|
+ // if (!flag) {
|
|
|
4227
|
+ // selectAll()
|
|
|
4228
|
+ // lockUnlock()
|
|
|
4229
|
+ // }
|
|
|
4230
|
+ })
|
5055
|
}
|
4231
|
}
|
5056
|
|
4232
|
|
5057
|
// 调用API,获取保存的内容
|
4233
|
// 调用API,获取保存的内容
|
5058
|
function getSaveContent() {
|
4234
|
function getSaveContent() {
|
5059
|
- defHttp.get('/yt/configuration/center/getConfigurationInfo/'+Editor.configurationId)
|
4235
|
+ defHttp.get('/yt/configuration/center/getConfigurationInfo/' + Editor.configurationId)
|
5060
|
.then(function (response) {
|
4236
|
.then(function (response) {
|
5061
|
- console.log({response})
|
4237
|
+ console.log({ response })
|
5062
|
const { platform } = response || {}
|
4238
|
const { platform } = response || {}
|
5063
|
const pageSizeControl = PageSetupDialog.getFormats
|
4239
|
const pageSizeControl = PageSetupDialog.getFormats
|
5064
|
PageSetupDialog.getFormats = function () {
|
4240
|
PageSetupDialog.getFormats = function () {
|
5065
|
if (platform === 'phone') {
|
4241
|
if (platform === 'phone') {
|
5066
|
- return [
|
|
|
5067
|
- {key: 'iPhone 8', title: 'iPhone 8', format: new mxRectangle(0, 0, 375, 667)},
|
|
|
5068
|
- {key: 'iPhone 8 Plus', title: 'iPhone 8 Plus', format: new mxRectangle(0, 0, 415, 737)},
|
|
|
5069
|
- {key: 'iPhone X/XS', title: 'iPhone X/XS', format: new mxRectangle(0, 0, 376, 813)},
|
|
|
5070
|
- {key: 'iPhone XR/XS Max', title: 'iPhone XR/XS Max', format: new mxRectangle(0, 0, 415, 897)},
|
|
|
5071
|
- {key: 'iPad 4', title: 'iPad 4', format: new mxRectangle(0, 0, 709, 1025)},
|
|
|
5072
|
- {key: 'Galaxy S9', title: 'Galaxy S9', format: new mxRectangle(0, 0, 361, 741)},
|
|
|
5073
|
- {key: 'Galaxy S10E', title: 'Galaxy S10E', format: new mxRectangle(0, 0, 361, 741)},
|
|
|
5074
|
- {key: 'Galaxy S10E', title: 'Galaxy S10E', format: new mxRectangle(0, 0, 361, 741)},
|
|
|
5075
|
- {key: 'Galaxy S10/S10+', title: 'Galaxy S10/S10+', format: new mxRectangle(0, 0, 413, 870)},
|
|
|
5076
|
- {key: 'Pixel 2', title: 'Pixel 2', format: new mxRectangle(0, 0, 413, 732)},
|
|
|
5077
|
- {key: 'Pixel 3', title: 'Pixel 3', format: new mxRectangle(0, 0, 413, 825)},
|
|
|
5078
|
- {key: 'Pixel 3', title: 'Pixel 3', format: new mxRectangle(0, 0, 413, 825)},
|
|
|
5079
|
- {key: 'Pixel XL', title: 'Pixel XL', format: new mxRectangle(0, 0, 413, 848)},
|
|
|
5080
|
- {key: 'custom', title: mxResources.get('custom'), format: null}
|
4242
|
+ return [
|
|
|
4243
|
+ { key: 'iPhone 8', title: 'iPhone 8', format: new mxRectangle(0, 0, 375, 667) },
|
|
|
4244
|
+ { key: 'iPhone 8 Plus', title: 'iPhone 8 Plus', format: new mxRectangle(0, 0, 415, 737) },
|
|
|
4245
|
+ { key: 'iPhone X/XS', title: 'iPhone X/XS', format: new mxRectangle(0, 0, 376, 813) },
|
|
|
4246
|
+ { key: 'iPhone XR/XS Max', title: 'iPhone XR/XS Max', format: new mxRectangle(0, 0, 415, 897) },
|
|
|
4247
|
+ { key: 'iPad 4', title: 'iPad 4', format: new mxRectangle(0, 0, 709, 1025) },
|
|
|
4248
|
+ { key: 'Galaxy S9', title: 'Galaxy S9', format: new mxRectangle(0, 0, 361, 741) },
|
|
|
4249
|
+ { key: 'Galaxy S10E', title: 'Galaxy S10E', format: new mxRectangle(0, 0, 361, 741) },
|
|
|
4250
|
+ { key: 'Galaxy S10E', title: 'Galaxy S10E', format: new mxRectangle(0, 0, 361, 741) },
|
|
|
4251
|
+ { key: 'Galaxy S10/S10+', title: 'Galaxy S10/S10+', format: new mxRectangle(0, 0, 413, 870) },
|
|
|
4252
|
+ { key: 'Pixel 2', title: 'Pixel 2', format: new mxRectangle(0, 0, 413, 732) },
|
|
|
4253
|
+ { key: 'Pixel 3', title: 'Pixel 3', format: new mxRectangle(0, 0, 413, 825) },
|
|
|
4254
|
+ { key: 'Pixel 3', title: 'Pixel 3', format: new mxRectangle(0, 0, 413, 825) },
|
|
|
4255
|
+ { key: 'Pixel XL', title: 'Pixel XL', format: new mxRectangle(0, 0, 413, 848) },
|
|
|
4256
|
+ { key: 'custom', title: mxResources.get('custom'), format: null }
|
5081
|
]
|
4257
|
]
|
5082
|
}
|
4258
|
}
|
5083
|
return pageSizeControl.apply(this, arguments)
|
4259
|
return pageSizeControl.apply(this, arguments)
|
5084
|
}
|
4260
|
}
|
5085
|
Editor.configurationName = response.configurationName + ".drawio";
|
4261
|
Editor.configurationName = response.configurationName + ".drawio";
|
5086
|
- if(response.configurationContentList.length > 0){
|
|
|
5087
|
- response.configurationContentList.forEach((item)=>{
|
4262
|
+ if (response.configurationContentList.length > 0) {
|
|
|
4263
|
+ response.configurationContentList.forEach((item) => {
|
5088
|
Editor.configurationContentId = item.id;
|
4264
|
Editor.configurationContentId = item.id;
|
5089
|
- if(item.content){
|
4265
|
+ if (item.content) {
|
5090
|
Editor.defaultContent = item.content;
|
4266
|
Editor.defaultContent = item.content;
|
5091
|
- }else{
|
4267
|
+ } else {
|
5092
|
//默认空白内容
|
4268
|
//默认空白内容
|
5093
|
Editor.defaultContent = EditorUi.prototype.emptyDiagramXml;
|
4269
|
Editor.defaultContent = EditorUi.prototype.emptyDiagramXml;
|
5094
|
}
|
4270
|
}
|
|
@@ -5110,11 +4286,11 @@ App.prototype.loadFile = function (id, sameWindow, file, success, force) { |
|
@@ -5110,11 +4286,11 @@ App.prototype.loadFile = function (id, sameWindow, file, success, force) { |
5110
|
});
|
4286
|
});
|
5111
|
}
|
4287
|
}
|
5112
|
|
4288
|
|
5113
|
-
|
4289
|
+
|
5114
|
this.hideDialog();
|
4290
|
this.hideDialog();
|
5115
|
var fn2 = mxUtils.bind(this, function () {
|
4291
|
var fn2 = mxUtils.bind(this, function () {
|
5116
|
//加载数据开始
|
4292
|
//加载数据开始
|
5117
|
- var fileHandle = {kind: 'file', name: Editor.configurationName};
|
4293
|
+ var fileHandle = { kind: 'file', name: Editor.configurationName };
|
5118
|
var file = {
|
4294
|
var file = {
|
5119
|
name: Editor.configurationName,
|
4295
|
name: Editor.configurationName,
|
5120
|
type: "",
|
4296
|
type: "",
|
|
@@ -5525,41 +4701,32 @@ App.prototype.loadFile = function (id, sameWindow, file, success, force) { |
|
@@ -5525,41 +4701,32 @@ App.prototype.loadFile = function (id, sameWindow, file, success, force) { |
5525
|
* @param {number} dx X-coordinate of the translation.
|
4701
|
* @param {number} dx X-coordinate of the translation.
|
5526
|
* @param {number} dy Y-coordinate of the translation.
|
4702
|
* @param {number} dy Y-coordinate of the translation.
|
5527
|
*/
|
4703
|
*/
|
5528
|
-App.prototype.getLibraryStorageHint = function(file)
|
|
|
5529
|
-{
|
4704
|
+App.prototype.getLibraryStorageHint = function (file) {
|
5530
|
var tip = file.getTitle();
|
4705
|
var tip = file.getTitle();
|
5531
|
|
4706
|
|
5532
|
- if (file.constructor != LocalLibrary)
|
|
|
5533
|
- {
|
4707
|
+ if (file.constructor != LocalLibrary) {
|
5534
|
tip += '\n' + file.getHash();
|
4708
|
tip += '\n' + file.getHash();
|
5535
|
}
|
4709
|
}
|
5536
|
|
4710
|
|
5537
|
- if (file.constructor == DriveLibrary)
|
|
|
5538
|
- {
|
4711
|
+ if (file.constructor == DriveLibrary) {
|
5539
|
tip += ' (' + mxResources.get('googleDrive') + ')';
|
4712
|
tip += ' (' + mxResources.get('googleDrive') + ')';
|
5540
|
}
|
4713
|
}
|
5541
|
- else if (file.constructor == GitHubLibrary)
|
|
|
5542
|
- {
|
4714
|
+ else if (file.constructor == GitHubLibrary) {
|
5543
|
tip += ' (' + mxResources.get('github') + ')';
|
4715
|
tip += ' (' + mxResources.get('github') + ')';
|
5544
|
}
|
4716
|
}
|
5545
|
- else if (file.constructor == TrelloLibrary)
|
|
|
5546
|
- {
|
4717
|
+ else if (file.constructor == TrelloLibrary) {
|
5547
|
tip += ' (' + mxResources.get('trello') + ')';
|
4718
|
tip += ' (' + mxResources.get('trello') + ')';
|
5548
|
}
|
4719
|
}
|
5549
|
- else if (file.constructor == DropboxLibrary)
|
|
|
5550
|
- {
|
4720
|
+ else if (file.constructor == DropboxLibrary) {
|
5551
|
tip += ' (' + mxResources.get('dropbox') + ')';
|
4721
|
tip += ' (' + mxResources.get('dropbox') + ')';
|
5552
|
}
|
4722
|
}
|
5553
|
- else if (file.constructor == OneDriveLibrary)
|
|
|
5554
|
- {
|
4723
|
+ else if (file.constructor == OneDriveLibrary) {
|
5555
|
tip += ' (' + mxResources.get('oneDrive') + ')';
|
4724
|
tip += ' (' + mxResources.get('oneDrive') + ')';
|
5556
|
}
|
4725
|
}
|
5557
|
- else if (file.constructor == StorageLibrary)
|
|
|
5558
|
- {
|
4726
|
+ else if (file.constructor == StorageLibrary) {
|
5559
|
tip += ' (' + mxResources.get('browser') + ')';
|
4727
|
tip += ' (' + mxResources.get('browser') + ')';
|
5560
|
}
|
4728
|
}
|
5561
|
- else if (file.constructor == LocalLibrary)
|
|
|
5562
|
- {
|
4729
|
+ else if (file.constructor == LocalLibrary) {
|
5563
|
tip += ' (' + mxResources.get('device') + ')';
|
4730
|
tip += ' (' + mxResources.get('device') + ')';
|
5564
|
}
|
4731
|
}
|
5565
|
|
4732
|
|
|
@@ -5569,17 +4736,13 @@ App.prototype.getLibraryStorageHint = function(file) |
|
@@ -5569,17 +4736,13 @@ App.prototype.getLibraryStorageHint = function(file) |
5569
|
/**
|
4736
|
/**
|
5570
|
* Updates action states depending on the selection.
|
4737
|
* Updates action states depending on the selection.
|
5571
|
*/
|
4738
|
*/
|
5572
|
-App.prototype.restoreLibraries = function()
|
|
|
5573
|
-{
|
4739
|
+App.prototype.restoreLibraries = function () {
|
5574
|
var checked = [];
|
4740
|
var checked = [];
|
5575
|
|
4741
|
|
5576
|
- function addLibs(libs)
|
|
|
5577
|
- {
|
|
|
5578
|
- for (var i = 0; i < libs.length; i++)
|
|
|
5579
|
- {
|
4742
|
+ function addLibs(libs) {
|
|
|
4743
|
+ for (var i = 0; i < libs.length; i++) {
|
5580
|
if (libs[i] != '' && mxUtils.indexOf(
|
4744
|
if (libs[i] != '' && mxUtils.indexOf(
|
5581
|
- checked, libs[i]) < 0)
|
|
|
5582
|
- {
|
4745
|
+ checked, libs[i]) < 0) {
|
5583
|
checked.push(libs[i]);
|
4746
|
checked.push(libs[i]);
|
5584
|
}
|
4747
|
}
|
5585
|
}
|
4748
|
}
|
|
@@ -5593,20 +4756,15 @@ App.prototype.restoreLibraries = function() |
|
@@ -5593,20 +4756,15 @@ App.prototype.restoreLibraries = function() |
5593
|
/**
|
4756
|
/**
|
5594
|
* Updates action states depending on the selection.
|
4757
|
* Updates action states depending on the selection.
|
5595
|
*/
|
4758
|
*/
|
5596
|
-App.prototype.loadLibraries = function(libs, done)
|
|
|
5597
|
-{
|
|
|
5598
|
- if (this.sidebar != null)
|
|
|
5599
|
- {
|
|
|
5600
|
- if (this.loadedLibraries == null)
|
|
|
5601
|
- {
|
4759
|
+App.prototype.loadLibraries = function (libs, done) {
|
|
|
4760
|
+ if (this.sidebar != null) {
|
|
|
4761
|
+ if (this.loadedLibraries == null) {
|
5602
|
this.loadedLibraries = new Object();
|
4762
|
this.loadedLibraries = new Object();
|
5603
|
}
|
4763
|
}
|
5604
|
|
4764
|
|
5605
|
// Ignores this library next time
|
4765
|
// Ignores this library next time
|
5606
|
- var ignore = mxUtils.bind(this, function(id, keep)
|
|
|
5607
|
- {
|
|
|
5608
|
- if (!keep)
|
|
|
5609
|
- {
|
4766
|
+ var ignore = mxUtils.bind(this, function (id, keep) {
|
|
|
4767
|
+ if (!keep) {
|
5610
|
mxSettings.removeCustomLibrary(id);
|
4768
|
mxSettings.removeCustomLibrary(id);
|
5611
|
}
|
4769
|
}
|
5612
|
|
4770
|
|
|
@@ -5618,52 +4776,40 @@ App.prototype.loadLibraries = function(libs, done) |
|
@@ -5618,52 +4776,40 @@ App.prototype.loadLibraries = function(libs, done) |
5618
|
var idx = (libs.length > 0 && libs[0] == 'L.scratchpad') ? 1 : 0;
|
4776
|
var idx = (libs.length > 0 && libs[0] == 'L.scratchpad') ? 1 : 0;
|
5619
|
|
4777
|
|
5620
|
// Loads in order of libs array
|
4778
|
// Loads in order of libs array
|
5621
|
- var checkDone = mxUtils.bind(this, function()
|
|
|
5622
|
- {
|
|
|
5623
|
- if (waiting == 0)
|
|
|
5624
|
- {
|
|
|
5625
|
- if (libs != null)
|
|
|
5626
|
- {
|
|
|
5627
|
- for (var i = libs.length - 1; i >= 0; i--)
|
|
|
5628
|
- {
|
|
|
5629
|
- if (files[i] != null)
|
|
|
5630
|
- {
|
4779
|
+ var checkDone = mxUtils.bind(this, function () {
|
|
|
4780
|
+ if (waiting == 0) {
|
|
|
4781
|
+ if (libs != null) {
|
|
|
4782
|
+ for (var i = libs.length - 1; i >= 0; i--) {
|
|
|
4783
|
+ if (files[i] != null) {
|
5631
|
this.loadLibrary(files[i], i <= idx);
|
4784
|
this.loadLibrary(files[i], i <= idx);
|
5632
|
}
|
4785
|
}
|
5633
|
}
|
4786
|
}
|
5634
|
}
|
4787
|
}
|
5635
|
|
4788
|
|
5636
|
- if (done != null)
|
|
|
5637
|
- {
|
4789
|
+ if (done != null) {
|
5638
|
done();
|
4790
|
done();
|
5639
|
}
|
4791
|
}
|
5640
|
}
|
4792
|
}
|
5641
|
});
|
4793
|
});
|
5642
|
|
4794
|
|
5643
|
- if (libs != null)
|
|
|
5644
|
- {
|
|
|
5645
|
- for (var i = 0; i < libs.length; i++)
|
|
|
5646
|
- {
|
4795
|
+ if (libs != null) {
|
|
|
4796
|
+ for (var i = 0; i < libs.length; i++) {
|
5647
|
var name = encodeURIComponent(decodeURIComponent(libs[i]));
|
4797
|
var name = encodeURIComponent(decodeURIComponent(libs[i]));
|
5648
|
|
4798
|
|
5649
|
- (mxUtils.bind(this, function(id, index)
|
|
|
5650
|
- {
|
4799
|
+ (mxUtils.bind(this, function (id, index) {
|
5651
|
if (id != null && id.length > 0 && this.loadedLibraries[id] == null &&
|
4800
|
if (id != null && id.length > 0 && this.loadedLibraries[id] == null &&
|
5652
|
- this.sidebar.palettes[id] == null)
|
|
|
5653
|
- {
|
4801
|
+ this.sidebar.palettes[id] == null) {
|
5654
|
// Waits for all libraries to load
|
4802
|
// Waits for all libraries to load
|
5655
|
this.loadedLibraries[id] = true;
|
4803
|
this.loadedLibraries[id] = true;
|
5656
|
waiting++;
|
4804
|
waiting++;
|
5657
|
|
4805
|
|
5658
|
- var onload = mxUtils.bind(this, function(file)
|
|
|
5659
|
- {
|
4806
|
+ var onload = mxUtils.bind(this, function (file) {
|
5660
|
files[index] = file;
|
4807
|
files[index] = file;
|
5661
|
waiting--;
|
4808
|
waiting--;
|
5662
|
checkDone();
|
4809
|
checkDone();
|
5663
|
});
|
4810
|
});
|
5664
|
|
4811
|
|
5665
|
- var onerror = mxUtils.bind(this, function(keep)
|
|
|
5666
|
- {
|
4812
|
+ var onerror = mxUtils.bind(this, function (keep) {
|
5667
|
ignore(id, keep);
|
4813
|
ignore(id, keep);
|
5668
|
waiting--;
|
4814
|
waiting--;
|
5669
|
checkDone();
|
4815
|
checkDone();
|
|
@@ -5671,170 +4817,127 @@ App.prototype.loadLibraries = function(libs, done) |
|
@@ -5671,170 +4817,127 @@ App.prototype.loadLibraries = function(libs, done) |
5671
|
|
4817
|
|
5672
|
var service = id.substring(0, 1);
|
4818
|
var service = id.substring(0, 1);
|
5673
|
|
4819
|
|
5674
|
- if (service == 'L')
|
|
|
5675
|
- {
|
|
|
5676
|
- if (isLocalStorage || mxClient.IS_CHROMEAPP)
|
|
|
5677
|
- {
|
4820
|
+ if (service == 'L') {
|
|
|
4821
|
+ if (isLocalStorage || mxClient.IS_CHROMEAPP) {
|
5678
|
// Make asynchronous for barrier to work
|
4822
|
// Make asynchronous for barrier to work
|
5679
|
- window.setTimeout(mxUtils.bind(this, function()
|
|
|
5680
|
- {
|
|
|
5681
|
- try
|
|
|
5682
|
- {
|
4823
|
+ window.setTimeout(mxUtils.bind(this, function () {
|
|
|
4824
|
+ try {
|
5683
|
var name = decodeURIComponent(id.substring(1));
|
4825
|
var name = decodeURIComponent(id.substring(1));
|
5684
|
|
4826
|
|
5685
|
- StorageFile.getFileContent(this, name, mxUtils.bind(this, function(xml)
|
|
|
5686
|
- {
|
|
|
5687
|
- if (name == '.scratchpad' && xml == null)
|
|
|
5688
|
- {
|
4827
|
+ StorageFile.getFileContent(this, name, mxUtils.bind(this, function (xml) {
|
|
|
4828
|
+ if (name == '.scratchpad' && xml == null) {
|
5689
|
xml = this.emptyLibraryXml;
|
4829
|
xml = this.emptyLibraryXml;
|
5690
|
}
|
4830
|
}
|
5691
|
|
4831
|
|
5692
|
- if (xml != null)
|
|
|
5693
|
- {
|
4832
|
+ if (xml != null) {
|
5694
|
onload(new StorageLibrary(this, xml, name));
|
4833
|
onload(new StorageLibrary(this, xml, name));
|
5695
|
}
|
4834
|
}
|
5696
|
- else
|
|
|
5697
|
- {
|
4835
|
+ else {
|
5698
|
onerror();
|
4836
|
onerror();
|
5699
|
}
|
4837
|
}
|
5700
|
}), onerror);
|
4838
|
}), onerror);
|
5701
|
}
|
4839
|
}
|
5702
|
- catch (e)
|
|
|
5703
|
- {
|
4840
|
+ catch (e) {
|
5704
|
onerror();
|
4841
|
onerror();
|
5705
|
}
|
4842
|
}
|
5706
|
}), 0);
|
4843
|
}), 0);
|
5707
|
}
|
4844
|
}
|
5708
|
}
|
4845
|
}
|
5709
|
- else if (service == 'U')
|
|
|
5710
|
- {
|
4846
|
+ else if (service == 'U') {
|
5711
|
var url = decodeURIComponent(id.substring(1));
|
4847
|
var url = decodeURIComponent(id.substring(1));
|
5712
|
|
4848
|
|
5713
|
- if (!this.isOffline())
|
|
|
5714
|
- {
|
|
|
5715
|
- this.loadTemplate(url, mxUtils.bind(this, function(text)
|
|
|
5716
|
- {
|
|
|
5717
|
- if (text != null && text.length > 0)
|
|
|
5718
|
- {
|
4849
|
+ if (!this.isOffline()) {
|
|
|
4850
|
+ this.loadTemplate(url, mxUtils.bind(this, function (text) {
|
|
|
4851
|
+ if (text != null && text.length > 0) {
|
5719
|
// LATER: Convert mxfile to mxlibrary using code from libraryLoaded
|
4852
|
// LATER: Convert mxfile to mxlibrary using code from libraryLoaded
|
5720
|
onload(new UrlLibrary(this, text, url));
|
4853
|
onload(new UrlLibrary(this, text, url));
|
5721
|
}
|
4854
|
}
|
5722
|
- else
|
|
|
5723
|
- {
|
4855
|
+ else {
|
5724
|
onerror();
|
4856
|
onerror();
|
5725
|
}
|
4857
|
}
|
5726
|
- }), function()
|
|
|
5727
|
- {
|
4858
|
+ }), function () {
|
5728
|
onerror();
|
4859
|
onerror();
|
5729
|
}, null, true);
|
4860
|
}, null, true);
|
5730
|
}
|
4861
|
}
|
5731
|
}
|
4862
|
}
|
5732
|
- else if (service == 'R')
|
|
|
5733
|
- {
|
4863
|
+ else if (service == 'R') {
|
5734
|
var libDesc = decodeURIComponent(id.substring(1));
|
4864
|
var libDesc = decodeURIComponent(id.substring(1));
|
5735
|
|
4865
|
|
5736
|
- try
|
|
|
5737
|
- {
|
4866
|
+ try {
|
5738
|
libDesc = JSON.parse(libDesc);
|
4867
|
libDesc = JSON.parse(libDesc);
|
5739
|
var libObj = {
|
4868
|
var libObj = {
|
5740
|
id: libDesc[0],
|
4869
|
id: libDesc[0],
|
5741
|
- title: libDesc[1],
|
|
|
5742
|
- downloadUrl: libDesc[2]
|
4870
|
+ title: libDesc[1],
|
|
|
4871
|
+ downloadUrl: libDesc[2]
|
5743
|
}
|
4872
|
}
|
5744
|
|
4873
|
|
5745
|
- this.remoteInvoke('getFileContent', [libObj.downloadUrl], null, mxUtils.bind(this, function(libContent)
|
|
|
5746
|
- {
|
|
|
5747
|
- try
|
|
|
5748
|
- {
|
4874
|
+ this.remoteInvoke('getFileContent', [libObj.downloadUrl], null, mxUtils.bind(this, function (libContent) {
|
|
|
4875
|
+ try {
|
5749
|
onload(new RemoteLibrary(this, libContent, libObj));
|
4876
|
onload(new RemoteLibrary(this, libContent, libObj));
|
5750
|
}
|
4877
|
}
|
5751
|
- catch (e)
|
|
|
5752
|
- {
|
4878
|
+ catch (e) {
|
5753
|
onerror();
|
4879
|
onerror();
|
5754
|
}
|
4880
|
}
|
5755
|
- }), function()
|
|
|
5756
|
- {
|
4881
|
+ }), function () {
|
5757
|
onerror();
|
4882
|
onerror();
|
5758
|
});
|
4883
|
});
|
5759
|
}
|
4884
|
}
|
5760
|
- catch (e)
|
|
|
5761
|
- {
|
4885
|
+ catch (e) {
|
5762
|
onerror();
|
4886
|
onerror();
|
5763
|
}
|
4887
|
}
|
5764
|
}
|
4888
|
}
|
5765
|
- else if (service == 'S' && this.loadDesktopLib != null)
|
|
|
5766
|
- {
|
|
|
5767
|
- try
|
|
|
5768
|
- {
|
|
|
5769
|
- this.loadDesktopLib(decodeURIComponent(id.substring(1)), function(desktopLib)
|
|
|
5770
|
- {
|
4889
|
+ else if (service == 'S' && this.loadDesktopLib != null) {
|
|
|
4890
|
+ try {
|
|
|
4891
|
+ this.loadDesktopLib(decodeURIComponent(id.substring(1)), function (desktopLib) {
|
5771
|
onload(desktopLib);
|
4892
|
onload(desktopLib);
|
5772
|
}, onerror);
|
4893
|
}, onerror);
|
5773
|
}
|
4894
|
}
|
5774
|
- catch (e)
|
|
|
5775
|
- {
|
4895
|
+ catch (e) {
|
5776
|
onerror();
|
4896
|
onerror();
|
5777
|
}
|
4897
|
}
|
5778
|
}
|
4898
|
}
|
5779
|
- else
|
|
|
5780
|
- {
|
4899
|
+ else {
|
5781
|
var peer = null;
|
4900
|
var peer = null;
|
5782
|
|
4901
|
|
5783
|
- if (service == 'G')
|
|
|
5784
|
- {
|
|
|
5785
|
- if (this.drive != null && this.drive.user != null)
|
|
|
5786
|
- {
|
4902
|
+ if (service == 'G') {
|
|
|
4903
|
+ if (this.drive != null && this.drive.user != null) {
|
5787
|
peer = this.drive;
|
4904
|
peer = this.drive;
|
5788
|
}
|
4905
|
}
|
5789
|
}
|
4906
|
}
|
5790
|
- else if (service == 'H')
|
|
|
5791
|
- {
|
|
|
5792
|
- if (this.gitHub != null && this.gitHub.getUser() != null)
|
|
|
5793
|
- {
|
4907
|
+ else if (service == 'H') {
|
|
|
4908
|
+ if (this.gitHub != null && this.gitHub.getUser() != null) {
|
5794
|
peer = this.gitHub;
|
4909
|
peer = this.gitHub;
|
5795
|
}
|
4910
|
}
|
5796
|
}
|
4911
|
}
|
5797
|
- else if (service == 'T')
|
|
|
5798
|
- {
|
|
|
5799
|
- if (this.trello != null && this.trello.isAuthorized())
|
|
|
5800
|
- {
|
4912
|
+ else if (service == 'T') {
|
|
|
4913
|
+ if (this.trello != null && this.trello.isAuthorized()) {
|
5801
|
peer = this.trello;
|
4914
|
peer = this.trello;
|
5802
|
}
|
4915
|
}
|
5803
|
}
|
4916
|
}
|
5804
|
- else if (service == 'D')
|
|
|
5805
|
- {
|
|
|
5806
|
- if (this.dropbox != null && this.dropbox.getUser() != null)
|
|
|
5807
|
- {
|
4917
|
+ else if (service == 'D') {
|
|
|
4918
|
+ if (this.dropbox != null && this.dropbox.getUser() != null) {
|
5808
|
peer = this.dropbox;
|
4919
|
peer = this.dropbox;
|
5809
|
}
|
4920
|
}
|
5810
|
}
|
4921
|
}
|
5811
|
- else if (service == 'W')
|
|
|
5812
|
- {
|
|
|
5813
|
- if (this.oneDrive != null && this.oneDrive.getUser() != null)
|
|
|
5814
|
- {
|
4922
|
+ else if (service == 'W') {
|
|
|
4923
|
+ if (this.oneDrive != null && this.oneDrive.getUser() != null) {
|
5815
|
peer = this.oneDrive;
|
4924
|
peer = this.oneDrive;
|
5816
|
}
|
4925
|
}
|
5817
|
}
|
4926
|
}
|
5818
|
|
4927
|
|
5819
|
- if (peer != null)
|
|
|
5820
|
- {
|
|
|
5821
|
- peer.getLibrary(decodeURIComponent(id.substring(1)), mxUtils.bind(this, function(file)
|
|
|
5822
|
- {
|
|
|
5823
|
- try
|
|
|
5824
|
- {
|
4928
|
+ if (peer != null) {
|
|
|
4929
|
+ peer.getLibrary(decodeURIComponent(id.substring(1)), mxUtils.bind(this, function (file) {
|
|
|
4930
|
+ try {
|
5825
|
onload(file);
|
4931
|
onload(file);
|
5826
|
}
|
4932
|
}
|
5827
|
- catch (e)
|
|
|
5828
|
- {
|
4933
|
+ catch (e) {
|
5829
|
onerror();
|
4934
|
onerror();
|
5830
|
}
|
4935
|
}
|
5831
|
- }), function(resp)
|
|
|
5832
|
- {
|
4936
|
+ }), function (resp) {
|
5833
|
onerror();
|
4937
|
onerror();
|
5834
|
});
|
4938
|
});
|
5835
|
}
|
4939
|
}
|
5836
|
- else
|
|
|
5837
|
- {
|
4940
|
+ else {
|
5838
|
onerror(true);
|
4941
|
onerror(true);
|
5839
|
}
|
4942
|
}
|
5840
|
}
|
4943
|
}
|
|
@@ -5844,8 +4947,7 @@ App.prototype.loadLibraries = function(libs, done) |
|
@@ -5844,8 +4947,7 @@ App.prototype.loadLibraries = function(libs, done) |
5844
|
|
4947
|
|
5845
|
checkDone();
|
4948
|
checkDone();
|
5846
|
}
|
4949
|
}
|
5847
|
- else
|
|
|
5848
|
- {
|
4950
|
+ else {
|
5849
|
checkDone();
|
4951
|
checkDone();
|
5850
|
}
|
4952
|
}
|
5851
|
}
|
4953
|
}
|
|
@@ -5857,32 +4959,25 @@ App.prototype.loadLibraries = function(libs, done) |
|
@@ -5857,32 +4959,25 @@ App.prototype.loadLibraries = function(libs, done) |
5857
|
* @param {number} dx X-coordinate of the translation.
|
4959
|
* @param {number} dx X-coordinate of the translation.
|
5858
|
* @param {number} dy Y-coordinate of the translation.
|
4960
|
* @param {number} dy Y-coordinate of the translation.
|
5859
|
*/
|
4961
|
*/
|
5860
|
-App.prototype.updateButtonContainer = function()
|
|
|
5861
|
-{
|
|
|
5862
|
- if (this.buttonContainer != null)
|
|
|
5863
|
- {
|
4962
|
+App.prototype.updateButtonContainer = function () {
|
|
|
4963
|
+ if (this.buttonContainer != null) {
|
5864
|
var file = this.getCurrentFile();
|
4964
|
var file = this.getCurrentFile();
|
5865
|
|
4965
|
|
5866
|
- if (urlParams['embed'] == '1')
|
|
|
5867
|
- {
|
|
|
5868
|
- if (uiTheme == 'atlas' || urlParams['atlas'] == '1')
|
|
|
5869
|
- {
|
4966
|
+ if (urlParams['embed'] == '1') {
|
|
|
4967
|
+ if (uiTheme == 'atlas' || urlParams['atlas'] == '1') {
|
5870
|
this.buttonContainer.style.paddingRight = '12px';
|
4968
|
this.buttonContainer.style.paddingRight = '12px';
|
5871
|
this.buttonContainer.style.paddingTop = '6px';
|
4969
|
this.buttonContainer.style.paddingTop = '6px';
|
5872
|
- this.buttonContainer.style.right = urlParams['noLangIcon'] == '1'? '0' : '25px';
|
4970
|
+ this.buttonContainer.style.right = urlParams['noLangIcon'] == '1' ? '0' : '25px';
|
5873
|
}
|
4971
|
}
|
5874
|
- else if (uiTheme != 'min')
|
|
|
5875
|
- {
|
4972
|
+ else if (uiTheme != 'min') {
|
5876
|
this.buttonContainer.style.paddingRight = '38px';
|
4973
|
this.buttonContainer.style.paddingRight = '38px';
|
5877
|
this.buttonContainer.style.paddingTop = '6px';
|
4974
|
this.buttonContainer.style.paddingTop = '6px';
|
5878
|
}
|
4975
|
}
|
5879
|
}
|
4976
|
}
|
5880
|
|
4977
|
|
5881
|
// Comments
|
4978
|
// Comments
|
5882
|
- if (this.commentsSupported() && urlParams['sketch'] != '1')
|
|
|
5883
|
- {
|
|
|
5884
|
- if (this.commentButton == null)
|
|
|
5885
|
- {
|
4979
|
+ if (this.commentsSupported() && urlParams['sketch'] != '1') {
|
|
|
4980
|
+ if (this.commentButton == null) {
|
5886
|
this.commentButton = document.createElement('a');
|
4981
|
this.commentButton = document.createElement('a');
|
5887
|
this.commentButton.setAttribute('title', mxResources.get('comments'));
|
4982
|
this.commentButton.setAttribute('title', mxResources.get('comments'));
|
5888
|
this.commentButton.className = 'geToolbarButton';
|
4983
|
this.commentButton.className = 'geToolbarButton';
|
|
@@ -5891,39 +4986,32 @@ App.prototype.updateButtonContainer = function() |
|
@@ -5891,39 +4986,32 @@ App.prototype.updateButtonContainer = function() |
5891
|
'background-position:center center;background-repeat:no-repeat;background-image:' +
|
4986
|
'background-position:center center;background-repeat:no-repeat;background-image:' +
|
5892
|
'url(' + Editor.commentImage + ');';
|
4987
|
'url(' + Editor.commentImage + ');';
|
5893
|
|
4988
|
|
5894
|
- if (uiTheme == 'atlas')
|
|
|
5895
|
- {
|
4989
|
+ if (uiTheme == 'atlas') {
|
5896
|
this.commentButton.style.marginRight = '10px';
|
4990
|
this.commentButton.style.marginRight = '10px';
|
5897
|
this.commentButton.style.marginTop = '-3px';
|
4991
|
this.commentButton.style.marginTop = '-3px';
|
5898
|
}
|
4992
|
}
|
5899
|
- else if (uiTheme == 'min')
|
|
|
5900
|
- {
|
4993
|
+ else if (uiTheme == 'min') {
|
5901
|
this.commentButton.style.marginTop = '1px';
|
4994
|
this.commentButton.style.marginTop = '1px';
|
5902
|
}
|
4995
|
}
|
5903
|
- else if (urlParams['atlas'] == '1')
|
|
|
5904
|
- {
|
4996
|
+ else if (urlParams['atlas'] == '1') {
|
5905
|
this.commentButton.style.marginTop = '-2px';
|
4997
|
this.commentButton.style.marginTop = '-2px';
|
5906
|
}
|
4998
|
}
|
5907
|
- else
|
|
|
5908
|
- {
|
4999
|
+ else {
|
5909
|
this.commentButton.style.marginTop = '-5px';
|
5000
|
this.commentButton.style.marginTop = '-5px';
|
5910
|
}
|
5001
|
}
|
5911
|
|
5002
|
|
5912
|
- mxEvent.addListener(this.commentButton, 'click', mxUtils.bind(this, function()
|
|
|
5913
|
- {
|
5003
|
+ mxEvent.addListener(this.commentButton, 'click', mxUtils.bind(this, function () {
|
5914
|
this.actions.get('comments').funct();
|
5004
|
this.actions.get('comments').funct();
|
5915
|
}));
|
5005
|
}));
|
5916
|
|
5006
|
|
5917
|
this.buttonContainer.appendChild(this.commentButton);
|
5007
|
this.buttonContainer.appendChild(this.commentButton);
|
5918
|
|
5008
|
|
5919
|
- if (uiTheme == 'dark' || uiTheme == 'atlas')
|
|
|
5920
|
- {
|
5009
|
+ if (uiTheme == 'dark' || uiTheme == 'atlas') {
|
5921
|
this.commentButton.style.filter = 'invert(100%)';
|
5010
|
this.commentButton.style.filter = 'invert(100%)';
|
5922
|
}
|
5011
|
}
|
5923
|
}
|
5012
|
}
|
5924
|
}
|
5013
|
}
|
5925
|
- else if (this.commentButton != null)
|
|
|
5926
|
- {
|
5014
|
+ else if (this.commentButton != null) {
|
5927
|
this.commentButton.parentNode.removeChild(this.commentButton);
|
5015
|
this.commentButton.parentNode.removeChild(this.commentButton);
|
5928
|
this.commentButton = null;
|
5016
|
this.commentButton = null;
|
5929
|
}
|
5017
|
}
|
|
@@ -5931,12 +5019,9 @@ App.prototype.updateButtonContainer = function() |
|
@@ -5931,12 +5019,9 @@ App.prototype.updateButtonContainer = function() |
5931
|
// Share
|
5019
|
// Share
|
5932
|
if (urlParams['embed'] != '1' && this.getServiceName() == 'draw.io' &&
|
5020
|
if (urlParams['embed'] != '1' && this.getServiceName() == 'draw.io' &&
|
5933
|
!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp &&
|
5021
|
!mxClient.IS_CHROMEAPP && !EditorUi.isElectronApp &&
|
5934
|
- !this.isOfflineApp())
|
|
|
5935
|
- {
|
|
|
5936
|
- if (file != null)
|
|
|
5937
|
- {
|
|
|
5938
|
- if (this.shareButton == null)
|
|
|
5939
|
- {
|
5022
|
+ !this.isOfflineApp()) {
|
|
|
5023
|
+ if (file != null) {
|
|
|
5024
|
+ if (this.shareButton == null) {
|
5940
|
// TODO thingsKit 锁定 / 解锁 按钮
|
5025
|
// TODO thingsKit 锁定 / 解锁 按钮
|
5941
|
this.lockButton = document.createElement('div');
|
5026
|
this.lockButton = document.createElement('div');
|
5942
|
this.lockButton.className = 'geBtn gePrimaryBtn';
|
5027
|
this.lockButton.className = 'geBtn gePrimaryBtn';
|
|
@@ -5950,11 +5035,10 @@ App.prototype.updateButtonContainer = function() |
|
@@ -5950,11 +5035,10 @@ App.prototype.updateButtonContainer = function() |
5950
|
this.lockButton.style.cssFloat = 'right';
|
5035
|
this.lockButton.style.cssFloat = 'right';
|
5951
|
this.lockButton.setAttribute('title', '锁定 / 解锁');
|
5036
|
this.lockButton.setAttribute('title', '锁定 / 解锁');
|
5952
|
mxUtils.write(this.lockButton, '锁定 / 解锁');
|
5037
|
mxUtils.write(this.lockButton, '锁定 / 解锁');
|
5953
|
- mxEvent.addListener(this.lockButton, 'click', mxUtils.bind(this, function()
|
|
|
5954
|
- {
|
|
|
5955
|
- if (this.actions.actions.lockUnlock.enabled){
|
5038
|
+ mxEvent.addListener(this.lockButton, 'click', mxUtils.bind(this, function () {
|
|
|
5039
|
+ if (this.actions.actions.lockUnlock.enabled) {
|
5956
|
this.actions.actions.lockUnlock.funct()
|
5040
|
this.actions.actions.lockUnlock.funct()
|
5957
|
- }
|
5041
|
+ }
|
5958
|
}));
|
5042
|
}));
|
5959
|
this.buttonContainer.appendChild(this.lockButton);
|
5043
|
this.buttonContainer.appendChild(this.lockButton);
|
5960
|
|
5044
|
|
|
@@ -5971,9 +5055,8 @@ App.prototype.updateButtonContainer = function() |
|
@@ -5971,9 +5055,8 @@ App.prototype.updateButtonContainer = function() |
5971
|
this.shareButton.style.cssFloat = 'right';
|
5055
|
this.shareButton.style.cssFloat = 'right';
|
5972
|
this.shareButton.setAttribute('title', '预览');
|
5056
|
this.shareButton.setAttribute('title', '预览');
|
5973
|
mxUtils.write(this.shareButton, '预览');
|
5057
|
mxUtils.write(this.shareButton, '预览');
|
5974
|
- mxEvent.addListener(this.shareButton, 'click', mxUtils.bind(this, function()
|
|
|
5975
|
- {
|
|
|
5976
|
- const href = window.location.href + '&lightbox=1'
|
5058
|
+ mxEvent.addListener(this.shareButton, 'click', mxUtils.bind(this, function () {
|
|
|
5059
|
+ const href = window.location.href + '&lightbox=1'
|
5977
|
window.open(href)
|
5060
|
window.open(href)
|
5978
|
}));
|
5061
|
}));
|
5979
|
this.buttonContainer.appendChild(this.shareButton);
|
5062
|
this.buttonContainer.appendChild(this.shareButton);
|
|
@@ -5992,8 +5075,7 @@ App.prototype.updateButtonContainer = function() |
|
@@ -5992,8 +5075,7 @@ App.prototype.updateButtonContainer = function() |
5992
|
this.saveButton.setAttribute('title', '保存');
|
5075
|
this.saveButton.setAttribute('title', '保存');
|
5993
|
this.saveButton.setAttribute('id', 'thingskitSaveButton');
|
5076
|
this.saveButton.setAttribute('id', 'thingskitSaveButton');
|
5994
|
mxUtils.write(this.saveButton, '保存');
|
5077
|
mxUtils.write(this.saveButton, '保存');
|
5995
|
- mxEvent.addListener(this.saveButton, 'click', mxUtils.bind(this, function()
|
|
|
5996
|
- {
|
5078
|
+ mxEvent.addListener(this.saveButton, 'click', mxUtils.bind(this, function () {
|
5997
|
this.currentFile.ui.actions.get(
|
5079
|
this.currentFile.ui.actions.get(
|
5998
|
(this.currentFile.mode == null || !this.currentFile.isEditable())
|
5080
|
(this.currentFile.mode == null || !this.currentFile.isEditable())
|
5999
|
? 'saveAs'
|
5081
|
? 'saveAs'
|
|
@@ -6001,7 +5083,7 @@ App.prototype.updateButtonContainer = function() |
|
@@ -6001,7 +5083,7 @@ App.prototype.updateButtonContainer = function() |
6001
|
.funct();
|
5083
|
.funct();
|
6002
|
}));
|
5084
|
}));
|
6003
|
this.buttonContainer.appendChild(this.saveButton);
|
5085
|
this.buttonContainer.appendChild(this.saveButton);
|
6004
|
-
|
5086
|
+
|
6005
|
|
5087
|
|
6006
|
|
5088
|
|
6007
|
// this.shareButton = document.createElement('div');
|
5089
|
// this.shareButton = document.createElement('div');
|
|
@@ -6041,8 +5123,7 @@ App.prototype.updateButtonContainer = function() |
|
@@ -6041,8 +5123,7 @@ App.prototype.updateButtonContainer = function() |
6041
|
// this.buttonContainer.appendChild(this.shareButton);
|
5123
|
// this.buttonContainer.appendChild(this.shareButton);
|
6042
|
}
|
5124
|
}
|
6043
|
}
|
5125
|
}
|
6044
|
- else if (this.shareButton != null)
|
|
|
6045
|
- {
|
5126
|
+ else if (this.shareButton != null) {
|
6046
|
this.shareButton.parentNode.removeChild(this.shareButton);
|
5127
|
this.shareButton.parentNode.removeChild(this.shareButton);
|
6047
|
this.shareButton = null;
|
5128
|
this.shareButton = null;
|
6048
|
this.saveButton.parentNode.removeChild(this.saveButton);
|
5129
|
this.saveButton.parentNode.removeChild(this.saveButton);
|
|
@@ -6063,17 +5144,15 @@ App.prototype.updateButtonContainer = function() |
|
@@ -6063,17 +5144,15 @@ App.prototype.updateButtonContainer = function() |
6063
|
}
|
5144
|
}
|
6064
|
} else {
|
5145
|
} else {
|
6065
|
if (!hasSavePermission()) {
|
5146
|
if (!hasSavePermission()) {
|
6066
|
- var el = document.getElementById('thingskitSaveButton')
|
5147
|
+ var el = document.getElementById('thingskitSaveButton')
|
6067
|
el && el.remove()
|
5148
|
el && el.remove()
|
6068
|
}
|
5149
|
}
|
6069
|
}
|
5150
|
}
|
6070
|
};
|
5151
|
};
|
6071
|
|
5152
|
|
6072
|
|
5153
|
|
6073
|
-App.prototype.fetchAndShowNotification = function(target, subtarget)
|
|
|
6074
|
-{
|
|
|
6075
|
- if (this.fetchingNotif)
|
|
|
6076
|
- {
|
5154
|
+App.prototype.fetchAndShowNotification = function (target, subtarget) {
|
|
|
5155
|
+ if (this.fetchingNotif) {
|
6077
|
return;
|
5156
|
return;
|
6078
|
}
|
5157
|
}
|
6079
|
|
5158
|
|
|
@@ -6081,53 +5160,44 @@ App.prototype.fetchAndShowNotification = function(target, subtarget) |
|
@@ -6081,53 +5160,44 @@ App.prototype.fetchAndShowNotification = function(target, subtarget) |
6081
|
var cachedNotifKey = '.notifCache';
|
5160
|
var cachedNotifKey = '.notifCache';
|
6082
|
var cachedNotif = null;
|
5161
|
var cachedNotif = null;
|
6083
|
|
5162
|
|
6084
|
- var processNotif = mxUtils.bind(this, function(notifs)
|
|
|
6085
|
- {
|
|
|
6086
|
- notifs = notifs.filter(function(notif)
|
|
|
6087
|
- {
|
5163
|
+ var processNotif = mxUtils.bind(this, function (notifs) {
|
|
|
5164
|
+ notifs = notifs.filter(function (notif) {
|
6088
|
return !notif.targets || notif.targets.indexOf(target) > -1 ||
|
5165
|
return !notif.targets || notif.targets.indexOf(target) > -1 ||
|
6089
|
- (subtarget != null && notif.targets.indexOf(subtarget) > -1);
|
5166
|
+ (subtarget != null && notif.targets.indexOf(subtarget) > -1);
|
6090
|
});
|
5167
|
});
|
6091
|
|
5168
|
|
6092
|
var lsReadFlag = target + 'NotifReadTS';
|
5169
|
var lsReadFlag = target + 'NotifReadTS';
|
6093
|
var lastRead = (localStorage != null) ? parseInt(localStorage.getItem(lsReadFlag)) : true;
|
5170
|
var lastRead = (localStorage != null) ? parseInt(localStorage.getItem(lsReadFlag)) : true;
|
6094
|
|
5171
|
|
6095
|
- for (var i = 0; i < notifs.length; i++)
|
|
|
6096
|
- {
|
5172
|
+ for (var i = 0; i < notifs.length; i++) {
|
6097
|
notifs[i].isNew = (!lastRead || notifs[i].timestamp > lastRead);
|
5173
|
notifs[i].isNew = (!lastRead || notifs[i].timestamp > lastRead);
|
6098
|
}
|
5174
|
}
|
6099
|
|
5175
|
|
6100
|
this.showNotification(notifs, lsReadFlag);
|
5176
|
this.showNotification(notifs, lsReadFlag);
|
6101
|
});
|
5177
|
});
|
6102
|
|
5178
|
|
6103
|
- try
|
|
|
6104
|
- {
|
|
|
6105
|
- if (localStorage != null)
|
|
|
6106
|
- {
|
5179
|
+ try {
|
|
|
5180
|
+ if (localStorage != null) {
|
6107
|
cachedNotif = JSON.parse(localStorage.getItem(cachedNotifKey));
|
5181
|
cachedNotif = JSON.parse(localStorage.getItem(cachedNotifKey));
|
6108
|
}
|
5182
|
}
|
6109
|
}
|
5183
|
}
|
6110
|
- catch(e) {} //Ignore
|
5184
|
+ catch (e) { } //Ignore
|
6111
|
|
5185
|
|
6112
|
if (cachedNotif == null || cachedNotif.ts + 24 * 60 * 60 * 1000 < Date.now()) //Cache for one day
|
5186
|
if (cachedNotif == null || cachedNotif.ts + 24 * 60 * 60 * 1000 < Date.now()) //Cache for one day
|
6113
|
{
|
5187
|
{
|
6114
|
this.fetchingNotif = true;
|
5188
|
this.fetchingNotif = true;
|
6115
|
//Fetch all notifications and store them, then filter client-side
|
5189
|
//Fetch all notifications and store them, then filter client-side
|
6116
|
- mxUtils.get(NOTIFICATIONS_URL, mxUtils.bind(this, function(req)
|
|
|
6117
|
- {
|
|
|
6118
|
- if (req.getStatus() >= 200 && req.getStatus() <= 299)
|
|
|
6119
|
- {
|
|
|
6120
|
- var notifs = JSON.parse(req.getText());
|
5190
|
+ mxUtils.get(NOTIFICATIONS_URL, mxUtils.bind(this, function (req) {
|
|
|
5191
|
+ if (req.getStatus() >= 200 && req.getStatus() <= 299) {
|
|
|
5192
|
+ var notifs = JSON.parse(req.getText());
|
6121
|
|
5193
|
|
6122
|
//Process and sort
|
5194
|
//Process and sort
|
6123
|
- notifs.sort(function(a, b)
|
|
|
6124
|
- {
|
5195
|
+ notifs.sort(function (a, b) {
|
6125
|
return b.timestamp - a.timestamp;
|
5196
|
return b.timestamp - a.timestamp;
|
6126
|
});
|
5197
|
});
|
6127
|
|
5198
|
|
6128
|
- if (isLocalStorage)
|
|
|
6129
|
- {
|
|
|
6130
|
- localStorage.setItem(cachedNotifKey, JSON.stringify({ts: Date.now(), notifs: notifs}));
|
5199
|
+ if (isLocalStorage) {
|
|
|
5200
|
+ localStorage.setItem(cachedNotifKey, JSON.stringify({ ts: Date.now(), notifs: notifs }));
|
6131
|
}
|
5201
|
}
|
6132
|
|
5202
|
|
6133
|
this.fetchingNotif = false;
|
5203
|
this.fetchingNotif = false;
|
|
@@ -6135,33 +5205,26 @@ App.prototype.fetchAndShowNotification = function(target, subtarget) |
|
@@ -6135,33 +5205,26 @@ App.prototype.fetchAndShowNotification = function(target, subtarget) |
6135
|
}
|
5205
|
}
|
6136
|
}));
|
5206
|
}));
|
6137
|
}
|
5207
|
}
|
6138
|
- else
|
|
|
6139
|
- {
|
5208
|
+ else {
|
6140
|
processNotif(cachedNotif.notifs);
|
5209
|
processNotif(cachedNotif.notifs);
|
6141
|
}
|
5210
|
}
|
6142
|
};
|
5211
|
};
|
6143
|
|
5212
|
|
6144
|
-App.prototype.showNotification = function(notifs, lsReadFlag)
|
|
|
6145
|
-{
|
5213
|
+App.prototype.showNotification = function (notifs, lsReadFlag) {
|
6146
|
var newCount = notifs.length;
|
5214
|
var newCount = notifs.length;
|
6147
|
|
5215
|
|
6148
|
- if (uiTheme == 'min')
|
|
|
6149
|
- {
|
5216
|
+ if (uiTheme == 'min') {
|
6150
|
newCount = 0;
|
5217
|
newCount = 0;
|
6151
|
|
5218
|
|
6152
|
- for (var i = 0; i < notifs.length; i++)
|
|
|
6153
|
- {
|
|
|
6154
|
- if (notifs[i].isNew)
|
|
|
6155
|
- {
|
5219
|
+ for (var i = 0; i < notifs.length; i++) {
|
|
|
5220
|
+ if (notifs[i].isNew) {
|
6156
|
newCount++;
|
5221
|
newCount++;
|
6157
|
}
|
5222
|
}
|
6158
|
}
|
5223
|
}
|
6159
|
}
|
5224
|
}
|
6160
|
|
5225
|
|
6161
|
- if (newCount == 0)
|
|
|
6162
|
- {
|
|
|
6163
|
- if (this.notificationBtn != null)
|
|
|
6164
|
- {
|
5226
|
+ if (newCount == 0) {
|
|
|
5227
|
+ if (this.notificationBtn != null) {
|
6165
|
this.notificationBtn.style.display = 'none';
|
5228
|
this.notificationBtn.style.display = 'none';
|
6166
|
this.editor.fireEvent(new mxEventObject('statusChanged'));
|
5229
|
this.editor.fireEvent(new mxEventObject('statusChanged'));
|
6167
|
}
|
5230
|
}
|
|
@@ -6169,51 +5232,43 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
|
@@ -6169,51 +5232,43 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
6169
|
return;
|
5232
|
return;
|
6170
|
}
|
5233
|
}
|
6171
|
|
5234
|
|
6172
|
- function shouldAnimate(newNotif)
|
|
|
6173
|
- {
|
5235
|
+ function shouldAnimate(newNotif) {
|
6174
|
var countEl = document.querySelector('.geNotification-count');
|
5236
|
var countEl = document.querySelector('.geNotification-count');
|
6175
|
|
5237
|
|
6176
|
- if (countEl == null)
|
|
|
6177
|
- {
|
5238
|
+ if (countEl == null) {
|
6178
|
return;
|
5239
|
return;
|
6179
|
}
|
5240
|
}
|
6180
|
|
5241
|
|
6181
|
countEl.innerHTML = newNotif;
|
5242
|
countEl.innerHTML = newNotif;
|
6182
|
- countEl.style.display = newNotif == 0? 'none' : '';
|
5243
|
+ countEl.style.display = newNotif == 0 ? 'none' : '';
|
6183
|
var notifBell = document.querySelector('.geNotification-bell');
|
5244
|
var notifBell = document.querySelector('.geNotification-bell');
|
6184
|
- notifBell.style.animation = newNotif == 0? 'none' : '';
|
|
|
6185
|
- notifBell.className = 'geNotification-bell' + (newNotif == 0? ' geNotification-bellOff' : '');
|
|
|
6186
|
- document.querySelector('.geBell-rad').style.animation = newNotif == 0? 'none' : '';
|
5245
|
+ notifBell.style.animation = newNotif == 0 ? 'none' : '';
|
|
|
5246
|
+ notifBell.className = 'geNotification-bell' + (newNotif == 0 ? ' geNotification-bellOff' : '');
|
|
|
5247
|
+ document.querySelector('.geBell-rad').style.animation = newNotif == 0 ? 'none' : '';
|
6187
|
}
|
5248
|
}
|
6188
|
|
5249
|
|
6189
|
- var markAllAsRead = mxUtils.bind(this, function()
|
|
|
6190
|
- {
|
5250
|
+ var markAllAsRead = mxUtils.bind(this, function () {
|
6191
|
this.notificationWin.style.display = 'none';
|
5251
|
this.notificationWin.style.display = 'none';
|
6192
|
var unread = this.notificationWin.querySelectorAll('.circle.active');
|
5252
|
var unread = this.notificationWin.querySelectorAll('.circle.active');
|
6193
|
|
5253
|
|
6194
|
- for (var i = 0; i < unread.length; i++)
|
|
|
6195
|
- {
|
5254
|
+ for (var i = 0; i < unread.length; i++) {
|
6196
|
unread[i].className = 'circle';
|
5255
|
unread[i].className = 'circle';
|
6197
|
}
|
5256
|
}
|
6198
|
|
5257
|
|
6199
|
- if (isLocalStorage && notifs[0])
|
|
|
6200
|
- {
|
5258
|
+ if (isLocalStorage && notifs[0]) {
|
6201
|
localStorage.setItem(lsReadFlag, notifs[0].timestamp);
|
5259
|
localStorage.setItem(lsReadFlag, notifs[0].timestamp);
|
6202
|
}
|
5260
|
}
|
6203
|
});
|
5261
|
});
|
6204
|
|
5262
|
|
6205
|
- if (this.notificationBtn == null)
|
|
|
6206
|
- {
|
5263
|
+ if (this.notificationBtn == null) {
|
6207
|
this.notificationBtn = document.createElement('div');
|
5264
|
this.notificationBtn = document.createElement('div');
|
6208
|
this.notificationBtn.className = 'geNotification-box';
|
5265
|
this.notificationBtn.className = 'geNotification-box';
|
6209
|
|
5266
|
|
6210
|
- if (uiTheme == 'min')
|
|
|
6211
|
- {
|
5267
|
+ if (uiTheme == 'min') {
|
6212
|
this.notificationBtn.style.width = '30px';
|
5268
|
this.notificationBtn.style.width = '30px';
|
6213
|
this.notificationBtn.style.top = '4px';
|
5269
|
this.notificationBtn.style.top = '4px';
|
6214
|
}
|
5270
|
}
|
6215
|
- else if (urlParams['atlas'] == '1')
|
|
|
6216
|
- {
|
5271
|
+ else if (urlParams['atlas'] == '1') {
|
6217
|
this.notificationBtn.style.top = '2px';
|
5272
|
this.notificationBtn.style.top = '2px';
|
6218
|
}
|
5273
|
}
|
6219
|
|
5274
|
|
|
@@ -6223,7 +5278,7 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
|
@@ -6223,7 +5278,7 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
6223
|
|
5278
|
|
6224
|
var notifBell = document.createElement('div');
|
5279
|
var notifBell = document.createElement('div');
|
6225
|
notifBell.className = 'geNotification-bell';
|
5280
|
notifBell.className = 'geNotification-bell';
|
6226
|
- notifBell.style.opacity = uiTheme == 'min'? '0.5' : '';
|
5281
|
+ notifBell.style.opacity = uiTheme == 'min' ? '0.5' : '';
|
6227
|
var bellPart = document.createElement('span');
|
5282
|
var bellPart = document.createElement('span');
|
6228
|
bellPart.className = 'geBell-top';
|
5283
|
bellPart.className = 'geBell-top';
|
6229
|
notifBell.appendChild(bellPart);
|
5284
|
notifBell.appendChild(bellPart);
|
|
@@ -6266,10 +5321,8 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
|
@@ -6266,10 +5321,8 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
6266
|
winBody.appendChild(notifList);
|
5321
|
winBody.appendChild(notifList);
|
6267
|
this.notificationWin.appendChild(winBody);
|
5322
|
this.notificationWin.appendChild(winBody);
|
6268
|
|
5323
|
|
6269
|
- mxEvent.addListener(this.notificationBtn, 'click', mxUtils.bind(this, function()
|
|
|
6270
|
- {
|
|
|
6271
|
- if (this.notificationWin.style.display == 'none')
|
|
|
6272
|
- {
|
5324
|
+ mxEvent.addListener(this.notificationBtn, 'click', mxUtils.bind(this, function () {
|
|
|
5325
|
+ if (this.notificationWin.style.display == 'none') {
|
6273
|
this.notificationWin.style.display = '';
|
5326
|
this.notificationWin.style.display = '';
|
6274
|
document.querySelector('.notifications').scrollTop = 0;
|
5327
|
document.querySelector('.notifications').scrollTop = 0;
|
6275
|
var r = this.notificationBtn.getBoundingClientRect();
|
5328
|
var r = this.notificationBtn.getBoundingClientRect();
|
|
@@ -6277,36 +5330,29 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
|
@@ -6277,36 +5330,29 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
6277
|
this.notificationWin.style.left = (r.right - this.notificationWin.clientWidth) + 'px';
|
5330
|
this.notificationWin.style.left = (r.right - this.notificationWin.clientWidth) + 'px';
|
6278
|
shouldAnimate(0); //Stop animation once notifications are open
|
5331
|
shouldAnimate(0); //Stop animation once notifications are open
|
6279
|
}
|
5332
|
}
|
6280
|
- else
|
|
|
6281
|
- {
|
5333
|
+ else {
|
6282
|
markAllAsRead();
|
5334
|
markAllAsRead();
|
6283
|
}
|
5335
|
}
|
6284
|
}));
|
5336
|
}));
|
6285
|
|
5337
|
|
6286
|
mxEvent.addListener(winClose, 'click', markAllAsRead);
|
5338
|
mxEvent.addListener(winClose, 'click', markAllAsRead);
|
6287
|
}
|
5339
|
}
|
6288
|
- else
|
|
|
6289
|
- {
|
5340
|
+ else {
|
6290
|
this.notificationBtn.style.display = ''; //In case it was hidden
|
5341
|
this.notificationBtn.style.display = ''; //In case it was hidden
|
6291
|
}
|
5342
|
}
|
6292
|
|
5343
|
|
6293
|
var newNotif = 0;
|
5344
|
var newNotif = 0;
|
6294
|
var notifListEl = document.getElementById('geNotifList');
|
5345
|
var notifListEl = document.getElementById('geNotifList');
|
6295
|
|
5346
|
|
6296
|
- if (notifListEl == null)
|
|
|
6297
|
- {
|
5347
|
+ if (notifListEl == null) {
|
6298
|
return; //This shouldn't happen and no meaning of continuing
|
5348
|
return; //This shouldn't happen and no meaning of continuing
|
6299
|
}
|
5349
|
}
|
6300
|
- else
|
|
|
6301
|
- {
|
5350
|
+ else {
|
6302
|
notifListEl.innerHTML = '<div class="line"></div>';
|
5351
|
notifListEl.innerHTML = '<div class="line"></div>';
|
6303
|
|
5352
|
|
6304
|
- for (var i = 0; i < notifs.length; i++)
|
|
|
6305
|
- {
|
|
|
6306
|
- (function(editorUi, notif)
|
|
|
6307
|
- {
|
|
|
6308
|
- if (notif.isNew)
|
|
|
6309
|
- {
|
5353
|
+ for (var i = 0; i < notifs.length; i++) {
|
|
|
5354
|
+ (function (editorUi, notif) {
|
|
|
5355
|
+ if (notif.isNew) {
|
6310
|
newNotif++;
|
5356
|
newNotif++;
|
6311
|
}
|
5357
|
}
|
6312
|
|
5358
|
|
|
@@ -6315,18 +5361,15 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
|
@@ -6315,18 +5361,15 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
6315
|
var ts = new Date(notif.timestamp);
|
5361
|
var ts = new Date(notif.timestamp);
|
6316
|
var str = editorUi.timeSince(ts);
|
5362
|
var str = editorUi.timeSince(ts);
|
6317
|
|
5363
|
|
6318
|
- if (str == null)
|
|
|
6319
|
- {
|
5364
|
+ if (str == null) {
|
6320
|
str = mxResources.get('lessThanAMinute');
|
5365
|
str = mxResources.get('lessThanAMinute');
|
6321
|
}
|
5366
|
}
|
6322
|
|
5367
|
|
6323
|
- notifEl.innerHTML = '<div class="circle' + (notif.isNew? ' active' : '') + '"></div><span class="time">' +
|
|
|
6324
|
- mxUtils.htmlEntities(mxResources.get('timeAgo', [str], '{1} ago')) + '</span>' +
|
|
|
6325
|
- '<p>' + mxUtils.htmlEntities(notif.content) + '</p>';
|
|
|
6326
|
- if (notif.link)
|
|
|
6327
|
- {
|
|
|
6328
|
- mxEvent.addListener(notifEl, 'click', function()
|
|
|
6329
|
- {
|
5368
|
+ notifEl.innerHTML = '<div class="circle' + (notif.isNew ? ' active' : '') + '"></div><span class="time">' +
|
|
|
5369
|
+ mxUtils.htmlEntities(mxResources.get('timeAgo', [str], '{1} ago')) + '</span>' +
|
|
|
5370
|
+ '<p>' + mxUtils.htmlEntities(notif.content) + '</p>';
|
|
|
5371
|
+ if (notif.link) {
|
|
|
5372
|
+ mxEvent.addListener(notifEl, 'click', function () {
|
6330
|
window.open(notif.link, 'notifWin');
|
5373
|
window.open(notif.link, 'notifWin');
|
6331
|
});
|
5374
|
});
|
6332
|
}
|
5375
|
}
|
|
@@ -6345,34 +5388,26 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
|
@@ -6345,34 +5388,26 @@ App.prototype.showNotification = function(notifs, lsReadFlag) |
6345
|
* @param {number} dx X-coordinate of the translation.
|
5388
|
* @param {number} dx X-coordinate of the translation.
|
6346
|
* @param {number} dy Y-coordinate of the translation.
|
5389
|
* @param {number} dy Y-coordinate of the translation.
|
6347
|
*/
|
5390
|
*/
|
6348
|
-App.prototype.save = function(name, done)
|
|
|
6349
|
-{
|
5391
|
+App.prototype.save = function (name, done) {
|
6350
|
var file = this.getCurrentFile();
|
5392
|
var file = this.getCurrentFile();
|
6351
|
- if (file != null && this.spinner.spin(document.body, mxResources.get('saving')))
|
|
|
6352
|
- {
|
5393
|
+ if (file != null && this.spinner.spin(document.body, mxResources.get('saving'))) {
|
6353
|
this.editor.setStatus('');
|
5394
|
this.editor.setStatus('');
|
6354
|
|
5395
|
|
6355
|
- if (this.editor.graph.isEditing())
|
|
|
6356
|
- {
|
5396
|
+ if (this.editor.graph.isEditing()) {
|
6357
|
this.editor.graph.stopEditing();
|
5397
|
this.editor.graph.stopEditing();
|
6358
|
}
|
5398
|
}
|
6359
|
|
5399
|
|
6360
|
- var success = mxUtils.bind(this, function()
|
|
|
6361
|
- {
|
5400
|
+ var success = mxUtils.bind(this, function () {
|
6362
|
file.handleFileSuccess(true);
|
5401
|
file.handleFileSuccess(true);
|
6363
|
|
5402
|
|
6364
|
- if (done != null)
|
|
|
6365
|
- {
|
5403
|
+ if (done != null) {
|
6366
|
done();
|
5404
|
done();
|
6367
|
}
|
5405
|
}
|
6368
|
});
|
5406
|
});
|
6369
|
|
5407
|
|
6370
|
- var error = mxUtils.bind(this, function(err)
|
|
|
6371
|
- {
|
|
|
6372
|
- if (file.isModified())
|
|
|
6373
|
- {
|
|
|
6374
|
- Editor.addRetryToError(err, mxUtils.bind(this, function()
|
|
|
6375
|
- {
|
5408
|
+ var error = mxUtils.bind(this, function (err) {
|
|
|
5409
|
+ if (file.isModified()) {
|
|
|
5410
|
+ Editor.addRetryToError(err, mxUtils.bind(this, function () {
|
6376
|
this.save(name, done);
|
5411
|
this.save(name, done);
|
6377
|
}));
|
5412
|
}));
|
6378
|
}
|
5413
|
}
|
|
@@ -6380,21 +5415,17 @@ App.prototype.save = function(name, done) |
|
@@ -6380,21 +5415,17 @@ App.prototype.save = function(name, done) |
6380
|
file.handleFileError(err, err == null || err.name != 'AbortError');
|
5415
|
file.handleFileError(err, err == null || err.name != 'AbortError');
|
6381
|
});
|
5416
|
});
|
6382
|
|
5417
|
|
6383
|
- try
|
|
|
6384
|
- {
|
|
|
6385
|
- if (name == file.getTitle())
|
|
|
6386
|
- {
|
5418
|
+ try {
|
|
|
5419
|
+ if (name == file.getTitle()) {
|
6387
|
file.save(true, success, error);
|
5420
|
file.save(true, success, error);
|
6388
|
}
|
5421
|
}
|
6389
|
- else
|
|
|
6390
|
- {
|
5422
|
+ else {
|
6391
|
file.saveAs(name, success, error)
|
5423
|
file.saveAs(name, success, error)
|
6392
|
}
|
5424
|
}
|
6393
|
|
5425
|
|
6394
|
- console.log('file',file)
|
5426
|
+ console.log('file', file)
|
6395
|
}
|
5427
|
}
|
6396
|
- catch (err)
|
|
|
6397
|
- {
|
5428
|
+ catch (err) {
|
6398
|
error(err);
|
5429
|
error(err);
|
6399
|
}
|
5430
|
}
|
6400
|
}
|
5431
|
}
|
|
@@ -6405,24 +5436,19 @@ App.prototype.save = function(name, done) |
|
@@ -6405,24 +5436,19 @@ App.prototype.save = function(name, done) |
6405
|
* if a valid folder was chosen for a mode that supports it. No callback
|
5436
|
* if a valid folder was chosen for a mode that supports it. No callback
|
6406
|
* is made if no folder was chosen for a mode that supports it.
|
5437
|
* is made if no folder was chosen for a mode that supports it.
|
6407
|
*/
|
5438
|
*/
|
6408
|
-App.prototype.pickFolder = function(mode, fn, enabled, direct, force)
|
|
|
6409
|
-{
|
5439
|
+App.prototype.pickFolder = function (mode, fn, enabled, direct, force) {
|
6410
|
enabled = (enabled != null) ? enabled : true;
|
5440
|
enabled = (enabled != null) ? enabled : true;
|
6411
|
var resume = this.spinner.pause();
|
5441
|
var resume = this.spinner.pause();
|
6412
|
|
5442
|
|
6413
|
- if (enabled && mode == App.MODE_GOOGLE && this.drive != null)
|
|
|
6414
|
- {
|
5443
|
+ if (enabled && mode == App.MODE_GOOGLE && this.drive != null) {
|
6415
|
// Shows a save dialog
|
5444
|
// Shows a save dialog
|
6416
|
- this.drive.pickFolder(mxUtils.bind(this, function(evt)
|
|
|
6417
|
- {
|
5445
|
+ this.drive.pickFolder(mxUtils.bind(this, function (evt) {
|
6418
|
resume();
|
5446
|
resume();
|
6419
|
|
5447
|
|
6420
|
- if (evt.action == google.picker.Action.PICKED)
|
|
|
6421
|
- {
|
5448
|
+ if (evt.action == google.picker.Action.PICKED) {
|
6422
|
var folderId = null;
|
5449
|
var folderId = null;
|
6423
|
|
5450
|
|
6424
|
- if (evt.docs != null && evt.docs.length > 0 && evt.docs[0].type == 'folder')
|
|
|
6425
|
- {
|
5451
|
+ if (evt.docs != null && evt.docs.length > 0 && evt.docs[0].type == 'folder') {
|
6426
|
folderId = evt.docs[0].id;
|
5452
|
folderId = evt.docs[0].id;
|
6427
|
}
|
5453
|
}
|
6428
|
|
5454
|
|
|
@@ -6430,46 +5456,36 @@ App.prototype.pickFolder = function(mode, fn, enabled, direct, force) |
|
@@ -6430,46 +5456,36 @@ App.prototype.pickFolder = function(mode, fn, enabled, direct, force) |
6430
|
}
|
5456
|
}
|
6431
|
}), force);
|
5457
|
}), force);
|
6432
|
}
|
5458
|
}
|
6433
|
- else if (enabled && mode == App.MODE_ONEDRIVE && this.oneDrive != null)
|
|
|
6434
|
- {
|
|
|
6435
|
- this.oneDrive.pickFolder(mxUtils.bind(this, function(files)
|
|
|
6436
|
- {
|
5459
|
+ else if (enabled && mode == App.MODE_ONEDRIVE && this.oneDrive != null) {
|
|
|
5460
|
+ this.oneDrive.pickFolder(mxUtils.bind(this, function (files) {
|
6437
|
var folderId = null;
|
5461
|
var folderId = null;
|
6438
|
resume();
|
5462
|
resume();
|
6439
|
|
5463
|
|
6440
|
- if (files != null && files.value != null && files.value.length > 0)
|
|
|
6441
|
- {
|
5464
|
+ if (files != null && files.value != null && files.value.length > 0) {
|
6442
|
folderId = OneDriveFile.prototype.getIdOf(files.value[0]);
|
5465
|
folderId = OneDriveFile.prototype.getIdOf(files.value[0]);
|
6443
|
- fn(folderId);
|
5466
|
+ fn(folderId);
|
6444
|
}
|
5467
|
}
|
6445
|
}), direct);
|
5468
|
}), direct);
|
6446
|
}
|
5469
|
}
|
6447
|
- else if (enabled && mode == App.MODE_GITHUB && this.gitHub != null)
|
|
|
6448
|
- {
|
|
|
6449
|
- this.gitHub.pickFolder(mxUtils.bind(this, function(folderPath)
|
|
|
6450
|
- {
|
5470
|
+ else if (enabled && mode == App.MODE_GITHUB && this.gitHub != null) {
|
|
|
5471
|
+ this.gitHub.pickFolder(mxUtils.bind(this, function (folderPath) {
|
6451
|
resume();
|
5472
|
resume();
|
6452
|
fn(folderPath);
|
5473
|
fn(folderPath);
|
6453
|
}));
|
5474
|
}));
|
6454
|
}
|
5475
|
}
|
6455
|
- else if (enabled && mode == App.MODE_GITLAB && this.gitLab != null)
|
|
|
6456
|
- {
|
|
|
6457
|
- this.gitLab.pickFolder(mxUtils.bind(this, function(folderPath)
|
|
|
6458
|
- {
|
5476
|
+ else if (enabled && mode == App.MODE_GITLAB && this.gitLab != null) {
|
|
|
5477
|
+ this.gitLab.pickFolder(mxUtils.bind(this, function (folderPath) {
|
6459
|
resume();
|
5478
|
resume();
|
6460
|
fn(folderPath);
|
5479
|
fn(folderPath);
|
6461
|
}));
|
5480
|
}));
|
6462
|
}
|
5481
|
}
|
6463
|
- else if (enabled && mode == App.MODE_TRELLO && this.trello != null)
|
|
|
6464
|
- {
|
|
|
6465
|
- this.trello.pickFolder(mxUtils.bind(this, function(cardId)
|
|
|
6466
|
- {
|
5482
|
+ else if (enabled && mode == App.MODE_TRELLO && this.trello != null) {
|
|
|
5483
|
+ this.trello.pickFolder(mxUtils.bind(this, function (cardId) {
|
6467
|
resume();
|
5484
|
resume();
|
6468
|
fn(cardId);
|
5485
|
fn(cardId);
|
6469
|
}));
|
5486
|
}));
|
6470
|
}
|
5487
|
}
|
6471
|
- else
|
|
|
6472
|
- {
|
5488
|
+ else {
|
6473
|
EditorUi.prototype.pickFolder.apply(this, arguments);
|
5489
|
EditorUi.prototype.pickFolder.apply(this, arguments);
|
6474
|
}
|
5490
|
}
|
6475
|
};
|
5491
|
};
|
|
@@ -6477,136 +5493,107 @@ App.prototype.pickFolder = function(mode, fn, enabled, direct, force) |
|
@@ -6477,136 +5493,107 @@ App.prototype.pickFolder = function(mode, fn, enabled, direct, force) |
6477
|
/**
|
5493
|
/**
|
6478
|
*
|
5494
|
*
|
6479
|
*/
|
5495
|
*/
|
6480
|
-App.prototype.exportFile = function(data, filename, mimeType, base64Encoded, mode, folderId)
|
|
|
6481
|
-{
|
|
|
6482
|
- if (mode == App.MODE_DROPBOX)
|
|
|
6483
|
- {
|
|
|
6484
|
- if (this.dropbox != null && this.spinner.spin(document.body, mxResources.get('saving')))
|
|
|
6485
|
- {
|
5496
|
+App.prototype.exportFile = function (data, filename, mimeType, base64Encoded, mode, folderId) {
|
|
|
5497
|
+ if (mode == App.MODE_DROPBOX) {
|
|
|
5498
|
+ if (this.dropbox != null && this.spinner.spin(document.body, mxResources.get('saving'))) {
|
6486
|
// LATER: Add folder picker
|
5499
|
// LATER: Add folder picker
|
6487
|
this.dropbox.insertFile(filename, (base64Encoded) ? this.base64ToBlob(data, mimeType) :
|
5500
|
this.dropbox.insertFile(filename, (base64Encoded) ? this.base64ToBlob(data, mimeType) :
|
6488
|
- data, mxUtils.bind(this, function()
|
|
|
6489
|
- {
|
|
|
6490
|
- this.spinner.stop();
|
|
|
6491
|
- }), mxUtils.bind(this, function(resp)
|
|
|
6492
|
- {
|
|
|
6493
|
- this.spinner.stop();
|
|
|
6494
|
- this.handleError(resp);
|
|
|
6495
|
- }));
|
5501
|
+ data, mxUtils.bind(this, function () {
|
|
|
5502
|
+ this.spinner.stop();
|
|
|
5503
|
+ }), mxUtils.bind(this, function (resp) {
|
|
|
5504
|
+ this.spinner.stop();
|
|
|
5505
|
+ this.handleError(resp);
|
|
|
5506
|
+ }));
|
6496
|
}
|
5507
|
}
|
6497
|
}
|
5508
|
}
|
6498
|
- else if (mode == App.MODE_GOOGLE)
|
|
|
6499
|
- {
|
|
|
6500
|
- if (this.drive != null && this.spinner.spin(document.body, mxResources.get('saving')))
|
|
|
6501
|
- {
|
|
|
6502
|
- this.drive.insertFile(filename, data, folderId, mxUtils.bind(this, function(resp)
|
|
|
6503
|
- {
|
5509
|
+ else if (mode == App.MODE_GOOGLE) {
|
|
|
5510
|
+ if (this.drive != null && this.spinner.spin(document.body, mxResources.get('saving'))) {
|
|
|
5511
|
+ this.drive.insertFile(filename, data, folderId, mxUtils.bind(this, function (resp) {
|
6504
|
// TODO: Add callback with url param for clickable status message
|
5512
|
// TODO: Add callback with url param for clickable status message
|
6505
|
// "File exported. Click here to open folder."
|
5513
|
// "File exported. Click here to open folder."
|
6506
|
-// this.editor.setStatus('<div class="geStatusMessage">' +
|
|
|
6507
|
-// mxResources.get('saved') + '</div>');
|
|
|
6508
|
-//
|
|
|
6509
|
-// // Installs click handler for opening
|
|
|
6510
|
-// if (this.statusContainer != null)
|
|
|
6511
|
-// {
|
|
|
6512
|
-// var links = this.statusContainer.getElementsByTagName('div');
|
|
|
6513
|
-//
|
|
|
6514
|
-// if (links.length > 0)
|
|
|
6515
|
-// {
|
|
|
6516
|
-// links[0].style.cursor = 'pointer';
|
|
|
6517
|
-//
|
|
|
6518
|
-// mxEvent.addListener(links[0], 'click', mxUtils.bind(this, function()
|
|
|
6519
|
-// {
|
|
|
6520
|
-// if (resp != null && resp.id != null)
|
|
|
6521
|
-// {
|
|
|
6522
|
-// window.open('https://drive.google.com/open?id=' + resp.id);
|
|
|
6523
|
-// }
|
|
|
6524
|
-// }));
|
|
|
6525
|
-// }
|
|
|
6526
|
-// }
|
5514
|
+ // this.editor.setStatus('<div class="geStatusMessage">' +
|
|
|
5515
|
+ // mxResources.get('saved') + '</div>');
|
|
|
5516
|
+ //
|
|
|
5517
|
+ // // Installs click handler for opening
|
|
|
5518
|
+ // if (this.statusContainer != null)
|
|
|
5519
|
+ // {
|
|
|
5520
|
+ // var links = this.statusContainer.getElementsByTagName('div');
|
|
|
5521
|
+ //
|
|
|
5522
|
+ // if (links.length > 0)
|
|
|
5523
|
+ // {
|
|
|
5524
|
+ // links[0].style.cursor = 'pointer';
|
|
|
5525
|
+ //
|
|
|
5526
|
+ // mxEvent.addListener(links[0], 'click', mxUtils.bind(this, function()
|
|
|
5527
|
+ // {
|
|
|
5528
|
+ // if (resp != null && resp.id != null)
|
|
|
5529
|
+ // {
|
|
|
5530
|
+ // window.open('https://drive.google.com/open?id=' + resp.id);
|
|
|
5531
|
+ // }
|
|
|
5532
|
+ // }));
|
|
|
5533
|
+ // }
|
|
|
5534
|
+ // }
|
6527
|
|
5535
|
|
6528
|
this.spinner.stop();
|
5536
|
this.spinner.stop();
|
6529
|
- }), mxUtils.bind(this, function(resp)
|
|
|
6530
|
- {
|
5537
|
+ }), mxUtils.bind(this, function (resp) {
|
6531
|
this.spinner.stop();
|
5538
|
this.spinner.stop();
|
6532
|
this.handleError(resp);
|
5539
|
this.handleError(resp);
|
6533
|
}), mimeType, base64Encoded);
|
5540
|
}), mimeType, base64Encoded);
|
6534
|
}
|
5541
|
}
|
6535
|
}
|
5542
|
}
|
6536
|
- else if (mode == App.MODE_ONEDRIVE)
|
|
|
6537
|
- {
|
|
|
6538
|
- if (this.oneDrive != null && this.spinner.spin(document.body, mxResources.get('saving')))
|
|
|
6539
|
- {
|
5543
|
+ else if (mode == App.MODE_ONEDRIVE) {
|
|
|
5544
|
+ if (this.oneDrive != null && this.spinner.spin(document.body, mxResources.get('saving'))) {
|
6540
|
// KNOWN: OneDrive does not show .svg extension
|
5545
|
// KNOWN: OneDrive does not show .svg extension
|
6541
|
this.oneDrive.insertFile(filename, (base64Encoded) ? this.base64ToBlob(data, mimeType) :
|
5546
|
this.oneDrive.insertFile(filename, (base64Encoded) ? this.base64ToBlob(data, mimeType) :
|
6542
|
- data, mxUtils.bind(this, function()
|
|
|
6543
|
- {
|
|
|
6544
|
- this.spinner.stop();
|
|
|
6545
|
- }), mxUtils.bind(this, function(resp)
|
|
|
6546
|
- {
|
|
|
6547
|
- this.spinner.stop();
|
|
|
6548
|
- this.handleError(resp);
|
|
|
6549
|
- }), false, folderId);
|
5547
|
+ data, mxUtils.bind(this, function () {
|
|
|
5548
|
+ this.spinner.stop();
|
|
|
5549
|
+ }), mxUtils.bind(this, function (resp) {
|
|
|
5550
|
+ this.spinner.stop();
|
|
|
5551
|
+ this.handleError(resp);
|
|
|
5552
|
+ }), false, folderId);
|
6550
|
}
|
5553
|
}
|
6551
|
}
|
5554
|
}
|
6552
|
- else if (mode == App.MODE_GITHUB)
|
|
|
6553
|
- {
|
|
|
6554
|
- if (this.gitHub != null && this.spinner.spin(document.body, mxResources.get('saving')))
|
|
|
6555
|
- {
|
5555
|
+ else if (mode == App.MODE_GITHUB) {
|
|
|
5556
|
+ if (this.gitHub != null && this.spinner.spin(document.body, mxResources.get('saving'))) {
|
6556
|
// Must insert file as library to force the file to be written
|
5557
|
// Must insert file as library to force the file to be written
|
6557
|
- this.gitHub.insertFile(filename, data, mxUtils.bind(this, function()
|
|
|
6558
|
- {
|
5558
|
+ this.gitHub.insertFile(filename, data, mxUtils.bind(this, function () {
|
6559
|
this.spinner.stop();
|
5559
|
this.spinner.stop();
|
6560
|
- }), mxUtils.bind(this, function(resp)
|
|
|
6561
|
- {
|
5560
|
+ }), mxUtils.bind(this, function (resp) {
|
6562
|
this.spinner.stop();
|
5561
|
this.spinner.stop();
|
6563
|
this.handleError(resp);
|
5562
|
this.handleError(resp);
|
6564
|
}), true, folderId, base64Encoded);
|
5563
|
}), true, folderId, base64Encoded);
|
6565
|
}
|
5564
|
}
|
6566
|
}
|
5565
|
}
|
6567
|
- else if (mode == App.MODE_GITLAB)
|
|
|
6568
|
- {
|
|
|
6569
|
- if (this.gitHub != null && this.spinner.spin(document.body, mxResources.get('saving')))
|
|
|
6570
|
- {
|
5566
|
+ else if (mode == App.MODE_GITLAB) {
|
|
|
5567
|
+ if (this.gitHub != null && this.spinner.spin(document.body, mxResources.get('saving'))) {
|
6571
|
// Must insert file as library to force the file to be written
|
5568
|
// Must insert file as library to force the file to be written
|
6572
|
- this.gitLab.insertFile(filename, data, mxUtils.bind(this, function()
|
|
|
6573
|
- {
|
5569
|
+ this.gitLab.insertFile(filename, data, mxUtils.bind(this, function () {
|
6574
|
this.spinner.stop();
|
5570
|
this.spinner.stop();
|
6575
|
- }), mxUtils.bind(this, function(resp)
|
|
|
6576
|
- {
|
5571
|
+ }), mxUtils.bind(this, function (resp) {
|
6577
|
this.spinner.stop();
|
5572
|
this.spinner.stop();
|
6578
|
this.handleError(resp);
|
5573
|
this.handleError(resp);
|
6579
|
}), true, folderId, base64Encoded);
|
5574
|
}), true, folderId, base64Encoded);
|
6580
|
}
|
5575
|
}
|
6581
|
}
|
5576
|
}
|
6582
|
- else if (mode == App.MODE_TRELLO)
|
|
|
6583
|
- {
|
|
|
6584
|
- if (this.trello != null && this.spinner.spin(document.body, mxResources.get('saving')))
|
|
|
6585
|
- {
|
5577
|
+ else if (mode == App.MODE_TRELLO) {
|
|
|
5578
|
+ if (this.trello != null && this.spinner.spin(document.body, mxResources.get('saving'))) {
|
6586
|
this.trello.insertFile(filename, (base64Encoded) ? this.base64ToBlob(data, mimeType) :
|
5579
|
this.trello.insertFile(filename, (base64Encoded) ? this.base64ToBlob(data, mimeType) :
|
6587
|
- data, mxUtils.bind(this, function()
|
|
|
6588
|
- {
|
|
|
6589
|
- this.spinner.stop();
|
|
|
6590
|
- }), mxUtils.bind(this, function(resp)
|
|
|
6591
|
- {
|
|
|
6592
|
- this.spinner.stop();
|
|
|
6593
|
- this.handleError(resp);
|
|
|
6594
|
- }), false, folderId);
|
5580
|
+ data, mxUtils.bind(this, function () {
|
|
|
5581
|
+ this.spinner.stop();
|
|
|
5582
|
+ }), mxUtils.bind(this, function (resp) {
|
|
|
5583
|
+ this.spinner.stop();
|
|
|
5584
|
+ this.handleError(resp);
|
|
|
5585
|
+ }), false, folderId);
|
6595
|
}
|
5586
|
}
|
6596
|
}
|
5587
|
}
|
6597
|
- else if (mode == App.MODE_BROWSER)
|
|
|
6598
|
- {
|
|
|
6599
|
- var fn = mxUtils.bind(this, function()
|
|
|
6600
|
- {
|
5588
|
+ else if (mode == App.MODE_BROWSER) {
|
|
|
5589
|
+ var fn = mxUtils.bind(this, function () {
|
6601
|
localStorage.setItem(filename, data);
|
5590
|
localStorage.setItem(filename, data);
|
6602
|
});
|
5591
|
});
|
6603
|
|
5592
|
|
6604
|
- if (localStorage.getItem(filename) == null)
|
|
|
6605
|
- {
|
5593
|
+ if (localStorage.getItem(filename) == null) {
|
6606
|
fn();
|
5594
|
fn();
|
6607
|
}
|
5595
|
}
|
6608
|
- else
|
|
|
6609
|
- {
|
5596
|
+ else {
|
6610
|
this.confirm(mxResources.get('replaceIt', [filename]), fn);
|
5597
|
this.confirm(mxResources.get('replaceIt', [filename]), fn);
|
6611
|
}
|
5598
|
}
|
6612
|
}
|
5599
|
}
|
|
@@ -6618,14 +5605,11 @@ App.prototype.exportFile = function(data, filename, mimeType, base64Encoded, mod |
|
@@ -6618,14 +5605,11 @@ App.prototype.exportFile = function(data, filename, mimeType, base64Encoded, mod |
6618
|
* @param {number} dx X-coordinate of the translation.
|
5605
|
* @param {number} dx X-coordinate of the translation.
|
6619
|
* @param {number} dy Y-coordinate of the translation.
|
5606
|
* @param {number} dy Y-coordinate of the translation.
|
6620
|
*/
|
5607
|
*/
|
6621
|
-App.prototype.descriptorChanged = function()
|
|
|
6622
|
-{
|
5608
|
+App.prototype.descriptorChanged = function () {
|
6623
|
var file = this.getCurrentFile();
|
5609
|
var file = this.getCurrentFile();
|
6624
|
|
5610
|
|
6625
|
- if (file != null)
|
|
|
6626
|
- {
|
|
|
6627
|
- if (this.fname != null)
|
|
|
6628
|
- {
|
5611
|
+ if (file != null) {
|
|
|
5612
|
+ if (this.fname != null) {
|
6629
|
this.fnameWrapper.style.display = 'block';
|
5613
|
this.fnameWrapper.style.display = 'block';
|
6630
|
this.fname.innerHTML = '';
|
5614
|
this.fname.innerHTML = '';
|
6631
|
var filename = (file.getTitle() != null) ? file.getTitle() : this.defaultFilename;
|
5615
|
var filename = (file.getTitle() != null) ? file.getTitle() : this.defaultFilename;
|
|
@@ -6636,25 +5620,21 @@ App.prototype.descriptorChanged = function() |
|
@@ -6636,25 +5620,21 @@ App.prototype.descriptorChanged = function() |
6636
|
var graph = this.editor.graph;
|
5620
|
var graph = this.editor.graph;
|
6637
|
var editable = file.isEditable() && !file.invalidChecksum;
|
5621
|
var editable = file.isEditable() && !file.invalidChecksum;
|
6638
|
|
5622
|
|
6639
|
- if (graph.isEnabled() && !editable)
|
|
|
6640
|
- {
|
5623
|
+ if (graph.isEnabled() && !editable) {
|
6641
|
graph.reset();
|
5624
|
graph.reset();
|
6642
|
}
|
5625
|
}
|
6643
|
|
5626
|
|
6644
|
graph.setEnabled(editable);
|
5627
|
graph.setEnabled(editable);
|
6645
|
|
5628
|
|
6646
|
// Ignores title and hash for revisions
|
5629
|
// Ignores title and hash for revisions
|
6647
|
- if (urlParams['rev'] == null)
|
|
|
6648
|
- {
|
5630
|
+ if (urlParams['rev'] == null) {
|
6649
|
this.updateDocumentTitle();
|
5631
|
this.updateDocumentTitle();
|
6650
|
var newHash = file.getHash();
|
5632
|
var newHash = file.getHash();
|
6651
|
|
5633
|
|
6652
|
- if (newHash.length > 0)
|
|
|
6653
|
- {
|
5634
|
+ if (newHash.length > 0) {
|
6654
|
window.location.hash = newHash;
|
5635
|
window.location.hash = newHash;
|
6655
|
}
|
5636
|
}
|
6656
|
- else if (window.location.hash.length > 0)
|
|
|
6657
|
- {
|
5637
|
+ else if (window.location.hash.length > 0) {
|
6658
|
window.location.hash = '';
|
5638
|
window.location.hash = '';
|
6659
|
}
|
5639
|
}
|
6660
|
}
|
5640
|
}
|
|
@@ -6665,8 +5645,7 @@ App.prototype.descriptorChanged = function() |
|
@@ -6665,8 +5645,7 @@ App.prototype.descriptorChanged = function() |
6665
|
// Refresh if editable state has changed
|
5645
|
// Refresh if editable state has changed
|
6666
|
if (this.format != null && (file == null ||
|
5646
|
if (this.format != null && (file == null ||
|
6667
|
this.fileEditable != file.isEditable()) &&
|
5647
|
this.fileEditable != file.isEditable()) &&
|
6668
|
- this.editor.graph.isSelectionEmpty())
|
|
|
6669
|
- {
|
5648
|
+ this.editor.graph.isSelectionEmpty()) {
|
6670
|
this.format.refresh();
|
5649
|
this.format.refresh();
|
6671
|
this.fileEditable = (file != null) ? file.isEditable() : null;
|
5650
|
this.fileEditable = (file != null) ? file.isEditable() : null;
|
6672
|
}
|
5651
|
}
|
|
@@ -6677,36 +5656,27 @@ App.prototype.descriptorChanged = function() |
|
@@ -6677,36 +5656,27 @@ App.prototype.descriptorChanged = function() |
6677
|
/**
|
5656
|
/**
|
6678
|
* Adds the listener for automatically saving the diagram for local changes.
|
5657
|
* Adds the listener for automatically saving the diagram for local changes.
|
6679
|
*/
|
5658
|
*/
|
6680
|
-App.prototype.showAuthDialog = function(peer, showRememberOption, fn, closeFn)
|
|
|
6681
|
-{
|
5659
|
+App.prototype.showAuthDialog = function (peer, showRememberOption, fn, closeFn) {
|
6682
|
var resume = this.spinner.pause();
|
5660
|
var resume = this.spinner.pause();
|
6683
|
|
5661
|
|
6684
|
- this.showDialog(new AuthDialog(this, peer, showRememberOption, mxUtils.bind(this, function(remember)
|
|
|
6685
|
- {
|
|
|
6686
|
- try
|
|
|
6687
|
- {
|
|
|
6688
|
- if (fn != null)
|
|
|
6689
|
- {
|
|
|
6690
|
- fn(remember, mxUtils.bind(this, function()
|
|
|
6691
|
- {
|
5662
|
+ this.showDialog(new AuthDialog(this, peer, showRememberOption, mxUtils.bind(this, function (remember) {
|
|
|
5663
|
+ try {
|
|
|
5664
|
+ if (fn != null) {
|
|
|
5665
|
+ fn(remember, mxUtils.bind(this, function () {
|
6692
|
this.hideDialog();
|
5666
|
this.hideDialog();
|
6693
|
resume();
|
5667
|
resume();
|
6694
|
}));
|
5668
|
}));
|
6695
|
}
|
5669
|
}
|
6696
|
}
|
5670
|
}
|
6697
|
- catch (e)
|
|
|
6698
|
- {
|
5671
|
+ catch (e) {
|
6699
|
this.editor.setStatus(mxUtils.htmlEntities(e.message));
|
5672
|
this.editor.setStatus(mxUtils.htmlEntities(e.message));
|
6700
|
}
|
5673
|
}
|
6701
|
- })).container, 300, (showRememberOption) ? 180 : 140, true, true, mxUtils.bind(this, function(cancel)
|
|
|
6702
|
- {
|
|
|
6703
|
- if (closeFn != null)
|
|
|
6704
|
- {
|
5674
|
+ })).container, 300, (showRememberOption) ? 180 : 140, true, true, mxUtils.bind(this, function (cancel) {
|
|
|
5675
|
+ if (closeFn != null) {
|
6705
|
closeFn(cancel);
|
5676
|
closeFn(cancel);
|
6706
|
}
|
5677
|
}
|
6707
|
|
5678
|
|
6708
|
- if (cancel && this.getCurrentFile() == null && this.dialog == null)
|
|
|
6709
|
- {
|
5679
|
+ if (cancel && this.getCurrentFile() == null && this.dialog == null) {
|
6710
|
this.showSplash();
|
5680
|
this.showSplash();
|
6711
|
}
|
5681
|
}
|
6712
|
}));
|
5682
|
}));
|
|
@@ -6717,193 +5687,149 @@ App.prototype.showAuthDialog = function(peer, showRememberOption, fn, closeFn) |
|
@@ -6717,193 +5687,149 @@ App.prototype.showAuthDialog = function(peer, showRememberOption, fn, closeFn) |
6717
|
* readXml argument is used for import. Default is false. The optional
|
5687
|
* readXml argument is used for import. Default is false. The optional
|
6718
|
* readLibrary argument is used for reading libraries. Default is false.
|
5688
|
* readLibrary argument is used for reading libraries. Default is false.
|
6719
|
*/
|
5689
|
*/
|
6720
|
-App.prototype.convertFile = function(url, filename, mimeType, extension, success, error, executeRequest, headers)
|
|
|
6721
|
-{
|
5690
|
+App.prototype.convertFile = function (url, filename, mimeType, extension, success, error, executeRequest, headers) {
|
6722
|
var name = filename;
|
5691
|
var name = filename;
|
6723
|
|
5692
|
|
6724
|
// SVG file extensions are valid and needed for image import
|
5693
|
// SVG file extensions are valid and needed for image import
|
6725
|
- if (!/\.svg$/i.test(name))
|
|
|
6726
|
- {
|
5694
|
+ if (!/\.svg$/i.test(name)) {
|
6727
|
name = name.substring(0, filename.lastIndexOf('.')) + extension;
|
5695
|
name = name.substring(0, filename.lastIndexOf('.')) + extension;
|
6728
|
}
|
5696
|
}
|
6729
|
|
5697
|
|
6730
|
var gitHubUrl = false;
|
5698
|
var gitHubUrl = false;
|
6731
|
|
5699
|
|
6732
|
- if (this.gitHub != null && url.substring(0, this.gitHub.baseUrl.length) == this.gitHub.baseUrl)
|
|
|
6733
|
- {
|
5700
|
+ if (this.gitHub != null && url.substring(0, this.gitHub.baseUrl.length) == this.gitHub.baseUrl) {
|
6734
|
gitHubUrl = true;
|
5701
|
gitHubUrl = true;
|
6735
|
}
|
5702
|
}
|
6736
|
|
5703
|
|
6737
|
// Workaround for wrong binary response with VSD(X) & VDX files
|
5704
|
// Workaround for wrong binary response with VSD(X) & VDX files
|
6738
|
if (/\.v(dx|sdx?)$/i.test(filename) && Graph.fileSupport && new XMLHttpRequest().upload &&
|
5705
|
if (/\.v(dx|sdx?)$/i.test(filename) && Graph.fileSupport && new XMLHttpRequest().upload &&
|
6739
|
- typeof new XMLHttpRequest().responseType === 'string')
|
|
|
6740
|
- {
|
5706
|
+ typeof new XMLHttpRequest().responseType === 'string') {
|
6741
|
var req = new XMLHttpRequest();
|
5707
|
var req = new XMLHttpRequest();
|
6742
|
req.open('GET', url, true);
|
5708
|
req.open('GET', url, true);
|
6743
|
|
5709
|
|
6744
|
- if (!gitHubUrl)
|
|
|
6745
|
- {
|
5710
|
+ if (!gitHubUrl) {
|
6746
|
req.responseType = 'blob';
|
5711
|
req.responseType = 'blob';
|
6747
|
}
|
5712
|
}
|
6748
|
|
5713
|
|
6749
|
- if (headers)
|
|
|
6750
|
- {
|
|
|
6751
|
- for (var key in headers)
|
|
|
6752
|
- {
|
5714
|
+ if (headers) {
|
|
|
5715
|
+ for (var key in headers) {
|
6753
|
req.setRequestHeader(key, headers[key]);
|
5716
|
req.setRequestHeader(key, headers[key]);
|
6754
|
}
|
5717
|
}
|
6755
|
}
|
5718
|
}
|
6756
|
|
5719
|
|
6757
|
- req.onload = mxUtils.bind(this, function()
|
|
|
6758
|
- {
|
|
|
6759
|
- if (req.status >= 200 && req.status <= 299)
|
|
|
6760
|
- {
|
5720
|
+ req.onload = mxUtils.bind(this, function () {
|
|
|
5721
|
+ if (req.status >= 200 && req.status <= 299) {
|
6761
|
var blob = null;
|
5722
|
var blob = null;
|
6762
|
|
5723
|
|
6763
|
- if (gitHubUrl)
|
|
|
6764
|
- {
|
5724
|
+ if (gitHubUrl) {
|
6765
|
var file = JSON.parse(req.responseText);
|
5725
|
var file = JSON.parse(req.responseText);
|
6766
|
blob = this.base64ToBlob(file.content, 'application/octet-stream');
|
5726
|
blob = this.base64ToBlob(file.content, 'application/octet-stream');
|
6767
|
}
|
5727
|
}
|
6768
|
- else
|
|
|
6769
|
- {
|
|
|
6770
|
- blob = new Blob([req.response], {type: 'application/octet-stream'});
|
5728
|
+ else {
|
|
|
5729
|
+ blob = new Blob([req.response], { type: 'application/octet-stream' });
|
6771
|
}
|
5730
|
}
|
6772
|
|
5731
|
|
6773
|
- this.importVisio(blob, mxUtils.bind(this, function(xml)
|
|
|
6774
|
- {
|
5732
|
+ this.importVisio(blob, mxUtils.bind(this, function (xml) {
|
6775
|
success(new LocalFile(this, xml, name, true));
|
5733
|
success(new LocalFile(this, xml, name, true));
|
6776
|
}), error, filename)
|
5734
|
}), error, filename)
|
6777
|
}
|
5735
|
}
|
6778
|
- else if (error != null)
|
|
|
6779
|
- {
|
|
|
6780
|
- error({message: mxResources.get('errorLoadingFile')});
|
5736
|
+ else if (error != null) {
|
|
|
5737
|
+ error({ message: mxResources.get('errorLoadingFile') });
|
6781
|
}
|
5738
|
}
|
6782
|
});
|
5739
|
});
|
6783
|
|
5740
|
|
6784
|
req.onerror = error;
|
5741
|
req.onerror = error;
|
6785
|
req.send();
|
5742
|
req.send();
|
6786
|
}
|
5743
|
}
|
6787
|
- else
|
|
|
6788
|
- {
|
|
|
6789
|
- var handleData = mxUtils.bind(this, function(data)
|
|
|
6790
|
- {
|
|
|
6791
|
- try
|
|
|
6792
|
- {
|
|
|
6793
|
- if (/\.pdf$/i.test(filename))
|
|
|
6794
|
- {
|
5744
|
+ else {
|
|
|
5745
|
+ var handleData = mxUtils.bind(this, function (data) {
|
|
|
5746
|
+ try {
|
|
|
5747
|
+ if (/\.pdf$/i.test(filename)) {
|
6795
|
var temp = Editor.extractGraphModelFromPdf(data);
|
5748
|
var temp = Editor.extractGraphModelFromPdf(data);
|
6796
|
|
5749
|
|
6797
|
- if (temp != null && temp.length > 0)
|
|
|
6798
|
- {
|
5750
|
+ if (temp != null && temp.length > 0) {
|
6799
|
success(new LocalFile(this, temp, name, true));
|
5751
|
success(new LocalFile(this, temp, name, true));
|
6800
|
}
|
5752
|
}
|
6801
|
}
|
5753
|
}
|
6802
|
- else if (/\.png$/i.test(filename))
|
|
|
6803
|
- {
|
5754
|
+ else if (/\.png$/i.test(filename)) {
|
6804
|
var temp = this.extractGraphModelFromPng(data);
|
5755
|
var temp = this.extractGraphModelFromPng(data);
|
6805
|
|
5756
|
|
6806
|
- if (temp != null)
|
|
|
6807
|
- {
|
5757
|
+ if (temp != null) {
|
6808
|
success(new LocalFile(this, temp, name, true));
|
5758
|
success(new LocalFile(this, temp, name, true));
|
6809
|
}
|
5759
|
}
|
6810
|
- else
|
|
|
6811
|
- {
|
5760
|
+ else {
|
6812
|
success(new LocalFile(this, data, filename, true));
|
5761
|
success(new LocalFile(this, data, filename, true));
|
6813
|
}
|
5762
|
}
|
6814
|
}
|
5763
|
}
|
6815
|
- else if (Graph.fileSupport && new XMLHttpRequest().upload && this.isRemoteFileFormat(data, url))
|
|
|
6816
|
- {
|
|
|
6817
|
- this.parseFileData(data, mxUtils.bind(this, function(xhr)
|
|
|
6818
|
- {
|
|
|
6819
|
- if (xhr.readyState == 4)
|
|
|
6820
|
- {
|
|
|
6821
|
- if (xhr.status >= 200 && xhr.status <= 299)
|
|
|
6822
|
- {
|
5764
|
+ else if (Graph.fileSupport && new XMLHttpRequest().upload && this.isRemoteFileFormat(data, url)) {
|
|
|
5765
|
+ this.parseFileData(data, mxUtils.bind(this, function (xhr) {
|
|
|
5766
|
+ if (xhr.readyState == 4) {
|
|
|
5767
|
+ if (xhr.status >= 200 && xhr.status <= 299) {
|
6823
|
success(new LocalFile(this, xhr.responseText, name, true));
|
5768
|
success(new LocalFile(this, xhr.responseText, name, true));
|
6824
|
}
|
5769
|
}
|
6825
|
- else if (error != null)
|
|
|
6826
|
- {
|
|
|
6827
|
- error({message: mxResources.get('errorLoadingFile')});
|
5770
|
+ else if (error != null) {
|
|
|
5771
|
+ error({ message: mxResources.get('errorLoadingFile') });
|
6828
|
}
|
5772
|
}
|
6829
|
}
|
5773
|
}
|
6830
|
}), filename);
|
5774
|
}), filename);
|
6831
|
}
|
5775
|
}
|
6832
|
- else
|
|
|
6833
|
- {
|
5776
|
+ else {
|
6834
|
success(new LocalFile(this, data, name, true));
|
5777
|
success(new LocalFile(this, data, name, true));
|
6835
|
}
|
5778
|
}
|
6836
|
}
|
5779
|
}
|
6837
|
- catch (e)
|
|
|
6838
|
- {
|
|
|
6839
|
- if (error != null)
|
|
|
6840
|
- {
|
5780
|
+ catch (e) {
|
|
|
5781
|
+ if (error != null) {
|
6841
|
error(e);
|
5782
|
error(e);
|
6842
|
}
|
5783
|
}
|
6843
|
}
|
5784
|
}
|
6844
|
});
|
5785
|
});
|
6845
|
|
5786
|
|
6846
|
var binary = /\.png$/i.test(filename) || /\.jpe?g$/i.test(filename) ||
|
5787
|
var binary = /\.png$/i.test(filename) || /\.jpe?g$/i.test(filename) ||
|
6847
|
- /\.pdf$/i.test(filename) || (mimeType != null &&
|
|
|
6848
|
- mimeType.substring(0, 6) == 'image/');
|
5788
|
+ /\.pdf$/i.test(filename) || (mimeType != null &&
|
|
|
5789
|
+ mimeType.substring(0, 6) == 'image/');
|
6849
|
|
5790
|
|
6850
|
// NOTE: Cannot force non-binary request via loadUrl so needs separate
|
5791
|
// NOTE: Cannot force non-binary request via loadUrl so needs separate
|
6851
|
// code as decoding twice on content with binary data did not work
|
5792
|
// code as decoding twice on content with binary data did not work
|
6852
|
- if (gitHubUrl)
|
|
|
6853
|
- {
|
|
|
6854
|
- mxUtils.get(url, mxUtils.bind(this, function(req)
|
|
|
6855
|
- {
|
|
|
6856
|
- if (req.getStatus() >= 200 && req.getStatus() <= 299)
|
|
|
6857
|
- {
|
|
|
6858
|
- if (success != null)
|
|
|
6859
|
- {
|
|
|
6860
|
- var file = JSON.parse(req.getText());
|
|
|
6861
|
- var data = file.content;
|
|
|
6862
|
-
|
|
|
6863
|
- if (file.encoding === 'base64')
|
|
|
6864
|
- {
|
|
|
6865
|
- if (/\.png$/i.test(filename))
|
|
|
6866
|
- {
|
|
|
6867
|
- data = 'data:image/png;base64,' + data;
|
|
|
6868
|
- }
|
|
|
6869
|
- else if (/\.pdf$/i.test(filename))
|
|
|
6870
|
- {
|
|
|
6871
|
- data = 'data:application/pdf;base64,' + data;
|
|
|
6872
|
- }
|
|
|
6873
|
- else
|
|
|
6874
|
- {
|
|
|
6875
|
- // Workaround for character encoding issues in IE10/11
|
|
|
6876
|
- data = (window.atob && !mxClient.IS_IE && !mxClient.IS_IE11) ? atob(data) : Base64.decode(data);
|
|
|
6877
|
- }
|
|
|
6878
|
- }
|
|
|
6879
|
-
|
|
|
6880
|
- handleData(data);
|
|
|
6881
|
- }
|
|
|
6882
|
- }
|
|
|
6883
|
- else if (error != null)
|
|
|
6884
|
- {
|
|
|
6885
|
- error({code: App.ERROR_UNKNOWN});
|
|
|
6886
|
- }
|
|
|
6887
|
- }), function()
|
|
|
6888
|
- {
|
|
|
6889
|
- if (error != null)
|
|
|
6890
|
- {
|
|
|
6891
|
- error({code: App.ERROR_UNKNOWN});
|
|
|
6892
|
- }
|
|
|
6893
|
- }, false, this.timeout, function()
|
|
|
6894
|
- {
|
|
|
6895
|
- if (error != null)
|
|
|
6896
|
- {
|
|
|
6897
|
- error({code: App.ERROR_TIMEOUT, retry: fn});
|
|
|
6898
|
- }
|
|
|
6899
|
- }, headers);
|
|
|
6900
|
- }
|
|
|
6901
|
- else if (executeRequest != null)
|
|
|
6902
|
- {
|
5793
|
+ if (gitHubUrl) {
|
|
|
5794
|
+ mxUtils.get(url, mxUtils.bind(this, function (req) {
|
|
|
5795
|
+ if (req.getStatus() >= 200 && req.getStatus() <= 299) {
|
|
|
5796
|
+ if (success != null) {
|
|
|
5797
|
+ var file = JSON.parse(req.getText());
|
|
|
5798
|
+ var data = file.content;
|
|
|
5799
|
+
|
|
|
5800
|
+ if (file.encoding === 'base64') {
|
|
|
5801
|
+ if (/\.png$/i.test(filename)) {
|
|
|
5802
|
+ data = 'data:image/png;base64,' + data;
|
|
|
5803
|
+ }
|
|
|
5804
|
+ else if (/\.pdf$/i.test(filename)) {
|
|
|
5805
|
+ data = 'data:application/pdf;base64,' + data;
|
|
|
5806
|
+ }
|
|
|
5807
|
+ else {
|
|
|
5808
|
+ // Workaround for character encoding issues in IE10/11
|
|
|
5809
|
+ data = (window.atob && !mxClient.IS_IE && !mxClient.IS_IE11) ? atob(data) : Base64.decode(data);
|
|
|
5810
|
+ }
|
|
|
5811
|
+ }
|
|
|
5812
|
+
|
|
|
5813
|
+ handleData(data);
|
|
|
5814
|
+ }
|
|
|
5815
|
+ }
|
|
|
5816
|
+ else if (error != null) {
|
|
|
5817
|
+ error({ code: App.ERROR_UNKNOWN });
|
|
|
5818
|
+ }
|
|
|
5819
|
+ }), function () {
|
|
|
5820
|
+ if (error != null) {
|
|
|
5821
|
+ error({ code: App.ERROR_UNKNOWN });
|
|
|
5822
|
+ }
|
|
|
5823
|
+ }, false, this.timeout, function () {
|
|
|
5824
|
+ if (error != null) {
|
|
|
5825
|
+ error({ code: App.ERROR_TIMEOUT, retry: fn });
|
|
|
5826
|
+ }
|
|
|
5827
|
+ }, headers);
|
|
|
5828
|
+ }
|
|
|
5829
|
+ else if (executeRequest != null) {
|
6903
|
executeRequest(url, handleData, error, binary);
|
5830
|
executeRequest(url, handleData, error, binary);
|
6904
|
}
|
5831
|
}
|
6905
|
- else
|
|
|
6906
|
- {
|
5832
|
+ else {
|
6907
|
this.editor.loadUrl(url, handleData, error, binary, null, null, null, headers);
|
5833
|
this.editor.loadUrl(url, handleData, error, binary, null, null, null, headers);
|
6908
|
}
|
5834
|
}
|
6909
|
}
|
5835
|
}
|
|
@@ -6912,10 +5838,8 @@ App.prototype.convertFile = function(url, filename, mimeType, extension, success |
|
@@ -6912,10 +5838,8 @@ App.prototype.convertFile = function(url, filename, mimeType, extension, success |
6912
|
/**
|
5838
|
/**
|
6913
|
* Adds the listener for automatically saving the diagram for local changes.
|
5839
|
* Adds the listener for automatically saving the diagram for local changes.
|
6914
|
*/
|
5840
|
*/
|
6915
|
-App.prototype.updateHeader = function()
|
|
|
6916
|
-{
|
|
|
6917
|
- if (this.menubar != null)
|
|
|
6918
|
- {
|
5841
|
+App.prototype.updateHeader = function () {
|
|
|
5842
|
+ if (this.menubar != null) {
|
6919
|
this.appIcon = document.createElement('a');
|
5843
|
this.appIcon = document.createElement('a');
|
6920
|
this.appIcon.style.display = 'block';
|
5844
|
this.appIcon.style.display = 'block';
|
6921
|
this.appIcon.style.position = 'absolute';
|
5845
|
this.appIcon.style.position = 'absolute';
|
|
@@ -6925,15 +5849,13 @@ App.prototype.updateHeader = function() |
|
@@ -6925,15 +5849,13 @@ App.prototype.updateHeader = function() |
6925
|
this.appIcon.style.opacity = '0.85';
|
5849
|
this.appIcon.style.opacity = '0.85';
|
6926
|
this.appIcon.style.borderRadius = '3px';
|
5850
|
this.appIcon.style.borderRadius = '3px';
|
6927
|
|
5851
|
|
6928
|
- if (uiTheme != 'dark')
|
|
|
6929
|
- {
|
5852
|
+ if (uiTheme != 'dark') {
|
6930
|
// this.appIcon.style.backgroundColor = '#f08705';
|
5853
|
// this.appIcon.style.backgroundColor = '#f08705';
|
6931
|
}
|
5854
|
}
|
6932
|
|
5855
|
|
6933
|
mxEvent.disableContextMenu(this.appIcon);
|
5856
|
mxEvent.disableContextMenu(this.appIcon);
|
6934
|
|
5857
|
|
6935
|
- mxEvent.addListener(this.appIcon, 'click', mxUtils.bind(this, function(evt)
|
|
|
6936
|
- {
|
5858
|
+ mxEvent.addListener(this.appIcon, 'click', mxUtils.bind(this, function (evt) {
|
6937
|
// this.appIconClicked(evt);
|
5859
|
// this.appIconClicked(evt);
|
6938
|
}));
|
5860
|
}));
|
6939
|
|
5861
|
|
|
@@ -6942,7 +5864,7 @@ App.prototype.updateHeader = function() |
|
@@ -6942,7 +5864,7 @@ App.prototype.updateHeader = function() |
6942
|
//this.appIcon.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + IMAGE_PATH + '/logo-white.png,sizingMethod=\'scale\')';
|
5864
|
//this.appIcon.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + IMAGE_PATH + '/logo-white.png,sizingMethod=\'scale\')';
|
6943
|
var logo = (!mxClient.IS_SVG) ? 'url(\'' + IMAGE_PATH + '/logo-white.png\')' :
|
5865
|
var logo = (!mxClient.IS_SVG) ? 'url(\'' + IMAGE_PATH + '/logo-white.png\')' :
|
6944
|
((uiTheme == 'dark') ? 'url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzA2LjE4NSAxMjAuMjk2IgogICB2aWV3Qm94PSIyNCAyNiA2OCA2OCIKICAgeT0iMHB4IgogICB4PSIwcHgiCiAgIHZlcnNpb249IjEuMSI+CiAgIAkgPGc+PGxpbmUKICAgICAgIHkyPSI3Mi4zOTQiCiAgICAgICB4Mj0iNDEuMDYxIgogICAgICAgeTE9IjQzLjM4NCIKICAgICAgIHgxPSI1OC4wNjkiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICBzdHJva2Utd2lkdGg9IjMuNTUyOCIKICAgICAgIHN0cm9rZT0iI0ZGRkZGRiIKICAgICAgIGZpbGw9Im5vbmUiIC8+PGxpbmUKICAgICAgIHkyPSI3Mi4zOTQiCiAgICAgICB4Mj0iNzUuMDc2IgogICAgICAgeTE9IjQzLjM4NCIKICAgICAgIHgxPSI1OC4wNjgiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICBzdHJva2Utd2lkdGg9IjMuNTAwOCIKICAgICAgIHN0cm9rZT0iI0ZGRkZGRiIKICAgICAgIGZpbGw9Im5vbmUiIC8+PGc+PHBhdGgKICAgICAgICAgZD0iTTUyLjc3Myw3Ny4wODRjMCwxLjk1NC0xLjU5OSwzLjU1My0zLjU1MywzLjU1M0gzNi45OTljLTEuOTU0LDAtMy41NTMtMS41OTktMy41NTMtMy41NTN2LTkuMzc5ICAgIGMwLTEuOTU0LDEuNTk5LTMuNTUzLDMuNTUzLTMuNTUzaDEyLjIyMmMxLjk1NCwwLDMuNTUzLDEuNTk5LDMuNTUzLDMuNTUzVjc3LjA4NHoiCiAgICAgICAgIGZpbGw9IiNGRkZGRkYiIC8+PC9nPjxnCiAgICAgICBpZD0iZzM0MTkiPjxwYXRoCiAgICAgICAgIGQ9Ik02Ny43NjIsNDguMDc0YzAsMS45NTQtMS41OTksMy41NTMtMy41NTMsMy41NTNINTEuOTg4Yy0xLjk1NCwwLTMuNTUzLTEuNTk5LTMuNTUzLTMuNTUzdi05LjM3OSAgICBjMC0xLjk1NCwxLjU5OS0zLjU1MywzLjU1My0zLjU1M0g2NC4yMWMxLjk1NCwwLDMuNTUzLDEuNTk5LDMuNTUzLDMuNTUzVjQ4LjA3NHoiCiAgICAgICAgIGZpbGw9IiNGRkZGRkYiIC8+PC9nPjxnPjxwYXRoCiAgICAgICAgIGQ9Ik04Mi43NTIsNzcuMDg0YzAsMS45NTQtMS41OTksMy41NTMtMy41NTMsMy41NTNINjYuOTc3Yy0xLjk1NCwwLTMuNTUzLTEuNTk5LTMuNTUzLTMuNTUzdi05LjM3OSAgICBjMC0xLjk1NCwxLjU5OS0zLjU1MywzLjU1My0zLjU1M2gxMi4yMjJjMS45NTQsMCwzLjU1MywxLjU5OSwzLjU1MywzLjU1M1Y3Ny4wODR6IgogICAgICAgICBmaWxsPSIjRkZGRkZGIiAvPjwvZz48L2c+PC9zdmc+)' :
|
5866
|
((uiTheme == 'dark') ? 'url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzA2LjE4NSAxMjAuMjk2IgogICB2aWV3Qm94PSIyNCAyNiA2OCA2OCIKICAgeT0iMHB4IgogICB4PSIwcHgiCiAgIHZlcnNpb249IjEuMSI+CiAgIAkgPGc+PGxpbmUKICAgICAgIHkyPSI3Mi4zOTQiCiAgICAgICB4Mj0iNDEuMDYxIgogICAgICAgeTE9IjQzLjM4NCIKICAgICAgIHgxPSI1OC4wNjkiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICBzdHJva2Utd2lkdGg9IjMuNTUyOCIKICAgICAgIHN0cm9rZT0iI0ZGRkZGRiIKICAgICAgIGZpbGw9Im5vbmUiIC8+PGxpbmUKICAgICAgIHkyPSI3Mi4zOTQiCiAgICAgICB4Mj0iNzUuMDc2IgogICAgICAgeTE9IjQzLjM4NCIKICAgICAgIHgxPSI1OC4wNjgiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICBzdHJva2Utd2lkdGg9IjMuNTAwOCIKICAgICAgIHN0cm9rZT0iI0ZGRkZGRiIKICAgICAgIGZpbGw9Im5vbmUiIC8+PGc+PHBhdGgKICAgICAgICAgZD0iTTUyLjc3Myw3Ny4wODRjMCwxLjk1NC0xLjU5OSwzLjU1My0zLjU1MywzLjU1M0gzNi45OTljLTEuOTU0LDAtMy41NTMtMS41OTktMy41NTMtMy41NTN2LTkuMzc5ICAgIGMwLTEuOTU0LDEuNTk5LTMuNTUzLDMuNTUzLTMuNTUzaDEyLjIyMmMxLjk1NCwwLDMuNTUzLDEuNTk5LDMuNTUzLDMuNTUzVjc3LjA4NHoiCiAgICAgICAgIGZpbGw9IiNGRkZGRkYiIC8+PC9nPjxnCiAgICAgICBpZD0iZzM0MTkiPjxwYXRoCiAgICAgICAgIGQ9Ik02Ny43NjIsNDguMDc0YzAsMS45NTQtMS41OTksMy41NTMtMy41NTMsMy41NTNINTEuOTg4Yy0xLjk1NCwwLTMuNTUzLTEuNTk5LTMuNTUzLTMuNTUzdi05LjM3OSAgICBjMC0xLjk1NCwxLjU5OS0zLjU1MywzLjU1My0zLjU1M0g2NC4yMWMxLjk1NCwwLDMuNTUzLDEuNTk5LDMuNTUzLDMuNTUzVjQ4LjA3NHoiCiAgICAgICAgIGZpbGw9IiNGRkZGRkYiIC8+PC9nPjxnPjxwYXRoCiAgICAgICAgIGQ9Ik04Mi43NTIsNzcuMDg0YzAsMS45NTQtMS41OTksMy41NTMtMy41NTMsMy41NTNINjYuOTc3Yy0xLjk1NCwwLTMuNTUzLTEuNTk5LTMuNTUzLTMuNTUzdi05LjM3OSAgICBjMC0xLjk1NCwxLjU5OS0zLjU1MywzLjU1My0zLjU1M2gxMi4yMjJjMS45NTQsMCwzLjU1MywxLjU5OSwzLjU1MywzLjU1M1Y3Ny4wODR6IgogICAgICAgICBmaWxsPSIjRkZGRkZGIiAvPjwvZz48L2c+PC9zdmc+)' :
|
6945
|
- 'url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJFYmVuZV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjI1IDIyNSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjI1IDIyNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MXtmaWxsOiNERjZDMEM7fQoJLnN0MntmaWxsOiNGRkZGRkY7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjI1LDIxNS40YzAsNS4zLTQuMyw5LjYtOS41LDkuNmwwLDBINzcuMWwtNDQuOC00NS41TDYwLjIsMTM0bDgyLjctMTAyLjdsODIuMSw4NC41VjIxNS40eiIvPgo8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTg0LjYsMTI1LjhoLTIzLjdsLTI1LTQyLjdjNS43LTEuMiw5LjgtNi4yLDkuNy0xMlYzOWMwLTYuOC01LjQtMTIuMy0xMi4yLTEyLjNoLTAuMUg5MS42CgljLTYuOCwwLTEyLjMsNS40LTEyLjMsMTIuMlYzOXYzMi4xYzAsNS44LDQsMTAuOCw5LjcsMTJsLTI1LDQyLjdINDAuNGMtNi44LDAtMTIuMyw1LjQtMTIuMywxMi4ydjAuMXYzMi4xCgljMCw2LjgsNS40LDEyLjMsMTIuMiwxMi4zaDAuMWg0MS43YzYuOCwwLDEyLjMtNS40LDEyLjMtMTIuMnYtMC4xdi0zMi4xYzAtNi44LTUuNC0xMi4zLTEyLjItMTIuM2gtMC4xaC00bDI0LjgtNDIuNGgxOS4zCglsMjQuOSw0Mi40SDE0M2MtNi44LDAtMTIuMyw1LjQtMTIuMywxMi4ydjAuMXYzMi4xYzAsNi44LDUuNCwxMi4zLDEyLjIsMTIuM2gwLjFoNDEuN2M2LjgsMCwxMi4zLTUuNCwxMi4zLTEyLjJ2LTAuMXYtMzIuMQoJYzAtNi44LTUuNC0xMi4zLTEyLjItMTIuM0MxODQuNywxMjUuOCwxODQuNywxMjUuOCwxODQuNiwxMjUuOHoiLz4KPC9zdmc+Cg==)');
|
5867
|
+ 'url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJFYmVuZV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjI1IDIyNSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjI1IDIyNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MXtmaWxsOiNERjZDMEM7fQoJLnN0MntmaWxsOiNGRkZGRkY7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjI1LDIxNS40YzAsNS4zLTQuMyw5LjYtOS41LDkuNmwwLDBINzcuMWwtNDQuOC00NS41TDYwLjIsMTM0bDgyLjctMTAyLjdsODIuMSw4NC41VjIxNS40eiIvPgo8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTg0LjYsMTI1LjhoLTIzLjdsLTI1LTQyLjdjNS43LTEuMiw5LjgtNi4yLDkuNy0xMlYzOWMwLTYuOC01LjQtMTIuMy0xMi4yLTEyLjNoLTAuMUg5MS42CgljLTYuOCwwLTEyLjMsNS40LTEyLjMsMTIuMlYzOXYzMi4xYzAsNS44LDQsMTAuOCw5LjcsMTJsLTI1LDQyLjdINDAuNGMtNi44LDAtMTIuMyw1LjQtMTIuMywxMi4ydjAuMXYzMi4xCgljMCw2LjgsNS40LDEyLjMsMTIuMiwxMi4zaDAuMWg0MS43YzYuOCwwLDEyLjMtNS40LDEyLjMtMTIuMnYtMC4xdi0zMi4xYzAtNi44LTUuNC0xMi4zLTEyLjItMTIuM2gtMC4xaC00bDI0LjgtNDIuNGgxOS4zCglsMjQuOSw0Mi40SDE0M2MtNi44LDAtMTIuMyw1LjQtMTIuMywxMi4ydjAuMXYzMi4xYzAsNi44LDUuNCwxMi4zLDEyLjIsMTIuM2gwLjFoNDEuN2M2LjgsMCwxMi4zLTUuNCwxMi4zLTEyLjJ2LTAuMXYtMzIuMQoJYzAtNi44LTUuNC0xMi4zLTEyLjItMTIuM0MxODQuNywxMjUuOCwxODQuNywxMjUuOCwxODQuNiwxMjUuOHoiLz4KPC9zdmc+Cg==)');
|
6946
|
// this.appIcon.style.backgroundImage = logo;
|
5868
|
// this.appIcon.style.backgroundImage = logo;
|
6947
|
this.appIcon.style.backgroundImage = 'url(data:image/png;base64,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)';
|
5869
|
this.appIcon.style.backgroundImage = 'url(data:image/png;base64,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)';
|
6948
|
this.appIcon.style.backgroundPosition = 'center center';
|
5870
|
this.appIcon.style.backgroundPosition = 'center center';
|
|
@@ -6951,56 +5873,46 @@ App.prototype.updateHeader = function() |
|
@@ -6951,56 +5873,46 @@ App.prototype.updateHeader = function() |
6951
|
|
5873
|
|
6952
|
mxUtils.setPrefixedStyle(this.appIcon.style, 'transition', 'all 125ms linear');
|
5874
|
mxUtils.setPrefixedStyle(this.appIcon.style, 'transition', 'all 125ms linear');
|
6953
|
|
5875
|
|
6954
|
- mxEvent.addListener(this.appIcon, 'mouseover', mxUtils.bind(this, function()
|
|
|
6955
|
- {
|
5876
|
+ mxEvent.addListener(this.appIcon, 'mouseover', mxUtils.bind(this, function () {
|
6956
|
var file = this.getCurrentFile();
|
5877
|
var file = this.getCurrentFile();
|
6957
|
|
5878
|
|
6958
|
- if (file != null)
|
|
|
6959
|
- {
|
5879
|
+ if (file != null) {
|
6960
|
var mode = file.getMode();
|
5880
|
var mode = file.getMode();
|
6961
|
|
5881
|
|
6962
|
- if (mode == App.MODE_GOOGLE)
|
|
|
6963
|
- {
|
5882
|
+ if (mode == App.MODE_GOOGLE) {
|
6964
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/google-drive-logo-white.svg)';
|
5883
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/google-drive-logo-white.svg)';
|
6965
|
this.appIcon.style.backgroundSize = '70% 70%';
|
5884
|
this.appIcon.style.backgroundSize = '70% 70%';
|
6966
|
}
|
5885
|
}
|
6967
|
- else if (mode == App.MODE_DROPBOX)
|
|
|
6968
|
- {
|
5886
|
+ else if (mode == App.MODE_DROPBOX) {
|
6969
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/dropbox-logo-white.svg)';
|
5887
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/dropbox-logo-white.svg)';
|
6970
|
this.appIcon.style.backgroundSize = '70% 70%';
|
5888
|
this.appIcon.style.backgroundSize = '70% 70%';
|
6971
|
}
|
5889
|
}
|
6972
|
- else if (mode == App.MODE_ONEDRIVE)
|
|
|
6973
|
- {
|
5890
|
+ else if (mode == App.MODE_ONEDRIVE) {
|
6974
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/onedrive-logo-white.svg)';
|
5891
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/onedrive-logo-white.svg)';
|
6975
|
this.appIcon.style.backgroundSize = '70% 70%';
|
5892
|
this.appIcon.style.backgroundSize = '70% 70%';
|
6976
|
}
|
5893
|
}
|
6977
|
- else if (mode == App.MODE_GITHUB)
|
|
|
6978
|
- {
|
5894
|
+ else if (mode == App.MODE_GITHUB) {
|
6979
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/github-logo-white.svg)';
|
5895
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/github-logo-white.svg)';
|
6980
|
this.appIcon.style.backgroundSize = '70% 70%';
|
5896
|
this.appIcon.style.backgroundSize = '70% 70%';
|
6981
|
}
|
5897
|
}
|
6982
|
- else if (mode == App.MODE_GITLAB)
|
|
|
6983
|
- {
|
5898
|
+ else if (mode == App.MODE_GITLAB) {
|
6984
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/gitlab-logo-white.svg)';
|
5899
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/gitlab-logo-white.svg)';
|
6985
|
this.appIcon.style.backgroundSize = '100% 100%';
|
5900
|
this.appIcon.style.backgroundSize = '100% 100%';
|
6986
|
}
|
5901
|
}
|
6987
|
- else if (mode == App.MODE_TRELLO)
|
|
|
6988
|
- {
|
5902
|
+ else if (mode == App.MODE_TRELLO) {
|
6989
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/trello-logo-white-orange.svg)';
|
5903
|
this.appIcon.style.backgroundImage = 'url(' + IMAGE_PATH + '/trello-logo-white-orange.svg)';
|
6990
|
this.appIcon.style.backgroundSize = '70% 70%';
|
5904
|
this.appIcon.style.backgroundSize = '70% 70%';
|
6991
|
}
|
5905
|
}
|
6992
|
}
|
5906
|
}
|
6993
|
}));
|
5907
|
}));
|
6994
|
|
5908
|
|
6995
|
- mxEvent.addListener(this.appIcon, 'mouseout', mxUtils.bind(this, function()
|
|
|
6996
|
- {
|
5909
|
+ mxEvent.addListener(this.appIcon, 'mouseout', mxUtils.bind(this, function () {
|
6997
|
// this.appIcon.style.backgroundImage = logo;
|
5910
|
// this.appIcon.style.backgroundImage = logo;
|
6998
|
this.appIcon.style.backgroundImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMCaIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/PbFWyFTNGjtFKuUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk626s91m/r0q9akHV0IbwDa0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXBaKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8cfvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAABYYSURBVHja7J17cFxXfcc/5967b1lP24ntJLbjh+SHtJJC0qHMtCQT2hQCNJAGQmkHynSYTqc8HEJMIG6AhDa0PEr5o8M/pZS2pIVSHuXVhkeBTEs7KW3aThJjO37LsmVJu6t933P6x7krrVZrvfastWudb0aOvdq9e/fez/5+3/M7v3uuUEphZbVWcuwhsLIAWlkArawsgFYWQCsrC6CVBdDKygJoZQG0srIAWlkArawsgFYWQCsrC6CVBdDKygJoZQG0srIAWlkArawsgFYWQCsrC6CVBdDKygJoZQG0srIAWrWsxI1vm7wP2AIUg8cUIABZ9TxV5++q5vHqx2pfL4PHVM1z6m1L1Tz3SvtS+/vqv4s626y3n1xh+9XbvNJnqHdcFjtuss7n8muOQ+U19fZHATcB3wcuAEw7iu1Fl4+d6yDjzPuIW4BNwfYbi1AOTE+hrtsCBwYRxSL4jW21sqMJIOwBDwGjizxxNRtv9Dn1Dr6pba7k+ct9/0Y+33L3IQZ8B/hB5Rc5R7Gj6M6jFdgDfAHYCxQahS+bRYRCqC3bkFLi+L6RwBcCOoH3eED6StFxNRHVJpWm6UfAW4ExV8FYSPKKdJjfnYiRF7Mc7wS+CgwE/+5oBL5cDpSE5C3Q2wuZDCgFwsxZ/gTwScdEmLZqur4O3AGcAw3fyzNhHhyPIwFfA3EQ+G4VfKuPfALyeW0bhkYo9/ah0imj8H0YOAT4jh2ItLy+CNwDlHzggie5Ix3moQsJigKyQiHgAPAVYIcJ+HI5UAo1mERt3IybSSEQRuE7Uj0KtmmzdfUkcD9QBrgUwPfOi3FyQpF2FI72el8EbjYx4MhlQUrUYBLZtwk3k0YojMH3SDV8AJ49xy2rLwFvBsoVz3dnOsy7LsYpCEVRgAO7g8g3YAS+HChQw7eguntxDKfdR4DHFryvTcEtqS8D9wHlkoAzYcntae35ygKKAgQMGvN8DhTyIEANjSB7+nDSaYRB+B6tB18lAtoU3Fr6myDyyQlXMZTzeHgszk0ld9bzORq+rwE3moAvH3i+oRFU70bc1LSGwiB8H7zSLy2AraXPAb/lKuR4SDGQd3n3pRjXFx1S7qzn6w8833ZTnk8p1OAoqncjTiYoyhmC7/3ARxZ7gmdTcMvor4C3avgkuwsuR8YSJKTgkqcQ+kT1B55vr7HIB2poFNXThzDs+d4H/OFST7IRsDX0hSDtUoHv8XMbiEuYdFUlQgwC3wK2GoEvP5t2ZW9vkHbNlVqOLAc+OwhpDf15UGphwlUM5D0+dL6DuITL3ix8SXQx2gh8uSygUAeHUX19uOm0Ufh+H13rY7kA2gi4dvpM4PmY8BQDBZfDF+LEfcGkq3D1DNsA8LfoRoSG4csGnm//EGrTJpxMxrjn+9BKXmA94NrC93ZXzaXdiudLzaXdvei53T1GIl8w2h0OPF/KrOc7DDyx0hd5SOXU7cmo7gExsoOiqU9vKdXbdzXv8c8Ab1/C8w0B3wC2mfJ8gEqOoHp6cdLTen8Mpt0nVvNCD0eAK0BSCogTVQdNBH8KVM0hhJpmIjW/ban62WrBk90l90wuY+9X1PhU9WQh/AUbUMvjSS3nu6HqPuYqzwGPP0PxO9We78hYYtbzBWl3OPB8DcMnhPZ8QqAGk9C3yTh8R1bi+RYAKHd3XFaeA7KmT1QJdC18AVaVz6UCQGdPb/AYy0RHLBum6q48EbybWuG7zLsnnpD6K6VEnXdYPtxq3l7NbUcfDb2T+hkOIYGYKn9CTBYPucC4p+t8V/B8TxqBr6rONzyM6t2Ek0kFO2kGvg8AjzeyAU/FvXJgBELLSy1ikS/5Iq9bVuhYQUCrJWZl2w5xtRT0SKsNfMot+Ie8S4rxsLqS59uNnuHY3XDaFXOj3ZFRVNca1fmWTsEl6a6s57c17q4p2skqSj6los47UTDuSXYXPB4/v8DzDQcDDmPTa0KgBkdQXb04GbNp9wMm4NMAttWZbEt9HMEDoEst+wseRy501Hq+pCn4hIB8VhuBg8Oovo04KfPwPW7q4NgSTHP1GPCAK2EiDv15l8PnEsTlPM+3H/h7I/AFdT4511jgZFJG63wPmYRPR0ALYbP0EeARV8F4B+w9L3n02RAdUpEKz6bdAeAfMNBMWol8joMcGoaunmDAYc7zvRf4I9MHyc4FN0cfRc8KcCEOeybhie8q4mW4HIPgCsqD6KvctpiAr5DXaXdwGHqCZlKDafeRZsBXScEWQLP6gyBVMRGDfRPw2A8UMV//25mr833DFHy53Cx8qlc3k5qE7/1coZnUAth6ehR42FUatoEJeP/Tio4STEapeL596LldI6PdXFaXJg4O6QHHjNm53YdYop/PRAq2MqNHgMdcBeNx2D0JH/yhIlGCVHg28g0Eo92G63yVGQ4FcngEevuMX8PxHuBjzT5o1gOa0ZFKmpr1fN9XxILIF8A3BHwTAy1VoqrOlxzRnm/abD/f+64GfDYFm4Pvwws8Xwkuz8E3Eni+xuGrntsN6nyZjFH4HsZQkdlGwObrMPBEJe1ewfPtDzyfkbnd7IyG72BS1/kMp90HgT++mgfQesAGPdISnm8/em7XWJ1PCOTwqK7ztaPnswCa0QPAx5fwfJW0e72R0W4OhINKJueKzAZLLQ+tBXwVALe03el3hW73WK18pX9EY/BVPN+jP5zzfEHaHUX38zUMX43no6cXJ2Uevo+u1an0gm/pKJBlblpOML/hpPrx2scqgxm1yOsr//fRrVD9QHx1ZwQoSCWkEvMBElcGqqpbTwkkEfcsSmWRs80YoubZtc1jDrpF9uPAp5fwfAfQ1+1uMRH5ZjJB5BtB9QSllgqY7ej56gH4jqv8nmH05YW3rybyKVdI93jaF5eLHlFHzOsOWxRAAVIhCnLc39vxSnlD5AUxKWOIeV+c6i+TqILRQy8QdHkJz7cPfd3uThORLxvM7Sab4/kOodfoY60BvNoSDY28Kx3RErFgEd1FpSqvV86L2WmVcItEvCIluaK3X8TzJdF1PmNzu46j2+ib4PkOtwJ8sDadMOHgZ3VSCBwhCAlW86PiXgilutznMoiZMoSXfwgWqfPdYgy+qum1oRHo6QuWyzDr+Z6gRbQWACoaa6vWr69e7nwlP1IpQo7EVzjHZiBT1nAuskdLzO0eBP7OqOcTup+vuxdheK2WB9ZywNEqAK69VDCSLkncn2UQWQkRZwGEjoKyA6d7oP+y9nw9+Xme74BxzydQyVENn2HP9+7K6L2VtL7rgCEBJYXzQhp/bwckPERR4gu97nI6AtvS8KZ/Vdx6DjYUF3i+bwPXmYAvH3i+oSSqq0e30RucXnsP8MlWPAXrEcA5C6AqEErcoxnUrg7yXR6UJLESvOVZRXIc9lzWKbiqzncreobDCHy5LDiehq+7Vw84DML3IGtUZLYALjkkrkDoIEqK4osZJvfGedsJj9c8r/CkjnZnNujBdwDfIHput2H4Kp7PcVGDQwF8aaPX7b67VSPfWpdhWg5HPySgrPjtH5d5w5RH2oNcaEFFehA9w9HwQkFVdT6VHEV1dRu/aPz3gE+3eiRYqwgoGkfGrCQQw+HumQipkKrce6Nat6BnjTabKLXkc0Gdb2QOPoOllne1A3ztPAoWpg9CypG8YSqCh0Au3PrPBQOOxuGrzO06qOSwXijIcJ3vEPAn7XIi7SWZ6FXnt5ZchnIezsJlZ4bQa7X0mfB8lX6+oWSwYoHZud0HaJEZDgvgMuUqOB/2uTsVYXfBIz3/rpMH0ddwNLwguBAaPtfV6/N19Riv872DFqzz2VHwYmUYYNJT3JYOc1vG45Inq3P7aOD5jNX5XBc5mER1duEanuF4L/Cn7Xgy1nUE9AVMhyS3ZkLsy3nMuLNc3oqe220cPme2n08OjqK6+3ANL4t7mCZdNH6tAthYN4zBMFh0FK8bj3LPxQgnI36lzjeE7udreMAxW+dzkEMjqO5u4/AdooUaC9ZPClaNl2F8Aa4SvP1sHI/ZBVmH0Gu1mKnzzYDnIZMjqM5uvRo95jzfO4FPtXsWalcPKBp9cd5RvOlCjIiCogsCRpTg2+hb3Te2YyKo83nIoeE5+CrTa6rxD3+oXeFT6C++J/UivOtyKq7swIaswz0nolxXhIkILw3n3a8CG018M4ol6EzA4CiqK4qbvhhsuMHI5ylKjuRwzmuvUkvNZyAVlkzEyrhSrE8AU77i/i6PydECp/LibleKJ1ntNSo1KklwfVUc3irdzFbHPZsTiA2qIfhEsJR1Ouzfn/f8L5Ud1bbHvjfn8M/bp/nsgTF68976BLBnxlHfTOb41r0TlCIqNxMt+8rQGtY+grDAv+lkLhM7XuzKdjru7FUmDcRVR0Em7I9ORspf6i54qDZdTkABnoSwdJgO++u0G6ZToZ6KsGGwzMxI/qmxROnl4HzTxMgXIIeIPbsvInuc8uTms8WemQ2uqxy9bn4jY66Q7zx8XTa8O+yLNyqBuhZORbs2IzQmCU63pPhPEegvQLd4JkzoVQr1FQys3wIKHyeR3tOlNhZzk9tPFrqznY4nHbFqCKtgvE8KfODXof0hbNdCtDLxyf1TLvKUWzmx/6FQb1Soi4pG/wMHSdlRHUcHo9HzO0NT0emyr6Si7Cp8sfqfoFHifuCzXAPr+qzfmRAXyAkKT0XR13gKgB8CvwRcMpNeJALVcfxAInHh5uhEx7TvO74y5d9+E90k4VoA2zSFy4QiejxE4icJypQrD/8UfdH8OTMQKhxk7PiBeMfYzvBkPCVLjjQG4a+hu7MjFsB2zONRhXfWI/F0HFmel9X/B3g1cNaEV3BRCFT8+MFE7MLOaCqRkmXHB2nm6L8Ofbd1zwLYPv5RVgYj5W1lEt+PknguVh0FAZ4BXg9cMAOhBFTixP5YbGxnZCoxXfbdskKZOQOvB/6yHSG0DakOKE8R/5cIXtqrnWb+N+CXzaVjiUDGT+yPJ8Z2RScTKVl2ysbS8RvRTRQRC+DS/q2xtWEMx8Nyn6Tja3FC0x5y4X1i/wu4Azhj0hOe2J9IjO2KTMUysmjQE74WvUpDzALYTiMaH/yNkq7PdeDg1Gu2eR64CzhpzhP6sRP74vGxm6OpeEqWDHrCVwN/DUQtgE3ixdz1O/NCE+HnQoRPXPFOrv8bGH5jAxOQ8ZMDscTYruh0IlUuuSVjnvBXg4FJyALYLiMTV+FkHLo+34GPvFKmfybwhKdMpWOBjL04EOs4uzs6nUjJkkFP+Dp0b+MGC2CbSHZIQi96dPwkThm5WCS8HThm0BNGTw0kNpzdG52KZ2TRYLH6leg7cXZaAFuvFLPwwaAuGH86giovOtt3HHgF8IJBTxg51R/bcHZPNBVPy6JTVqY84Z3oGZNOC2DzxrKGQmClLhirVxes1YkgzR016Amjp/fEOs7tjaY6Un4pVDQG4V2BJ4xaABstw8zN9zftiCxSF6yXjn8liIjm0vGeWMeZgdhkPO2X3ZKxdHw3ekWvDesdwJZPzkvUBWt1DF0nfN7MCalAGO883R8z7QnvRF9o32cBbCyCNnW/l1EXrNVJdBfNf5t4/8ATRk/vjXWc3as9oWvOE74cXazuswC2spauC9bqFHAv8H/mBiYyenpPLHG2P5qKp416wtuBzwMJC2CrZuLl1QVrdTQofTxnLhLK2OndsQ2n98WmYhm/5JnzhHcB/wj0WACvfglmWYOYZdYF66XjO4D/NDUwcZGRM7vinacHYlPRGVkw6Al/MYBwy3oDsC1ayVdQF6zVefSMyTMmvi16YOJHzuyOdZ7pj6bjGVlwS8bS8UvRXTTXrycATZyX5mtldcFaXUTXCX9qCkKBjJzdFdtwuj82HU/LQqhgDMKfRxerey2AraaV1QXrpeNXozusjXhCR0PYdepgbDo2Iwte0Vg6/oWgRLPZAthKKXzldcFanQlGnf9uCkIXP3J2Z7T75MHYdDQr8wa7aF6GXpZumwWwlWhfeV2wVpfQdcIfm/OEMnxuR6zr1P54KppVec9cOh5FNzDcYAFsJa28LlirKfS1GwYh9CPnd0S6Th6ITsdmZC6cl6YgvA34wtVIx7YMs9wXra4uWKsLwD2mSjROUKIZ2x7rfnEolo5mZT5kzhO+DD13fP21BmCDK6Su3WoUq6wL1hsd3wE8bQpCDz9y/qZoz7FkIhXN6RKNMhcJv42BBTttBDQROldfF6yXju8CvmsinAvtCUPjN0a6XzwYT0dzsmDQEw5h6I6gFsCGQ2BDdcFapYH7TEFYGZiM3RjpPLk/lo5lZcGgJxxG9xNutQCutRqrC9ZqIvCEPzLoCcNj22Odx5OxdDQn8+GCMU/4UvRtK7ZZANd4CNNgXbBWKXRT6/cMesLwhRuiXceSiUw4b7ROmASeAvZaABvPWqsfRTVeF6xVBngVujHAiCd0kaHxG6JdJwbjM5G8zIcKCmlmHa3+wBP2tzOAop0BBEzUBWuVQy+v8Q1zAxM/NH5DtPPkgfhMJCvzkawxTziAnju+2UbAtSLYTF2wXiS8F/iOOU/ohy7cGO06PhLPhPOBJzSXjr8G7Fh/ALbIwrSG6oL1IuFrgW8Z9ITe+NZo989GEplwQZqcttsfjOIPrrcI2BL9hAbrgrXKBxB+xZwnLHuXtka6jiXjmXBB5sJ5Y55wJ7qL5sB6AVC0CoCG64K1KqLrhF82AyE4+KFLWyJdJ4bimWhO5iIzxjzhTvRKrbutB7zaMlsXrAfh/egWKSMjThcZurg10v3CLfFMqKhy4bwxT7g/iNi7LIBX00GarwvWqgC8Bvi6QU8Ymrg+0nP0JYmMV5Q5w57we8C+VgZQXGvgN6EuWKsyesbkSVPp2EV6lzeHe46NJmZCRZUN56QpT3gjuoFh5BqOgKvqqGquzNcF60H4ZnSfnqGBie9d3hzuOp6MZ8MlslFznvBG9CKZ+65RAFvwK9GcumA9CH8DfRWbEU/oIUMT14e7n78lkQ0VyUWyxjzhAHpmp9+WYa7WoLg5dcF6EBocHes64dSmUM/zt8ZnPF/lvLwyOTp+arF0bCOgySjYvLpgPXbuBT5nzhP67uSmcPfR0Xg2VFLZSE6aioTb0EX1Wy2ATQ+BTa0L1nk33gr8hSkIHXxvclO46/hIPO+VVNZgnXAzuk6YbAUA524Us3YjGL9pW29uXbAehG8xAWEFBhfpTWwOd73wkkTOK6tMJKeUoUi4I/CEg2sNYJSrfPFzjTpp5kqhza8L1tNb0B3LBiBUePju1MZw3/O3dXS4vhKeuVW5tqFvCHlvVfHgqiuHLlbuRc95rmTAIUBIhJgMXuss40tUyTACfRehMXQ7fPNGSD74myRdn+2g9GAZFVGVu3E2U28GJtEroRZYZZ2qcrA8fDHVF+JnI/H0jmdzYa+sIr4rVIP3O5bAduAj6BsAHRVKXRM33rZqU9lBiJUF0MoCaGVlAbSyAFpZWQCtLIBWVhZAKwuglZUF0MoCaGVlAbSyAFpZWQCtLIBWVhZAKwuglZUF0MoCaGVlAbSyAFpZWQCtLIBWVhZAKwuglZUF0MoCaGVVV/8/AKGiojO76Zy3AAAAAElFTkSuQmCC)';
|
5911
|
this.appIcon.style.backgroundImage = 'url(data:image/png;base64,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)';
|
6999
|
this.appIcon.style.backgroundSize = '90% 90%';
|
5912
|
this.appIcon.style.backgroundSize = '90% 90%';
|
7000
|
}));
|
5913
|
}));
|
7001
|
|
5914
|
|
7002
|
- if (urlParams['embed'] != '1')
|
|
|
7003
|
- {
|
5915
|
+ if (urlParams['embed'] != '1') {
|
7004
|
this.menubarContainer.appendChild(this.appIcon);
|
5916
|
this.menubarContainer.appendChild(this.appIcon);
|
7005
|
}
|
5917
|
}
|
7006
|
|
5918
|
|
|
@@ -7025,20 +5937,16 @@ App.prototype.updateHeader = function() |
|
@@ -7025,20 +5937,16 @@ App.prototype.updateHeader = function() |
7025
|
this.fname.style.display = 'none';
|
5937
|
this.fname.style.display = 'none';
|
7026
|
|
5938
|
|
7027
|
// Prevents focus
|
5939
|
// Prevents focus
|
7028
|
- mxEvent.addListener(this.fname, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown',
|
|
|
7029
|
- mxUtils.bind(this, function(evt)
|
|
|
7030
|
- {
|
|
|
7031
|
- evt.preventDefault();
|
|
|
7032
|
- }));
|
5940
|
+ mxEvent.addListener(this.fname, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown',
|
|
|
5941
|
+ mxUtils.bind(this, function (evt) {
|
|
|
5942
|
+ evt.preventDefault();
|
|
|
5943
|
+ }));
|
7033
|
|
5944
|
|
7034
|
- mxEvent.addListener(this.fname, 'click', mxUtils.bind(this, function(evt)
|
|
|
7035
|
- {
|
5945
|
+ mxEvent.addListener(this.fname, 'click', mxUtils.bind(this, function (evt) {
|
7036
|
var file = this.getCurrentFile();
|
5946
|
var file = this.getCurrentFile();
|
7037
|
|
5947
|
|
7038
|
- if (file != null && file.isRenamable())
|
|
|
7039
|
- {
|
|
|
7040
|
- if (this.editor.graph.isEditing())
|
|
|
7041
|
- {
|
5948
|
+ if (file != null && file.isRenamable()) {
|
|
|
5949
|
+ if (this.editor.graph.isEditing()) {
|
7042
|
this.editor.graph.stopEditing();
|
5950
|
this.editor.graph.stopEditing();
|
7043
|
}
|
5951
|
}
|
7044
|
|
5952
|
|
|
@@ -7050,8 +5958,7 @@ App.prototype.updateHeader = function() |
|
@@ -7050,8 +5958,7 @@ App.prototype.updateHeader = function() |
7050
|
|
5958
|
|
7051
|
this.fnameWrapper.appendChild(this.fname);
|
5959
|
this.fnameWrapper.appendChild(this.fname);
|
7052
|
|
5960
|
|
7053
|
- if (urlParams['embed'] != '1')
|
|
|
7054
|
- {
|
5961
|
+ if (urlParams['embed'] != '1') {
|
7055
|
this.menubarContainer.appendChild(this.fnameWrapper);
|
5962
|
this.menubarContainer.appendChild(this.fnameWrapper);
|
7056
|
|
5963
|
|
7057
|
this.menubar.container.style.position = 'absolute';
|
5964
|
this.menubar.container.style.position = 'absolute';
|
|
@@ -7079,35 +5986,31 @@ App.prototype.updateHeader = function() |
|
@@ -7079,35 +5986,31 @@ App.prototype.updateHeader = function() |
7079
|
this.toggleFormatElement.style.backgroundRepeat = 'no-repeat';
|
5986
|
this.toggleFormatElement.style.backgroundRepeat = 'no-repeat';
|
7080
|
this.toolbarContainer.appendChild(this.toggleFormatElement);
|
5987
|
this.toolbarContainer.appendChild(this.toggleFormatElement);
|
7081
|
|
5988
|
|
7082
|
- if (uiTheme == 'dark')
|
|
|
7083
|
- {
|
5989
|
+ if (uiTheme == 'dark') {
|
7084
|
this.toggleFormatElement.style.filter = 'invert(100%)';
|
5990
|
this.toggleFormatElement.style.filter = 'invert(100%)';
|
7085
|
}
|
5991
|
}
|
7086
|
|
5992
|
|
7087
|
// Prevents focus
|
5993
|
// Prevents focus
|
7088
|
- mxEvent.addListener(this.toggleFormatElement, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown',
|
|
|
7089
|
- mxUtils.bind(this, function(evt)
|
|
|
7090
|
- {
|
|
|
7091
|
- evt.preventDefault();
|
|
|
7092
|
- }));
|
5994
|
+ mxEvent.addListener(this.toggleFormatElement, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown',
|
|
|
5995
|
+ mxUtils.bind(this, function (evt) {
|
|
|
5996
|
+ evt.preventDefault();
|
|
|
5997
|
+ }));
|
7093
|
|
5998
|
|
7094
|
- mxEvent.addListener(this.toggleFormatElement, 'click', mxUtils.bind(this, function(evt)
|
|
|
7095
|
- {
|
|
|
7096
|
- EditorUi.logEvent({category: 'TOOLBAR-ACTION-',
|
|
|
7097
|
- action: 'formatPanel'});
|
5999
|
+ mxEvent.addListener(this.toggleFormatElement, 'click', mxUtils.bind(this, function (evt) {
|
|
|
6000
|
+ EditorUi.logEvent({
|
|
|
6001
|
+ category: 'TOOLBAR-ACTION-',
|
|
|
6002
|
+ action: 'formatPanel'
|
|
|
6003
|
+ });
|
7098
|
|
6004
|
|
7099
|
this.actions.get('formatPanel').funct();
|
6005
|
this.actions.get('formatPanel').funct();
|
7100
|
mxEvent.consume(evt);
|
6006
|
mxEvent.consume(evt);
|
7101
|
}));
|
6007
|
}));
|
7102
|
|
6008
|
|
7103
|
- var toggleFormatPanel = mxUtils.bind(this, function()
|
|
|
7104
|
- {
|
|
|
7105
|
- if (this.formatWidth > 0)
|
|
|
7106
|
- {
|
6009
|
+ var toggleFormatPanel = mxUtils.bind(this, function () {
|
|
|
6010
|
+ if (this.formatWidth > 0) {
|
7107
|
this.toggleFormatElement.style.backgroundImage = 'url(\'' + this.formatShowImage + '\')';
|
6011
|
this.toggleFormatElement.style.backgroundImage = 'url(\'' + this.formatShowImage + '\')';
|
7108
|
}
|
6012
|
}
|
7109
|
- else
|
|
|
7110
|
- {
|
6013
|
+ else {
|
7111
|
this.toggleFormatElement.style.backgroundImage = 'url(\'' + this.formatHideImage + '\')';
|
6014
|
this.toggleFormatElement.style.backgroundImage = 'url(\'' + this.formatHideImage + '\')';
|
7112
|
}
|
6015
|
}
|
7113
|
});
|
6016
|
});
|
|
@@ -7133,39 +6036,35 @@ App.prototype.updateHeader = function() |
|
@@ -7133,39 +6036,35 @@ App.prototype.updateHeader = function() |
7133
|
|
6036
|
|
7134
|
// Prevents focus
|
6037
|
// Prevents focus
|
7135
|
mxEvent.addListener(this.fullscreenElement, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown',
|
6038
|
mxEvent.addListener(this.fullscreenElement, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown',
|
7136
|
- mxUtils.bind(this, function(evt)
|
|
|
7137
|
- {
|
|
|
7138
|
- evt.preventDefault();
|
|
|
7139
|
- }));
|
6039
|
+ mxUtils.bind(this, function (evt) {
|
|
|
6040
|
+ evt.preventDefault();
|
|
|
6041
|
+ }));
|
7140
|
|
6042
|
|
7141
|
// Some style changes in Atlas theme
|
6043
|
// Some style changes in Atlas theme
|
7142
|
- if (uiTheme == 'atlas')
|
|
|
7143
|
- {
|
6044
|
+ if (uiTheme == 'atlas') {
|
7144
|
mxUtils.setOpacity(this.toggleFormatElement, 70);
|
6045
|
mxUtils.setOpacity(this.toggleFormatElement, 70);
|
7145
|
mxUtils.setOpacity(this.fullscreenElement, 70);
|
6046
|
mxUtils.setOpacity(this.fullscreenElement, 70);
|
7146
|
}
|
6047
|
}
|
7147
|
|
6048
|
|
7148
|
var initialPosition = this.hsplitPosition;
|
6049
|
var initialPosition = this.hsplitPosition;
|
7149
|
|
6050
|
|
7150
|
- if (uiTheme == 'dark')
|
|
|
7151
|
- {
|
6051
|
+ if (uiTheme == 'dark') {
|
7152
|
this.fullscreenElement.style.filter = 'invert(100%)';
|
6052
|
this.fullscreenElement.style.filter = 'invert(100%)';
|
7153
|
}
|
6053
|
}
|
7154
|
|
6054
|
|
7155
|
- mxEvent.addListener(this.fullscreenElement, 'click', mxUtils.bind(this, function(evt)
|
|
|
7156
|
- {
|
6055
|
+ mxEvent.addListener(this.fullscreenElement, 'click', mxUtils.bind(this, function (evt) {
|
7157
|
var visible = this.fullscreenMode;
|
6056
|
var visible = this.fullscreenMode;
|
7158
|
|
6057
|
|
7159
|
- EditorUi.logEvent({category: 'TOOLBAR-ACTION-',
|
|
|
7160
|
- action: 'fullscreen' , currentstate: visible});
|
6058
|
+ EditorUi.logEvent({
|
|
|
6059
|
+ category: 'TOOLBAR-ACTION-',
|
|
|
6060
|
+ action: 'fullscreen', currentstate: visible
|
|
|
6061
|
+ });
|
7161
|
|
6062
|
|
7162
|
- if (uiTheme != 'atlas' && urlParams['embed'] != '1')
|
|
|
7163
|
- {
|
6063
|
+ if (uiTheme != 'atlas' && urlParams['embed'] != '1') {
|
7164
|
this.toggleCompactMode(visible);
|
6064
|
this.toggleCompactMode(visible);
|
7165
|
}
|
6065
|
}
|
7166
|
|
6066
|
|
7167
|
- if (!visible)
|
|
|
7168
|
- {
|
6067
|
+ if (!visible) {
|
7169
|
initialPosition = this.hsplitPosition;
|
6068
|
initialPosition = this.hsplitPosition;
|
7170
|
}
|
6069
|
}
|
7171
|
|
6070
|
|
|
@@ -7178,8 +6077,7 @@ App.prototype.updateHeader = function() |
|
@@ -7178,8 +6077,7 @@ App.prototype.updateHeader = function() |
7178
|
/**
|
6077
|
/**
|
7179
|
* Adds compact UI toggle.
|
6078
|
* Adds compact UI toggle.
|
7180
|
*/
|
6079
|
*/
|
7181
|
- if (urlParams['embed'] != '1')
|
|
|
7182
|
- {
|
6080
|
+ if (urlParams['embed'] != '1') {
|
7183
|
this.toggleElement = document.createElement('a');
|
6081
|
this.toggleElement = document.createElement('a');
|
7184
|
this.toggleElement.setAttribute('title', mxResources.get('collapseExpand'));
|
6082
|
this.toggleElement.setAttribute('title', mxResources.get('collapseExpand'));
|
7185
|
this.toggleElement.className = 'geButton';
|
6083
|
this.toggleElement.className = 'geButton';
|
|
@@ -7198,37 +6096,33 @@ App.prototype.updateHeader = function() |
|
@@ -7198,37 +6096,33 @@ App.prototype.updateHeader = function() |
7198
|
this.toggleElement.style.backgroundPosition = '50% 50%';
|
6096
|
this.toggleElement.style.backgroundPosition = '50% 50%';
|
7199
|
this.toggleElement.style.backgroundRepeat = 'no-repeat';
|
6097
|
this.toggleElement.style.backgroundRepeat = 'no-repeat';
|
7200
|
|
6098
|
|
7201
|
- if (uiTheme == 'dark')
|
|
|
7202
|
- {
|
6099
|
+ if (uiTheme == 'dark') {
|
7203
|
this.toggleElement.style.filter = 'invert(100%)';
|
6100
|
this.toggleElement.style.filter = 'invert(100%)';
|
7204
|
}
|
6101
|
}
|
7205
|
|
6102
|
|
7206
|
// Prevents focus
|
6103
|
// Prevents focus
|
7207
|
mxEvent.addListener(this.toggleElement, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown',
|
6104
|
mxEvent.addListener(this.toggleElement, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown',
|
7208
|
- mxUtils.bind(this, function(evt)
|
|
|
7209
|
- {
|
|
|
7210
|
- evt.preventDefault();
|
|
|
7211
|
- }));
|
6105
|
+ mxUtils.bind(this, function (evt) {
|
|
|
6106
|
+ evt.preventDefault();
|
|
|
6107
|
+ }));
|
7212
|
|
6108
|
|
7213
|
// Toggles compact mode
|
6109
|
// Toggles compact mode
|
7214
|
- mxEvent.addListener(this.toggleElement, 'click', mxUtils.bind(this, function(evt)
|
|
|
7215
|
- {
|
|
|
7216
|
- EditorUi.logEvent({category: 'TOOLBAR-ACTION-',
|
|
|
7217
|
- action: 'toggleUI'});
|
6110
|
+ mxEvent.addListener(this.toggleElement, 'click', mxUtils.bind(this, function (evt) {
|
|
|
6111
|
+ EditorUi.logEvent({
|
|
|
6112
|
+ category: 'TOOLBAR-ACTION-',
|
|
|
6113
|
+ action: 'toggleUI'
|
|
|
6114
|
+ });
|
7218
|
this.toggleCompactMode();
|
6115
|
this.toggleCompactMode();
|
7219
|
mxEvent.consume(evt);
|
6116
|
mxEvent.consume(evt);
|
7220
|
}));
|
6117
|
}));
|
7221
|
|
6118
|
|
7222
|
- if (uiTheme != 'atlas')
|
|
|
7223
|
- {
|
6119
|
+ if (uiTheme != 'atlas') {
|
7224
|
this.toolbarContainer.appendChild(this.toggleElement);
|
6120
|
this.toolbarContainer.appendChild(this.toggleElement);
|
7225
|
}
|
6121
|
}
|
7226
|
|
6122
|
|
7227
|
// Enable compact mode for small screens except for Firefox where the height is wrong
|
6123
|
// Enable compact mode for small screens except for Firefox where the height is wrong
|
7228
|
- if (!mxClient.IS_FF && screen.height <= 740 && typeof this.toggleElement.click !== 'undefined')
|
|
|
7229
|
- {
|
|
|
7230
|
- window.setTimeout(mxUtils.bind(this, function()
|
|
|
7231
|
- {
|
6124
|
+ if (!mxClient.IS_FF && screen.height <= 740 && typeof this.toggleElement.click !== 'undefined') {
|
|
|
6125
|
+ window.setTimeout(mxUtils.bind(this, function () {
|
7232
|
this.toggleElement.click();
|
6126
|
this.toggleElement.click();
|
7233
|
}), 0);
|
6127
|
}), 0);
|
7234
|
}
|
6128
|
}
|
|
@@ -7241,12 +6135,10 @@ App.prototype.updateHeader = function() |
|
@@ -7241,12 +6135,10 @@ App.prototype.updateHeader = function() |
7241
|
* 添加侦听器用于自动保存本地更改的关系图
|
6135
|
* 添加侦听器用于自动保存本地更改的关系图
|
7242
|
* 切换紧凑模式
|
6136
|
* 切换紧凑模式
|
7243
|
*/
|
6137
|
*/
|
7244
|
-App.prototype.toggleCompactMode = function(visible)
|
|
|
7245
|
-{
|
6138
|
+App.prototype.toggleCompactMode = function (visible) {
|
7246
|
visible = (visible != null) ? visible : this.compactMode;
|
6139
|
visible = (visible != null) ? visible : this.compactMode;
|
7247
|
|
6140
|
|
7248
|
- if (visible)
|
|
|
7249
|
- {
|
6141
|
+ if (visible) {
|
7250
|
this.menubar.container.style.position = 'absolute';
|
6142
|
this.menubar.container.style.position = 'absolute';
|
7251
|
this.menubar.container.style.paddingLeft = '59px';
|
6143
|
this.menubar.container.style.paddingLeft = '59px';
|
7252
|
this.menubar.container.style.paddingTop = '';
|
6144
|
this.menubar.container.style.paddingTop = '';
|
|
@@ -7261,8 +6153,7 @@ App.prototype.toggleCompactMode = function(visible) |
|
@@ -7261,8 +6153,7 @@ App.prototype.toggleCompactMode = function(visible) |
7261
|
this.refresh();
|
6153
|
this.refresh();
|
7262
|
this.toggleElement.style.backgroundImage = 'url(\'' + this.chevronUpImage + '\')';
|
6154
|
this.toggleElement.style.backgroundImage = 'url(\'' + this.chevronUpImage + '\')';
|
7263
|
}
|
6155
|
}
|
7264
|
- else
|
|
|
7265
|
- {
|
6156
|
+ else {
|
7266
|
this.menubar.container.style.position = 'relative';
|
6157
|
this.menubar.container.style.position = 'relative';
|
7267
|
this.menubar.container.style.paddingLeft = '4px';
|
6158
|
this.menubar.container.style.paddingLeft = '4px';
|
7268
|
this.menubar.container.style.paddingTop = '0px';
|
6159
|
this.menubar.container.style.paddingTop = '0px';
|
|
@@ -7285,8 +6176,7 @@ App.prototype.toggleCompactMode = function(visible) |
|
@@ -7285,8 +6176,7 @@ App.prototype.toggleCompactMode = function(visible) |
7285
|
* Adds the listener for automatically saving the diagram for local changes.
|
6176
|
* Adds the listener for automatically saving the diagram for local changes.
|
7286
|
* 添加侦听器用于自动保存本地更改的关系图
|
6177
|
* 添加侦听器用于自动保存本地更改的关系图
|
7287
|
*/
|
6178
|
*/
|
7288
|
-App.prototype.updateUserElement = function()
|
|
|
7289
|
-{
|
6179
|
+App.prototype.updateUserElement = function () {
|
7290
|
if ((this.drive == null || this.drive.getUser() == null) &&
|
6180
|
if ((this.drive == null || this.drive.getUser() == null) &&
|
7291
|
(this.oneDrive == null || this.oneDrive.getUser() == null) &&
|
6181
|
(this.oneDrive == null || this.oneDrive.getUser() == null) &&
|
7292
|
(this.dropbox == null || this.dropbox.getUser() == null) &&
|
6182
|
(this.dropbox == null || this.dropbox.getUser() == null) &&
|
|
@@ -7294,16 +6184,13 @@ App.prototype.updateUserElement = function() |
|
@@ -7294,16 +6184,13 @@ App.prototype.updateUserElement = function() |
7294
|
(this.gitLab == null || this.gitLab.getUser() == null) &&
|
6184
|
(this.gitLab == null || this.gitLab.getUser() == null) &&
|
7295
|
(this.trello == null || !this.trello.isAuthorized())) //TODO Trello no user issue
|
6185
|
(this.trello == null || !this.trello.isAuthorized())) //TODO Trello no user issue
|
7296
|
{
|
6186
|
{
|
7297
|
- if (this.userElement != null)
|
|
|
7298
|
- {
|
6187
|
+ if (this.userElement != null) {
|
7299
|
this.userElement.parentNode.removeChild(this.userElement);
|
6188
|
this.userElement.parentNode.removeChild(this.userElement);
|
7300
|
this.userElement = null;
|
6189
|
this.userElement = null;
|
7301
|
}
|
6190
|
}
|
7302
|
}
|
6191
|
}
|
7303
|
- else
|
|
|
7304
|
- {
|
|
|
7305
|
- if (this.userElement == null)
|
|
|
7306
|
- {
|
6192
|
+ else {
|
|
|
6193
|
+ if (this.userElement == null) {
|
7307
|
this.userElement = document.createElement('a');
|
6194
|
this.userElement = document.createElement('a');
|
7308
|
this.userElement.className = 'geItem';
|
6195
|
this.userElement.className = 'geItem';
|
7309
|
this.userElement.style.position = 'absolute';
|
6196
|
this.userElement.style.position = 'absolute';
|
|
@@ -7314,7 +6201,7 @@ App.prototype.updateUserElement = function() |
|
@@ -7314,7 +6201,7 @@ App.prototype.updateUserElement = function() |
7314
|
this.userElement.style.padding = '2px';
|
6201
|
this.userElement.style.padding = '2px';
|
7315
|
this.userElement.style.paddingRight = '16px';
|
6202
|
this.userElement.style.paddingRight = '16px';
|
7316
|
this.userElement.style.verticalAlign = 'middle';
|
6203
|
this.userElement.style.verticalAlign = 'middle';
|
7317
|
- this.userElement.style.backgroundImage = 'url(' + IMAGE_PATH + '/expanded.gif)';
|
6204
|
+ this.userElement.style.backgroundImage = 'url(' + IMAGE_PATH + '/expanded.gif)';
|
7318
|
this.userElement.style.backgroundPosition = '100% 60%';
|
6205
|
this.userElement.style.backgroundPosition = '100% 60%';
|
7319
|
this.userElement.style.backgroundRepeat = 'no-repeat';
|
6206
|
this.userElement.style.backgroundRepeat = 'no-repeat';
|
7320
|
|
6207
|
|
|
@@ -7322,15 +6209,12 @@ App.prototype.updateUserElement = function() |
|
@@ -7322,15 +6209,12 @@ App.prototype.updateUserElement = function() |
7322
|
|
6209
|
|
7323
|
// Prevents focus
|
6210
|
// Prevents focus
|
7324
|
mxEvent.addListener(this.userElement, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown',
|
6211
|
mxEvent.addListener(this.userElement, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown',
|
7325
|
- mxUtils.bind(this, function(evt)
|
|
|
7326
|
- {
|
|
|
7327
|
- evt.preventDefault();
|
|
|
7328
|
- }));
|
6212
|
+ mxUtils.bind(this, function (evt) {
|
|
|
6213
|
+ evt.preventDefault();
|
|
|
6214
|
+ }));
|
7329
|
|
6215
|
|
7330
|
- mxEvent.addListener(this.userElement, 'click', mxUtils.bind(this, function(evt)
|
|
|
7331
|
- {
|
|
|
7332
|
- if (this.userPanel == null)
|
|
|
7333
|
- {
|
6216
|
+ mxEvent.addListener(this.userElement, 'click', mxUtils.bind(this, function (evt) {
|
|
|
6217
|
+ if (this.userPanel == null) {
|
7334
|
var div = document.createElement('div');
|
6218
|
var div = document.createElement('div');
|
7335
|
div.className = 'geDialog';
|
6219
|
div.className = 'geDialog';
|
7336
|
div.style.position = 'absolute';
|
6220
|
div.style.position = 'absolute';
|
|
@@ -7345,12 +6229,10 @@ App.prototype.updateUserElement = function() |
|
@@ -7345,12 +6229,10 @@ App.prototype.updateUserElement = function() |
7345
|
this.userPanel = div;
|
6229
|
this.userPanel = div;
|
7346
|
}
|
6230
|
}
|
7347
|
|
6231
|
|
7348
|
- if (this.userPanel.parentNode != null)
|
|
|
7349
|
- {
|
6232
|
+ if (this.userPanel.parentNode != null) {
|
7350
|
this.userPanel.parentNode.removeChild(this.userPanel);
|
6233
|
this.userPanel.parentNode.removeChild(this.userPanel);
|
7351
|
}
|
6234
|
}
|
7352
|
- else
|
|
|
7353
|
- {
|
6235
|
+ else {
|
7354
|
var connected = false;
|
6236
|
var connected = false;
|
7355
|
this.userPanel.innerHTML = '';
|
6237
|
this.userPanel.innerHTML = '';
|
7356
|
|
6238
|
|
|
@@ -7362,50 +6244,41 @@ App.prototype.updateUserElement = function() |
|
@@ -7362,50 +6244,41 @@ App.prototype.updateUserElement = function() |
7362
|
img.style.top = '8px';
|
6244
|
img.style.top = '8px';
|
7363
|
img.style.right = '8px';
|
6245
|
img.style.right = '8px';
|
7364
|
|
6246
|
|
7365
|
- mxEvent.addListener(img, 'click', mxUtils.bind(this, function()
|
|
|
7366
|
- {
|
|
|
7367
|
- if (this.userPanel.parentNode != null)
|
|
|
7368
|
- {
|
6247
|
+ mxEvent.addListener(img, 'click', mxUtils.bind(this, function () {
|
|
|
6248
|
+ if (this.userPanel.parentNode != null) {
|
7369
|
this.userPanel.parentNode.removeChild(this.userPanel);
|
6249
|
this.userPanel.parentNode.removeChild(this.userPanel);
|
7370
|
}
|
6250
|
}
|
7371
|
}));
|
6251
|
}));
|
7372
|
|
6252
|
|
7373
|
this.userPanel.appendChild(img);
|
6253
|
this.userPanel.appendChild(img);
|
7374
|
|
6254
|
|
7375
|
- if (this.drive != null)
|
|
|
7376
|
- {
|
6255
|
+ if (this.drive != null) {
|
7377
|
var driveUsers = this.drive.getUsersList();
|
6256
|
var driveUsers = this.drive.getUsersList();
|
7378
|
|
6257
|
|
7379
|
- if (driveUsers.length > 0)
|
|
|
7380
|
- {
|
6258
|
+ if (driveUsers.length > 0) {
|
7381
|
// LATER: Cannot change user while file is open since close will not work with new
|
6259
|
// LATER: Cannot change user while file is open since close will not work with new
|
7382
|
// credentials and closing the file using fileLoaded(null) will show splash dialog.
|
6260
|
// credentials and closing the file using fileLoaded(null) will show splash dialog.
|
7383
|
- var closeFile = mxUtils.bind(this, function(callback, spinnerMsg)
|
|
|
7384
|
- {
|
6261
|
+ var closeFile = mxUtils.bind(this, function (callback, spinnerMsg) {
|
7385
|
var file = this.getCurrentFile();
|
6262
|
var file = this.getCurrentFile();
|
7386
|
|
6263
|
|
7387
|
- if (file != null && file.constructor == DriveFile)
|
|
|
7388
|
- {
|
6264
|
+ if (file != null && file.constructor == DriveFile) {
|
7389
|
this.spinner.spin(document.body, spinnerMsg);
|
6265
|
this.spinner.spin(document.body, spinnerMsg);
|
7390
|
|
6266
|
|
7391
|
-// file.close();
|
6267
|
+ // file.close();
|
7392
|
this.fileLoaded(null);
|
6268
|
this.fileLoaded(null);
|
7393
|
|
6269
|
|
7394
|
// LATER: Use callback to wait for thumbnail update
|
6270
|
// LATER: Use callback to wait for thumbnail update
|
7395
|
- window.setTimeout(mxUtils.bind(this, function()
|
|
|
7396
|
- {
|
6271
|
+ window.setTimeout(mxUtils.bind(this, function () {
|
7397
|
this.spinner.stop();
|
6272
|
this.spinner.stop();
|
7398
|
callback();
|
6273
|
callback();
|
7399
|
}), 2000);
|
6274
|
}), 2000);
|
7400
|
}
|
6275
|
}
|
7401
|
- else
|
|
|
7402
|
- {
|
6276
|
+ else {
|
7403
|
callback();
|
6277
|
callback();
|
7404
|
}
|
6278
|
}
|
7405
|
});
|
6279
|
});
|
7406
|
|
6280
|
|
7407
|
- var createUserRow = mxUtils.bind(this, function (user)
|
|
|
7408
|
- {
|
6281
|
+ var createUserRow = mxUtils.bind(this, function (user) {
|
7409
|
var tr = document.createElement('tr');
|
6282
|
var tr = document.createElement('tr');
|
7410
|
tr.setAttribute('title', 'User ID: ' + user.id);
|
6283
|
tr.setAttribute('title', 'User ID: ' + user.id);
|
7411
|
|
6284
|
|
|
@@ -7433,10 +6306,9 @@ App.prototype.updateUserElement = function() |
|
@@ -7433,10 +6306,9 @@ App.prototype.updateUserElement = function() |
7433
|
td.style.textOverflow = 'ellipsis';
|
6306
|
td.style.textOverflow = 'ellipsis';
|
7434
|
mxUtils.write(td, user.displayName +
|
6307
|
mxUtils.write(td, user.displayName +
|
7435
|
((user.isCurrent && driveUsers.length > 1) ?
|
6308
|
((user.isCurrent && driveUsers.length > 1) ?
|
7436
|
- ' (' + mxResources.get('default') + ')' : ''));
|
6309
|
+ ' (' + mxResources.get('default') + ')' : ''));
|
7437
|
|
6310
|
|
7438
|
- if (user.email != null)
|
|
|
7439
|
- {
|
6311
|
+ if (user.email != null) {
|
7440
|
mxUtils.br(td);
|
6312
|
mxUtils.br(td);
|
7441
|
|
6313
|
|
7442
|
var small = document.createElement('small');
|
6314
|
var small = document.createElement('small');
|
|
@@ -7454,25 +6326,20 @@ App.prototype.updateUserElement = function() |
|
@@ -7454,25 +6326,20 @@ App.prototype.updateUserElement = function() |
7454
|
td.appendChild(div);
|
6326
|
td.appendChild(div);
|
7455
|
tr.appendChild(td);
|
6327
|
tr.appendChild(td);
|
7456
|
|
6328
|
|
7457
|
- if (!user.isCurrent)
|
|
|
7458
|
- {
|
6329
|
+ if (!user.isCurrent) {
|
7459
|
tr.style.cursor = 'pointer';
|
6330
|
tr.style.cursor = 'pointer';
|
7460
|
tr.style.opacity = '0.3';
|
6331
|
tr.style.opacity = '0.3';
|
7461
|
|
6332
|
|
7462
|
- mxEvent.addListener(tr, 'click', mxUtils.bind(this, function(evt)
|
|
|
7463
|
- {
|
|
|
7464
|
- closeFile(mxUtils.bind(this, function()
|
|
|
7465
|
- {
|
6333
|
+ mxEvent.addListener(tr, 'click', mxUtils.bind(this, function (evt) {
|
|
|
6334
|
+ closeFile(mxUtils.bind(this, function () {
|
7466
|
this.stateArg = null;
|
6335
|
this.stateArg = null;
|
7467
|
this.drive.setUser(user);
|
6336
|
this.drive.setUser(user);
|
7468
|
|
6337
|
|
7469
|
- this.drive.authorize(true, mxUtils.bind(this, function()
|
|
|
7470
|
- {
|
6338
|
+ this.drive.authorize(true, mxUtils.bind(this, function () {
|
7471
|
this.setMode(App.MODE_GOOGLE);
|
6339
|
this.setMode(App.MODE_GOOGLE);
|
7472
|
this.hideDialog();
|
6340
|
this.hideDialog();
|
7473
|
this.showSplash();
|
6341
|
this.showSplash();
|
7474
|
- }), mxUtils.bind(this, function(resp)
|
|
|
7475
|
- {
|
6342
|
+ }), mxUtils.bind(this, function (resp) {
|
7476
|
this.handleError(resp);
|
6343
|
this.handleError(resp);
|
7477
|
}), true); //Remember is true since add account imply keeping that account
|
6344
|
}), true); //Remember is true since add account imply keeping that account
|
7478
|
}), mxResources.get('closingFile') + '...');
|
6345
|
}), mxResources.get('closingFile') + '...');
|
|
@@ -7492,8 +6359,7 @@ App.prototype.updateUserElement = function() |
|
@@ -7492,8 +6359,7 @@ App.prototype.updateUserElement = function() |
7492
|
driveUserTable.style.width = '100%';
|
6359
|
driveUserTable.style.width = '100%';
|
7493
|
driveUserTable.style.padding = '10px';
|
6360
|
driveUserTable.style.padding = '10px';
|
7494
|
|
6361
|
|
7495
|
- for (var i = 0; i < driveUsers.length; i++)
|
|
|
7496
|
- {
|
6362
|
+ for (var i = 0; i < driveUsers.length; i++) {
|
7497
|
driveUserTable.appendChild(createUserRow(driveUsers[i]));
|
6363
|
driveUserTable.appendChild(createUserRow(driveUsers[i]));
|
7498
|
}
|
6364
|
}
|
7499
|
|
6365
|
|
|
@@ -7505,12 +6371,9 @@ App.prototype.updateUserElement = function() |
|
@@ -7505,12 +6371,9 @@ App.prototype.updateUserElement = function() |
7505
|
div.style.whiteSpace = 'nowrap';
|
6371
|
div.style.whiteSpace = 'nowrap';
|
7506
|
div.style.borderTop = '1px solid rgb(224, 224, 224)';
|
6372
|
div.style.borderTop = '1px solid rgb(224, 224, 224)';
|
7507
|
|
6373
|
|
7508
|
- var btn = mxUtils.button(mxResources.get('signOut'), mxUtils.bind(this, function()
|
|
|
7509
|
- {
|
|
|
7510
|
- this.confirm(mxResources.get('areYouSure'), mxUtils.bind(this, function()
|
|
|
7511
|
- {
|
|
|
7512
|
- closeFile(mxUtils.bind(this, function()
|
|
|
7513
|
- {
|
6374
|
+ var btn = mxUtils.button(mxResources.get('signOut'), mxUtils.bind(this, function () {
|
|
|
6375
|
+ this.confirm(mxResources.get('areYouSure'), mxUtils.bind(this, function () {
|
|
|
6376
|
+ closeFile(mxUtils.bind(this, function () {
|
7514
|
this.stateArg = null;
|
6377
|
this.stateArg = null;
|
7515
|
this.drive.logout();
|
6378
|
this.drive.logout();
|
7516
|
this.setMode(App.MODE_GOOGLE);
|
6379
|
this.setMode(App.MODE_GOOGLE);
|
|
@@ -7523,24 +6386,20 @@ App.prototype.updateUserElement = function() |
|
@@ -7523,24 +6386,20 @@ App.prototype.updateUserElement = function() |
7523
|
btn.style.float = 'right';
|
6386
|
btn.style.float = 'right';
|
7524
|
div.appendChild(btn);
|
6387
|
div.appendChild(btn);
|
7525
|
|
6388
|
|
7526
|
- var btn = mxUtils.button(mxResources.get('addAccount'), mxUtils.bind(this, function()
|
|
|
7527
|
- {
|
6389
|
+ var btn = mxUtils.button(mxResources.get('addAccount'), mxUtils.bind(this, function () {
|
7528
|
var authWin = this.drive.createAuthWin();
|
6390
|
var authWin = this.drive.createAuthWin();
|
7529
|
//FIXME This doean't work to set focus back to main window until closing the file is done
|
6391
|
//FIXME This doean't work to set focus back to main window until closing the file is done
|
7530
|
authWin.blur();
|
6392
|
authWin.blur();
|
7531
|
window.focus();
|
6393
|
window.focus();
|
7532
|
|
6394
|
|
7533
|
- closeFile(mxUtils.bind(this, function()
|
|
|
7534
|
- {
|
6395
|
+ closeFile(mxUtils.bind(this, function () {
|
7535
|
this.stateArg = null;
|
6396
|
this.stateArg = null;
|
7536
|
|
6397
|
|
7537
|
- this.drive.authorize(false, mxUtils.bind(this, function()
|
|
|
7538
|
- {
|
6398
|
+ this.drive.authorize(false, mxUtils.bind(this, function () {
|
7539
|
this.setMode(App.MODE_GOOGLE);
|
6399
|
this.setMode(App.MODE_GOOGLE);
|
7540
|
this.hideDialog();
|
6400
|
this.hideDialog();
|
7541
|
this.showSplash();
|
6401
|
this.showSplash();
|
7542
|
- }), mxUtils.bind(this, function(resp)
|
|
|
7543
|
- {
|
6402
|
+ }), mxUtils.bind(this, function (resp) {
|
7544
|
this.handleError(resp);
|
6403
|
this.handleError(resp);
|
7545
|
}), true, authWin); //Remember is true since add account imply keeping that account
|
6404
|
}), true, authWin); //Remember is true since add account imply keeping that account
|
7546
|
}), mxResources.get('closingFile') + '...');
|
6405
|
}), mxResources.get('closingFile') + '...');
|
|
@@ -7552,12 +6411,9 @@ App.prototype.updateUserElement = function() |
|
@@ -7552,12 +6411,9 @@ App.prototype.updateUserElement = function() |
7552
|
}
|
6411
|
}
|
7553
|
}
|
6412
|
}
|
7554
|
|
6413
|
|
7555
|
- var addUser = mxUtils.bind(this, function(user, logo, logout, label)
|
|
|
7556
|
- {
|
|
|
7557
|
- if (user != null)
|
|
|
7558
|
- {
|
|
|
7559
|
- if (connected)
|
|
|
7560
|
- {
|
6414
|
+ var addUser = mxUtils.bind(this, function (user, logo, logout, label) {
|
|
|
6415
|
+ if (user != null) {
|
|
|
6416
|
+ if (connected) {
|
7561
|
this.userPanel.appendChild(document.createElement('hr'));
|
6417
|
this.userPanel.appendChild(document.createElement('hr'));
|
7562
|
}
|
6418
|
}
|
7563
|
|
6419
|
|
|
@@ -7574,8 +6430,7 @@ App.prototype.updateUserElement = function() |
|
@@ -7574,8 +6430,7 @@ App.prototype.updateUserElement = function() |
7574
|
td.setAttribute('valig', 'top');
|
6430
|
td.setAttribute('valig', 'top');
|
7575
|
td.style.width = '40px';
|
6431
|
td.style.width = '40px';
|
7576
|
|
6432
|
|
7577
|
- if (logo != null)
|
|
|
7578
|
- {
|
6433
|
+ if (logo != null) {
|
7579
|
var img = document.createElement('img');
|
6434
|
var img = document.createElement('img');
|
7580
|
img.setAttribute('width', '40');
|
6435
|
img.setAttribute('width', '40');
|
7581
|
img.setAttribute('height', '40');
|
6436
|
img.setAttribute('height', '40');
|
|
@@ -7597,8 +6452,7 @@ App.prototype.updateUserElement = function() |
|
@@ -7597,8 +6452,7 @@ App.prototype.updateUserElement = function() |
7597
|
|
6452
|
|
7598
|
mxUtils.write(td, user.displayName);
|
6453
|
mxUtils.write(td, user.displayName);
|
7599
|
|
6454
|
|
7600
|
- if (user.email != null)
|
|
|
7601
|
- {
|
6455
|
+ if (user.email != null) {
|
7602
|
mxUtils.br(td);
|
6456
|
mxUtils.br(td);
|
7603
|
|
6457
|
|
7604
|
var small = document.createElement('small');
|
6458
|
var small = document.createElement('small');
|
|
@@ -7607,8 +6461,7 @@ App.prototype.updateUserElement = function() |
|
@@ -7607,8 +6461,7 @@ App.prototype.updateUserElement = function() |
7607
|
td.appendChild(small);
|
6461
|
td.appendChild(small);
|
7608
|
}
|
6462
|
}
|
7609
|
|
6463
|
|
7610
|
- if (label != null)
|
|
|
7611
|
- {
|
6464
|
+ if (label != null) {
|
7612
|
var div = document.createElement('div');
|
6465
|
var div = document.createElement('div');
|
7613
|
div.style.marginTop = '4px';
|
6466
|
div.style.marginTop = '4px';
|
7614
|
|
6467
|
|
|
@@ -7628,8 +6481,7 @@ App.prototype.updateUserElement = function() |
|
@@ -7628,8 +6481,7 @@ App.prototype.updateUserElement = function() |
7628
|
div.style.padding = '10px';
|
6481
|
div.style.padding = '10px';
|
7629
|
div.style.whiteSpace = 'nowrap';
|
6482
|
div.style.whiteSpace = 'nowrap';
|
7630
|
|
6483
|
|
7631
|
- if (logout != null)
|
|
|
7632
|
- {
|
6484
|
+ if (logout != null) {
|
7633
|
var btn = mxUtils.button(mxResources.get('signOut'), logout);
|
6485
|
var btn = mxUtils.button(mxResources.get('signOut'), logout);
|
7634
|
btn.className = 'geBtn';
|
6486
|
btn.className = 'geBtn';
|
7635
|
div.appendChild(btn);
|
6487
|
div.appendChild(btn);
|
|
@@ -7639,164 +6491,128 @@ App.prototype.updateUserElement = function() |
|
@@ -7639,164 +6491,128 @@ App.prototype.updateUserElement = function() |
7639
|
}
|
6491
|
}
|
7640
|
});
|
6492
|
});
|
7641
|
|
6493
|
|
7642
|
- if (this.dropbox != null)
|
|
|
7643
|
- {
|
|
|
7644
|
- addUser(this.dropbox.getUser(), IMAGE_PATH + '/dropbox-logo.svg', mxUtils.bind(this, function()
|
|
|
7645
|
- {
|
6494
|
+ if (this.dropbox != null) {
|
|
|
6495
|
+ addUser(this.dropbox.getUser(), IMAGE_PATH + '/dropbox-logo.svg', mxUtils.bind(this, function () {
|
7646
|
var file = this.getCurrentFile();
|
6496
|
var file = this.getCurrentFile();
|
7647
|
|
6497
|
|
7648
|
- if (file != null && file.constructor == DropboxFile)
|
|
|
7649
|
- {
|
|
|
7650
|
- var doLogout = mxUtils.bind(this, function()
|
|
|
7651
|
- {
|
6498
|
+ if (file != null && file.constructor == DropboxFile) {
|
|
|
6499
|
+ var doLogout = mxUtils.bind(this, function () {
|
7652
|
this.dropbox.logout();
|
6500
|
this.dropbox.logout();
|
7653
|
window.location.hash = '';
|
6501
|
window.location.hash = '';
|
7654
|
});
|
6502
|
});
|
7655
|
|
6503
|
|
7656
|
- if (!file.isModified())
|
|
|
7657
|
- {
|
6504
|
+ if (!file.isModified()) {
|
7658
|
doLogout();
|
6505
|
doLogout();
|
7659
|
}
|
6506
|
}
|
7660
|
- else
|
|
|
7661
|
- {
|
6507
|
+ else {
|
7662
|
this.confirm(mxResources.get('allChangesLost'), null, doLogout,
|
6508
|
this.confirm(mxResources.get('allChangesLost'), null, doLogout,
|
7663
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
6509
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
7664
|
}
|
6510
|
}
|
7665
|
}
|
6511
|
}
|
7666
|
- else
|
|
|
7667
|
- {
|
6512
|
+ else {
|
7668
|
this.dropbox.logout();
|
6513
|
this.dropbox.logout();
|
7669
|
}
|
6514
|
}
|
7670
|
}), mxResources.get('dropbox'));
|
6515
|
}), mxResources.get('dropbox'));
|
7671
|
}
|
6516
|
}
|
7672
|
|
6517
|
|
7673
|
- if (this.oneDrive != null)
|
|
|
7674
|
- {
|
|
|
7675
|
- addUser(this.oneDrive.getUser(), IMAGE_PATH + '/onedrive-logo.svg', this.oneDrive.noLogout? null : mxUtils.bind(this, function()
|
|
|
7676
|
- {
|
6518
|
+ if (this.oneDrive != null) {
|
|
|
6519
|
+ addUser(this.oneDrive.getUser(), IMAGE_PATH + '/onedrive-logo.svg', this.oneDrive.noLogout ? null : mxUtils.bind(this, function () {
|
7677
|
var file = this.getCurrentFile();
|
6520
|
var file = this.getCurrentFile();
|
7678
|
|
6521
|
|
7679
|
- if (file != null && file.constructor == OneDriveFile)
|
|
|
7680
|
- {
|
|
|
7681
|
- var doLogout = mxUtils.bind(this, function()
|
|
|
7682
|
- {
|
6522
|
+ if (file != null && file.constructor == OneDriveFile) {
|
|
|
6523
|
+ var doLogout = mxUtils.bind(this, function () {
|
7683
|
this.oneDrive.logout();
|
6524
|
this.oneDrive.logout();
|
7684
|
window.location.hash = '';
|
6525
|
window.location.hash = '';
|
7685
|
});
|
6526
|
});
|
7686
|
|
6527
|
|
7687
|
- if (!file.isModified())
|
|
|
7688
|
- {
|
6528
|
+ if (!file.isModified()) {
|
7689
|
doLogout();
|
6529
|
doLogout();
|
7690
|
}
|
6530
|
}
|
7691
|
- else
|
|
|
7692
|
- {
|
6531
|
+ else {
|
7693
|
this.confirm(mxResources.get('allChangesLost'), null, doLogout,
|
6532
|
this.confirm(mxResources.get('allChangesLost'), null, doLogout,
|
7694
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
6533
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
7695
|
}
|
6534
|
}
|
7696
|
}
|
6535
|
}
|
7697
|
- else
|
|
|
7698
|
- {
|
6536
|
+ else {
|
7699
|
this.oneDrive.logout();
|
6537
|
this.oneDrive.logout();
|
7700
|
}
|
6538
|
}
|
7701
|
}), mxResources.get('oneDrive'));
|
6539
|
}), mxResources.get('oneDrive'));
|
7702
|
}
|
6540
|
}
|
7703
|
|
6541
|
|
7704
|
- if (this.gitHub != null)
|
|
|
7705
|
- {
|
|
|
7706
|
- addUser(this.gitHub.getUser(), IMAGE_PATH + '/github-logo.svg', mxUtils.bind(this, function()
|
|
|
7707
|
- {
|
6542
|
+ if (this.gitHub != null) {
|
|
|
6543
|
+ addUser(this.gitHub.getUser(), IMAGE_PATH + '/github-logo.svg', mxUtils.bind(this, function () {
|
7708
|
var file = this.getCurrentFile();
|
6544
|
var file = this.getCurrentFile();
|
7709
|
|
6545
|
|
7710
|
- if (file != null && file.constructor == GitHubFile)
|
|
|
7711
|
- {
|
|
|
7712
|
- var doLogout = mxUtils.bind(this, function()
|
|
|
7713
|
- {
|
6546
|
+ if (file != null && file.constructor == GitHubFile) {
|
|
|
6547
|
+ var doLogout = mxUtils.bind(this, function () {
|
7714
|
this.gitHub.logout();
|
6548
|
this.gitHub.logout();
|
7715
|
window.location.hash = '';
|
6549
|
window.location.hash = '';
|
7716
|
});
|
6550
|
});
|
7717
|
|
6551
|
|
7718
|
- if (!file.isModified())
|
|
|
7719
|
- {
|
6552
|
+ if (!file.isModified()) {
|
7720
|
doLogout();
|
6553
|
doLogout();
|
7721
|
}
|
6554
|
}
|
7722
|
- else
|
|
|
7723
|
- {
|
6555
|
+ else {
|
7724
|
this.confirm(mxResources.get('allChangesLost'), null, doLogout,
|
6556
|
this.confirm(mxResources.get('allChangesLost'), null, doLogout,
|
7725
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
6557
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
7726
|
}
|
6558
|
}
|
7727
|
}
|
6559
|
}
|
7728
|
- else
|
|
|
7729
|
- {
|
6560
|
+ else {
|
7730
|
this.gitHub.logout();
|
6561
|
this.gitHub.logout();
|
7731
|
}
|
6562
|
}
|
7732
|
}), mxResources.get('github'));
|
6563
|
}), mxResources.get('github'));
|
7733
|
}
|
6564
|
}
|
7734
|
|
6565
|
|
7735
|
- if (this.gitLab != null)
|
|
|
7736
|
- {
|
|
|
7737
|
- addUser(this.gitLab.getUser(), IMAGE_PATH + '/gitlab-logo.svg', mxUtils.bind(this, function()
|
|
|
7738
|
- {
|
6566
|
+ if (this.gitLab != null) {
|
|
|
6567
|
+ addUser(this.gitLab.getUser(), IMAGE_PATH + '/gitlab-logo.svg', mxUtils.bind(this, function () {
|
7739
|
var file = this.getCurrentFile();
|
6568
|
var file = this.getCurrentFile();
|
7740
|
|
6569
|
|
7741
|
- if (file != null && file.constructor == GitLabFile)
|
|
|
7742
|
- {
|
|
|
7743
|
- var doLogout = mxUtils.bind(this, function()
|
|
|
7744
|
- {
|
6570
|
+ if (file != null && file.constructor == GitLabFile) {
|
|
|
6571
|
+ var doLogout = mxUtils.bind(this, function () {
|
7745
|
this.gitLab.logout();
|
6572
|
this.gitLab.logout();
|
7746
|
window.location.hash = '';
|
6573
|
window.location.hash = '';
|
7747
|
});
|
6574
|
});
|
7748
|
|
6575
|
|
7749
|
- if (!file.isModified())
|
|
|
7750
|
- {
|
6576
|
+ if (!file.isModified()) {
|
7751
|
doLogout();
|
6577
|
doLogout();
|
7752
|
}
|
6578
|
}
|
7753
|
- else
|
|
|
7754
|
- {
|
6579
|
+ else {
|
7755
|
this.confirm(mxResources.get('allChangesLost'), null, doLogout,
|
6580
|
this.confirm(mxResources.get('allChangesLost'), null, doLogout,
|
7756
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
6581
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
7757
|
}
|
6582
|
}
|
7758
|
}
|
6583
|
}
|
7759
|
- else
|
|
|
7760
|
- {
|
6584
|
+ else {
|
7761
|
this.gitLab.logout();
|
6585
|
this.gitLab.logout();
|
7762
|
}
|
6586
|
}
|
7763
|
}), mxResources.get('gitlab'));
|
6587
|
}), mxResources.get('gitlab'));
|
7764
|
}
|
6588
|
}
|
7765
|
|
6589
|
|
7766
|
//TODO We have no user info from Trello, how we can create a user?
|
6590
|
//TODO We have no user info from Trello, how we can create a user?
|
7767
|
- if (this.trello != null)
|
|
|
7768
|
- {
|
|
|
7769
|
- addUser(this.trello.getUser(), IMAGE_PATH + '/trello-logo.svg', mxUtils.bind(this, function()
|
|
|
7770
|
- {
|
6591
|
+ if (this.trello != null) {
|
|
|
6592
|
+ addUser(this.trello.getUser(), IMAGE_PATH + '/trello-logo.svg', mxUtils.bind(this, function () {
|
7771
|
var file = this.getCurrentFile();
|
6593
|
var file = this.getCurrentFile();
|
7772
|
|
6594
|
|
7773
|
- if (file != null && file.constructor == TrelloFile)
|
|
|
7774
|
- {
|
|
|
7775
|
- var doLogout = mxUtils.bind(this, function()
|
|
|
7776
|
- {
|
6595
|
+ if (file != null && file.constructor == TrelloFile) {
|
|
|
6596
|
+ var doLogout = mxUtils.bind(this, function () {
|
7777
|
this.trello.logout();
|
6597
|
this.trello.logout();
|
7778
|
window.location.hash = '';
|
6598
|
window.location.hash = '';
|
7779
|
});
|
6599
|
});
|
7780
|
|
6600
|
|
7781
|
- if (!file.isModified())
|
|
|
7782
|
- {
|
6601
|
+ if (!file.isModified()) {
|
7783
|
doLogout();
|
6602
|
doLogout();
|
7784
|
}
|
6603
|
}
|
7785
|
- else
|
|
|
7786
|
- {
|
6604
|
+ else {
|
7787
|
this.confirm(mxResources.get('allChangesLost'), null, doLogout,
|
6605
|
this.confirm(mxResources.get('allChangesLost'), null, doLogout,
|
7788
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
6606
|
mxResources.get('cancel'), mxResources.get('discardChanges'));
|
7789
|
}
|
6607
|
}
|
7790
|
}
|
6608
|
}
|
7791
|
- else
|
|
|
7792
|
- {
|
6609
|
+ else {
|
7793
|
this.trello.logout();
|
6610
|
this.trello.logout();
|
7794
|
}
|
6611
|
}
|
7795
|
}), mxResources.get('trello'));
|
6612
|
}), mxResources.get('trello'));
|
7796
|
}
|
6613
|
}
|
7797
|
|
6614
|
|
7798
|
- if (!connected)
|
|
|
7799
|
- {
|
6615
|
+ if (!connected) {
|
7800
|
var div = document.createElement('div');
|
6616
|
var div = document.createElement('div');
|
7801
|
div.style.textAlign = 'center';
|
6617
|
div.style.textAlign = 'center';
|
7802
|
div.style.padding = '10px';
|
6618
|
div.style.padding = '10px';
|
|
@@ -7812,20 +6628,16 @@ App.prototype.updateUserElement = function() |
|
@@ -7812,20 +6628,16 @@ App.prototype.updateUserElement = function() |
7812
|
div.style.borderTop = '1px solid #e0e0e0';
|
6628
|
div.style.borderTop = '1px solid #e0e0e0';
|
7813
|
div.style.whiteSpace = 'nowrap';
|
6629
|
div.style.whiteSpace = 'nowrap';
|
7814
|
|
6630
|
|
7815
|
- if (urlParams['sketch'] == '1')
|
|
|
7816
|
- {
|
|
|
7817
|
- var btn = mxUtils.button(mxResources.get('share'), mxUtils.bind(this, function()
|
|
|
7818
|
- {
|
6631
|
+ if (urlParams['sketch'] == '1') {
|
|
|
6632
|
+ var btn = mxUtils.button(mxResources.get('share'), mxUtils.bind(this, function () {
|
7819
|
this.actions.get('share').funct();
|
6633
|
this.actions.get('share').funct();
|
7820
|
}));
|
6634
|
}));
|
7821
|
btn.className = 'geBtn';
|
6635
|
btn.className = 'geBtn';
|
7822
|
div.appendChild(btn);
|
6636
|
div.appendChild(btn);
|
7823
|
this.userPanel.appendChild(div);
|
6637
|
this.userPanel.appendChild(div);
|
7824
|
|
6638
|
|
7825
|
- if (this.commentsSupported())
|
|
|
7826
|
- {
|
|
|
7827
|
- btn = mxUtils.button(mxResources.get('comments'), mxUtils.bind(this, function()
|
|
|
7828
|
- {
|
6639
|
+ if (this.commentsSupported()) {
|
|
|
6640
|
+ btn = mxUtils.button(mxResources.get('comments'), mxUtils.bind(this, function () {
|
7829
|
this.actions.get('comments').funct();
|
6641
|
this.actions.get('comments').funct();
|
7830
|
}));
|
6642
|
}));
|
7831
|
btn.className = 'geBtn';
|
6643
|
btn.className = 'geBtn';
|
|
@@ -7833,12 +6645,9 @@ App.prototype.updateUserElement = function() |
|
@@ -7833,12 +6645,9 @@ App.prototype.updateUserElement = function() |
7833
|
this.userPanel.appendChild(div);
|
6645
|
this.userPanel.appendChild(div);
|
7834
|
}
|
6646
|
}
|
7835
|
}
|
6647
|
}
|
7836
|
- else
|
|
|
7837
|
- {
|
|
|
7838
|
- var btn = mxUtils.button(mxResources.get('close'), mxUtils.bind(this, function()
|
|
|
7839
|
- {
|
|
|
7840
|
- if (!mxEvent.isConsumed(evt) && this.userPanel != null && this.userPanel.parentNode != null)
|
|
|
7841
|
- {
|
6648
|
+ else {
|
|
|
6649
|
+ var btn = mxUtils.button(mxResources.get('close'), mxUtils.bind(this, function () {
|
|
|
6650
|
+ if (!mxEvent.isConsumed(evt) && this.userPanel != null && this.userPanel.parentNode != null) {
|
7842
|
this.userPanel.parentNode.removeChild(this.userPanel);
|
6651
|
this.userPanel.parentNode.removeChild(this.userPanel);
|
7843
|
}
|
6652
|
}
|
7844
|
}));
|
6653
|
}));
|
|
@@ -7853,10 +6662,8 @@ App.prototype.updateUserElement = function() |
|
@@ -7853,10 +6662,8 @@ App.prototype.updateUserElement = function() |
7853
|
mxEvent.consume(evt);
|
6662
|
mxEvent.consume(evt);
|
7854
|
}));
|
6663
|
}));
|
7855
|
|
6664
|
|
7856
|
- mxEvent.addListener(document.body, 'click', mxUtils.bind(this, function(evt)
|
|
|
7857
|
- {
|
|
|
7858
|
- if (!mxEvent.isConsumed(evt) && this.userPanel != null && this.userPanel.parentNode != null)
|
|
|
7859
|
- {
|
6665
|
+ mxEvent.addListener(document.body, 'click', mxUtils.bind(this, function (evt) {
|
|
|
6666
|
+ if (!mxEvent.isConsumed(evt) && this.userPanel != null && this.userPanel.parentNode != null) {
|
7860
|
this.userPanel.parentNode.removeChild(this.userPanel);
|
6667
|
this.userPanel.parentNode.removeChild(this.userPanel);
|
7861
|
}
|
6668
|
}
|
7862
|
}));
|
6669
|
}));
|
|
@@ -7864,64 +6671,51 @@ App.prototype.updateUserElement = function() |
|
@@ -7864,64 +6671,51 @@ App.prototype.updateUserElement = function() |
7864
|
|
6671
|
|
7865
|
var user = null;
|
6672
|
var user = null;
|
7866
|
|
6673
|
|
7867
|
- if (this.drive != null && this.drive.getUser() != null)
|
|
|
7868
|
- {
|
6674
|
+ if (this.drive != null && this.drive.getUser() != null) {
|
7869
|
user = this.drive.getUser();
|
6675
|
user = this.drive.getUser();
|
7870
|
}
|
6676
|
}
|
7871
|
- else if (this.oneDrive != null && this.oneDrive.getUser() != null)
|
|
|
7872
|
- {
|
6677
|
+ else if (this.oneDrive != null && this.oneDrive.getUser() != null) {
|
7873
|
user = this.oneDrive.getUser();
|
6678
|
user = this.oneDrive.getUser();
|
7874
|
}
|
6679
|
}
|
7875
|
- else if (this.dropbox != null && this.dropbox.getUser() != null)
|
|
|
7876
|
- {
|
6680
|
+ else if (this.dropbox != null && this.dropbox.getUser() != null) {
|
7877
|
user = this.dropbox.getUser();
|
6681
|
user = this.dropbox.getUser();
|
7878
|
}
|
6682
|
}
|
7879
|
- else if (this.gitHub != null && this.gitHub.getUser() != null)
|
|
|
7880
|
- {
|
6683
|
+ else if (this.gitHub != null && this.gitHub.getUser() != null) {
|
7881
|
user = this.gitHub.getUser();
|
6684
|
user = this.gitHub.getUser();
|
7882
|
}
|
6685
|
}
|
7883
|
- else if (this.gitLab != null && this.gitLab.getUser() != null)
|
|
|
7884
|
- {
|
6686
|
+ else if (this.gitLab != null && this.gitLab.getUser() != null) {
|
7885
|
user = this.gitLab.getUser();
|
6687
|
user = this.gitLab.getUser();
|
7886
|
}
|
6688
|
}
|
7887
|
//TODO Trello no user issue
|
6689
|
//TODO Trello no user issue
|
7888
|
|
6690
|
|
7889
|
- if (user != null)
|
|
|
7890
|
- {
|
6691
|
+ if (user != null) {
|
7891
|
this.userElement.innerHTML = '';
|
6692
|
this.userElement.innerHTML = '';
|
7892
|
|
6693
|
|
7893
|
- if (screen.width > 560)
|
|
|
7894
|
- {
|
6694
|
+ if (screen.width > 560) {
|
7895
|
mxUtils.write(this.userElement, user.displayName);
|
6695
|
mxUtils.write(this.userElement, user.displayName);
|
7896
|
this.userElement.style.display = 'block';
|
6696
|
this.userElement.style.display = 'block';
|
7897
|
}
|
6697
|
}
|
7898
|
}
|
6698
|
}
|
7899
|
- else
|
|
|
7900
|
- {
|
6699
|
+ else {
|
7901
|
this.userElement.style.display = 'none';
|
6700
|
this.userElement.style.display = 'none';
|
7902
|
}
|
6701
|
}
|
7903
|
}
|
6702
|
}
|
7904
|
};
|
6703
|
};
|
7905
|
|
6704
|
|
7906
|
//TODO Use this function to get the currently logged in user
|
6705
|
//TODO Use this function to get the currently logged in user
|
7907
|
-App.prototype.getCurrentUser = function()
|
|
|
7908
|
-{
|
6706
|
+App.prototype.getCurrentUser = function () {
|
7909
|
var user = null;
|
6707
|
var user = null;
|
7910
|
|
6708
|
|
7911
|
- if (this.drive != null && this.drive.getUser() != null)
|
|
|
7912
|
- {
|
6709
|
+ if (this.drive != null && this.drive.getUser() != null) {
|
7913
|
user = this.drive.getUser();
|
6710
|
user = this.drive.getUser();
|
7914
|
}
|
6711
|
}
|
7915
|
- else if (this.oneDrive != null && this.oneDrive.getUser() != null)
|
|
|
7916
|
- {
|
6712
|
+ else if (this.oneDrive != null && this.oneDrive.getUser() != null) {
|
7917
|
user = this.oneDrive.getUser();
|
6713
|
user = this.oneDrive.getUser();
|
7918
|
}
|
6714
|
}
|
7919
|
- else if (this.dropbox != null && this.dropbox.getUser() != null)
|
|
|
7920
|
- {
|
6715
|
+ else if (this.dropbox != null && this.dropbox.getUser() != null) {
|
7921
|
user = this.dropbox.getUser();
|
6716
|
user = this.dropbox.getUser();
|
7922
|
}
|
6717
|
}
|
7923
|
- else if (this.gitHub != null && this.gitHub.getUser() != null)
|
|
|
7924
|
- {
|
6718
|
+ else if (this.gitHub != null && this.gitHub.getUser() != null) {
|
7925
|
user = this.gitHub.getUser();
|
6719
|
user = this.gitHub.getUser();
|
7926
|
}
|
6720
|
}
|
7927
|
//TODO Trello no user issue
|
6721
|
//TODO Trello no user issue
|
|
@@ -7932,13 +6726,11 @@ App.prototype.getCurrentUser = function() |
|
@@ -7932,13 +6726,11 @@ App.prototype.getCurrentUser = function() |
7932
|
* Override depends on mxSettings which is not defined in the minified viewer.
|
6726
|
* Override depends on mxSettings which is not defined in the minified viewer.
|
7933
|
*/
|
6727
|
*/
|
7934
|
var editorResetGraph = Editor.prototype.resetGraph;
|
6728
|
var editorResetGraph = Editor.prototype.resetGraph;
|
7935
|
-Editor.prototype.resetGraph = function()
|
|
|
7936
|
-{
|
6729
|
+Editor.prototype.resetGraph = function () {
|
7937
|
editorResetGraph.apply(this, arguments);
|
6730
|
editorResetGraph.apply(this, arguments);
|
7938
|
|
6731
|
|
7939
|
// Overrides default with persisted value
|
6732
|
// Overrides default with persisted value
|
7940
|
- if (this.graph.defaultPageFormat == null)
|
|
|
7941
|
- {
|
6733
|
+ if (this.graph.defaultPageFormat == null) {
|
7942
|
this.graph.pageFormat = mxSettings.getPageFormat();
|
6734
|
this.graph.pageFormat = mxSettings.getPageFormat();
|
7943
|
}
|
6735
|
}
|
7944
|
}; |
6736
|
}; |