看板初始化提交
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
<?php if (! $is_ajax): ?>
|
||||
<div class="page-header">
|
||||
<h2><?= t('Average time spent in each column') ?></h2>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (empty($metrics)): ?>
|
||||
<p class="alert"><?= t('Not enough data to show the graph.') ?></p>
|
||||
<?php else: ?>
|
||||
<?= $this->app->component('chart-project-avg-time-column', array(
|
||||
'metrics' => $metrics,
|
||||
'label' => t('Average time spent'),
|
||||
)) ?>
|
||||
|
||||
<table class="table-striped">
|
||||
<tr>
|
||||
<th><?= t('Column') ?></th>
|
||||
<th><?= t('Average time spent') ?></th>
|
||||
</tr>
|
||||
<?php foreach ($metrics as $column): ?>
|
||||
<tr>
|
||||
<td><?= $this->text->e($column['title']) ?></td>
|
||||
<td><?= $this->dt->duration($column['average']) ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
|
||||
<p class="alert alert-info">
|
||||
<?= t('This chart shows the average time spent in each column for the last %d tasks.', 1000) ?>
|
||||
</p>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php if (! $is_ajax): ?>
|
||||
<div class="page-header">
|
||||
<h2><?= t('Burndown chart') ?></h2>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (! $display_graph): ?>
|
||||
<p class="alert"><?= t('You need at least 2 days of data to show the chart.') ?></p>
|
||||
<?php else: ?>
|
||||
<?= $this->app->component('chart-project-burndown', array(
|
||||
'metrics' => $metrics,
|
||||
'labelTotal' => t('Total for all columns'),
|
||||
'dateFormat' => e('%%Y-%%m-%%d'),
|
||||
)) ?>
|
||||
<?php endif ?>
|
||||
|
||||
<hr/>
|
||||
|
||||
<form method="post" class="form-inline" action="<?= $this->url->href('AnalyticController', 'burndown', array('project_id' => $project['id'])) ?>" autocomplete="off">
|
||||
<?= $this->form->csrf() ?>
|
||||
<?= $this->form->date(t('Start date'), 'from', $values) ?>
|
||||
<?= $this->form->date(t('End date'), 'to', $values) ?>
|
||||
<?= $this->modal->submitButtons(array('submitLabel' => t('Execute'))) ?>
|
||||
</form>
|
||||
|
||||
<p class="alert alert-info"><?= t('This chart show the task complexity over the time (Work Remaining).') ?></p>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php if (! $is_ajax): ?>
|
||||
<div class="page-header">
|
||||
<h2><?= t('Cumulative flow diagram') ?></h2>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (! $display_graph): ?>
|
||||
<p class="alert"><?= t('You need at least 2 days of data to show the chart.') ?></p>
|
||||
<?php else: ?>
|
||||
<?= $this->app->component('chart-project-cumulative-flow', array(
|
||||
'metrics' => $metrics,
|
||||
'dateFormat' => e('%%Y-%%m-%%d'),
|
||||
)) ?>
|
||||
<?php endif ?>
|
||||
|
||||
<hr/>
|
||||
|
||||
<form method="post" class="form-inline" action="<?= $this->url->href('AnalyticController', 'cfd', array('project_id' => $project['id'])) ?>" autocomplete="off">
|
||||
<?= $this->form->csrf() ?>
|
||||
<?= $this->form->date(t('Start date'), 'from', $values) ?>
|
||||
<?= $this->form->date(t('End date'), 'to', $values) ?>
|
||||
<?= $this->modal->submitButtons(array('submitLabel' => t('Execute'))) ?>
|
||||
</form>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php if (! $is_ajax): ?>
|
||||
<div class="page-header">
|
||||
<h2><?= t('Estimated vs actual time per column') ?></h2>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (empty($metrics)): ?>
|
||||
<p class="alert"><?= t('Not enough data to show the graph.') ?></p>
|
||||
<?php else: ?>
|
||||
<?= $this->app->component('chart-project-estimated-actual-column', array(
|
||||
'metrics' => $metrics,
|
||||
'labelSpent' => t('Hours Spent'),
|
||||
'labelEstimated' => t('Hours Estimated'),
|
||||
)) ?>
|
||||
|
||||
<table class="table-striped">
|
||||
<tr>
|
||||
<th><?= t('Column') ?></th>
|
||||
<th><?= t('Hours Spent') ?></th>
|
||||
<th><?= t('Hours Estimated') ?></th>
|
||||
</tr>
|
||||
<?php foreach ($metrics as $column): ?>
|
||||
<tr>
|
||||
<td><?= $this->text->e($column['title']) ?></td>
|
||||
<td><?= $this->dt->durationHours($column['hours_spent']) ?></td>
|
||||
<td><?= $this->dt->durationHours($column['hours_estimated']) ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php if ($is_ajax): ?>
|
||||
<div class="page-header">
|
||||
<h2><?= $title ?></h2>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<?= $this->projectHeader->render($project, 'TaskListController', 'show') ?>
|
||||
<?php endif ?>
|
||||
<section class="sidebar-container">
|
||||
<?= $this->render($sidebar_template, array('project' => $project)) ?>
|
||||
|
||||
<div class="sidebar-content">
|
||||
<?= $content_for_sublayout ?>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php if (! $is_ajax): ?>
|
||||
<div class="page-header">
|
||||
<h2><?= t('Average Lead and Cycle time') ?></h2>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<div class="panel">
|
||||
<ul>
|
||||
<li><?= t('Average lead time: ').'<strong>'.$this->dt->duration($average['avg_lead_time']) ?></strong></li>
|
||||
<li><?= t('Average cycle time: ').'<strong>'.$this->dt->duration($average['avg_cycle_time']) ?></strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<?php if (empty($metrics)): ?>
|
||||
<p class="alert"><?= t('Not enough data to show the graph.') ?></p>
|
||||
<?php else: ?>
|
||||
<?= $this->app->component('chart-project-lead-cycle-time', array(
|
||||
'metrics' => $metrics,
|
||||
'labelCycle' => t('Cycle Time'),
|
||||
'labelLead' => t('Lead Time'),
|
||||
)) ?>
|
||||
|
||||
<form method="post" class="form-inline" action="<?= $this->url->href('AnalyticController', 'leadAndCycleTime', array('project_id' => $project['id'])) ?>" autocomplete="off">
|
||||
<?= $this->form->csrf() ?>
|
||||
<?= $this->form->date(t('Start date'), 'from', $values) ?>
|
||||
<?= $this->form->date(t('End date'), 'to', $values) ?>
|
||||
<?= $this->modal->submitButtons(array('submitLabel' => t('Execute'))) ?>
|
||||
</form>
|
||||
|
||||
<p class="alert alert-info">
|
||||
<?= t('This chart shows the average lead and cycle time for the last %d tasks over the time.', 1000) ?>
|
||||
</p>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,30 @@
|
||||
<div class="sidebar">
|
||||
<ul>
|
||||
<li <?= $this->app->checkMenuSelection('AnalyticController', 'taskDistribution') ?>>
|
||||
<?= $this->modal->replaceLink(t('Task distribution'), 'AnalyticController', 'taskDistribution', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->checkMenuSelection('AnalyticController', 'userDistribution') ?>>
|
||||
<?= $this->modal->replaceLink(t('User repartition'), 'AnalyticController', 'userDistribution', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->checkMenuSelection('AnalyticController', 'cfd') ?>>
|
||||
<?= $this->modal->replaceLink(t('Cumulative flow diagram'), 'AnalyticController', 'cfd', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->checkMenuSelection('AnalyticController', 'burndown') ?>>
|
||||
<?= $this->modal->replaceLink(t('Burndown chart'), 'AnalyticController', 'burndown', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->checkMenuSelection('AnalyticController', 'averageTimeByColumn') ?>>
|
||||
<?= $this->modal->replaceLink(t('Average time into each column'), 'AnalyticController', 'averageTimeByColumn', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->checkMenuSelection('AnalyticController', 'leadAndCycleTime') ?>>
|
||||
<?= $this->modal->replaceLink(t('Lead and cycle time'), 'AnalyticController', 'leadAndCycleTime', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->checkMenuSelection('AnalyticController', 'timeComparison') ?>>
|
||||
<?= $this->modal->replaceLink(t('Estimated vs actual time'), 'AnalyticController', 'timeComparison', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->checkMenuSelection('AnalyticController', 'estimatedVsActualByColumn') ?>>
|
||||
<?= $this->modal->replaceLink(t('Estimated vs actual time per column'), 'AnalyticController', 'estimatedVsActualByColumn', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
|
||||
<?= $this->hook->render('template:analytic:sidebar', array('project' => $project)) ?>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php if (! $is_ajax): ?>
|
||||
<div class="page-header">
|
||||
<h2><?= t('Task distribution') ?></h2>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (empty($metrics)): ?>
|
||||
<p class="alert"><?= t('Not enough data to show the graph.') ?></p>
|
||||
<?php else: ?>
|
||||
<?= $this->app->component('chart-project-task-distribution', array(
|
||||
'metrics' => $metrics,
|
||||
)) ?>
|
||||
|
||||
<table class="table-striped">
|
||||
<tr>
|
||||
<th><?= t('Column') ?></th>
|
||||
<th><?= t('Number of tasks') ?></th>
|
||||
<th><?= t('Percentage') ?></th>
|
||||
</tr>
|
||||
<?php foreach ($metrics as $metric): ?>
|
||||
<tr>
|
||||
<td>
|
||||
<?= $this->text->e($metric['column_title']) ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $metric['nb_tasks'] ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= n($metric['percentage']) ?>%
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php if (! $is_ajax): ?>
|
||||
<div class="page-header">
|
||||
<h2><?= t('Estimated vs actual time') ?></h2>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<div class="panel">
|
||||
<ul>
|
||||
<li><?= t('Estimated hours: ').'<strong>'.$this->text->e($metrics['open']['time_estimated'] + $metrics['closed']['time_estimated']) ?></strong></li>
|
||||
<li><?= t('Actual hours: ').'<strong>'.$this->text->e($metrics['open']['time_spent'] + $metrics['closed']['time_spent']) ?></strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<?php if (empty($metrics)): ?>
|
||||
<p class="alert"><?= t('Not enough data to show the graph.') ?></p>
|
||||
<?php else: ?>
|
||||
<?php if ($paginator->isEmpty()): ?>
|
||||
<p class="alert"><?= t('No tasks found.') ?></p>
|
||||
<?php elseif (! $paginator->isEmpty()): ?>
|
||||
<?= $this->app->component('chart-project-time-comparison', array(
|
||||
'metrics' => $metrics,
|
||||
'labelSpent' => t('Hours Spent'),
|
||||
'labelEstimated' => t('Hours Estimated'),
|
||||
'labelClosed' => t('Closed'),
|
||||
'labelOpen' => t('Open'),
|
||||
)) ?>
|
||||
|
||||
<table class="table-fixed table-small table-scrolling">
|
||||
<tr>
|
||||
<th class="column-5"><?= $paginator->order(t('Id'), 'tasks.id') ?></th>
|
||||
<th><?= $paginator->order(t('Title'), 'tasks.title') ?></th>
|
||||
<th class="column-10"><?= $paginator->order(t('Status'), 'tasks.is_active') ?></th>
|
||||
<th class="column-12"><?= $paginator->order(t('Estimated Time'), 'tasks.time_estimated') ?></th>
|
||||
<th class="column-12"><?= $paginator->order(t('Actual Time'), 'tasks.time_spent') ?></th>
|
||||
</tr>
|
||||
<?php foreach ($paginator->getCollection() as $task): ?>
|
||||
<tr>
|
||||
<td class="task-table color-<?= $task['color_id'] ?>">
|
||||
<?= $this->url->link('#'.$this->text->e($task['id']), 'TaskViewController', 'show', array('task_id' => $task['id']), false, '', t('View this task')) ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $this->url->link($this->text->e($task['title']), 'TaskViewController', 'show', array('task_id' => $task['id']), false, '', t('View this task')) ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php if ($task['is_active'] == \Kanboard\Model\TaskModel::STATUS_OPEN): ?>
|
||||
<?= t('Open') ?>
|
||||
<?php else: ?>
|
||||
<?= t('Closed') ?>
|
||||
<?php endif ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $this->text->e($task['time_estimated']) ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $this->text->e($task['time_spent']) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
|
||||
<?= $paginator ?>
|
||||
<?php endif ?>
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php if (! $is_ajax): ?>
|
||||
<div class="page-header">
|
||||
<h2><?= t('User repartition') ?></h2>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (empty($metrics)): ?>
|
||||
<p class="alert"><?= t('Not enough data to show the graph.') ?></p>
|
||||
<?php else: ?>
|
||||
<?= $this->app->component('chart-project-user-distribution', array(
|
||||
'metrics' => $metrics,
|
||||
)) ?>
|
||||
|
||||
<table class="table-striped">
|
||||
<tr>
|
||||
<th><?= t('User') ?></th>
|
||||
<th><?= t('Number of tasks') ?></th>
|
||||
<th><?= t('Percentage') ?></th>
|
||||
</tr>
|
||||
<?php foreach ($metrics as $metric): ?>
|
||||
<tr>
|
||||
<td>
|
||||
<?= $this->text->e($metric['user']) ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $metric['nb_tasks'] ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= n($metric['percentage']) ?>%
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
<?php endif ?>
|
||||
Reference in New Issue
Block a user