コード例 #1
0
 public function listing()
 {
     /**
      * AJAX List of Data
      * Here we load the list of data in a table
      */
     if ($this->input->is_ajax_request()) {
         $bootgrid_arr = [];
         $current = $this->input->post('current');
         $limit = $this->input->post('rowCount') == -1 ? 0 : $this->input->post('rowCount');
         $page = $current !== null ? $current : 1;
         $start_from = ($page - 1) * $limit;
         $sort = null != $this->input->post('sort') ? $this->input->post('sort') : null;
         $wildcard = null != $this->input->post('searchPhrase') ? $this->input->post('searchPhrase') : null;
         $removed_only = null != $this->input->post('removedOnly') ? $this->input->post('removedOnly') : false;
         $total = $this->PrivilegesLevel->get_all(0, 0, null, $removed_only)->num_rows();
         if (null != $wildcard) {
             $privileges = $this->PrivilegesLevel->like($wildcard, $start_from, $limit, $sort, $removed_only)->result_array();
             $total = $this->PrivilegesLevel->like($wildcard, 0, 0, null, $removed_only)->num_rows();
         } else {
             $privileges = $this->PrivilegesLevel->get_all($start_from, $limit, $sort, $removed_only)->result_array();
         }
         foreach ($privileges as $key => $privilege) {
             $modules = [];
             $privilege_modules = explodetoarray($privilege['modules']);
             foreach ($privilege_modules as $module_id) {
                 $module = $this->Module->find($module_id);
                 $modules[] = $module->name;
             }
             $bootgrid_arr[] = array('count_id' => $key + 1 + $start_from, 'id' => $privilege['id'], 'name' => $privilege['name'], 'code' => $privilege['code'], 'description' => $privilege['description'], 'modules' => arraytoimplode($modules, ",<br>"));
         }
         $data = array("current" => intval($current), "rowCount" => $limit, "searchPhrase" => $wildcard, "total" => intval($total), "rows" => $bootgrid_arr, "trash" => array("count" => $this->PrivilegesLevel->get_all(0, 0, null, true)->num_rows()));
         echo json_encode($data);
         exit;
     }
 }
コード例 #2
0
 public function listing()
 {
     /**
      * AJAX List of Data
      * Here we load the list of data in a table
      */
     if ($this->input->is_ajax_request()) {
         $bootgrid_arr = [];
         $current = $this->input->post('current');
         $limit = $this->input->post('rowCount') == -1 ? 0 : $this->input->post('rowCount');
         $page = $current !== null ? $current : 1;
         $start_from = ($page - 1) * $limit;
         $sort = null != $this->input->post('sort') ? $this->input->post('sort') : null;
         $wildcard = null != $this->input->post('searchPhrase') ? $this->input->post('searchPhrase') : null;
         $total = $this->Contact->get_all()->num_rows();
         if (null != $wildcard) {
             $contacts = $this->Contact->like($wildcard, $start_from, $limit, $sort)->result_array();
             $total = $this->Contact->like($wildcard)->num_rows();
         } else {
             $contacts = $this->Contact->get_all($start_from, $limit, $sort)->result_array();
         }
         foreach ($contacts as $key => $contact) {
             $group = null;
             if (null != $contact['contacts_group']) {
                 $group = $this->Group->find(explodetoarray($contact['contacts_group']));
             }
             $groups_name_arr = [];
             $groups_id_arr = [];
             if (is_array($group)) {
                 foreach ($group as $group_single) {
                     $groups_name_arr[] = $group_single->groups_name;
                     $groups_id_arr[] = $group_single->groups_id;
                 }
             }
             if (null !== $contact['contacts_level']) {
                 $level = $this->Level->find(explodetoarray($contact['contacts_level']));
             }
             $levels_name_arr = [];
             $levels_id_arr = [];
             if (is_array($level)) {
                 foreach ($level as $level_single) {
                     $levels_name_arr[] = $level_single->levels_name;
                     $levels_id_arr[] = $level_single->levels_id;
                 }
             }
             if (null !== $contact['contacts_type']) {
                 $type = $this->Type->find(explodetoarray($contact['contacts_type']));
             }
             $types_name_arr = [];
             $types_id_arr = [];
             if (is_array($type)) {
                 foreach ($type as $type_single) {
                     $types_name_arr[] = $type_single->types_name;
                     $types_id_arr[] = $type_single->types_id;
                 }
             }
             $bootgrid_arr[] = array('count_id' => $key + 1 + $start_from, 'contacts_id' => $contact['contacts_id'], 'contacts_firstname' => arraytostring([$contact['contacts_firstname'], $contact['contacts_middlename'] ? substr($contact['contacts_middlename'], 0, 1) . '.' : '', $contact['contacts_lastname']], ' '), 'contacts_level' => $levels_name_arr ? arraytostring($levels_name_arr, ", ") : '', 'levels_id' => $levels_id_arr ? $levels_id_arr : '', 'contacts_type' => $types_name_arr ? arraytostring($types_name_arr, ", ") : '', 'types_id' => $types_id_arr ? $types_id_arr : '', 'contacts_address' => arraytostring([$contact['contacts_blockno'], $contact['contacts_street'], $contact['contacts_brgy'], $contact['contacts_city'], $contact['contacts_zip']]), 'contacts_telephone' => $contact['contacts_telephone'], 'contacts_mobile' => $contact['contacts_mobile'], 'contacts_email' => $contact['contacts_email'], 'contacts_group' => $groups_name_arr ? arraytostring($groups_name_arr, ", ") : '', 'groups_id' => $groups_id_arr ? $groups_id_arr : '');
         }
         $data = array("current" => intval($current), "rowCount" => $limit, "searchPhrase" => $wildcard, "total" => intval($total), "rows" => $bootgrid_arr);
         echo json_encode($data);
         exit;
     }
 }
