Add user timetables

This commit is contained in:
Frederic Guillot
2015-03-09 21:37:10 -04:00
parent 7328995645
commit c870508923
45 changed files with 2014 additions and 5 deletions

View File

@@ -0,0 +1,44 @@
<div class="page-header">
<h2><?= t('Timetable') ?></h2>
<ul>
<li><?= $this->a(t('Day timetable'), 'timetableday', 'index', array('user_id' => $user['id'])) ?></li>
<li><?= $this->a(t('Week timetable'), 'timetableweek', 'index', array('user_id' => $user['id'])) ?></li>
<li><?= $this->a(t('Time off timetable'), 'timetableoff', 'index', array('user_id' => $user['id'])) ?></li>
<li><?= $this->a(t('Overtime timetable'), 'timetableextra', 'index', array('user_id' => $user['id'])) ?></li>
</ul>
</div>
<form method="get" action="?" autocomplete="off" class="form-inline">
<?= $this->formHidden('controller', $values) ?>
<?= $this->formHidden('action', $values) ?>
<?= $this->formHidden('user_id', $values) ?>
<?= $this->formLabel(t('From'), 'from') ?>
<?= $this->formText('from', $values, array(), array(), 'form-date') ?>
<?= $this->formLabel(t('To'), 'to') ?>
<?= $this->formText('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

@@ -0,0 +1,45 @@
<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->a(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->u('timetableday', 'save', array('user_id' => $user['id'])) ?>" autocomplete="off">
<?= $this->formHidden('user_id', $values) ?>
<?= $this->formCsrf() ?>
<?= $this->formLabel(t('Start time'), 'start') ?>
<?= $this->formSelect('start', $this->getDayHours(), $values, $errors) ?>
<?= $this->formLabel(t('End time'), 'end') ?>
<?= $this->formSelect('end', $this->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

@@ -0,0 +1,13 @@
<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->a(t('Yes'), 'timetableday', 'remove', array('user_id' => $user['id'], 'slot_id' => $slot_id), true, 'btn btn-red') ?>
<?= t('or') ?>
<?= $this->a(t('cancel'), 'timetableday', 'index', array('user_id' => $user['id'])) ?>
</div>
</div>

View File

@@ -0,0 +1,56 @@
<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->a(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->u('timetableextra', 'save', array('user_id' => $user['id'])) ?>" autocomplete="off">
<?= $this->formHidden('user_id', $values) ?>
<?= $this->formCsrf() ?>
<?= $this->formLabel(t('Day'), 'date') ?>
<?= $this->formText('date', $values, $errors, array('required'), 'form-date') ?>
<?= $this->formCheckbox('all_day', t('All day'), 1) ?>
<?= $this->formLabel(t('Start time'), 'start') ?>
<?= $this->formSelect('start', $this->getDayHours(), $values, $errors) ?>
<?= $this->formLabel(t('End time'), 'end') ?>
<?= $this->formSelect('end', $this->getDayHours(), $values, $errors) ?>
<?= $this->formLabel(t('Comment'), 'comment') ?>
<?= $this->formText('comment', $values, $errors) ?>
<div class="form-actions">
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
</div>
</form>

View File

@@ -0,0 +1,13 @@
<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->a(t('Yes'), 'timetableextra', 'remove', array('user_id' => $user['id'], 'slot_id' => $slot_id), true, 'btn btn-red') ?>
<?= t('or') ?>
<?= $this->a(t('cancel'), 'timetableextra', 'index', array('user_id' => $user['id'])) ?>
</div>
</div>

View File

@@ -0,0 +1,56 @@
<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->a(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->u('timetableoff', 'save', array('user_id' => $user['id'])) ?>" autocomplete="off">
<?= $this->formHidden('user_id', $values) ?>
<?= $this->formCsrf() ?>
<?= $this->formLabel(t('Day'), 'date') ?>
<?= $this->formText('date', $values, $errors, array('required'), 'form-date') ?>
<?= $this->formCheckbox('all_day', t('All day'), 1) ?>
<?= $this->formLabel(t('Start time'), 'start') ?>
<?= $this->formSelect('start', $this->getDayHours(), $values, $errors) ?>
<?= $this->formLabel(t('End time'), 'end') ?>
<?= $this->formSelect('end', $this->getDayHours(), $values, $errors) ?>
<?= $this->formLabel(t('Comment'), 'comment') ?>
<?= $this->formText('comment', $values, $errors) ?>
<div class="form-actions">
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
</div>
</form>

View File

@@ -0,0 +1,13 @@
<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->a(t('Yes'), 'timetableoff', 'remove', array('user_id' => $user['id'], 'slot_id' => $slot_id), true, 'btn btn-red') ?>
<?= t('or') ?>
<?= $this->a(t('cancel'), 'timetableoff', 'index', array('user_id' => $user['id'])) ?>
</div>
</div>

View File

@@ -0,0 +1,46 @@
<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->getWeekDay($slot['day']) ?></td>
<td><?= $slot['start'] ?></td>
<td><?= $slot['end'] ?></td>
<td>
<?= $this->a(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->u('timetableweek', 'save', array('user_id' => $user['id'])) ?>" autocomplete="off">
<?= $this->formHidden('user_id', $values) ?>
<?= $this->formCsrf() ?>
<?= $this->formLabel(t('Day'), 'day') ?>
<?= $this->formSelect('day', $this->getWeekDays(), $values, $errors) ?>
<?= $this->formLabel(t('Start time'), 'start') ?>
<?= $this->formSelect('start', $this->getDayHours(), $values, $errors) ?>
<?= $this->formLabel(t('End time'), 'end') ?>
<?= $this->formSelect('end', $this->getDayHours(), $values, $errors) ?>
<div class="form-actions">
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
</div>
</form>

View File

@@ -0,0 +1,13 @@
<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->a(t('Yes'), 'timetableweek', 'remove', array('user_id' => $user['id'], 'slot_id' => $slot_id), true, 'btn btn-red') ?>
<?= t('or') ?>
<?= $this->a(t('cancel'), 'timetableweek', 'index', array('user_id' => $user['id'])) ?>
</div>
</div>

View File

@@ -43,6 +43,9 @@
<li>
<?= $this->a(t('Hourly rates'), 'hourlyrate', 'index', array('user_id' => $user['id'])) ?>
</li>
<li>
<?= $this->a(t('Manage timetable'), 'timetable', 'index', array('user_id' => $user['id'])) ?>
</li>
<?php endif ?>
<?php if ($this->userSession->isAdmin() && ! $this->userSession->isCurrentUser($user['id'])): ?>