'admin.dashboard' | jangan lupa diganti
private $header = 'Message';
private $sub_header = 'Message';
private $url = 'admin.raharja.message.';
public function __construct()
{
DB::enableQueryLog();
/** nyalakan jika sudah set rolenya, jika ini dinyalakan halaman ini tidak akan keluar */
// $this->middleware('permission:searching-list|searching-create|searching-update|searching-delete', ['only' => ['index', 'create', 'update']]);
// $this->middleware('permission:searching-create', ['only' => ['create', 'create_action']]);
// $this->middleware('permission:searching-update', ['only' => ['update', 'update_action']]);
// $this->middleware('permission:searching-delete', ['only' => ['delete']]);
}
/**
* Ini contoh crud yang sudah jalan
* index digunakna untuk tampilan awal dari menu yang akan dibuat
* Untuk CRUD Biar cepat
* Silahkan ganti
* EloquentMu:: => dengan model anda
* $id_modelmu => ganti dengan id di model anda
* id_di_routenya => jangan lupa disesuaikan dengan yang dideclare di route
*/
public function index()
{
Helper::swal();
$data = [
//bawaan
'title' => $this->title,
'route' => $this->route,
'header' => $this->header,
'sub_header' => $this->sub_header,
];
// dd($data);
return view($this->url . 'index', $data);
}
public function getData($udd_id = null)
{
$query = Message::query();
return Datatables::of($query)
->addIndexColumn()
->addColumn('aksi', function ($query) {
/**cek role */
$aksi = '';
// if (Auth::user()->can('master-jenis-kantong-update')) {
// $aksi .= " Hashids::encode($query->id)]) . "' class='btn btn-sm btn-primary btn-edit'>Kirim";
// }
// if (Auth::user()->can('master-jenis-kantong-delete')) {
$aksi .= " Hashids::encode($query->id)]) . "' class='btn btn-danger btn-sm btn-delete'>Delete";
// }
return $aksi;
})
->rawColumns(['aksi'])
->toJson();
}
public function create()
{
$arr_category = CategoryMesssage::get();
$data = [
//bawaan
'title' => $this->title,
'route' => $this->route,
'header' => $this->header,
'sub_header' => $this->sub_header,
'categories' => $arr_category,
];
Helper::swal();
return view($this->url . 'create', $data);
}
public function create_action(Request $request)
{
//declare post untuk simpan semua request yang diinputkan oleh form name=""
$post = $request->all();
//dd($post);
/**digunakan untuk set rule validator */
$rules = [
'title' => 'required',
'content' => 'required',
'category' => 'required',
];
/**digunakan untuk set message dari validatornya yang akan keluar gimna, :attribue itu udah langsung mendeteksi inputtan dari name="attribue" */
$alert = [
'file' => 'File maksimal 1MB'
];
$validator = Validator::make($post, $rules, $alert);
if ($validator->passes()) {
/**menggunakan transaction */
DB::beginTransaction();
$set_data_message = [
'category_message_id' => $post['category'],
'title' => $post['title'],
'user_id' => Auth::user()->id,
'content' => Helper::input_summernote($post['content']),
];
$message = Message::create($set_data_message);
if($post['keterangan_kirim'] == 'semua'){
$arr_user = User::get()->pluck('id')->toArray();
}else{
$arr_user = $post['pilih_user'];
}
foreach($arr_user as $key => $value){
$set_data_user_recive[] = [
'message_id' => $message->id,
'user_id' => $value,
'created_at' => Carbon::now(),
'is_check' => 0,
];
}
$user_receive = UserReceive::insert($set_data_user_recive);
if ($message && $user_receive) {
DB::commit();
$message = 'Berhasil';
return redirect(route($this->route . 'index'))->with('success', Helper::parsing_alert($message));
} else {
DB::rollback();
$message = 'Gagal';
return redirect()->back()->with('error', Helper::parsing_alert($message));
}
}
/**kenapa menggunakan back ? karena baliknya pasti ke halaman sebelumnya */
$message = Helper::parsing_alert($validator->errors()->all());
return redirect()->back()->with('error', $message)->withInput();
}
public function delete_action($id_modelmu)
{
$id = Hashids::decode($id_modelmu);
/**cek idnya apakah ada ? */
if (!empty($id)) {
$cek_data = Message::find($id[0]);
if ($cek_data) {
DB::beginTransaction();
try {
$arr_user_receive = UserReceive::Where('message_id', $cek_data->id)->delete();
$delete = $cek_data->delete();
DB::commit();
$message = 'Sukses';
$response = [
'message' => $message,
'status' => true,
];
return response()->json($response);
} catch (Exception $e) {
DB::rollback();
$message = 'Gagal';
$response = [
'message' => $message,
'status' => false,
];
return response()->json($response);
}
}
$message = 'Id tidak ditemukan atau sudah dihapus';
$response = [
'message' => $message,
'status' => false,
];
return response()->json($response);
}
$message = 'Id tdak ditemukan';
$response = [
'message' => $message,
'status' => false,
];
return response()->json($response);
}
public function selectUser(Request $request){
if (session('error')) {
alert()->html('', session('error'), 'error');
}
$term = trim($request['nama']);
$user = User::take(10);
if (!empty($request['not_in'])) {
$id = collect($request['not_in']);
$user = $user->whereNotIn('id', $id);
}
if (!empty($term)) {
$user = $user->where('nama', 'like', '%' . $term . '%');
}
$user = $user->get();
$response = [];
foreach ($user as $key => $value) {
$response[] = ['id' => $value->id, 'text' => $value->name ];
}
return response()->json($response);
}
public function send($data_id){
$id = Hashids::decode($data_id);
$query = Message::where('id', $id)->first();
foreach($query->userReceive as $key => $value){
$set_data_user_recive[] = [
'message_id' => $query->id,
'user_receive_id' => $value->user_id,
'author_id' => $query->user_id,
'title' => $query->title,
'content' => $query->content,
'category' => $query->categoryMessage->name,
];
}
if($set_data_user_recive){
$result = $set_data_user_recive;
$res_status = true;
$msg = 'Kirim Data';
$status_msg = $msg;
return $this->resSuccess(null, $res_status, $msg, $status_msg, $result);
}else {
$res_status = false;
$msg = 'Data tidak ditemukan';
$status_msg = $msg;
return $this->resSuccess(null, $res_status, $msg, $status_msg, null);
}
}
public function resSuccess($param = null, $status = null, $msg = null, $status_msg = null, $result = null)
{
$response['response'] = array(
'status' => $status,
'message' => $msg,
'status_msg' => $status_msg,
);
$response['param'] = !empty($param) ? $param : '';
$response['results'] = $result;
return response()->json($response, 200);
}
}