summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/Controller/BoardPopover.php35
-rw-r--r--app/Locale/bs_BA/translations.php4
-rw-r--r--app/Locale/cs_CZ/translations.php4
-rw-r--r--app/Locale/da_DK/translations.php4
-rw-r--r--app/Locale/de_DE/translations.php4
-rw-r--r--app/Locale/es_ES/translations.php4
-rw-r--r--app/Locale/fi_FI/translations.php4
-rw-r--r--app/Locale/fr_FR/translations.php4
-rw-r--r--app/Locale/hu_HU/translations.php4
-rw-r--r--app/Locale/id_ID/translations.php4
-rw-r--r--app/Locale/it_IT/translations.php4
-rw-r--r--app/Locale/ja_JP/translations.php4
-rw-r--r--app/Locale/my_MY/translations.php9
-rw-r--r--app/Locale/nb_NO/translations.php4
-rw-r--r--app/Locale/nl_NL/translations.php4
-rw-r--r--app/Locale/pl_PL/translations.php4
-rw-r--r--app/Locale/pt_BR/translations.php4
-rw-r--r--app/Locale/pt_PT/translations.php4
-rw-r--r--app/Locale/ru_RU/translations.php4
-rw-r--r--app/Locale/sr_Latn_RS/translations.php4
-rw-r--r--app/Locale/sv_SE/translations.php4
-rw-r--r--app/Locale/th_TH/translations.php4
-rw-r--r--app/Locale/tr_TR/translations.php4
-rw-r--r--app/Locale/zh_CN/translations.php4
-rw-r--r--app/Model/TaskStatus.php26
-rw-r--r--app/Template/board/popover_assignee.php30
-rw-r--r--app/Template/board/popover_category.php30
-rw-r--r--app/Template/board/popover_close_all_tasks_column.php18
-rw-r--r--app/Template/board/table_column.php18
-rw-r--r--app/Template/board/table_tasks.php4
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>