From d1edac845ce81f8ccf43a43803ab0a89574f285c Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sat, 11 Mar 2017 17:30:09 -0500 Subject: [PATCH] Change groups list layout --- ChangeLog | 2 +- app/Controller/GroupListController.php | 7 +- app/Model/GroupModel.php | 8 +- app/Template/group/dropdown.php | 9 +++ app/Template/group/index.php | 102 +++++++++++++++---------- app/Template/group/users.php | 49 +++++------- tests/units/Model/GroupModelTest.php | 1 + 7 files changed, 99 insertions(+), 79 deletions(-) create mode 100644 app/Template/group/dropdown.php diff --git a/ChangeLog b/ChangeLog index d8b4f297c..656fa32af 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,7 +11,7 @@ Improvements: * Add toggle button to show/hide subtasks in task list view * Display tags in task list view * Make user actions available from contextual menu -* Change users list layout +* Change users and groups list layout * Project priority is always rendered now Breaking Changes: diff --git a/app/Controller/GroupListController.php b/app/Controller/GroupListController.php index 4486bbff4..11081e4a3 100644 --- a/app/Controller/GroupListController.php +++ b/app/Controller/GroupListController.php @@ -2,6 +2,9 @@ namespace Kanboard\Controller; +use Kanboard\Model\GroupModel; +use Kanboard\Model\UserModel; + /** * Group Controller * @@ -20,7 +23,7 @@ class GroupListController extends BaseController $paginator = $this->paginator ->setUrl('GroupListController', 'index') ->setMax(30) - ->setOrder('name') + ->setOrder(GroupModel::TABLE.'.name') ->setQuery($this->groupModel->getQuery()) ->calculate(); @@ -43,7 +46,7 @@ class GroupListController extends BaseController $paginator = $this->paginator ->setUrl('GroupListController', 'users', array('group_id' => $group_id)) ->setMax(30) - ->setOrder('username') + ->setOrder(UserModel::TABLE.'.username') ->setQuery($this->groupMemberModel->getQuery($group_id)) ->calculate(); diff --git a/app/Model/GroupModel.php b/app/Model/GroupModel.php index b43423b39..5acf7e3f0 100644 --- a/app/Model/GroupModel.php +++ b/app/Model/GroupModel.php @@ -27,7 +27,9 @@ class GroupModel extends Base */ public function getQuery() { - return $this->db->table(self::TABLE); + return $this->db->table(self::TABLE) + ->columns('id', 'name', 'external_id') + ->subquery('SELECT COUNT(*) FROM '.GroupMemberModel::TABLE.' WHERE group_id='.self::TABLE.'.id', 'nb_users'); } /** @@ -39,7 +41,7 @@ class GroupModel extends Base */ public function getById($group_id) { - return $this->getQuery()->eq('id', $group_id)->findOne(); + return $this->db->table(self::TABLE)->eq('id', $group_id)->findOne(); } /** @@ -51,7 +53,7 @@ class GroupModel extends Base */ public function getByExternalId($external_id) { - return $this->getQuery()->eq('external_id', $external_id)->findOne(); + return $this->db->table(self::TABLE)->eq('external_id', $external_id)->findOne(); } /** diff --git a/app/Template/group/dropdown.php b/app/Template/group/dropdown.php new file mode 100644 index 000000000..9d807dc53 --- /dev/null +++ b/app/Template/group/dropdown.php @@ -0,0 +1,9 @@ + diff --git a/app/Template/group/index.php b/app/Template/group/index.php index 8370dc533..f85eab8b9 100644 --- a/app/Template/group/index.php +++ b/app/Template/group/index.php @@ -1,42 +1,62 @@ -
- - isEmpty()): ?> -

- - - - - - - - getCollection() as $group): ?> - - - - - - -
order(t('Id'), 'id') ?>order(t('Name'), 'name') ?>order(t('External Id'), 'external_id') ?>
- - - url->link($this->text->e($group['name']), 'GroupListController', 'users', array('group_id' => $group['id'])) ?> - - text->e($group['external_id']) ?> -
+ +isEmpty()): ?> +

+ +
+
+
+ getTotal() > 1): ?> + getTotal()) ?> + + getTotal()) ?> + +
+
+ +
+
- - -
+ getCollection() as $group): ?> +
+ + render('group/dropdown', array('group' => $group)) ?> + url->link($this->text->e($group['name']), 'GroupListController', 'users', array('group_id' => $group['id'])) ?> + + +
+
    + 1): ?> +
  • + +
  • + + + +
  • text->e($group['external_id']) ?>
  • + +
+
+
+ + + + + diff --git a/app/Template/group/users.php b/app/Template/group/users.php index 63cec3380..5025ca7af 100644 --- a/app/Template/group/users.php +++ b/app/Template/group/users.php @@ -1,6 +1,7 @@
diff --git a/tests/units/Model/GroupModelTest.php b/tests/units/Model/GroupModelTest.php index 4ad0a167c..7329a23bf 100644 --- a/tests/units/Model/GroupModelTest.php +++ b/tests/units/Model/GroupModelTest.php @@ -37,6 +37,7 @@ class GroupModelTest extends Base $this->assertEquals('uuid', $groups[0]['external_id']); $this->assertEquals('B', $groups[1]['name']); $this->assertEquals('', $groups[1]['external_id']); + $this->assertEquals(0, $groups[1]['nb_users']); } public function testUpdate()