Merge pull-request #2707
This commit is contained in:
commit
9159be81ec
|
|
@ -27,10 +27,7 @@ class SubtaskController extends BaseController
|
|||
$task = $this->getTask();
|
||||
|
||||
if (empty($values)) {
|
||||
$values = array(
|
||||
'task_id' => $task['id'],
|
||||
'another_subtask' => $this->request->getIntegerParam('another_subtask', 0)
|
||||
);
|
||||
$values = $this->prepareValues($task);
|
||||
}
|
||||
|
||||
$this->response->html($this->template->render('subtask/create', array(
|
||||
|
|
@ -40,6 +37,24 @@ class SubtaskController extends BaseController
|
|||
'task' => $task,
|
||||
)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare form values
|
||||
*
|
||||
* @access protected
|
||||
* @param array $task
|
||||
* @return array
|
||||
*/
|
||||
protected function prepareValues(array $task)
|
||||
{
|
||||
$values = array(
|
||||
'task_id' => $task['id'],
|
||||
'another_subtask' => $this->request->getIntegerParam('another_subtask', 0)
|
||||
);
|
||||
|
||||
$values = $this->hook->merge('controller:subtask:form:default', $values, array('default_values' => $values));
|
||||
return $values;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validation and creation
|
||||
|
|
|
|||
|
|
@ -255,6 +255,7 @@ class SubtaskModel extends Base
|
|||
{
|
||||
$this->helper->model->removeFields($values, array('another_subtask'));
|
||||
$this->helper->model->resetFields($values, array('time_estimated', 'time_spent'));
|
||||
$this->hook->reference('model:subtask:modification:prepare', $values);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -272,6 +273,7 @@ class SubtaskModel extends Base
|
|||
$values['time_estimated'] = isset($values['time_estimated']) ? $values['time_estimated'] : 0;
|
||||
$values['time_spent'] = isset($values['time_spent']) ? $values['time_spent'] : 0;
|
||||
$values['user_id'] = isset($values['user_id']) ? $values['user_id'] : 0;
|
||||
$this->hook->reference('model:subtask:creation:prepare', $values);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
<div class="tooltip-large">
|
||||
<table class="table-small">
|
||||
<tr>
|
||||
<th class="column-80"><?= t('Subtask') ?></th>
|
||||
<th class="column-70"><?= t('Subtask') ?></th>
|
||||
<?= $this->hook->render('template:board:tooltip:subtasks:header:before-assignee') ?>
|
||||
<th><?= t('Assignee') ?></th>
|
||||
</tr>
|
||||
<?php foreach ($subtasks as $subtask): ?>
|
||||
|
|
@ -9,6 +10,7 @@
|
|||
<td>
|
||||
<?= $this->subtask->toggleStatus($subtask, $task['project_id']) ?>
|
||||
</td>
|
||||
<?= $this->hook->render('template:board:tooltip:subtasks:rows', array('subtask' => $subtask)) ?>
|
||||
<td>
|
||||
<?php if (! empty($subtask['username'])): ?>
|
||||
<?= $this->text->e($subtask['name'] ?: $subtask['username']) ?>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
<th class="column-20"><?= $paginator->order(t('Project'), 'project_name') ?></th>
|
||||
<th><?= $paginator->order(t('Task'), 'task_name') ?></th>
|
||||
<th><?= $paginator->order(t('Subtask'), \Kanboard\Model\SubtaskModel::TABLE.'.title') ?></th>
|
||||
<?= $this->hook->render('template:dashboard:subtasks:header:before-timetracking', array('paginator' => $paginator)) ?>
|
||||
<th class="column-20"><?= t('Time tracking') ?></th>
|
||||
</tr>
|
||||
<?php foreach ($paginator->getCollection() as $subtask): ?>
|
||||
|
|
@ -26,6 +27,7 @@
|
|||
<td>
|
||||
<?= $this->subtask->toggleStatus($subtask, $subtask['project_id']) ?>
|
||||
</td>
|
||||
<?= $this->hook->render('template:dashboard:subtasks:rows', array('subtask' => $subtask)) ?>
|
||||
<td>
|
||||
<?php if (! empty($subtask['time_spent'])): ?>
|
||||
<strong><?= $this->text->e($subtask['time_spent']).'h' ?></strong> <?= t('spent') ?>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@
|
|||
<?= $this->subtask->selectTitle($values, $errors, array('autofocus')) ?>
|
||||
<?= $this->subtask->selectAssignee($users_list, $values, $errors) ?>
|
||||
<?= $this->subtask->selectTimeEstimated($values, $errors) ?>
|
||||
|
||||
<?= $this->hook->render('template:subtask:form:create', array('values' => $values, 'errors' => $errors)) ?>
|
||||
|
||||
<?= $this->form->checkbox('another_subtask', t('Create another sub-task'), 1, isset($values['another_subtask']) && $values['another_subtask'] == 1) ?>
|
||||
|
||||
<div class="form-actions">
|
||||
|
|
|
|||
|
|
@ -11,7 +11,8 @@
|
|||
<?= $this->subtask->selectAssignee($users_list, $values, $errors) ?>
|
||||
<?= $this->subtask->selectTimeEstimated($values, $errors) ?>
|
||||
<?= $this->subtask->selectTimeSpent($values, $errors) ?>
|
||||
|
||||
<?= $this->hook->render('template:subtask:form:edit', array('values' => $values, 'errors' => $errors)) ?>
|
||||
|
||||
<div class="form-actions">
|
||||
<button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
|
||||
<?= t('or') ?>
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
<tr>
|
||||
<th class="column-40"><?= t('Title') ?></th>
|
||||
<th><?= t('Assignee') ?></th>
|
||||
<?= $this->hook->render('template:subtask:table:header:before-timetracking') ?>
|
||||
<th><?= t('Time tracking') ?></th>
|
||||
<?php if ($editable): ?>
|
||||
<th class="column-5"></th>
|
||||
|
|
@ -29,6 +30,7 @@
|
|||
<?= $this->text->e($subtask['name'] ?: $subtask['username']) ?>
|
||||
<?php endif ?>
|
||||
</td>
|
||||
<?= $this->hook->render('template:subtask:table:rows', array('subtask' => $subtask)) ?>
|
||||
<td>
|
||||
<ul class="no-bullet">
|
||||
<li>
|
||||
|
|
|
|||
|
|
@ -10,13 +10,14 @@
|
|||
<?= $this->task->selectTitle($values, $errors) ?>
|
||||
<?= $this->task->selectDescription($values, $errors) ?>
|
||||
<?= $this->task->selectTags($project) ?>
|
||||
|
||||
|
||||
<?= $this->hook->render('template:task:form:first-column', array('values' => $values, 'errors' => $errors)) ?>
|
||||
|
||||
<?php if (! isset($duplicate)): ?>
|
||||
<?= $this->form->checkbox('another_task', t('Create another task'), 1, isset($values['another_task']) && $values['another_task'] == 1) ?>
|
||||
<?= $this->form->checkbox('duplicate_multiple_projects', t('Duplicate to multiple projects'), 1) ?>
|
||||
<?php endif ?>
|
||||
|
||||
<?= $this->hook->render('template:task:form:first-column', array('values' => $values, 'errors' => $errors)) ?>
|
||||
</div>
|
||||
|
||||
<div class="form-column">
|
||||
|
|
|
|||
|
|
@ -141,6 +141,8 @@ List of reference hooks:
|
|||
| `model:task:creation:prepare` | Alter form values before to save a task |
|
||||
| `model:task:modification:prepare` | Alter form values before to edit a task |
|
||||
| `model:color:get-list` | Alter default_colors values |
|
||||
| `model:subtask:modification:prepare` | Alter form values before to save a subtask |
|
||||
| `model:subtask:creation:prepare` | Alter form values before to edit a subtask |
|
||||
|
||||
|
||||
Template Hooks
|
||||
|
|
@ -186,68 +188,76 @@ Template names without prefix are core templates.
|
|||
|
||||
List of template hooks:
|
||||
|
||||
| Hook | Description |
|
||||
|--------------------------------------------|----------------------------------------------------|
|
||||
| `template:analytic:sidebar` | Sidebar on analytic pages |
|
||||
| `template:app:filters-helper:before` | Filter helper dropdown (top) |
|
||||
| `template:app:filters-helper:after` | Filter helper dropdown (bottom) |
|
||||
| `template:auth:login-form:before` | Login page (top) |
|
||||
| `template:auth:login-form:after` | Login page (bottom) |
|
||||
| `template:board:private:task:before-title` | Task in private board: before title |
|
||||
| `template:board:private:task:after-title` | Task in private board: after title |
|
||||
| `template:board:public:task:before-title` | Task in public board: before title |
|
||||
| `template:board:public:task:after-title` | Task in public board: after title |
|
||||
| `template:board:task:footer` | Task in board: footer |
|
||||
| `template:board:task:icons` | Task in board: tooltip icon |
|
||||
| `template:board:column:dropdown` | Dropdown menu in board columns |
|
||||
| `template:config:sidebar` | Sidebar on settings page |
|
||||
| `template:config:application ` | Application settings form |
|
||||
| `template:config:email` | Email settings page |
|
||||
| `template:config:integrations` | Integration page in global settings |
|
||||
| `template:dashboard:sidebar` | Sidebar on dashboard page |
|
||||
| `template:dashboard:show` | Main page of the dashboard |
|
||||
| `template:export:sidebar` | Sidebar on export pages |
|
||||
| `template:import:sidebar` | Sidebar on import pages |
|
||||
| `template:header:dropdown` | Page header dropdown menu (user avatar icon) |
|
||||
| `template:header:creation-dropdown` | Page header dropdown menu (plus icon) |
|
||||
| `template:layout:head` | Page layout `<head/>` tag |
|
||||
| `template:layout:top` | Page layout top header |
|
||||
| `template:layout:bottom` | Page layout footer |
|
||||
| `template:project:dropdown` | "Actions" menu on left in different project views |
|
||||
| `template:project:header:before` | Project filters (before) |
|
||||
| `template:project:header:after` | Project filters (after) |
|
||||
| `template:project:integrations` | Integration page in projects settings |
|
||||
| `template:project:sidebar` | Sidebar in project settings |
|
||||
| `template:project-user:sidebar` | Sidebar on project user overview page |
|
||||
| `template:project-list:menu:before` | Project list: before menu entries |
|
||||
| `template:project-list:menu:after` | Project list: after menu entries |
|
||||
| `template:task:layout:top` | Task layout top (after page header) |
|
||||
| `template:task:details:top` | Task summary top |
|
||||
| `template:task:details:bottom` | Task summary bottom |
|
||||
| `template:task:details:first-column` | Task summary first column |
|
||||
| `template:task:details:second-column` | Task summary second column |
|
||||
| `template:task:details:third-column` | Task summary third column |
|
||||
| `template:task:details:fourth-column` | Task summary fourth column |
|
||||
| `template:task:dropdown` | Task dropdown menu in listing pages |
|
||||
| `template:task:sidebar:actions` | Sidebar on task page (section actions) |
|
||||
| `template:task:sidebar:information` | Sidebar on task page (section information) |
|
||||
| `template:task:form:first-column` | 1st column in task form |
|
||||
| `template:task:form:second-column` | 2nd column in task form |
|
||||
| `template:task:form:third-column` | 3nd column in task form |
|
||||
| `template:task:show:top ` | Show task page: top |
|
||||
| `template:task:show:bottom` | Show task page: bottom |
|
||||
| `template:task:show:before-description` | Show task page: before description |
|
||||
| `template:task:show:before-tasklinks` | Show task page: before tasklinks |
|
||||
| `template:task:show:before-subtasks` | Show task page: before subtasks |
|
||||
| `template:task:show:before-timetracking` | Show task page: before timetracking |
|
||||
| `template:task:show:before-attachments` | Show task page: before attachments |
|
||||
| `template:task:show:before-comments` | Show task page: before comments |
|
||||
| `template:user:authentication:form` | "Edit authentication" form in user profile |
|
||||
| `template:user:create-remote:form` | "Create remote user" form |
|
||||
| `template:user:external` | "External authentication" page in user profile |
|
||||
| `template:user:integrations` | Integration page in user profile |
|
||||
| `template:user:sidebar:actions` | Sidebar in user profile (section actions) |
|
||||
| `template:user:sidebar:information` | Sidebar in user profile (section information) |
|
||||
| Hook | Description |
|
||||
|-----------------------------------------------------------|----------------------------------------------------|
|
||||
| `template:analytic:sidebar` | Sidebar on analytic pages |
|
||||
| `template:app:filters-helper:before` | Filter helper dropdown (top) |
|
||||
| `template:app:filters-helper:after` | Filter helper dropdown (bottom) |
|
||||
| `template:auth:login-form:before` | Login page (top) |
|
||||
| `template:auth:login-form:after` | Login page (bottom) |
|
||||
| `template:board:private:task:before-title` | Task in private board: before title |
|
||||
| `template:board:private:task:after-title` | Task in private board: after title |
|
||||
| `template:board:public:task:before-title` | Task in public board: before title |
|
||||
| `template:board:public:task:after-title` | Task in public board: after title |
|
||||
| `template:board:task:footer` | Task in board: footer |
|
||||
| `template:board:task:icons` | Task in board: tooltip icon |
|
||||
| `template:board:column:dropdown` | Dropdown menu in board columns |
|
||||
| `template:board:tooltip:subtasks:header:before-assignee` | Header of Subtask table on tootip before Assignee |
|
||||
| `template:board:tooltip:subtasks:rows` | Column on row of Subtask table on tooltip |
|
||||
| `template:config:sidebar` | Sidebar on settings page |
|
||||
| `template:config:application ` | Application settings form |
|
||||
| `template:config:email` | Email settings page |
|
||||
| `template:config:integrations` | Integration page in global settings |
|
||||
| `template:dashboard:sidebar` | Sidebar on dashboard page |
|
||||
| `template:dashboard:show` | Main page of the dashboard |
|
||||
| `template:dashboard:subtasks:header:before-timetracking` | Header of Subtask table before Time Tracking |
|
||||
| `template:dashboard:subtasks:rows` | Column on row of Subtask table of the dashboard |
|
||||
| `template:export:sidebar` | Sidebar on export pages |
|
||||
| `template:import:sidebar` | Sidebar on import pages |
|
||||
| `template:header:dropdown` | Page header dropdown menu (user avatar icon) |
|
||||
| `template:header:creation-dropdown` | Page header dropdown menu (plus icon) |
|
||||
| `template:layout:head` | Page layout `<head/>` tag |
|
||||
| `template:layout:top` | Page layout top header |
|
||||
| `template:layout:bottom` | Page layout footer |
|
||||
| `template:project:dropdown` | "Actions" menu on left in different project views |
|
||||
| `template:project:header:before` | Project filters (before) |
|
||||
| `template:project:header:after` | Project filters (after) |
|
||||
| `template:project:integrations` | Integration page in projects settings |
|
||||
| `template:project:sidebar` | Sidebar in project settings |
|
||||
| `template:project-user:sidebar` | Sidebar on project user overview page |
|
||||
| `template:project-list:menu:before` | Project list: before menu entries |
|
||||
| `template:project-list:menu:after` | Project list: after menu entries |
|
||||
| `template:task:layout:top` | Task layout top (after page header) |
|
||||
| `template:task:details:top` | Task summary top |
|
||||
| `template:task:details:bottom` | Task summary bottom |
|
||||
| `template:task:details:first-column` | Task summary first column |
|
||||
| `template:task:details:second-column` | Task summary second column |
|
||||
| `template:task:details:third-column` | Task summary third column |
|
||||
| `template:task:details:fourth-column` | Task summary fourth column |
|
||||
| `template:task:dropdown` | Task dropdown menu in listing pages |
|
||||
| `template:task:sidebar:actions` | Sidebar on task page (section actions) |
|
||||
| `template:task:sidebar:information` | Sidebar on task page (section information) |
|
||||
| `template:task:form:first-column` | 1st column in task form |
|
||||
| `template:task:form:second-column` | 2nd column in task form |
|
||||
| `template:task:form:third-column` | 3nd column in task form |
|
||||
| `template:task:show:top ` | Show task page: top |
|
||||
| `template:task:show:bottom` | Show task page: bottom |
|
||||
| `template:task:show:before-description` | Show task page: before description |
|
||||
| `template:task:show:before-tasklinks` | Show task page: before tasklinks |
|
||||
| `template:task:show:before-subtasks` | Show task page: before subtasks |
|
||||
| `template:task:show:before-timetracking` | Show task page: before timetracking |
|
||||
| `template:task:show:before-attachments` | Show task page: before attachments |
|
||||
| `template:task:show:before-comments` | Show task page: before comments |
|
||||
| `template:subtask:form:create` | "Create Subtask" form |
|
||||
| `template:subtask:form:edit` | "Edit Subtask" form |
|
||||
| `template:subtask:table:header:before-timetracking` | Subtask table header before Time Tracking |
|
||||
| `template:subtask:table:rows` | Column on row of subtasks table |
|
||||
| `template:user:authentication:form` | "Edit authentication" form in user profile |
|
||||
| `template:user:create-remote:form` | "Create remote user" form |
|
||||
| `template:user:external` | "External authentication" page in user profile |
|
||||
| `template:user:integrations` | Integration page in user profile |
|
||||
| `template:user:sidebar:actions` | Sidebar in user profile (section actions) |
|
||||
| `template:user:sidebar:information` | Sidebar in user profile (section information) |
|
||||
|
||||
|
||||
Another template hooks can be added if necessary, just ask on the issue tracker.
|
||||
|
|
|
|||
Loading…
Reference in New Issue