Move timetable to a plugin

Plugin repository: https://github.com/kanboard/plugin-timetable
This commit is contained in:
Frederic Guillot
2015-09-20 18:24:15 -04:00
parent 2021dccc5a
commit e6f547abcf
59 changed files with 137 additions and 2468 deletions

View File

@@ -6,22 +6,24 @@
<?= $this->form->csrf() ?>
<h3><?= t('Project calendar view') ?></h3>
<div class="listing">
<h3><?= t('Project calendar view') ?></h3>
<?= $this->form->radios('calendar_project_tasks', array(
'date_creation' => t('Show tasks based on the creation date'),
'date_started' => t('Show tasks based on the start date'),
), $values) ?>
</div>
<h3><?= t('User calendar view') ?></h3>
<div class="listing">
<h3><?= t('User calendar view') ?></h3>
<?= $this->form->radios('calendar_user_tasks', array(
'date_creation' => t('Show tasks based on the creation date'),
'date_started' => t('Show tasks based on the start date'),
), $values) ?>
</div>
<h4><?= t('Subtasks time tracking') ?></h4>
<div class="listing">
<h3><?= t('Subtasks time tracking') ?></h3>
<?= $this->form->checkbox('calendar_user_subtasks_time_tracking', t('Show subtasks based on the time tracking'), 1, $values['calendar_user_subtasks_time_tracking'] == 1) ?>
</div>

View File

@@ -1,44 +0,0 @@
<div class="page-header">
<h2><?= t('Timetable') ?></h2>
<ul>
<li><?= $this->url->link(t('Day timetable'), 'timetableday', 'index', array('user_id' => $user['id'])) ?></li>
<li><?= $this->url->link(t('Week timetable'), 'timetableweek', 'index', array('user_id' => $user['id'])) ?></li>
<li><?= $this->url->link(t('Time off timetable'), 'timetableoff', 'index', array('user_id' => $user['id'])) ?></li>
<li><?= $this->url->link(t('Overtime timetable'), 'timetableextra', 'index', array('user_id' => $user['id'])) ?></li>
</ul>
</div>
<form method="get" action="?" autocomplete="off" class="form-inline">
<?= $this->form->hidden('controller', $values) ?>
<?= $this->form->hidden('action', $values) ?>
<?= $this->form->hidden('user_id', $values) ?>
<?= $this->form->label(t('From'), 'from') ?>
<?= $this->form->text('from', $values, array(), array(), 'form-date') ?>
<?= $this->form->label(t('To'), 'to') ?>
<?= $this->form->text('to', $values, array(), array(), 'form-date') ?>
<input type="submit" value="<?= t('Execute') ?>" class="btn btn-blue"/>
</form>
<?php if (! empty($timetable)): ?>
<hr/>
<h3><?= t('Work timetable') ?></h3>
<table class="table-fixed table-stripped">
<tr>
<th><?= t('Day') ?></th>
<th><?= t('Start') ?></th>
<th><?= t('End') ?></th>
</tr>
<?php foreach ($timetable as $slot): ?>
<tr>
<td><?= dt('%B %e, %Y', $slot[0]->getTimestamp()) ?></td>
<td><?= dt('%k:%M %p', $slot[0]->getTimestamp()) ?></td>
<td><?= dt('%k:%M %p', $slot[1]->getTimestamp()) ?></td>
</tr>
<?php endforeach ?>
</table>
<?php endif ?>

View File

@@ -1,45 +0,0 @@
<div class="page-header">
<h2><?= t('Day timetable') ?></h2>
</div>
<?php if (! empty($timetable)): ?>
<table class="table-fixed table-stripped">
<tr>
<th><?= t('Start time') ?></th>
<th><?= t('End time') ?></th>
<th><?= t('Action') ?></th>
</tr>
<?php foreach ($timetable as $slot): ?>
<tr>
<td><?= $slot['start'] ?></td>
<td><?= $slot['end'] ?></td>
<td>
<?= $this->url->link(t('Remove'), 'timetableday', 'confirm', array('user_id' => $user['id'], 'slot_id' => $slot['id'])) ?>
</td>
</tr>
<?php endforeach ?>
</table>
<h3><?= t('Add new time slot') ?></h3>
<?php endif ?>
<form method="post" action="<?= $this->url->href('timetableday', 'save', array('user_id' => $user['id'])) ?>" autocomplete="off">
<?= $this->form->hidden('user_id', $values) ?>
<?= $this->form->csrf() ?>
<?= $this->form->label(t('Start time'), 'start') ?>
<?= $this->form->select('start', $this->dt->getDayHours(), $values, $errors) ?>
<?= $this->form->label(t('End time'), 'end') ?>
<?= $this->form->select('end', $this->dt->getDayHours(), $values, $errors) ?>
<div class="form-actions">
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
</div>
</form>
<p class="alert alert-info">
<?= t('This timetable is used when the checkbox "all day" is checked for scheduled time off and overtime.') ?>
</p>

