Helper refactoring

This commit is contained in:
Frederic Guillot 2016-03-04 20:10:34 -05:00
parent f32507d423
commit 8f3e2b2e5c
141 changed files with 562 additions and 445 deletions

View File

@ -331,7 +331,7 @@ abstract class Base extends \Kanboard\Core\Base
protected function getProjectDescription(array &$project)
{
if ($project['owner_id'] > 0) {
$description = t('Project owner: ').'**'.$this->template->e($project['owner_name'] ?: $project['owner_username']).'**'.PHP_EOL.PHP_EOL;
$description = t('Project owner: ').'**'.$this->helper->text->e($project['owner_name'] ?: $project['owner_username']).'**'.PHP_EOL.PHP_EOL;
if (! empty($project['description'])) {
$description .= '***'.PHP_EOL.PHP_EOL;

View File

@ -10,18 +10,18 @@ use Pimple\Container;
* @package core
* @author Frederic Guillot
*
* @property \Kanboard\Helper\App $app
* @property \Kanboard\Helper\Asset $asset
* @property \Kanboard\Helper\Dt $dt
* @property \Kanboard\Helper\File $file
* @property \Kanboard\Helper\Form $form
* @property \Kanboard\Helper\Subtask $subtask
* @property \Kanboard\Helper\Task $task
* @property \Kanboard\Helper\Text $text
* @property \Kanboard\Helper\Url $url
* @property \Kanboard\Helper\User $user
* @property \Kanboard\Helper\Layout $layout
* @property \Kanboard\Helper\Model $model
* @property \Kanboard\Helper\AppHelper $app
* @property \Kanboard\Helper\AssetHelper $asset
* @property \Kanboard\Helper\DateHelper $dt
* @property \Kanboard\Helper\FileHelper $file
* @property \Kanboard\Helper\FormHelper $form
* @property \Kanboard\Helper\ModelHelper $model
* @property \Kanboard\Helper\SubtaskHelper $subtask
* @property \Kanboard\Helper\TaskHelper $task
* @property \Kanboard\Helper\TextHelper $text
* @property \Kanboard\Helper\UrlHelper $url
* @property \Kanboard\Helper\UserHelper $user
* @property \Kanboard\Helper\LayoutHelper $layout
*/
class Helper
{
@ -29,17 +29,17 @@ class Helper
* Helper instances
*
* @access private
* @var array
* @var \Pimple\Container
*/
private $helpers = array();
private $helpers;
/**
* Container instance
*
* @access protected
* @access private
* @var \Pimple\Container
*/
protected $container;
private $container;
/**
* Constructor
@ -50,33 +50,49 @@ class Helper
public function __construct(Container $container)
{
$this->container = $container;
$this->helpers = new Container;
}
/**
* Load automatically helpers
* Expose helpers with magic getter
*
* @access public
* @param string $name Helper name
* @param string $helper
* @return mixed
*/
public function __get($name)
public function __get($helper)
{
if (! isset($this->helpers[$name])) {
$class = '\Kanboard\Helper\\'.ucfirst($name);
$this->helpers[$name] = new $class($this->container);
}
return $this->helpers[$name];
return $this->getHelper($helper);
}
/**
* HTML escaping
* Expose helpers with method
*
* @param string $value Value to escape
* @return string
* @access public
* @param string $helper
* @return mixed
*/
public function e($value)
public function getHelper($helper)
{
return htmlspecialchars($value, ENT_QUOTES, 'UTF-8', false);
return $this->helpers[$helper];
}
/**
* Register a new Helper
*
* @access public
* @param string $property
* @param string $className
* @return Helper
*/
public function register($property, $className)
{
$container = $this->container;
$this->helpers[$property] = function() use($className, $container) {
return new $className($container);
};
return $this;
}
}

View File

@ -3,13 +3,21 @@
namespace Kanboard\Core;
/**
* Template class
* Template
*
* @package core
* @author Frederic Guillot
*/
class Template extends Helper
class Template
{
/**
* Helper object
*
* @access private
* @var Helper
*/
private $helper;
/**
* List of template overrides
*
@ -19,47 +27,26 @@ class Template extends Helper
private $overrides = array();
/**
* Rendering start time
* Template constructor
*
* @access private
* @var float
* @access public
* @param Helper $helper
*/
private $startTime = 0;
/**
* Total rendering time
*
* @access private
* @var float
*/
private $renderingTime = 0;
/**
* Method executed before the rendering
*
* @access protected
* @param string $template
*/
protected function beforeRender($template)
public function __construct(Helper $helper)
{
if (DEBUG) {
$this->startTime = microtime(true);
}
$this->helper = $helper;
}
/**
* Method executed after the rendering
* Expose helpers with magic getter
*
* @access protected
* @param string $template
* @access public
* @param string $helper
* @return mixed
*/
protected function afterRender($template)
public function __get($helper)
{
if (DEBUG) {
$duration = microtime(true) - $this->startTime;
$this->renderingTime += $duration;
$this->container['logger']->debug('Rendering '.$template.' in '.$duration.'s, total='.$this->renderingTime);
}
return $this->helper->getHelper($helper);
}
/**
@ -76,16 +63,10 @@ class Template extends Helper
*/
public function render($__template_name, array $__template_args = array())
{
$this->beforeRender($__template_name);
extract($__template_args);
ob_start();
include $this->getTemplateFile($__template_name);
$html = ob_get_clean();
$this->afterRender($__template_name);
return $html;
return ob_get_clean();
}
/**

View File

@ -5,12 +5,12 @@ namespace Kanboard\Helper;
use Kanboard\Core\Base;
/**
* Application helpers
* Application Helper
*
* @package helper
* @author Frederic Guillot
*/
class App extends Base
class AppHelper extends Base
{
/**
* Get config variable
@ -116,11 +116,11 @@ class App extends Base
$failure_message = $this->flash->getMessage('failure');
if (! empty($success_message)) {
return '<div class="alert alert-success alert-fade-out">'.$this->helper->e($success_message).'</div>';
return '<div class="alert alert-success alert-fade-out">'.$this->helper->text->e($success_message).'</div>';
}
if (! empty($failure_message)) {
return '<div class="alert alert-error">'.$this->helper->e($failure_message).'</div>';
return '<div class="alert alert-error">'.$this->helper->text->e($failure_message).'</div>';
}
return '';

View File

@ -2,13 +2,15 @@
namespace Kanboard\Helper;
use Kanboard\Core\Base;
/**
* Assets helpers
* Asset Helper
*
* @package helper
* @author Frederic Guillot
*/
class Asset extends \Kanboard\Core\Base
class AssetHelper extends Base
{
/**
* Add a Javascript asset

View File

@ -2,13 +2,15 @@
namespace Kanboard\Helper;
use Kanboard\Core\Base;
/**
* Board Helper
*
* @package helper
* @author Frederic Guillot
*/
class Board extends \Kanboard\Core\Base
class BoardHelper extends Base
{
/**
* Return true if tasks are collapsed

View File

@ -3,6 +3,7 @@
namespace Kanboard\Helper;
use DateTime;
use Kanboard\Core\Base;
/**
* DateTime helpers
@ -10,7 +11,7 @@ use DateTime;
* @package helper
* @author Frederic Guillot
*/
class Dt extends \Kanboard\Core\Base
class DateHelper extends Base
{
/**
* Get formatted time

View File

@ -2,13 +2,15 @@
namespace Kanboard\Helper;
use Kanboard\Core\Base;
/**
* File helpers
*
* @package helper
* @author Frederic Guillot
*/
class File extends \Kanboard\Core\Base
class FileHelper extends Base
{
/**
* Get file icon

View File

@ -10,7 +10,7 @@ use Kanboard\Core\Base;
* @package helper
* @author Frederic Guillot
*/
class Form extends Base
class FormHelper extends Base
{
/**
* Hidden CSRF token field
@ -52,7 +52,7 @@ class Form extends Base
$html = '<select name="'.$name.'" id="form-'.$name.'" class="'.$class.'" '.implode(' ', $attributes).'>';
foreach ($options as $id => $value) {
$html .= '<option value="'.$this->helper->e($id).'"';
$html .= '<option value="'.$this->helper->text->e($id).'"';
if (isset($values->$name) && $id == $values->$name) {
$html .= ' selected="selected"';
@ -61,7 +61,7 @@ class Form extends Base
$html .= ' selected="selected"';
}
$html .= '>'.$this->helper->e($value).'</option>';
$html .= '>'.$this->helper->text->e($value).'</option>';
}
$html .= '</select>';
@ -103,7 +103,7 @@ class Form extends Base
*/
public function radio($name, $label, $value, $selected = false, $class = '')
{
return '<label><input type="radio" name="'.$name.'" class="'.$class.'" value="'.$this->helper->e($value).'" '.($selected ? 'checked="checked"' : '').'> '.$this->helper->e($label).'</label>';
return '<label><input type="radio" name="'.$name.'" class="'.$class.'" value="'.$this->helper->text->e($value).'" '.($selected ? 'checked="checked"' : '').'> '.$this->helper->text->e($label).'</label>';
}
/**
@ -139,7 +139,7 @@ class Form extends Base
*/
public function checkbox($name, $label, $value, $checked = false, $class = '')
{
return '<label><input type="checkbox" name="'.$name.'" class="'.$class.'" value="'.$this->helper->e($value).'" '.($checked ? 'checked="checked"' : '').'>&nbsp;'.$this->helper->e($label).'</label>';
return '<label><input type="checkbox" name="'.$name.'" class="'.$class.'" value="'.$this->helper->text->e($value).'" '.($checked ? 'checked="checked"' : '').'>&nbsp;'.$this->helper->text->e($label).'</label>';
}
/**
@ -153,7 +153,7 @@ class Form extends Base
*/
public function label($label, $name, array $attributes = array())
{
return '<label for="form-'.$name.'" '.implode(' ', $attributes).'>'.$this->helper->e($label).'</label>';
return '<label for="form-'.$name.'" '.implode(' ', $attributes).'>'.$this->helper->text->e($label).'</label>';
}
/**
@ -173,7 +173,7 @@ class Form extends Base
$html = '<textarea name="'.$name.'" id="form-'.$name.'" class="'.$class.'" ';
$html .= implode(' ', $attributes).'>';
$html .= isset($values->$name) ? $this->helper->e($values->$name) : isset($values[$name]) ? $values[$name] : '';
$html .= isset($values->$name) ? $this->helper->text->e($values->$name) : isset($values[$name]) ? $values[$name] : '';
$html .= '</textarea>';
$html .= $this->errorList($errors, $name);
@ -334,7 +334,7 @@ class Form extends Base
$html .= '<ul class="form-errors">';
foreach ($errors[$name] as $error) {
$html .= '<li>'.$this->helper->e($error).'</li>';
$html .= '<li>'.$this->helper->text->e($error).'</li>';
}
$html .= '</ul>';
@ -354,9 +354,9 @@ class Form extends Base
private function formValue($values, $name)
{
if (isset($values->$name)) {
return 'value="'.$this->helper->e($values->$name).'"';
return 'value="'.$this->helper->text->e($values->$name).'"';
}
return isset($values[$name]) ? 'value="'.$this->helper->e($values[$name]).'"' : '';
return isset($values[$name]) ? 'value="'.$this->helper->text->e($values[$name]).'"' : '';
}
}

View File

@ -2,13 +2,15 @@
namespace Kanboard\Helper;
use Kanboard\Core\Base;
/**
* Template Hook helpers
*
* @package helper
* @author Frederic Guillot
*/
class Hook extends \Kanboard\Core\Base
class HookHelper extends Base
{
/**
* Add assets JS or CSS

View File

@ -10,7 +10,7 @@ use Kanboard\Core\Base;
* @package helper
* @author Frederic Guillot
*/
class Layout extends Base
class LayoutHelper extends Base
{
/**
* Render a template without the layout if Ajax request

View File

@ -10,7 +10,7 @@ use Kanboard\Core\Base;
* @package helper
* @author Frederic Guillot
*/
class Model extends Base
class ModelHelper extends Base
{
/**
* Remove keys from an array

View File

@ -2,13 +2,15 @@
namespace Kanboard\Helper;
use Kanboard\Core\Base;
/**
* Subtask helpers
*
* @package helper
* @author Frederic Guillot
*/
class Subtask extends \Kanboard\Core\Base
class SubtaskHelper extends Base
{
public function getTitle(array $subtask)
{
@ -20,7 +22,7 @@ class Subtask extends \Kanboard\Core\Base
$html = '<i class="fa fa-check-square-o fa-fw"></i>';
}
return $html.$this->helper->e($subtask['title']);
return $html.$this->helper->text->e($subtask['title']);
}
/**

View File

@ -10,7 +10,7 @@ use Kanboard\Core\Base;
* @package helper
* @author Frederic Guillot
*/
class Task extends Base
class TaskHelper extends Base
{
/**
* Local cache for project columns

View File

@ -11,8 +11,19 @@ use Kanboard\Core\Base;
* @package helper
* @author Frederic Guillot
*/
class Text extends Base
class TextHelper extends Base
{
/**
* HTML escaping
*
* @param string $value Value to escape
* @return string
*/
public function e($value)
{
return htmlspecialchars($value, ENT_QUOTES, 'UTF-8', false);
}
/**
* Markdown transformation
*
@ -88,7 +99,7 @@ class Text extends Base
public function in($id, array $listing, $default_value = '?')
{
if (isset($listing[$id])) {
return $this->helper->e($listing[$id]);
return $this->helper->text->e($listing[$id]);
}
return $default_value;

View File

@ -5,12 +5,12 @@ namespace Kanboard\Helper;
use Kanboard\Core\Base;
/**
* Url helpers
* Url Helper
*
* @package helper
* @author Frederic Guillot
*/
class Url extends Base
class UrlHelper extends Base
{
private $base = '';
private $directory = '';

View File

@ -2,13 +2,15 @@
namespace Kanboard\Helper;
use Kanboard\Core\Base;
/**
* User helpers
*
* @package helper
* @author Frederic Guillot
*/
class User extends \Kanboard\Core\Base
class UserHelper extends Base
{
/**
* Return true if the logged user as unread notifications
@ -168,7 +170,7 @@ class User extends \Kanboard\Core\Base
public function avatar($email, $alt = '')
{
if (! empty($email) && $this->config->get('integration_gravatar') == 1) {
return '<img class="avatar" src="https://www.gravatar.com/avatar/'.md5(strtolower($email)).'?s=25" alt="'.$this->helper->e($alt).'" title="'.$this->helper->e($alt).'">';
return '<img class="avatar" src="https://www.gravatar.com/avatar/'.md5(strtolower($email)).'?s=25" alt="'.$this->helper->text->e($alt).'" title="'.$this->helper->text->e($alt).'">';
}
return '';

View File

@ -117,9 +117,7 @@ class ClassProvider implements ServiceProviderInterface
),
'Core' => array(
'DateParser',
'Helper',
'Lexer',
'Template',
),
'Core\Event' => array(
'EventManager',

View File

@ -0,0 +1,34 @@
<?php
namespace Kanboard\ServiceProvider;
use Kanboard\Core\Helper;
use Kanboard\Core\Template;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class HelperProvider implements ServiceProviderInterface
{
public function register(Container $container)
{
$container['helper'] = new Helper($container);
$container['helper']->register('app', '\Kanboard\Helper\AppHelper');
$container['helper']->register('asset', '\Kanboard\Helper\AssetHelper');
$container['helper']->register('board', '\Kanboard\Helper\BoardHelper');
$container['helper']->register('dt', '\Kanboard\Helper\DateHelper');
$container['helper']->register('file', '\Kanboard\Helper\FileHelper');
$container['helper']->register('form', '\Kanboard\Helper\FormHelper');
$container['helper']->register('hook', '\Kanboard\Helper\HookHelper');
$container['helper']->register('layout', '\Kanboard\Helper\LayoutHelper');
$container['helper']->register('model', '\Kanboard\Helper\ModelHelper');
$container['helper']->register('subtask', '\Kanboard\Helper\SubtaskHelper');
$container['helper']->register('task', '\Kanboard\Helper\TaskHelper');
$container['helper']->register('text', '\Kanboard\Helper\TextHelper');
$container['helper']->register('url', '\Kanboard\Helper\UrlHelper');
$container['helper']->register('user', '\Kanboard\Helper\UserHelper');
$container['template'] = new Template($container['helper']);
return $container;
}
}

View File

@ -45,7 +45,7 @@
<?php elseif ($this->text->contains($param_name, 'link_id')): ?>
<?= $this->text->in($param_value, $links_list) ?>
<?php else: ?>
<?= $this->e($param_value) ?>
<?= $this->text->e($param_value) ?>
<?php endif ?>
</strong>
</li>

View File

@ -16,7 +16,7 @@
</tr>
<?php foreach ($metrics as $column): ?>
<tr>
<td><?= $this->e($column['title']) ?></td>
<td><?= $this->text->e($column['title']) ?></td>
<td><?= $this->dt->duration($column['average']) ?></td>
</tr>
<?php endforeach ?>

View File

@ -4,8 +4,8 @@
<div class="listing">
<ul>
<li><?= t('Estimated hours: ').'<strong>'.$this->e($metrics['open']['time_estimated'] + $metrics['closed']['time_estimated']) ?></strong></li>
<li><?= t('Actual hours: ').'<strong>'.$this->e($metrics['open']['time_spent'] + $metrics['closed']['time_spent']) ?></strong></li>
<li><?= t('Estimated hours: ').'<strong>'.$this->text->e($metrics['open']['time_estimated'] + $metrics['closed']['time_estimated']) ?></strong></li>
<li><?= t('Actual hours: ').'<strong>'.$this->text->e($metrics['open']['time_spent'] + $metrics['closed']['time_spent']) ?></strong></li>
</ul>
</div>
@ -34,10 +34,10 @@
<?php foreach ($paginator->getCollection() as $task): ?>
<tr>
<td class="task-table color-<?= $task['color_id'] ?>">
<?= $this->url->link('#'.$this->e($task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
<?= $this->url->link('#'.$this->text->e($task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
</td>
<td>
<?= $this->url->link($this->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
<?= $this->url->link($this->text->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
</td>
<td>
<?php if ($task['is_active'] == \Kanboard\Model\Task::STATUS_OPEN): ?>
@ -47,10 +47,10 @@
<?php endif ?>
</td>
<td>
<?= $this->e($task['time_estimated']) ?>
<?= $this->text->e($task['time_estimated']) ?>
</td>
<td>
<?= $this->e($task['time_spent']) ?>
<?= $this->text->e($task['time_spent']) ?>
</td>
</tr>
<?php endforeach ?>

View File

@ -18,7 +18,7 @@
<?php foreach ($metrics as $metric): ?>
<tr>
<td>
<?= $this->e($metric['column_title']) ?>
<?= $this->text->e($metric['column_title']) ?>
</td>
<td>
<?= $metric['nb_tasks'] ?>

View File

@ -18,7 +18,7 @@
<?php foreach ($metrics as $metric): ?>
<tr>
<td>
<?= $this->e($metric['user']) ?>
<?= $this->text->e($metric['user']) ?>
</td>
<td>
<?= $metric['nb_tasks'] ?>

View File

@ -29,9 +29,9 @@
<?= $this->url->link('<i class="fa fa-list"></i>', 'listing', 'show', array('project_id' => $project['id']), false, 'dashboard-table-link', t('List')) ?>&nbsp;
<?= $this->url->link('<i class="fa fa-calendar"></i>', 'calendar', 'show', array('project_id' => $project['id']), false, 'dashboard-table-link', t('Calendar')) ?>&nbsp;
<?= $this->url->link($this->e($project['name']), 'board', 'show', array('project_id' => $project['id'])) ?>
<?= $this->url->link($this->text->e($project['name']), 'board', 'show', array('project_id' => $project['id'])) ?>
<?php if (! empty($project['description'])): ?>
<span class="tooltip" title='<?= $this->e($this->text->markdown($project['description'])) ?>'>
<span class="tooltip" title='<?= $this->text->e($this->text->markdown($project['description'])) ?>'>
<i class="fa fa-info-circle"></i>
</span>
<?php endif ?>
@ -39,7 +39,7 @@
<td class="dashboard-project-stats">
<?php foreach ($project['columns'] as $column): ?>
<strong title="<?= t('Task count') ?>"><?= $column['nb_tasks'] ?></strong>
<span><?= $this->e($column['title']) ?></span>
<span><?= $this->text->e($column['title']) ?></span>
<?php endforeach ?>
</td>
</tr>

View File

@ -1,5 +1,5 @@
<div class="sidebar">
<h2><?= $this->e($user['name'] ?: $user['username']) ?></h2>
<h2><?= $this->text->e($user['name'] ?: $user['username']) ?></h2>
<ul>
<li <?= $this->app->checkMenuSelection('app', 'index') ?>>
<?= $this->url->link(t('Overview'), 'app', 'index', array('user_id' => $user['id'])) ?>

View File

@ -18,21 +18,21 @@
<?= $this->render('task/dropdown', array('task' => array('id' => $subtask['task_id'], 'project_id' => $subtask['project_id']))) ?>
</td>
<td>
<?= $this->url->link($this->e($subtask['project_name']), 'board', 'show', array('project_id' => $subtask['project_id'])) ?>
<?= $this->url->link($this->text->e($subtask['project_name']), 'board', 'show', array('project_id' => $subtask['project_id'])) ?>
</td>
<td>
<?= $this->url->link($this->e($subtask['task_name']), 'task', 'show', array('task_id' => $subtask['task_id'], 'project_id' => $subtask['project_id'])) ?>
<?= $this->url->link($this->text->e($subtask['task_name']), 'task', 'show', array('task_id' => $subtask['task_id'], 'project_id' => $subtask['project_id'])) ?>
</td>
<td>
<?= $this->subtask->toggleStatus($subtask, $subtask['project_id']) ?>
</td>
<td>
<?php if (! empty($subtask['time_spent'])): ?>
<strong><?= $this->e($subtask['time_spent']).'h' ?></strong> <?= t('spent') ?>
<strong><?= $this->text->e($subtask['time_spent']).'h' ?></strong> <?= t('spent') ?>
<?php endif ?>
<?php if (! empty($subtask['time_estimated'])): ?>
<strong><?= $this->e($subtask['time_estimated']).'h' ?></strong> <?= t('estimated') ?>
<strong><?= $this->text->e($subtask['time_estimated']).'h' ?></strong> <?= t('estimated') ?>
<?php endif ?>
</td>
</tr>

View File

@ -18,18 +18,18 @@
<?= $this->render('task/dropdown', array('task' => $task)) ?>
</td>
<td>
<?= $this->url->link($this->e($task['project_name']), 'board', 'show', array('project_id' => $task['project_id'])) ?>
<?= $this->url->link($this->text->e($task['project_name']), 'board', 'show', array('project_id' => $task['project_id'])) ?>
</td>
<td>
<?= $this->url->link($this->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>
<?= $this->url->link($this->text->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>
</td>
<td>
<?php if (! empty($task['time_spent'])): ?>
<strong><?= $this->e($task['time_spent']).'h' ?></strong> <?= t('spent') ?>
<strong><?= $this->text->e($task['time_spent']).'h' ?></strong> <?= t('spent') ?>
<?php endif ?>
<?php if (! empty($task['time_estimated'])): ?>
<strong><?= $this->e($task['time_estimated']).'h' ?></strong> <?= t('estimated') ?>
<strong><?= $this->text->e($task['time_estimated']).'h' ?></strong> <?= t('estimated') ?>
<?php endif ?>
</td>
<td>

View File

@ -3,7 +3,7 @@
<?= $this->hook->render('template:auth:login-form:before') ?>
<?php if (isset($errors['login'])): ?>
<p class="alert alert-error"><?= $this->e($errors['login']) ?></p>
<p class="alert alert-error"><?= $this->text->e($errors['login']) ?></p>
<?php endif ?>
<?php if (! HIDE_LOGIN_FORM): ?>

View File

@ -26,10 +26,10 @@
<span class="board-column-title">
<?php if ($not_editable): ?>
<?= $this->e($column['title']) ?>
<?= $this->text->e($column['title']) ?>
<?php else: ?>
<span class="dropdown">
<a href="#" class="dropdown-menu"><?= $this->e($column['title']) ?> <i class="fa fa-caret-down"></i></a>
<a href="#" class="dropdown-menu"><?= $this->text->e($column['title']) ?> <i class="fa fa-caret-down"></i></a>
<ul>
<li>
<i class="fa fa-minus-square fa-fw"></i>
@ -47,7 +47,7 @@
</span>
<?php if (! $not_editable && ! empty($column['description'])): ?>
<span class="tooltip pull-right" title='<?= $this->e($this->text->markdown($column['description'])) ?>'>
<span class="tooltip pull-right" title='<?= $this->text->e($this->text->markdown($column['description'])) ?>'>
&nbsp;<i class="fa fa-info-circle"></i>
</span>
<?php endif ?>
@ -60,7 +60,7 @@
<?php if ($column['task_limit']): ?>
<span title="<?= t('Task limit') ?>">
(<span id="task-number-column-<?= $column['id'] ?>"><?= $column['nb_tasks'] ?></span>/<?= $this->e($column['task_limit']) ?>)
(<span id="task-number-column-<?= $column['id'] ?>"><?= $column['nb_tasks'] ?></span>/<?= $this->text->e($column['task_limit']) ?>)
</span>
<?php else: ?>
<span title="<?= t('Task count') ?>" class="board-column-header-task-count">

View File

@ -8,7 +8,7 @@
</a>
<?php endif ?>
<?= $this->e($swimlane['name']) ?>
<?= $this->text->e($swimlane['name']) ?>
<?php if (! $not_editable && ! empty($swimlane['description'])): ?>
<span

View File

@ -22,7 +22,7 @@
<div class="board-column-collapsed">
<div class="board-rotation-wrapper">
<div class="board-column-title board-rotation board-toggle-column-view" data-column-id="<?= $column['id'] ?>" title="<?= t('Show this column') ?>">
<i class="fa fa-plus-square tooltip" title="<?= $this->e($column['title']) ?>"></i> <?= $this->e($column['title']) ?>
<i class="fa fa-plus-square tooltip" title="<?= $this->text->e($column['title']) ?>"></i> <?= $this->text->e($column['title']) ?>
</div>
</div>
</div>

View File

@ -2,10 +2,10 @@
<div class="task-board-category-container">
<span class="task-board-category">
<?php if ($not_editable): ?>
<?= $this->e($task['category_name']) ?>
<?= $this->text->e($task['category_name']) ?>
<?php else: ?>
<?= $this->url->link(
$this->e($task['category_name']),
$this->text->e($task['category_name']),
'boardPopover',
'changeCategory',
array('task_id' => $task['id'], 'project_id' => $task['project_id']),
@ -61,11 +61,11 @@
<?php endif ?>
<?php if ($task['score']): ?>
<span class="task-score"><?= $this->e($task['score']) ?></span>
<span class="task-score"><?= $this->text->e($task['score']) ?></span>
<?php endif ?>
<?php if (! empty($task['time_estimated'])): ?>
<span class="task-time-estimated" title="<?= t('Time estimated') ?>"><?= $this->e($task['time_estimated']).'h' ?></span>
<span class="task-time-estimated" title="<?= t('Time estimated') ?>"><?= $this->text->e($task['time_estimated']).'h' ?></span>
<?php endif ?>
<?php if ($task['is_milestone'] == 1): ?>

View File

@ -23,11 +23,11 @@
<?php endif ?>
<?php if (! empty($task['assignee_username'])): ?>
<span title="<?= $this->e($task['assignee_name'] ?: $task['assignee_username']) ?>">
<?= $this->e($this->user->getInitials($task['assignee_name'] ?: $task['assignee_username'])) ?>
<span title="<?= $this->text->e($task['assignee_name'] ?: $task['assignee_username']) ?>">
<?= $this->text->e($this->user->getInitials($task['assignee_name'] ?: $task['assignee_username'])) ?>
</span> -
<?php endif ?>
<?= $this->url->link($this->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'task-board-collapsed-title tooltip', $this->e($task['title'])) ?>
<?= $this->url->link($this->text->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'task-board-collapsed-title tooltip', $this->text->e($task['title'])) ?>
</div>
<?php else: ?>
<div class="task-board-expanded">
@ -57,7 +57,7 @@
t('Change assignee')
) ?>
<?php else: ?>
<?= $this->e($task['assignee_name'] ?: $task['assignee_username']) ?>
<?= $this->text->e($task['assignee_name'] ?: $task['assignee_username']) ?>
<?php endif ?>
</span>
<?php endif ?>
@ -72,7 +72,7 @@
<?php endif ?>
<div class="task-board-title">
<?= $this->url->link($this->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
<?= $this->url->link($this->text->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
</div>
<?= $this->render('board/task_footer', array(

View File

@ -19,7 +19,7 @@
</span>
<div class="task-board-title">
<?= $this->url->link($this->e($task['title']), 'task', 'readonly', array('task_id' => $task['id'], 'token' => $project['token'])) ?>
<?= $this->url->link($this->text->e($task['title']), 'task', 'readonly', array('task_id' => $task['id'], 'token' => $project['token'])) ?>
</div>
<?= $this->render('board/task_footer', array(

View File

@ -2,7 +2,7 @@
<?php foreach ($comments as $comment): ?>
<p class="comment-title">
<?php if (! empty($comment['username'])): ?>
<span class="comment-username"><?= $this->e($comment['name'] ?: $comment['username']) ?></span> @
<span class="comment-username"><?= $this->text->e($comment['name'] ?: $comment['username']) ?></span> @
<?php endif ?>
<span class="comment-date"><?= $this->dt->datetime($comment['date_creation']) ?></span>
</p>

View File

@ -10,10 +10,10 @@
<?= $link['type'] ?>
</td>
<td>
<a href="<?= $link['url'] ?>" target="_blank"><?= $this->e($link['title']) ?></a>
<a href="<?= $link['url'] ?>" target="_blank"><?= $this->text->e($link['title']) ?></a>
</td>
<td>
<?= $this->e($link['dependency_label']) ?>
<?= $this->text->e($link['dependency_label']) ?>
</td>
</tr>
<?php endforeach ?>

View File

@ -3,7 +3,7 @@
<tr>
<th>
<i class="fa <?= $this->file->icon($file['name']) ?> fa-fw"></i>
<?= $this->e($file['name']) ?>
<?= $this->text->e($file['name']) ?>
</th>
</tr>
<tr>

View File

@ -6,7 +6,7 @@
</td>
<td>
<?php if (! empty($subtask['username'])): ?>
<?= $this->e($subtask['name'] ?: $subtask['username']) ?>
<?= $this->text->e($subtask['name'] ?: $subtask['username']) ?>
<?php endif ?>
</td>
</tr>

View File

@ -6,13 +6,13 @@
<dd>
<span class="progress"><?= $this->task->getProgress($link).'%' ?></span>
<?= $this->url->link(
$this->e('#'.$link['task_id'].' '.$link['title']),
$this->text->e('#'.$link['task_id'].' '.$link['title']),
'task', 'show', array('task_id' => $link['task_id'], 'project_id' => $link['project_id']),
false,
$link['is_active'] ? '' : 'task-link-closed'
) ?>
<?php if (! empty($link['task_assignee_username'])): ?>
[<?= $this->e($link['task_assignee_name'] ?: $link['task_assignee_username']) ?>]
[<?= $this->text->e($link['task_assignee_name'] ?: $link['task_assignee_username']) ?>]
<?php endif ?>
<?php if ($task['project_id'] != $link['project_id']): ?>
(<i><?= $link['project_name'] ?></i>)

View File

@ -9,7 +9,7 @@
</tr>
<?php foreach ($categories as $category_id => $category_name): ?>
<tr>
<td><?= $this->e($category_name) ?></td>
<td><?= $this->text->e($category_name) ?></td>
<td>
<div class="dropdown">
<a href="#" class="dropdown-menu dropdown-menu-link-icon"><i class="fa fa-cog fa-fw"></i><i class="fa fa-caret-down"></i></a>

View File

@ -26,15 +26,15 @@
<tr data-column-id="<?= $column['id'] ?>">
<td>
<i class="fa fa-arrows-alt draggable-row-handle" title="<?= t('Change column position') ?>"></i>
<?= $this->e($column['title']) ?>
<?= $this->text->e($column['title']) ?>
<?php if (! empty($column['description'])): ?>
<span class="tooltip" title='<?= $this->e($this->text->markdown($column['description'])) ?>'>
<span class="tooltip" title='<?= $this->text->e($this->text->markdown($column['description'])) ?>'>
<i class="fa fa-info-circle"></i>
</span>
<?php endif ?>
</td>
<td>
<?= $this->e($column['task_limit']) ?>
<?= $this->text->e($column['task_limit']) ?>
</td>
<td>
<div class="dropdown">

View File

@ -6,7 +6,7 @@
<?php endif ?>
<?php if (! empty($comment['username'])): ?>
<span class="comment-username"><?= $this->e($comment['name'] ?: $comment['username']) ?></span> @
<span class="comment-username"><?= $this->text->e($comment['name'] ?: $comment['username']) ?></span> @
<?php endif ?>
<span class="comment-date"><?= $this->dt->datetime($comment['date_creation']) ?></span>

View File

@ -29,7 +29,7 @@
<ul>
<li>
<?= t('Database driver:') ?>
<strong><?= $this->e(DB_DRIVER) ?></strong>
<strong><?= $this->text->e(DB_DRIVER) ?></strong>
</li>
<?php if (DB_DRIVER === 'sqlite'): ?>
<li>

View File

@ -5,7 +5,7 @@
<ul>
<li>
<?= t('API token:') ?>
<strong><?= $this->e($values['api_token']) ?></strong>
<strong><?= $this->text->e($values['api_token']) ?></strong>
</li>
<li>
<?= t('API endpoint:') ?>

View File

@ -17,14 +17,14 @@
<tr>
<td>
<?php if ($plugin->getPluginHomepage()): ?>
<a href="<?= $plugin->getPluginHomepage() ?>" target="_blank" rel="noreferrer"><?= $this->e($plugin->getPluginName()) ?></a>
<a href="<?= $plugin->getPluginHomepage() ?>" target="_blank" rel="noreferrer"><?= $this->text->e($plugin->getPluginName()) ?></a>
<?php else: ?>
<?= $this->e($plugin->getPluginName()) ?>
<?= $this->text->e($plugin->getPluginName()) ?>
<?php endif ?>
</td>
<td><?= $this->e($plugin->getPluginAuthor()) ?></td>
<td><?= $this->e($plugin->getPluginVersion()) ?></td>
<td><?= $this->e($plugin->getPluginDescription()) ?></td>
<td><?= $this->text->e($plugin->getPluginAuthor()) ?></td>
<td><?= $this->text->e($plugin->getPluginVersion()) ?></td>
<td><?= $this->text->e($plugin->getPluginDescription()) ?></td>
</tr>
<?php endforeach ?>
<?php endif ?>

View File

@ -22,7 +22,7 @@
<ul>
<li>
<?= t('Webhook token:') ?>
<strong><?= $this->e($values['webhook_token']) ?></strong>
<strong><?= $this->text->e($values['webhook_token']) ?></strong>
</li>
<li>
<?= t('URL for task creation:') ?>

View File

@ -12,7 +12,7 @@
<?php foreach ($rates as $rate): ?>
<tr>
<td>
<strong><?= $this->e($rate['currency']) ?></strong>
<strong><?= $this->text->e($rate['currency']) ?></strong>
</td>
<td>
<?= n($rate['rate']) ?>

View File

@ -14,8 +14,8 @@
</tr>
<?php foreach ($custom_filters as $filter): ?>
<tr>
<td><?= $this->e($filter['name']) ?></td>
<td><?= $this->e($filter['filter']) ?></td>
<td><?= $this->text->e($filter['name']) ?></td>
<td><?= $this->text->e($filter['filter']) ?></td>
<td>
<?php if ($filter['is_shared'] == 1): ?>
<?= t('Yes') ?>
@ -30,7 +30,7 @@
<?= t('Replace') ?>
<?php endif ?>
</td>
<td><?= $this->e($filter['owner_name'] ?: $filter['owner_username']) ?></td>
<td><?= $this->text->e($filter['owner_name'] ?: $filter['owner_username']) ?></td>
<td>
<?php if ($filter['user_id'] == $this->user->getId() || $this->user->hasProjectAccess('customfilter', 'edit', $project['id'])): ?>
<div class="dropdown">

View File

@ -2,11 +2,11 @@
<p class="activity-title">
<?= e('%s commented the task %s',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))
) ?>
</p>
<div class="activity-description">
<em><?= $this->e($task['title']) ?></em><br/>
<em><?= $this->text->e($task['title']) ?></em><br/>
<div class="markdown"><?= $this->text->markdown($comment['comment']) ?></div>
</div>

View File

@ -2,10 +2,10 @@
<p class="activity-title">
<?= e('%s updated a comment on the task %s',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))
) ?>
</p>
<div class="activity-description">
<em><?= $this->e($task['title']) ?></em><br/>
<em><?= $this->text->e($task['title']) ?></em><br/>
</div>

View File

@ -2,16 +2,16 @@
<p class="activity-title">
<?= e('%s created a subtask for the task %s',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))
) ?>
</p>
<div class="activity-description">
<p><em><?= $this->e($task['title']) ?></em></p>
<p><em><?= $this->text->e($task['title']) ?></em></p>
<ul>
<li>
<?= $this->e($subtask['title']) ?> (<strong><?= $this->e($subtask['status_name']) ?></strong>)
<?= $this->text->e($subtask['title']) ?> (<strong><?= $this->text->e($subtask['status_name']) ?></strong>)
</li>
<li>
<?php if ($subtask['username']): ?>

View File

@ -2,16 +2,16 @@
<p class="activity-title">
<?= e('%s updated a subtask for the task %s',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))
) ?>
</p>
<div class="activity-description">
<p><em><?= $this->e($task['title']) ?></em></p>
<p><em><?= $this->text->e($task['title']) ?></em></p>
<ul>
<li>
<?= $this->e($subtask['title']) ?> (<strong><?= $this->e($subtask['status_name']) ?></strong>)
<?= $this->text->e($subtask['title']) ?> (<strong><?= $this->text->e($subtask['status_name']) ?></strong>)
</li>
<li>
<?php if ($subtask['username']): ?>

View File

@ -5,14 +5,14 @@
<?php if (! empty($assignee)): ?>
<?= e('%s changed the assignee of the task %s to %s',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])),
$this->e($assignee)
$this->text->e($assignee)
) ?>
<?php else: ?>
<?= e('%s remove the assignee of the task %s', $this->e($author), $this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))) ?>
<?= e('%s remove the assignee of the task %s', $this->text->e($author), $this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))) ?>
<?php endif ?>
</p>
<p class="activity-description">
<em><?= $this->e($task['title']) ?></em>
<em><?= $this->text->e($task['title']) ?></em>
</p>

View File

@ -2,10 +2,10 @@
<p class="activity-title">
<?= e('%s closed the task %s',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))
) ?>
</p>
<p class="activity-description">
<em><?= $this->e($task['title']) ?></em>
<em><?= $this->text->e($task['title']) ?></em>
</p>

View File

@ -2,10 +2,10 @@
<p class="activity-title">
<?= e('%s created the task %s',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))
) ?>
</p>
<p class="activity-description">
<em><?= $this->e($task['title']) ?></em>
<em><?= $this->text->e($task['title']) ?></em>
</p>

View File

@ -2,10 +2,10 @@
<p class="activity-title">
<?= e('%s attached a new file to the task %s',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))
) ?>
</p>
<p class="activity-description">
<em><?= $this->e($file['name']) ?></em>
<em><?= $this->text->e($file['name']) ?></em>
</p>

View File

@ -2,11 +2,11 @@
<p class="activity-title">
<?= e('%s moved the task %s to the column "%s"',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])),
$this->e($task['column_title'])
$this->text->e($task['column_title'])
) ?>
</p>
<p class="activity-description">
<em><?= $this->e($task['title']) ?></em>
<em><?= $this->text->e($task['title']) ?></em>
</p>

View File

@ -2,12 +2,12 @@
<p class="activity-title">
<?= e('%s moved the task %s to the position #%d in the column "%s"',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])),
$task['position'],
$this->e($task['column_title'])
$this->text->e($task['column_title'])
) ?>
</p>
<p class="activity-description">
<em><?= $this->e($task['title']) ?></em>
<em><?= $this->text->e($task['title']) ?></em>
</p>

View File

@ -3,17 +3,17 @@
<p class="activity-title">
<?php if ($task['swimlane_id'] == 0): ?>
<?= e('%s moved the task %s to the first swimlane',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))
) ?>
<?php else: ?>
<?= e('%s moved the task %s to the swimlane "%s"',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])),
$this->e($task['swimlane_name'])
$this->text->e($task['swimlane_name'])
) ?>
<?php endif ?>
</p>
<p class="activity-description">
<em><?= $this->e($task['title']) ?></em>
<em><?= $this->text->e($task['title']) ?></em>
</p>

View File

@ -2,10 +2,10 @@
<p class="activity-title">
<?= e('%s opened the task %s',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))
) ?>
</p>
<p class="activity-description">
<em><?= $this->e($task['title']) ?></em>
<em><?= $this->text->e($task['title']) ?></em>
</p>

View File

@ -2,12 +2,12 @@
<p class="activity-title">
<?= e('%s updated the task %s',
$this->e($author),
$this->text->e($author),
$this->url->link(t('#%d', $task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))
) ?>
</p>
<p class="activity-description">
<em><?= $this->e($task['title']) ?></em>
<em><?= $this->text->e($task['title']) ?></em>
<?php if (isset($changes)): ?>
<div class="activity-changes">
<?= $this->render('task/changes', array('changes' => $changes, 'task' => $task)) ?>

View File

@ -15,7 +15,7 @@
<published><?= date(DATE_ATOM, $e['date_creation']) ?></published>
<updated><?= date(DATE_ATOM, $e['date_creation']) ?></updated>
<author>
<name><?= $this->e($e['author']) ?></name>
<name><?= $this->text->e($e['author']) ?></name>
</author>
<content type="html">
<![CDATA[

View File

@ -15,7 +15,7 @@
<published><?= date(DATE_ATOM, $e['date_creation']) ?></published>
<updated><?= date(DATE_ATOM, $e['date_creation']) ?></updated>
<author>
<name><?= $this->e($e['author']) ?></name>
<name><?= $this->text->e($e['author']) ?></name>
</author>
<content type="html">
<![CDATA[

View File

@ -1,9 +1,9 @@
<div class="page-header">
<h2><?= $this->e($file['name']) ?></h2>
<h2><?= $this->text->e($file['name']) ?></h2>
</div>
<div class="file-viewer">
<?php if ($file['is_image']): ?>
<img src="<?= $this->url->href('FileViewer', 'image', $params) ?>" alt="<?= $this->e($file['name']) ?>">
<img src="<?= $this->url->href('FileViewer', 'image', $params) ?>" alt="<?= $this->text->e($file['name']) ?>">
<?php elseif ($type === 'markdown'): ?>
<article class="markdown">
<?= $this->text->markdown($content) ?>

View File

@ -21,10 +21,10 @@
#<?= $group['id'] ?>
</td>
<td>
<?= $this->e($group['external_id']) ?>
<?= $this->text->e($group['external_id']) ?>
</td>
<td>
<?= $this->e($group['name']) ?>
<?= $this->text->e($group['name']) ?>
</td>
<td>
<div class="dropdown">

View File

@ -22,13 +22,13 @@
<?= $this->url->link('#'.$user['id'], 'user', 'show', array('user_id' => $user['id'])) ?>
</td>
<td>
<?= $this->url->link($this->e($user['username']), 'user', 'show', array('user_id' => $user['id'])) ?>
<?= $this->url->link($this->text->e($user['username']), 'user', 'show', array('user_id' => $user['id'])) ?>
</td>
<td>
<?= $this->e($user['name']) ?>
<?= $this->text->e($user['name']) ?>
</td>
<td>
<a href="mailto:<?= $this->e($user['email']) ?>"><?= $this->e($user['email']) ?></a>
<a href="mailto:<?= $this->text->e($user['email']) ?>"><?= $this->text->e($user['email']) ?></a>
</td>
<td>
<?= $this->url->link(t('Remove this user'), 'group', 'dissociate', array('group_id' => $group['id'], 'user_id' => $user['id'])) ?>

View File

@ -5,10 +5,10 @@
<?= $this->url->link('K<span>B</span>', 'app', 'index', array(), false, '', t('Dashboard')) ?>
</span>
<span class="title">
<?= $this->e($title) ?>
<?= $this->text->e($title) ?>
</span>
<?php if (! empty($description)): ?>
<span class="tooltip" title='<?= $this->e($this->text->markdown($description)) ?>'>
<span class="tooltip" title='<?= $this->text->e($this->text->markdown($description)) ?>'>
<i class="fa fa-info-circle"></i>
</span>
<?php endif ?>
@ -26,7 +26,7 @@
data-redirect-url="<?= $this->url->href('board', 'show', array('project_id' => 'PROJECT_ID')) ?>">
<option value=""></option>
<?php foreach ($board_selector as $board_id => $board_name): ?>
<option value="<?= $board_id ?>"><?= $this->e($board_name) ?></option>
<option value="<?= $board_id ?>"><?= $this->text->e($board_name) ?></option>
<?php endforeach ?>
</select>
</li>
@ -60,7 +60,7 @@
<div class="dropdown">
<a href="#" class="dropdown-menu dropdown-menu-link-icon"><i class="fa fa-user fa-fw"></i><i class="fa fa-caret-down"></i></a>
<ul>
<li class="no-hover"><strong><?= $this->e($this->user->getFullname()) ?></strong></li>
<li class="no-hover"><strong><?= $this->text->e($this->user->getFullname()) ?></strong></li>
<li>
<i class="fa fa-tachometer fa-fw"></i>
<?= $this->url->link(t('My dashboard'), 'app', 'index', array('user_id' => $this->user->getId())) ?>

View File

@ -30,7 +30,7 @@
<link rel="apple-touch-icon" sizes="114x114" href="<?= $this->url->dir() ?>assets/img/touch-icon-iphone-retina.png">
<link rel="apple-touch-icon" sizes="144x144" href="<?= $this->url->dir() ?>assets/img/touch-icon-ipad-retina.png">
<title><?= isset($title) ? $this->e($title) : 'Kanboard' ?></title>
<title><?= isset($title) ? $this->text->e($title) : 'Kanboard' ?></title>
<?= $this->hook->render('template:layout:head') ?>
</head>

View File

@ -27,20 +27,20 @@
<?= $this->render('task/dropdown', array('task' => $task)) ?>
</td>
<td>
<?= $this->e($task['swimlane_name'] ?: $task['default_swimlane']) ?>
<?= $this->text->e($task['swimlane_name'] ?: $task['default_swimlane']) ?>
</td>
<td>
<?= $this->e($task['column_name']) ?>
<?= $this->text->e($task['column_name']) ?>
</td>
<td>
<?= $this->e($task['category_name']) ?>
<?= $this->text->e($task['category_name']) ?>
</td>
<td>
<?= $this->url->link($this->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
<?= $this->url->link($this->text->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
</td>
<td>
<?php if ($task['assignee_username']): ?>
<?= $this->e($task['assignee_name'] ?: $task['assignee_username']) ?>
<?= $this->text->e($task['assignee_name'] ?: $task['assignee_username']) ?>
<?php else: ?>
<?= t('Unassigned') ?>
<?php endif ?>

View File

@ -1,4 +1,4 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<?php if (! empty($comment['username'])): ?>
<h3><?= t('New comment posted by %s', $comment['name'] ?: $comment['username']) ?></h3>

View File

@ -1,4 +1,4 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h3><?= t('Comment updated') ?></h3>

View File

@ -1,6 +1,6 @@
<h2><?= t('You were mentioned in a comment on the task #%d', $task['id']) ?></h2>
<p><?= $this->e($task['title']) ?></p>
<p><?= $this->text->e($task['title']) ?></p>
<?= $this->text->markdown($comment['comment']) ?>

View File

@ -1,15 +1,15 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h3><?= t('New sub-task') ?></h3>
<ul>
<li><?= t('Title:') ?> <?= $this->e($subtask['title']) ?></li>
<li><?= t('Status:') ?> <?= $this->e($subtask['status_name']) ?></li>
<li><?= t('Assignee:') ?> <?= $this->e($subtask['name'] ?: $subtask['username'] ?: '?') ?></li>
<li><?= t('Title:') ?> <?= $this->text->e($subtask['title']) ?></li>
<li><?= t('Status:') ?> <?= $this->text->e($subtask['status_name']) ?></li>
<li><?= t('Assignee:') ?> <?= $this->text->e($subtask['name'] ?: $subtask['username'] ?: '?') ?></li>
<li>
<?= t('Time tracking:') ?>
<?php if (! empty($subtask['time_estimated'])): ?>
<strong><?= $this->e($subtask['time_estimated']).'h' ?></strong> <?= t('estimated') ?>
<strong><?= $this->text->e($subtask['time_estimated']).'h' ?></strong> <?= t('estimated') ?>
<?php endif ?>
</li>
</ul>

View File

@ -1,19 +1,19 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h3><?= t('Sub-task updated') ?></h3>
<ul>
<li><?= t('Title:') ?> <?= $this->e($subtask['title']) ?></li>
<li><?= t('Status:') ?> <?= $this->e($subtask['status_name']) ?></li>
<li><?= t('Assignee:') ?> <?= $this->e($subtask['name'] ?: $subtask['username'] ?: '?') ?></li>
<li><?= t('Title:') ?> <?= $this->text->e($subtask['title']) ?></li>
<li><?= t('Status:') ?> <?= $this->text->e($subtask['status_name']) ?></li>
<li><?= t('Assignee:') ?> <?= $this->text->e($subtask['name'] ?: $subtask['username'] ?: '?') ?></li>
<li>
<?= t('Time tracking:') ?>
<?php if (! empty($subtask['time_spent'])): ?>
<strong><?= $this->e($subtask['time_spent']).'h' ?></strong> <?= t('spent') ?>
<strong><?= $this->text->e($subtask['time_spent']).'h' ?></strong> <?= t('spent') ?>
<?php endif ?>
<?php if (! empty($subtask['time_estimated'])): ?>
<strong><?= $this->e($subtask['time_estimated']).'h' ?></strong> <?= t('estimated') ?>
<strong><?= $this->text->e($subtask['time_estimated']).'h' ?></strong> <?= t('estimated') ?>
<?php endif ?>
</li>
</ul>

View File

@ -1,4 +1,4 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<ul>
<li>

View File

@ -1,4 +1,4 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<p><?= t('The task #%d have been closed.', $task['id']) ?></p>

View File

@ -1,4 +1,4 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<ul>
<li>
@ -25,12 +25,12 @@
</li>
<li>
<?= t('Column on the board:') ?>
<strong><?= $this->e($task['column_title']) ?></strong>
<strong><?= $this->text->e($task['column_title']) ?></strong>
</li>
<li><?= t('Task position:').' '.$this->e($task['position']) ?></li>
<li><?= t('Task position:').' '.$this->text->e($task['position']) ?></li>
<?php if (! empty($task['category_name'])): ?>
<li>
<?= t('Category:') ?> <strong><?= $this->e($task['category_name']) ?></strong>
<?= t('Category:') ?> <strong><?= $this->text->e($task['category_name']) ?></strong>
</li>
<?php endif ?>
</ul>

View File

@ -1,4 +1,4 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<p><?= t('New attachment added "%s"', $file['name']) ?></p>

View File

@ -1,11 +1,11 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<ul>
<li>
<?= t('Column on the board:') ?>
<strong><?= $this->e($task['column_title']) ?></strong>
<strong><?= $this->text->e($task['column_title']) ?></strong>
</li>
<li><?= t('Task position:').' '.$this->e($task['position']) ?></li>
<li><?= t('Task position:').' '.$this->text->e($task['position']) ?></li>
</ul>
<?= $this->render('notification/footer', array('task' => $task, 'application_url' => $application_url)) ?>

View File

@ -1,11 +1,11 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<ul>
<li>
<?= t('Column on the board:') ?>
<strong><?= $this->e($task['column_title']) ?></strong>
<strong><?= $this->text->e($task['column_title']) ?></strong>
</li>
<li><?= t('Task position:').' '.$this->e($task['position']) ?></li>
<li><?= t('Task position:').' '.$this->text->e($task['position']) ?></li>
</ul>
<?= $this->render('notification/footer', array('task' => $task, 'application_url' => $application_url)) ?>

View File

@ -1,4 +1,4 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<ul>
<li>
@ -6,14 +6,14 @@
<?= t('The task have been moved to the first swimlane') ?>
<?php else: ?>
<?= t('The task have been moved to another swimlane:') ?>
<strong><?= $this->e($task['swimlane_name']) ?></strong>
<strong><?= $this->text->e($task['swimlane_name']) ?></strong>
<?php endif ?>
</li>
<li>
<?= t('Column on the board:') ?>
<strong><?= $this->e($task['column_title']) ?></strong>
<strong><?= $this->text->e($task['column_title']) ?></strong>
</li>
<li><?= t('Task position:').' '.$this->e($task['position']) ?></li>
<li><?= t('Task position:').' '.$this->text->e($task['position']) ?></li>
</ul>
<?= $this->render('notification/footer', array('task' => $task, 'application_url' => $application_url)) ?>

View File

@ -1,4 +1,4 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<p><?= t('The task #%d have been opened.', $task['id']) ?></p>

View File

@ -5,9 +5,9 @@
<li>
(<strong>#<?= $task['id'] ?></strong>)
<?php if ($application_url): ?>
<a href="<?= $this->url->href('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', true) ?>"><?= $this->e($task['title']) ?></a>
<a href="<?= $this->url->href('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', true) ?>"><?= $this->text->e($task['title']) ?></a>
<?php else: ?>
<?= $this->e($task['title']) ?>
<?= $this->text->e($task['title']) ?>
<?php endif ?>
(<?= $this->dt->date($task['date_due']) ?>)
<?php if ($task['assignee_username']): ?>

View File

@ -1,4 +1,4 @@
<h2><?= $this->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<h2><?= $this->text->e($task['title']) ?> (#<?= $task['id'] ?>)</h2>
<?= $this->render('task/changes', array('changes' => $changes, 'task' => $task)) ?>
<?= $this->render('notification/footer', array('task' => $task, 'application_url' => $application_url)) ?>

View File

@ -1,5 +1,5 @@
<h2><?= t('You were mentioned in the task #%d', $task['id']) ?></h2>
<p><?= $this->e($task['title']) ?></p>
<p><?= $this->text->e($task['title']) ?></p>
<h2><?= t('Description') ?></h2>
<?= $this->text->markdown($task['description']) ?>

View File

@ -49,12 +49,12 @@
<?php endif ?>
<?php if (! empty($project['description'])): ?>
<span class="tooltip" title='<?= $this->e($this->text->markdown($project['description'])) ?>'>
<span class="tooltip" title='<?= $this->text->e($this->text->markdown($project['description'])) ?>'>
<i class="fa fa-info-circle"></i>
</span>
<?php endif ?>
<?= $this->url->link($this->e($project['name']), 'project', 'show', array('project_id' => $project['id'])) ?>
<?= $this->url->link($this->text->e($project['name']), 'project', 'show', array('project_id' => $project['id'])) ?>
</td>
<td>
<?= $this->dt->date($project['start_date']) ?>
@ -64,7 +64,7 @@
</td>
<td>
<?php if ($project['owner_id'] > 0): ?>
<?= $this->e($project['owner_name'] ?: $project['owner_username']) ?>
<?= $this->text->e($project['owner_name'] ?: $project['owner_username']) ?>
<?php endif ?>
</td>
<?php if ($this->user->hasAccess('projectuser', 'managers')): ?>
@ -76,7 +76,7 @@
<td class="dashboard-project-stats">
<?php foreach ($project['columns'] as $column): ?>
<strong title="<?= t('Task count') ?>"><?= $column['nb_tasks'] ?></strong>
<span><?= $this->e($column['title']) ?></span>
<span><?= $this->text->e($column['title']) ?></span>
<?php endforeach ?>
</td>
</tr>

View File

@ -5,7 +5,7 @@
<li><strong><?= $project['is_active'] ? t('Active') : t('Inactive') ?></strong></li>
<?php if ($project['owner_id'] > 0): ?>
<li><?= t('Project owner: ') ?><strong><?= $this->e($project['owner_name'] ?: $project['owner_username']) ?></strong></li>
<li><?= t('Project owner: ') ?><strong><?= $this->text->e($project['owner_name'] ?: $project['owner_username']) ?></strong></li>
<?php endif ?>
<?php if ($project['is_private']): ?>
@ -61,9 +61,9 @@
<?php foreach ($stats['columns'] as $column): ?>
<tr>
<td>
<?= $this->e($column['title']) ?>
<?= $this->text->e($column['title']) ?>
<?php if (! empty($column['description'])): ?>
<span class="tooltip" title='<?= $this->e($this->text->markdown($column['description'])) ?>'>
<span class="tooltip" title='<?= $this->text->e($this->text->markdown($column['description'])) ?>'>
<i class="fa fa-info-circle"></i>
</span>
<?php endif ?>

View File

@ -4,7 +4,7 @@
<div class="confirm">
<p class="alert alert-info">
<?= t('Do you really want to remove this file: "%s"?', $this->e($file['name'])) ?>
<?= t('Do you really want to remove this file: "%s"?', $this->text->e($file['name'])) ?>
</p>
<div class="form-actions">

View File

@ -12,7 +12,7 @@
<a href="#" class="dropdown-menu dropdown-menu-link-icon" title="<?= t('Custom filters') ?>"><i class="fa fa-bookmark fa-fw"></i><i class="fa fa-caret-down"></i></a>
<ul>
<?php foreach ($custom_filters_list as $filter): ?>
<li><a href="#" class="filter-helper" data-<?php if ($filter['append']): ?><?= 'append-' ?><?php endif ?>filter='<?= $this->e($filter['filter']) ?>'><?= $this->e($filter['name']) ?></a></li>
<li><a href="#" class="filter-helper" data-<?php if ($filter['append']): ?><?= 'append-' ?><?php endif ?>filter='<?= $this->text->e($filter['filter']) ?>'><?= $this->text->e($filter['name']) ?></a></li>
<?php endforeach ?>
</ul>
</div>
@ -24,7 +24,7 @@
<ul>
<li><a href="#" class="filter-helper" data-append-filter="assignee:nobody"><?= t('Not assigned') ?></a></li>
<?php foreach ($users_list as $user): ?>
<li><a href="#" class="filter-helper" data-append-filter='assignee:"<?= $this->e($user) ?>"'><?= $this->e($user) ?></a></li>
<li><a href="#" class="filter-helper" data-append-filter='assignee:"<?= $this->text->e($user) ?>"'><?= $this->text->e($user) ?></a></li>
<?php endforeach ?>
</ul>
</div>
@ -36,7 +36,7 @@
<ul>
<li><a href="#" class="filter-helper" data-append-filter="category:none"><?= t('No category') ?></a></li>
<?php foreach ($categories_list as $category): ?>
<li><a href="#" class="filter-helper" data-append-filter='category:"<?= $this->e($category) ?>"'><?= $this->e($category) ?></a></li>
<li><a href="#" class="filter-helper" data-append-filter='category:"<?= $this->text->e($category) ?>"'><?= $this->text->e($category) ?></a></li>
<?php endforeach ?>
</ul>
</div>

View File

@ -2,7 +2,7 @@
<?php foreach ($project['columns'] as $column): ?>
<div class="project-overview-column">
<strong title="<?= t('Task count') ?>"><?= $column['nb_tasks'] ?></strong><br>
<span><?= $this->e($column['title']) ?></span>
<span><?= $this->text->e($column['title']) ?></span>
</div>
<?php endforeach ?>
</div>

View File

@ -1,6 +1,6 @@
<?php if (! empty($project['description'])): ?>
<div class="page-header">
<h2><?= $this->e($project['name']) ?></h2>
<h2><?= $this->text->e($project['name']) ?></h2>
</div>
<article class="markdown">
<?= $this->text->markdown($project['description']) ?>

View File

@ -18,11 +18,11 @@
<div class="file-thumbnails">
<?php foreach ($images as $file): ?>
<div class="file-thumbnail">
<a href="<?= $this->url->href('FileViewer', 'show', array('project_id' => $project['id'], 'file_id' => $file['id'])) ?>" class="popover"><img src="<?= $this->url->href('FileViewer', 'thumbnail', array('file_id' => $file['id'], 'project_id' => $project['id'])) ?>" title="<?= $this->e($file['name']) ?>" alt="<?= $this->e($file['name']) ?>"></a>
<a href="<?= $this->url->href('FileViewer', 'show', array('project_id' => $project['id'], 'file_id' => $file['id'])) ?>" class="popover"><img src="<?= $this->url->href('FileViewer', 'thumbnail', array('file_id' => $file['id'], 'project_id' => $project['id'])) ?>" title="<?= $this->text->e($file['name']) ?>" alt="<?= $this->text->e($file['name']) ?>"></a>
<div class="file-thumbnail-content">
<div class="file-thumbnail-title">
<div class="dropdown">
<a href="#" class="dropdown-menu dropdown-menu-link-text"><?= $this->e($file['name']) ?> <i class="fa fa-caret-down"></i></a>
<a href="#" class="dropdown-menu dropdown-menu-link-text"><?= $this->text->e($file['name']) ?> <i class="fa fa-caret-down"></i></a>
<ul>
<li>
<i class="fa fa-download fa-fw"></i>
@ -62,7 +62,7 @@
<td>
<i class="fa <?= $this->file->icon($file['name']) ?> fa-fw"></i>
<div class="dropdown">
<a href="#" class="dropdown-menu dropdown-menu-link-text"><?= $this->e($file['name']) ?> <i class="fa fa-caret-down"></i></a>
<a href="#" class="dropdown-menu dropdown-menu-link-text"><?= $this->text->e($file['name']) ?> <i class="fa fa-caret-down"></i></a>
<ul>
<?php if ($this->file->getPreviewType($file['name']) !== null): ?>
<li>
@ -84,7 +84,7 @@
</div>
</td>
<td>
<?= $this->e($file['user_name'] ?: $file['username']) ?>
<?= $this->text->e($file['user_name'] ?: $file['username']) ?>
</td>
<td>
<?= $this->dt->date($file['date']) ?>

View File

@ -4,7 +4,7 @@
<div class="listing">
<ul>
<?php if ($project['owner_id'] > 0): ?>
<li><?= t('Project owner: ') ?><strong><?= $this->e($project['owner_name'] ?: $project['owner_username']) ?></strong></li>
<li><?= t('Project owner: ') ?><strong><?= $this->text->e($project['owner_name'] ?: $project['owner_username']) ?></strong></li>
<?php endif ?>
<?php if (! empty($users)): ?>

View File

@ -19,7 +19,7 @@
</tr>
<?php foreach ($users as $user): ?>
<tr>
<td><?= $this->e($user['name'] ?: $user['username']) ?></td>
<td><?= $this->text->e($user['name'] ?: $user['username']) ?></td>
<td>
<?= $this->form->select(
'role-'.$user['id'],
@ -79,7 +79,7 @@
</tr>
<?php foreach ($groups as $group): ?>
<tr>
<td><?= $this->e($group['name']) ?></td>
<td><?= $this->text->e($group['name']) ?></td>
<td>
<?= $this->form->select(
'role-'.$group['id'],

View File

@ -19,7 +19,7 @@
<div class="sidebar-content">
<div class="page-header">
<h2><?= $this->e($title) ?></h2>
<h2><?= $this->text->e($title) ?></h2>
</div>
<?= $content_for_sublayout ?>
</div>

View File

@ -10,19 +10,19 @@
<?php foreach ($paginator->getCollection() as $project): ?>
<tr>
<td>
<?= $this->e($this->user->getFullname($project)) ?>
<?= $this->text->e($this->user->getFullname($project)) ?>
</td>
<td>
<?= $this->url->link('<i class="fa fa-th"></i>', 'board', 'show', array('project_id' => $project['id']), false, 'dashboard-table-link', t('Board')) ?>
<?= $this->url->link('<i class="fa fa-sliders fa-fw"></i>', 'gantt', 'project', array('project_id' => $project['id']), false, 'dashboard-table-link', t('Gantt chart')) ?>
<?= $this->url->link('<i class="fa fa-cog fa-fw"></i>', 'project', 'show', array('project_id' => $project['id']), false, 'dashboard-table-link', t('Project settings')) ?>
<?= $this->e($project['project_name']) ?>
<?= $this->text->e($project['project_name']) ?>
</td>
<td class="dashboard-project-stats">
<?php foreach ($project['columns'] as $column): ?>
<strong title="<?= t('Task count') ?>"><?= $column['nb_tasks'] ?></strong>
<span><?= $this->e($column['title']) ?></span>
<span><?= $this->text->e($column['title']) ?></span>
<?php endforeach ?>
</td>
</tr>

View File

@ -14,20 +14,20 @@
<?php foreach ($paginator->getCollection() as $task): ?>
<tr>
<td class="task-table color-<?= $task['color_id'] ?>">
<?= $this->url->link('#'.$this->e($task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
<?= $this->url->link('#'.$this->text->e($task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
</td>
<td>
<?= $this->url->link($this->e($task['project_name']), 'board', 'show', array('project_id' => $task['project_id'])) ?>
<?= $this->url->link($this->text->e($task['project_name']), 'board', 'show', array('project_id' => $task['project_id'])) ?>
</td>
<td>
<?= $this->e($task['column_name']) ?>
<?= $this->text->e($task['column_name']) ?>
</td>
<td>
<?= $this->url->link($this->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
<?= $this->url->link($this->text->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
</td>
<td>
<?php if ($task['assignee_username']): ?>
<?= $this->e($task['assignee_name'] ?: $task['assignee_username']) ?>
<?= $this->text->e($task['assignee_name'] ?: $task['assignee_username']) ?>
<?php else: ?>
<?= t('Unassigned') ?>
<?php endif ?>

View File

@ -6,7 +6,7 @@
<strong><?= $role_name ?></strong>
<ul>
<?php foreach ($users[$role] as $user_id => $user): ?>
<li><?= $this->url->link($this->e($user), 'Projectuser', 'opens', array('user_id' => $user_id)) ?></li>
<li><?= $this->url->link($this->text->e($user), 'Projectuser', 'opens', array('user_id' => $user_id)) ?></li>
<?php endforeach ?>
</ul>
<?php endif ?>

View File

@ -13,26 +13,26 @@
<?php foreach ($paginator->getCollection() as $task): ?>
<tr>
<td>
<?= $this->url->link($this->e($task['project_name']), 'board', 'show', array('project_id' => $task['project_id'])) ?>
<?= $this->url->link($this->text->e($task['project_name']), 'board', 'show', array('project_id' => $task['project_id'])) ?>
</td>
<td class="task-table color-<?= $task['color_id'] ?>">
<?= $this->url->link('#'.$this->e($task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
<?= $this->url->link('#'.$this->text->e($task['id']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
</td>
<td>
<?= $this->e($task['swimlane_name'] ?: $task['default_swimlane']) ?>
<?= $this->text->e($task['swimlane_name'] ?: $task['default_swimlane']) ?>
</td>
<td>
<?= $this->e($task['column_name']) ?>
<?= $this->text->e($task['column_name']) ?>
</td>
<td>
<?= $this->e($task['category_name']) ?>
<?= $this->text->e($task['category_name']) ?>
</td>
<td>
<?= $this->url->link($this->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
<?= $this->url->link($this->text->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
</td>
<td>
<?php if ($task['assignee_username']): ?>
<?= $this->e($task['assignee_name'] ?: $task['assignee_username']) ?>
<?= $this->text->e($task['assignee_name'] ?: $task['assignee_username']) ?>
<?php else: ?>
<?= t('Unassigned') ?>
<?php endif ?>

Some files were not shown because too many files have changed in this diff Show More