1<?php 2 3/* 4 * To change this template, choose Tools | Templates 5 * and open the template in the editor. 6 */ 7 8/** 9 * Description of performAction 10 * This is used to initiate a feedback for an employee. 11 * @author indiran 12 */ 13class addPerformanceTrackerAction extends basePerformanceAction { 14 15 public $performanceTrack; 16 private $pageNumber; 17 18 public function getPageNumber() { 19 return $this->pageNumber; 20 } 21 22 public function setPageNumber($pageNumber) { 23 $this->pageNumber = $pageNumber; 24 } 25 26 public function preExecute() { 27 28 $usrObj = $this->getUser()->getAttribute('user'); 29 if (!$usrObj->isAdmin()) { 30 $this->forward(sfConfig::get('sf_secure_module'), sfConfig::get('sf_secure_action')); 31 } 32 } 33 34 /** 35 * @param sfForm $form 36 * @return 37 */ 38 public function setForm(sfForm $form) { 39 if (is_null($this->form)) { 40 $this->form = $form; 41 } 42 } 43 44 public function execute($request) { 45 46 $request->setParameter('initialActionName', 'addPerformanceTracker'); 47 //set performance track list 48 $page = $request->getParameter('hdnAction') == 'search' ? 1 : $request->getParameter('pageNo', 1); 49 $this->setPageNumber($page); 50 $searchParameter = array('page'=>$page, 'limit'=>sfConfig::get('app_items_per_page')); 51 $performanceTrackList = $this->getPerformanceTrackerService()->getPerformanceTrackList($searchParameter); 52 $performanceTrackListCount = $this->getPerformanceTrackerService()->getPerformanceTrackListCount(); 53 $this->_setListComponent($performanceTrackList, $performanceTrackListCount); 54 $params = array(); 55 $this->parmetersForListCompoment = $params; 56 57 $trackId = $request->getParameter('id'); 58 $this->setForm(new AddPerformanceTrackerForm( array(), array('trackId' => $trackId), null)); 59 60 if ($request->isMethod('post')) { 61 $this->form->bind($request->getParameter('addPerformanceTracker')); 62 if ($this->form->isValid()) { 63 64 $messageArray = $this->form->save(); 65 $this->getUser()->setFlash($messageArray['messageType'], $messageArray['messageBody']); 66 $this->redirect('performance/addPerformanceTracker'); 67 } 68 } 69 70 } 71 72 private function _setListComponent($performanceTrackList, $performanceTrackListCount) { 73 $pageNumber = $this->getPageNumber(); 74 $configurationFactory = new PerformanceTrackListAdminConfigurationFactory(); 75 ohrmListComponent::setConfigurationFactory($configurationFactory); 76 ohrmListComponent::setActivePlugin('orangehrmPerformanceTrackerPlugin'); 77 ohrmListComponent::setListData($performanceTrackList); 78 ohrmListComponent::setPageNumber($pageNumber); 79 $numRecords = $performanceTrackListCount; 80 ohrmListComponent::setItemsPerPage(sfConfig::get('app_items_per_page')); 81 ohrmListComponent::setNumberOfRecords($numRecords); 82 } 83 84 85} 86 87?> 88