Skip to content

Commit

Permalink
load groups when clicking on them
Browse files Browse the repository at this point in the history
  • Loading branch information
blizzz committed Jun 2, 2014
1 parent e681e1e commit 478393e
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 7 deletions.
17 changes: 16 additions & 1 deletion settings/ajax/userlist.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,19 @@
} else {
$limit = 10;
}
if (isset($_GET['gid']) && !empty($_GET['gid'])) {
$gid = $_GET['gid'];
} else {
$gid = false;
}
$users = array();
$userManager = \OC_User::getManager();
if (OC_User::isAdminUser(OC_User::getUser())) {
$batch = OC_User::getDisplayNames('', $limit, $offset);
if($gid !== false) {
$batch = OC_Group::displayNamesInGroup($gid, '', $limit, $offset);
} else {
$batch = OC_User::getDisplayNames('', $limit, $offset);
}
foreach ($batch as $uid => $displayname) {
$user = $userManager->get($uid);
$users[] = array(
Expand All @@ -50,6 +59,12 @@
}
} else {
$groups = OC_SubAdmin::getSubAdminsGroups(OC_User::getUser());
if($gid !== false && in_array($gid, $groups)) {
$groups = array($gid);
} elseif($gid !== false) {
//don't you try to investigate loops you must not know about
$groups = array();
}
$batch = OC_Group::usersInGroups($groups, '', $limit, $offset);
foreach ($batch as $uid) {
$user = $userManager->get($uid);
Expand Down
5 changes: 5 additions & 0 deletions settings/js/users/groups.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@
OC.Notification.showHtml(t('settings', 'deleted') + ' ' + escapeHTML(gid) + '<span class="undo">' + t('settings', 'undo') + '</span>');
},

showGroup: function (gid) {
UserList.empty();
UserList.update(gid);
},

finishDelete: function (ready) {
if (!GroupList.deleteCanceled && GroupList.deleteGid) {
$.ajax({
Expand Down
34 changes: 28 additions & 6 deletions settings/js/users/users.js
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,13 @@ var UserList = {
}
tr.find('td.lastLogin').text(lastLogin);
$(tr).appendTo('tbody');

if(UserList.isEmpty === true) {
//when the list was emptied, one row was left, necessary to keep
//add working and the layout unbroken. We need to remove this item
tr.show();
$('tbody tr').first().remove();
UserList.isEmpty = false;
}
if (sort) {
UserList.doSort();
}
Expand Down Expand Up @@ -215,16 +221,23 @@ var UserList = {
$('tbody').append(items);
}
},
update: function () {
empty: function() {
//one row needs to be kept, because it is cloned to add new rows
$('tbody tr:not(:first)').remove();
$('tbody tr').first().hide();
UserList.isEmpty = true;
UserList.offset = 0;
},
update: function (gid) {
if (UserList.updating) {
return;
}
$('table+.loading').css('visibility', 'visible');
UserList.updating = true;
var query = $.param({ offset: UserList.offset, limit: UserList.usersToLoad });
$.get(OC.generateUrl('/settings/ajax/userlist') + '?' + query, function (result) {
var loadedUsers = 0;
var trs = [];
if(gid === undefined) {
gid = '';
}
$.get(OC.Router.generate('settings_ajax_userlist', { offset: UserList.offset, limit: UserList.usersToLoad, gid: gid }), function (result) {
if (result.status === 'success') {
//The offset does not mirror the amount of users available,
//because it is backend-dependent. For correct retrieval,
Expand Down Expand Up @@ -485,6 +498,15 @@ $(document).ready(function () {
});
});

// click on group name
// FIXME: also triggered when clicking on "remove"
$('ul').on('click', 'li', function (event) {
var li = $(this);
var gid = $(li).attr('data-gid');
// Call function for handling delete/undo on Groups
GroupList.showGroup(gid);
});

$('#newuser').submit(function (event) {
event.preventDefault();
var username = $('#newusername').val();
Expand Down

0 comments on commit 478393e

Please sign in to comment.