translation_service = $translation_service; $this->element_info = $element_info; $this->language_names = $language_names; $this->translator_name = $translator_name; $this->progress = $progress; } /** * @param WPML_TM_Jobs_Collection $jobs * @param int $total_jobs_count * * @return array */ public function build( WPML_TM_Jobs_Collection $jobs, $total_jobs_count ) { $result = array( 'jobs' => array() ); foreach ( $jobs as $job ) { $result['jobs'][] = $this->map_job( $job ); } $result['total'] = $total_jobs_count; return $result; } /** * @param WPML_TM_Job_Entity $job * * @return array */ private function map_job( WPML_TM_Job_Entity $job ) { $extra_data = array(); if ( $job instanceof WPML_TM_Post_Job_Entity ) { $extra_data['icl_translate_job_id'] = $job->get_translate_job_id(); } return array( 'id' => $job->get_id(), 'type' => $job->get_type(), 'tp_id' => $job->get_tp_id(), 'status' => $job->get_status(), 'needs_update' => $job->does_need_update(), 'language_codes' => array( 'source' => $job->get_source_language(), 'target' => $job->get_target_language(), ), 'languages' => array( 'source' => $this->language_names->get( $job->get_source_language() ), 'target' => $this->language_names->get( $job->get_target_language() ), ), 'translation_service_id' => $job->get_translation_service(), 'translation_service' => $this->translation_service->get_name( $job->get_translation_service() ), 'sent_date' => $job->get_sent_date()->format( 'Y-m-d' ), 'deadline' => $job->get_deadline() ? $job->get_deadline()->format( 'Y-m-d' ) : '', 'ts_status' => (string) $job->get_ts_status(), 'element' => $this->element_info->get( $job ), 'translator_name' => $job->get_translator_id() ? $this->translator_name->get( $job->get_translator_id() ) : '', 'progress' => $this->progress->get( $job ), 'batch' => array( 'id' => $job->get_batch()->get_id(), 'name' => $job->get_batch()->get_name(), 'tp_id' => $job->get_batch()->get_tp_id(), ), 'extra_data' => $extra_data, ); } }