. */ namespace App\Http\Controllers\Admin; use App\Account; use App\ContactsList; use App\Http\Controllers\Controller; use Illuminate\Validation\Rule; use Illuminate\Http\Request; class ContactsListController extends Controller { public function index(Request $request) { $request->validate([ 'order_by' => 'in:title,updated_at,contacts_count', 'order_sort' => 'in:asc,desc', ]); $contactsLists = ContactsList::orderBy($request->get('order_by', 'updated_at'), $request->get('order_sort', 'desc')); return view('admin.contacts_list.index', [ 'contacts_lists' => $contactsLists ->paginate(20) ->appends($request->query()), ]); } public function show(int $id) { } public function create(Request $request) { return view('admin.contacts_list.create_edit', [ 'contacts_list' => new ContactsList, ]); } public function store(Request $request) { $request->validate([ 'title' => 'required|unique:contacts_lists' ]); $contactsList = new ContactsList; $contactsList->title = $request->get('title'); $contactsList->description = $request->get('description'); $contactsList->save(); return redirect()->route('admin.contacts_lists.edit', $contactsList->id); } public function search(Request $request, int $contactsListId) { return redirect()->route('admin.contacts_lists.edit', ['contacts_list_id' => $contactsListId] + $request->except('_token')); } public function edit(Request $request, int $id) { $contacts = ContactsList::findOrFail($id)->contacts(); if ($request->has('search')) { $contacts = $contacts->where('username', 'like', '%' . $request->get('search') . '%'); } if ($request->has('domain')) { $contact = $contacts->where('domain', $request->get('domain')); } $contacts = $contacts->get(); return view('admin.contacts_list.create_edit', [ 'domains' => Account::groupBy('domain')->pluck('domain'), 'contacts_list' => ContactsList::findOrFail($id), 'contacts' => $contacts ]); } public function update(Request $request, int $id) { $request->validate([ 'title' => [ 'required', Rule::unique('contacts_lists')->ignore($id), ], ]); $contactsList = ContactsList::findOrFail($id); $contactsList->title = $request->get('title'); $contactsList->description = $request->get('description'); $contactsList->save(); return redirect()->route('admin.contacts_lists.index'); } public function delete(int $id) { return view('admin.contacts_list.delete', [ 'contacts_list' => ContactsList::findOrFail($id), ]); } public function destroy(Request $request) { $contactsList = ContactsList::findOrFail($request->get('contacts_lists_id')); $contactsList->delete(); return redirect()->route('admin.contacts_lists.index'); } }