[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-2-1' - loleaflet/src
Jan Holesovsky
kendy at collabora.com
Fri Nov 3 20:46:18 UTC 2017
loleaflet/src/control/Toolbar.js | 5 ++++-
loleaflet/src/core/Socket.js | 31 +++++++++++++++++++++++++++++--
loleaflet/src/map/handler/Map.WOPI.js | 2 +-
3 files changed, 34 insertions(+), 4 deletions(-)
New commits:
commit dd2c950185e3622441929167672df39b9bd40f07
Author: Jan Holesovsky <kendy at collabora.com>
Date: Fri Nov 3 19:00:58 2017 +0100
Save As: Reload the newly created document after the Save As.
Change-Id: Ibf979cce4fea13a31ece089394dab296158a159b
Reviewed-on: https://gerrit.libreoffice.org/44283
Reviewed-by: Andras Timar <andras.timar at collabora.com>
Tested-by: Andras Timar <andras.timar at collabora.com>
diff --git a/loleaflet/src/control/Toolbar.js b/loleaflet/src/control/Toolbar.js
index c47e523d..337188a0 100644
--- a/loleaflet/src/control/Toolbar.js
+++ b/loleaflet/src/control/Toolbar.js
@@ -85,6 +85,9 @@ L.Map.include({
},
saveAs: function (url, format, options) {
+ if (url === undefined || url == null) {
+ return;
+ }
if (format === undefined || format === null) {
format = '';
}
@@ -94,7 +97,7 @@ L.Map.include({
this.showBusy(_('Saving...'), false);
this._socket.sendMessage('saveas ' +
- 'url=' + url + ' ' +
+ 'url=wopi:' + encodeURIComponent(url) + ' ' +
'format=' + format + ' ' +
'options=' + options);
},
diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index e5028b69..cc7e8d6c 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -119,6 +119,12 @@ L.Socket = L.Class.extend({
this.socket.send(msg);
},
+ _getParameterByName: function(url, name) {
+ name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
+ var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'), results = regex.exec(url);
+ return results === null ? '' : results[1].replace(/\+/g, ' ');
+ },
+
_onSocketOpen: function () {
console.debug('_onSocketOpen:');
this._map._serverRecycling = false;
@@ -560,8 +566,29 @@ L.Socket = L.Class.extend({
}
else if (textMsg.startsWith('saveas:')) {
this._map.hideBusy();
- // var url = command.url; // WOPI url - if needed at some stage
- // var name = command.name; TODO dialog that the file was saved as "name"
+ if (command !== undefined && command.url !== undefined && command.url !== '') {
+ this.close();
+ var url = command.url;
+ var accessToken = this._getParameterByName(url, 'access_token');
+ var accessTokenTtl = this._getParameterByName(url, 'access_token_ttl');
+
+ if (accessToken !== undefined) {
+ if (accessTokenTtl === undefined) {
+ accessTokenTtl = 0;
+ }
+ this._map.options.docParams = { 'access_token': accessToken, 'access_token_ttl': accessTokenTtl };
+ }
+ else {
+ this._map.options.docParams = {};
+ }
+
+ // setup for loading the new document, and trigger the load
+ var docUrl = url.split('?')[0];
+ this._map.options.doc = docUrl;
+ this._map.options.wopiSrc = encodeURIComponent(docUrl);
+ this._map.loadDocument();
+ }
+ // var name = command.name; - ignored, we get the new name via the wopi's BaseFileName
}
else if (textMsg.startsWith('statusindicator:')) {
//FIXME: We should get statusindicator when saving too, no?
diff --git a/loleaflet/src/map/handler/Map.WOPI.js b/loleaflet/src/map/handler/Map.WOPI.js
index f06e30fc..0201e1d0 100644
--- a/loleaflet/src/map/handler/Map.WOPI.js
+++ b/loleaflet/src/map/handler/Map.WOPI.js
@@ -216,7 +216,7 @@ L.Map.WOPI = L.Handler.extend({
if (msg.Values) {
if (msg.Values.Filename !== null && msg.Values.Filename !== undefined) {
this._map.showBusy(_('Creating copy...'), false);
- map.saveAs('wopi:' + msg.Values.Filename);
+ map.saveAs(msg.Values.Filename);
}
}
}
More information about the Libreoffice-commits
mailing list