看板初始化提交
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
<div class="page-header">
|
||||
<h2><?= t('Clone this project') ?></h2>
|
||||
</div>
|
||||
|
||||
<div class="confirm">
|
||||
<p class="alert alert-info">
|
||||
<?= t('Which parts of the project do you want to duplicate?') ?>
|
||||
</p>
|
||||
<form method="post" action="<?= $this->url->href('ProjectViewController', 'doDuplication', array('project_id' => $project['id'], 'duplicate' => 'yes')) ?>" autocomplete="off">
|
||||
|
||||
<?= $this->form->csrf() ?>
|
||||
|
||||
<?php if ($project['is_private'] == 0): ?>
|
||||
<?= $this->form->checkbox('projectPermissionModel', t('Permissions'), 1, true) ?>
|
||||
<?= $this->form->checkbox('projectRoleModel', t('Custom roles'), 1, true) ?>
|
||||
<?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('customFilterModel', t('Custom filters'), 1, true) ?>
|
||||
<?= $this->form->checkbox('projectMetadataModel', t('Metadata'), 1, false) ?>
|
||||
<?= $this->form->checkbox('projectTaskDuplicationModel', t('Tasks'), 1, false) ?>
|
||||
|
||||
<div class="form-actions">
|
||||
<button type="submit" class="btn btn-red"><?= t('Duplicate') ?></button>
|
||||
<?= t('or') ?> <?= $this->url->link(t('cancel'), 'ProjectViewController', 'show', array('project_id' => $project['id'])) ?>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,15 @@
|
||||
<div class="page-header">
|
||||
<h2><?= t('Import tasks from another project') ?></h2>
|
||||
</div>
|
||||
<?php if (count($projects) > 0): ?>
|
||||
<form method="post" action="<?= $this->url->href('ProjectViewController', 'doTasksImport', ['project_id' => $project['id']]) ?>">
|
||||
<?= $this->form->csrf() ?>
|
||||
|
||||
<?= $this->form->label(t('Select the project to copy tasks from'), 'src_project_id') ?>
|
||||
<?= $this->form->select('src_project_id', $projects, $values, $errors) ?>
|
||||
|
||||
<?= $this->modal->submitButtons(['submitLabel' => t('Save')]) ?>
|
||||
</form>
|
||||
<?php else: ?>
|
||||
<p class="alert alert-info"><?= t('No other projects found.') ?></p>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,15 @@
|
||||
<div class="page-header">
|
||||
<h2><?= t('Integration with third-party services') ?></h2>
|
||||
</div>
|
||||
|
||||
<form method="post" action="<?= $this->url->href('ProjectViewController', 'updateIntegrations', array('project_id' => $project['id'])) ?>" autocomplete="off">
|
||||
<?= $this->form->csrf() ?>
|
||||
|
||||
<?php $integrations = $this->hook->render('template:project:integrations', array('project' => $project, 'values' => $values, 'webhook_token' => $webhook_token)) ?>
|
||||
|
||||
<?php if (empty($integrations)): ?>
|
||||
<p class="alert"><?= t('There is no integration registered at the moment.') ?></p>
|
||||
<?php else: ?>
|
||||
<?= $integrations ?>
|
||||
<?php endif ?>
|
||||
</form>
|
||||
@@ -0,0 +1,20 @@
|
||||
<div class="page-header">
|
||||
<h2><?= t('Notifications') ?></h2>
|
||||
</div>
|
||||
<?php if (empty($types)): ?>
|
||||
<p class="alert"><?= t('No plugin has registered a project notification method. You can still configure individual notifications in your user profile.') ?></p>
|
||||
<?php else: ?>
|
||||
<form method="post" action="<?= $this->url->href('ProjectViewController', 'updateNotifications', array('project_id' => $project['id'])) ?>" autocomplete="off">
|
||||
|
||||
<?= $this->form->csrf() ?>
|
||||
|
||||
<h4><?= t('Notification methods:') ?></h4>
|
||||
<?= $this->form->checkboxes('notification_types', $types, $notifications) ?>
|
||||
|
||||
<div class="form-actions">
|
||||
<button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
|
||||
<?= t('or') ?>
|
||||
<?= $this->url->link(t('cancel'), 'ProjectViewController', 'show', array('project_id' => $project['id'])) ?>
|
||||
</div>
|
||||
</form>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,20 @@
|
||||
<div class="page-header">
|
||||
<h2><?= t('Public access') ?></h2>
|
||||
</div>
|
||||
|
||||
|
||||
<?php if ($project['is_public']): ?>
|
||||
|
||||
<div class="panel">
|
||||
<ul class="no-bullet">
|
||||
<li><strong><?= $this->url->icon('share-alt', t('Public link'), 'BoardViewController', 'readonly', array('token' => $project['token']), false, '', '', true) ?></strong></li>
|
||||
<li><strong><?= $this->url->icon('rss-square', t('RSS feed'), 'FeedController', 'project', array('token' => $project['token']), false, '', '', true) ?></strong></li>
|
||||
<li><strong><?= $this->url->icon('calendar', t('iCal feed'), 'ICalendarController', 'project', array('token' => $project['token']), false, '', '', true) ?></strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<?= $this->url->link(t('Disable public access'), 'ProjectViewController', 'updateSharing', array('project_id' => $project['id'], 'switch' => 'disable'), true, 'btn btn-red') ?>
|
||||
<?php else: ?>
|
||||
<p class="alert alert-info"><?= t('This feature enables the iCal feed, RSS feed and the public board view.') ?></p>
|
||||
<?= $this->url->link(t('Enable public access'), 'ProjectViewController', 'updateSharing', array('project_id' => $project['id'], 'switch' => 'enable'), true, 'btn btn-blue') ?>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,98 @@
|
||||
<div class="page-header">
|
||||
<h2><?= t('Summary') ?></h2>
|
||||
</div>
|
||||
<ul class="panel">
|
||||
<li><strong><?= $project['is_active'] ? t('This project is open') : t('This project is closed') ?></strong></li>
|
||||
|
||||
<?php if ($project['owner_id'] > 0): ?>
|
||||
<li><?= t('Project owner: ') ?><strong><?= $this->text->e($project['owner_name'] ?: $project['owner_username']) ?></strong></li>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($project['is_private']): ?>
|
||||
<li><i class="fa fa-lock"></i> <?= t('This project is personal') ?></li>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($project['is_public']): ?>
|
||||
<li><?= $this->url->icon('share-alt', t('Public link'), 'BoardViewController', 'readonly', array('token' => $project['token']), false, '', '', true) ?></li>
|
||||
<li><?= $this->url->icon('rss-square', t('RSS feed'), 'FeedController', 'project', array('token' => $project['token']), false, '', '', true) ?></li>
|
||||
<li><?= $this->url->icon('calendar', t('iCal feed'), 'ICalendarController', 'project', array('token' => $project['token'])) ?></li>
|
||||
<?php else: ?>
|
||||
<li><?= t('Public access disabled') ?></li>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($project['last_modified']): ?>
|
||||
<li><?= t('Modified:').' '.$this->dt->datetime($project['last_modified']) ?></li>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($project['start_date']): ?>
|
||||
<li><?= t('Start date: ').$this->dt->date($project['start_date']) ?></li>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($project['end_date']): ?>
|
||||
<li><?= t('End date: ').$this->dt->date($project['end_date']) ?></li>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($project['per_swimlane_task_limits']): ?>
|
||||
<li><?= t('Column task limits are applied to each swimlane individually') ?></li>
|
||||
<?php else: ?>
|
||||
<li><?= t('Column task limits are applied across swimlanes') ?></li>
|
||||
<?php endif ?>
|
||||
|
||||
<li><?= t('Task limit: ') ?><?= $project['task_limit'] ? $project['task_limit'] : '∞' ?></li>
|
||||
</ul>
|
||||
|
||||
<?php if (! empty($project['description'])): ?>
|
||||
<div class="page-header">
|
||||
<h2><?= t('Description') ?></h2>
|
||||
</div>
|
||||
|
||||
<?= $this->hook->render('template:project:view:form', array('values' => $values, 'errors' => $errors)) ?>
|
||||
|
||||
|
||||
<article class="markdown">
|
||||
<?= $this->text->markdown($project['description']) ?>
|
||||
</article>
|
||||
<?php endif ?>
|
||||
|
||||
<div class="page-header">
|
||||
<h2><?= t('Columns') ?></h2>
|
||||
</div>
|
||||
<?php if (empty($columns)): ?>
|
||||
<p class="alert alert-error"><?= t('Your board doesn\'t have any columns!') ?></p>
|
||||
<?php else: ?>
|
||||
<table class="table-striped table-scrolling">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="column-40"><?= t('Column') ?></th>
|
||||
<th class="column-10"><?= t('Task limit') ?></th>
|
||||
<th class="column-20"><?= t('Visible on dashboard') ?></th>
|
||||
<th class="column-15"><?= t('Open tasks') ?></th>
|
||||
<th class="column-15"><?= t('Closed tasks') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($columns as $column): ?>
|
||||
<tr data-column-id="<?= $column['id'] ?>">
|
||||
<td>
|
||||
<?= $this->text->e($column['title']) ?>
|
||||
<?php if (! empty($column['description'])): ?>
|
||||
<?= $this->app->tooltipMarkdown($column['description']) ?>
|
||||
<?php endif ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $column['task_limit'] ?: '∞' ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $column['hide_in_dashboard'] == 0 ? t('Yes') : t('No') ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $column['nb_open_tasks'] ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $column['nb_closed_tasks'] ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif ?>
|
||||
Reference in New Issue
Block a user