loleaflet/Makefile.am                        |    1 
 loleaflet/src/control/Control.SearchBar.js   |  111 +++++++++++++++++++++++++++
 loleaflet/src/control/Control.Toolbar.js     |   17 ----
 loleaflet/src/layer/tile/CalcTileLayer.js    |   40 ---------
 loleaflet/src/layer/tile/ImpressTileLayer.js |   40 ---------
 loleaflet/src/layer/tile/WriterTileLayer.js  |   40 ---------
 6 files changed, 115 insertions(+), 134 deletions(-)

New commits:
commit b0be9c7b35049c6ca94702392f59322f3f49e2a0
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Fri Apr 10 15:19:56 2020 +0200
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Wed Apr 15 11:19:19 2020 +0200

    Move SearchBar to separate file
    
    Change-Id: I6db64d35f40f3a762f50df010ead9395a873fb20
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92037
    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 89d4952d2..cef67ce69 100644
--- a/loleaflet/Makefile.am
+++ b/loleaflet/Makefile.am
@@ -263,6 +263,7 @@ LOLEAFLET_JS =\
        src/control/Control.MobileSlide.js \
        src/control/Control.Scale.js \
        src/control/Control.StatusBar.js \
+       src/control/Control.SearchBar.js \
        src/control/Control.Layers.js \
        src/control/Search.js \
        src/control/Permission.js \
diff --git a/loleaflet/src/control/Control.SearchBar.js 
b/loleaflet/src/control/Control.SearchBar.js
new file mode 100644
index 000000000..d6714002a
--- /dev/null
+++ b/loleaflet/src/control/Control.SearchBar.js
@@ -0,0 +1,111 @@
+/* -*- js-indent-level: 8 -*- */
+/*
+ * L.Control.SearchBar
+ */
+
+/* global $ w2ui _ _UNO */
+L.Control.SearchBar = L.Control.extend({
+
+       onAdd: function (map) {
+               this.map = map;
+               this.create();
+       },
+
+       create: function() {
+               var that = this;
+               var toolbar = $('#toolbar-search');
+               toolbar.w2toolbar({
+                       name: 'searchbar',
+                       tooltip: 'top',
+                       items: [
+                               {
+                                       type: 'html', id: 'search',
+                                       html: '<div id="search-input-group" 
style="padding: 3px 10px;" class="loleaflet-font">' +
+                                               '    <label 
for="search-input">Search:</label>' +
+                                               '    <input size="10" 
id="search-input"' +
+                                               'style="padding: 3px; 
border-radius: 2px; border: 1px solid silver"/>' +
+                                               '</div>'
+                               },
+                               {type: 'button', id: 'searchprev', img: 'prev', 
hint: _UNO('.uno:UpSearch'), disabled: true},
+                               {type: 'button', id: 'searchnext', img: 'next', 
hint: _UNO('.uno:DownSearch'), disabled: true},
+                               {type: 'button', id: 'cancelsearch', img: 
'cancel', hint: _('Clear the search field'), hidden: true},
+                               {type: 'html', id: 'left'},
+                               {type: 'button', id: 'hidesearchbar', img: 
'unfold', hint: _('Hide the search bar')}
+                       ],
+                       onClick: function (e) {
+                               that.onClick(e, e.target, e.item, e.subItem);
+                       },
+                       onRefresh: function () {
+                               window.setupSearchInput();
+                       }
+               });
+
+               toolbar.bind('touchstart', function(e) {
+                       w2ui['searchbar'].touchStarted = true;
+                       var touchEvent = e.originalEvent;
+                       if (touchEvent && touchEvent.touches.length > 1) {
+                               L.DomEvent.preventDefault(e);
+                       }
+               });
+
+               $(w2ui.searchbar.box).find('.w2ui-scroll-left, 
.w2ui-scroll-right').hide();
+               w2ui.searchbar.on('resize', function(target, e) {
+                       e.isCancelled = true;
+               });
+       },
+
+       onClick: function(e, id, item) {
+               if (w2ui['searchbar'].get(id) !== null) {
+                       var toolbar = w2ui['searchbar'];
+                       item = toolbar.get(id);
+               }
+
+               // In the iOS app we don't want clicking on the toolbar to pop 
up the keyboard.
+               if (!window.ThisIsTheiOSApp && id !== 'zoomin' && id !== 
'zoomout' && id !== 'mobile_wizard' && id !== 'insertion_mobile_wizard') {
+                       this.map.focus(this.map.canAcceptKeyboardInput()); // 
Maintain same keyboard state.
+               }
+
+               if (item.disabled) {
+                       return;
+               }
+
+               if (id === 'searchprev') {
+                       this.map.search(L.DomUtil.get('search-input').value, 
true);
+               }
+               else if (id === 'searchnext') {
+                       this.map.search(L.DomUtil.get('search-input').value);
+               }
+               else if (id === 'cancelsearch') {
+                       this._cancelSearch();
+               }
+               else if (id === 'hidesearchbar') {
+                       $('#toolbar-search').hide();
+                       if (this.map._permission === 'edit')
+                               $('#toolbar-down').show();
+                       /** show edit button if only we are able to edit but in 
readonly mode */
+                       if (window.docPermission  === 'edit' && 
this.map._permission === 'readonly')
+                               $('#mobile-edit-button').show();
+               }
+       },
+
+       _cancelSearch: function() {
+               var toolbar = window.mode.isMobile() ? w2ui['searchbar'] : 
w2ui['actionbar'];
+               var searchInput = L.DomUtil.get('search-input');
+               this.map.resetSelection();
+               toolbar.hide('cancelsearch');
+               toolbar.disable('searchprev');
+               toolbar.disable('searchnext');
+               searchInput.value = '';
+               if (window.mode.isMobile()) {
+                       searchInput.focus();
+                       // odd, but on mobile we need to invoke it twice
+                       toolbar.hide('cancelsearch');
+               }
+
+               this.map._onGotFocus();
+       }
+});
+
+L.control.searchBar = function () {
+       return new L.Control.SearchBar();
+};
diff --git a/loleaflet/src/control/Control.Toolbar.js 
b/loleaflet/src/control/Control.Toolbar.js
index b4a923787..73c693010 100644
--- a/loleaflet/src/control/Control.Toolbar.js
+++ b/loleaflet/src/control/Control.Toolbar.js
@@ -160,23 +160,6 @@ function onClick(e, id, item) {
                $('#toolbar-search').show();
                L.DomUtil.get('search-input').focus();
        }
-       else if (id === 'hidesearchbar') {
-               $('#toolbar-search').hide();
-               if (map._permission === 'edit')
-                       $('#toolbar-down').show();
-               /** show edit button if only we are able to edit but in 
readonly mode */
-               if (window.docPermission  === 'edit' && map._permission === 
'readonly')
-                       $('#mobile-edit-button').show();
-       }
-       else if (id === 'searchprev') {
-               map.search(L.DomUtil.get('search-input').value, true);
-       }
-       else if (id === 'searchnext') {
-               map.search(L.DomUtil.get('search-input').value);
-       }
-       else if (id === 'cancelsearch') {
-               _cancelSearch();
-       }
        else if ((id === 'presentation' || id === 'fullscreen-presentation') && 
map.getDocType() === 'presentation') {
                map.fire('fullscreen');
        }
diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js 
b/loleaflet/src/layer/tile/CalcTileLayer.js
index da8b51a1d..a1af6f75e 100644
--- a/loleaflet/src/layer/tile/CalcTileLayer.js
+++ b/loleaflet/src/layer/tile/CalcTileLayer.js
@@ -210,45 +210,7 @@ L.CalcTileLayer = L.TileLayer.extend({
                        }
                });
 
