public function main() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $this->loadLanguage('tool/task'); if (!$this->user->canAccess('tool/task')) { $response = new stdClass(); $response->userdata->error = sprintf($this->language->get('error_permission_access'), 'tool/task'); $this->load->library('json'); $this->response->setOutput(AJson::encode($response)); return null; } $page = $this->request->post['page']; // get the requested page $limit = $this->request->post['rows']; // get how many rows we want to have into the grid //Prepare filter config $grid_filter_params = array('name'); $filter = new AFilter(array('method' => 'post', 'grid_filter_params' => $grid_filter_params)); $filter_data = $filter->getFilterData(); $tm = new ATaskManager(); $total = $tm->getTotalTasks($filter_data); if ($total > 0) { $total_pages = ceil($total / $limit); } else { $total_pages = 0; } $results = $tm->getTasks($filter_data); $response = new stdClass(); $response->page = $page; $response->total = $total_pages; $response->records = $total; $response->userdata = new stdClass(); $i = 0; foreach ($results as $result) { $id = $result['task_id']; $response->rows[$i]['id'] = $id; $status = $result['status']; //if task works more than 30min - we think it's stuck if ($status == 2 && time() - dateISO2Int($result['start_time']) > 1800) { $status = -1; } switch ($status) { case -1: // stuck $response->userdata->classes[$id] = 'warning disable-run disable-edit'; $text_status = $this->language->get('text_active'); break; case 1: // scheduled $response->userdata->classes[$id] = 'success disable-restart disable-edit'; $text_status = $this->language->get('text_scheduled'); break; case 2: //disable all buttons for active tasks $response->userdata->classes[$id] = 'attention disable-run disable-restart disable-edit disable-delete'; $text_status = $this->language->get('text_active'); break; default: // disabled $response->userdata->classes[$id] = 'attention disable-run disable-restart disable-edit disable-delete'; $text_status = $this->language->get('text_disabled'); } $response->rows[$i]['cell'] = array($result['task_id'], $result['name'], $text_status, dateISO2Display($result['start_time'], $this->language->get('date_format_short') . ' ' . $this->language->get('time_format')), dateISO2Display($result['date_modified'], $this->language->get('date_format_short') . ' ' . $this->language->get('time_format'))); $i++; } //update controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); $this->load->library('json'); $this->response->setOutput(AJson::encode($response)); }