[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-2-1' - loleaflet/dist loleaflet/src wsd/DocumentBroker.cpp
Jan Holesovsky
kendy at collabora.com
Fri Nov 3 20:45:55 UTC 2017
loleaflet/dist/loleaflet.html | 2 +
loleaflet/dist/toolbar.css | 25 ++++++++++++++++++++++
loleaflet/dist/toolbar/toolbar.js | 37 ++++++++++++++++++++++++++++++++++
loleaflet/src/map/handler/Map.WOPI.js | 2 +
wsd/DocumentBroker.cpp | 1
5 files changed, 67 insertions(+)
New commits:
commit 41dfc1ab2c4006c5c38dfa10550e218442154e54
Author: Jan Holesovsky <kendy at collabora.com>
Date: Tue Oct 31 17:58:58 2017 +0100
Save As: UI for changing the document name.
Change-Id: I23aba95ff0f8d867b021ba3cf0a6bc5eb4754f9d
Reviewed-on: https://gerrit.libreoffice.org/44282
Reviewed-by: Andras Timar <andras.timar at collabora.com>
Tested-by: Andras Timar <andras.timar at collabora.com>
diff --git a/loleaflet/dist/loleaflet.html b/loleaflet/dist/loleaflet.html
index 13e60e54..5d3ccd8a 100644
--- a/loleaflet/dist/loleaflet.html
+++ b/loleaflet/dist/loleaflet.html
@@ -53,6 +53,8 @@
<input id="insertgraphic" type="file" style="position: fixed; top: -100em">
</div>
+ <input id="document-name-input" type="text" disabled="true"/>
+
<div id="closebuttonwrapper">
<div class="closebuttonimage" id="closebutton"></div>
</div>
diff --git a/loleaflet/dist/toolbar.css b/loleaflet/dist/toolbar.css
index 0b65e88f..6564ae95 100644
--- a/loleaflet/dist/toolbar.css
+++ b/loleaflet/dist/toolbar.css
@@ -72,6 +72,31 @@
width: 700px;
}
+#document-name-input {
+ position: fixed;
+ z-index: 1050;
+ right: 35px;
+ top: 2px;
+ width: 200px;
+ font-size: 16px;
+ //font-weight: bold;
+ border: 1px solid transparent;
+ background-color: transparent;
+}
+
+#document-name-input.editable:focus {
+ border: 1px solid #bbbbbb;
+ background-color: white;
+}
+
+#document-name-input.editable:hover {
+ border: 1px solid #bbbbbb;
+ background-color: white;
+ background-image: url('../images/lc_editdoc.svg');
+ background-position: right;
+ background-repeat: no-repeat;
+}
+
#closebuttonwrapper {
position: fixed;
z-index: 1050;
diff --git a/loleaflet/dist/toolbar/toolbar.js b/loleaflet/dist/toolbar/toolbar.js
index ea7e567b..1e1a89f5 100644
--- a/loleaflet/dist/toolbar/toolbar.js
+++ b/loleaflet/dist/toolbar/toolbar.js
@@ -774,6 +774,27 @@ function onSearchKeyPress(e) {
}
}
+function documentNameConfirm() {
+ var value = $('#document-name-input').val();
+ if (value !== null && value != '') {
+ map.saveAs(value);
+ }
+ map._onGotFocus();
+}
+
+function documentNameCancel() {
+ $('#document-name-input').val(map['wopi'].BaseFileName);
+ map._onGotFocus();
+}
+
+function onDocumentNameKeyPress(e) {
+ if (e.keyCode === 13) { // Enter key
+ documentNameConfirm();
+ } else if (e.keyCode === 27) { // Escape key
+ documentNameCancel();
+ }
+}
+
function sortFontSizes() {
var oldVal = $('.fontsizes-select').val();
var selectList = $('.fontsizes-select option');
@@ -963,6 +984,22 @@ map.on('wopiprops', function(e) {
evt.preventDefault();
});
}
+ if (e.BaseFileName !== null) {
+ // set the document name into the name field
+ $('#document-name-input').val(e.BaseFileName);
+ }
+ if (e.UserCanNotWriteRelative === false) {
+ // Save As allowed
+ $('#document-name-input').prop('disabled', false);
+ $('#document-name-input').addClass('editable');
+ $('#document-name-input').on('keypress', onDocumentNameKeyPress);
+ $('#document-name-input').on('focus', function() { map._onLostFocus(); /* hide the caret in the main document */ });
+ $('#document-name-input').on('blur', documentNameCancel);
+ } else {
+ $('#document-name-input').prop('disabled', true);
+ $('#document-name-input').removeClass('editable');
+ $('#document-name-input').off('keypress', onDocumentNameKeyPress);
+ }
});
map.on('doclayerinit', function () {
diff --git a/loleaflet/src/map/handler/Map.WOPI.js b/loleaflet/src/map/handler/Map.WOPI.js
index e2a3840d..f06e30fc 100644
--- a/loleaflet/src/map/handler/Map.WOPI.js
+++ b/loleaflet/src/map/handler/Map.WOPI.js
@@ -8,6 +8,7 @@ L.Map.WOPI = L.Handler.extend({
// So use '*' because we still needs to send 'close' message to the parent frame which
// wouldn't be possible otherwise.
PostMessageOrigin: '*',
+ BaseFileName: '',
DocumentLoadedTime: false,
HidePrintOption: false,
HideSaveOption: false,
@@ -61,6 +62,7 @@ L.Map.WOPI = L.Handler.extend({
this.PostMessageOrigin = wopiInfo['PostMessageOrigin'];
}
+ this.BaseFileName = wopiInfo['BaseFileName'];
this.HidePrintOption = !!wopiInfo['HidePrintOption'];
this.HideSaveOption = !!wopiInfo['HideSaveOption'];
this.HideExportOption = !!wopiInfo['HideExportOption'];
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index 966c3184..a6a91c1a 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -438,6 +438,7 @@ bool DocumentBroker::load(const std::shared_ptr<ClientSession>& session, const s
if (wopifileinfo->_disableExport)
wopifileinfo->_hideExportOption = true;
+ wopiInfo->set("BaseFileName", wopiStorage->getFileInfo()._filename);
wopiInfo->set("HidePrintOption", wopifileinfo->_hidePrintOption);
wopiInfo->set("HideSaveOption", wopifileinfo->_hideSaveOption);
wopiInfo->set("HideExportOption", wopifileinfo->_hideExportOption);
More information about the Libreoffice-commits
mailing list