hostingServerRepository->filter( [ 'page' => $request->get('page') ?? 1 ] ); $title = 'List all server hosting'; return view('administrator.pages.module.hosting.index', compact('modules', 'title')); } public function import(Request $request) { if (!$request->file) { return back()->withErrors("Please choose your file"); } $data = Excel::toArray([], $request->file); if (count($data) > 0) { $data = array_slice($data[0], 1); $allData = []; foreach ($data as $row) { if (isset($row[1]) && isset($row[2]) && isset($row[3]) && !empty($row[1]) && !empty($row[1]) && !empty($row[1])) { $allData[] = [ 'name' => $row[1], 'user' => $row[2], 'password' => SignRSA::EncryptFunc($row[3]) ]; } } } if (!isset($allData) || (isset($allData) && count($allData) < 1)) { return back()->withErrors('No data imported'); } DB::beginTransaction(); try { $this->hostingServerRepository->insert($allData); DB::commit(); } catch (Exception $error) { DB::rollBack(); return back()->withErrors($error->getMessage()); } return back()->with('success', 'Imported successfully'); } public function create() { $title = 'Add new server hosting'; return view('administrator.pages.module.hosting.add', compact('title')); } public function store(CreateHostingRequest $request) { $request->validated(); $isExitsHost = $this->hostingServerRepository->findByName($request->get('name')); if ($isExitsHost) { return back()->withErrors('The server already exists'); } DB::beginTransaction(); try { $data = $request->all(); $data['password'] = SignRSA::EncryptFunc($request->password); $this->hostingServerRepository->create($data); DB::commit(); } catch (\Exception $error) { DB::rollBack(); return back()->withErrors($error->getMessage()); } return redirect()->route('module.hosting.index')->with('success', 'Added successfully'); } public function edit(int $id = 0) { $server = $this->hostingServerRepository->find($id); if (!$server) return back()->withErrors('Can\'t find server by id ' . $id); $title = 'View server hosting information'; return view('administrator.pages.module.hosting.edit', compact('title', 'server')); } public function update(UpdateHostingRequest $request, int $id = 0) { $server = $this->hostingServerRepository->find($id); if (!$server) { return back()->withErrors('Invalid Request'); } $request->validated(); if ($request->get('name') != $server->name) { $isExitsHost = $this->hostingServerRepository->findByName($request->get('name')); if ($isExitsHost) { return back()->withErrors('The server already exists'); } } DB::beginTransaction(); try { $data = $request->all(); if (!empty($request->get('password'))) { $data['password'] = SignRSA::EncryptFunc($request->password); } $this->hostingServerRepository->update($id, $data); DB::commit(); } catch (\Exception $error) { DB::rollBack(); return back()->withErrors($error->getMessage()); } return redirect()->route('module.hosting.index')->with('success', 'Updated successfully.'); } public function destroy(int $id = 0) { $server = $this->hostingServerRepository->find($id); if (!$server) { return back()->withErrors('Invalid Request'); } DB::beginTransaction(); try { $this->hostingServerRepository->delete($id); DB::commit(); } catch (\Exception $error) { DB::rollBack(); return back()->withErrors($error->getMessage()); } return redirect()->route('module.hosting.index')->with('success', 'Deleted successfully.'); } public function datatable(Request $request) { $query = $this->hostingServerRepository->filter( $request->all(), [], [], ['*'], true ); return DataTables::eloquent($query) ->addColumn( 'action', function ($d) { return view('administrator.pages.module.dns.datatable.action', ['row' => $d])->render(); } ) ->filterColumn('name', function ($query, $keyword) { $query->where('name', 'like', "%{$keyword}%"); }) ->filterColumn('user', function ($query, $keyword) { $query->where('user', 'like', "%{$keyword}%"); }) ->make(true); } }