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