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 SearchReviewListConfigurationFactory
23 *
24 */
25class SearchReviewListConfigurationFactory extends ohrmListConfigurationFactory {
26
27    protected function init() {
28
29        $headerArray = array();
30        $header1 = new ListHeader();
31        $header2 = new DueDateHeader();
32        $header3 = new ReviewPeriodHeader();
33        $header4 = new ListHeader();
34        $header6 = new ManagePerformanceActionHeader();
35        $header5 = new ListHeader();
36
37        $header1->populateFromArray(array(
38            'name' => 'Employee',
39            'isSortable' => true,
40            'sortField' => 'employeeId',
41            'elementType' => 'label',
42            'elementProperty' => array('getter' => array('getEmployee', 'getFullName')),
43        ));
44
45
46        $header2->populateFromArray(array(
47            'name' => 'Due Date',
48            'isSortable' => true,
49            'sortField' => 'due_date',
50            'elementType' => 'DueDate',
51        ));
52
53        $header3->populateFromArray(array(
54            'name' => 'Review Period',
55            'isSortable' => false,
56            'sortField' => null,
57            'elementType' => 'ReviewPeriod',
58            'elementProperty' => array('getter' => 'getWorkPeriodStart'),
59        ));
60
61        $header4->populateFromArray(array(
62            'name' => 'Work Period End Date',
63            'isSortable' => false,
64            'sortField' => null,
65            'elementType' => 'label',
66            'elementProperty' => array('getter' => 'getWorkPeriodEnd'),
67        ));
68
69
70        $header4->populateFromArray(array(
71            'name' => 'Job Title',
72            'isSortable' => false,
73            'sortField' => null,
74            'elementType' => 'label',
75            'elementProperty' => array('getter' => array('getJobTitle', 'getJobTitle')),
76        ));
77
78        $header6->populateFromArray(array(
79            'name' => 'Action',
80            'isSortable' => false,
81            'sortField' => null,
82            'elementType' => 'ManagePerformanceAction',
83            'elementProperty' => array(
84                'placeholderGetters' => array('id' => 'getId'),
85                'urlPattern' => 'index.php/performance/performanceReviewProgress?id={id}'),
86        ));
87
88        $reviewStatus = array();
89        $reviewStatus [ReviewStatusActivated::getInstance()->getStatusId()] = ReviewStatusActivated::getInstance()->getName();
90        $reviewStatus [ReviewStatusApproved::getInstance()->getStatusId()] = ReviewStatusApproved::getInstance()->getName();
91        $reviewStatus [ReviewStatusInProgress::getInstance()->getStatusId()] = ReviewStatusInProgress::getInstance()->getName();
92        $reviewStatus [ReviewStatusInactive::getInstance()->getStatusId()] = ReviewStatusInactive::getInstance()->getName();
93
94        $header5->populateFromArray(array(
95            'name' => 'Status',
96            'width' => '10%',
97            'isSortable' => false,
98            'sortField' => null,
99            'filters' => array('EnumCellFilter' => array(
100                    'enum' => $reviewStatus,
101                    'default' => ''),
102                'I18nCellFilter' => array()
103            ),
104            'elementType' => 'label',
105            'textAlignmentStyle' => 'left',
106            'elementProperty' => array('getter' => 'getStatusId'),
107        ));
108
109        $this->headers = array($header1, $header2, $header3, $header4, $header5, $header6);
110    }
111
112    /**
113     *
114     * @return string
115     */
116    public function getClassName() {
117        return 'ReviewList';
118    }
119
120}
121