summaryrefslogtreecommitdiffstats
path: root/settings
diff options
context:
space:
mode:
Diffstat (limited to 'settings')
-rw-r--r--settings/controller/groupscontroller.php10
-rw-r--r--settings/js/users/groups.js45
-rw-r--r--settings/l10n/fr.js2
-rw-r--r--settings/l10n/fr.json2
-rw-r--r--settings/l10n/sl.js11
-rw-r--r--settings/l10n/sl.json11
-rw-r--r--settings/l10n/tr.js2
-rw-r--r--settings/l10n/tr.json2
-rw-r--r--settings/templates/users/part.grouplist.php2
-rw-r--r--settings/users.php14
10 files changed, 85 insertions, 16 deletions
diff --git a/settings/controller/groupscontroller.php b/settings/controller/groupscontroller.php
index c3c0ea5ff20..6cb0cd3e008 100644
--- a/settings/controller/groupscontroller.php
+++ b/settings/controller/groupscontroller.php
@@ -23,7 +23,8 @@
namespace OC\Settings\Controller;
use OC\AppFramework\Http;
-use \OCP\AppFramework\Controller;
+use OC\Group\MetaData;
+use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\DataResponse;
use OCP\IGroupManager;
use OCP\IL10N;
@@ -69,14 +70,15 @@ class GroupsController extends Controller {
*
* @param string $pattern
* @param bool $filterGroups
+ * @param int $sortGroups
* @return DataResponse
*/
- public function index($pattern = '', $filterGroups = false) {
+ public function index($pattern = '', $filterGroups = false, $sortGroups = MetaData::SORT_USERCOUNT) {
$groupPattern = $filterGroups ? $pattern : '';
- $groupsInfo = new \OC\Group\MetaData($this->userSession->getUser()->getUID(),
+ $groupsInfo = new MetaData($this->userSession->getUser()->getUID(),
$this->isAdmin, $this->groupManager);
- $groupsInfo->setSorting($groupsInfo::SORT_GROUPNAME);
+ $groupsInfo->setSorting($sortGroups);
list($adminGroups, $groups) = $groupsInfo->get($groupPattern, $pattern);
return new DataResponse(
diff --git a/settings/js/users/groups.js b/settings/js/users/groups.js
index 0fcca39843f..d205e915508 100644
--- a/settings/js/users/groups.js
+++ b/settings/js/users/groups.js
@@ -5,7 +5,8 @@
* See the COPYING-README file.
*/
-var $userGroupList;
+var $userGroupList,
+ $sortGroupBy;
var GroupList;
GroupList = {
@@ -27,6 +28,11 @@ GroupList = {
},
setUserCount: function (groupLiElement, usercount) {
+ if ($sortGroupBy !== 1) {
+ // If we don't sort by group count we dont display them either
+ return;
+ }
+
var $groupLiElement = $(groupLiElement);
if (usercount === undefined || usercount === 0 || usercount < 0) {
usercount = '';
@@ -63,6 +69,33 @@ GroupList = {
var lis = $userGroupList.find('.isgroup').get();
lis.sort(function (a, b) {
+ // "Everyone" always at the top
+ if ($(a).data('gid') === '_everyone') {
+ return -1;
+ } else if ($(b).data('gid') === '_everyone') {
+ return 1;
+ }
+
+ // "admin" always as second
+ if ($(a).data('gid') === 'admin') {
+ return -1;
+ } else if ($(b).data('gid') === 'admin') {
+ return 1;
+ }
+
+ if ($sortGroupBy === 1) {
+ // Sort by user count first
+ var $usersGroupA = $(a).data('usercount'),
+ $usersGroupB = $(b).data('usercount');
+ if ($usersGroupA > 0 && $usersGroupA > $usersGroupB) {
+ return -1;
+ }
+ if ($usersGroupB > 0 && $usersGroupB > $usersGroupA) {
+ return 1;
+ }
+ }
+
+ // Fallback or sort by group name
return UserList.alphanum(
$(a).find('a span').text(),
$(b).find('a span').text()
@@ -113,7 +146,8 @@ GroupList = {
OC.generateUrl('/settings/users/groups'),
{
pattern: filter.getPattern(),
- filterGroups: filter.filterGroups ? 1 : 0
+ filterGroups: filter.filterGroups ? 1 : 0,
+ sortGroups: $sortGroupBy
},
function (result) {
@@ -271,8 +305,11 @@ GroupList = {
$(document).ready( function () {
$userGroupList = $('#usergrouplist');
GroupList.initDeleteHandling();
- // TODO: disabled due to performance issues
- // GroupList.getEveryoneCount();
+ $sortGroupBy = $userGroupList.data('sort-groups');
+ if ($sortGroupBy === 1) {
+ // Disabled due to performance issues, when we don't need it for sorting
+ GroupList.getEveryoneCount();
+ }
// Display or hide of Create Group List Element
$('#newgroup-form').hide();
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index d81fb77b9b7..d64ea32e435 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -48,7 +48,7 @@ OC.L10N.register(
"Your %s account was created" : "Votre compte %s a été créé.",
"Unable to delete user." : "Impossible de supprimer l'utilisateur.",
"Forbidden" : "Iinterdit",
- "Invalid user" : "Utilisateur non valide",
+ "Invalid user" : "Utilisateur non valable",
"Unable to change mail address" : "Impossible de modifier l'adresse de courriel",
"Email saved" : "Email sauvegardé",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index c2d74a22760..4972e23e64b 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -46,7 +46,7 @@
"Your %s account was created" : "Votre compte %s a été créé.",
"Unable to delete user." : "Impossible de supprimer l'utilisateur.",
"Forbidden" : "Iinterdit",
- "Invalid user" : "Utilisateur non valide",
+ "Invalid user" : "Utilisateur non valable",
"Unable to change mail address" : "Impossible de modifier l'adresse de courriel",
"Email saved" : "Email sauvegardé",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?",
diff --git a/settings/l10n/sl.js b/settings/l10n/sl.js
index 257aa8f9536..747a8010321 100644
--- a/settings/l10n/sl.js
+++ b/settings/l10n/sl.js
@@ -1,6 +1,8 @@
OC.L10N.register(
"settings",
{
+ "APCu" : "APCu",
+ "Redis" : "Redis",
"Security & setup warnings" : "Varnost in namestitvena opozorila",
"Sharing" : "Souporaba",
"Server-side encryption" : "Šifriranje na strežniku",
@@ -8,6 +10,7 @@ OC.L10N.register(
"Cron" : "Periodično opravilo",
"Email server" : "Poštni strežnik",
"Log" : "Dnevnik",
+ "Server Status" : "Stanje strežnika",
"Tips & tricks" : "Nasveti in triki",
"Updates" : "Posodobitve",
"Authentication error" : "Napaka med overjanjem",
@@ -52,7 +55,11 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Selitev v teku. Prosimo, počakajte, da se selitev zaključi.",
"Migration started …" : "Selitev pognana...",
"Sending..." : "Poteka pošiljanje ...",
+ "Official" : "Uradno",
+ "Approved" : "Odobreno",
+ "Experimental" : "Preizkusno",
"All" : "Vsi",
+ "Update to %s" : "Posodobi na %s",
"Please wait...." : "Počakajte ...",
"Error while disabling app" : "Napaka onemogočanja programa",
"Disable" : "Onemogoči",
@@ -126,6 +133,7 @@ OC.L10N.register(
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Datoteka cron.php je vpisana za periodično opravilo webcron za potrditev sklica vsakih 15 minut pri povezavi preko HTTP.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Uporabi storitev periodičnih opravil za klic datoteke cron.php vsakih 15 minut.",
"Enable server-side encryption" : "Omogoči šifriranje na strežniku",
+ "Enable encryption" : "Omogoči šifriranje",
"Start migration" : "Zaženite selitev",
"This is used for sending out notifications." : "Možnost je uporabljena za omogočanje pošiljanja obvestil.",
"Send mode" : "Način pošiljanja",
@@ -165,7 +173,6 @@ OC.L10N.register(
"Show description …" : "Prikaži opis...",
"Hide description …" : "Skrij opis...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerešenih odvisnosti:",
- "Update to %s" : "Posodobi na %s",
"Enable only for specific groups" : "Omogoči le za posamezne skupine",
"Uninstall App" : "Odstrani program",
"Enable experimental apps" : "Omogoči testne aplikacije",
@@ -215,6 +222,7 @@ OC.L10N.register(
"Import root certificate" : "Uvozite korenski certifikat",
"Show storage location" : "Pokaži mesto shrambe",
"Show last log in" : "Pokaži podatke zadnje prijave",
+ "Show user backend" : "Pokaži ozadnji program",
"Send email to new user" : "Pošlji sporočilo novemu uporabniku",
"Show email address" : "Pokaži naslov elektronske pošte",
"Username" : "Uporabniško ime",
@@ -235,6 +243,7 @@ OC.L10N.register(
"Group Admin for" : "Skrbnik skupine za",
"Quota" : "Količinska omejitev",
"Storage Location" : "Mesto shrambe",
+ "User Backend" : "Uporabniški ozadnji program",
"Last Login" : "Zadnja prijava",
"change full name" : "Spremeni polno ime",
"set new password" : "nastavi novo geslo",
diff --git a/settings/l10n/sl.json b/settings/l10n/sl.json
index e1972909ac5..593a17d7cfc 100644
--- a/settings/l10n/sl.json
+++ b/settings/l10n/sl.json
@@ -1,4 +1,6 @@
{ "translations": {
+ "APCu" : "APCu",
+ "Redis" : "Redis",
"Security & setup warnings" : "Varnost in namestitvena opozorila",
"Sharing" : "Souporaba",
"Server-side encryption" : "Šifriranje na strežniku",
@@ -6,6 +8,7 @@
"Cron" : "Periodično opravilo",
"Email server" : "Poštni strežnik",
"Log" : "Dnevnik",
+ "Server Status" : "Stanje strežnika",
"Tips & tricks" : "Nasveti in triki",
"Updates" : "Posodobitve",
"Authentication error" : "Napaka med overjanjem",
@@ -50,7 +53,11 @@
"Migration in progress. Please wait until the migration is finished" : "Selitev v teku. Prosimo, počakajte, da se selitev zaključi.",
"Migration started …" : "Selitev pognana...",
"Sending..." : "Poteka pošiljanje ...",
+ "Official" : "Uradno",
+ "Approved" : "Odobreno",
+ "Experimental" : "Preizkusno",
"All" : "Vsi",
+ "Update to %s" : "Posodobi na %s",
"Please wait...." : "Počakajte ...",
"Error while disabling app" : "Napaka onemogočanja programa",
"Disable" : "Onemogoči",
@@ -124,6 +131,7 @@
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Datoteka cron.php je vpisana za periodično opravilo webcron za potrditev sklica vsakih 15 minut pri povezavi preko HTTP.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Uporabi storitev periodičnih opravil za klic datoteke cron.php vsakih 15 minut.",
"Enable server-side encryption" : "Omogoči šifriranje na strežniku",
+ "Enable encryption" : "Omogoči šifriranje",
"Start migration" : "Zaženite selitev",
"This is used for sending out notifications." : "Možnost je uporabljena za omogočanje pošiljanja obvestil.",
"Send mode" : "Način pošiljanja",
@@ -163,7 +171,6 @@
"Show description …" : "Prikaži opis...",
"Hide description …" : "Skrij opis...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerešenih odvisnosti:",
- "Update to %s" : "Posodobi na %s",
"Enable only for specific groups" : "Omogoči le za posamezne skupine",
"Uninstall App" : "Odstrani program",
"Enable experimental apps" : "Omogoči testne aplikacije",
@@ -213,6 +220,7 @@
"Import root certificate" : "Uvozite korenski certifikat",
"Show storage location" : "Pokaži mesto shrambe",
"Show last log in" : "Pokaži podatke zadnje prijave",
+ "Show user backend" : "Pokaži ozadnji program",
"Send email to new user" : "Pošlji sporočilo novemu uporabniku",
"Show email address" : "Pokaži naslov elektronske pošte",
"Username" : "Uporabniško ime",
@@ -233,6 +241,7 @@
"Group Admin for" : "Skrbnik skupine za",
"Quota" : "Količinska omejitev",
"Storage Location" : "Mesto shrambe",
+ "User Backend" : "Uporabniški ozadnji program",
"Last Login" : "Zadnja prijava",
"change full name" : "Spremeni polno ime",
"set new password" : "nastavi novo geslo",
diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js
index 3e81d5e3603..d16e0f49678 100644
--- a/settings/l10n/tr.js
+++ b/settings/l10n/tr.js
@@ -63,6 +63,7 @@ OC.L10N.register(
"Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Resmi uygulamalar ownCloud topluluğu tarafından geliştirilir. ownCloud'a işlevsellik merkezli olarak hazırlanırlar ve günlük kullanıma hazırdırlar.",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Onaylanan uygulamalar güvenilir geliştiriciler tarafından geliştirilir ve detaylı olmayan bir güvenlik kontrolünden geçirilir. Bunlar açık kaynak kod deposunda bulunmakta ve normal kullanım için kararlı oldukları varsayılmaktadır.",
"This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Bu uygulama güvenlik kontrolünden geçmedi veya yeni ya da kararsız olarak bilinmektedir. Kendiniz bu riski alarak yükleyebilirsiniz.",
+ "Update to %s" : "%s sürümüne güncelle",
"Please wait...." : "Lütfen bekleyin....",
"Error while disabling app" : "Uygulama devre dışı bırakılırken hata",
"Disable" : "Devre Dışı Bırak",
@@ -199,7 +200,6 @@ OC.L10N.register(
"Show description …" : "Açıklamayı göster...",
"Hide description …" : "Açıklamayı gizle...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Bu uygulama, aşağıdaki bağımlılıklar sağlanmadığından yüklenemiyor:",
- "Update to %s" : "%s sürümüne güncelle",
"Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir",
"Uninstall App" : "Uygulamayı Kaldır",
"Enable experimental apps" : "Deneysel uygulamaları etkinleştir",
diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json
index f9dc84a431e..e0e080a08f5 100644
--- a/settings/l10n/tr.json
+++ b/settings/l10n/tr.json
@@ -61,6 +61,7 @@
"Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Resmi uygulamalar ownCloud topluluğu tarafından geliştirilir. ownCloud'a işlevsellik merkezli olarak hazırlanırlar ve günlük kullanıma hazırdırlar.",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Onaylanan uygulamalar güvenilir geliştiriciler tarafından geliştirilir ve detaylı olmayan bir güvenlik kontrolünden geçirilir. Bunlar açık kaynak kod deposunda bulunmakta ve normal kullanım için kararlı oldukları varsayılmaktadır.",
"This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Bu uygulama güvenlik kontrolünden geçmedi veya yeni ya da kararsız olarak bilinmektedir. Kendiniz bu riski alarak yükleyebilirsiniz.",
+ "Update to %s" : "%s sürümüne güncelle",
"Please wait...." : "Lütfen bekleyin....",
"Error while disabling app" : "Uygulama devre dışı bırakılırken hata",
"Disable" : "Devre Dışı Bırak",
@@ -197,7 +198,6 @@
"Show description …" : "Açıklamayı göster...",
"Hide description …" : "Açıklamayı gizle...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Bu uygulama, aşağıdaki bağımlılıklar sağlanmadığından yüklenemiyor:",
- "Update to %s" : "%s sürümüne güncelle",
"Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir",
"Uninstall App" : "Uygulamayı Kaldır",
"Enable experimental apps" : "Deneysel uygulamaları etkinleştir",
diff --git a/settings/templates/users/part.grouplist.php b/settings/templates/users/part.grouplist.php
index 5b516bc0e16..51638c7bcce 100644
--- a/settings/templates/users/part.grouplist.php
+++ b/settings/templates/users/part.grouplist.php
@@ -1,4 +1,4 @@
-<ul id="usergrouplist">
+<ul id="usergrouplist" data-sort-groups="<?php p($_['sortGroups']); ?>">
<!-- Add new group -->
<li id="newgroup-init">
<a href="#">
diff --git a/settings/users.php b/settings/users.php
index 44e2548be72..c438e5fbfd0 100644
--- a/settings/users.php
+++ b/settings/users.php
@@ -37,12 +37,23 @@ OC_App::setActiveNavigationEntry( 'core_users' );
$userManager = \OC_User::getManager();
$groupManager = \OC_Group::getManager();
+// Set the sort option: SORT_USERCOUNT or SORT_GROUPNAME
+$sortGroupsBy = \OC\Group\MetaData::SORT_USERCOUNT;
+
+if (class_exists('\OCA\user_ldap\GROUP_LDAP')) {
+ $isLDAPUsed = $groupManager->isBackendUsed('\OCA\user_ldap\GROUP_LDAP');
+ if ($isLDAPUsed) {
+ // LDAP user count can be slow, so we sort by group name here
+ $sortGroupsBy = \OC\Group\MetaData::SORT_GROUPNAME;
+ }
+}
+
$config = \OC::$server->getConfig();
$isAdmin = OC_User::isAdminUser(OC_User::getUser());
$groupsInfo = new \OC\Group\MetaData(OC_User::getUser(), $isAdmin, $groupManager);
-$groupsInfo->setSorting($groupsInfo::SORT_GROUPNAME);
+$groupsInfo->setSorting($sortGroupsBy);
list($adminGroup, $groups) = $groupsInfo->get();
$recoveryAdminEnabled = OC_App::isEnabled('encryption') &&
@@ -75,6 +86,7 @@ $defaultQuotaIsUserDefined=array_search($defaultQuota, $quotaPreset)===false
$tmpl = new OC_Template("settings", "users/main", "user");
$tmpl->assign('groups', $groups);
+$tmpl->assign('sortGroups', $sortGroupsBy);
$tmpl->assign('adminGroup', $adminGroup);
$tmpl->assign('isAdmin', (int)$isAdmin);
$tmpl->assign('subadmins', $subadmins);