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

New commits:
commit 04064b2e23c00af284fd671a73af980bda4236cc
Author: Pranav Kant <pran...@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 <pran...@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() {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to