loleaflet/Makefile.am                              |    2 
 loleaflet/src/control/Control.DocumentNameInput.js |  109 +++++++++++++++++++++
 loleaflet/src/control/Control.Toolbar.js           |   88 ----------------
 loleaflet/src/control/Control.UIManager.js         |    1 
 4 files changed, 112 insertions(+), 88 deletions(-)

New commits:
commit 43f19fa57e8e8dbec9dd091d009f2dfec8f29759
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Mon Apr 20 13:55:35 2020 +0200
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Wed Apr 22 09:36:03 2020 +0200

    Move DocumentNameInput to separate file
    
    Change-Id: I20b5620269b46902a612d2b43346d3b02c3636cd
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92622
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>

diff --git a/loleaflet/Makefile.am b/loleaflet/Makefile.am
index d38c7953a..517ca3e2b 100644
--- a/loleaflet/Makefile.am
+++ b/loleaflet/Makefile.am
@@ -279,6 +279,7 @@ LOLEAFLET_JS =\
        src/control/Control.SigningBar.js \
        src/control/Control.TopToolbar.js \
        src/control/Control.UIManager.js \
+       src/control/Control.DocumentNameInput.js \
        src/control/Control.Layers.js \
        src/control/Search.js \
        src/control/Permission.js \
@@ -546,6 +547,7 @@ pot:
                src/control/Control.TopToolbar.js \
                src/control/Control.UserList.js \
                src/control/Control.UIManager.js \
+               src/control/Control.DocumentNameInput.js \
                src/control/Ruler.js \
                src/control/Signing.js \
                src/control/Toolbar.js \
diff --git a/loleaflet/src/control/Control.DocumentNameInput.js 
b/loleaflet/src/control/Control.DocumentNameInput.js
new file mode 100644
index 000000000..3e2b20ec2
--- /dev/null
+++ b/loleaflet/src/control/Control.DocumentNameInput.js
@@ -0,0 +1,109 @@
+/* -*- js-indent-level: 8 -*- */
+/*
+ * L.Control.DocumentNameInput
+ */
+
+/* global $ */
+L.Control.DocumentNameInput = L.Control.extend({
+
+       onAdd: function (map) {
+               this.map = map;
+
+               map.on('doclayerinit', this.onDocLayerInit, this);
+               map.on('wopiprops', this.onWopiProps, this);
+       },
+
+       documentNameConfirm: function() {
+               var value = $('#document-name-input').val();
+               if (value !== null && value != '' && value != 
this.map['wopi'].BaseFileName) {
+                       if (this.map['wopi'].UserCanRename && 
this.map['wopi'].SupportsRename) {
+                               if (value.lastIndexOf('.') > 0) {
+                                       var fname = 
this.map['wopi'].BaseFileName;
+                                       var ext = 
fname.substr(fname.lastIndexOf('.')+1, fname.length);
+                                       // check format conversion
+                                       if (ext != 
value.substr(value.lastIndexOf('.')+1, value.length)) {
+                                               this.map.saveAs(value);
+                                       } else {
+                                               // same extension, just rename 
the file
+                                               // file name must be without 
the extension for rename
+                                               value = value.substr(0, 
value.lastIndexOf('.'));
+                                               
this.map.sendUnoCommand('.uno:Save');
+                                               this.map._RenameFile = value;
+                                       }
+                               }
+                       } else {
+                               // saveAs for rename
+                               this.map.saveAs(value);
+                       }
+               }
+               this.map._onGotFocus();
+       },
+
+       documentNameCancel: function() {
+               $('#document-name-input').val(this.map['wopi'].BaseFileName);
+               this.map._onGotFocus();
+       },
+
+       onDocumentNameKeyPress: function(e) {
+               
$('#document-name-input').css('width',(($('#document-name-input').val().length 
+ 1) * 10) + 'px');
+               if (e.keyCode === 13) { // Enter key
+                       this.documentNameConfirm();
+               } else if (e.keyCode === 27) { // Escape key
+                       this.documentNameCancel();
+               }
+       },
+       
+       onDocumentNameFocus: function() {
+               // hide the caret in the main document
+               this.map._onLostFocus();
+       },
+
+       onDocLayerInit: function() {
+               if (window.mode.isMobile() || window.mode.isTablet()) {
+                       if (!window.ThisIsAMobileApp)
+                               $('#document-name-input').hide();
+                       else
+                               $('#document-name-input').show();
+               } else {
+                       $('#document-name-input').show();
+               }
+       
+               if (window.ThisIsAMobileApp) {
+                       // We can now set the document name in the menu bar
+                       $('#document-name-input').prop('disabled', false);
+                       $('#document-name-input').removeClass('editable');
+                       $('#document-name-input').focus(function() { 
$(this).blur(); });
+                       // Call decodecodeURIComponent twice: Reverse both our 
encoding and the encoding of
+                       // the name in the file system.
+                       
$('#document-name-input').val(decodeURIComponent(decodeURIComponent(this.map.options.doc.replace(/.*\//,
 '')))
+                                                         // To conveniently 
see the initial visualViewport scale and size, un-comment the following line.
+                                                         // + ' (' + 
window.visualViewport.scale + '*' + window.visualViewport.width + 'x' + 
window.visualViewport.height + ')'
+                                                         // TODO: Yes, it 
would be better to see it change as you rotate the device or invoke Split View.
+                                                        );
+               }
+       },
+
+       onWopiProps: function(e) {
+               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').off('keypress', 
this.onDocumentNameKeyPress).on('keypress', 
this.onDocumentNameKeyPress.bind(this));
+                       $('#document-name-input').off('focus', 
this.onDocumentNameFocus).on('focus', this.onDocumentNameFocus.bind(this));
+                       $('#document-name-input').off('blur', 
this.documentNameCancel).on('blur', this.documentNameCancel.bind(this));
+               } else {
+                       $('#document-name-input').prop('disabled', true);
+                       $('#document-name-input').removeClass('editable');
+                       $('#document-name-input').off('keypress', 
this.onDocumentNameKeyPress);
+               }
+       }
+});
+
+L.control.documentNameInput = function () {
+       return new L.Control.DocumentNameInput();
+};
diff --git a/loleaflet/src/control/Control.Toolbar.js 
b/loleaflet/src/control/Control.Toolbar.js
index a70d4d78e..021065f43 100644
--- a/loleaflet/src/control/Control.Toolbar.js
+++ b/loleaflet/src/control/Control.Toolbar.js
@@ -690,51 +690,6 @@ function onSearchBlur() {
        map._onGotFocus();
 }
 
