Change layout (experimental)
This commit is contained in:
parent
8fe5df39d9
commit
37332ae222
|
|
@ -31,7 +31,6 @@ class Action extends Base
|
|||
'projects_list' => $this->project->getList(false),
|
||||
'colors_list' => $this->color->getList(),
|
||||
'categories_list' => $this->category->getList($project['id']),
|
||||
'menu' => 'projects',
|
||||
'title' => t('Automatic actions')
|
||||
)));
|
||||
}
|
||||
|
|
@ -54,7 +53,6 @@ class Action extends Base
|
|||
'values' => $values,
|
||||
'project' => $project,
|
||||
'events' => $this->action->getCompatibleEvents($values['action_name']),
|
||||
'menu' => 'projects',
|
||||
'title' => t('Automatic actions')
|
||||
)));
|
||||
}
|
||||
|
|
@ -92,7 +90,6 @@ class Action extends Base
|
|||
'colors_list' => $this->color->getList(),
|
||||
'categories_list' => $this->category->getList($project['id']),
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Automatic actions')
|
||||
)));
|
||||
}
|
||||
|
|
@ -145,7 +142,6 @@ class Action extends Base
|
|||
'available_events' => $this->action->getAvailableEvents(),
|
||||
'available_actions' => $this->action->getAvailableActions(),
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Remove an action')
|
||||
)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ class App extends Base
|
|||
'board_selector' => $projects,
|
||||
'events' => $this->projectActivity->getProjects(array_keys($projects), 10),
|
||||
'tasks' => $this->taskFinder->getAllTasksByUser($user_id),
|
||||
'menu' => 'dashboard',
|
||||
'title' => t('Dashboard'),
|
||||
)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -245,6 +245,8 @@ abstract class Base
|
|||
|
||||
$content = $this->template->load($template, $params);
|
||||
$params['task_content_for_layout'] = $content;
|
||||
$params['title'] = $params['task']['project_name'].' > '.$params['task']['title'];
|
||||
$params['board_selector'] = $this->projectPermission->getAllowedProjects($this->acl->getUserId());
|
||||
|
||||
return $this->template->layout('task_layout', $params);
|
||||
}
|
||||
|
|
@ -261,7 +263,8 @@ abstract class Base
|
|||
{
|
||||
$content = $this->template->load($template, $params);
|
||||
$params['project_content_for_layout'] = $content;
|
||||
$params['menu'] = 'projects';
|
||||
$params['title'] = $params['project']['name'] === $params['title'] ? $params['title'] : $params['project']['name'].' > '.$params['title'];
|
||||
$params['board_selector'] = $this->projectPermission->getAllowedProjects($this->acl->getUserId());
|
||||
|
||||
return $this->template->layout('project_layout', $params);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,7 +59,6 @@ class Board extends Base
|
|||
else {
|
||||
|
||||
$this->response->html($this->template->layout('board_assignee', $params + array(
|
||||
'menu' => 'boards',
|
||||
'title' => t('Change assignee').' - '.$task['title'],
|
||||
)));
|
||||
}
|
||||
|
|
@ -113,7 +112,6 @@ class Board extends Base
|
|||
else {
|
||||
|
||||
$this->response->html($this->template->layout('board_category', $params + array(
|
||||
'menu' => 'boards',
|
||||
'title' => t('Change category').' - '.$task['title'],
|
||||
)));
|
||||
}
|
||||
|
|
@ -222,7 +220,6 @@ class Board extends Base
|
|||
'current_project_name' => $project['name'],
|
||||
'board' => $this->board->get($project['id']),
|
||||
'categories' => $this->category->getList($project['id'], true, true),
|
||||
'menu' => 'boards',
|
||||
'title' => $project['name'],
|
||||
'board_selector' => $board_selector,
|
||||
'board_private_refresh_interval' => $this->config->get('board_private_refresh_interval'),
|
||||
|
|
@ -251,7 +248,6 @@ class Board extends Base
|
|||
'values' => $values + array('project_id' => $project['id']),
|
||||
'columns' => $columns,
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Edit board')
|
||||
)));
|
||||
}
|
||||
|
|
@ -292,7 +288,6 @@ class Board extends Base
|
|||
'values' => $values + array('project_id' => $project['id']),
|
||||
'columns' => $columns,
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Edit board')
|
||||
)));
|
||||
}
|
||||
|
|
@ -331,7 +326,6 @@ class Board extends Base
|
|||
'values' => $values + $data,
|
||||
'columns' => $columns,
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Edit board')
|
||||
)));
|
||||
}
|
||||
|
|
@ -362,7 +356,6 @@ class Board extends Base
|
|||
$this->response->html($this->projectLayout('board_remove', array(
|
||||
'column' => $this->board->getColumn($this->request->getIntegerParam('column_id')),
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Remove a column from a board')
|
||||
)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@ class Category extends Base
|
|||
'values' => array('project_id' => $project['id']),
|
||||
'errors' => array(),
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Categories')
|
||||
)));
|
||||
}
|
||||
|
|
@ -76,7 +75,6 @@ class Category extends Base
|
|||
'values' => $values,
|
||||
'errors' => $errors,
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Categories')
|
||||
)));
|
||||
}
|
||||
|
|
@ -95,7 +93,6 @@ class Category extends Base
|
|||
'values' => $category,
|
||||
'errors' => array(),
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Categories')
|
||||
)));
|
||||
}
|
||||
|
|
@ -127,7 +124,6 @@ class Category extends Base
|
|||
'values' => $values,
|
||||
'errors' => $errors,
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Categories')
|
||||
)));
|
||||
}
|
||||
|
|
@ -145,7 +141,6 @@ class Category extends Base
|
|||
$this->response->html($this->projectLayout('category_remove', array(
|
||||
'project' => $project,
|
||||
'category' => $category,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Remove a category')
|
||||
)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ class Comment extends Base
|
|||
|
||||
if (! $this->acl->isAdminUser() && $comment['user_id'] != $this->acl->getUserId()) {
|
||||
$this->response->html($this->template->layout('comment_forbidden', array(
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Access Forbidden')
|
||||
)));
|
||||
}
|
||||
|
|
@ -50,7 +49,6 @@ class Comment extends Base
|
|||
),
|
||||
'errors' => array(),
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Add a comment')
|
||||
)));
|
||||
}
|
||||
|
|
@ -83,7 +81,6 @@ class Comment extends Base
|
|||
'values' => $values,
|
||||
'errors' => $errors,
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Add a comment')
|
||||
)));
|
||||
}
|
||||
|
|
@ -103,7 +100,6 @@ class Comment extends Base
|
|||
'errors' => array(),
|
||||
'comment' => $comment,
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Edit a comment')
|
||||
)));
|
||||
}
|
||||
|
|
@ -138,7 +134,6 @@ class Comment extends Base
|
|||
'errors' => $errors,
|
||||
'comment' => $comment,
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Edit a comment')
|
||||
)));
|
||||
}
|
||||
|
|
@ -156,7 +151,6 @@ class Comment extends Base
|
|||
$this->response->html($this->taskLayout('comment_remove', array(
|
||||
'comment' => $comment,
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Remove a comment')
|
||||
)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,9 +20,9 @@ class Config extends Base
|
|||
*/
|
||||
private function layout($template, array $params)
|
||||
{
|
||||
$params['board_selector'] = $this->projectPermission->getAllowedProjects($this->acl->getUserId());
|
||||
$params['values'] = $this->config->getAll();
|
||||
$params['errors'] = array();
|
||||
$params['menu'] = 'config';
|
||||
$params['config_content_for_layout'] = $this->template->load($template, $params);
|
||||
|
||||
return $this->template->layout('config_layout', $params);
|
||||
|
|
@ -61,7 +61,7 @@ class Config extends Base
|
|||
{
|
||||
$this->response->html($this->layout('config_about', array(
|
||||
'db_size' => $this->config->getDatabaseSize(),
|
||||
'title' => t('About'),
|
||||
'title' => t('Settings').' > '.t('About'),
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -75,10 +75,10 @@ class Config extends Base
|
|||
$this->common('application');
|
||||
|
||||
$this->response->html($this->layout('config_application', array(
|
||||
'title' => t('Application settings'),
|
||||
'languages' => $this->config->getLanguages(),
|
||||
'timezones' => $this->config->getTimezones(),
|
||||
'date_formats' => $this->dateParser->getAvailableFormats(),
|
||||
'title' => t('Settings').' > '.t('Application settings'),
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -92,8 +92,8 @@ class Config extends Base
|
|||
$this->common('board');
|
||||
|
||||
$this->response->html($this->layout('config_board', array(
|
||||
'title' => t('Board settings'),
|
||||
'default_columns' => implode(', ', $this->board->getDefaultColumns()),
|
||||
'title' => t('Settings').' > '.t('Board settings'),
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -107,7 +107,7 @@ class Config extends Base
|
|||
$this->common('webhook');
|
||||
|
||||
$this->response->html($this->layout('config_webhook', array(
|
||||
'title' => t('Webhook settings'),
|
||||
'title' => t('Settings').' > '.t('Webhook settings'),
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -119,7 +119,7 @@ class Config extends Base
|
|||
public function api()
|
||||
{
|
||||
$this->response->html($this->layout('config_api', array(
|
||||
'title' => t('API'),
|
||||
'title' => t('Settings').' > '.t('API'),
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,9 +23,7 @@ class File extends Base
|
|||
|
||||
$this->response->html($this->taskLayout('file_new', array(
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'max_size' => ini_get('upload_max_filesize'),
|
||||
'title' => t('Attach a document')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -137,8 +135,6 @@ class File extends Base
|
|||
$this->response->html($this->taskLayout('file_remove', array(
|
||||
'task' => $task,
|
||||
'file' => $file,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Remove a file')
|
||||
)));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,10 +34,10 @@ class Project extends Base
|
|||
}
|
||||
|
||||
$this->response->html($this->template->layout('project_index', array(
|
||||
'board_selector' => $this->projectPermission->getAllowedProjects($this->acl->getUserId()),
|
||||
'active_projects' => $active_projects,
|
||||
'inactive_projects' => $inactive_projects,
|
||||
'nb_projects' => $nb_projects,
|
||||
'menu' => 'projects',
|
||||
'title' => t('Projects').' ('.$nb_projects.')'
|
||||
)));
|
||||
}
|
||||
|
|
@ -405,7 +405,6 @@ class Project extends Base
|
|||
|
||||
$this->response->html($this->template->layout('project_activity', array(
|
||||
'events' => $this->projectActivity->getProject($project['id']),
|
||||
'menu' => 'projects',
|
||||
'project' => $project,
|
||||
'title' => t('%s\'s activity', $project['name'])
|
||||
)));
|
||||
|
|
@ -452,10 +451,9 @@ class Project extends Base
|
|||
'project_id' => $project['id'],
|
||||
),
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'columns' => $this->board->getColumnsList($project['id']),
|
||||
'categories' => $this->category->getList($project['id'], false),
|
||||
'title' => $project['name'].($nb_tasks > 0 ? ' ('.$nb_tasks.')' : '')
|
||||
'title' => t('Search in the project "%s"', $project['name']).($nb_tasks > 0 ? ' ('.$nb_tasks.')' : '')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -487,12 +485,11 @@ class Project extends Base
|
|||
'limit' => $limit,
|
||||
),
|
||||
'project' => $project,
|
||||
'menu' => 'projects',
|
||||
'columns' => $this->board->getColumnsList($project['id']),
|
||||
'categories' => $this->category->getList($project['id'], false),
|
||||
'tasks' => $tasks,
|
||||
'nb_tasks' => $nb_tasks,
|
||||
'title' => $project['name'].' ('.$nb_tasks.')'
|
||||
'title' => t('Completed tasks for "%s"', $project['name']).' ('.$nb_tasks.')'
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -503,12 +500,15 @@ class Project extends Base
|
|||
*/
|
||||
public function create()
|
||||
{
|
||||
$is_private = $this->request->getIntegerParam('private', $this->acl->isRegularUser());
|
||||
|
||||
$this->response->html($this->template->layout('project_new', array(
|
||||
'board_selector' => $this->projectPermission->getAllowedProjects($this->acl->getUserId()),
|
||||
'errors' => array(),
|
||||
'values' => array(
|
||||
'is_private' => $this->request->getIntegerParam('private', $this->acl->isRegularUser()),
|
||||
'is_private' => $is_private,
|
||||
),
|
||||
'title' => t('New project')
|
||||
'title' => $is_private ? t('New private project') : t('New project'),
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -534,9 +534,10 @@ class Project extends Base
|
|||
}
|
||||
|
||||
$this->response->html($this->template->layout('project_new', array(
|
||||
'board_selector' => $this->projectPermission->getAllowedProjects($this->acl->getUserId()),
|
||||
'errors' => $errors,
|
||||
'values' => $values,
|
||||
'title' => t('New Project')
|
||||
'title' => ! empty($values['is_private']) ? t('New private project') : t('New project'),
|
||||
)));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,8 +44,6 @@ class Subtask extends Base
|
|||
'errors' => array(),
|
||||
'users_list' => $this->projectPermission->getUsersList($task['project_id']),
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Add a sub-task')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -82,8 +80,6 @@ class Subtask extends Base
|
|||
'errors' => $errors,
|
||||
'users_list' => $this->projectPermission->getUsersList($task['project_id']),
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Add a sub-task')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -104,8 +100,6 @@ class Subtask extends Base
|
|||
'status_list' => $this->subTask->getStatusList(),
|
||||
'subtask' => $subtask,
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Edit a sub-task')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -141,8 +135,6 @@ class Subtask extends Base
|
|||
'status_list' => $this->subTask->getStatusList(),
|
||||
'subtask' => $subtask,
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Edit a sub-task')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -159,8 +151,6 @@ class Subtask extends Base
|
|||
$this->response->html($this->taskLayout('subtask_remove', array(
|
||||
'subtask' => $subtask,
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Remove a sub-task')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,8 +77,7 @@ class Task extends Base
|
|||
'colors_list' => $this->color->getList(),
|
||||
'date_format' => $this->config->get('application_date_format'),
|
||||
'date_formats' => $this->dateParser->getAvailableFormats(),
|
||||
'menu' => 'tasks',
|
||||
'title' => $task['title'],
|
||||
'title' => $task['project_name'].' > '.$task['title'],
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -89,27 +88,25 @@ class Task extends Base
|
|||
*/
|
||||
public function create()
|
||||
{
|
||||
$project_id = $this->request->getIntegerParam('project_id');
|
||||
$this->checkProjectPermissions($project_id);
|
||||
$project = $this->getProject();
|
||||
|
||||
$this->response->html($this->template->layout('task_new', array(
|
||||
'errors' => array(),
|
||||
'values' => array(
|
||||
'project_id' => $project_id,
|
||||
'project_id' => $project['id'],
|
||||
'column_id' => $this->request->getIntegerParam('column_id'),
|
||||
'color_id' => $this->request->getStringParam('color_id'),
|
||||
'owner_id' => $this->request->getIntegerParam('owner_id'),
|
||||
'another_task' => $this->request->getIntegerParam('another_task'),
|
||||
),
|
||||
'projects_list' => $this->project->getListByStatus(ProjectModel::ACTIVE),
|
||||
'columns_list' => $this->board->getColumnsList($project_id),
|
||||
'users_list' => $this->projectPermission->getUsersList($project_id),
|
||||
'columns_list' => $this->board->getColumnsList($project['id']),
|
||||
'users_list' => $this->projectPermission->getUsersList($project['id']),
|
||||
'colors_list' => $this->color->getList(),
|
||||
'categories_list' => $this->category->getList($project_id),
|
||||
'categories_list' => $this->category->getList($project['id']),
|
||||
'date_format' => $this->config->get('application_date_format'),
|
||||
'date_formats' => $this->dateParser->getAvailableFormats(),
|
||||
'menu' => 'tasks',
|
||||
'title' => t('New task')
|
||||
'title' => $project['name'].' > '.t('New task')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -120,6 +117,7 @@ class Task extends Base
|
|||
*/
|
||||
public function save()
|
||||
{
|
||||
$project = $this->getProject();
|
||||
$values = $this->request->getValues();
|
||||
$values['creator_id'] = $this->acl->getUserId();
|
||||
|
||||
|
|
@ -150,14 +148,13 @@ class Task extends Base
|
|||
'errors' => $errors,
|
||||
'values' => $values,
|
||||
'projects_list' => $this->project->getListByStatus(ProjectModel::ACTIVE),
|
||||
'columns_list' => $this->board->getColumnsList($values['project_id']),
|
||||
'users_list' => $this->projectPermission->getUsersList($values['project_id']),
|
||||
'columns_list' => $this->board->getColumnsList($project['id']),
|
||||
'users_list' => $this->projectPermission->getUsersList($project['id']),
|
||||
'colors_list' => $this->color->getList(),
|
||||
'categories_list' => $this->category->getList($values['project_id']),
|
||||
'categories_list' => $this->category->getList($project['id']),
|
||||
'date_format' => $this->config->get('application_date_format'),
|
||||
'date_formats' => $this->dateParser->getAvailableFormats(),
|
||||
'menu' => 'tasks',
|
||||
'title' => t('New task')
|
||||
'title' => $project['name'].' > '.t('New task')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -183,8 +180,6 @@ class Task extends Base
|
|||
'date_format' => $this->config->get('application_date_format'),
|
||||
'date_formats' => $this->dateParser->getAvailableFormats(),
|
||||
'ajax' => $ajax,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Edit a task')
|
||||
);
|
||||
|
||||
if ($ajax) {
|
||||
|
|
@ -234,8 +229,6 @@ class Task extends Base
|
|||
'categories_list' => $this->category->getList($values['project_id']),
|
||||
'date_format' => $this->config->get('application_date_format'),
|
||||
'date_formats' => $this->dateParser->getAvailableFormats(),
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Edit a task'),
|
||||
'ajax' => $this->request->isAjax(),
|
||||
)));
|
||||
}
|
||||
|
|
@ -286,8 +279,6 @@ class Task extends Base
|
|||
|
||||
$this->response->html($this->taskLayout('task_close', array(
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Close a task')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -315,8 +306,6 @@ class Task extends Base
|
|||
|
||||
$this->response->html($this->taskLayout('task_open', array(
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Open a task')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -348,8 +337,6 @@ class Task extends Base
|
|||
|
||||
$this->response->html($this->taskLayout('task_remove', array(
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Remove a task')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -378,8 +365,6 @@ class Task extends Base
|
|||
|
||||
$this->response->html($this->taskLayout('task_duplicate', array(
|
||||
'task' => $task,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Duplicate a task')
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
@ -426,8 +411,6 @@ class Task extends Base
|
|||
'errors' => $errors,
|
||||
'task' => $task,
|
||||
'ajax' => $ajax,
|
||||
'menu' => 'tasks',
|
||||
'title' => t('Edit the description'),
|
||||
);
|
||||
|
||||
if ($ajax) {
|
||||
|
|
@ -494,8 +477,6 @@ class Task extends Base
|
|||
'errors' => $errors,
|
||||
'task' => $task,
|
||||
'projects_list' => $projects_list,
|
||||
'menu' => 'tasks',
|
||||
'title' => t(ucfirst($action).' the task to another project')
|
||||
)));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,10 +84,10 @@ class User extends Base
|
|||
{
|
||||
$content = $this->template->load($template, $params);
|
||||
$params['user_content_for_layout'] = $content;
|
||||
$params['menu'] = 'users';
|
||||
$params['board_selector'] = $this->projectPermission->getAllowedProjects($this->acl->getUserId());
|
||||
|
||||
if (isset($params['user'])) {
|
||||
$params['title'] = $params['user']['name'] ?: $params['user']['username'];
|
||||
$params['title'] = ($params['user']['name'] ?: $params['user']['username']).' (#'.$params['user']['id'].')';
|
||||
}
|
||||
|
||||
return $this->template->layout('user_layout', $params);
|
||||
|
|
@ -131,10 +131,10 @@ class User extends Base
|
|||
|
||||
$this->response->html(
|
||||
$this->template->layout('user_index', array(
|
||||
'board_selector' => $this->projectPermission->getAllowedProjects($this->acl->getUserId()),
|
||||
'projects' => $this->project->getList(),
|
||||
'nb_users' => $nb_users,
|
||||
'users' => $users,
|
||||
'menu' => 'users',
|
||||
'title' => t('Users').' ('.$nb_users.')',
|
||||
'pagination' => array(
|
||||
'controller' => 'user',
|
||||
|
|
@ -157,10 +157,10 @@ class User extends Base
|
|||
public function create()
|
||||
{
|
||||
$this->response->html($this->template->layout('user_new', array(
|
||||
'board_selector' => $this->projectPermission->getAllowedProjects($this->acl->getUserId()),
|
||||
'projects' => $this->project->getList(),
|
||||
'errors' => array(),
|
||||
'values' => array(),
|
||||
'menu' => 'users',
|
||||
'title' => t('New user')
|
||||
)));
|
||||
}
|
||||
|
|
@ -187,10 +187,10 @@ class User extends Base
|
|||
}
|
||||
|
||||
$this->response->html($this->template->layout('user_new', array(
|
||||
'board_selector' => $this->projectPermission->getAllowedProjects($this->acl->getUserId()),
|
||||
'projects' => $this->project->getList(),
|
||||
'errors' => $errors,
|
||||
'values' => $values,
|
||||
'menu' => 'users',
|
||||
'title' => t('New user')
|
||||
)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => 'Kompleksitet',
|
||||
'limit' => 'Begrænsning',
|
||||
'Task limit' => 'Opgave begrænsning',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => 'Denne værdi skal være større end %d',
|
||||
'Edit project access list' => 'Rediger adgangstilladelser for projektet',
|
||||
'Edit users access' => 'Rediger brugertilladelser',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
// 'Help on Github webhook' => '',
|
||||
// 'Create a comment from an external provider' => '',
|
||||
// 'Github issue comment created' => '',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => 'Komplexität',
|
||||
'limit' => 'Limit',
|
||||
'Task limit' => 'Maximale Anzahl von Aufgaben',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => 'Dieser Wert muss größer sein als %d',
|
||||
'Edit project access list' => 'Zugriffsberechtigungen des Projektes bearbeiten',
|
||||
'Edit users access' => 'Benutzerzugriff ändern',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
'Help on Github webhook' => 'Hilfe bei einem Github Webhook',
|
||||
'Create a comment from an external provider' => 'Kommentar eines externen Providers hinzufügen',
|
||||
'Github issue comment created' => 'Github Fehler Kommentar hinzugefügt',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => 'Complejidad',
|
||||
'limit' => 'límite',
|
||||
'Task limit' => 'Número máximo de tareas',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => 'Este valor no debe de ser más grande que %d',
|
||||
'Edit project access list' => 'Editar los permisos del proyecto',
|
||||
'Edit users access' => 'Editar los permisos de usuario',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
// 'Help on Github webhook' => '',
|
||||
// 'Create a comment from an external provider' => '',
|
||||
// 'Github issue comment created' => '',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => 'Monimutkaisuus',
|
||||
'limit' => 'raja',
|
||||
'Task limit' => 'Tehtävien maksimimäärä',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => 'Arvon täytyy olla suurempi kuin %d',
|
||||
'Edit project access list' => 'Muuta projektin käyttäjiä',
|
||||
'Edit users access' => 'Muuta käyttäjien pääsyä',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
// 'Help on Github webhook' => '',
|
||||
// 'Create a comment from an external provider' => '',
|
||||
// 'Github issue comment created' => '',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => 'Complexité',
|
||||
'limit' => 'limite',
|
||||
'Task limit' => 'Nombre maximum de tâches',
|
||||
'Task count' => 'Nombre de tâches',
|
||||
'This value must be greater than %d' => 'Cette valeur doit être plus grande que %d',
|
||||
'Edit project access list' => 'Modifier l\'accès au projet',
|
||||
'Edit users access' => 'Modifier les utilisateurs autorisés',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
'Help on Github webhook' => 'Aide sur les webhooks Github',
|
||||
'Create a comment from an external provider' => 'Créer un commentaire depuis un fournisseur externe',
|
||||
'Github issue comment created' => 'Commentaire créé sur un ticket Github',
|
||||
'Configure' => 'Configurer',
|
||||
'Project management' => 'Gestion des projets',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
// 'Complexity' => '',
|
||||
'limit' => 'limite',
|
||||
'Task limit' => 'Numero massimo di compiti',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => 'questo valore deve essere maggiore di %d',
|
||||
'Edit project access list' => 'Modificare i permessi del progetto',
|
||||
'Edit users access' => 'Modificare i permessi degli utenti',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
// 'Help on Github webhook' => '',
|
||||
// 'Create a comment from an external provider' => '',
|
||||
// 'Github issue comment created' => '',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => '複雑さ',
|
||||
'limit' => '制限',
|
||||
'Task limit' => 'タスク数制限',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => '%d より大きな値を入力してください',
|
||||
'Edit project access list' => 'プロジェクトのアクセス許可を変更',
|
||||
'Edit users access' => 'ユーザのアクセス許可を変更',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
// 'Help on Github webhook' => '',
|
||||
// 'Create a comment from an external provider' => '',
|
||||
// 'Github issue comment created' => '',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => 'Poziom trudności',
|
||||
'limit' => 'limit',
|
||||
'Task limit' => 'Limit zadań',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => 'Wartość musi być większa niż %d',
|
||||
'Edit project access list' => 'Edycja list dostępu dla projektu',
|
||||
'Edit users access' => 'Edytuj dostęp',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
// 'Help on Github webhook' => '',
|
||||
// 'Create a comment from an external provider' => '',
|
||||
// 'Github issue comment created' => '',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => 'Complexidade',
|
||||
'limit' => 'limite',
|
||||
'Task limit' => 'Limite da tarefa',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => 'Este valor deve ser maior que %d',
|
||||
'Edit project access list' => 'Editar lista de acesso ao projeto',
|
||||
'Edit users access' => 'Editar acesso de usuários',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
// 'Help on Github webhook' => '',
|
||||
// 'Create a comment from an external provider' => '',
|
||||
// 'Github issue comment created' => '',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => 'Сложность',
|
||||
'limit' => 'лимит',
|
||||
'Task limit' => 'Лимит задач',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => 'Это значение должно быть больше %d',
|
||||
'Edit project access list' => 'Изменить доступ к проекту',
|
||||
'Edit users access' => 'Изменить доступ пользователей',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
// 'Help on Github webhook' => '',
|
||||
// 'Create a comment from an external provider' => '',
|
||||
// 'Github issue comment created' => '',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => 'Ungefärligt antal timmar',
|
||||
'limit' => 'max',
|
||||
'Task limit' => 'Uppgiftsbegränsning',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => 'Värdet måste vara större än %d',
|
||||
'Edit project access list' => 'Ändra projektåtkomst lista',
|
||||
'Edit users access' => 'Användaråtkomst',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
// 'Help on Github webhook' => '',
|
||||
// 'Create a comment from an external provider' => '',
|
||||
// 'Github issue comment created' => '',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => 'ความซับซ้อน',
|
||||
'limit' => 'จำกัด',
|
||||
'Task limit' => 'จำกัดงาน',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => 'ค่าต้องมากกว่า %d',
|
||||
'Edit project access list' => 'แก้ไขการเข้าถึงรายชื่อโปรเจค',
|
||||
'Edit users access' => 'แก้ไขการเข้าถึงผู้ใช้',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
// 'Help on Github webhook' => '',
|
||||
// 'Create a comment from an external provider' => '',
|
||||
// 'Github issue comment created' => '',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ return array(
|
|||
'Complexity' => '复杂度',
|
||||
'limit' => '限制',
|
||||
'Task limit' => '任务限制',
|
||||
// 'Task count' => '',
|
||||
'This value must be greater than %d' => '该数值必须大于%d',
|
||||
'Edit project access list' => '编辑项目存取列表',
|
||||
'Edit users access' => '编辑用户存取权限',
|
||||
|
|
@ -558,4 +559,6 @@ return array(
|
|||
// 'Help on Github webhook' => '',
|
||||
// 'Create a comment from an external provider' => '',
|
||||
// 'Github issue comment created' => '',
|
||||
// 'Configure' => '',
|
||||
// 'Project management' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,16 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= t('Dashboard') ?></h2>
|
||||
<ul>
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<li><i class="fa fa-plus fa-fw"></i><?= Helper\a(t('New project'), 'project', 'create') ?></li>
|
||||
<?php endif ?>
|
||||
<li><i class="fa fa-lock fa-fw"></i><?= Helper\a(t('New private project'), 'project', 'create', array('private' => 1)) ?></li>
|
||||
<li><i class="fa fa-folder fa-fw"></i><?= Helper\a(t('Project management'), 'project', 'index') ?></li>
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<li><i class="fa fa-user fa-fw"></i><?= Helper\a(t('User management'), 'user', 'index') ?></li>
|
||||
<li><i class="fa fa-cog fa-fw"></i><?= Helper\a(t('Settings'), 'config', 'index') ?></li>
|
||||
<?php endif ?>
|
||||
</ul>
|
||||
</div>
|
||||
<section id="dashboard">
|
||||
<div class="dashboard-left-column">
|
||||
|
|
|
|||
|
|
@ -1,22 +1,12 @@
|
|||
<section id="main">
|
||||
|
||||
<div class="page-header board">
|
||||
<h2>
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<?= Helper\a('<i class="fa fa-cog"></i>', 'project', 'show', array('project_id' => $current_project_id)) ?>
|
||||
<?php endif ?>
|
||||
<?= t('Project "%s"', $current_project_name) ?>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="project-menu">
|
||||
<div class="page-header">
|
||||
<ul>
|
||||
<li>
|
||||
<span class="hide-tablet"><?= t('Filter by user') ?></span>
|
||||
<?= t('Filter by user') ?>
|
||||
<?= Helper\form_select('user_id', $users, $filters) ?>
|
||||
</li>
|
||||
<li>
|
||||
<span class="hide-tablet"><?= t('Filter by category') ?></span>
|
||||
<?= t('Filter by category') ?>
|
||||
<?= Helper\form_select('category_id', $categories, $filters) ?>
|
||||
</li>
|
||||
<li>
|
||||
|
|
@ -27,16 +17,16 @@
|
|||
<?= Helper\a(t('Search'), 'project', 'search', array('project_id' => $current_project_id)) ?>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-check-square-o"></i>
|
||||
<i class="fa fa-check-square-o fa-fw"></i>
|
||||
<?= Helper\a(t('Completed tasks'), 'project', 'tasks', array('project_id' => $current_project_id)) ?>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-dashboard"></i>
|
||||
<i class="fa fa-dashboard fa-fw"></i>
|
||||
<?= Helper\a(t('Activity'), 'project', 'activity', array('project_id' => $current_project_id)) ?>
|
||||
</li>
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<li><i class="fa fa-cog"></i>
|
||||
<?= Helper\a(t('Edit board'), 'board', 'edit', array('project_id' => $current_project_id)) ?>
|
||||
<li><i class="fa fa-cog fa-fw"></i>
|
||||
<?= Helper\a(t('Configure'), 'project', 'show', array('project_id' => $current_project_id)) ?>
|
||||
<?php endif ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
<table id="board" data-project-id="<?= $current_project_id ?>" data-time="<?= time() ?>" data-check-interval="<?= $board_private_refresh_interval ?>" data-csrf-token=<?= \Core\Security::getCSRFToken() ?>>
|
||||
<table id="board"
|
||||
data-project-id="<?= $current_project_id ?>"
|
||||
data-time="<?= time() ?>"
|
||||
data-check-interval="<?= $board_private_refresh_interval ?>"
|
||||
data-csrf-token=<?= \Core\Security::getCSRFToken() ?>>
|
||||
<tr>
|
||||
<?php $column_with = round(100 / count($board), 2); ?>
|
||||
<?php foreach ($board as $column): ?>
|
||||
<th width="<?= $column_with ?>%">
|
||||
<div class="board-add-icon">
|
||||
<a href="?controller=task&action=create&project_id=<?= $column['project_id'] ?>&column_id=<?= $column['id'] ?>" title="<?= t('Add a new task') ?>">+</a>
|
||||
<?= Helper\a('+', 'task', 'create', array('project_id' => $column['project_id'], 'column_id' => $column['id']), false, '', t('Add a new task')) ?>
|
||||
</div>
|
||||
<?= Helper\escape($column['title']) ?>
|
||||
<?php if ($column['task_limit']): ?>
|
||||
<span title="<?= t('Task limit') ?>" class="task-limit">
|
||||
(
|
||||
<span id="task-number-column-<?= $column['id'] ?>"><?= count($column['tasks']) ?></span>
|
||||
/
|
||||
<?= Helper\escape($column['task_limit']) ?>
|
||||
)
|
||||
(<span id="task-number-column-<?= $column['id'] ?>"><?= count($column['tasks']) ?></span>/<?= Helper\escape($column['task_limit']) ?>)
|
||||
</span>
|
||||
<?php else: ?>
|
||||
<span title="<?= t('Task count') ?>" class="task-count">
|
||||
|
|
|
|||
|
|
@ -1,12 +1,9 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= t('Settings') ?></h2>
|
||||
</div>
|
||||
<section class="config-show" id="config-section">
|
||||
<section class="sidebar-container" id="config-section">
|
||||
|
||||
<?= Helper\template('config_sidebar') ?>
|
||||
|
||||
<div class="config-show-main">
|
||||
<div class="sidebar-content">
|
||||
<?= $config_content_for_layout ?>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -1,22 +1,20 @@
|
|||
<div class="config-show-sidebar">
|
||||
<div class="sidebar">
|
||||
<h2><?= t('Actions') ?></h2>
|
||||
<div class="config-show-actions">
|
||||
<ul>
|
||||
<li>
|
||||
<?= Helper\a(t('About'), 'config', 'index') ?>
|
||||
</li>
|
||||
<li>
|
||||
<?= Helper\a(t('Application settings'), 'config', 'application') ?>
|
||||
</li>
|
||||
<li>
|
||||
<?= Helper\a(t('Board settings'), 'config', 'board') ?>
|
||||
</li>
|
||||
<li>
|
||||
<?= Helper\a(t('Webhooks'), 'config', 'webhook') ?>
|
||||
</li>
|
||||
<li>
|
||||
<?= Helper\a(t('API'), 'config', 'api') ?>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul>
|
||||
<li>
|
||||
<?= Helper\a(t('About'), 'config', 'index') ?>
|
||||
</li>
|
||||
<li>
|
||||
<?= Helper\a(t('Application settings'), 'config', 'application') ?>
|
||||
</li>
|
||||
<li>
|
||||
<?= Helper\a(t('Board settings'), 'config', 'board') ?>
|
||||
</li>
|
||||
<li>
|
||||
<?= Helper\a(t('Webhooks'), 'config', 'webhook') ?>
|
||||
</li>
|
||||
<li>
|
||||
<?= Helper\a(t('API'), 'config', 'api') ?>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -7,21 +7,14 @@
|
|||
<meta name="robots" content="noindex,nofollow">
|
||||
|
||||
<?php if (isset($board_public_refresh_interval)): ?>
|
||||
<meta http-equiv="refresh" content="<?= $board_public_refresh_interval ?>" >
|
||||
<meta http-equiv="refresh" content="<?= $board_public_refresh_interval ?>">
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (! isset($not_editable)): ?>
|
||||
<?= Helper\js('assets/js/jquery-1.11.1.min.js') ?>
|
||||
<?= Helper\js('assets/js/jquery-ui-1.10.4.custom.min.js') ?>
|
||||
<?= Helper\js('assets/js/jquery.ui.touch-punch.min.js') ?>
|
||||
<?= Helper\js('assets/js/chosen.jquery.min.js') ?>
|
||||
<?= Helper\js('assets/js/app.js') ?>
|
||||
<?php endif ?>
|
||||
|
||||
<?= Helper\css('assets/css/app.css') ?>
|
||||
<?= Helper\css('assets/css/font-awesome.min.css') ?>
|
||||
<?= Helper\css('assets/css/jquery-ui-1.10.4.custom.css'); ?>
|
||||
<?= Helper\css('assets/css/chosen.min.css'); ?>
|
||||
|
||||
<link rel="icon" type="image/png" href="assets/img/favicon.png">
|
||||
<link rel="apple-touch-icon" href="assets/img/touch-icon-iphone.png">
|
||||
|
|
@ -29,7 +22,7 @@
|
|||
<link rel="apple-touch-icon" sizes="114x114" href="assets/img/touch-icon-iphone-retina.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="assets/img/touch-icon-ipad-retina.png">
|
||||
|
||||
<title><?= isset($title) ? Helper\escape($title).' - Kanboard' : 'Kanboard' ?></title>
|
||||
<title><?= isset($title) ? Helper\escape($title) : 'Kanboard' ?></title>
|
||||
</head>
|
||||
<body>
|
||||
<?php if (isset($no_layout) && $no_layout): ?>
|
||||
|
|
@ -37,8 +30,7 @@
|
|||
<?php else: ?>
|
||||
<header>
|
||||
<nav>
|
||||
<a class="logo" href="?">kanboard</a>
|
||||
|
||||
<h1><?= Helper\a('<i class="fa fa-home fa-fw"></i>', 'app', 'index', array(), false, 'home-link', t('Dashboard')).' '.Helper\summary(Helper\escape($title)) ?></h1>
|
||||
<ul>
|
||||
<?php if (isset($board_selector) && ! empty($board_selector)): ?>
|
||||
<li>
|
||||
|
|
@ -50,26 +42,9 @@
|
|||
</select>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
<li <?= isset($menu) && $menu === 'dashboard' ? 'class="active"' : '' ?>>
|
||||
<a href="?controller=app"><?= t('Dashboard') ?></a>
|
||||
</li>
|
||||
<li <?= isset($menu) && $menu === 'boards' ? 'class="active"' : '' ?>>
|
||||
<a href="?controller=board"><?= t('Boards') ?></a>
|
||||
</li>
|
||||
<li <?= isset($menu) && $menu === 'projects' ? 'class="active"' : '' ?>>
|
||||
<a href="?controller=project"><?= t('Projects') ?></a>
|
||||
</li>
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<li <?= isset($menu) && $menu === 'users' ? 'class="active"' : '' ?>>
|
||||
<a href="?controller=user"><?= t('Users') ?></a>
|
||||
</li>
|
||||
<li class="hide-tablet <?= isset($menu) && $menu === 'config' ? 'active' : '' ?>">
|
||||
<a href="?controller=config"><?= t('Settings') ?></a>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
<li>
|
||||
<a href="?controller=user&action=logout<?= Helper\param_csrf() ?>"><?= t('Logout') ?></a>
|
||||
<span class="username">(<a href="?controller=user&action=show&user_id=<?= Helper\get_user_id() ?>"><?= Helper\escape(Helper\get_username()) ?></a>)</span>
|
||||
<?= Helper\a(t('Logout'), 'user', 'logout', array(), true) ?>
|
||||
<span class="username">(<?= Helper\a(Helper\escape(Helper\get_username()), 'user', 'show', array('user_id' => Helper\get_user_id())) ?>)</span>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= t('%s\'s activity', $project['name']) ?></h2>
|
||||
<ul>
|
||||
<li><?= Helper\a(t('Back to the board'), 'board', 'show', array('project_id' => $project['id'])) ?></li>
|
||||
<li><?= Helper\a(t('Search'), 'project', 'search', array('project_id' => $project['id'])) ?></li>
|
||||
<li><?= Helper\a(t('Completed tasks'), 'project', 'tasks', array('project_id' => $project['id'])) ?></li>
|
||||
<li><?= Helper\a(t('List of projects'), 'project', 'index') ?></li>
|
||||
<li><i class="fa fa-table fa-fw"></i><?= Helper\a(t('Back to the board'), 'board', 'show', array('project_id' => $project['id'])) ?></li>
|
||||
<li><i class="fa fa-search fa-fw"></i><?= Helper\a(t('Search'), 'project', 'search', array('project_id' => $project['id'])) ?></li>
|
||||
<li><i class="fa fa-check-square-o fa-fw"></i><?= Helper\a(t('Completed tasks'), 'project', 'tasks', array('project_id' => $project['id'])) ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<section>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= t('Projects') ?><span id="page-counter"> (<?= $nb_projects ?>)</span></h2>
|
||||
<ul>
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<li><?= Helper\a(t('New project'), 'project', 'create') ?></li>
|
||||
<li><i class="fa fa-plus fa-fw"></i><?= Helper\a(t('New project'), 'project', 'create') ?></li>
|
||||
<?php endif ?>
|
||||
<li><?= Helper\a(t('New private project'), 'project', 'create', array('private' => 1)) ?></li>
|
||||
<li><i class="fa fa-lock fa-fw"></i><?= Helper\a(t('New private project'), 'project', 'create', array('private' => 1)) ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<section>
|
||||
|
|
|
|||
|
|
@ -1,16 +1,15 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= t('Project "%s"', $project['name']) ?> (#<?= $project['id'] ?>)</h2>
|
||||
<ul>
|
||||
<li><?= Helper\a(t('Back to the board'), 'board', 'show', array('project_id' => $project['id'])) ?></li>
|
||||
<li><?= Helper\a(t('All projects'), 'project', 'index') ?></li>
|
||||
<li><i class="fa fa-table fa-fw"></i><?= Helper\a(t('Back to the board'), 'board', 'show', array('project_id' => $project['id'])) ?></li>
|
||||
<li><i class="fa fa-folder fa-fw"></i><?= Helper\a(t('All projects'), 'project', 'index') ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<section class="project-show" id="project-section">
|
||||
<section class="sidebar-container" id="project-section">
|
||||
|
||||
<?= Helper\template('project_sidebar', array('project' => $project)) ?>
|
||||
|
||||
<div class="project-show-main">
|
||||
<div class="sidebar-content">
|
||||
<?= $project_content_for_layout ?>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= empty($values['is_private']) ? t('New project') : t('New private project') ?></h2>
|
||||
<ul>
|
||||
<li><?= Helper\a(t('All projects'), 'project', 'index') ?></li>
|
||||
<li><i class="fa fa-folder fa-fw"></i><?= Helper\a(t('All projects'), 'project', 'index') ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<section>
|
||||
|
|
|
|||
|
|
@ -1,16 +1,9 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2>
|
||||
<?= t('Search in the project "%s"', $project['name']) ?>
|
||||
<?php if (! empty($nb_tasks)): ?>
|
||||
<span id="page-counter"> (<?= $nb_tasks ?>)</span>
|
||||
<?php endif ?>
|
||||
</h2>
|
||||
<ul>
|
||||
<li><?= Helper\a(t('Back to the board'), 'board', 'show', array('project_id' => $project['id'])) ?></li>
|
||||
<li><?= Helper\a(t('Completed tasks'), 'project', 'tasks', array('project_id' => $project['id'])) ?></li>
|
||||
<li><?= Helper\a(t('Activity'), 'project', 'activity', array('project_id' => $project['id'])) ?></li>
|
||||
<li><?= Helper\a(t('List of projects'), 'project', 'index') ?></li>
|
||||
<li><i class="fa fa-table fa-fw"></i><?= Helper\a(t('Back to the board'), 'board', 'show', array('project_id' => $project['id'])) ?></li>
|
||||
<li><i class="fa fa-check-square-o fa-fw"></i><?= Helper\a(t('Completed tasks'), 'project', 'tasks', array('project_id' => $project['id'])) ?></li>
|
||||
<li><i class="fa fa-dashboard fa-fw"></i><?= Helper\a(t('Activity'), 'project', 'activity', array('project_id' => $project['id'])) ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<section>
|
||||
|
|
|
|||
|
|
@ -1,49 +1,47 @@
|
|||
<div class="project-show-sidebar">
|
||||
<div class="sidebar">
|
||||
<h2><?= t('Actions') ?></h2>
|
||||
<div class="project-show-actions">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="?controller=project&action=show&project_id=<?= $project['id'] ?>"><?= t('Summary') ?></a>
|
||||
</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="?controller=project&action=show&project_id=<?= $project['id'] ?>"><?= t('Summary') ?></a>
|
||||
</li>
|
||||
|
||||
<?php if (Helper\is_admin() || $project['is_private']): ?>
|
||||
<?php if (Helper\is_admin() || $project['is_private']): ?>
|
||||
<li>
|
||||
<a href="?controller=project&action=export&project_id=<?= $project['id'] ?>"><?= t('Tasks Export') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=project&action=share&project_id=<?= $project['id'] ?>"><?= t('Public access') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=project&action=edit&project_id=<?= $project['id'] ?>"><?= t('Edit project') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=board&action=edit&project_id=<?= $project['id'] ?>"><?= t('Edit board') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=category&action=index&project_id=<?= $project['id'] ?>"><?= t('Category management') ?></a>
|
||||
</li>
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<li>
|
||||
<a href="?controller=project&action=export&project_id=<?= $project['id'] ?>"><?= t('Tasks Export') ?></a>
|
||||
<a href="?controller=project&action=users&project_id=<?= $project['id'] ?>"><?= t('User management') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=project&action=share&project_id=<?= $project['id'] ?>"><?= t('Public access') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=project&action=edit&project_id=<?= $project['id'] ?>"><?= t('Edit project') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=board&action=edit&project_id=<?= $project['id'] ?>"><?= t('Edit board') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=category&action=index&project_id=<?= $project['id'] ?>"><?= t('Category management') ?></a>
|
||||
</li>
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<li>
|
||||
<a href="?controller=project&action=users&project_id=<?= $project['id'] ?>"><?= t('User management') ?></a>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
<li>
|
||||
<a href="?controller=action&action=index&project_id=<?= $project['id'] ?>"><?= t('Automatic actions') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=project&action=duplicate&project_id=<?= $project['id'].Helper\param_csrf() ?>"><?= t('Duplicate') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<?php if ($project['is_active']): ?>
|
||||
<a href="?controller=project&action=disable&project_id=<?= $project['id'].Helper\param_csrf() ?>"><?= t('Disable') ?></a>
|
||||
<?php else: ?>
|
||||
<a href="?controller=project&action=enable&project_id=<?= $project['id'].Helper\param_csrf() ?>"><?= t('Enable') ?></a>
|
||||
<?php endif ?>
|
||||
<li>
|
||||
<a href="?controller=action&action=index&project_id=<?= $project['id'] ?>"><?= t('Automatic actions') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=project&action=duplicate&project_id=<?= $project['id'].Helper\param_csrf() ?>"><?= t('Duplicate') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<?php if ($project['is_active']): ?>
|
||||
<a href="?controller=project&action=disable&project_id=<?= $project['id'].Helper\param_csrf() ?>"><?= t('Disable') ?></a>
|
||||
<?php else: ?>
|
||||
<a href="?controller=project&action=enable&project_id=<?= $project['id'].Helper\param_csrf() ?>"><?= t('Enable') ?></a>
|
||||
<?php endif ?>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=project&action=remove&project_id=<?= $project['id'] ?>"><?= t('Remove') ?></a>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=project&action=remove&project_id=<?= $project['id'] ?>"><?= t('Remove') ?></a>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -1,11 +1,9 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= t('Completed tasks for "%s"', $project['name']) ?><span id="page-counter"> (<?= $nb_tasks ?>)</span></h2>
|
||||
<ul>
|
||||
<li><a href="?controller=board&action=show&project_id=<?= $project['id'] ?>"><?= t('Back to the board') ?></a></li>
|
||||
<li><a href="?controller=project&action=search&project_id=<?= $project['id'] ?>"><?= t('Search') ?></a></li>
|
||||
<li><a href="?controller=project&action=activity&project_id=<?= $project['id'] ?>"><?= t('Activity') ?></a></li>
|
||||
<li><a href="?controller=project&action=index"><?= t('List of projects') ?></a></li>
|
||||
<li><i class="fa fa-table fa-fw"></i><?= Helper\a(t('Back to the board'), 'board', 'show', array('project_id' => $project['id'])) ?></li>
|
||||
<li><i class="fa fa-search fa-fw"></i><?= Helper\a(t('Search'), 'project', 'search', array('project_id' => $project['id'])) ?></li>
|
||||
<li><i class="fa fa-dashboard fa-fw"></i><?= Helper\a(t('Activity'), 'project', 'activity', array('project_id' => $project['id'])) ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<section>
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= Helper\escape($task['project_name']) ?> > <?= t('Task #%d', $task['id']) ?></h2>
|
||||
<ul>
|
||||
<li><a href="?controller=board&action=show&project_id=<?= $task['project_id'] ?>"><?= t('Back to the board') ?></a></li>
|
||||
<li><i class="fa fa-table fa-fw"></i><?= Helper\a(t('Back to the board'), 'board', 'show', array('project_id' => $task['project_id'])) ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<section class="task-show" id="task-section">
|
||||
<section class="sidebar-container" id="task-section">
|
||||
|
||||
<?= Helper\template('task_sidebar', array('task' => $task, 'hide_remove_menu' => isset($hide_remove_menu))) ?>
|
||||
|
||||
<div class="task-show-main">
|
||||
<div class="sidebar-content">
|
||||
<?= $task_content_for_layout ?>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= Helper\in_list($values['project_id'], $projects_list) ?> > <?= t('New task') ?></h2>
|
||||
<ul>
|
||||
<li><i class="fa fa-table fa-fw"></i><?= Helper\a(t('Back to the board'), 'board', 'show', array('project_id' => $values['project_id'])) ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<section id="task-section">
|
||||
<form method="post" action="<?= Helper\u('task', 'save') ?>" autocomplete="off">
|
||||
<form method="post" action="<?= Helper\u('task', 'save', array('project_id' => $values['project_id'])) ?>" autocomplete="off">
|
||||
|
||||
<?= Helper\form_csrf() ?>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,26 +1,24 @@
|
|||
<div class="task-show-sidebar">
|
||||
<div class="sidebar">
|
||||
<h2><?= t('Actions') ?></h2>
|
||||
<div class="task-show-actions">
|
||||
<ul>
|
||||
<li><a href="?controller=task&action=show&task_id=<?= $task['id'] ?>"><?= t('Summary') ?></a></li>
|
||||
<li><a href="?controller=task&action=edit&task_id=<?= $task['id'] ?>"><?= t('Edit the task') ?></a></li>
|
||||
<li><a href="?controller=task&action=description&task_id=<?= $task['id'] ?>"><?= t('Edit the description') ?></a></li>
|
||||
<li><a href="?controller=subtask&action=create&task_id=<?= $task['id'] ?>"><?= t('Add a sub-task') ?></a></li>
|
||||
<li><a href="?controller=comment&action=create&task_id=<?= $task['id'] ?>"><?= t('Add a comment') ?></a></li>
|
||||
<li><a href="?controller=file&action=create&task_id=<?= $task['id'] ?>"><?= t('Attach a document') ?></a></li>
|
||||
<li><a href="?controller=task&action=duplicate&project_id=<?= $task['project_id'] ?>&task_id=<?= $task['id'] ?>"><?= t('Duplicate') ?></a></li>
|
||||
<li><a href="?controller=task&action=copy&project_id=<?= $task['project_id'] ?>&task_id=<?= $task['id'] ?>"><?= t('Duplicate to another project') ?></a></li>
|
||||
<li><a href="?controller=task&action=move&project_id=<?= $task['project_id'] ?>&task_id=<?= $task['id'] ?>"><?= t('Move to another project') ?></a></li>
|
||||
<li>
|
||||
<?php if ($task['is_active'] == 1): ?>
|
||||
<a href="?controller=task&action=close&task_id=<?= $task['id'] ?>"><?= t('Close this task') ?></a>
|
||||
<?php else: ?>
|
||||
<a href="?controller=task&action=open&task_id=<?= $task['id'] ?>"><?= t('Open this task') ?></a>
|
||||
<?php endif ?>
|
||||
</li>
|
||||
<?php if (! $hide_remove_menu): ?>
|
||||
<li><a href="?controller=task&action=remove&task_id=<?= $task['id'] ?>"><?= t('Remove') ?></a></li>
|
||||
<ul>
|
||||
<li><a href="?controller=task&action=show&task_id=<?= $task['id'] ?>"><?= t('Summary') ?></a></li>
|
||||
<li><a href="?controller=task&action=edit&task_id=<?= $task['id'] ?>"><?= t('Edit the task') ?></a></li>
|
||||
<li><a href="?controller=task&action=description&task_id=<?= $task['id'] ?>"><?= t('Edit the description') ?></a></li>
|
||||
<li><a href="?controller=subtask&action=create&task_id=<?= $task['id'] ?>"><?= t('Add a sub-task') ?></a></li>
|
||||
<li><a href="?controller=comment&action=create&task_id=<?= $task['id'] ?>"><?= t('Add a comment') ?></a></li>
|
||||
<li><a href="?controller=file&action=create&task_id=<?= $task['id'] ?>"><?= t('Attach a document') ?></a></li>
|
||||
<li><a href="?controller=task&action=duplicate&project_id=<?= $task['project_id'] ?>&task_id=<?= $task['id'] ?>"><?= t('Duplicate') ?></a></li>
|
||||
<li><a href="?controller=task&action=copy&project_id=<?= $task['project_id'] ?>&task_id=<?= $task['id'] ?>"><?= t('Duplicate to another project') ?></a></li>
|
||||
<li><a href="?controller=task&action=move&project_id=<?= $task['project_id'] ?>&task_id=<?= $task['id'] ?>"><?= t('Move to another project') ?></a></li>
|
||||
<li>
|
||||
<?php if ($task['is_active'] == 1): ?>
|
||||
<a href="?controller=task&action=close&task_id=<?= $task['id'] ?>"><?= t('Close this task') ?></a>
|
||||
<?php else: ?>
|
||||
<a href="?controller=task&action=open&task_id=<?= $task['id'] ?>"><?= t('Open this task') ?></a>
|
||||
<?php endif ?>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<?php if (! $hide_remove_menu): ?>
|
||||
<li><a href="?controller=task&action=remove&task_id=<?= $task['id'] ?>"><?= t('Remove') ?></a></li>
|
||||
<?php endif ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -1,9 +1,8 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= t('Users') ?><span id="page-counter"> (<?= $nb_users ?>)</span></h2>
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<ul>
|
||||
<li><?= Helper\a(t('New user'), 'user', 'create') ?></li>
|
||||
<li><i class="fa fa-plus fa-fw"></i><?= Helper\a(t('New user'), 'user', 'create') ?></li>
|
||||
</ul>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
|
|
@ -53,10 +52,10 @@
|
|||
<td>
|
||||
<ul class="no-bullet">
|
||||
<?php if ($user['google_id']): ?>
|
||||
<li><i class="fa fa-google"></i> <?= t('Google account linked') ?></li>
|
||||
<li><i class="fa fa-google fa-fw"></i><?= t('Google account linked') ?></li>
|
||||
<?php endif ?>
|
||||
<?php if ($user['github_id']): ?>
|
||||
<li><i class="fa fa-github"></i> <?= t('Github account linked') ?></li>
|
||||
<li><i class="fa fa-github fa-fw"></i><?= t('Github account linked') ?></li>
|
||||
<?php endif ?>
|
||||
</ul>
|
||||
</td>
|
||||
|
|
|
|||
|
|
@ -1,18 +1,17 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= Helper\escape($user['name'] ?: $user['username']).' (#'.$user['id'].')' ?></h2>
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<ul>
|
||||
<li><a href="?controller=user&action=index"><?= t('All users') ?></a></li>
|
||||
<li><a href="?controller=user&action=create"><?= t('New user') ?></a></li>
|
||||
<li><i class="fa fa-user fa-fw"></i><?= Helper\a(t('All users'), 'user', 'index') ?></li>
|
||||
<li><i class="fa fa-plus fa-fw"></i><?= Helper\a(t('New user'), 'user', 'create') ?></li>
|
||||
</ul>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
<section class="user-show" id="user-section">
|
||||
<section class="sidebar-container" id="user-section">
|
||||
|
||||
<?= Helper\template('user_sidebar', array('user' => $user)) ?>
|
||||
|
||||
<div class="user-show-main">
|
||||
<div class="sidebar-content">
|
||||
<?= $user_content_for_layout ?>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<h2><?= t('New user') ?></h2>
|
||||
<ul>
|
||||
<li><a href="?controller=user"><?= t('All users') ?></a></li>
|
||||
<li><i class="fa fa-user fa-fw"></i><?= Helper\a(t('All users'), 'user', 'index') ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<section>
|
||||
<form method="post" action="?controller=user&action=save" autocomplete="off">
|
||||
<form method="post" action="<?= Helper\u('user', 'save') ?>" autocomplete="off">
|
||||
|
||||
<?= Helper\form_csrf() ?>
|
||||
|
||||
|
|
@ -32,7 +31,7 @@
|
|||
|
||||
<div class="form-actions">
|
||||
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
|
||||
<?= t('or') ?> <a href="?controller=user"><?= t('cancel') ?></a>
|
||||
<?= t('or') ?> <?= Helper\a(t('cancel'), 'user', 'index') ?>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -1,42 +1,39 @@
|
|||
<div class="project-show-sidebar">
|
||||
<div class="sidebar">
|
||||
<h2><?= t('Actions') ?></h2>
|
||||
<div class="user-show-actions">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="?controller=user&action=show&user_id=<?= $user['id'] ?>"><?= t('Summary') ?></a>
|
||||
</li>
|
||||
<ul>
|
||||
<li>
|
||||
<?= Helper\a(t('Summary'), 'user', 'show', array('user_id' => $user['id'])) ?>
|
||||
</li>
|
||||
|
||||
<?php if (Helper\is_admin() || Helper\is_current_user($user['id'])): ?>
|
||||
<?php if (Helper\is_admin() || Helper\is_current_user($user['id'])): ?>
|
||||
<li>
|
||||
<a href="?controller=user&action=edit&user_id=<?= $user['id'] ?>"><?= t('Edit profile') ?></a>
|
||||
<?= Helper\a(t('Edit profile'), 'user', 'edit', array('user_id' => $user['id'])) ?>
|
||||
</li>
|
||||
|
||||
<?php if ($user['is_ldap_user'] == 0): ?>
|
||||
<li>
|
||||
<a href="?controller=user&action=password&user_id=<?= $user['id'] ?>"><?= t('Change password') ?></a>
|
||||
</li>
|
||||
<li>
|
||||
<?= Helper\a(t('Change password'), 'user', 'password', array('user_id' => $user['id'])) ?>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
|
||||
<li>
|
||||
<a href="?controller=user&action=notifications&user_id=<?= $user['id'] ?>"><?= t('Email notifications') ?></a>
|
||||
<?= Helper\a(t('Email notifications'), 'user', 'notifications', array('user_id' => $user['id'])) ?>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=user&action=external&user_id=<?= $user['id'] ?>"><?= t('External accounts') ?></a>
|
||||
<?= Helper\a(t('External accounts'), 'user', 'external', array('user_id' => $user['id'])) ?>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=user&action=last&user_id=<?= $user['id'] ?>"><?= t('Last logins') ?></a>
|
||||
<?= Helper\a(t('Last logins'), 'user', 'last', array('user_id' => $user['id'])) ?>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?controller=user&action=sessions&user_id=<?= $user['id'] ?>"><?= t('Persistent connections') ?></a>
|
||||
<?= Helper\a(t('Persistent connections'), 'user', 'sessions', array('user_id' => $user['id'])) ?>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<?php if (Helper\is_admin()): ?>
|
||||
<li>
|
||||
<a href="?controller=user&action=remove&user_id=<?= $user['id'] ?>"><?= t('Remove') ?></a>
|
||||
<?= Helper\a(t('Remove'), 'user', 'remove', array('user_id' => $user['id'])) ?>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -6,7 +6,6 @@ namespace Helper;
|
|||
* Template helpers
|
||||
*
|
||||
*/
|
||||
|
||||
use Core\Security;
|
||||
use Core\Template;
|
||||
use Core\Tool;
|
||||
|
|
@ -568,9 +567,9 @@ function form_numeric($name, $values = array(), array $errors = array(), array $
|
|||
* @param string $class CSS class attribute
|
||||
* @return string
|
||||
*/
|
||||
function a($label, $controller, $action, array $params = array(), $csrf = false, $class = '')
|
||||
function a($label, $controller, $action, array $params = array(), $csrf = false, $class = '', $title = '')
|
||||
{
|
||||
return '<a href="'.u($controller, $action, $params, $csrf).'" class="'.$class.'">'.$label.'</a>';
|
||||
return '<a href="'.u($controller, $action, $params, $csrf).'" class="'.$class.'" title="'.$title.'">'.$label.'</a>';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
/* activity */
|
||||
.activity-event {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.activity-datetime {
|
||||
color: #999;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.activity-content {
|
||||
margin-top: 10px;
|
||||
margin-left: 20px;
|
||||
padding-left: 20px;
|
||||
border-left: 2px solid #666;
|
||||
}
|
||||
|
||||
.activity-title {
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.activity-description {
|
||||
font-size: 0.9em;
|
||||
color: #aaa;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.activity-description ul {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.activity-description li {
|
||||
margin-left: 40px;
|
||||
list-style-type: circle;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.activity-description .markdown {
|
||||
margin-top: 10px;
|
||||
color: #555;
|
||||
}
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
/* alerts */
|
||||
.alert {
|
||||
padding: 8px 35px 8px 14px;
|
||||
margin-bottom: 20px;
|
||||
color: #c09853;
|
||||
background-color: #fcf8e3;
|
||||
border: 1px solid #fbeed5;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.alert-success {
|
||||
color: #468847;
|
||||
background-color: #dff0d8;
|
||||
border-color: #d6e9c6;
|
||||
}
|
||||
|
||||
.alert-error {
|
||||
color: #b94a48;
|
||||
background-color: #f2dede;
|
||||
border-color: #eed3d7;
|
||||
}
|
||||
|
||||
.alert-info {
|
||||
color: #3a87ad;
|
||||
background-color: #d9edf7;
|
||||
border-color: #bce8f1;
|
||||
}
|
||||
|
||||
.alert-normal {
|
||||
color: #333;
|
||||
background-color: #f0f0f0;
|
||||
border-color: #ddd;
|
||||
}
|
||||
|
||||
.alert ul {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.alert li {
|
||||
margin-left: 25px;
|
||||
}
|
||||
|
||||
/* fade out animation */
|
||||
.alert-fade-out {
|
||||
animation: fadeOut 1s forwards;
|
||||
-webkit-animation: fadeOut 1s forwards;
|
||||
animation-delay: 7s;
|
||||
-webkit-animation-delay: 7s;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@-webkit-keyframes fadeOut {
|
||||
from {
|
||||
opacity: 1;
|
||||
}
|
||||
to {
|
||||
opacity: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeOut {
|
||||
from {
|
||||
opacity: 1;
|
||||
}
|
||||
to {
|
||||
opacity: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.page .alert {
|
||||
margin-top: 10px;
|
||||
}
|
||||
1291
assets/css/app.css
1291
assets/css/app.css
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,34 @@
|
|||
/* reset */
|
||||
li,
|
||||
ul,
|
||||
ol,
|
||||
table,
|
||||
tr,
|
||||
td,
|
||||
th,
|
||||
p,
|
||||
blockquote,
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
color: #333;
|
||||
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
}
|
||||
|
||||
ul.no-bullet li {
|
||||
list-style-type: none;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.pull-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
/* board filters */
|
||||
a.filter-on {
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
/* public board */
|
||||
.public-board {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.public-task {
|
||||
max-width: 700px;
|
||||
margin: 0 auto;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
/* board table */
|
||||
#board {
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
#board th a {
|
||||
text-decoration: none;
|
||||
color: #3366CC;
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
#board td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
#board td.task-limit-warning {
|
||||
background-color: #DF5353;
|
||||
}
|
||||
|
||||
.board-add-icon {
|
||||
float: left;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
.board-add-icon a {
|
||||
line-height: 70%;
|
||||
}
|
||||
|
||||
.task-count {
|
||||
color: #999;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* drag and drop */
|
||||
.draggable-item {
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.draggable-placeholder {
|
||||
border: 2px dashed #000;
|
||||
background: #fafafa;
|
||||
height: 70px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
/* buttons */
|
||||
.btn {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
display: inline-block;
|
||||
color: #333;
|
||||
border: 1px solid #ccc;
|
||||
background: #efefef;
|
||||
padding: 5px;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
font-size: 0.9em;
|
||||
cursor: pointer;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
a.btn {
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.btn-small {
|
||||
padding: 2px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.btn-red {
|
||||
border-color: #b0281a;;
|
||||
background: #d14836;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a.btn-red:hover,
|
||||
.btn-red:hover,
|
||||
.btn-red:focus {
|
||||
color: #fff;
|
||||
background: #c53727;
|
||||
}
|
||||
|
||||
a.btn-blue,
|
||||
.btn-blue {
|
||||
border-color: #3079ed;
|
||||
background: #4d90fe;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a.btn-blue:hover,
|
||||
.btn-blue:hover,
|
||||
a.btn-blue:focus,
|
||||
.btn-blue:focus {
|
||||
border-color: #2f5bb7;
|
||||
background: #357ae8;
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
/* comments */
|
||||
.comment {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.comment:hover {
|
||||
background: #F7F8E0;
|
||||
}
|
||||
|
||||
.comment-inner {
|
||||
border-left: 4px solid #333;
|
||||
padding-bottom: 10px;
|
||||
padding-left: 20px;
|
||||
margin-left: 20px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.comment-preview {
|
||||
border: 2px solid #000;
|
||||
border-radius: 3px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.comment-preview .comment-inner {
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.comment-title {
|
||||
margin-bottom: 8px;
|
||||
padding-bottom: 3px;
|
||||
border-bottom: 1px dotted #aaa;
|
||||
}
|
||||
|
||||
.comment-actions {
|
||||
font-size: 0.8em;
|
||||
padding: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.comment-actions li {
|
||||
display: inline;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
border-right: 1px dotted #000;
|
||||
}
|
||||
|
||||
.comment-actions li:last-child {
|
||||
padding-right: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.comment-username {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.comment-textarea {
|
||||
height: 200px;
|
||||
width: 80%;
|
||||
max-width: 800px;
|
||||
}
|
||||
|
||||
#comments .comment-textarea {
|
||||
height: 80px;
|
||||
width: 500px;
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
/* confirmation box */
|
||||
.confirm {
|
||||
max-width: 700px;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/* dashboard */
|
||||
#dashboard table {
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
.dashboard-left-column {
|
||||
width: 55%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.dashboard-right-column {
|
||||
margin-left: 5%;
|
||||
width: 40%;
|
||||
float: left;
|
||||
}
|
||||
|
|
@ -0,0 +1,166 @@
|
|||
/* forms */
|
||||
form {
|
||||
padding: 10px;
|
||||
margin-bottom: 20px;
|
||||
background: #fefefe;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
label {
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
input[type="number"],
|
||||
input[type="date"],
|
||||
input[type="email"],
|
||||
input[type="tel"],
|
||||
input[type="password"],
|
||||
input[type="text"] {
|
||||
color: #888;
|
||||
border: 1px solid #ccc;
|
||||
width: 400px;
|
||||
max-width: 95%;
|
||||
font-size: 1.0em;
|
||||
height: 25px;
|
||||
padding-bottom: 0;
|
||||
font-family: sans-serif;
|
||||
margin-top: 5px;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
input[type="number"]:focus,
|
||||
input[type="date"]:focus,
|
||||
input[type="email"]:focus,
|
||||
input[type="tel"]:focus,
|
||||
input[type="password"]:focus,
|
||||
input[type="text"]:focus,
|
||||
textarea:focus {
|
||||
color: #000;
|
||||
border-color: rgba(82, 168, 236, 0.8);
|
||||
outline: 0;
|
||||
box-shadow: 0 0 8px rgba(82, 168, 236, 0.6);
|
||||
}
|
||||
|
||||
input.form-numeric,
|
||||
input[type="number"] {
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
textarea {
|
||||
border: 1px solid #ccc;
|
||||
width: 400px;
|
||||
max-width: 95%;
|
||||
height: 200px;
|
||||
font-size: 1.0em;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
select {
|
||||
max-width: 95%;
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
color: #ddd;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
::-ms-input-placeholder {
|
||||
color: #ddd;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
::-moz-placeholder {
|
||||
color: #ddd;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
.form-actions {
|
||||
clear: both;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
input.form-error,
|
||||
textarea.form-error {
|
||||
border: 2px solid #b94a48;
|
||||
}
|
||||
|
||||
.form-required {
|
||||
color: red;
|
||||
padding-left: 5px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.form-errors {
|
||||
color: #b94a48;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
ul.form-errors li {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.form-help {
|
||||
font-size: 0.8em;
|
||||
color: brown;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.form-inline {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.form-inline label {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.form-inline input,
|
||||
.form-inline select {
|
||||
margin: 0;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
input.form-date {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.form-row {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.form-column {
|
||||
float: left;
|
||||
margin-bottom: 60px;
|
||||
padding-right: 30px;
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
.form-column:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.form-column ul {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.form-login {
|
||||
width: 470px;
|
||||
padding: 10px;
|
||||
margin: 3% auto 20% auto;
|
||||
}
|
||||
|
||||
.form-column li,
|
||||
.form-login li {
|
||||
margin-left: 25px;
|
||||
line-height: 25px;
|
||||
}
|
||||
|
||||
.form-checkbox-group label {
|
||||
display: inline;
|
||||
}
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
/* header */
|
||||
header {
|
||||
margin-top: 10px;
|
||||
padding-bottom: 15px;
|
||||
clear: both;
|
||||
border-bottom: 1px solid #dedede;
|
||||
}
|
||||
|
||||
header h1 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
header ul {
|
||||
text-align: right;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
header li {
|
||||
display: inline;
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
header a {
|
||||
color: #777;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
nav .active a {
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* username */
|
||||
.username a {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.username a:hover {
|
||||
color: #DF5353;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* home icon */
|
||||
.home-link {
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.home-link:focus,
|
||||
.home-link:hover {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
/* page header */
|
||||
.page-header {
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
.page-header h2 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 140%;
|
||||
border-bottom: 1px dotted #DF5353;
|
||||
}
|
||||
|
||||
.page-header h2 a {
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
.page-header h2 a:focus,
|
||||
.page-header h2 a:hover {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.page-header ul {
|
||||
text-align: left;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.page-header li {
|
||||
display: inline;
|
||||
padding-right: 10px;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
/* links */
|
||||
a {
|
||||
color: #3366CC;
|
||||
border: none;
|
||||
}
|
||||
|
||||
a:focus {
|
||||
outline: 0;
|
||||
color: #DF5353;
|
||||
text-decoration: none;
|
||||
border: 1px dotted #aaa;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
/* listing block */
|
||||
.listing {
|
||||
border-radius: 4px;
|
||||
padding: 8px 35px 8px 14px;
|
||||
margin-bottom: 20px;
|
||||
border: 1px solid #ddd;
|
||||
color: #333;
|
||||
background-color: #fbfbfb;
|
||||
}
|
||||
|
||||
.listing li {
|
||||
list-style-type: square;
|
||||
margin-left: 20px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.listing ul {
|
||||
margin-top: 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
/* markdown content */
|
||||
.markdown {
|
||||
line-height: 1.4em;
|
||||
}
|
||||
|
||||
.markdown h1 {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 10px;
|
||||
font-size: 2em;
|
||||
padding-bottom: 3px;
|
||||
border-bottom: 1px dotted #000;
|
||||
}
|
||||
|
||||
.markdown h2 {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.markdown h3 {
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.markdown ol,
|
||||
.markdown ul {
|
||||
margin-left: 25px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.markdown pre {
|
||||
background: #fafafa;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid #ccc;
|
||||
overflow: auto;
|
||||
color: brown;
|
||||
}
|
||||
|
||||
.markdown blockquote {
|
||||
font-style: italic;
|
||||
border-left: 5px solid #ddd;
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
.markdown p {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
/* datepicker */
|
||||
#ui-datepicker-div {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
/* pagination */
|
||||
#pagination {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#pagination-next {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#pagination-previous {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
/* popover */
|
||||
#popover-container {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
|
||||
#popover-content {
|
||||
position: fixed;
|
||||
width: 70%;
|
||||
margin: 0 0 0 -35%;
|
||||
left: 50%;
|
||||
top: 5%;
|
||||
padding: 15px;
|
||||
background: #fff;
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
/* project view */
|
||||
.project-listing {
|
||||
max-width: 500px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
.project-listing li {
|
||||
font-weight: bold;
|
||||
padding: 10px;
|
||||
margin-top: 8px;
|
||||
display: block;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.project-listing li:hover {
|
||||
border-color: #ccc;
|
||||
background: #fcfcfc;
|
||||
box-shadow: 0 0 8px rgba(200, 200, 200, 0.6);
|
||||
}
|
||||
|
||||
.project-listing a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.project-listing a:hover,
|
||||
.project-listing a:focus {
|
||||
color: #000;
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
/* responsive design */
|
||||
@media only screen and (min-width : 768px) and (max-width : 1024px) {
|
||||
|
||||
.hide-tablet {
|
||||
display: none;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.project-menu {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
.task-board-title {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width : 768px) {
|
||||
|
||||
.hide-tablet {
|
||||
display: none;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.logo,
|
||||
.project-menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
nav li:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.username {
|
||||
display: block;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.user-show-sidebar,
|
||||
.project-show-sidebar,
|
||||
.task-show-sidebar {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.user-show-main,
|
||||
.project-show-main,
|
||||
.task-show-main {
|
||||
margin-left: 230px;
|
||||
}
|
||||
|
||||
table input[type="text"] {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.task-score {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.task-board-title {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
/* sidebar */
|
||||
.sidebar-container {
|
||||
margin-top: 30px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.sidebar-content {
|
||||
margin-left: 330px;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 0;
|
||||
width: 250px;
|
||||
padding: 10px;
|
||||
padding-top: 0;
|
||||
border: 1px solid #ccc;
|
||||
background: #fbfbfb;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.sidebar li {
|
||||
list-style-type: square;
|
||||
margin-left: 30px;
|
||||
line-height: 1.8em;
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
/* subtasks */
|
||||
.subtasks-table {
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.subtasks-table td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
/* tables */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
margin-bottom: 20px;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
th,
|
||||
td {
|
||||
border: 1px solid #eee;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
th {
|
||||
background: #fbfbfb;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
td li {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.table-small {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
th a {
|
||||
text-decoration: none;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
th a:focus,
|
||||
th a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
|
@ -0,0 +1,236 @@
|
|||
/* task inside the board */
|
||||
.task-board {
|
||||
position: relative;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 10px;
|
||||
border: 1px solid #000;
|
||||
padding: 5px;
|
||||
font-size: 95%;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.task-board-recent {
|
||||
box-shadow: 0px 0px 10px rgba(130, 130, 130, 1);
|
||||
}
|
||||
|
||||
.task-table a,
|
||||
.task-board a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.task-table a:focus,
|
||||
.task-table a:hover,
|
||||
.task-board a:focus,
|
||||
.task-board a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.task-board-title {
|
||||
margin-top: 10px;
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
.task-board-title a {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.task-board-user {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
a.task-board-nobody {
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.task-board-category-container {
|
||||
text-align: right;
|
||||
padding-bottom: 2px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.task-board-category {
|
||||
font-weight: bold;
|
||||
font-size: 0.8em;
|
||||
color: #000;
|
||||
border: 1px solid #555;
|
||||
border-radius: 4px;
|
||||
padding: 2px;
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.task-board-footer {
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.task-board-date {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 5px;
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.task-board-date-overdue {
|
||||
color: #D90000;
|
||||
}
|
||||
|
||||
.task-board-icons {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 5px;
|
||||
}
|
||||
|
||||
.task-board-icons a {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.task-board-icons span {
|
||||
opacity: 0.5;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.task-board-icons a:hover,
|
||||
.task-board-icons span:hover {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
/* task score */
|
||||
.task-score {
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.task-board .task-score {
|
||||
font-size: 1.5em;
|
||||
right: 5px;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
/* task view */
|
||||
.task-show-details {
|
||||
position: relative;
|
||||
border-radius: 5px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.task-show-details h2 {
|
||||
font-size: 1.8em;
|
||||
margin: 0;
|
||||
margin-bottom: 25px;
|
||||
padding: 0;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.task-show-details li {
|
||||
margin-left: 25px;
|
||||
list-style-type: circle;
|
||||
}
|
||||
|
||||
.task-show-details .task-score {
|
||||
font-size: 1.9em;
|
||||
right: 10px;
|
||||
bottom: 5px;
|
||||
}
|
||||
|
||||
.task-show-section {
|
||||
margin-top: 30px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.task-show-files a {
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.task-show-files li {
|
||||
margin-left: 25px;
|
||||
list-style-type: square;
|
||||
line-height: 25px;
|
||||
}
|
||||
|
||||
.task-show-file-actions {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
|
||||
.task-show-file-actions:before {
|
||||
content: " [";
|
||||
}
|
||||
|
||||
.task-show-file-actions:after {
|
||||
content: "]";
|
||||
}
|
||||
|
||||
.task-show-file-actions a {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.description-textarea {
|
||||
width: 80%;
|
||||
max-width: 800px;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.task-file-viewer {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.task-file-viewer img {
|
||||
max-width: 95%;
|
||||
max-height: 85%;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.task-time-form {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 25px;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
/* task colors */
|
||||
tr td.task-blue,
|
||||
.task-blue {
|
||||
background-color: rgb(219, 235, 255);
|
||||
border-color: rgb(168, 207, 255);
|
||||
}
|
||||
|
||||
tr td.task-purple,
|
||||
.task-purple {
|
||||
background-color: rgb(223, 176, 255);
|
||||
border-color: rgb(205, 133, 254);
|
||||
}
|
||||
|
||||
tr td.task-grey,
|
||||
.task-grey {
|
||||
background-color: rgb(238, 238, 238);
|
||||
border-color: rgb(204, 204, 204);
|
||||
}
|
||||
|
||||
tr td.task-red,
|
||||
.task-red {
|
||||
background-color: rgb(255, 187, 187);
|
||||
border-color: rgb(255, 151, 151);
|
||||
}
|
||||
|
||||
tr td.task-green,
|
||||
.task-green {
|
||||
background-color: rgb(189, 244, 203);
|
||||
border-color: rgb(74, 227, 113);
|
||||
}
|
||||
|
||||
tr td.task-yellow,
|
||||
.task-yellow {
|
||||
background-color: rgb(245, 247, 196);
|
||||
border-color: rgb(223, 227, 45);
|
||||
}
|
||||
|
||||
tr td.task-orange,
|
||||
.task-orange {
|
||||
background-color: rgb(255, 215, 179);
|
||||
border-color: rgb(255, 172, 98);
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/* titles */
|
||||
h1, h2, h3 {
|
||||
font-weight: normal;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.3em;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 10px;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,81 @@
|
|||
// Common functions
|
||||
var Kanboard = (function() {
|
||||
|
||||
return {
|
||||
|
||||
// Display a popup
|
||||
Popover: function(e, callback) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
var link = e.target.getAttribute("href");
|
||||
|
||||
if (! link) {
|
||||
link = e.target.getAttribute("data-href");
|
||||
}
|
||||
|
||||
if (link) {
|
||||
$.get(link, function(content) {
|
||||
|
||||
$("body").append('<div id="popover-container"><div id="popover-content">' + content + '</div></div>');
|
||||
|
||||
$("#popover-container").click(function() {
|
||||
$(this).remove();
|
||||
});
|
||||
|
||||
$("#popover-content").click(function(e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// Return true if the page is visible
|
||||
IsVisible: function() {
|
||||
|
||||
var property = "";
|
||||
|
||||
if (typeof document.hidden !== "undefined") {
|
||||
property = "visibilityState";
|
||||
} else if (typeof document.mozHidden !== "undefined") {
|
||||
property = "mozVisibilityState";
|
||||
} else if (typeof document.msHidden !== "undefined") {
|
||||
property = "msVisibilityState";
|
||||
} else if (typeof document.webkitHidden !== "undefined") {
|
||||
property = "webkitVisibilityState";
|
||||
}
|
||||
|
||||
if (property != "") {
|
||||
return document[property] == "visible";
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
// Common init
|
||||
Init: function() {
|
||||
|
||||
// Datepicker
|
||||
$(".form-date").datepicker({
|
||||
showOtherMonths: true,
|
||||
selectOtherMonths: true,
|
||||
dateFormat: 'yy-mm-dd',
|
||||
constrainInput: false
|
||||
});
|
||||
|
||||
// Project select box
|
||||
$("#board-selector").chosen({
|
||||
width: 180
|
||||
});
|
||||
|
||||
$("#board-selector").change(function() {
|
||||
window.location = "?controller=board&action=show&project_id=" + $(this).val();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
|
|
@ -0,0 +1,162 @@
|
|||
// Board related functions
|
||||
Kanboard.Board = (function() {
|
||||
|
||||
var checkInterval = null;
|
||||
|
||||
// Setup the board
|
||||
function board_load_events()
|
||||
{
|
||||
// Drag and drop
|
||||
$(".column").sortable({
|
||||
delay: 300,
|
||||
distance: 5,
|
||||
connectWith: ".column",
|
||||
placeholder: "draggable-placeholder",
|
||||
stop: function(event, ui) {
|
||||
board_save(
|
||||
ui.item.attr('data-task-id'),
|
||||
ui.item.parent().attr("data-column-id"),
|
||||
ui.item.index() + 1
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// Assignee change
|
||||
$(".assignee-popover").click(Kanboard.Popover);
|
||||
|
||||
// Category change
|
||||
$(".category-popover").click(Kanboard.Popover);
|
||||
|
||||
// Task edit popover
|
||||
$(".task-edit-popover").click(function(e) {
|
||||
Kanboard.Popover(e, Kanboard.Init);
|
||||
});
|
||||
|
||||
// Description popover
|
||||
$(".task-description-popover").click(Kanboard.Popover);
|
||||
|
||||
// Redirect to the task details page
|
||||
$("[data-task-id]").each(function() {
|
||||
$(this).click(function() {
|
||||
window.location = "?controller=task&action=show&task_id=" + $(this).attr("data-task-id");
|
||||
});
|
||||
});
|
||||
|
||||
// Automatic refresh
|
||||
var interval = parseInt($("#board").attr("data-check-interval"));
|
||||
|
||||
if (interval > 0) {
|
||||
checkInterval = window.setInterval(board_check, interval * 1000);
|
||||
}
|
||||
}
|
||||
|
||||
// Stop events
|
||||
function board_unload_events()
|
||||
{
|
||||
$("[data-task-id]").off();
|
||||
clearInterval(checkInterval);
|
||||
}
|
||||
|
||||
// Save and refresh the board
|
||||
function board_save(taskId, columnId, position)
|
||||
{
|
||||
var boardSelector = $("#board");
|
||||
var projectId = boardSelector.attr("data-project-id");
|
||||
|
||||
board_unload_events();
|
||||
|
||||
$.ajax({
|
||||
cache: false,
|
||||
url: "?controller=board&action=save&project_id=" + projectId,
|
||||
data: {
|
||||
"task_id": taskId,
|
||||
"column_id": columnId,
|
||||
"position": position,
|
||||
"csrf_token": boardSelector.attr("data-csrf-token"),
|
||||
},
|
||||
type: "POST",
|
||||
success: function(data) {
|
||||
$("#board").remove();
|
||||
$("#main").append(data);
|
||||
board_load_events();
|
||||
filter_apply();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Check if a board have been changed by someone else
|
||||
function board_check()
|
||||
{
|
||||
var boardSelector = $("#board");
|
||||
var projectId = boardSelector.attr("data-project-id");
|
||||
var timestamp = boardSelector.attr("data-time");
|
||||
|
||||
if (Kanboard.IsVisible() && projectId != undefined && timestamp != undefined) {
|
||||
$.ajax({
|
||||
cache: false,
|
||||
url: "?controller=board&action=check&project_id=" + projectId + "×tamp=" + timestamp,
|
||||
statusCode: {
|
||||
200: function(data) {
|
||||
boardSelector.remove();
|
||||
$("#main").append(data);
|
||||
board_unload_events();
|
||||
board_load_events();
|
||||
filter_apply();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Apply user or date filter (change tasks opacity)
|
||||
function filter_apply()
|
||||
{
|
||||
var selectedUserId = $("#form-user_id").val();
|
||||
var selectedCategoryId = $("#form-category_id").val();
|
||||
var filterDueDate = $("#filter-due-date").hasClass("filter-on");
|
||||
|
||||
$("[data-task-id]").each(function(index, item) {
|
||||
|
||||
var ownerId = item.getAttribute("data-owner-id");
|
||||
var dueDate = item.getAttribute("data-due-date");
|
||||
var categoryId = item.getAttribute("data-category-id");
|
||||
|
||||
if (ownerId != selectedUserId && selectedUserId != -1) {
|
||||
item.style.opacity = "0.2";
|
||||
}
|
||||
else {
|
||||
item.style.opacity = "1.0";
|
||||
}
|
||||
|
||||
if (filterDueDate && (dueDate == "" || dueDate == "0")) {
|
||||
item.style.opacity = "0.2";
|
||||
}
|
||||
|
||||
if (categoryId != selectedCategoryId && selectedCategoryId != -1) {
|
||||
item.style.opacity = "0.2";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Load filter events
|
||||
function filter_load_events()
|
||||
{
|
||||
$("#form-user_id").change(filter_apply);
|
||||
|
||||
$("#form-category_id").change(filter_apply);
|
||||
|
||||
$("#filter-due-date").click(function(e) {
|
||||
$(this).toggleClass("filter-on");
|
||||
filter_apply();
|
||||
e.preventDefault();
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
Init: function() {
|
||||
board_load_events();
|
||||
filter_load_events();
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
// Initialization
|
||||
$(function() {
|
||||
|
||||
Kanboard.Init();
|
||||
|
||||
if ($("#board").length) {
|
||||
Kanboard.Board.Init();
|
||||
}
|
||||
else if ($("#task-section").length) {
|
||||
Kanboard.Task.Init();
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
// Task related functions
|
||||
Kanboard.Task = (function() {
|
||||
|
||||
return {
|
||||
Init: function() {
|
||||
// Image preview for attachments
|
||||
$(".file-popover").click(Kanboard.Popover);
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
css="base links title table form button alert header board project task comment subtask markdown listing activity dashboard pagination popover confirm sidebar responsive font-awesome.min jquery-ui-1.10.4.custom chosen.min"
|
||||
js="jquery-1.11.1.min jquery-ui-1.10.4.custom.min jquery.ui.touch-punch.min chosen.jquery.min base board task init"
|
||||
|
||||
rm -f assets/css/app.css
|
||||
echo "/* DO NOT EDIT: auto-generated file */" > assets/css/app.css
|
||||
|
||||
for file in $css
|
||||
do
|
||||
cat "assets/css/${file}.css" >> assets/css/app.css
|
||||
done
|
||||
|
||||
rm -f assets/js/app.js
|
||||
echo "/* DO NOT EDIT: auto-generated file */" > assets/js/app.js
|
||||
|
||||
for file in $js
|
||||
do
|
||||
cat "assets/js/${file}.js" >> assets/js/app.js
|
||||
done
|
||||
Loading…
Reference in New Issue