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