/**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     $allowed_departments = Session::get('allowed_departments');
     $user = Session::get('user');
     $data = array('allowed_departments' => $allowed_departments, 'backgrounds' => Background::all(), 'user' => $user);
     return view('pages/dashboard', $data);
 }
 /**
  * Filter backgrounds by criteria
  * @param \Illuminate\Http\Request $request
  * @return \Illuminate\Http\Response
  */
 public function filter(Request $request)
 {
     $user = Session::get('user');
     // Get request inputs
     $btnFindbackground = $request->input('btnFindBackground');
     $btnFindAll = $request->input('btnFindAll');
     $backgroundName = $request->input('txtBackgroundSearch');
     // Get all backgrounds
     $backgrounds = Background::all();
     // Check which action to perform
     if (isset($btnFindbackground)) {
         $filtered = collect([]);
         // First filter by name
         if ($backgroundName != null) {
             $filtered = $backgrounds->filter(function ($item) use($backgroundName) {
                 if (strpos($item->name, $backgroundName) !== false) {
                     // Get rough match
                     return true;
                 }
             });
         }
         $backgrounds = $filtered;
     } else {
         if (isset($btnFindAll)) {
             // Reset search input box
             $backgroundName = null;
         } else {
             abort(401, 'Un-authorised');
         }
     }
     $data = array('user' => $user, 'backgrounds' => $backgrounds);
     return view('pages/backgroundsEditor', $data);
 }
 /**
  * Filters adverts by criteria
  * @param \Illuminate\Http\Request $request
  * @return \Illuminate\Http\Response
  */
 public function filter(Request $request)
 {
     // Get user details
     $user = Session::get('user');
     $allowed_departments = Session::get('allowed_departments');
     // Get request inputs
     $btnFindAdvert = $request->input('btnFindAdvert');
     $btnFindAll = $request->input('btnFindAll');
     $advertName = $request->input('txtAdvertSearch');
     $departmentID = $request->input('drpDepartments');
     // Get all adverts this user can view
     $adverts = $this->getAllowedAdverts($user, $allowed_departments);
     // Determine operation
     if (isset($btnFindAdvert)) {
         $filtered = collect([]);
         if ($advertName != null) {
             // Search by name
             $filtered = $adverts->filter(function ($item) use($advertName) {
                 if (strpos($item->name, $advertName) != false) {
                     // Match name?
                     return true;
                 }
             });
         }
         // Search by department
         if ($filtered->count() == 0) {
             $filtered = $adverts->filter(function ($item) use($departmentID) {
                 if ($item->department_id == $departmentID) {
                     // Match ID
                     return true;
                 }
             });
         }
         $adverts = $filtered;
     } else {
         if (isset($btnFindAll)) {
             // Reset search input box
             $advertName = null;
         } else {
             abort(401, 'Un-authorised');
         }
     }
     $data = array('user' => $user, 'adverts' => $adverts, 'allowed_departments' => $allowed_departments, 'backgrounds' => Background::all());
     return view('pages/adverts', $data);
 }