View File

@@ -1,13 +0,0 @@
<div class="page-header">
<h2><?= t('Remove time slot') ?></h2>
</div>
<div class="confirm">
<p class="alert alert-info"><?= t('Do you really want to remove this time slot?') ?></p>
<div class="form-actions">
<?= $this->url->link(t('Yes'), 'timetableday', 'remove', array('user_id' => $user['id'], 'slot_id' => $slot_id), true, 'btn btn-red') ?>
<?= t('or') ?>
<?= $this->url->link(t('cancel'), 'timetableday', 'index', array('user_id' => $user['id'])) ?>
</div>
</div>

View File

@@ -1,56 +0,0 @@
<div class="page-header">
<h2><?= t('Overtime timetable') ?></h2>
</div>
<?php if (! $paginator->isEmpty()): ?>
<table class="table-fixed table-stripped">
<tr>
<th><?= $paginator->order(t('Day'), 'Day') ?></th>
<th><?= $paginator->order(t('All day'), 'all_day') ?></th>
<th><?= $paginator->order(t('Start time'), 'start') ?></th>
<th><?= $paginator->order(t('End time'), 'end') ?></th>
<th class="column-40"><?= t('Comment') ?></th>
<th><?= t('Action') ?></th>
</tr>
<?php foreach ($paginator->getCollection() as $slot): ?>
<tr>
<td><?= $slot['date'] ?></td>
<td><?= $slot['all_day'] == 1 ? t('Yes') : t('No') ?></td>
<td><?= $slot['start'] ?></td>
<td><?= $slot['end'] ?></td>
<td><?= $this->e($slot['comment']) ?></td>
<td>
<?= $this->url->link(t('Remove'), 'timetableextra', 'confirm', array('user_id' => $user['id'], 'slot_id' => $slot['id'])) ?>
</td>
</tr>
<?php endforeach ?>
</table>
<?= $paginator ?>
<?php endif ?>
<form method="post" action="<?= $this->url->href('timetableextra', 'save', array('user_id' => $user['id'])) ?>" autocomplete="off">
<?= $this->form->hidden('user_id', $values) ?>
<?= $this->form->csrf() ?>
<?= $this->form->label(t('Day'), 'date') ?>
<?= $this->form->text('date', $values, $errors, array('required'), 'form-date') ?>
<?= $this->form->checkbox('all_day', t('All day'), 1) ?>
<?= $this->form->label(t('Start time'), 'start') ?>
<?= $this->form->select('start', $this->dt->getDayHours(), $values, $errors) ?>
<?= $this->form->label(t('End time'), 'end') ?>
<?= $this->form->select('end', $this->dt->getDayHours(), $values, $errors) ?>
<?= $this->form->label(t('Comment'), 'comment') ?>
<?= $this->form->text('comment', $values, $errors) ?>
<div class="form-actions">
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
</div>
</form>

View File

@@ -1,13 +0,0 @@
<div class="page-header">
<h2><?= t('Remove time slot') ?></h2>
</div>
<div class="confirm">
<p class="alert alert-info"><?= t('Do you really want to remove this time slot?') ?></p>
<div class="form-actions">
<?= $this->url->link(t('Yes'), 'timetableextra', 'remove', array('user_id' => $user['id'], 'slot_id' => $slot_id), true, 'btn btn-red') ?>
<?= t('or') ?>
<?= $this->url->link(t('cancel'), 'timetableextra', 'index', array('user_id' => $user['id'])) ?>
</div>
</div>

View File

