1<?php
2
3/**
4 * OrangeHRM is a comprehensive Human Resource Management (HRM) System that captures
5 * all the essential functionalities required for any enterprise.
6 * Copyright (C) 2006 OrangeHRM Inc., http://www.orangehrm.com
7 *
8 * OrangeHRM is free software; you can redistribute it and/or modify it under the terms of
9 * the GNU General Public License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * OrangeHRM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
13 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 * See the GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along with this program;
17 * if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA  02110-1301, USA
19 */
20
21/**
22 * Description of MyPerformanceReviewListConfigurationFactory
23 *
24 */
25class MyPerformanceReviewListConfigurationFactory extends ohrmListConfigurationFactory {
26
27    protected function init() {
28
29        $header1 = new PerformanceEvaluationLinkHeader();
30        $header2 = new ListHeader();
31        $header3 = new ReviewPeriodHeader();
32        $header4 = new ListHeader();
33        $header6 = new ListHeader();
34        $header7 = new ListHeader();
35        $header8 = new ListHeader();
36
37        $header1->populateFromArray(array(
38            'name' => 'Employee',
39            'width' => '20%',
40            'isSortable' => false,
41            'sortField' => null,
42            'elementType' => 'performanceEvaluationLink',
43            'elementProperty' => array(
44                'labelGetter' => array('getEmployee', 'getFullName'),
45                'placeholderGetters' => array('id' => 'getId'),
46                'urlPattern' => 'index.php/performance/reviewEvaluate/id/{id}'),
47
48
49        ));
50
51
52        $header2->populateFromArray(array(
53            'name' => 'Due Date',
54            'width' => '10%',
55            'isSortable' => false,
56            'sortField' => null,
57            'elementType' => 'label',
58            'elementProperty' => array('getter' => 'getDueDate'),
59
60        ));
61
62        $header3->populateFromArray(array(
63            'name' => 'Review Period',
64            'width' => '20%',
65            'isSortable' => false,
66            'sortField' => null,
67            'elementType' => 'ReviewPeriod',
68
69        ));
70
71
72         $header4->populateFromArray(array(
73            'name' => 'Job Title',
74            'width' => '10%',
75            'isSortable' => false,
76            'sortField' => null,
77            'elementType' => 'label',
78            'elementProperty' => array('getter' => array('getJobTitle', 'getJobTitle')),
79
80        ));
81
82
83        $reviewStatus = array();
84        $reviewStatus [ReviewStatusActivated::getInstance()->getStatusId()] = ReviewStatusActivated::getInstance()->getName() ;
85        $reviewStatus [ReviewStatusApproved::getInstance()->getStatusId()] = ReviewStatusApproved::getInstance()->getName() ;
86        $reviewStatus [ReviewStatusInProgress::getInstance()->getStatusId()] = ReviewStatusInProgress::getInstance()->getName() ;
87        $reviewStatus [ReviewStatusInactive::getInstance()->getStatusId()] = ReviewStatusInactive::getInstance()->getName() ;
88
89       $header6->populateFromArray(array(
90            'name' => 'Review Status',
91            'width' => '15%',
92            'isSortable' => false,
93            'sortField' => null,
94            'filters' => array('EnumCellFilter' => array(
95                                                    'enum' => $reviewStatus,
96                                                    'default' => ''),
97                               'I18nCellFilter' => array()
98                              ),
99            'elementType' => 'label',
100            'textAlignmentStyle' => 'left',
101            'elementProperty' => array('getter' => 'getStatusId'),
102        ));
103
104       $reviewStatus = array();
105       $reviewStatus [ReviewerReviewStatusActivated::getInstance()->getStatusId()] = ReviewerReviewStatusActivated::getInstance()->getName() ;
106       $reviewStatus [ReviewerReviewStatusCompleted::getInstance()->getStatusId()] = ReviewerReviewStatusCompleted::getInstance()->getName() ;
107       $reviewStatus [ReviewerReviewStatusInProgress::getInstance()->getStatusId()] = ReviewerReviewStatusInProgress::getInstance()->getName() ;
108
109       $header7->populateFromArray(array(
110            'name' => 'Evaluation Status',
111            'width' => '15%',
112            'isSortable' => false,
113            'sortField' => null,
114            'filters' => array('EnumCellFilter' => array(
115                                                    'enum' => $reviewStatus,
116                                                    'default' => ''),
117                               'I18nCellFilter' => array()
118                              ),
119            'elementType' => 'label',
120            'textAlignmentStyle' => 'left',
121            'elementProperty' => array('getter' => array('getReviewers','getFirst','getStatus')),
122        ));
123
124
125        $this->headers = array($header1, $header2, $header3, $header4, $header6, $header7);
126    }
127
128    /**
129     *
130     * @return string
131     */
132    public function getClassName() {
133        return 'MyReviewList';
134    }
135
136}