public function aws_log($id) { $aws_logs = $this->ranking_data_model->get_('aws_logs', array('id' => $id)); $aws_log = reset($aws_logs); if (!empty($aws_log->params)) { $aws_log->params = json_decode($aws_log->params); } if (!empty($aws_log->result)) { $aws_log->result = json_decode($aws_log->result); if (!empty($aws_log->result->Messages)) { foreach ($aws_log->result->Messages as &$message) { if (!empty($message->Body)) { if ($body_decoded = base64_decode($message->Body)) { $message->Body = $body_decoded; } } } } } _print_r($aws_log); }
<?php $statuses = array( Ranking_data_model::STATUS_CREATED, Ranking_data_model::STATUS_QUEUED, Ranking_data_model::STATUS_STARTED, Ranking_data_model::STATUS_DONE, Ranking_data_model::STATUS_RESULTS_RECEIVED, Ranking_data_model::STATUS_RESULTS_IMPORTED, ); $status_titles = array(); foreach ($statuses as $status) { $status_titles[$status] = Ranking_data_model::getStatusTitle($status); } ?> <script type='text/javascript'> var ranking_data_jobs_status_titles = <?php echo json_encode($status_titles); ?>; var ranking_data_chart_series = <?php echo empty($chart_series) ? '' : $chart_series; ?>; </script> <div class="tabbable"> <?php $this->load->view('system/_tabs', array('active_tab' => 'system/ranking_data_jobs'));?> <div class="tab-content"> <div class="tab-pane active" style="position: relative;"> <div class="span12" style="font-size: 16px; line-height: 30px;"> <div class="span8">Ranking data jobs enabled: </div> <div class="span4"> <div class="pull-right"> <input type="checkbox" name="ranking_data_jobs_enable"<?php echo empty($ranking_data_jobs_enabled) ? '' : ' checked'; ?>> </div> </div> </div> <div class="row-fluid">
public function ranking_data_jobs() { $this->load->model('ranking_data_model'); $this->load->library('pagination'); // process AJAX request (data for popups) if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') { // get ranking data jobs for pop up $results = array('ranking_data_jobs' => array()); $page = intval($this->input->get_post('page')); $offset = $page > 1 ? ($page - 1) * self::RANKING_DATA_JOBS_LIMIT : 0; $product_list_id = intval($this->input->get_post('product_list_id')); $search_term_group_id = intval($this->input->get_post('search_term_group_id')); $site_id = intval($this->input->get_post('site_id')); $date = $this->input->get_post('date'); $date = strtotime($date) ? date("Y-m-d", strtotime($date)) : gmdate("Y-m-d", strtotime('now')); $status = intval($this->input->get_post('status')); $pagination_base_url_params = array_filter(array('date' => $date, 'status' => $status)); if (!empty($product_list_id)) { $pagination_base_url_params = array('product_list_id' => $product_list_id) + $pagination_base_url_params; } elseif (!empty($search_term_group_id)) { $pagination_base_url_params = array('search_term_group_id' => $search_term_group_id) + $pagination_base_url_params; } $pagination_base_url = base_url('system/ranking_data_jobs?' . http_build_query($pagination_base_url_params)); $pagination_params = array('base_url' => $pagination_base_url, 'page_query_string' => true, 'query_string_segment' => 'page', 'per_page' => self::RANKING_DATA_JOBS_LIMIT, 'use_page_numbers' => true, 'anchor_class' => 'class="rankng-data-jobs-page" '); $this->pagination->initialize($pagination_params); if (!empty($product_list_id)) { // get product list's jobs $params = array_filter(array('product_list_id' => $product_list_id, 'date' => $date, 'status' => $status)); $product_list_jobs = $this->ranking_data_model->getProductListJobs($params, self::RANKING_DATA_JOBS_LIMIT, $offset); if (is_array($product_list_jobs)) { $f_product_list_job = reset($product_list_jobs); if (!empty($f_product_list_job->total_count)) { $this->pagination->total_rows = $f_product_list_job->total_count; } } foreach ($product_list_jobs as $product_list_job) { $product_list_job->status_title = Ranking_data_model::getStatusTitle($product_list_job->status); $results['ranking_data_jobs'][] = $product_list_job; } $results['pagination'] = $this->pagination->create_links(2); } elseif (!empty($search_term_group_id)) { // get search term group's jobs $params = array_filter(array('search_term_group_id' => $search_term_group_id, 'site_id' => $site_id, 'date' => $date, 'status' => $status)); $search_term_group_jobs = $this->ranking_data_model->getJobs($params, self::RANKING_DATA_JOBS_LIMIT, $offset); if (is_array($search_term_group_jobs)) { $f_search_term_group_job = reset($search_term_group_jobs); if (!empty($f_search_term_group_job->total_count)) { $this->pagination->total_rows = $f_search_term_group_job->total_count; } } foreach ($search_term_group_jobs as $search_term_group_job) { $search_term_group_job->status_title = Ranking_data_model::getStatusTitle($search_term_group_job->status); $results['ranking_data_jobs'][] = $search_term_group_job; } $results['pagination'] = $this->pagination->create_links(2); } return $this->jsonResponse($results); } $chart_data_date = gmdate("Y-m-d"); $chart_data = $this->ranking_data_model->getChartData($chart_data_date); $chart_series = array(); if (!empty($chart_data)) { $chart_series_queued = array('name' => "Jobs queued", 'data' => array()); $chart_series_received = array('name' => "Jobs' results received", 'data' => array()); foreach ($chart_data as $chart_data_value) { $dt = new DateTime($chart_data_value->minute, new DateTimeZone('UTC')); $dt_timestamp = $dt->getTimestamp() * 1000; // js compatible if (!empty($chart_data_value->queued) || !empty($chart_data_value->received)) { $chart_series_queued['data'][] = array($dt_timestamp, intval($chart_data_value->queued)); $chart_series_received['data'][] = array($dt_timestamp, intval($chart_data_value->received)); } } $chart_series = array($chart_series_queued, $chart_series_received); } $summary_stats_days = 7; $summary_stats = $this->ranking_data_model->getSummaryStatsForLastDays($summary_stats_days); // get product lists ranking data jobs $product_list_jobs_stats = $this->ranking_data_model->getProductListJobsStats(self::PROD_RANK_JOBS_STAT_LIMIT); $product_list_jobs_stats_pagination = ""; if (is_array($product_list_jobs_stats)) { $f_product_list_jobs_stat = reset($product_list_jobs_stats); if (!empty($f_product_list_jobs_stat->total_count)) { $pagination_params = array('base_url' => base_url('system/ranking_data_jobs_stats?' . http_build_query(array('type' => 'product_list'))), 'page_query_string' => true, 'query_string_segment' => 'page', 'per_page' => self::PROD_RANK_JOBS_STAT_LIMIT, 'use_page_numbers' => true, 'anchor_class' => 'class="rankng-data-jobs-page" ', 'total_rows' => $f_product_list_jobs_stat->total_count); $this->pagination->initialize($pagination_params); $product_list_jobs_stats_pagination = $this->pagination->create_links(2); } } // get search term groups ranking data jobs $search_term_group_jobs_stats = $this->ranking_data_model->getSearchTermGroupJobsStats(self::STG_RANK_JOBS_STAT_LIMIT); $search_term_group_jobs_stats_pagination = ""; if (is_array($search_term_group_jobs_stats)) { $f_search_term_group_jobs_stat = reset($search_term_group_jobs_stats); if (!empty($f_search_term_group_jobs_stat->total_count)) { $pagination_params = array('base_url' => base_url('system/ranking_data_jobs_stats?' . http_build_query(array('type' => 'search_term_group'))), 'page_query_string' => true, 'query_string_segment' => 'page', 'per_page' => self::STG_RANK_JOBS_STAT_LIMIT, 'use_page_numbers' => true, 'anchor_class' => 'class="rankng-data-jobs-page" ', 'total_rows' => $f_search_term_group_jobs_stat->total_count); $this->pagination->initialize($pagination_params); $search_term_group_jobs_stats_pagination = $this->pagination->create_links(2); } } $this->data['ranking_data_jobs_enabled'] = $this->ranking_data_model->getEnabledSetting(); $this->data['chart_series'] = json_encode($chart_series); $this->data['summary_stats_days'] = $summary_stats_days; $this->data['summary_stats'] = $summary_stats; $this->data['product_list_jobs_stats'] = $product_list_jobs_stats; $this->data['product_list_jobs_stats_pagination'] = $product_list_jobs_stats_pagination; $this->data['search_term_group_jobs_stats'] = $search_term_group_jobs_stats; $this->data['search_term_group_jobs_stats_pagination'] = $search_term_group_jobs_stats_pagination; $this->render(); }