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; } }
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; } }
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; } } }
/** * 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); }