@@ -1,56 +0,0 @@
<div class="page-header">
<h2><?= t('Time off timetable') ?></h2>
</div>
<?php if (! $paginator->isEmpty()): ?>
<table class="table-fixed table-stripped">
<tr>
<th><?= $paginator->order(t('Day'), 'Day') ?></th>
<th><?= $paginator->order(t('All day'), 'all_day') ?></th>
<th><?= $paginator->order(t('Start time'), 'start') ?></th>
<th><?= $paginator->order(t('End time'), 'end') ?></th>
<th class="column-40"><?= t('Comment') ?></th>
<th><?= t('Action') ?></th>
</tr>
<?php foreach ($paginator->getCollection() as $slot): ?>
<tr>
<td><?= $slot['date'] ?></td>
<td><?= $slot['all_day'] == 1 ? t('Yes') : t('No') ?></td>
<td><?= $slot['start'] ?></td>
<td><?= $slot['end'] ?></td>
<td><?= $this->e($slot['comment']) ?></td>
<td>
<?= $this->url->link(t('Remove'), 'timetableoff', 'confirm', array('user_id' => $user['id'], 'slot_id' => $slot['id'])) ?>
</td>
</tr>
<?php endforeach ?>
</table>
<?= $paginator ?>
<?php endif ?>
<form method="post" action="<?= $this->url->href('timetableoff', 'save', array('user_id' => $user['id'])) ?>" autocomplete="off">
<?= $this->form->hidden('user_id', $values) ?>
<?= $this->form->csrf() ?>
<?= $this->form->label(t('Day'), 'date') ?>
<?= $this->form->text('date', $values, $errors, array('required'), 'form-date') ?>
<?= $this->form->checkbox('all_day', t('All day'), 1) ?>
<?= $this->form->label(t('Start time'), 'start') ?>
<?= $this->form->select('start', $this->dt->getDayHours(), $values, $errors) ?>
<?= $this->form->label(t('End time'), 'end') ?>
<?= $this->form->select('end', $this->dt->getDayHours(), $values, $errors) ?>
<?= $this->form->label(t('Comment'), 'comment') ?>
<?= $this->form->text('comment', $values, $errors) ?>
<div class="form-actions">
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
</div>
</form>

View File

@@ -1,13 +0,0 @@
<div class="page-header">
<h2><?= t('Remove time slot') ?></h2>
</div>
<div class="confirm">
<p class="alert alert-info"><?= t('Do you really want to remove this time slot?') ?></p>
<div class="form-actions">
<?= $this->url->link(t('Yes'), 'timetableoff', 'remove', array('user_id' => $user['id'], 'slot_id' => $slot_id), true, 'btn btn-red') ?>
<?= t('or') ?>
<?= $this->url->link(t('cancel'), 'timetableoff', 'index', array('user_id' => $user['id'])) ?>
</div>
</div>

View File

@@ -1,46 +0,0 @@
<div class="page-header">
<h2><?= t('Week timetable') ?></h2>
</div>
<?php if (! empty($timetable)): ?>
<table class="table-fixed table-stripped">
<tr>
<th><?= t('Day') ?></th>
<th><?= t('Start time') ?></th>
<th><?= t('End time') ?></th>
<th><?= t('Action') ?></th>
</tr>
<?php foreach ($timetable as $slot): ?>
<tr>
<td><?= $this->dt->getWeekDay($slot['day']) ?></td>
<td><?= $slot['start'] ?></td>
<td><?= $slot['end'] ?></td>
<td>
<?= $this->url->link(t('Remove'), 'timetableweek', 'confirm', array('user_id' => $user['id'], 'slot_id' => $slot['id'])) ?>
</td>
</tr>
<?php endforeach ?>
</table>
<h3><?= t('Add new time slot') ?></h3>
<?php endif ?>
<form method="post" action="<?= $this->url->href('timetableweek', 'save', array('user_id' => $user['id'])) ?>" autocomplete="off">
<?= $this->form->hidden('user_id', $values) ?>
<?= $this->form->csrf() ?>
<?= $this->form->label(t('Day'), 'day') ?>
<?= $this->form->select('day', $this->dt->getWeekDays(), $values, $errors) ?>
<?= $this->form->label(t('Start time'), 'start') ?>
<?= $this->form->select('start', $this->dt->getDayHours(), $values, $errors) ?>
<?= $this->form->label(t('End time'), 'end') ?>
<?= $this->form->select('end', $this->dt->getDayHours(), $values, $errors) ?>
<div class="form-actions">
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
</div>
</form>

View File

@@ -1,13 +0,0 @@
<div class="page-header">
<h2><?= t('Remove time slot') ?></h2>
</div>
<div class="confirm">
<p class="alert alert-info"><?= t('Do you really want to remove this time slot?') ?></p>
<div class="form-actions">
<?= $this->url->link(t('Yes'), 'timetableweek', 'remove', array('user_id' => $user['id'], 'slot_id' => $slot_id), true, 'btn btn-red') ?>
<?= t('or') ?>
<?= $this->url->link(t('cancel'), 'timetableweek', 'index', array('user_id' => $user['id'])) ?>
</div>
</div>

View File

@@ -62,9 +62,6 @@
<li <?= $this->app->getRouterController() === 'user' && $this->app->getRouterAction() === 'authentication' ? 'class="active"' : '' ?>>
<?= $this->url->link(t('Edit Authentication'), 'user', 'authentication', array('user_id' => $user['id'])) ?>
</li>
<li <?= $this->app->getRouterController() === 'timetable' ? 'class="active"' : '' ?>>
<?= $this->url->link(t('Manage timetable'), 'timetable', 'index', array('user_id' => $user['id'])) ?>
</li>
<?php endif ?>
<?= $this->hook->render('template:user:sidebar:actions', array('user' => $user)) ?>