Add section for predefined contents
This commit is contained in:
parent
0a3f2a6a32
commit
48b40ec7bf
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
|
||||
namespace Kanboard\Controller;
|
||||
|
||||
/**
|
||||
* Project Predefined Content Controller
|
||||
*
|
||||
* @package Kanboard\Controller
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class ProjectPredefinedContentController extends BaseController
|
||||
{
|
||||
/**
|
||||
* Edit project
|
||||
*
|
||||
* @access public
|
||||
* @param array $values
|
||||
* @param array $errors
|
||||
*/
|
||||
public function show(array $values = array(), array $errors = array())
|
||||
{
|
||||
$project = $this->getProject();
|
||||
|
||||
$this->response->html($this->helper->layout->project('project_predefined_content/show', array(
|
||||
'values' => empty($values) ? $project : $values,
|
||||
'errors' => $errors,
|
||||
'project' => $project,
|
||||
'title' => t('Predefined Contents')
|
||||
)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate and update a project
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function update()
|
||||
{
|
||||
$project = $this->getProject();
|
||||
$values = $this->request->getValues();
|
||||
|
||||
$values = array(
|
||||
'id' => $project['id'],
|
||||
'name' => $project['name'],
|
||||
'predefined_email_subjects' => isset($values['predefined_email_subjects']) ? $values['predefined_email_subjects'] : '',
|
||||
);
|
||||
|
||||
list($valid, $errors) = $this->projectValidator->validateModification($values);
|
||||
|
||||
if ($valid) {
|
||||
if ($this->projectModel->update($values)) {
|
||||
$this->flash->success(t('Project updated successfully.'));
|
||||
return $this->response->redirect($this->helper->url->to('ProjectPredefinedContentController', 'show', array('project_id' => $project['id'])), true);
|
||||
} else {
|
||||
$this->flash->failure(t('Unable to update this project.'));
|
||||
}
|
||||
}
|
||||
|
||||
return $this->show($values, $errors);
|
||||
}
|
||||
}
|
||||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
'Subtask added successfully.' => 'Sous-tâche ajoutée avec succès.',
|
||||
'%d subtasks added successfully.' => '%d sous-tâches ajoutées avec succès.',
|
||||
'Enter one subtask by line.' => 'Entrez une sous-tâche par ligne.',
|
||||
'Predefined Contents' => 'Contenus prédéfini',
|
||||
'Predefined contents' => 'Contenus prédéfini',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
'Subtask added successfully.' => 'サブタスクを追加しました',
|
||||
'%d subtasks added successfully.' => '%d 件のサブタスクを追加しました',
|
||||
'Enter one subtask by line.' => '1行に1件のサブタスクを入力',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
'Subtask added successfully.' => 'Подзадача успешно добавлена.',
|
||||
'%d subtasks added successfully.' => '%d подзадач(а) успешно добавлено.',
|
||||
'Enter one subtask by line.' => 'Записывайте по одной подзадаче на строку.',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1349,4 +1349,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1343,4 +1343,6 @@ return array(
|
|||
// 'Subtask added successfully.' => '',
|
||||
// '%d subtasks added successfully.' => '',
|
||||
// 'Enter one subtask by line.' => '',
|
||||
// 'Predefined Contents' => '',
|
||||
// 'Predefined contents' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ class AuthenticationProvider implements ServiceProviderInterface
|
|||
$acl->add('ProjectViewController', array('share', 'updateSharing', 'integrations', 'updateIntegrations', 'notifications', 'updateNotifications', 'duplicate', 'doDuplication'), Role::PROJECT_MANAGER);
|
||||
$acl->add('ProjectPermissionController', '*', Role::PROJECT_MANAGER);
|
||||
$acl->add('ProjectEditController', '*', Role::PROJECT_MANAGER);
|
||||
$acl->add('ProjectPredefinedContentController', '*', Role::PROJECT_MANAGER);
|
||||
$acl->add('ProjectFileController', '*', Role::PROJECT_MEMBER);
|
||||
$acl->add('ProjectUserOverviewController', '*', Role::PROJECT_MANAGER);
|
||||
$acl->add('ProjectStatusController', '*', Role::PROJECT_MANAGER);
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@
|
|||
<li <?= $this->app->checkMenuSelection('ProjectEditController') ?>>
|
||||
<?= $this->url->link(t('Edit project'), 'ProjectEditController', 'show', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->checkMenuSelection('ProjectPredefinedContentController') ?>>
|
||||
<?= $this->url->link(t('Predefined contents'), 'ProjectPredefinedContentController', 'show', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->checkMenuSelection('ProjectViewController', 'share') ?>>
|
||||
<?= $this->url->link(t('Public access'), 'ProjectViewController', 'share', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -62,11 +62,5 @@
|
|||
<?= $this->form->number('priority_end', $values, $errors, array('tabindex="10"')) ?>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend><?= t('Predefined Email Subjects') ?></legend>
|
||||
<?= $this->form->textarea('predefined_email_subjects', $values, $errors, array('tabindex="11"')) ?>
|
||||
<p class="form-help"><?= t('Write one subject by line.') ?></p>
|
||||
</fieldset>
|
||||
|
||||
<?= $this->modal->submitButtons(array('tabindex' => 11)) ?>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
<div class="page-header">
|
||||
<h2><?= t('Predefined Contents') ?></h2>
|
||||
</div>
|
||||
<form method="post" action="<?= $this->url->href('ProjectPredefinedContentController', 'update', array('project_id' => $project['id'], 'redirect' => 'edit')) ?>" autocomplete="off">
|
||||
<?= $this->form->csrf() ?>
|
||||
|
||||
<fieldset>
|
||||
<legend><?= t('Predefined Email Subjects') ?></legend>
|
||||
<?= $this->form->textarea('predefined_email_subjects', $values, $errors, array('tabindex="1"')) ?>
|
||||
<p class="form-help"><?= t('Write one subject by line.') ?></p>
|
||||
</fieldset>
|
||||
|
||||
<?= $this->modal->submitButtons(array('tabindex' => 2)) ?>
|
||||
</form>
|
||||
|
|
@ -210,6 +210,7 @@ return array(
|
|||
'Kanboard\\Controller\\ProjectListController' => $baseDir . '/app/Controller/ProjectListController.php',
|
||||
'Kanboard\\Controller\\ProjectOverviewController' => $baseDir . '/app/Controller/ProjectOverviewController.php',
|
||||
'Kanboard\\Controller\\ProjectPermissionController' => $baseDir . '/app/Controller/ProjectPermissionController.php',
|
||||
'Kanboard\\Controller\\ProjectPredefinedContentController' => $baseDir . '/app/Controller/ProjectPredefinedContentController.php',
|
||||
'Kanboard\\Controller\\ProjectRoleController' => $baseDir . '/app/Controller/ProjectRoleController.php',
|
||||
'Kanboard\\Controller\\ProjectRoleRestrictionController' => $baseDir . '/app/Controller/ProjectRoleRestrictionController.php',
|
||||
'Kanboard\\Controller\\ProjectStatusController' => $baseDir . '/app/Controller/ProjectStatusController.php',
|
||||
|
|
|
|||
|
|
@ -346,6 +346,7 @@ class ComposerStaticInit6edea6294a88689e3f5c56484bb70c9b
|
|||
'Kanboard\\Controller\\ProjectListController' => __DIR__ . '/../..' . '/app/Controller/ProjectListController.php',
|
||||
'Kanboard\\Controller\\ProjectOverviewController' => __DIR__ . '/../..' . '/app/Controller/ProjectOverviewController.php',
|
||||
'Kanboard\\Controller\\ProjectPermissionController' => __DIR__ . '/../..' . '/app/Controller/ProjectPermissionController.php',
|
||||
'Kanboard\\Controller\\ProjectPredefinedContentController' => __DIR__ . '/../..' . '/app/Controller/ProjectPredefinedContentController.php',
|
||||
'Kanboard\\Controller\\ProjectRoleController' => __DIR__ . '/../..' . '/app/Controller/ProjectRoleController.php',
|
||||
'Kanboard\\Controller\\ProjectRoleRestrictionController' => __DIR__ . '/../..' . '/app/Controller/ProjectRoleRestrictionController.php',
|
||||
'Kanboard\\Controller\\ProjectStatusController' => __DIR__ . '/../..' . '/app/Controller/ProjectStatusController.php',
|
||||
|
|
|
|||
Loading…
Reference in New Issue