diff --git a/public/site/controllers/site.php b/public/site/controllers/site.php index 73ff66a..ab60617 100644 --- a/public/site/controllers/site.php +++ b/public/site/controllers/site.php @@ -1,27 +1,31 @@ user()) { - go($site->panel()->url()); - } - $data = $page->toArray(); - $data['template'] = (string) $page->template(); - $data['newInspirations'] = (bool) page('inspirations')->children()->findBy('new', 'true'); + if (!$kirby->user() && $page->uri() != 'login') { + go('/login'); + } else { + $data = $page->toArray(); + $data['template'] = (string) $page->template(); + $data['newInspirations'] = (bool) page('inspirations')->children()->findBy('new', 'true'); - $userData = [ - "role" => (string) $kirby->user()->role(), - "uuid" => (string) $kirby->user()->uuid() - ]; - - if ($kirby->user()->client()->exists() && $kirby->user()->client()->isNotEmpty()) { - $userData['client'] = [ - "name" => (string) $kirby->user()->client()->toPage()->title(), - "uuid" => (string) $kirby->user()->client()->toPage()->uuid() + if ($kirby->user()) { + $userData = [ + "role" => (string) $kirby->user()->role(), + "uuid" => (string) $kirby->user()->uuid() + ]; + + if ($kirby->user()->client()->exists() && $kirby->user()->client()->isNotEmpty()) { + $userData['client'] = [ + "name" => (string) $kirby->user()->client()->toPage()->title(), + "uuid" => (string) $kirby->user()->client()->toPage()->uuid() + ]; + } + } + + + return [ + 'genericData' => $data, + 'userData' => $userData ?? null ]; } - - return [ - 'genericData' => $data, - 'userData' => $userData - ]; }; \ No newline at end of file diff --git a/public/site/templates/login.json.php b/public/site/templates/login.json.php new file mode 100644 index 0000000..8c7cbe7 --- /dev/null +++ b/public/site/templates/login.json.php @@ -0,0 +1,13 @@ + $page->exampleField(), + "exampleHardData" => 'Example hard value' +]; + +$pageData = array_merge($genericData, $specificData); + +echo json_encode([ + "page" => $pageData, + "user" => $userData +]); \ No newline at end of file diff --git a/public/site/templates/login.php b/public/site/templates/login.php new file mode 100644 index 0000000..4ed6305 --- /dev/null +++ b/public/site/templates/login.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 2bd1586..0afe36b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,7 +1,7 @@ diff --git a/src/router/routes.js b/src/router/routes.js index 59af90b..be32a81 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -1,60 +1,65 @@ -import Home from "../views/Home.vue"; -import Notifications from "../views/Notifications.vue"; -import Reunions from "../views/Reunions.vue"; -import Inspirations from "../views/Inspirations.vue"; -import Kanban from "../views/Kanban.vue"; -import Brief from "../views/Brief.vue"; -import DesignToLight from "../views/DesignToLight.vue"; +import Home from '../views/Home.vue'; +import Notifications from '../views/Notifications.vue'; +import Reunions from '../views/Reunions.vue'; +import Inspirations from '../views/Inspirations.vue'; +import Kanban from '../views/Kanban.vue'; +import Brief from '../views/Brief.vue'; +import DesignToLight from '../views/DesignToLight.vue'; +import Login from '../views/Login.vue'; const routes = [ { - path: "/", + path: '/', component: Home, }, { - path: "/notifications", + path: '/login', + component: Login, + }, + { + path: '/notifications', component: Notifications, }, { - path: "/reunions", + path: '/reunions', component: Reunions, }, { - path: "/inspirations", + path: '/inspirations', component: Inspirations, }, { - path: "/design-to-light", + path: '/design-to-light', component: DesignToLight, }, { - path: "/projects/:id", + path: '/projects/:id', component: Kanban, }, { - path: "/projects/:id/client-brief", + path: '/projects/:id/client-brief', component: Brief, }, { - path: "/projects/:id/extended-brief", + path: '/projects/:id/extended-brief', component: Brief, }, // Redirections { - path: "/projects/:id/industrial-ideation", + path: '/projects/:id/industrial-ideation', redirect: (to) => { return ( - "/projects/" + + '/projects/' + to.params.id + - "?dialog=industrial-ideation&comments=true" + '?dialog=industrial-ideation&comments=true' ); }, }, { - path: "/projects/:id/proposal", + path: '/projects/:id/proposal', redirect: (to) => { - return "/projects/" + to.params.id + "?dialog=proposal&comments=true"; + return '/projects/' + to.params.id + '?dialog=proposal&comments=true'; }, }, ]; diff --git a/src/views/Login.vue b/src/views/Login.vue new file mode 100644 index 0000000..2b304c9 --- /dev/null +++ b/src/views/Login.vue @@ -0,0 +1,23 @@ + +