コード例 #3
0
 public function update($id)
 {
     if ($this->input->is_ajax_request()) {
         /*
         | --------------------------------------
         | # Validation
         | --------------------------------------
         */
         if ($this->Group->validate(false, $id, $this->input->post('groups_code'))) {
             /*
             | --------------------------------------
             | # Update
             | --------------------------------------
             */
             $group = array('groups_name' => $this->input->post('groups_name'), 'groups_description' => $this->input->post('groups_description'), 'groups_code' => $this->input->post('groups_code'), 'updated_by' => $this->user_id);
             $this->Group->update($id, $group);
             # Look up any member that shouldn't be in the group anymore
             $old_members_of_this_group = $this->GroupMember->lookup('group_id', $id)->result_array();
             foreach ($old_members_of_this_group as $group_members) {
                 $old_member = $this->Member->find($group_members['member_id']);
                 $old_member_groups = [];
                 if (!empty($old_member->groups)) {
                     $old_member_groups = explode(",", $old_member->groups);
                 }
                 if (!in_array($old_member->id, explodetoarray($this->input->post('groups_members')))) {
                     $index = array_search($group_members['group_id'], $old_member_groups);
                     unset($old_member_groups[$index]);
                 }
                 $old_member_groups = arraytoimplode($old_member_groups);
                 // implode to string
                 # Update the member
                 $this->Member->update($old_member->id, array('groups' => $old_member_groups, 'updated_by' => $this->user_id));
             }
             # Update the members.groups
             $members = $this->Member->find(explodetoarray($this->input->post('groups_members')));
             $this->GroupMember->delete($id);
             foreach ($members->result_array() as $member) {
                 $member_groups = [];
                 if (!empty($member['groups'])) {
                     $member_groups = explode(",", $member['groups']);
                 }
                 if (!in_array($id, $member_groups)) {
                     $member_groups[] = $id;
                 }
                 $member_groups = arraytoimplode($member_groups);
                 // implode to string
                 # Update the member
                 $this->Member->update($member['id'], array('groups' => $member_groups, 'updated_by' => $this->user_id));
                 # Update the group_members
                 $group_ids = explodetoarray($member_groups);
                 $this->GroupMember->delete_member($member['id']);
                 foreach ($group_ids as $group_id) {
                     $this->GroupMember->insert(array('group_id' => $group_id, 'member_id' => $member['id']));
                 }
             }
             $data = array('message' => 'Group was successfully updated', 'type' => 'success', 'debug-2' => $old_members_of_this_group);
             echo json_encode($data);
             exit;
         } else {
             echo json_encode(['message' => $this->form_validation->toArray(), 'type' => 'danger']);
             exit;
         }
     }
 }
コード例 #4
0
 /**
  * Import Page for this controller
  * @return [type] [description]
  */
 public function import()
 {
     if (!$this->Auth->can(['members/import'])) {
         $this->Data['Headers']->Page = 'errors/403';
         $this->load->view('layouts/errors', $this->Data);
         return false;
     }
     if ($this->input->is_ajax_request()) {
         $this->load->library('upload', ['upload_path' => './uploads/', 'allowed_types' => 'csv']);
         if (!$this->upload->do_upload('file')) {
             $data = array('message' => $this->upload->display_errors(), 'type' => 'error');
         } else {
             # Import
             $full_path = $this->upload->data()['full_path'];
             if ($this->Member->import($this->upload->data()['full_path'])) {
                 # Delete uploaded file
                 clean_upload_folder($full_path);
                 clean_upload_folder($full_path);
                 # Response
                 $data = array('message' => 'Members successfully imported.', 'type' => 'success');
                 # Also import on TABLE `group_members`
                 $members = $this->Member->all();
                 foreach ($members as $member) {
                     $group_ids = explodetoarray($member->groups);
                     $members_groups = $this->GroupMember->lookup('member_id', $member->id)->result_array();
                     $this->GroupMember->delete_member($member->id);
                     if ($group_ids) {
                         foreach ($group_ids as $group_id) {
                             $this->GroupMember->insert(array('group_id' => $group_id, 'member_id' => $member->id));
                         }
                     }
                 }
             } else {
                 $data = array('message' => 'Something went wrong importing the file', 'type' => 'error');
             }
         }
         echo json_encode($data);
         exit;
     }
     // $this->Data['Headers']->CSS.= '<link rel="stylesheet" href="'.base_url('assets/vendors/dropzone/dropzone.css').'"></link>';
     // $this->Data['Headers']->JS .= '<script src="'.base_url('assets/vendors/dropzone/dropzone.min.js').'"></script>';
     $this->Data['Headers']->JS .= '<script src="' . base_url('assets/js/specifics/membersImport.js') . '"></script>';
     $this->load->view('layouts/main', $this->Data);
 }