[Libreoffice-commits] online.git: 2 commits - loleaflet/dist

Pranav Kant pranavk at collabora.co.uk
Thu Sep 1 06:03:56 UTC 2016


 loleaflet/dist/toolbar/toolbar.js |   54 ++++++++++++++++++++++++++------------
 1 file changed, 38 insertions(+), 16 deletions(-)

New commits:
commit 04064b2e23c00af284fd671a73af980bda4236cc
Author: Pranav Kant <pranavk at collabora.co.uk>
Date:   Thu Sep 1 11:25:08 2016 +0530

    loleaflet: User count in user list
    
    Change-Id: Idde4e1bdf1b33590c3b9a8265e059c01943f4777

diff --git a/loleaflet/dist/toolbar/toolbar.js b/loleaflet/dist/toolbar/toolbar.js
index 8725160..c9e4fa3 100644
--- a/loleaflet/dist/toolbar/toolbar.js
+++ b/loleaflet/dist/toolbar/toolbar.js
@@ -468,7 +468,7 @@ $(function () {
 			{type: 'html',  id: 'right'},
 			{type: 'html',    id: 'modifiedstatuslabel', html: '<div id="modifiedstatuslabel" class="loleaflet-font"></div>'},
 			{type: 'break'},
-			{type: 'menu', id: 'userlist', caption: _('Users'), items: [
+			{type: 'menu', id: 'userlist', caption: _('1 user'), items: [
 				{ id: '-1', text: _('You'), disabled: true },
 			]},
 			{type: 'break'},
@@ -1357,7 +1357,20 @@ function getUserListItem(viewId, userName) {
 	var userListItem = { id: viewId, text: userName, disabled: true };
 	return userListItem;
 }
+var nUsers = _('%n users');
+function updateUserListCount(userlist) {
+	var count = userlist.items.length;
+	if (count > 1) {
+		userlist.caption = nUsers.replace('%n', count);
+	} else if (count === 1) {
+		userlist.caption = '1 user';
+	}
+}
+
 map.on('addview', function(e) {
+	if (!e.viewId || !e.username)
+		return;
+
 	$('#tb_toolbar-down_item_userlist')
 		.w2overlay({
 			class: 'loleaflet-font',
@@ -1374,10 +1387,14 @@ map.on('addview', function(e) {
 	var userlist = w2ui['toolbar-down'].get('userlist');
 	userlist.items.push(getUserListItem(e.viewId, e.username));
 
+	updateUserListCount(userlist);
 	w2ui['toolbar-down'].refresh();
 });
 
 map.on('removeview', function(e) {
+	if (!e.viewId || !e.username)
+		return;
+
 	$('#tb_toolbar-down_item_userlist')
 		.w2overlay({
 			class: 'loleaflet-font',
@@ -1395,9 +1412,11 @@ map.on('removeview', function(e) {
 	for (var idx in userlist.items) {
 		if (userlist.items[idx].id == e.viewId) {
 			userlist.items.splice(idx, 1);
+			break;
 		}
 	}
 
+	updateUserListCount(userlist);
 	w2ui['toolbar-down'].refresh();
 });
 
commit 958c0e35341c73f6636ba141f8fe82ea1ceeee21
Author: Pranav Kant <pranavk at collabora.co.uk>
Date:   Thu Sep 1 11:08:38 2016 +0530

    loleaflet: Better algorithm for adding/removing users from list
    
    Remove them dynamically, rather than creating a new list
    everytime.
    
    Change-Id: I3e1a8c603e092fdd727806154a3715139e4f5b2c

diff --git a/loleaflet/dist/toolbar/toolbar.js b/loleaflet/dist/toolbar/toolbar.js
index 95fbc7e..8725160 100644
--- a/loleaflet/dist/toolbar/toolbar.js
+++ b/loleaflet/dist/toolbar/toolbar.js
@@ -10,17 +10,6 @@ function onDelete(e) {
 	}
 }
 
-function onChangeUserList() {
-	var usernames = ['You'];
-	var userlist = w2ui['toolbar-down'].get('userlist');
-	for (var viewid in map._viewInfo) {
-		usernames.push(map._viewInfo[viewid]);
-	}
-
-	userlist.items = usernames;
-	w2ui['toolbar-down'].refresh();
-}
-
 function resizeToolbar() {
 	var hasMoreItems = false;
 	var toolbarUp = w2ui['toolbar-up'];
@@ -461,6 +450,7 @@ $(function () {
 			onClick(e.target);
 		}
 	});
+
 	$('#toolbar-down').w2toolbar({
 		name: 'toolbar-down',
 		items: [
@@ -479,7 +469,7 @@ $(function () {
 			{type: 'html',    id: 'modifiedstatuslabel', html: '<div id="modifiedstatuslabel" class="loleaflet-font"></div>'},
 			{type: 'break'},
 			{type: 'menu', id: 'userlist', caption: _('Users'), items: [
-				_('You'),
+				{ id: '-1', text: _('You'), disabled: true },
 			]},
 			{type: 'break'},
 			{type: 'button',  id: 'prev', img: 'prev', hint: _('Previous page')},
@@ -1363,7 +1353,10 @@ map.on('statusindicator', function (e) {
 	}
 });
 
-// TODO: Dynamically add/remove users from list
+function getUserListItem(viewId, userName) {
+	var userListItem = { id: viewId, text: userName, disabled: true };
+	return userListItem;
+}
 map.on('addview', function(e) {
 	$('#tb_toolbar-down_item_userlist')
 		.w2overlay({
@@ -1378,7 +1371,10 @@ map.on('addview', function(e) {
 		userPopupTimeout = null;
 	}, 3000);
 
-	onChangeUserList();
+	var userlist = w2ui['toolbar-down'].get('userlist');
+	userlist.items.push(getUserListItem(e.viewId, e.username));
+
+	w2ui['toolbar-down'].refresh();
 });
 
 map.on('removeview', function(e) {
@@ -1395,7 +1391,14 @@ map.on('removeview', function(e) {
 		userPopupTimeout = null;
 	}, 3000);
 
-	onChangeUserList();
+	var userlist = w2ui['toolbar-down'].get('userlist');
+	for (var idx in userlist.items) {
+		if (userlist.items[idx].id == e.viewId) {
+			userlist.items.splice(idx, 1);
+		}
+	}
+
+	w2ui['toolbar-down'].refresh();
 });
 
 $(window).resize(function() {


More information about the Libreoffice-commits mailing list