diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/Model/ProjectDuplicationModel.php | 21 | ||||
-rw-r--r-- | app/Model/TagDuplicationModel.php | 20 | ||||
-rw-r--r-- | app/Template/project_creation/create.php | 1 | ||||
-rw-r--r-- | app/Template/project_view/duplicate.php | 3 |
4 files changed, 42 insertions, 3 deletions
diff --git a/app/Model/ProjectDuplicationModel.php b/app/Model/ProjectDuplicationModel.php index b67f8302..4db8f767 100644 --- a/app/Model/ProjectDuplicationModel.php +++ b/app/Model/ProjectDuplicationModel.php @@ -22,7 +22,15 @@ class ProjectDuplicationModel extends Base */ public function getOptionalSelection() { - return array('categoryModel', 'projectPermissionModel', 'actionModel', 'swimlaneModel', 'taskModel', 'projectMetadataModel'); + return array( + 'categoryModel', + 'projectPermissionModel', + 'actionModel', + 'swimlaneModel', + 'tagDuplicationModel', + 'projectMetadataModel', + 'taskModel', + ); } /** @@ -33,7 +41,16 @@ class ProjectDuplicationModel extends Base */ public function getPossibleSelection() { - return array('boardModel', 'categoryModel', 'projectPermissionModel', 'actionModel', 'swimlaneModel', 'taskModel', 'projectMetadataModel'); + return array( + 'boardModel', + 'categoryModel', + 'projectPermissionModel', + 'actionModel', + 'swimlaneModel', + 'tagDuplicationModel', + 'projectMetadataModel', + 'taskModel', + ); } /** diff --git a/app/Model/TagDuplicationModel.php b/app/Model/TagDuplicationModel.php index 1876391d..fb0d8170 100644 --- a/app/Model/TagDuplicationModel.php +++ b/app/Model/TagDuplicationModel.php @@ -13,6 +13,26 @@ use Kanboard\Core\Base; class TagDuplicationModel extends Base { /** + * Duplicate project tags to another project + * + * @access public + * @param integer $src_project_id + * @param integer $dst_project_id + * @return bool + */ + public function duplicate($src_project_id, $dst_project_id) + { + $tags = $this->tagModel->getAllByProject($src_project_id); + $results = array(); + + foreach ($tags as $tag) { + $results[] = $this->tagModel->create($dst_project_id, $tag['name']); + } + + return ! in_array(false, $results, true); + } + + /** * Link tags to the new tasks * * @access public diff --git a/app/Template/project_creation/create.php b/app/Template/project_creation/create.php index 01d06bab..dc1bc370 100644 --- a/app/Template/project_creation/create.php +++ b/app/Template/project_creation/create.php @@ -23,6 +23,7 @@ <?php endif ?> <?= $this->form->checkbox('categoryModel', t('Categories'), 1, true) ?> + <?= $this->form->checkbox('tagDuplicationModel', t('Tags'), 1, true) ?> <?= $this->form->checkbox('actionModel', t('Actions'), 1, true) ?> <?= $this->form->checkbox('swimlaneModel', t('Swimlanes'), 1, true) ?> <?= $this->form->checkbox('taskModel', t('Tasks'), 1, false) ?> diff --git a/app/Template/project_view/duplicate.php b/app/Template/project_view/duplicate.php index d2cd127a..a9680016 100644 --- a/app/Template/project_view/duplicate.php +++ b/app/Template/project_view/duplicate.php @@ -15,10 +15,11 @@ <?php endif ?> <?= $this->form->checkbox('categoryModel', t('Categories'), 1, true) ?> + <?= $this->form->checkbox('tagDuplicationModel', t('Tags'), 1, true) ?> <?= $this->form->checkbox('actionModel', t('Actions'), 1, true) ?> <?= $this->form->checkbox('swimlaneModel', t('Swimlanes'), 1, false) ?> - <?= $this->form->checkbox('taskModel', t('Tasks'), 1, false) ?> <?= $this->form->checkbox('projectMetadataModel', t('Metadata'), 1, false) ?> + <?= $this->form->checkbox('taskModel', t('Tasks'), 1, false) ?> <div class="form-actions"> <button type="submit" class="btn btn-red"><?= t('Duplicate') ?></button> |