summaryrefslogtreecommitdiff
path: root/app/Formatter
diff options
context:
space:
mode:
Diffstat (limited to 'app/Formatter')
-rw-r--r--app/Formatter/GroupAutoCompleteFormatter.php55
-rw-r--r--app/Formatter/ProjectGanttFormatter.php2
-rw-r--r--app/Formatter/UserFilterAutoCompleteFormatter.php38
3 files changed, 94 insertions, 1 deletions
diff --git a/app/Formatter/GroupAutoCompleteFormatter.php b/app/Formatter/GroupAutoCompleteFormatter.php
new file mode 100644
index 00000000..7023e367
--- /dev/null
+++ b/app/Formatter/GroupAutoCompleteFormatter.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace Kanboard\Formatter;
+
+/**
+ * Autocomplete formatter for groups
+ *
+ * @package formatter
+ * @author Frederic Guillot
+ */
+class GroupAutoCompleteFormatter implements FormatterInterface
+{
+ /**
+ * Groups found
+ *
+ * @access private
+ * @var array
+ */
+ private $groups;
+
+ /**
+ * Format groups for the ajax autocompletion
+ *
+ * @access public
+ * @param array $groups
+ * @return GroupAutoCompleteFormatter
+ */
+ public function setGroups(array $groups)
+ {
+ $this->groups = $groups;
+ return $this;
+ }
+
+ /**
+ * Format groups for the ajax autocompletion
+ *
+ * @access public
+ * @return array
+ */
+ public function format()
+ {
+ $result = array();
+
+ foreach ($this->groups as $group) {
+ $result[] = array(
+ 'id' => $group->getInternalId(),
+ 'external_id' => $group->getExternalId(),
+ 'value' => $group->getName(),
+ 'label' => $group->getName(),
+ );
+ }
+
+ return $result;
+ }
+}
diff --git a/app/Formatter/ProjectGanttFormatter.php b/app/Formatter/ProjectGanttFormatter.php
index 17496088..4f73e217 100644
--- a/app/Formatter/ProjectGanttFormatter.php
+++ b/app/Formatter/ProjectGanttFormatter.php
@@ -79,7 +79,7 @@ class ProjectGanttFormatter extends Project implements FormatterInterface
'gantt_link' => $this->helper->url->href('gantt', 'project', array('project_id' => $project['id'])),
'color' => $color,
'not_defined' => empty($project['start_date']) || empty($project['end_date']),
- 'users' => $this->projectPermission->getProjectUsers($project['id']),
+ 'users' => $this->projectUserRole->getAllUsersGroupedByRole($project['id']),
);
}
diff --git a/app/Formatter/UserFilterAutoCompleteFormatter.php b/app/Formatter/UserFilterAutoCompleteFormatter.php
new file mode 100644
index 00000000..b98e0d69
--- /dev/null
+++ b/app/Formatter/UserFilterAutoCompleteFormatter.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace Kanboard\Formatter;
+
+use Kanboard\Model\User;
+use Kanboard\Model\UserFilter;
+
+/**
+ * Autocomplete formatter for user filter
+ *
+ * @package formatter
+ * @author Frederic Guillot
+ */
+class UserFilterAutoCompleteFormatter extends UserFilter implements FormatterInterface
+{
+ /**
+ * Format the tasks for the ajax autocompletion
+ *
+ * @access public
+ * @return array
+ */
+ public function format()
+ {
+ $users = $this->query->columns(User::TABLE.'.id', User::TABLE.'.username', User::TABLE.'.name')->findAll();
+
+ foreach ($users as &$user) {
+ $user['value'] = $user['username'].' (#'.$user['id'].')';
+
+ if (empty($user['name'])) {
+ $user['label'] = $user['username'];
+ } else {
+ $user['label'] = $user['name'].' ('.$user['username'].')';
+ }
+ }
+
+ return $users;
+ }
+}