mirror of
https://koodu.h-i.works/projects/thebadspace
synced 2025-06-25 16:04:37 -05:00
Location Editing Part. 1
Now that full-text searching is set up in the DB, the next step is data population. The adding and editing templates were added as long as routes and base functionality to add single locations. Adding works and editing is almost there but both still need to cleaned up. The basic plumbing will be completed and then the tweaking to account for roles and login status for the sake of security. Part 2 will include clean up and and bulk uploads through the use of CSV files.
This commit is contained in:
167
src/Controller/Routes/Back/Locations.php
Normal file
167
src/Controller/Routes/Back/Locations.php
Normal file
@ -0,0 +1,167 @@
|
||||
<?php
|
||||
|
||||
// src/Controller/DataImport.php
|
||||
// Grab data from transfer app
|
||||
|
||||
namespace App\Controller\Routes\Back;
|
||||
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
use App\Service\HandleLocations;
|
||||
//use App\Utils\PageRender;
|
||||
//use App\Utils\StringTools;
|
||||
use App\Service\Auth;
|
||||
use App\Service\FileUploader;
|
||||
|
||||
class Locations extends AbstractController
|
||||
{
|
||||
/**
|
||||
* @Route("/den/locations", name="den-reroute-index")
|
||||
*/
|
||||
public function rerouteIndex()
|
||||
{
|
||||
header("Location:/den/locations/page/1");
|
||||
return new Response("<html><body>LOGGED IN</body></html>");
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/den/locations/page/{pageNum}", name="den-locations")
|
||||
*/
|
||||
public function locationIndex(
|
||||
Request $request,
|
||||
RequestStack $requestStack,
|
||||
Auth $auth,
|
||||
HandleLocations $locations,
|
||||
string $pageNum
|
||||
): Response {
|
||||
$result = $auth->status();
|
||||
if ($result["status"]) {
|
||||
$session = $requestStack->getSession();
|
||||
$member = $session->get("member");
|
||||
$list = $locations->getLocationsPage($pageNum);
|
||||
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("<html><body>LOGGED IN</body></html>");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @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("<html><body>LOGGED IN</body></html>");
|
||||
}
|
||||
}
|
||||
}
|
@ -137,7 +137,7 @@ class Members extends AbstractController
|
||||
}
|
||||
} else {
|
||||
//back to index to login
|
||||
header("Location:/knockknock");
|
||||
header("Location:/den");
|
||||
return new Response("<html><body>LOGGED IN</body></html>");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user