/**
  * Filters departments by criteria
  * @param \Illuminate\Http\Request $request
  * @return \Illuminate\Http\Response
  */
 public function filter(Request $request)
 {
     $departments = null;
     $user = Session::get('user');
     $match_departments = Session::get('match_departments');
     // Get all inputs from request
     $btnFindDepartment = $request->input('btnFindDepartment');
     $btnFindAll = $request->input('btnFindAll');
     $departmentName = $request->input('txtDepartmentSearch');
     $match_departments = Session::get('match_departments');
     $departments = Department::whereIn('id', $match_departments)->get();
     // Check which action to perform
     if (isset($btnFindDepartment)) {
         $filtered = collect([]);
         // Filter by name
         if ($departmentName != null) {
             $filtered = $departments->filter(function ($item) use($departmentName) {
                 if (strpos($item->name, $departmentName) !== false) {
                     // Get rough match
                     return true;
                 }
             });
         }
         $departments = $filtered;
     } else {
         if (isset($btnFindAll)) {
             // Get all departments and clear search string
             $departmentName = null;
             //$departments = Department::all();
         } else {
             abort(401, 'Unauthorized');
         }
     }
     $data = array('departments' => $departments, 'departmentName' => $departmentName, 'user' => $user);
     return view('pages/departments', $data);
 }