/** * Fetch assigning policy dropdown html * according to employee id * * @since 0.1 * * @return html|json */ public function leave_assign_employee_policy() { $this->verify_nonce('wp-erp-hr-nonce'); $employee_id = isset($_POST['employee_id']) && $_POST['employee_id'] ? intval($_POST['employee_id']) : false; if (!$employee_id) { $this->send_error('Please select employee', 'wp-erp'); } $policies = erp_hr_get_assign_policy_from_entitlement($employee_id); if ($policies) { ob_start(); erp_html_form_input(array('label' => __('Leave Type', 'wp-erp'), 'name' => 'leave_policy', 'id' => 'erp-hr-leave-req-leave-policy', 'value' => '', 'required' => true, 'type' => 'select', 'options' => array('' => __('- Select -', 'wp-erp')) + $policies)); $content = ob_get_clean(); return $this->send_success($content); } return $this->send_error('No policy found. Can not apply any leave', 'wp-erp'); }
/** * ERP dashboard leave calendar widget * * @since 0.1 * * @return void */ function erp_hr_dashboard_widget_leave_calendar() { $user_id = get_current_user_id(); $leave_requests = erp_hr_get_calendar_leave_events(false, $user_id); $holidays = erp_array_to_object(\WeDevs\ERP\HRM\Models\Leave_Holiday::all()->toArray()); $events = []; $holiday_events = []; $event_data = []; foreach ($leave_requests as $key => $leave_request) { $events[] = array('id' => $leave_request->id, 'title' => $leave_request->display_name, 'start' => $leave_request->start_date, 'end' => $leave_request->end_date, 'url' => erp_hr_url_single_employee($leave_request->user_id), 'color' => $leave_request->color, 'img' => get_avatar($leave_request->user_id, 16)); } foreach ($holidays as $key => $holiday) { $holiday_events[] = ['id' => $holiday->id, 'title' => $holiday->title, 'start' => $holiday->start, 'end' => $holiday->end, 'color' => '#FF5354', 'img' => '', 'holiday' => true]; } $event_data = array_merge($events, $holiday_events); ?> <style> .fc-time { display:none; } .erp-leave-avatar img { border-radius: 50%; margin: 3px 7px 0 0; } .erp-calendar-filter { margin: 15px 0px; } .fc-title { position: relative; top: -4px; } </style> <?php if (erp_hr_get_assign_policy_from_entitlement($user_id)) { ?> <div class="erp-hr-new-leave-request-wrap"> <a href="#" class="button button-primary" id="erp-hr-new-leave-req"><?php _e('Take a Leave', 'wp-erp'); ?> </a> </div> <?php } ?> <div id="erp-hr-calendar"></div> <script> ;jQuery(document).ready(function($) { $('#erp-hr-calendar').fullCalendar({ header: { left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay' }, editable: false, eventLimit: true, // allow "more" link when too many events events: <?php echo json_encode($event_data); ?> , eventRender: function(event, element, calEvent) { if ( event.holiday ) { element.find('.fc-content').find('.fc-title').css({ 'top':'0px', 'left' : '3px', 'fontSize' : '13px', 'padding':'2px' }); }; if( event.img != 'undefined' ) { element.find('.fc-content').find('.fc-title').before( $("<span class=\"fc-event-icons erp-leave-avatar\">"+event.img+"</span>") ); } }, }); }); </script> <?php }