Select Git revision
EventManagerController.php
-
Tim Steiner authoredTim Steiner authored
EventManagerController.php 3.74 KiB
<?php
class Timeclock_EventManagerController extends Unl_Controller_Action
{
public function indexAction()
{
$userTable = new Auth_Model_Users();
$eventsTable = new Timeclock_Model_Events();
$events = $eventsTable->findWithAdminUserId($userTable->fetchCurrentUser()->userId);
$this->view->events = $events;
}
public function addPostAction()
{
$in = $this->_getAllParams();
$eventTable = new Timeclock_Model_Events();
$event = $eventTable->fetchNew();
$event->name = $in['name'];
$event->anonymous = $in['anonymous'];
$event->allUsers = $in['allUsers'];
$userTable = new Auth_Model_Users();
$event->owner = $userTable->fetchCurrentUser()->userId;
$event->save();
$eventAttendeeTable = new Timeclock_Model_EventAttendees();
foreach ($in['attendees'] as $nuid) {
$attendee = $eventAttendeeTable->fetchNew();
$attendee->event = $event->eventId;
$attendee->nuid = $nuid;
$attendee->save();
}
$eventAdminTable = new Timeclock_Model_EventAdministrators();
$eventAdmin = $eventAdminTable->fetchNew();
$eventAdmin->event = $event->eventId;
$eventAdmin->user = $userTable->fetchCurrentUser()->userId;
$eventAdmin->save();
$this->_redirect('/timeclock/event-manager');
}
public function editPostAction()
{
$in = $this->_getAllParams();
$eventTable = new Timeclock_Model_Events();
$eventAttendeeTable = new Timeclock_Model_EventAttendees();
$eventAdminTable = new Timeclock_Model_EventAdministrators();
$userTable = new Auth_Model_Users();
foreach ($in['edit'] as $id => $data) {
$event = $eventTable->find($id)->current();
if (!$event) {
continue;
}
if ($data['delete']) {
$event->delete();
continue;
}
$event->name = $data['name'];
$event->anonymous = $data['anonymous'];
$event->allUsers = $data['allUsers'];
$event->save();
if (array_key_exists('attendees', $data)) {
foreach ($data['attendees'] as $attendeeId => $attendeeData) {
$attendee = $eventAttendeeTable->find($attendeeId)->current();
if (!$attendee) {
$attendee = $eventAttendeeTable->fetchNew();
$attendee->event = $event->eventId;
}
if (array_key_exists('delete', $attendeeData) && $attendeeData['delete']) {
$attendee->delete();
continue;
}
$attendee->nuid = $attendeeData['nuid'];
$attendee->save();
}
}
if (array_key_exists('admins', $data)) {
foreach ($data['admins'] as $eventAdminId => $adminData) {
$eventAdmin = $eventAdminTable->find($eventAdminId)->current();
$user = $userTable->findWithUsername($adminData['username']);
if (!$eventAdmin) {
$eventAdmin = $eventAdminTable->fetchNew();
$eventAdmin->event = $event->eventId;
}
if (array_key_exists('delete', $adminData) && $adminData['delete']) {
$eventAdmin->delete();
continue;
}
$eventAdmin->user = $user->userId;
$eventAdmin->save();
}
}
}
$this->_redirect('/timeclock/event-manager');
}
}