public function init()
 {
     sfContext::getInstance()->getConfiguration()->loadHelpers('OrangeDate');
     $header1 = new LeaveListHeader();
     $header2 = new LeaveListHeader();
     $header3 = new LeaveListHeader();
     $header4 = new LeaveListHeader();
     $header5 = new LeaveListHeader();
     $header6 = new LeaveListHeader();
     $header7 = new LeaveListHeader();
     $header8 = new LeaveListHeader();
     $header1->populateFromArray(array('name' => 'Date', 'width' => '24%', 'isSortable' => false, 'elementType' => 'link', 'textAlignmentStyle' => 'left', 'elementProperty' => array('labelGetter' => array('getLeaveDateRange'), 'placeholderGetters' => array('id' => 'getId'), 'urlPattern' => public_path('index.php/leave/viewLeaveRequest/id/{id}'))));
     $header2->populateFromArray(array('name' => 'Employee Name', 'width' => '18%', 'isSortable' => false, 'elementType' => 'link', 'textAlignmentStyle' => 'left', 'elementProperty' => array('labelGetter' => array('getEmployee', 'getFullName'), 'placeholderGetters' => array('id' => 'getEmpNumber'), 'urlPattern' => public_path('index.php/pim/viewEmployee/empNumber/{id}'))));
     $header3->populateFromArray(array('name' => 'Leave Type', 'width' => '10%', 'isSortable' => false, 'elementType' => 'label', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => array('getLeaveType', 'getDescriptiveLeaveTypeName'))));
     $header4->populateFromArray(array('name' => 'Number of Days', 'width' => '9%', 'isSortable' => false, 'elementType' => 'label', 'textAlignmentStyle' => 'right', 'elementProperty' => array('getter' => 'getNumberOfDays')));
     $header8->populateFromArray(array('name' => 'Leave Balance (Days)', 'width' => '12%', 'isSortable' => false, 'elementType' => 'leaveListBalance', 'textAlignmentStyle' => 'right'));
     $header5->populateFromArray(array('name' => 'Status', 'width' => '12%', 'isSortable' => false, 'elementType' => 'link', 'filters' => array('I18nCellFilter' => array()), 'textAlignmentStyle' => 'left', 'elementProperty' => array('labelGetter' => array('getLeaveBreakdown'), 'placeholderGetters' => array('id' => 'getId'), 'urlPattern' => public_path('index.php/leave/viewLeaveRequest/id/{id}'), 'hasHiddenField' => true, 'hiddenFieldName' => 'leaveRequestStatus[{id}]', 'hiddenFieldId' => 'hdnLeaveRequestStatus_{id}', 'hiddenFieldValueGetter' => 'getLeaveStatusId')));
     $header6->populateFromArray(array('name' => 'Comments', 'width' => '17%', 'isSortable' => false, 'elementType' => 'leaveComment', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => 'getLeaveRequestComment', 'idPattern' => 'hdnLeaveComment-{id}', 'namePattern' => 'leaveComments[{id}]', 'placeholderGetters' => array('id' => 'getId'), 'hasHiddenField' => true, 'hiddenFieldName' => 'leaveRequest[{id}]', 'hiddenFieldId' => 'hdnLeaveRequest_{id}', 'hiddenFieldValueGetter' => 'getId')));
     $leaveRequestService = new LeaveRequestService();
     $header7->populateFromArray(array('name' => 'Actions', 'width' => '10%', 'isSortable' => false, 'isExportable' => false, 'elementType' => 'leaveListAction', 'textAlignmentStyle' => 'left', 'elementProperty' => array('classPattern' => 'select_action quotaSelect', 'defaultOption' => array('label' => 'Select Action', 'value' => ''), 'hideIfEmpty' => true, 'options' => array($leaveRequestService, 'getLeaveRequestActions', array(self::RECORD, self::$loggedInEmpNumber)), 'namePattern' => 'select_leave_action_{id}', 'idPattern' => 'select_leave_action_{id}', 'hasHiddenField' => true, 'hiddenFieldName' => '{eimId}-{leaveTypeId}', 'hiddenFieldId' => '{eimId}-{leaveTypeId}', 'hiddenFieldValueGetter' => 'getNumberOfDays', 'hiddenFieldClass' => 'quotaHolder', 'placeholderGetters' => array('id' => 'getId', 'eimId' => 'getEmpNumber', 'leaveTypeId' => 'getLeaveTypeId'))));
     $this->headers = array($header1, $header2, $header3, $header8, $header4, $header5, $header6, $header7);
 }
 public function init()
 {
     sfContext::getInstance()->getConfiguration()->loadHelpers('OrangeDate');
     $header1 = new LeaveListHeader();
     $header3 = new LeaveListHeader();
     $header4 = new LeaveListHeader();
     $header5 = new LeaveListHeader();
     $header6 = new LeaveListHeader();
     $header7 = new LeaveListHeader();
     $header8 = new LeaveListHeader();
     $header1->populateFromArray(array('name' => 'Date', 'width' => '15%', 'isSortable' => false, 'elementType' => 'label', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => 'getFormattedLeaveDateToView')));
     $header3->populateFromArray(array('name' => 'Leave Type', 'width' => '10%', 'isSortable' => false, 'elementType' => 'label', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => array('getLeaveRequest', 'getLeaveType', 'getDescriptiveLeaveTypeName'), 'hideIfCallback' => 'isNonWorkingDay')));
     $header8->populateFromArray(array('name' => 'Leave Balance (Days)', 'width' => '10%', 'isSortable' => false, 'elementType' => 'label', 'textAlignmentStyle' => 'right', 'filters' => array('NumberFormatCellFilter' => array()), 'elementProperty' => array('getter' => 'getLeaveBalance')));
     $header4->populateFromArray(array('name' => 'Duration (Hours)', 'width' => '10%', 'isSortable' => false, 'elementType' => 'label', 'textAlignmentStyle' => 'right', 'elementProperty' => array('getter' => 'getLengthHours', 'hideIfCallback' => 'isNonWorkingDay')));
     $header5->populateFromArray(array('name' => 'Status', 'width' => '15%', 'isSortable' => false, 'elementType' => 'label', 'filters' => array('CallbackCellFilter' => array('callback' => array('strtolower', 'ucwords')), 'I18nCellFilter' => array()), 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => array('getTextLeaveStatus'), 'default' => __('Non Working Day'), 'hasHiddenField' => true, 'hiddenFieldName' => 'leave[{id}]', 'hiddenFieldId' => 'leave-{id}', 'hiddenFieldValueGetter' => 'getDetailedLeaveListRequestIdHolderValue', 'hiddenFieldClass' => 'requestIdHolder', 'placeholderGetters' => array('id' => 'getId'))));
     $header6->populateFromArray(array('name' => 'Comments', 'width' => '30%', 'isSortable' => false, 'elementType' => 'leaveComment', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => 'getLeaveComment', 'idPattern' => 'hdnLeaveComment-{id}', 'namePattern' => 'leaveComments[{id}]', 'placeholderGetters' => array('id' => 'getId'), 'hasHiddenField' => true, 'hiddenFieldName' => 'leave[{id}]', 'hiddenFieldId' => 'hdnLeave_{id}', 'hiddenFieldValueGetter' => 'getId', 'hideIfCallback' => 'isNonWorkingDay')));
     $leaveRequestService = new LeaveRequestService();
     $header7->populateFromArray(array('name' => 'Actions', 'width' => '10%', 'isSortable' => false, 'isExportable' => false, 'elementType' => 'selectSingle', 'textAlignmentStyle' => 'left', 'elementProperty' => array('classPattern' => 'select_action quotaSelect', 'defaultOption' => array('label' => 'Select Action', 'value' => ''), 'hideIfEmpty' => true, 'hideIfCallback' => 'isNonWorkingDay', 'options' => array($leaveRequestService, 'getLeaveActions', array(self::RECORD, self::$loggedInEmpNumber)), 'namePattern' => 'select_leave_action_{id}', 'idPattern' => 'select_leave_action_{id}', 'hasHiddenField' => true, 'hiddenFieldName' => '{eimId}-{leaveTypeId}', 'hiddenFieldId' => '{eimId}-{leaveTypeId}', 'hiddenFieldValueGetter' => 'getDetailedLeaveListQuotaHolderValue', 'hiddenFieldClass' => 'quotaHolder', 'placeholderGetters' => array('id' => 'getId', 'eimId' => 'getEmpNumber', 'leaveTypeId' => 'getLeaveTypeId'))));
     $this->headers = array($header1, $header3, $header8, $header4, $header5, $header6, $header7);
 }