From a3425562df0fe7b0e12ce293078d90310241196d Mon Sep 17 00:00:00 2001 From: LeoMortari Date: Sat, 27 Sep 2025 18:38:56 -0300 Subject: [PATCH] Adiciona rota para novo video --- src/auth/router.js | 14 +- src/components/DisplayValue/index.vue | 34 +++++ src/components/Dropdown/index.vue | 67 ++++++++++ src/components/TextField/index.vue | 44 +++++-- src/config/axios.js | 8 +- src/routes/videos/index.vue | 63 ++++++++- src/routes/videos/new.vue | 178 ++++++++++++++++++++++++++ 7 files changed, 394 insertions(+), 14 deletions(-) create mode 100644 src/components/DisplayValue/index.vue create mode 100644 src/components/Dropdown/index.vue create mode 100644 src/routes/videos/new.vue diff --git a/src/auth/router.js b/src/auth/router.js index 48ce281..1cf8091 100644 --- a/src/auth/router.js +++ b/src/auth/router.js @@ -5,7 +5,8 @@ import { createWebHistory, createRouter } from "vue-router"; import roles from "@/auth/roles"; import Videos from "@/routes/videos"; -import Login from "@/routes/auth/Login.vue"; +import NewVideo from "@/routes/videos/new"; +import Login from "@/routes/auth/Login"; const getUserRoles = () => { const rolesFromCookie = Cookies.get("user_roles"); // TODO: Tirar as permissões do usuário @@ -34,6 +35,17 @@ export const routes = [ showinModal: true, }, }, + { + path: "/videos/new", + name: "newVideo", + component: NewVideo, + meta: { + requiresAuth: true, + title: "Novo Vídeo", + permissions: [roles.VIDEOS_LIST], + showinModal: false, + }, + }, { path: "/:pathMatch(.*)*", meta: { diff --git a/src/components/DisplayValue/index.vue b/src/components/DisplayValue/index.vue new file mode 100644 index 0000000..f69397a --- /dev/null +++ b/src/components/DisplayValue/index.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/Dropdown/index.vue b/src/components/Dropdown/index.vue new file mode 100644 index 0000000..c4e1680 --- /dev/null +++ b/src/components/Dropdown/index.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/components/TextField/index.vue b/src/components/TextField/index.vue index 2e46e99..7a81a1f 100644 --- a/src/components/TextField/index.vue +++ b/src/components/TextField/index.vue @@ -4,28 +4,56 @@ {{ label }} {{ required ? "*" : "" }} - + + + + + diff --git a/src/config/axios.js b/src/config/axios.js index 1134877..f3309ae 100644 --- a/src/config/axios.js +++ b/src/config/axios.js @@ -2,10 +2,10 @@ import axios from "axios"; import Cookies from "js-cookie"; export const API = axios.create({ - baseURL: - process.env.NODE_ENV === "development" - ? "https://api.clipperia.com.br" - : "http://nestjs:3000", + baseURL: "http://localhost:3000", + // process.env.NODE_ENV === "development" + // ? "https://api.clipperia.com.br" + // : "http://nestjs:3000", }); API.interceptors.request.use((config) => { diff --git a/src/routes/videos/index.vue b/src/routes/videos/index.vue index 21460fa..5dd66ca 100644 --- a/src/routes/videos/index.vue +++ b/src/routes/videos/index.vue @@ -16,7 +16,13 @@
- +
@@ -29,6 +35,9 @@ fullWidth /> +
+
@@ -50,12 +59,17 @@ + + + + diff --git a/src/routes/videos/new.vue b/src/routes/videos/new.vue new file mode 100644 index 0000000..7a99593 --- /dev/null +++ b/src/routes/videos/new.vue @@ -0,0 +1,178 @@ + + + + +