loleaflet/css/toolbar.css                        |   14 +++++
 loleaflet/src/control/Control.JSDialogBuilder.js |   58 ++++++++++++++++++++---
 loleaflet/src/control/Control.MobileWizard.js    |    2 
 3 files changed, 66 insertions(+), 8 deletions(-)

New commits:
commit 65c990dd2c6669627331b48370eb9bda367f6469
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Mon Sep 23 22:46:44 2019 +0200
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Fri Sep 27 17:03:36 2019 +0200

    jsdialogs: implement frame control
    
    * fix vertical containers
    * add frame support
    * connect with MobileWizard
    
    Change-Id: I27b59193c597e5af012d5b904e8516bf38c54c00
    Reviewed-on: https://gerrit.libreoffice.org/79726
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>
    Tested-by: Szymon Kłos <szymon.k...@collabora.com>

diff --git a/loleaflet/css/toolbar.css b/loleaflet/css/toolbar.css
index 9c6866718..fcf000081 100644
--- a/loleaflet/css/toolbar.css
+++ b/loleaflet/css/toolbar.css
@@ -766,3 +766,17 @@ tr.useritem > td > img {
     background-color: #F6F6F6;
     height: 30px;
 }
+
+.ui-content.mobile-wizard {
+       background-color: white !important;
+       border: none !important;
+       padding: 10px;
+}
+
+.ui-header.mobile-wizard {
+       height: 20px !important;
+       font-size: 11pt !important;
+       margin: 5px;
+       padding: 5px;
+       border: solid 1px lightgrey;
+}
diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js 
b/loleaflet/src/control/Control.JSDialogBuilder.js
index ac5af0a71..ebd3e6843 100644
--- a/loleaflet/src/control/Control.JSDialogBuilder.js
+++ b/loleaflet/src/control/Control.JSDialogBuilder.js
@@ -7,6 +7,12 @@
 /* global $ */
 L.Control.JSDialogBuilder = L.Control.extend({
 
+       /* Handler is a function which takes two parameters:
+        * parentContainer - place where insert the content
+        * data - data of a control under process
+        * returns boolean: true if children should be processed
+        * and false otherwise
+        */
        _controlHandlers: {},
 
        _setup: function() {
@@ -18,6 +24,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
                this._controlHandlers['combobox'] = this._comboboxControl;
                this._controlHandlers['listbox'] = this._comboboxControl;
                this._controlHandlers['fixedtext'] = this._fixedtextControl;
+               this._controlHandlers['frame'] = this._frameHandler;
                this._controlHandlers['container'] = this._containerHandler;
                this._controlHandlers['window'] = this._containerHandler;
                this._controlHandlers['borderwindow'] = this._containerHandler;
@@ -34,6 +41,28 @@ L.Control.JSDialogBuilder = L.Control.extend({
                return false;
        },
 
+       _frameHandler: function(parentContainer, data, builder) {
+               var titleNode = data.children[0];
+               var sectionTitle = L.DomUtil.create('div', 'ui-header 
mobile-wizard ui-widget', parentContainer);
+               sectionTitle.innerHTML = titleNode.text;
+
+               var contentNode = data.children[1];
+               var contentDiv = L.DomUtil.create('div', 'ui-content 
mobile-wizard', parentContainer);
+               builder.build(contentDiv, [contentNode]);
+
+               $(contentDiv).hide();
+               $(sectionTitle).click(function() {
+                       $('.ui-header.mobile-wizard').hide('slide', { 
direction: 'left' }, 'fast', function() {
+                               $(contentDiv).show('slide', { direction: 
'right' }, 'fast');
+                       });
+                       builder.wizard._setTitle(titleNode.text);
+                       builder.wizard._inMainMenu = false;
+               });
+
+
+               return false;
+       },
+
        _radiobuttonControl: function(parentContainer, data) {
                var radiobutton = L.DomUtil.create('input', '', 
parentContainer);
                radiobutton.type = 'radiobutton';
@@ -128,8 +157,8 @@ L.Control.JSDialogBuilder = L.Control.extend({
                                        currentInsertPlace = 
L.DomUtil.create('td', '', currentHorizontalRow);
                        }
 
-                       var childIsContainer = (childType == 'container' || 
childType == 'borderwindow');
-                       var childIsVertical = childData.vertical === true;
+                       var childIsContainer = (childType == 'container' || 
childType == 'borderwindow') && childData.children.length > 1;
+                       var childIsVertical = childData.vertical == 'true';
                        var childColumns = childData.cols;
 
                        var childObject = null;
@@ -145,7 +174,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
                        var handler = this._controlHandlers[childType];
 
                        if (handler)
-                               processChildren = handler(childObject, 
childData);
+                               processChildren = handler(childObject, 
childData, this);
                        else
                                console.warn('Unsupported control type: \"' + 
childType + '\"');
 
@@ -158,5 +187,6 @@ L.Control.JSDialogBuilder = L.Control.extend({
 L.control.jsDialogBuilder = function (options) {
        var builder = new L.Control.JSDialogBuilder(options);
        builder._setup();
+       builder.wizard = options.mobileWizard;
        return builder;
 };
diff --git a/loleaflet/src/control/Control.MobileWizard.js 
b/loleaflet/src/control/Control.MobileWizard.js
index 93bf2bea6..4f6b672eb 100644
--- a/loleaflet/src/control/Control.MobileWizard.js
+++ b/loleaflet/src/control/Control.MobileWizard.js
@@ -60,7 +60,7 @@ L.Control.MobileWizard = L.Control.extend({
                        var content = $('#mobile-wizard-content');
                        content.empty();
 
-                       L.control.jsDialogBuilder().build(content.get(0), 
[data]);
+                       L.control.jsDialogBuilder({'mobileWizard': 
this}).build(content.get(0), [data]);
                }
        }
 });
commit 4997b4705baf1b1512a72b5857c4931e64140db1
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Mon Sep 23 18:20:51 2019 +0200
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Fri Sep 27 17:03:28 2019 +0200

    jsdialogs: Add disabled state for controls
    
    Change-Id: If637025bbb3e7931ace791bdbd7821715058b931
    Reviewed-on: https://gerrit.libreoffice.org/79725
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>
    Tested-by: Szymon Kłos <szymon.k...@collabora.com>

diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js 
b/loleaflet/src/control/Control.JSDialogBuilder.js
index 078eba3a6..ac5af0a71 100644
--- a/loleaflet/src/control/Control.JSDialogBuilder.js
+++ b/loleaflet/src/control/Control.JSDialogBuilder.js
@@ -39,6 +39,9 @@ L.Control.JSDialogBuilder = L.Control.extend({
                radiobutton.type = 'radiobutton';
                radiobutton.value = data.text;
 
+               if (data.enabled == 'false')
+                       $(radiobutton).attr('disabled', 'disabled');
+
                return false;
        },
 
@@ -49,6 +52,9 @@ L.Control.JSDialogBuilder = L.Control.extend({
                checkboxLabel.innerHTML = data.text;
                checkboxLabel.for = data.id;
 
+               if (data.enabled == 'false')
+                       $(checkbox).attr('disabled', 'disabled');
+
                return false;
        },
 
@@ -57,6 +63,9 @@ L.Control.JSDialogBuilder = L.Control.extend({
                spinfield.type = 'number';
                spinfield.value = data.text;
 
+               if (data.enabled == 'false')
+                       $(spinfield).attr('disabled', 'disabled');
+
                return false;
        },
 
@@ -64,6 +73,9 @@ L.Control.JSDialogBuilder = L.Control.extend({
                var edit = L.DomUtil.create('input', '', parentContainer);
                edit.value = data.text;
 
+               if (data.enabled == 'false')
+                       $(edit).attr('disabled', 'disabled');
+
                return false;
        },
 
@@ -71,6 +83,9 @@ L.Control.JSDialogBuilder = L.Control.extend({
                var pushbutton = L.DomUtil.create('button', '', 
parentContainer);
                pushbutton.innerHTML = data.text;
 
+               if (data.enabled == 'false')
+                       $(pushbutton).attr('disabled', 'disabled');
+
                return false;
        },
 
@@ -78,6 +93,9 @@ L.Control.JSDialogBuilder = L.Control.extend({
                var listbox = L.DomUtil.create('select', '', parentContainer);
                listbox.value = data.text;
 
+               if (data.enabled == 'false')
+                       $(listbox).attr('disabled', 'disabled');
+
                return false;
        },
 
@@ -98,12 +116,8 @@ L.Control.JSDialogBuilder = L.Control.extend({
                for (var childIndex in data) {
                        var childData = data[childIndex];
                        var childType = childData.type;
-                       var childIsEnabled = childData.enabled;
                        var processChildren = true;
 
-                       if (childIsEnabled === false)
-                               continue;
-
                        if (currentIsContainer) {
                                var horizontalOverflow = (childIndex > 0 && 
columns && (childIndex % columns == 0));
                                var newRow = currentIsVertival || 
horizontalOverflow;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to