From 4d4a0491f11bf473bd4a0516f4b239bc0d6b6c90 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Mon, 20 Oct 2014 16:24:53 +0200 Subject: [PATCH] groups/all didn't work, also fixed pagination in directory/users, and a convenient delete-button for admins --- plugins/Directory/DirectoryPlugin.php | 35 +++++++++++++++++++ plugins/Directory/actions/userdirectory.php | 7 ++++ .../lib/sortablesubscriptionlist.php | 12 +++++++ 3 files changed, 54 insertions(+) diff --git a/plugins/Directory/DirectoryPlugin.php b/plugins/Directory/DirectoryPlugin.php index e061b89e46..caf137c29e 100644 --- a/plugins/Directory/DirectoryPlugin.php +++ b/plugins/Directory/DirectoryPlugin.php @@ -79,11 +79,40 @@ class DirectoryPlugin extends Plugin function onRouterInitialized($m) { + $m->connect( + 'directory/users/:filter/sort_by/:sort/reverse/:reverse', + array('action' => 'userdirectory'), + array('filter' => '[0-9a-zA-Z]|(0-9)'), + array('sort' => '[a-z]+'), + array('reverse' => '[0-9]') + ); + + $m->connect( + 'directory/users/:filter/sort_by/:sort', + array('action' => 'userdirectory'), + array('filter' => '[0-9a-zA-Z]|(0-9)'), + array('sort' => '[a-z]+') + ); + + $m->connect( 'directory/users/:filter', array('action' => 'userdirectory'), array('filter' => '[0-9a-zA-Z]|(0-9)') ); + + $m->connect( + 'directory/users/sort_by/:sort/reverse/:reverse', + array('action' => 'userdirectory'), + array('sort' => '[a-z]+'), + array('reverse' => '[0-9]') + ); + + $m->connect( + 'directory/users/sort_by/:sort', + array('action' => 'userdirectory'), + array('sort' => '[a-z]+') + ); $m->connect( 'directory/users', @@ -101,6 +130,12 @@ class DirectoryPlugin extends Plugin array('action' => 'groupdirectory') ); + $m->connect( + 'groups/all', + array('action' => 'groupdirectory') + ); + + return true; } diff --git a/plugins/Directory/actions/userdirectory.php b/plugins/Directory/actions/userdirectory.php index 2a4bc7c76b..77ffb5206b 100644 --- a/plugins/Directory/actions/userdirectory.php +++ b/plugins/Directory/actions/userdirectory.php @@ -233,6 +233,13 @@ class UserdirectoryAction extends Action } elseif (isset($this->filter) && $this->filter != 'all') { $args['filter'] = $this->filter; } + + if (isset($this->sort)) { + $args['sort'] = $this->sort; + } + if (!empty($this->reverse)) { + $args['reverse'] = $this->reverse; + } $this->pagination( $this->page > 1, diff --git a/plugins/Directory/lib/sortablesubscriptionlist.php b/plugins/Directory/lib/sortablesubscriptionlist.php index 4a9d50110b..9fc1dd6a10 100644 --- a/plugins/Directory/lib/sortablesubscriptionlist.php +++ b/plugins/Directory/lib/sortablesubscriptionlist.php @@ -207,6 +207,18 @@ class SortableSubscriptionListItem extends SubscriptionListItem function endActions() { + + // delete button + $cur = common_current_user(); + list($action, $r2args) = $this->out->returnToArgs(); + $r2args['action'] = $action; + if ($cur->hasRight(Right::DELETEUSER)) { + $this->out->elementStart('li', 'entity_delete'); + $df = new DeleteUserForm($this->out, $this->profile, $r2args); + $df->show(); + $this->out->elementEnd('li'); + } + $this->out->elementEnd('ul'); $this->out->elementEnd('td'); }