diff --git a/config/routes.yaml b/config/routes.yaml index 2429ab4..4f967c9 100644 --- a/config/routes.yaml +++ b/config/routes.yaml @@ -1,7 +1,7 @@ default: path: '/' defaults: - _controller: JeroenED\Webcron\Controller\DefaultController::defaultAction + _controller: JeroenED\Webcron\Controller\JobController::defaultAction login: path: '/login' @@ -13,3 +13,13 @@ login_check: methods: ['POST'] defaults: _controller: JeroenED\Webcron\Controller\SecurityController::loginCheckAction + +job_index: + path: '/job' + defaults: + _controller: JeroenED\Webcron\Controller\JobController::defaultAction + +job_view: + path: '/job/{id}' + defaults: + _controller: JeroenED\Webcron\Controller\JobController::viewAction diff --git a/lib/Framework/Router.php b/lib/Framework/Router.php index 92ae719..7704d90 100644 --- a/lib/Framework/Router.php +++ b/lib/Framework/Router.php @@ -28,7 +28,9 @@ class Router $controller = explode('::', $method['_controller']); $controllerObj = new ('\\' . $controller[0])($request, $kernel); $action = $controller[1]; - $response = $controllerObj->$action(); + unset($method['_controller']); + unset($method['_route']); + $response = $controllerObj->$action(...$method); if ($response instanceof Response) { return $response; diff --git a/lib/Framework/Twig.php b/lib/Framework/Twig.php index 2bbbfff..e016404 100644 --- a/lib/Framework/Twig.php +++ b/lib/Framework/Twig.php @@ -30,8 +30,8 @@ class Twig public function addFunctions() { - $path = new TwigFunction('path', function(string $route) { - return $this->kernel->getRouter()->getUrlForRoute($route); + $path = new TwigFunction('path', function(string $route, array $params) { + return $this->kernel->getRouter()->getUrlForRoute($route, $params); }); $this->environment->addFunction($path); diff --git a/src/Controller/DefaultController.php b/src/Controller/JobController.php similarity index 72% rename from src/Controller/DefaultController.php rename to src/Controller/JobController.php index 4065241..a886121 100644 --- a/src/Controller/DefaultController.php +++ b/src/Controller/JobController.php @@ -8,9 +8,10 @@ use JeroenED\Webcron\Repository\Job; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Response; -class DefaultController extends Controller +class JobController extends Controller { - public function DefaultAction() { + public function DefaultAction() + { if(!isset($_SESSION['isAuthenticated']) || !$_SESSION['isAuthenticated']) { return new RedirectResponse($this->generateRoute('login')); } @@ -18,4 +19,9 @@ class DefaultController extends Controller $jobs = $jobRepo->getAllJobs(); return $this->render('job/index.html.twig', ['jobs' => $jobs]); } + + public function viewAction($id) + { + return new Response('Not implemented yet', Response::HTTP_TOO_EARLY); + } } \ No newline at end of file diff --git a/storage/database.sql b/storage/database.sql new file mode 100644 index 0000000..7ec2a10 --- /dev/null +++ b/storage/database.sql @@ -0,0 +1,17 @@ +-- job definition +CREATE TABLE job ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + name TEXT(25) NOT NULL, + "data" TEXT NOT NULL, + delay INTEGER, + nextrun INTEGER, + lastrun INTEGER +); + + +-- "user" definition +CREATE TABLE "user" ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + email TEXT(50) NOT NULL, + password TEXT(72) NOT NULL +); \ No newline at end of file diff --git a/templates/job/index.html.twig b/templates/job/index.html.twig index d46af73..b29ff80 100644 --- a/templates/job/index.html.twig +++ b/templates/job/index.html.twig @@ -24,7 +24,7 @@ {{ job.nextrun | date("d/m/Y H:i:s") }} - +