-function documentNameConfirm() {
-       var value = $('#document-name-input').val();
-       if (value !== null && value != '' && value != map['wopi'].BaseFileName) 
{
-               if (map['wopi'].UserCanRename && map['wopi'].SupportsRename) {
-                       if (value.lastIndexOf('.') > 0) {
-                               var fname = map['wopi'].BaseFileName;
-                               var ext = 
fname.substr(fname.lastIndexOf('.')+1, fname.length);
-                               // check format conversion
-                               if (ext != 
value.substr(value.lastIndexOf('.')+1, value.length)) {
-                                       map.saveAs(value);
-                               } else {
-                                       // same extension, just rename the file
-                                       // file name must be without the 
extension for rename
-                                       value = value.substr(0, 
value.lastIndexOf('.'));
-                                       map.sendUnoCommand('.uno:Save');
-                                       map._RenameFile = value;
-                               }
-                       }
-               } else {
-                       // saveAs for rename
-                       map.saveAs(value);
-               }
-       }
-       map._onGotFocus();
-}
-
-function documentNameCancel() {
-       $('#document-name-input').val(map['wopi'].BaseFileName);
-       map._onGotFocus();
-}
-
-function onDocumentNameKeyPress(e) {
-       
$('#document-name-input').css('width',(($('#document-name-input').val().length 
+ 1) * 10) + 'px');
-       if (e.keyCode === 13) { // Enter key
-               documentNameConfirm();
-       } else if (e.keyCode === 27) { // Escape key
-               documentNameCancel();
-       }
-}
-
-function onDocumentNameFocus() {
-       // hide the caret in the main document
-       map._onLostFocus();
-}
-
 function onInsertFile() {
        var insertGraphic = L.DomUtil.get('insertgraphic');
        if ('files' in insertGraphic) {
@@ -774,48 +729,6 @@ function onWopiProps(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').off('keypress', 
onDocumentNameKeyPress).on('keypress', onDocumentNameKeyPress);
-               $('#document-name-input').off('focus', 
onDocumentNameFocus).on('focus', onDocumentNameFocus);
-               $('#document-name-input').off('blur', 
documentNameCancel).on('blur', documentNameCancel);
-       } else {
-               $('#document-name-input').prop('disabled', true);
-               $('#document-name-input').removeClass('editable');
-               $('#document-name-input').off('keypress', 
onDocumentNameKeyPress);
-       }
-}
-
-function onDocLayerInit() {
-       if (window.mode.isMobile() || window.mode.isTablet()) {
-               if (!window.ThisIsAMobileApp)
-                       $('#document-name-input').hide();
-               else
-                       $('#document-name-input').show();
-       } else {
-               $('#document-name-input').show();
-       }
-
-       if (window.ThisIsAMobileApp) {
-               // We can now set the document name in the menu bar
-               $('#document-name-input').prop('disabled', false);
-               $('#document-name-input').removeClass('editable');
-               $('#document-name-input').focus(function() { $(this).blur(); });
-               // Call decodecodeURIComponent twice: Reverse both our encoding 
and the encoding of
-               // the name in the file system.
-               
$('#document-name-input').val(decodeURIComponent(decodeURIComponent(map.options.doc.replace(/.*\//,
 '')))
-                                             // To conveniently see the 
initial visualViewport scale and size, un-comment the following line.
-                                             // + ' (' + 
window.visualViewport.scale + '*' + window.visualViewport.width + 'x' + 
window.visualViewport.height + ')'
-                                             // TODO: Yes, it would be better 
to see it change as you rotate the device or invoke Split View.
-                                            );
-       }
 }
 
 function onCommandStateChanged(e) {
@@ -1101,7 +1014,6 @@ function setupToolbar(e) {
                }
        });
 
-       map.on('doclayerinit', onDocLayerInit);
        map.on('updatepermission', onUpdatePermission);
        map.on('wopiprops', onWopiProps);
        map.on('commandresult', onCommandResult);
diff --git a/loleaflet/src/control/Control.UIManager.js 
b/loleaflet/src/control/Control.UIManager.js
index 8e4967481..f3cad662e 100644
--- a/loleaflet/src/control/Control.UIManager.js
+++ b/loleaflet/src/control/Control.UIManager.js
@@ -32,6 +32,7 @@ L.Control.UIManager = L.Control.extend({
 
                setupToolbar(this.map);
 
+               this.map.addControl(L.control.documentNameInput());
                this.map.addControl(L.control.scroll());
                this.map.addControl(L.control.alertDialog());
                this.map.addControl(L.control.mobileWizard());
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to