From af1f34e813eb3d7f19ba23a8a930c51bc610d0e9 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Thu, 11 Dec 2014 15:37:56 +0100 Subject: remove PHP generated user list and move all to the existing JS part --- settings/js/users/users.js | 17 ++++-- settings/templates/users/part.userlist.php | 86 ++++++------------------------ settings/users.php | 32 +---------- 3 files changed, 31 insertions(+), 104 deletions(-) diff --git a/settings/js/users/users.js b/settings/js/users/users.js index 9c48da32c5a..5eee36f0f9e 100644 --- a/settings/js/users/users.js +++ b/settings/js/users/users.js @@ -12,9 +12,7 @@ var filter; var UserList = { availableGroups: [], - offset: 30, //The first 30 users are there. No prob, if less in total. - //hardcoded in settings/users.php - + offset: 0, usersToLoad: 10, //So many users will be loaded when user scrolls down currentGid: '', @@ -32,13 +30,23 @@ var UserList = { add: function (username, displayname, groups, subadmin, quota, storageLocation, lastLogin, sort) { var $tr = $userListBody.find('tr:first-child').clone(); + // this removes just the `display:none` of the template row + $tr.removeAttr('style'); var subAdminsEl; var subAdminSelect; var groupsSelect; + + /** + * Avatar or placeholder + */ if ($tr.find('div.avatardiv').length){ $tr.find('.avatardiv').imageplaceholder(username, displayname); $('div.avatardiv', $tr).avatar(username, 32); } + + /** + * add username and displayname to row (in data and visible markup + */ $tr.data('uid', username); $tr.data('displayname', displayname); $tr.find('td.name').text(username); @@ -727,6 +735,7 @@ $(document).ready(function () { } }); - + // trigger loading of users on startup + UserList.update(UserList.currentGid); }); diff --git a/settings/templates/users/part.userlist.php b/settings/templates/users/part.userlist.php index 964aef600a2..c531323a2fa 100644 --- a/settings/templates/users/part.userlist.php +++ b/settings/templates/users/part.userlist.php @@ -18,14 +18,13 @@ - - " - data-displayname=""> + + -
+
- - + <?php p($l->t(" title="t("change full name"))?>"/> @@ -33,84 +32,31 @@ src="" alt="t("set new password"))?>" title="t("set new password"))?>"/> - - - + - - - + - - t('never'); - $lastLoginDate = $lastLogin; - } else { - $lastLogin = relative_modified_date($user["lastLogin"]); - $lastLoginDate = \OC_Util::formatDate($user["lastLogin"]); - } - ?> - '.$lastLoginDate.''); ?>"> - - - - - - - + + + - diff --git a/settings/users.php b/settings/users.php index 3da8017b883..a327cab9b28 100644 --- a/settings/users.php +++ b/settings/users.php @@ -17,7 +17,6 @@ OC_Util::addScript( 'core', 'singleselect' ); OC_Util::addStyle( 'settings', 'settings' ); OC_App::setActiveNavigationEntry( 'core_users' ); -$users = array(); $userManager = \OC_User::getManager(); $groupManager = \OC_Group::getManager(); @@ -33,7 +32,6 @@ $recoveryAdminEnabled = OC_App::isEnabled('files_encryption') && $config->getAppValue( 'files_encryption', 'recoveryAdminEnabled', null ); if($isAdmin) { - $accessibleUsers = OC_User::getDisplayNames('', 30); $subadmins = OC_SubAdmin::getAllSubAdmins(); }else{ /* Retrieve group IDs from $groups array, so we can pass that information into OC_Group::displayNamesInGroups() */ @@ -43,48 +41,22 @@ if($isAdmin) { $gids[] = $group['id']; } } - $accessibleUsers = OC_Group::displayNamesInGroups($gids, '', 30); $subadmins = false; } // load preset quotas -$quotaPreset=OC_Appconfig::getValue('files', 'quota_preset', '1 GB, 5 GB, 10 GB'); +$quotaPreset=$config->getAppValue('files', 'quota_preset', '1 GB, 5 GB, 10 GB'); $quotaPreset=explode(',', $quotaPreset); foreach($quotaPreset as &$preset) { $preset=trim($preset); } $quotaPreset=array_diff($quotaPreset, array('default', 'none')); -$defaultQuota=OC_Appconfig::getValue('files', 'default_quota', 'none'); +$defaultQuota=$config->getAppValue('files', 'default_quota', 'none'); $defaultQuotaIsUserDefined=array_search($defaultQuota, $quotaPreset)===false && array_search($defaultQuota, array('none', 'default'))===false; -// load users and quota -foreach($accessibleUsers as $uid => $displayName) { - $quota = $config->getUserValue($uid, 'files', 'quota', 'default'); - $isQuotaUserDefined = array_search($quota, $quotaPreset) === false - && array_search($quota, array('none', 'default')) === false; - - $name = $displayName; - if ($displayName !== $uid) { - $name = $name . ' (' . $uid . ')'; - } - - $user = $userManager->get($uid); - $users[] = array( - "name" => $uid, - "displayName" => $displayName, - "groups" => OC_Group::getUserGroups($uid), - 'quota' => $quota, - 'isQuotaUserDefined' => $isQuotaUserDefined, - 'subadmin' => OC_SubAdmin::getSubAdminsGroups($uid), - 'storageLocation' => $user->getHome(), - 'lastLogin' => $user->getLastLogin(), - ); -} - $tmpl = new OC_Template("settings", "users/main", "user"); -$tmpl->assign('users', $users); $tmpl->assign('groups', $groups); $tmpl->assign('adminGroup', $adminGroup); $tmpl->assign('isAdmin', (int)$isAdmin); -- cgit v1.2.3 From fa5790c8af3a68111167546ad6d70a7adb9fd21d Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 12 Dec 2014 09:22:15 +0100 Subject: move loading of JS and CSS to template --- settings/templates/users/main.php | 13 +++++++++++++ settings/users.php | 8 -------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/settings/templates/users/main.php b/settings/templates/users/main.php index d2b7652f142..1923f4b0493 100644 --- a/settings/templates/users/main.php +++ b/settings/templates/users/main.php @@ -4,6 +4,19 @@ * This file is licensed under the Affero General Public License version 3 or later. * See the COPYING-README file. */ + +script('settings', [ + 'users/deleteHandler', + 'users/filter', + 'users/users', + 'users/groups' +]); +script('core', [ + 'multiselect', + 'singleselect' +]); +style('settings', 'settings'); + $userlistParams = array(); $allGroups=array(); foreach($_["groups"] as $group) { diff --git a/settings/users.php b/settings/users.php index a327cab9b28..75109f9ef74 100644 --- a/settings/users.php +++ b/settings/users.php @@ -7,14 +7,6 @@ OC_Util::checkSubAdminUser(); -// We have some javascript foo! -OC_Util::addScript('settings', 'users/deleteHandler'); -OC_Util::addScript('settings', 'users/filter'); -OC_Util::addScript( 'settings', 'users/users' ); -OC_Util::addScript( 'settings', 'users/groups' ); -OC_Util::addScript( 'core', 'multiselect' ); -OC_Util::addScript( 'core', 'singleselect' ); -OC_Util::addStyle( 'settings', 'settings' ); OC_App::setActiveNavigationEntry( 'core_users' ); $userManager = \OC_User::getManager(); -- cgit v1.2.3 From 3ab18f1f54ecf80c815f312521145e3d0c6f5150 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 12 Dec 2014 09:59:42 +0100 Subject: add comments to user list JS for better understanding --- settings/js/users/users.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/settings/js/users/users.js b/settings/js/users/users.js index 5eee36f0f9e..70dd115396d 100644 --- a/settings/js/users/users.js +++ b/settings/js/users/users.js @@ -52,6 +52,9 @@ var UserList = { $tr.find('td.name').text(username); $tr.find('td.displayName > span').text(displayname); + /** + * groups and subadmins + */ // make them look like the multiselect buttons // until they get time to really get initialized groupsSelect = $('') @@ -75,6 +78,10 @@ var UserList = { if (subAdminsEl.length > 0) { subAdminsEl.append(subAdminSelect); } + + /** + * remove action + */ if ($tr.find('td.remove img').length === 0 && OC.currentUser !== username) { var deleteImage = $('').attr({ src: OC.imagePath('core', 'actions/delete') @@ -86,6 +93,10 @@ var UserList = { } else if (OC.currentUser === username) { $tr.find('td.remove a').remove(); } + + /** + * quota + */ var $quotaSelect = $tr.find('.quota-user'); if (quota === 'default') { $quotaSelect @@ -99,8 +110,15 @@ var UserList = { $quotaSelect.append(''); } } + + /** + * storage location + */ $tr.find('td.storageLocation').text(storageLocation); + /** + * last login + */ var lastLoginRel = t('settings', 'never'); var lastLoginAbs = lastLoginRel; if(lastLogin !== 0) { @@ -115,6 +133,10 @@ var UserList = { var tooltip = $('
').html($($tdLastLogin.attr('original-title')).text(lastLoginAbs)).html(); $tdLastLogin.tipsy({gravity:'s', fade:true, html:true}); $tdLastLogin.attr('title', tooltip); + + /** + * append generated row to user list + */ $tr.appendTo($userList); if(UserList.isEmpty === true) { //when the list was emptied, one row was left, necessary to keep @@ -124,6 +146,10 @@ var UserList = { UserList.isEmpty = false; UserList.checkUsersToLoad(); } + + /** + * sort list + */ if (sort) { UserList.doSort(); } -- cgit v1.2.3