LOGGED IN"); } /** * @Route("/den/locations/page/{pageNum}", name="den-locations") */ public function locationIndex( Request $request, RequestStack $requestStack, Auth $auth, HandleLocations $locations, ManagerRegistry $doctrine, Connection $connection, string $pageNum ): Response { $result = $auth->status(); if ($result["status"]) { $session = $requestStack->getSession(); $member = $session->get("member"); $list = $locations->getLocationsPage($pageNum); //$search = $connection->fetchAllAssociative("SELECT * FROM searchlocations('agenda')"); //var_dump($search[0]["name"]); return $this->render("back/locations.twig", [ "title" => "Bad Space | Locations", "handle" => $member->getHandle(), "list" => $list, "mode" => "index" ]); } else { return $this->render("back/index.twig", [ "title" => "Close the door behind you", ]); } } /** * @Route("/den/locations/add", name="location-add") */ public function addLocation( Request $request, Auth $auth, HandleLocations $locations, ManagerRegistry $doctrine, FileUploader $uploader ): Response { $result = $auth->status(); if ($result["status"]) { if ($request->getMethod() == "GET") { return $this->render("back/locations.twig", [ "title" => "Bad Space | Locations | Add", "mode" => "add" ]); } else { //add new member $token = $request->get("token"); $notice = ""; $entityManager = $doctrine->getManager(); //token check if (!$this->isCsrfTokenValid("upload", $token)) { $logger->info("CSRF failure"); return new Response( "Operation not allowed", Response::HTTP_BAD_REQUEST, [ "content-type" => "text/plain", ] ); } $examples = []; $files = $request->files->get("loc_examples"); if (!empty($files)) { for ($i = 0; $i < count($files); $i++) { $path = $files[$i]->getClientOriginalName(); array_push($examples, ["image_index" => $i, "path" => urlencode($path)]); $uploader->uploadExamples("../public/assets/images/examples", $files[$i]); } } if ( $request->request->get("loc_name") == "" || $request->request->get("loc_url") == "" || $request->request->get("loc_desc") == "" || $request->request->get("loc_tags") == "" ) { $notice = "All fields are required, champ."; return $this->render("back/locations.twig", [ "title" => "Bad Space | Locations | Add", "notice" => $notice, "mode" => "add" ]); } //check clear, call add method $response = $locations->addLocation($request, $result["id"]); if ($response["status"]) { $notice = "New location added! Take a break."; return $this->render("back/locations.twig", [ "title" => "Bad Space | Locations | Add", "notice" => $notice, "mode" => "add" ]); } else { return $this->render("back/locations.twig", [ "title" => "Bad Space | Locations | Add", "notice" => $response["message"], "mode" => "add" ]); } } } else { //back to index to login header("Location:/den"); return new Response("LOGGED IN"); } } /** * @Route("/den/locations/bulk-add", name="location-bulk-add") */ public function bulkAddLocation( Request $request, Auth $auth, HandleLocations $locations, ManagerRegistry $doctrine, FileUploader $uploader ): Response { $result = $auth->status(); if ($result["status"]) { if ($request->getMethod() == "GET") { return $this->render("back/locations.twig", [ "title" => "Bad Space | Locations | Bulk Add", "mode" => "bulk-add" ]); } else { // do posting stuff $token = $request->get("token"); $entityManager = $doctrine->getManager(); $notice = ''; if (!$this->isCsrfTokenValid("upload", $token)) { $logger->info("CSRF failure"); return new Response( "Operation not allowed", Response::HTTP_BAD_REQUEST, [ "content-type" => "text/plain", ] ); } //get file from post $file = $request->files->get("myfile"); //grab extension if (!empty($file)) { $extention = substr(strrchr($file->getClientOriginalName(), "."), 1); } //check it out to make sure it's cool if ( empty($file) || $extention != "csv" ) { if (empty($file)) { $notice = 'You didn\'t select a file, boss'; } elseif ($extention != "csv") { $notice = "Only files of type .csv are accepted, slick. " . $extention; } return $this->render("back/locations.twig", [ "title" => "Bad Space | Locations | Add", "notice" => $notice, "mode" => "bulk-add" ]); } //if it's cool, send it to be processed $response = $locations->addMultipleLocations($file, $result["id"]); if ($response["status"]) { $notice = "New locations added! Take a break."; return $this->render("back/locations.twig", [ "title" => "Bad Space | Locations | Add", "notice" => $response["message"], "mode" => "bulk-add" ]); } else { return $this->render("back/locations.twig", [ "title" => "Bad Space | Locations | Add", "notice" => $response["message"], "mode" => "bulk-add" ]); } } } else { header("Location:/den"); return new Response("LOGGED IN"); } } /** * @Route("/den/locations/edit/{uuid}", name="location-edit") */ public function editLocation( Request $request, Auth $auth, HandleLocations $locations, ManagerRegistry $doctrine, FileUploader $uploader, string $uuid = "1" ): Response { $result = $auth->status(); if ($result["status"]) { $location = $locations->getLocationbyUUID($uuid); return $this->render("back/locations.twig", [ "title" => "Bad Space | Locations | Edit", "mode" => "edit", "location" => $location[0] ]); } else { header("Location:/den"); return new Response("LOGGED IN"); } } }