user_model = new UserModel(); $this->group_model = new UserGroupModel(); $this->group_user_model = new GroupUserModel(); $this->activity_model = new ActivityModel(); $this->crontab_model = new CronTabModel(); $this->notification_model = new NotificationModel(); $this->id_user = session()->get('id_user'); $this->token_user = session()->get('token'); $language = \Config\Services::language(); $language->setLocale(session()->lang); } public function index() { return redirect()->to('/home'); } public function getUsers(){ $postData = service('request')->getVar(); if($postData != null && isset($postData->data)){ $dtpostData = $postData->data; //Read value $draw = $dtpostData->draw; $start = $dtpostData->start; $rowperpage = $dtpostData->length; // Rows display per page $columnIndex = $dtpostData->order[0]->column; // Column index $columnName = $dtpostData->columns[$columnIndex]->data; // Column name $columnSortOrder = $dtpostData->order[0]->dir; // asc or desc $searchValue = $dtpostData->search->value; // Search value //Total number of records without filtering $totalRecords = $this->user_model->select('id_user') //->join('auth_user_group','auth_user_group.token = auth_user.group') ->countAllResults(); //Total number of records with filtering $totalRecordwithFilter = $this->user_model->select('id_user') //->join('auth_user_group','auth_user_group.token = auth_user.group') ->orLike('first_name', $searchValue) ->orLike('email', $searchValue) ->countAllResults(); //Fetch records //$records = $this->user_model->select('auth_user.*,auth_user_group.title') $records = $this->user_model->select('auth_user.*') //->join('auth_user_group','auth_user_group.token = auth_user.group') ->orLike('first_name', $searchValue) ->orLike('email', $searchValue) ->orderBy($columnName,$columnSortOrder) ->findAll($rowperpage, $start); //Format records foreach ($records as $key => $value){ if($records[$key]['email_confirmed'] == 1){ $records[$key]['email'] = $records[$key]['email'].' '.''; } $editLink = site_url('usuarios/user/edit/').$records[$key]['token']; $records[$key]['options'] = ''. '
'; } //Data records $data = array(); foreach($records as $record ){ $groups_token = $this->group_user_model->select('token_group') ->where('token_user',$record['token']) ->findAll(); $groups_names = []; foreach($groups_token as $g_t){ $title = $this->group_model->select('title') ->where('token',$g_t) ->first()['title']; array_push($groups_names, $title); } $data[] = array( "first_name"=>$record['first_name'], "email"=>$record['email'], "group"=>$groups_names,//JJO$record['title'], "mobile"=>$record['mobile'], "last_access"=>$record['last_access'], "last_ip"=>$record['last_ip'], "created_at"=>$record['created_at'], "options"=>$record['options'] ); } //Response $response = array( "draw" => intval($draw), "iTotalRecords" => $totalRecords, "iTotalDisplayRecords" => $totalRecordwithFilter, "aaData" => $data, "token" => csrf_hash() // New token hash ); return $this->response->setJSON($response); }else{ return $this->response->setJSON(["error"=>true]); } } public function getGroups(){ $postData = service('request')->getVar(); if($postData != null && isset($postData->data)){ $dtpostData = $postData->data; //Read value $draw = $dtpostData->draw; $start = $dtpostData->start; $rowperpage = $dtpostData->length; // Rows display per page $columnIndex = $dtpostData->order[0]->column; // Column index $columnName = $dtpostData->columns[$columnIndex]->data; // Column name $columnSortOrder = $dtpostData->order[0]->dir; // asc or desc $searchValue = $dtpostData->search->value; // Search value //Total number of records without filtering $totalRecords = $this->group_model->select('id_group') ->countAllResults(); //Total number of records with filtering $totalRecordwithFilter = $this->group_model->select('id_group') ->orLike('title', $searchValue) ->countAllResults(); //Fetch records $records = $this->group_model->select('*') ->orLike('title', $searchValue) ->orderBy($columnName,$columnSortOrder) ->findAll($rowperpage, $start); //Format records foreach ($records as $key => $value){ $editLink = site_url('usuarios/group/edit/').$records[$key]['token']; $records[$key]['options'] = ''. '
'; } //Data records $data = array(); foreach($records as $record ){ $data[] = array( "title"=>$record['title'], "dashboard"=>$record['dashboard'], "created_at"=>$record['created_at'], "updated_at"=>$record['updated_at'], "options"=>$record['options'] ); } //Response $response = array( "draw" => intval($draw), "iTotalRecords" => $totalRecords, "iTotalDisplayRecords" => $totalRecordwithFilter, "aaData" => $data, "token" => csrf_hash() // New token hash ); return $this->response->setJSON($response); }else{ return $this->response->setJSON(["error"=>true]); } } public function getActivities($all=""){ $postData = service('request')->getVar(); if($postData != null && isset($postData->data)){ $dtpostData = $postData->data; //Read value $draw = $dtpostData->draw; $start = $dtpostData->start; $rowperpage = $dtpostData->length; // Rows display per page $columnIndex = $dtpostData->order[0]->column; // Column index $columnName = $dtpostData->columns[$columnIndex]->data; // Column name $columnSortOrder = $dtpostData->order[0]->dir; // asc or desc $searchValue = $dtpostData->search->value; // Search value $session = session(); //Total number of records without filtering if($session->get('dashboard')=='admin' && !empty($all)){ $totalRecords = $this->activity_model->select('id_activity') ->join('user','user.token = activity.user') ->countAllResults(); }else{ $totalRecords = $this->activity_model->select('id_activity') ->join('user','user.token = activity.user') ->where('activity.user',$session->get('token')) ->countAllResults(); } //Total number of records with filtering if($session->get('dashboard')=='admin' && !empty($all)){ $totalRecordwithFilter = $this->activity_model->select('id_activity') ->join('user','user.token = activity.user') ->orLike('first_name', $searchValue) ->countAllResults(); }else{ $totalRecordwithFilter = $this->activity_model->select('id_activity') ->join('user','user.token = activity.user') ->orLike('first_name', $searchValue) ->where('activity.user',$session->get('token')) ->countAllResults(); } //Fetch records if($session->get('dashboard')=='admin' && !empty($all)){ $records = $this->activity_model->select('activity.*,concat(first_name, " (",email, ")") AS name') ->join('user','user.token = activity.user') ->orLike('first_name', $searchValue) ->orderBy($columnName,$columnSortOrder) ->findAll($rowperpage, $start); }else{ $records = $this->activity_model->select('activity.*,concat(first_name, " (",email, ")") AS name') ->join('user','user.token = activity.user') ->orLike('first_name', $searchValue) ->where('activity.user',$session->get('token')) ->orderBy($columnName,$columnSortOrder) ->findAll($rowperpage, $start); } //Data records $data = array(); foreach($records as $record ){ $data[] = array( "name"=>$record['name'], "level"=>$record['level'], "event"=>$record['event'], "ip"=>$record['ip'], "os"=>$record['os'], "browser"=>$record['browser'], "created_at"=>$record['created_at'] ); } //Response $response = array( "draw" => intval($draw), "iTotalRecords" => $totalRecords, "iTotalDisplayRecords" => $totalRecordwithFilter, "aaData" => $data, "token" => csrf_hash() // New token hash ); return $this->response->setJSON($response); }else{ return $this->response->setJSON(["error"=>true]); } } public function getCronHistory(){ $postData = service('request')->getVar(); if($postData != null && isset($postData->data)){ $dtpostData = $postData->data; //Read value $draw = $dtpostData->draw; $start = $dtpostData->start; $rowperpage = $dtpostData->length; // Rows display per page $columnIndex = $dtpostData->order[0]->column; // Column index $columnName = $dtpostData->columns[$columnIndex]->data; // Column name $columnSortOrder = $dtpostData->order[0]->dir; // asc or desc $searchValue = $dtpostData->search->value; // Search value //Total number of records without filtering $totalRecords = $this->crontab_model->select('id_crontab') ->countAllResults(); //Total number of records with filtering $totalRecordwithFilter = $this->crontab_model->select('id_crontab') ->orLike('routine', $searchValue) ->orLike('error', $searchValue) ->countAllResults(); //Fetch records $records = $this->crontab_model->select('*') ->orLike('routine', $searchValue) ->orLike('error', $searchValue) ->orderBy($columnName,$columnSortOrder) ->findAll($rowperpage, $start); //Data records $data = array(); foreach($records as $record ){ $data[] = array( "routine"=>$record['routine'], "error"=>$record['error'], "created_at"=>$record['created_at'] ); } //Response $response = array( "draw" => intval($draw), "iTotalRecords" => $totalRecords, "iTotalDisplayRecords" => $totalRecordwithFilter, "aaData" => $data, "token" => csrf_hash() // New token hash ); return $this->response->setJSON($response); }else{ return $this->response->setJSON(["error"=>true]); } } public function getNotification(){ $postData = service('request')->getVar(); if($postData != null && isset($postData->data)){ $dtpostData = $postData->data; //Read value $draw = $dtpostData->draw; $start = $dtpostData->start; $rowperpage = $dtpostData->length; // Rows display per page $columnIndex = $dtpostData->order[0]->column; // Column index $columnName = $dtpostData->columns[$columnIndex]->data; // Column name $columnSortOrder = $dtpostData->order[0]->dir; // asc or desc $searchValue = $dtpostData->search->value; // Search value //Total number of records without filtering $totalRecords = $this->notification_model->select('id_notification') ->join('user AS sender','notification.user_sender = sender.token','left') ->join('user AS recipient','notification.user_recipient = recipient.token','left') ->countAllResults(); //Total number of records with filtering $totalRecordwithFilter = $this->notification_model->select('id_notification') ->join('user AS sender','notification.user_sender = sender.token','left') ->join('user AS recipient','notification.user_recipient = recipient.token','left') ->orLike('title', $searchValue) ->orLike('sender.first_name', $searchValue) ->orLike('recipient.first_name', $searchValue) ->countAllResults(); //Fetch records $records = $this->notification_model->select('notification.token, sender.first_name AS sender, recipient.first_name AS recipient, notification.title, is_send_email, is_read, notification.created_at') ->join('user AS sender','notification.user_sender = sender.token','left') ->join('user AS recipient','notification.user_recipient = recipient.token','left') ->orLike('title', $searchValue) ->orLike('sender.first_name', $searchValue) ->orLike('recipient.first_name', $searchValue) ->orderBy($columnName,$columnSortOrder) ->findAll($rowperpage, $start); //Format records foreach ($records as $key => $value){ $records[$key]['options'] = ''. '
'; } //Data records $data = array(); foreach($records as $record ){ $data[] = array( "sender"=>$record['sender'], "recipient"=>$record['recipient'], "title"=>$record['title'], "is_send_email"=>$record['is_send_email'], "is_read"=>$record['is_read'], "created_at"=>$record['created_at'], "options"=>$record['options'] ); } //Response $response = array( "draw" => intval($draw), "iTotalRecords" => $totalRecords, "iTotalDisplayRecords" => $totalRecordwithFilter, "aaData" => $data, "token" => csrf_hash() // New token hash ); return $this->response->setJSON($response); }else{ return $this->response->setJSON(["error"=>true]); } } public function getMyNotification(){ $postData = service('request')->getVar(); if($postData != null && isset($postData->data)){ $dtpostData = $postData->data; //Read value $draw = $dtpostData->draw; $start = $dtpostData->start; $rowperpage = $dtpostData->length; // Rows display per page $columnIndex = $dtpostData->order[0]->column; // Column index $columnName = $dtpostData->columns[$columnIndex]->data; // Column name $columnSortOrder = $dtpostData->order[0]->dir; // asc or desc $searchValue = $dtpostData->search->value; // Search value //Total number of records without filtering $totalRecords = $this->notification_model->select('id_notification') ->join('user AS sender','notification.user_sender = sender.token','left') ->join('user AS recipient','notification.user_recipient = recipient.token','left') ->where('user_recipient',$this->token_user) ->countAllResults(); //Total number of records with filtering $totalRecordwithFilter = $this->notification_model->select('id_notification') ->join('user AS sender','notification.user_sender = sender.token','left') ->join('user AS recipient','notification.user_recipient = recipient.token','left') ->orLike('title', $searchValue) ->where('user_recipient',$this->token_user) ->countAllResults(); //Fetch records $records = $this->notification_model->select('notification.token, sender.first_name AS sender, recipient.first_name AS recipient, notification.title, is_read, notification.created_at') ->join('user AS sender','notification.user_sender = sender.token','left') ->join('user AS recipient','notification.user_recipient = recipient.token','left') ->orLike('title', $searchValue) ->where('user_recipient',$this->token_user) ->orderBy($columnName,$columnSortOrder) ->findAll($rowperpage, $start); //Format records foreach ($records as $key => $value){ $records[$key]['options'] = ' '.lang("App.notification_view_btn").''; } //Data records $data = array(); foreach($records as $record ){ $data[] = array( "sender"=>$record['sender'], "recipient"=>$record['recipient'], "title"=>$record['title'], "created_at"=>$record['created_at'], "is_read"=>$record['is_read'], "options"=>$record['options'] ); } //Response $response = array( "draw" => intval($draw), "iTotalRecords" => $totalRecords, "iTotalDisplayRecords" => $totalRecordwithFilter, "aaData" => $data, "token" => csrf_hash() // New token hash ); return $this->response->setJSON($response); }else{ return $this->response->setJSON(["error"=>true]); } } }