diff options
Diffstat (limited to 'app')
30 files changed, 222 insertions, 36 deletions
diff --git a/app/Controller/BoardPopover.php b/app/Controller/BoardPopover.php index 51ec9bc4..a214439a 100644 --- a/app/Controller/BoardPopover.php +++ b/app/Controller/BoardPopover.php @@ -98,4 +98,39 @@ class BoardPopover extends Base 'redirect' => 'board', ))); } + + /** + * Confirmation before to close all column tasks + * + * @access public + */ + public function confirmCloseColumnTasks() + { + $project = $this->getProject(); + $column_id = $this->request->getIntegerParam('column_id'); + $swimlane_id = $this->request->getIntegerParam('swimlane_id'); + + $this->response->html($this->template->render('board/popover_close_all_tasks_column', array( + 'project' => $project, + 'nb_tasks' => $this->taskFinder->countByColumnAndSwimlaneId($project['id'], $column_id, $swimlane_id), + 'column' => $this->board->getColumnTitleById($column_id), + 'swimlane' => $this->swimlane->getNameById($swimlane_id) ?: t($project['default_swimlane']), + 'values' => array('column_id' => $column_id, 'swimlane_id' => $swimlane_id), + ))); + } + + /** + * Close all column tasks + * + * @access public + */ + public function closeColumnTasks() + { + $project = $this->getProject(); + $values = $this->request->getValues(); + + $this->taskStatus->closeTasksBySwimlaneAndColumn($values['swimlane_id'], $values['column_id']); + $this->flash->success(t('All tasks of the column "%s" and the swimlane "%s" have been closed successfully.', $this->board->getColumnTitleById($values['column_id']), $this->swimlane->getNameById($values['swimlane_id']) ?: t($project['default_swimlane']))); + $this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $project['id']))); + } } diff --git a/app/Locale/bs_BA/translations.php b/app/Locale/bs_BA/translations.php index dc8fc548..239162b2 100644 --- a/app/Locale/bs_BA/translations.php +++ b/app/Locale/bs_BA/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/cs_CZ/translations.php b/app/Locale/cs_CZ/translations.php index 8ed054fc..ade68b2b 100644 --- a/app/Locale/cs_CZ/translations.php +++ b/app/Locale/cs_CZ/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/da_DK/translations.php b/app/Locale/da_DK/translations.php index 35ae3036..e85bbd91 100644 --- a/app/Locale/da_DK/translations.php +++ b/app/Locale/da_DK/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/de_DE/translations.php b/app/Locale/de_DE/translations.php index 0668de1a..2f88ff61 100644 --- a/app/Locale/de_DE/translations.php +++ b/app/Locale/de_DE/translations.php @@ -1098,4 +1098,8 @@ return array( 'Creation' => 'Erstellung', 'Expiration' => 'Ablauf', 'Password reset history' => 'Verlauf Passwortrücksetzung', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/es_ES/translations.php b/app/Locale/es_ES/translations.php index e091d1ec..11b4c221 100644 --- a/app/Locale/es_ES/translations.php +++ b/app/Locale/es_ES/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/fi_FI/translations.php b/app/Locale/fi_FI/translations.php index 3543963f..8949ccb3 100644 --- a/app/Locale/fi_FI/translations.php +++ b/app/Locale/fi_FI/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/fr_FR/translations.php b/app/Locale/fr_FR/translations.php index 2724c300..7c05dbe9 100644 --- a/app/Locale/fr_FR/translations.php +++ b/app/Locale/fr_FR/translations.php @@ -1101,4 +1101,8 @@ return array( 'Creation' => 'Création', 'Expiration' => 'Expiration', 'Password reset history' => 'Historique de la réinitialisation du mot de passe', + 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => 'Toutes les tâches de la colonne « %s » et de la swimlane « %s » ont été fermées avec succès.', + 'Do you really want to close all tasks of this column?' => 'Voulez-vous vraiment fermer toutes les tâches de cette colonne ?', + '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '%d tâche(s) dans la colonne « %s » et la swimlane « %s » seront fermées.', + 'Close all tasks of this column' => 'Fermer toutes les tâches de cette colonne', ); diff --git a/app/Locale/hu_HU/translations.php b/app/Locale/hu_HU/translations.php index bbca9914..6c48fe04 100644 --- a/app/Locale/hu_HU/translations.php +++ b/app/Locale/hu_HU/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/id_ID/translations.php b/app/Locale/id_ID/translations.php index 57479050..ac0c0e8a 100644 --- a/app/Locale/id_ID/translations.php +++ b/app/Locale/id_ID/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/it_IT/translations.php b/app/Locale/it_IT/translations.php index 6b1d0b0b..c6ec347d 100644 --- a/app/Locale/it_IT/translations.php +++ b/app/Locale/it_IT/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/ja_JP/translations.php b/app/Locale/ja_JP/translations.php index 22783e1e..43e23428 100644 --- a/app/Locale/ja_JP/translations.php +++ b/app/Locale/ja_JP/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/my_MY/translations.php b/app/Locale/my_MY/translations.php index 9b0f6c3d..1934cdae 100644 --- a/app/Locale/my_MY/translations.php +++ b/app/Locale/my_MY/translations.php @@ -1,4 +1,5 @@ <?php + return array( 'number.decimals_separator' => '.', 'number.thousands_separator' => ',', @@ -682,7 +683,7 @@ return array( 'This chart show the task complexity over the time (Work Remaining).' => 'Grafik ini menunjukkan kompleksitas tugas dari waktu ke waktu (Sisa Pekerjaan).', 'Screenshot taken %s' => 'Screenshot diambil %s', 'Add a screenshot' => 'Tambah screenshot', - 'Take a screenshot and press CTRL+V or ?+V to paste here.' => 'Mengambil screenshot dan tekan CTRL + V atau ? + V untuk paste di sini.', + // 'Take a screenshot and press CTRL+V or ⌘+V to paste here.' => '', 'Screenshot uploaded successfully.' => 'Screenshot berhasil diunggah.', 'SEK - Swedish Krona' => 'SEK - Krona Swedia', 'The project identifier is an optional alphanumeric code used to identify your project.' => 'Identifier projek adalah kode alfanumerik opsional digunakan untuk mengidentifikasi projek Anda.', @@ -1093,8 +1094,12 @@ return array( // 'Change Password' => '', // 'To reset your password click on this link:' => '', // 'Last Password Reset' => '', - //'The password has never been reinitialized.' => 'Kata laluan tidak pernah ', + // 'The password has never been reinitialized.' => '', 'Creation' => 'Ciptaan', 'Expiration' => 'Jangka hayat', 'Password reset history' => 'Sirah tetap semula kata laluan', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/nb_NO/translations.php b/app/Locale/nb_NO/translations.php index cff7e11b..eb13a045 100644 --- a/app/Locale/nb_NO/translations.php +++ b/app/Locale/nb_NO/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/nl_NL/translations.php b/app/Locale/nl_NL/translations.php index e4f64cfb..74650945 100644 --- a/app/Locale/nl_NL/translations.php +++ b/app/Locale/nl_NL/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/pl_PL/translations.php b/app/Locale/pl_PL/translations.php index 5e70633d..fe61c8c3 100644 --- a/app/Locale/pl_PL/translations.php +++ b/app/Locale/pl_PL/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/pt_BR/translations.php b/app/Locale/pt_BR/translations.php index fd994e6c..60f6924e 100644 --- a/app/Locale/pt_BR/translations.php +++ b/app/Locale/pt_BR/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/pt_PT/translations.php b/app/Locale/pt_PT/translations.php index 6b387bf2..2a8df360 100644 --- a/app/Locale/pt_PT/translations.php +++ b/app/Locale/pt_PT/translations.php @@ -1098,4 +1098,8 @@ return array( 'Creation' => 'Criação', 'Expiration' => 'Expiração', 'Password reset history' => 'Histórico da redefinição da password', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/ru_RU/translations.php b/app/Locale/ru_RU/translations.php index 14ca841f..88740c3e 100644 --- a/app/Locale/ru_RU/translations.php +++ b/app/Locale/ru_RU/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/sr_Latn_RS/translations.php b/app/Locale/sr_Latn_RS/translations.php index fe2401b7..d287876f 100644 --- a/app/Locale/sr_Latn_RS/translations.php +++ b/app/Locale/sr_Latn_RS/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/sv_SE/translations.php b/app/Locale/sv_SE/translations.php index a8746d67..279bc95e 100644 --- a/app/Locale/sv_SE/translations.php +++ b/app/Locale/sv_SE/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/th_TH/translations.php b/app/Locale/th_TH/translations.php index 2e29348d..6c40f95c 100644 --- a/app/Locale/th_TH/translations.php +++ b/app/Locale/th_TH/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/tr_TR/translations.php b/app/Locale/tr_TR/translations.php index 89b3b33b..b76cd91c 100644 --- a/app/Locale/tr_TR/translations.php +++ b/app/Locale/tr_TR/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Locale/zh_CN/translations.php b/app/Locale/zh_CN/translations.php index 161d8d2f..62d793b1 100644 --- a/app/Locale/zh_CN/translations.php +++ b/app/Locale/zh_CN/translations.php @@ -1098,4 +1098,8 @@ return array( // 'Creation' => '', // 'Expiration' => '', // 'Password reset history' => '', + // 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => '', + // 'Do you really want to close all tasks of this column?' => '', + // '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '', + // 'Close all tasks of this column' => '', ); diff --git a/app/Model/TaskStatus.php b/app/Model/TaskStatus.php index a5199ed9..afb5ffb5 100644 --- a/app/Model/TaskStatus.php +++ b/app/Model/TaskStatus.php @@ -62,6 +62,32 @@ class TaskStatus extends Base } /** + * Close multiple tasks + * + * @access public + * @param array $task_ids + */ + public function closeMultipleTasks(array $task_ids) + { + foreach ($task_ids as $task_id) { + $this->close($task_id); + } + } + + /** + * Close all tasks within a column/swimlane + * + * @access public + * @param integer $swimlane_id + * @param integer $column_id + */ + public function closeTasksBySwimlaneAndColumn($swimlane_id, $column_id) + { + $task_ids = $this->db->table(Task::TABLE)->eq('swimlane_id', $swimlane_id)->eq('column_id', $column_id)->findAllByColumn('id'); + $this->closeMultipleTasks($task_ids); + } + + /** * Common method to change the status of task * * @access private diff --git a/app/Template/board/popover_assignee.php b/app/Template/board/popover_assignee.php index f395113c..e86ba420 100644 --- a/app/Template/board/popover_assignee.php +++ b/app/Template/board/popover_assignee.php @@ -1,21 +1,21 @@ <section id="main"> - <section> - <h3><?= t('Change assignee for the task "%s"', $values['title']) ?></h3> - <form method="post" action="<?= $this->url->href('BoardPopover', 'updateAssignee', array('task_id' => $values['id'], 'project_id' => $values['project_id'])) ?>"> + <div class="page-header"> + <h2><?= t('Change assignee for the task "%s"', $values['title']) ?></h2> + </div> + <form method="post" action="<?= $this->url->href('BoardPopover', 'updateAssignee', array('task_id' => $values['id'], 'project_id' => $project['id'])) ?>"> - <?= $this->form->csrf() ?> + <?= $this->form->csrf() ?> - <?= $this->form->hidden('id', $values) ?> - <?= $this->form->hidden('project_id', $values) ?> + <?= $this->form->hidden('id', $values) ?> + <?= $this->form->hidden('project_id', $values) ?> - <?= $this->form->label(t('Assignee'), 'owner_id') ?> - <?= $this->form->select('owner_id', $users_list, $values, array(), array('autofocus')) ?><br/> + <?= $this->form->label(t('Assignee'), 'owner_id') ?> + <?= $this->form->select('owner_id', $users_list, $values, array(), array('autofocus')) ?><br/> - <div class="form-actions"> - <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> - <?= t('or') ?> - <?= $this->url->link(t('cancel'), 'board', 'show', array('project_id' => $project['id']), false, 'close-popover') ?> - </div> - </form> - </section> + <div class="form-actions"> + <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> + <?= t('or') ?> + <?= $this->url->link(t('cancel'), 'board', 'show', array('project_id' => $project['id']), false, 'close-popover') ?> + </div> + </form> </section>
\ No newline at end of file diff --git a/app/Template/board/popover_category.php b/app/Template/board/popover_category.php index 8c2a273d..224ce8d1 100644 --- a/app/Template/board/popover_category.php +++ b/app/Template/board/popover_category.php @@ -1,21 +1,21 @@ <section id="main"> - <section> - <h3><?= t('Change category for the task "%s"', $values['title']) ?></h3> - <form method="post" action="<?= $this->url->href('BoardPopover', 'updateCategory', array('task_id' => $values['id'], 'project_id' => $values['project_id'])) ?>"> + <div class="page-header"> + <h2><?= t('Change category for the task "%s"', $values['title']) ?></h2> + </div> + <form method="post" action="<?= $this->url->href('BoardPopover', 'updateCategory', array('task_id' => $values['id'], 'project_id' => $project['id'])) ?>"> - <?= $this->form->csrf() ?> + <?= $this->form->csrf() ?> - <?= $this->form->hidden('id', $values) ?> - <?= $this->form->hidden('project_id', $values) ?> + <?= $this->form->hidden('id', $values) ?> + <?= $this->form->hidden('project_id', $values) ?> - <?= $this->form->label(t('Category'), 'category_id') ?> - <?= $this->form->select('category_id', $categories_list, $values, array(), array('autofocus')) ?><br/> + <?= $this->form->label(t('Category'), 'category_id') ?> + <?= $this->form->select('category_id', $categories_list, $values, array(), array('autofocus')) ?><br/> - <div class="form-actions"> - <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> - <?= t('or') ?> - <?= $this->url->link(t('cancel'), 'board', 'show', array('project_id' => $project['id']), false, 'close-popover') ?> - </div> - </form> - </section> + <div class="form-actions"> + <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> + <?= t('or') ?> + <?= $this->url->link(t('cancel'), 'board', 'show', array('project_id' => $project['id']), false, 'close-popover') ?> + </div> + </form> </section>
\ No newline at end of file diff --git a/app/Template/board/popover_close_all_tasks_column.php b/app/Template/board/popover_close_all_tasks_column.php new file mode 100644 index 00000000..da6b9ad7 --- /dev/null +++ b/app/Template/board/popover_close_all_tasks_column.php @@ -0,0 +1,18 @@ +<section id="main"> + <div class="page-header"> + <h2><?= t('Do you really want to close all tasks of this column?') ?></h2> + </div> + <form method="post" action="<?= $this->url->href('BoardPopover', 'closeColumnTasks', array('project_id' => $project['id'])) ?>"> + <?= $this->form->csrf() ?> + <?= $this->form->hidden('column_id', $values) ?> + <?= $this->form->hidden('swimlane_id', $values) ?> + + <p class="alert"><?= t('%d task(s) in the column "%s" and the swimlane "%s" will be closed.', $nb_tasks, $column, $swimlane) ?></p> + + <div class="form-actions"> + <input type="submit" value="<?= t('Save') ?>" class="btn btn-red"> + <?= t('or') ?> + <?= $this->url->link(t('cancel'), 'board', 'show', array('project_id' => $project['id']), false, 'close-popover') ?> + </div> + </form> +</section>
\ No newline at end of file diff --git a/app/Template/board/table_column.php b/app/Template/board/table_column.php index 10bcfa08..b345c04e 100644 --- a/app/Template/board/table_column.php +++ b/app/Template/board/table_column.php @@ -24,8 +24,22 @@ </span> <?php endif ?> - <span class="board-column-title" data-column-id="<?= $column['id'] ?>" title="<?= t('Hide this column') ?>"> - <?= $this->e($column['title']) ?> + <span class="board-column-title"> + <span class="dropdown"> + <a href="#" class="dropdown-menu"><?= $this->e($column['title']) ?> <i class="fa fa-caret-down"></i></a> + <ul> + <li> + <i class="fa fa-minus-square fa-fw"></i> + <a href="#" class="board-toggle-column-view" data-column-id="<?= $column['id'] ?>"><?= t('Hide this column') ?></a> + </li> + <?php if ($this->user->hasProjectAccess('BoardPopover', 'closeColumnTasks', $column['project_id']) && $column['nb_tasks'] > 0): ?> + <li> + <i class="fa fa-close fa-fw"></i> + <?= $this->url->link(t('Close all tasks of this column'), 'BoardPopover', 'confirmCloseColumnTasks', array('project_id' => $column['project_id'], 'column_id' => $column['id'], 'swimlane_id' => $swimlane['id']), false, 'popover') ?> + </li> + <?php endif ?> + </ul> + </span> </span> <?php if (! $not_editable && ! empty($column['description'])): ?> diff --git a/app/Template/board/table_tasks.php b/app/Template/board/table_tasks.php index f10d48e4..e99e14fb 100644 --- a/app/Template/board/table_tasks.php +++ b/app/Template/board/table_tasks.php @@ -21,8 +21,8 @@ <!-- column in collapsed mode (rotated text) --> <div class="board-column-collapsed"> <div class="board-rotation-wrapper"> - <div class="board-column-title board-rotation" data-column-id="<?= $column['id'] ?>" title="<?= t('Show this column') ?>"> - <i class="fa fa-chevron-circle-up tooltip" title="<?= $this->e($column['title']) ?>"></i> <?= $this->e($column['title']) ?> + <div class="board-column-title board-rotation board-toggle-column-view" data-column-id="<?= $column['id'] ?>" title="<?= t('Show this column') ?>"> + <i class="fa fa-plus-square tooltip" title="<?= $this->e($column['title']) ?>"></i> <?= $this->e($column['title']) ?> </div> </div> </div> |