-               toolbar = $('#toolbar-search');
-               toolbar.w2toolbar({
-                       name: 'searchbar',
-                       tooltip: 'top',
-                       items: [
-                               {
-                                       type: 'html', id: 'search',
-                                       html: '<div id="search-input-group" 
style="padding: 3px 10px;" class="loleaflet-font">' +
-                                               '    <label 
for="search-input">Search:</label>' +
-                                               '    <input size="10" 
id="search-input"' +
-                                               'style="padding: 3px; 
border-radius: 2px; border: 1px solid silver"/>' +
-                                               '</div>'
-                               },
-                               {type: 'button', id: 'searchprev', img: 'prev', 
hint: _UNO('.uno:UpSearch'), disabled: true},
-                               {type: 'button', id: 'searchnext', img: 'next', 
hint: _UNO('.uno:DownSearch'), disabled: true},
-                               {type: 'button', id: 'cancelsearch', img: 
'cancel', hint: _('Clear the search field'), hidden: true},
-                               {type: 'html', id: 'left'},
-                               {type: 'button', id: 'hidesearchbar', img: 
'unfold', hint: _('Hide the search bar')}
-                       ],
-                       onClick: function (e) {
-                               window.onClick(e, e.target, e.item, e.subItem);
-                       },
-                       onRefresh: function () {
-                               window.setupSearchInput();
-                       }
-               });
-
-               toolbar.bind('touchstart', function(e) {
-                       w2ui['searchbar'].touchStarted = true;
-                       var touchEvent = e.originalEvent;
-                       if (touchEvent && touchEvent.touches.length > 1) {
-                               L.DomEvent.preventDefault(e);
-                       }
-               });
-
-               $(w2ui.searchbar.box).find('.w2ui-scroll-left, 
.w2ui-scroll-right').hide();
-               w2ui.searchbar.on('resize', function(target, e) {
-                       e.isCancelled = true;
-               });
+               map.addControl(L.control.searchBar());
 
                map.on('updatetoolbarcommandvalues', function() {
                        w2ui['editbar'].refresh();
diff --git a/loleaflet/src/layer/tile/ImpressTileLayer.js 
b/loleaflet/src/layer/tile/ImpressTileLayer.js
index d2a8dc4c4..e91d32094 100644
--- a/loleaflet/src/layer/tile/ImpressTileLayer.js
+++ b/loleaflet/src/layer/tile/ImpressTileLayer.js
@@ -205,45 +205,7 @@ L.ImpressTileLayer = L.TileLayer.extend({
                        }
                });
 
-               toolbar = $('#toolbar-search');
-               toolbar.w2toolbar({
-                       name: 'searchbar',
-                       tooltip: 'top',
-                       items: [
-                               {
-                                       type: 'html', id: 'search',
-                                       html: '<div id="search-input-group" 
style="padding: 3px 10px;" class="loleaflet-font">' +
-                                               '    <label 
for="search-input">Search:</label>' +
-                                               '    <input size="10" 
id="search-input"' +
-                                               'style="padding: 3px; 
border-radius: 2px; border: 1px solid silver"/>' +
-                                               '</div>'
-                               },
-                               {type: 'button', id: 'searchprev', img: 'prev', 
hint: _UNO('.uno:UpSearch'), disabled: true},
-                               {type: 'button', id: 'searchnext', img: 'next', 
hint: _UNO('.uno:DownSearch'), disabled: true},
-                               {type: 'button', id: 'cancelsearch', img: 
'cancel', hint: _('Clear the search field'), hidden: true},
-                               {type: 'html', id: 'left'},
-                               {type: 'button', id: 'hidesearchbar', img: 
'unfold', hint: _('Hide the search bar')}
-                       ],
-                       onClick: function (e) {
-                               window.onClick(e, e.target, e.item, e.subItem);
-                       },
-                       onRefresh: function () {
-                               window.setupSearchInput();
-                       }
-               });
-
-               toolbar.bind('touchstart', function(e) {
-                       w2ui['searchbar'].touchStarted = true;
-                       var touchEvent = e.originalEvent;
-                       if (touchEvent && touchEvent.touches.length > 1) {
-                               L.DomEvent.preventDefault(e);
-                       }
-               });
-
-               $(w2ui.searchbar.box).find('.w2ui-scroll-left, 
.w2ui-scroll-right').hide();
-               w2ui.searchbar.on('resize', function(target, e) {
-                       e.isCancelled = true;
-               });
+               map.addControl(L.control.searchBar());
 
                map.on('updatetoolbarcommandvalues', function() {
                        w2ui['editbar'].refresh();
diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js 
b/loleaflet/src/layer/tile/WriterTileLayer.js
index bc34beadc..caff2e102 100644
--- a/loleaflet/src/layer/tile/WriterTileLayer.js
+++ b/loleaflet/src/layer/tile/WriterTileLayer.js
@@ -142,45 +142,7 @@ L.WriterTileLayer = L.TileLayer.extend({
                        }
                });
 
-               toolbar = $('#toolbar-search');
-               toolbar.w2toolbar({
-                       name: 'searchbar',
-                       tooltip: 'top',
-                       items: [
-                               {
-                                       type: 'html', id: 'search',
-                                       html: '<div id="search-input-group" 
style="padding: 3px 10px;" class="loleaflet-font">' +
-                                               '    <label 
for="search-input">Search:</label>' +
-                                               '    <input size="10" 
id="search-input"' +
-                                               'style="padding: 3px; 
border-radius: 2px; border: 1px solid silver"/>' +
-                                               '</div>'
-                               },
-                               {type: 'button', id: 'searchprev', img: 'prev', 
hint: _UNO('.uno:UpSearch'), disabled: true},
-                               {type: 'button', id: 'searchnext', img: 'next', 
hint: _UNO('.uno:DownSearch'), disabled: true},
-                               {type: 'button', id: 'cancelsearch', img: 
'cancel', hint: _('Clear the search field'), hidden: true},
-                               {type: 'html', id: 'left'},
-                               {type: 'button', id: 'hidesearchbar', img: 
'unfold', hint: _('Hide the search bar')}
-                       ],
-                       onClick: function (e) {
-                               window.onClick(e, e.target, e.item, e.subItem);
-                       },
-                       onRefresh: function () {
-                               window.setupSearchInput();
-                       }
-               });
-
-               toolbar.bind('touchstart', function(e) {
-                       w2ui['searchbar'].touchStarted = true;
-                       var touchEvent = e.originalEvent;
-                       if (touchEvent && touchEvent.touches.length > 1) {
-                               L.DomEvent.preventDefault(e);
-                       }
-               });
-
-               $(w2ui.searchbar.box).find('.w2ui-scroll-left, 
.w2ui-scroll-right').hide();
-               w2ui.searchbar.on('resize', function(target, e) {
-                       e.isCancelled = true;
-               });
+               map.addControl(L.control.searchBar());
 
                map.on('updatepermission', window.onUpdatePermission);
        },
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to