Skip to content
Snippets Groups Projects
Select Git revision
  • master default
1 result

EventManagerController.php

Blame
  • 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');
        }
    }