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}