diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-11-27 15:44:45 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-11-27 15:44:45 -0500 |
commit | d8b0423d152ca27682b001f2c4d386d9c5dd361e (patch) | |
tree | 8b4919d5296b857bcf74e81c8cc06729ddfce5e5 /app/Formatter | |
parent | 04ff67e26b880dde8bfb6462f312cf434457cd46 (diff) |
Add suggest menu for user mentions in text editor
Diffstat (limited to 'app/Formatter')
-rw-r--r-- | app/Formatter/BaseFormatter.php | 14 | ||||
-rw-r--r-- | app/Formatter/BaseTaskCalendarFormatter.php | 4 | ||||
-rw-r--r-- | app/Formatter/UserMentionFormatter.php | 60 |
3 files changed, 61 insertions, 17 deletions
diff --git a/app/Formatter/BaseFormatter.php b/app/Formatter/BaseFormatter.php index 89c48437..0d62628e 100644 --- a/app/Formatter/BaseFormatter.php +++ b/app/Formatter/BaseFormatter.php @@ -4,7 +4,6 @@ namespace Kanboard\Formatter; use Kanboard\Core\Base; use PicoDb\Table; -use Pimple\Container; /** * Class BaseFormatter @@ -23,19 +22,6 @@ abstract class BaseFormatter extends Base protected $query; /** - * Get object instance - * - * @static - * @access public - * @param Container $container - * @return static - */ - public static function getInstance(Container $container) - { - return new static($container); - } - - /** * Set query * * @access public diff --git a/app/Formatter/BaseTaskCalendarFormatter.php b/app/Formatter/BaseTaskCalendarFormatter.php index 8fab3e9a..3d9ead4d 100644 --- a/app/Formatter/BaseTaskCalendarFormatter.php +++ b/app/Formatter/BaseTaskCalendarFormatter.php @@ -2,8 +2,6 @@ namespace Kanboard\Formatter; -use Kanboard\Core\Filter\FormatterInterface; - /** * Common class to handle calendar events * @@ -34,7 +32,7 @@ abstract class BaseTaskCalendarFormatter extends BaseFormatter * @access public * @param string $start_column Column name for the start date * @param string $end_column Column name for the end date - * @return FormatterInterface + * @return $this */ public function setColumns($start_column, $end_column = '') { diff --git a/app/Formatter/UserMentionFormatter.php b/app/Formatter/UserMentionFormatter.php new file mode 100644 index 00000000..395fc463 --- /dev/null +++ b/app/Formatter/UserMentionFormatter.php @@ -0,0 +1,60 @@ +<?php + +namespace Kanboard\Formatter; + +/** + * Class UserMentionFormatter + * + * @package Kanboard\Formatter + * @author Frederic Guillot + */ +class UserMentionFormatter extends BaseFormatter +{ + protected $users = array(); + + /** + * Set users + * + * @param array $users + * @return $this + */ + public function withUsers(array $users) { + $this->users = $users; + return $this; + } + + /** + * Apply formatter + * + * @access public + * @return array + */ + public function format() + { + $result = array(); + + foreach ($this->users as $user) { + $html = $this->helper->avatar->small( + $user['id'], + $user['username'], + $user['name'], + $user['email'], + $user['avatar_path'], + 'avatar-inline' + ); + + $html .= ' '.$this->helper->text->e($user['username']); + + if (! empty($user['name'])) { + $html .= ' <small>'.$this->helper->text->e($user['name']).'</small>'; + } + + $result[] = array( + 'value' => $user['username'], + 'html' => $html, + ); + } + + return $result; + } +}
\ No newline at end of file |