예제 #1
0
 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);
 }
예제 #2
0
<?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">
예제 #3
0
 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();
 }