[Libreoffice-commits] online.git: loleaflet/src

Szymon Kłos (via logerrit) logerrit at kemper.freedesktop.org
Mon Dec 9 10:06:43 UTC 2019


 loleaflet/src/control/Control.JSDialogBuilder.js |    7 +++-
 loleaflet/src/control/Control.MobileWizard.js    |   35 +++++++++++++++++++++--
 2 files changed, 37 insertions(+), 5 deletions(-)

New commits:
commit 3809b9ab6f2092589f9ffccdc46a3073d2ef3af9
Author:     Szymon KÅ‚os <szymon.klos at collabora.com>
AuthorDate: Mon Dec 9 11:06:14 2019 +0100
Commit:     Szymon KÅ‚os <szymon.klos at collabora.com>
CommitDate: Mon Dec 9 11:06:23 2019 +0100

    jsdialog: remember last opened tab when rebuilding
    
    Change-Id: Ia1c06275fade580c559cd4a96bf649a65c028af4

diff --git a/loleaflet/src/control/Control.JSDialogBuilder.js b/loleaflet/src/control/Control.JSDialogBuilder.js
index cde756651..3ec85405d 100644
--- a/loleaflet/src/control/Control.JSDialogBuilder.js
+++ b/loleaflet/src/control/Control.JSDialogBuilder.js
@@ -403,6 +403,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
 		var title1 = builder._cleanText(data[0].text);
 
 		var tab1 = L.DomUtil.create('div', 'ui-tab mobile-wizard', tabsContainer);
+		tab1.id = title1;
 
 		var label = L.DomUtil.create('span', 'ui-tab-content mobile-wizard unolabel', tab1);
 		label.innerHTML = title1;
@@ -418,10 +419,10 @@ L.Control.JSDialogBuilder = L.Control.extend({
 
 		$(contentDiv).hide();
 
+		var title2 = builder._cleanText(data[1].text);
 
 		var tab2 = L.DomUtil.create('div', 'ui-tab mobile-wizard', tabsContainer);
-
-		var title2 = builder._cleanText(data[1].text);
+		tab2.id = title2;
 
 		var label2 = L.DomUtil.create('span', 'ui-tab-content mobile-wizard unolabel', tab2);
 		label2.innerHTML = title2;
@@ -444,6 +445,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
 				$(tab2).removeClass('selected');
 				$(contentDiv).show();
 				$(contentDiv2).hide();
+				builder.wizard.selectedTab(label.innerHTML);
 			});
 
 			$(tab2).click(function() {
@@ -451,6 +453,7 @@ L.Control.JSDialogBuilder = L.Control.extend({
 				$(tab1).removeClass('selected');
 				$(contentDiv).hide();
 				$(contentDiv2).show();
+				builder.wizard.selectedTab(label2.innerHTML);
 			});
 		} else {
 			console.debug('Builder used outside of mobile wizard: please implement the click handler');
diff --git a/loleaflet/src/control/Control.MobileWizard.js b/loleaflet/src/control/Control.MobileWizard.js
index f9df62535..a66479c33 100644
--- a/loleaflet/src/control/Control.MobileWizard.js
+++ b/loleaflet/src/control/Control.MobileWizard.js
@@ -15,6 +15,7 @@ L.Control.MobileWizard = L.Control.extend({
 	_mainTitle: '',
 	_isTabMode: false,
 	_currentPath: [],
+	_tabs: [],
 	_currentScrollPosition: 0,
 
 	initialize: function (options) {
@@ -41,6 +42,8 @@ L.Control.MobileWizard = L.Control.extend({
 		$('#mobile-wizard').removeClass('menuwizard');
 		this._isTabMode = false;
 		this._currentPath = [];
+		this._tabs = [];
+		this._currentScrollPosition = 0;
 	},
 
 	_setupBackButton: function() {
@@ -87,6 +90,7 @@ L.Control.MobileWizard = L.Control.extend({
 	},
 
 	setTabs: function(tabs) {
+		this._tabs = tabs;
 		$('#mobile-wizard-tabs').show();
 		$('#mobile-wizard-tabs').empty();
 		$('#mobile-wizard-tabs').append(tabs);
@@ -178,16 +182,37 @@ L.Control.MobileWizard = L.Control.extend({
 		right.text(title);
 	},
 
-	_scrollToLastPosition: function() {
+	_scrollToPosition: function(position) {
 		if (this._currentScrollPosition) {
-			$('#mobile-wizard-content').animate({ scrollTop: this._currentScrollPosition }, 0);
+			$('#mobile-wizard-content').animate({ scrollTop: position }, 0);
+		}
+	},
+
+	selectedTab: function(tabText) {
+		if (this._currentPath && this._currentPath.length) {
+			this._currentPath[0] = tabText;
+		}
+	},
+
+	_selectTab: function(tabId) {
+		if (this._tabs && tabId) {
+			for (var index in this._tabs.children) {
+				if (this._tabs.children[index].id === tabId) {
+					$(this._tabs.children[index]).trigger('click', {animate: false});
+					break;
+				}
+			}
 		}
 	},
 
 	_goToPath: function(path) {
+		if (this._tabs && path && path.length)
+			this._selectTab(path[0]);
+
 		for (var index in path) {
 			$('[title=\'' + path[index] + '\'').prev().trigger('click', {animate: false});
 		}
+
 		this._currentPath = path;
 	},
 
@@ -208,8 +233,12 @@ L.Control.MobileWizard = L.Control.extend({
 
 			this._isActive = true;
 			var currentPath = null;
+			var lastScrollPosition = null;
+
 			if (this._currentPath)
 				currentPath = this._currentPath;
+			if (this._currentScrollPosition)
+				lastScrollPosition = this._currentScrollPosition;
 
 			this._reset();
 
@@ -248,7 +277,7 @@ L.Control.MobileWizard = L.Control.extend({
 
 			if (this._isActive && currentPath.length) {
 				this._goToPath(currentPath);
-				this._scrollToLastPosition();
+				this._scrollToPosition(lastScrollPosition);
 			}
 		}
 	},


More information about the Libreoffice-commits mailing list