From dcb0f1842239e4849c569fed8ab4e3ff3a9dfccf Mon Sep 17 00:00:00 2001 From: pichalite Date: Wed, 22 Feb 2017 20:28:56 +0000 Subject: [PATCH 1/4] ACP manage groups UI updates --- public/less/admin/admin.less | 2 +- public/less/admin/manage/groups.less | 19 ++++- public/src/admin/manage/group.js | 73 +++++++++------- src/views/admin/manage/group.tpl | 34 ++------ src/views/admin/manage/groups.tpl | 84 +++++++++---------- .../admin/partials/groups/memberlist.tpl | 37 ++++++++ 6 files changed, 144 insertions(+), 105 deletions(-) create mode 100644 src/views/admin/partials/groups/memberlist.tpl diff --git a/public/less/admin/admin.less b/public/less/admin/admin.less index aa5efff256..23f3bead8c 100644 --- a/public/less/admin/admin.less +++ b/public/less/admin/admin.less @@ -146,7 +146,7 @@ body { color: @gray-dark; &:hover, &.selected { - background: black; + background: @brand-primary; color: white; } } diff --git a/public/less/admin/manage/groups.less b/public/less/admin/manage/groups.less index f0de916162..57057cc9ff 100644 --- a/public/less/admin/manage/groups.less +++ b/public/less/admin/manage/groups.less @@ -5,10 +5,25 @@ max-height: 500px; display: block; overflow-y: auto; - padding-bottom: 100px; .member-name { width: 100%; } } } -} \ No newline at end of file + + #group-icon { + cursor: pointer; + } +} + +.groups { + #group-search { + margin-bottom: 10px; + } + + .groups-list { + p { + margin: 0; + } + } +} diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index a64ca9dd63..05337f9f97 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -7,10 +7,10 @@ define('admin/manage/group', [ 'admin/modules/colorpicker', 'translator' ], function (memberList, iconSelect, colorpicker, translator) { - var Groups = {}; + var Groups = {}; Groups.init = function () { - var groupDetailsSearch = $('#group-details-search'), + var groupDetailsSearch = $('#group-details-search'), groupDetailsSearchResults = $('#group-details-search-results'), groupIcon = $('#group-icon'), changeGroupUserTitle = $('#change-group-user-title'), @@ -41,9 +41,12 @@ define('admin/manage/group', [ var searchText = groupDetailsSearch.val(), foundUser; - socket.emit('admin.user.search', {query: searchText}, function (err, results) { + socket.emit('admin.user.search', { + query: searchText + }, function (err, results) { if (!err && results && results.users.length > 0) { - var numResults = results.users.length, x; + var numResults = results.users.length, + x; if (numResults > 20) { numResults = 20; } @@ -53,7 +56,8 @@ define('admin/manage/group', [ for (x = 0; x < numResults; x++) { foundUser = $('
  • '); foundUser - .attr({title: results.users[x].username, + .attr({ + title: results.users[x].username, 'data-uid': results.users[x].uid, 'data-username': results.users[x].username, 'data-userslug': results.users[x].userslug, @@ -96,7 +100,12 @@ define('admin/manage/group', [ "icon:text": userLabel.attr('data-usericon-text') }; - templates.parse('partials/groups/memberlist', 'members', {group: {isOwner: ajaxify.data.group.isOwner, members: [member]}}, function (html) { + templates.parse('admin/partials/groups/memberlist', 'members', { + group: { + isOwner: ajaxify.data.group.isOwner, + members: [member] + } + }, function (html) { translator.translate(html, function (html) { $('[component="groups/members"] tbody').prepend(html); }); @@ -112,38 +121,38 @@ define('admin/manage/group', [ uid = userRow.attr('data-uid'), action = btnEl.attr('data-action'); - switch(action) { - case 'toggleOwnership': - socket.emit('groups.' + (isOwner ? 'rescind' : 'grant'), { - toUid: uid, + switch (action) { + case 'toggleOwnership': + socket.emit('groups.' + (isOwner ? 'rescind' : 'grant'), { + toUid: uid, + groupName: groupName + }, function (err) { + if (err) { + return app.alertError(err.message); + } + ownerFlagEl.toggleClass('invisible'); + }); + break; + + case 'kick': + bootbox.confirm('[[admin/manage/groups:edit.confirm-remove-user]]', function (confirm) { + if (!confirm) { + return; + } + socket.emit('admin.groups.leave', { + uid: uid, groupName: groupName }, function (err) { if (err) { return app.alertError(err.message); } - ownerFlagEl.toggleClass('invisible'); + userRow.slideUp().remove(); }); - break; - case 'kick': - bootbox.confirm('[[admin/manage/groups:edit.confirm-remove-user]]', function (confirm) { - if (!confirm) { - return; - } - socket.emit('admin.groups.leave', { - uid: uid, - groupName: groupName - }, function (err) { - if (err) { - return app.alertError(err.message); - } - userRow.slideUp().remove(); - }); - - }); - break; - default: - break; + }); + break; + default: + break; } }); @@ -155,7 +164,7 @@ define('admin/manage/group', [ groupLabelPreview.css('background-color', '#' + hex); }); - $('.save').on('click', function () { + $('#save').on('click', function () { socket.emit('admin.groups.update', { groupName: groupName, values: { diff --git a/src/views/admin/manage/group.tpl b/src/views/admin/manage/group.tpl index f119f51914..0805da3e06 100644 --- a/src/views/admin/manage/group.tpl +++ b/src/views/admin/manage/group.tpl @@ -39,7 +39,7 @@
    - -
    - -
    -
    -
    [[admin/manage/groups:control-panel]]
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    - + + - diff --git a/src/views/admin/manage/groups.tpl b/src/views/admin/manage/groups.tpl index c2b0ca2f32..98e08be2e7 100644 --- a/src/views/admin/manage/groups.tpl +++ b/src/views/admin/manage/groups.tpl @@ -1,47 +1,45 @@ -
    -
    -
    -
    - - - - - - - - - - - -
    [[admin/manage/groups:name]][[admin/manage/groups:description]]
    - {groups.displayName} - - [[admin/manage/groups:system]] - - - -

    {groups.description}

    -
    - -
    +
    +
    +
    +
    -
    -
    -
    -
    -
    - -
    -
    -
    + + + + + + + + + + + + + + + + + +
    [[admin/manage/groups:name]]
    + {groups.displayName} + + [[admin/manage/groups:system]] + + + +
    + +
    -
    - diff --git a/src/views/admin/partials/groups/memberlist.tpl b/src/views/admin/partials/groups/memberlist.tpl new file mode 100644 index 0000000000..23ce3e1dae --- /dev/null +++ b/src/views/admin/partials/groups/memberlist.tpl @@ -0,0 +1,37 @@ +
    + + +

    + + + + + + + + + + +
    + + + + +
    {group.members.icon:text}
    + +
    +
    + {group.members.username} + + +
    + + + + + + + +
    + +
    \ No newline at end of file From c168ed43d4d27b68d75cd805f3113062a1712a25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 23 Feb 2017 21:25:20 +0300 Subject: [PATCH 2/4] up build timeout --- test/build.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/build.js b/test/build.js index 404176d3df..5fe95561ba 100644 --- a/test/build.js +++ b/test/build.js @@ -7,6 +7,7 @@ var db = require('./mocks/databasemock'); describe('Build', function () { it('should build all assets', function (done) { + this.timeout(50000); var build = require('../src/meta/build'); build.buildAll(function (err) { assert.ifError(err); From 91d3ce1abcb06321690ca168d6a89aefc7b5212a Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 23 Feb 2017 13:10:38 -0500 Subject: [PATCH 3/4] Revert "adding origin to new local ioConfig var, as per @barisusakli, re: #5472" This reverts commit c1b1ff5c6ec5a35ed1e127edc5ccfc06dd04c5c2. --- src/socket.io/index.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/socket.io/index.js b/src/socket.io/index.js index 4ddf638e9e..f4732d9d9e 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -22,10 +22,6 @@ Sockets.init = function (server) { var SocketIO = require('socket.io'); var socketioWildcard = require('socketio-wildcard')(); - var ioConfig = { - transports: nconf.get('socket.io:transports') - }; - io = new SocketIO({ path: nconf.get('relative_path') + '/socket.io' }); @@ -51,15 +47,17 @@ Sockets.init = function (server) { } if (!override) { - ioConfig.origins = parsedUrl.protocol + '//' + domain + ':*'; + io.set('origins', parsedUrl.protocol + '//' + domain + ':*'); winston.info('[socket.io] Restricting access to origin: ' + parsedUrl.protocol + '//' + domain + ':*'); } else { - ioConfig.origins = override; + io.set('origins', override); winston.info('[socket.io] Restricting access to origin: ' + override); } } - io.listen(server, ioConfig); + io.listen(server, { + transports: nconf.get('socket.io:transports') + }); Sockets.server = io; }; From 25f629382175f559de0345e5b35d28322a6011f0 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 23 Feb 2017 13:26:49 -0500 Subject: [PATCH 4/4] using io.origins instead --- src/socket.io/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/socket.io/index.js b/src/socket.io/index.js index f4732d9d9e..01a520585d 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -47,10 +47,10 @@ Sockets.init = function (server) { } if (!override) { - io.set('origins', parsedUrl.protocol + '//' + domain + ':*'); + io.origins(parsedUrl.protocol + '//' + domain + ':*'); winston.info('[socket.io] Restricting access to origin: ' + parsedUrl.protocol + '//' + domain + ':*'); } else { - io.set('origins', override); + io.origins(override); winston.info('[socket.io] Restricting access to origin: ' + override); } }