From 2719cc16da4713127de68990fa95fed6f3700302 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 2 Apr 2025 17:53:36 +0200 Subject: [PATCH 01/24] feat: WIP added new routes (not final) and standarized admin routes --- routes/web.php | 63 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 54 insertions(+), 9 deletions(-) diff --git a/routes/web.php b/routes/web.php index d8ab6b77..8f9bf873 100644 --- a/routes/web.php +++ b/routes/web.php @@ -17,19 +17,15 @@ | */ -// Route::get('/', [SeriesController::class, 'showAllSeries'])->name('home'); +//Route::get('/', [SeriesController::class, 'showAllSeries'])->name('home'); Route::get('/', [FilmsController::class, 'showList'])->name('home'); -Route::get('/films/form', function () { - return view('films-form'); -}); -Route::get('/prueva', function () { - return view('prueva'); -})->name('prueva'); +Route::get('/prueba', function () { + return view('prueba'); +})->name('prueba'); -Route::post('/films/form', [FilmsController::class, 'store'])->name('films.store'); Route::get('/favoritos', function () { return view('favoritos'); @@ -41,6 +37,22 @@ return view('user-register'); }); +/*Route::get('/user/login', function () { + return view('user-login'); +});*/ + +/*Route::get('/user/subscription', function () { + return view('user-subscription'); +});*/ + +/*Route::get('/user/profile', function () { + return view('user-profile'); +});*/ + +/*Route::get('/search', function () { + return view('search'); +});*/ + //this should be changed to /watch/{id} or similar in the future Route::get('/media/watchContent', function () { return view('watchContent'); @@ -50,9 +62,42 @@ Route::get('/media/contentInfo/serie/{id}', [SeriesController::class, 'showSerie']); -//El objetivo es el siguiente: Un formulario, solo accesible para administración, en el que se pongan los datos de un nuevo episodio y se suban a la base de datos, asegurandose de que se suba y muestren los datos correctamente +//Admin routes + +/*Route::get('/admin', function () { + return view('admin'); +});*/ + +//SERIE + +/*Route::get('/admin/add/serie', function () { + return view('series-form'); +});*/ + +//Route::post('/admin/add/serie', [SeriesController::class, 'store'])->name('series.store'); + +//CHAPTER + Route::get('/admin/add/chapter', function () { return view('addChapter'); })->name('addChapter'); Route::post('/admin/add/chapter', [ChaptersController::class, 'addChapter']); + +//FILM + +Route::get('admin/add/film', function () { + return view('films-form'); +}); + +Route::post('admin/add/film', [FilmsController::class, 'store'])->name('films.store'); + +//USERS (WIP) + +/*Route::get('admin/list/users', function (){ + return view('users-list'); +});*/ + +/*Route::get('/admin/modify/users', function(){ + return view('modify-users'); +})*/ \ No newline at end of file -- GitLab From 6a393cbb85dd81d0652fd698059e5901eb2cc4b2 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 2 Apr 2025 18:26:27 +0200 Subject: [PATCH 02/24] feat: WIP deleted some routes before doing pull from main --- routes/web.php | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/routes/web.php b/routes/web.php index 8f9bf873..b1630138 100644 --- a/routes/web.php +++ b/routes/web.php @@ -22,9 +22,9 @@ Route::get('/', [FilmsController::class, 'showList'])->name('home'); -Route::get('/prueba', function () { - return view('prueba'); -})->name('prueba'); +Route::get('/prueva', function () { + return view('prueva'); +})->name('prueva'); Route::get('/favoritos', function () { @@ -68,14 +68,6 @@ return view('admin'); });*/ -//SERIE - -/*Route::get('/admin/add/serie', function () { - return view('series-form'); -});*/ - -//Route::post('/admin/add/serie', [SeriesController::class, 'store'])->name('series.store'); - //CHAPTER Route::get('/admin/add/chapter', function () { -- GitLab From c1b7cb05a67a494a44f43b8b92d6606f894be8a7 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 2 Apr 2025 18:26:51 +0200 Subject: [PATCH 03/24] feat: created empty views as placeholders, WIP --- resources/views/admin.blade.php | 0 resources/views/search.blade.php | 0 resources/views/user-login.blade.php | 0 resources/views/user-profile.blade.php | 0 resources/views/user-subscription.blade.php | 0 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/views/admin.blade.php create mode 100644 resources/views/search.blade.php create mode 100644 resources/views/user-login.blade.php create mode 100644 resources/views/user-profile.blade.php create mode 100644 resources/views/user-subscription.blade.php diff --git a/resources/views/admin.blade.php b/resources/views/admin.blade.php new file mode 100644 index 00000000..e69de29b diff --git a/resources/views/search.blade.php b/resources/views/search.blade.php new file mode 100644 index 00000000..e69de29b diff --git a/resources/views/user-login.blade.php b/resources/views/user-login.blade.php new file mode 100644 index 00000000..e69de29b diff --git a/resources/views/user-profile.blade.php b/resources/views/user-profile.blade.php new file mode 100644 index 00000000..e69de29b diff --git a/resources/views/user-subscription.blade.php b/resources/views/user-subscription.blade.php new file mode 100644 index 00000000..e69de29b -- GitLab From ce9863ec0196d98880368e2cba7bc016535f6a79 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 2 Apr 2025 18:36:18 +0200 Subject: [PATCH 04/24] feat: moved admin views to admin directory inside of views directory for maintaing an order --- .../views/{ => admin}/addChapter.blade.php | 0 resources/views/{ => admin}/admin.blade.php | 0 .../views/{ => admin}/films-form.blade.php | 0 resources/views/admin/modify-users.blade.php | 0 resources/views/admin/users-list.blade.php | 0 routes/web.php | 22 ++++++++++++------- 6 files changed, 14 insertions(+), 8 deletions(-) rename resources/views/{ => admin}/addChapter.blade.php (100%) rename resources/views/{ => admin}/admin.blade.php (100%) rename resources/views/{ => admin}/films-form.blade.php (100%) create mode 100644 resources/views/admin/modify-users.blade.php create mode 100644 resources/views/admin/users-list.blade.php diff --git a/resources/views/addChapter.blade.php b/resources/views/admin/addChapter.blade.php similarity index 100% rename from resources/views/addChapter.blade.php rename to resources/views/admin/addChapter.blade.php diff --git a/resources/views/admin.blade.php b/resources/views/admin/admin.blade.php similarity index 100% rename from resources/views/admin.blade.php rename to resources/views/admin/admin.blade.php diff --git a/resources/views/films-form.blade.php b/resources/views/admin/films-form.blade.php similarity index 100% rename from resources/views/films-form.blade.php rename to resources/views/admin/films-form.blade.php diff --git a/resources/views/admin/modify-users.blade.php b/resources/views/admin/modify-users.blade.php new file mode 100644 index 00000000..e69de29b diff --git a/resources/views/admin/users-list.blade.php b/resources/views/admin/users-list.blade.php new file mode 100644 index 00000000..e69de29b diff --git a/routes/web.php b/routes/web.php index b1630138..4d4a5429 100644 --- a/routes/web.php +++ b/routes/web.php @@ -21,12 +21,10 @@ Route::get('/', [FilmsController::class, 'showList'])->name('home'); - Route::get('/prueva', function () { return view('prueva'); })->name('prueva'); - Route::get('/favoritos', function () { return view('favoritos'); }); @@ -37,17 +35,17 @@ return view('user-register'); }); -/*Route::get('/user/login', function () { +Route::get('/user/login', function () { return view('user-login'); -});*/ +}); -/*Route::get('/user/subscription', function () { +Route::get('/user/subscription', function () { return view('user-subscription'); -});*/ +}); -/*Route::get('/user/profile', function () { +Route::get('/user/profile', function () { return view('user-profile'); -});*/ +}); /*Route::get('/search', function () { return view('search'); @@ -68,6 +66,14 @@ return view('admin'); });*/ +//SERIES + +Route::get('/admin/add/serie', function () { + return view('series-form'); +}); + +Route::post('/admin/add/serie', [SeriesController::class, 'store'])->name('series.store'); + //CHAPTER Route::get('/admin/add/chapter', function () { -- GitLab From aa8e173a47db5aaa90f4b0605ce5bfe2a6fd4b86 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 2 Apr 2025 18:39:51 +0200 Subject: [PATCH 05/24] feat: changed routes where needed so the referenced admin views have the proper directory --- routes/web.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/routes/web.php b/routes/web.php index 4d4a5429..c649e52c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -69,7 +69,7 @@ //SERIES Route::get('/admin/add/serie', function () { - return view('series-form'); + return view('admin/series-form'); }); Route::post('/admin/add/serie', [SeriesController::class, 'store'])->name('series.store'); @@ -77,7 +77,7 @@ //CHAPTER Route::get('/admin/add/chapter', function () { - return view('addChapter'); + return view('admin/addChapter'); })->name('addChapter'); Route::post('/admin/add/chapter', [ChaptersController::class, 'addChapter']); @@ -85,17 +85,17 @@ //FILM Route::get('admin/add/film', function () { - return view('films-form'); + return view('admin/films-form'); }); Route::post('admin/add/film', [FilmsController::class, 'store'])->name('films.store'); //USERS (WIP) -/*Route::get('admin/list/users', function (){ - return view('users-list'); -});*/ +Route::get('admin/list/users', function (){ + return view('admin/users-list'); +}); -/*Route::get('/admin/modify/users', function(){ - return view('modify-users'); -})*/ \ No newline at end of file +Route::get('/admin/modify/users', function(){ + return view('admin/modify-users'); +}); \ No newline at end of file -- GitLab From f7b4e6da9d8884d5ea5d6b506d3c1588df89780f Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 2 Apr 2025 18:45:01 +0200 Subject: [PATCH 06/24] feat: created login view (not yet functional) --- resources/views/layouts/style.blade.php | 2 +- resources/views/user-login.blade.php | 34 +++++++++++++++++++++++++ resources/views/user-register.blade.php | 2 +- 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/resources/views/layouts/style.blade.php b/resources/views/layouts/style.blade.php index b2fc6710..25271ca8 100644 --- a/resources/views/layouts/style.blade.php +++ b/resources/views/layouts/style.blade.php @@ -44,7 +44,7 @@ </li> <!-- Opciones de Login y Register --> <li class="nav-item"> - <a class="nav-link" href="#">Login</a> + <a class="nav-link" href="/user/login">Login</a> </li> <li class="nav-item"> <a class="nav-link" href="/user/register">Register</a> diff --git a/resources/views/user-login.blade.php b/resources/views/user-login.blade.php index e69de29b..bc0b625d 100644 --- a/resources/views/user-login.blade.php +++ b/resources/views/user-login.blade.php @@ -0,0 +1,34 @@ +@extends('layouts.style') +@section('content') +<div class="container mt-5 mb-5"> + <div class="row"> + <div class="col-5"> + <form method="POST" action="/user/login"> + @csrf + <div class="mb-3"> + <label for="email" class="form-label">Email address</label> + <input name="email" type="email" class="form-control" id="email" aria-describedby="emailHelp"> + </div> + <div class="mb-3"> + <label for="password" class="form-label">Password</label> + <input type="password" name="password" class="form-control" id="password"> + </div> + <div class="d-grid gap-2 col-6 mx-auto"> + <button class="btn btn-primary btn-block" type="submit">Login</button> + </div> + + </form> + </div> + + <div class="col-5 text-center"> + <div class="mb-3"> + <div class="text">Don't have an account yet? Create one now</div> + </div> + <div class="d-grid gap-2 col-6 mx-auto"> + <a href="/user/register" class="btn btn-success" role="button">Create an account</a> + </div> + + </div> + </div> +</div> +@endsection \ No newline at end of file diff --git a/resources/views/user-register.blade.php b/resources/views/user-register.blade.php index dc559bf2..8069307d 100644 --- a/resources/views/user-register.blade.php +++ b/resources/views/user-register.blade.php @@ -33,7 +33,7 @@ <div class="text">Already have an account?</div> </div> <div class="d-grid gap-2 col-6 mx-auto"> - <button class="btn btn-success" type="button">Login</button> + <a href="/user/login" class="btn btn-success" role="button">Login</a> </div> </div> -- GitLab From cd124f9b8edf4cdfb46e27b5c809aa508d8d4cbd Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 2 Apr 2025 19:58:42 +0200 Subject: [PATCH 07/24] feat: changed readme, admin section for better clarity --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index d42254d2..b87ed457 100644 --- a/README.md +++ b/README.md @@ -36,18 +36,18 @@ ## Url list (User) ## Url list (Admin) - Panel de control: /admin -- Lista de Series (para añadir o modificarlas): /admin/series/list - - (Find all series in Series) -- Lista de Peliculas (para añadir o modificarlas): /admin/movies/list - - (Find all movies in Movies) -- Formulario de creacion de Series: /admin/series/createMultimedia - - (Add series in series) -- Formulario de creacion de Movies: /admin/movies/createMultimedia - - (Add movies in Movies) -- Lista de Usuarios (para añadir o modificarlos): /admin/users/list - - (Find all users in Users) -- Formulario de modificar Usuario: /admin/users/searchUser=Username - - (Edit user in Users, Example: if subscriptionPayed = true you can auth the User) + - (Todo está disponible dentro del panel de admin) + +- Formulario para añadir serie: /admin/add/serie + +- Formulario para añadir pelicula: /admin/add/film + +- Formulario para añadir capitulo: /admin/add/chapter + +- Listar todos los usuarios existentes: /admin/list/users + - Modificar un usuario existente: /admin/modify/users + - (Se puede acceder desde la lista de usuarios, seleccionando el usuario ahí) + ## Laravel Tutorial -- GitLab From 0ce5e60383c03b03f6322ad05c2cb4c84c0917ea Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 2 Apr 2025 19:59:15 +0200 Subject: [PATCH 08/24] feat: created proper views for some admin pages --- resources/views/admin/admin.blade.php | 16 +++++++++ resources/views/admin/modify-users.blade.php | 32 ++++++++++++++++++ resources/views/admin/users-list.blade.php | 34 ++++++++++++++++++++ 3 files changed, 82 insertions(+) diff --git a/resources/views/admin/admin.blade.php b/resources/views/admin/admin.blade.php index e69de29b..4977ae77 100644 --- a/resources/views/admin/admin.blade.php +++ b/resources/views/admin/admin.blade.php @@ -0,0 +1,16 @@ +@extends('layouts.style') +@section('content') +<div class="container mt-5"> + <h1 class="text-center">Admin Panel</h1><br> + <div class="d-grid gap-2 col-6 mx-auto"> + <!--<a href="/admin/add/serie" class="btn btn-primary btn-block mb-2">Add Serie</a>--> + <a href="/admin/add/chapter" class="btn btn-primary btn-block mb-2">Add Chapter</a> + <a href="/admin/add/film" class="btn btn-primary btn-block mb-2">Add Film</a> + <a href="/admin/list/users" class="btn btn-primary btn-block mb-2">List Users</a> + <!--<a href="/admin/modify/users" class="btn btn-primary btn-block mb-2">Modify Users</a>--> + <!-- + Modify users with a dropdown list where users are selected, or first go to List Users and then select the user from there? + --> + </div><br> +</div> +@endsection diff --git a/resources/views/admin/modify-users.blade.php b/resources/views/admin/modify-users.blade.php index e69de29b..4623180b 100644 --- a/resources/views/admin/modify-users.blade.php +++ b/resources/views/admin/modify-users.blade.php @@ -0,0 +1,32 @@ +@extends('layouts.style') +@section('content') +<div class="container mt-5"> + <h1 class="text-center">Modify Profile</h1><br> + <form method="POST" action="/admin/modify/users"> + @csrf + <div class="mb-3"> + <label for="username" class="form-label">Username</label> + <input type="text" class="form-control" id="username" name="username" aria-describedby="usernameHelp"> + </div> + <div class="mb-3"> + <label for="password" class="form-label">Password</label> + <input type="password" class="form-control" id="password" name="password" aria-describedby="passwordHelp"> + </div> + <div class="mb-3"> + <label for="email" class="form-label">Email address</label> + <input type="email" class="form-control" id="email" name="email" aria-describedby="emailHelp"> + </div> + <div class="mb-3"> + <label for="profilePicture" class="form-label">Profile Picture</label> + <input type="file" class="form-control" id="profilePicture" name="profilePicture" aria-describedby="profilePictureHelp" accept="image/*"> + </div> + <div class="mb-3"> + <label for="subscription" class="form-label">Is the user currently subscribed?</label> + <input type="radio" class="form-check-input" id="premium" name="subscription" value="premium"> + <label class="form-check-label" for="premium">Yes</label> + <input type="radio" class="form-check-input" id="free" name="subscription" value="free"> + <label class="form-check-label" for="free">No</label><br> + <button type="submit" class="btn btn-primary">Modify</button> + </form><br> +</div> +@endsection diff --git a/resources/views/admin/users-list.blade.php b/resources/views/admin/users-list.blade.php index e69de29b..688fef97 100644 --- a/resources/views/admin/users-list.blade.php +++ b/resources/views/admin/users-list.blade.php @@ -0,0 +1,34 @@ +@extends('layouts.style') +@section('content') + <div class="container mt-5"> + <h1 class="text-center">Users List</h1><br> + <ul class="list-group"> + <div class="mb-3"> + <li class="list-group-item">User 1<br> + <a href="/admin/modify/users" class="btn btn-primary" role="button">Modify this user</a> + </li> + + </div> + <div class="mb-3"> + <li class="list-group-item">User 2<br> + <a href="/admin/modify/users" class="btn btn-primary" role="button">Modify this user</a> + </li> + </div> + <div class="mb-3"> + <li class="list-group-item">User 3<br> + <a href="/admin/modify/users" class="btn btn-primary" role="button">Modify this user</a> + </li> + </div> + <div class="mb-3"> + <li class="list-group-item">User 4<br> + <a href="/admin/modify/users" class="btn btn-primary" role="button">Modify this user</a> + </li> + </div> + <div class="mb-3"> + <li class="list-group-item">User 5<br> + <a href="/admin/modify/users" class="btn btn-primary" role="button">Modify this user</a> + </li> + </div> + </ul> + </div> +@endsection -- GitLab From f3f28b2bf7df96aa76b57db9a28b20115c395c3b Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 2 Apr 2025 19:59:45 +0200 Subject: [PATCH 09/24] feat: created button to access admin panel --- resources/views/layouts/style.blade.php | 5 +++++ routes/web.php | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/resources/views/layouts/style.blade.php b/resources/views/layouts/style.blade.php index 25271ca8..ae91fe04 100644 --- a/resources/views/layouts/style.blade.php +++ b/resources/views/layouts/style.blade.php @@ -22,6 +22,11 @@ </button> <!-- Menú de navegación --> <div class="collapse navbar-collapse" id="navbarNav"> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" href="/admin">Adminstration panel</a> + </li> + </ul> <ul class="navbar-nav ms-auto"> <li class="nav-item"> <a class="nav-link" href="/">Home</a> diff --git a/routes/web.php b/routes/web.php index c649e52c..7b87b4a9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -60,11 +60,11 @@ Route::get('/media/contentInfo/serie/{id}', [SeriesController::class, 'showSerie']); -//Admin routes +//ADMIN ROUTES -/*Route::get('/admin', function () { - return view('admin'); -});*/ +Route::get('/admin', function () { + return view('admin/admin'); +}); //SERIES @@ -90,7 +90,7 @@ Route::post('admin/add/film', [FilmsController::class, 'store'])->name('films.store'); -//USERS (WIP) +//USERS Route::get('admin/list/users', function (){ return view('admin/users-list'); -- GitLab From 9846694a9bb8627c9624871a2b779a9ad306f2f6 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Mon, 7 Apr 2025 17:20:47 +0200 Subject: [PATCH 10/24] feat: style changes --- resources/views/admin/addChapter.blade.php | 1 + resources/views/admin/films-form.blade.php | 13 +++++---- resources/views/admin/modify-users.blade.php | 30 +++++++++++++------- resources/views/layouts/style.blade.php | 4 ++- 4 files changed, 30 insertions(+), 18 deletions(-) diff --git a/resources/views/admin/addChapter.blade.php b/resources/views/admin/addChapter.blade.php index 62c5860d..ad090803 100644 --- a/resources/views/admin/addChapter.blade.php +++ b/resources/views/admin/addChapter.blade.php @@ -2,6 +2,7 @@ @section('content') <div style="margin-left: 20%; margin-right: 20%; margin-top: 2%; margin-bottom: 2%"> + <h1 class="text-center">Add a new chapter</h1> <form method="POST" action="/admin/add/chapter"> @csrf <div class="mb-3"> diff --git a/resources/views/admin/films-form.blade.php b/resources/views/admin/films-form.blade.php index b99fd206..5554f932 100644 --- a/resources/views/admin/films-form.blade.php +++ b/resources/views/admin/films-form.blade.php @@ -15,36 +15,37 @@ <!-- A Continuación vendría el formulario normal. --> <div class="container "> <div class="m-3"> + <h1 class="text-center">Add a new film</h1> <form method="POST" action="{{ route('films.store') }}" enctype="multipart/form-data"> @csrf <div class="mb-3"> - <label for="nombre" class="form-label">Nombre</label> + <label for="nombre" class="form-label">Title</label> <input type="text" name="nombre" class="form-control" id="nombre" value="{{ old('nombre') }}"> </div> <div class="mb-3"> - <label for="duracion" class="form-label">Duracion</label> + <label for="duracion" class="form-label">Runtime</label> <input type="number" name="duracion" class="form-control" id="duracion" value="{{ old('duracion') }}"> </div> <div class="mb-3"> - <label for="archivo" class="form-label">Archivo</label> + <label for="archivo" class="form-label">File</label> <input type="text" name="archivo" class="form-control" id="archivo" value="{{ old('archivo') }}"> </div> <div class="mb-3"> - <label for="portada" class="form-label">Portada</label> + <label for="portada" class="form-label">Thumbnail</label> <input type="file" name="portada" class="form-control" id="portada" value="{{ old('portada') }}"> </div> <div class="form-group"> - <label for="sinopsis">Sinopsis</label> + <label for="sinopsis">Synopsis</label> <textarea class="form-control" name="sinopsis" id="sinopsis" rows="3" value="{{ old('sinopsis') }}"></textarea> </div> <div class="mb-3"> - <label for="genero" class="form-label">Genero</label> + <label for="genero" class="form-label">Genre</label> <input type="text" name="genero" class="form-control" id="genero" value="{{ old('genero') }}"> </div> diff --git a/resources/views/admin/modify-users.blade.php b/resources/views/admin/modify-users.blade.php index 4623180b..25117570 100644 --- a/resources/views/admin/modify-users.blade.php +++ b/resources/views/admin/modify-users.blade.php @@ -2,31 +2,39 @@ @section('content') <div class="container mt-5"> <h1 class="text-center">Modify Profile</h1><br> - <form method="POST" action="/admin/modify/users"> + <form method="POST" action="/admin/modify/users" class="row g-3"> @csrf - <div class="mb-3"> + <div class="col-md-6"> <label for="username" class="form-label">Username</label> <input type="text" class="form-control" id="username" name="username" aria-describedby="usernameHelp"> </div> - <div class="mb-3"> + <div class="col-md-6"> <label for="password" class="form-label">Password</label> <input type="password" class="form-control" id="password" name="password" aria-describedby="passwordHelp"> </div> - <div class="mb-3"> + <div class="col-12"> <label for="email" class="form-label">Email address</label> <input type="email" class="form-control" id="email" name="email" aria-describedby="emailHelp"> </div> - <div class="mb-3"> + <div class="col-12"> <label for="profilePicture" class="form-label">Profile Picture</label> <input type="file" class="form-control" id="profilePicture" name="profilePicture" aria-describedby="profilePictureHelp" accept="image/*"> </div> - <div class="mb-3"> + <div class="col-12"> <label for="subscription" class="form-label">Is the user currently subscribed?</label> - <input type="radio" class="form-check-input" id="premium" name="subscription" value="premium"> - <label class="form-check-label" for="premium">Yes</label> - <input type="radio" class="form-check-input" id="free" name="subscription" value="free"> - <label class="form-check-label" for="free">No</label><br> - <button type="submit" class="btn btn-primary">Modify</button> + <div class="form-check form-check-inline"> + <input type="radio" class="form-check-input" id="premium" name="subscription" value="premium"> + <label class="form-check-label" for="premium">Yes</label> + </div> + <div class="form-check form-check-inline"> + <input type="radio" class="form-check-input" id="free" name="subscription" value="free"> + <label class="form-check-label" for="free">No</label> + </div> + </div> + <div class="col-12 text-center"> + <button type="submit" class="btn btn-primary">Modify</button> + </div> </form><br> </div> @endsection + diff --git a/resources/views/layouts/style.blade.php b/resources/views/layouts/style.blade.php index ae91fe04..4edee015 100644 --- a/resources/views/layouts/style.blade.php +++ b/resources/views/layouts/style.blade.php @@ -62,7 +62,9 @@ @yield('content') <!-- Footer --> - <footer class="py-5 bg-dark"> + <footer class="py-5 bg-dark" style="position: fixed; + bottom: 0; + width: 100%;"> <div class="container"> <p class="m-0 text-center text-white">Copyright © Escola del Treball. Sergi Coll, Xavier Ledesma, Marc Gomez</p> </div> -- GitLab From 3885e2da4a4ea996079d542051b59c3cf7956df8 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Mon, 7 Apr 2025 18:25:50 +0200 Subject: [PATCH 11/24] feat: user factory into seeding database --- database/seeders/DatabaseSeeder.php | 1 + database/seeders/UserSeeder.php | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 database/seeders/UserSeeder.php diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 32aa4b8d..2b20789a 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -26,6 +26,7 @@ public function run() FilmSeeder::class, FavoriteSeeder::class, ChapterSeeder::class, + UserSeeder::class, ]); } } diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php new file mode 100644 index 00000000..5f68cf0f --- /dev/null +++ b/database/seeders/UserSeeder.php @@ -0,0 +1,21 @@ +<?php + +namespace Database\Seeders; + +use Illuminate\Database\Console\Seeds\WithoutModelEvents; +use Illuminate\Database\Seeder; +use App\Models\User; + +class UserSeeder extends Seeder +{ + /** + * Run the database seeds. + * + * @return void + */ + public function run() + { + // + User::factory(10)->create(); + } +} -- GitLab From 0c6abf23d383e8bd2c715263513114479c5fef97 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 9 Apr 2025 18:33:35 +0200 Subject: [PATCH 12/24] feat: UserController added --- app/Http/Controllers/UserController.php | 31 +++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 app/Http/Controllers/UserController.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php new file mode 100644 index 00000000..ac94d506 --- /dev/null +++ b/app/Http/Controllers/UserController.php @@ -0,0 +1,31 @@ +<?php + +namespace App\Http\Controllers; + +use Illuminate\Http\Request; +use App\Models\User; + +class UserController extends Controller +{ + public function update(Request $request, User $user) + { + $validated = $request->validate([ + 'name' => 'sometimes|string|max:255', + 'username' => 'sometimes|string|max:255', + 'email' => 'sometimes|email|max:255', + 'password' => 'sometimes|string|min:8', + 'subscription' => 'sometimes|boolean' + ]); + + if ($request->filled('password')) { + $validated['password'] = bcrypt($validated['password']); + } + + $validated['subscription'] = $request->has('subscription'); + + $user->update($validated); + + return redirect()->route('admin.index')->with('success', 'User updated successfully'); + } +} + -- GitLab From 13b254c3c1efa2f5320855501b18c4c4bb11face Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 9 Apr 2025 18:34:08 +0200 Subject: [PATCH 13/24] feat: added two new fields to user (username and subscription) --- app/Models/User.php | 2 ++ database/factories/UserFactory.php | 2 ++ ...ername_and_subscription_to_users_table.php | 33 +++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 database/migrations/2025_04_09_143536_add_username_and_subscription_to_users_table.php diff --git a/app/Models/User.php b/app/Models/User.php index 23b40634..65d7549b 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -21,6 +21,8 @@ class User extends Authenticatable 'name', 'email', 'password', + 'username', + 'subscription', ]; /** diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 41f8ae89..f9f6a5cd 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -23,6 +23,8 @@ public function definition() 'email_verified_at' => now(), 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 'remember_token' => Str::random(10), + 'username' => fake()->userName(), + 'subscription' => $this->faker->boolean(), ]; } diff --git a/database/migrations/2025_04_09_143536_add_username_and_subscription_to_users_table.php b/database/migrations/2025_04_09_143536_add_username_and_subscription_to_users_table.php new file mode 100644 index 00000000..04f4513b --- /dev/null +++ b/database/migrations/2025_04_09_143536_add_username_and_subscription_to_users_table.php @@ -0,0 +1,33 @@ +<?php + +use Illuminate\Database\Migrations\Migration; +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\Schema; + +return new class extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::table('users', function (Blueprint $table) { + $table->string('username'); + $table->boolean('subscription')->default(false); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; -- GitLab From a158a8c51dc20f0c2daad1f05367b4f2c0e7354b Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 9 Apr 2025 18:34:41 +0200 Subject: [PATCH 14/24] feat: (WIP) Reworking admin panel --- resources/views/admin/admin.blade.php | 18 ++--- resources/views/admin/film-tools.blade.php | 16 ++++ resources/views/admin/films-form.blade.php | 2 +- resources/views/admin/modify-users.blade.php | 34 ++++---- resources/views/admin/series-tools.blade.php | 22 ++++++ resources/views/admin/user-tools.blade.php | 44 +++++++++++ resources/views/admin/users-list.blade.php | 29 +------ resources/views/layouts/adminStyle.blade.php | 62 +++++++++++++++ routes/web.php | 82 +++++++++++++++++--- 9 files changed, 247 insertions(+), 62 deletions(-) create mode 100644 resources/views/admin/film-tools.blade.php create mode 100644 resources/views/admin/series-tools.blade.php create mode 100644 resources/views/admin/user-tools.blade.php create mode 100644 resources/views/layouts/adminStyle.blade.php diff --git a/resources/views/admin/admin.blade.php b/resources/views/admin/admin.blade.php index 4977ae77..53a57943 100644 --- a/resources/views/admin/admin.blade.php +++ b/resources/views/admin/admin.blade.php @@ -1,16 +1,12 @@ -@extends('layouts.style') +@extends('layouts.adminStyle') @section('content') + <div class="container mt-5"> <h1 class="text-center">Admin Panel</h1><br> <div class="d-grid gap-2 col-6 mx-auto"> - <!--<a href="/admin/add/serie" class="btn btn-primary btn-block mb-2">Add Serie</a>--> - <a href="/admin/add/chapter" class="btn btn-primary btn-block mb-2">Add Chapter</a> - <a href="/admin/add/film" class="btn btn-primary btn-block mb-2">Add Film</a> - <a href="/admin/list/users" class="btn btn-primary btn-block mb-2">List Users</a> - <!--<a href="/admin/modify/users" class="btn btn-primary btn-block mb-2">Modify Users</a>--> - <!-- - Modify users with a dropdown list where users are selected, or first go to List Users and then select the user from there? - --> - </div><br> + <a href="/admin/serie/tools" class="btn btn-primary btn-block mb-2">Series tools</a> + <a href="/admin/film/tools" class="btn btn-primary btn-block mb-2">Film tools</a> + <a href="/admin/users/tools" class="btn btn-primary btn-block mb-2">Users tools</a> + </div> </div> -@endsection +@endsection \ No newline at end of file diff --git a/resources/views/admin/film-tools.blade.php b/resources/views/admin/film-tools.blade.php new file mode 100644 index 00000000..f038c09a --- /dev/null +++ b/resources/views/admin/film-tools.blade.php @@ -0,0 +1,16 @@ +@extends('layouts.adminStyle') +@section('content') + +<div class="container mt-5"> + <h1 class="text-center">Admin Panel</h1><br> + <div class="d-grid gap-2 col-6 mx-auto"> + <h2 class="text-center">Film Tools</h2> + <a href="/admin/add/Film" class="btn btn-primary btn-block mb-2">Add Film</a> + <a href="/admin/modify/Film" class="btn btn-primary btn-block mb-2">Modify Film</a> + <a href="/admin/list/Film" class="btn btn-primary btn-block mb-2">List Film</a> + <a href="/admin/delete/Film" class="btn btn-primary btn-block mb-2">Delete Film</a> + + </div><br> +</div> + +@endsection \ No newline at end of file diff --git a/resources/views/admin/films-form.blade.php b/resources/views/admin/films-form.blade.php index 5554f932..030595dc 100644 --- a/resources/views/admin/films-form.blade.php +++ b/resources/views/admin/films-form.blade.php @@ -1,4 +1,4 @@ -@extends('layouts.style') +@extends('layouts.adminStyle') @section('content') <div class="content"> diff --git a/resources/views/admin/modify-users.blade.php b/resources/views/admin/modify-users.blade.php index 25117570..53097495 100644 --- a/resources/views/admin/modify-users.blade.php +++ b/resources/views/admin/modify-users.blade.php @@ -1,38 +1,42 @@ -@extends('layouts.style') +@extends('layouts.adminStyle') @section('content') <div class="container mt-5"> - <h1 class="text-center">Modify Profile</h1><br> - <form method="POST" action="/admin/modify/users" class="row g-3"> + <h1 class="text-center">Modify user: {{ $user->name }}</h1><br> + <form method="POST" action="{{ route('admin.user.update', $user) }}" class="row g-3"> @csrf + @method('PUT') + <div class="col-md-6"> + <label for="name" class="form-label">Name</label> + <input type="text" class="form-control" id="name" name="name" value="{{ $user->name }}" aria-describedby="nameHelp"> + </div> <div class="col-md-6"> <label for="username" class="form-label">Username</label> - <input type="text" class="form-control" id="username" name="username" aria-describedby="usernameHelp"> + <input type="text" class="form-control" id="username" name="username" value="{{ $user->username }}" aria-describedby="usernameHelp"> </div> <div class="col-md-6"> <label for="password" class="form-label">Password</label> - <input type="password" class="form-control" id="password" name="password" aria-describedby="passwordHelp"> + <input type="password" class="form-control" id="password" name="password" value="{{ $user->password }}"aria-describedby="passwordHelp"> </div> <div class="col-12"> <label for="email" class="form-label">Email address</label> - <input type="email" class="form-control" id="email" name="email" aria-describedby="emailHelp"> + <input type="email" class="form-control" id="email" name="email" value="{{ $user->email }}" aria-describedby="emailHelp"> </div> <div class="col-12"> <label for="profilePicture" class="form-label">Profile Picture</label> <input type="file" class="form-control" id="profilePicture" name="profilePicture" aria-describedby="profilePictureHelp" accept="image/*"> </div> <div class="col-12"> - <label for="subscription" class="form-label">Is the user currently subscribed?</label> - <div class="form-check form-check-inline"> - <input type="radio" class="form-check-input" id="premium" name="subscription" value="premium"> - <label class="form-check-label" for="premium">Yes</label> - </div> - <div class="form-check form-check-inline"> - <input type="radio" class="form-check-input" id="free" name="subscription" value="free"> - <label class="form-check-label" for="free">No</label> + <label class="form-label">Subscription Status</label> + <div class="form-check"> + <input class="form-check-input" type="checkbox" id="subscription" name="subscription" value="1" + {{ $user->subscription ? 'checked' : '' }}> + <label class="form-check-label" for="subscription"> + User is subscribed + </label> </div> </div> <div class="col-12 text-center"> - <button type="submit" class="btn btn-primary">Modify</button> + <button type="submit" class="btn btn-primary">Update user</button> </div> </form><br> </div> diff --git a/resources/views/admin/series-tools.blade.php b/resources/views/admin/series-tools.blade.php new file mode 100644 index 00000000..a7da7c5f --- /dev/null +++ b/resources/views/admin/series-tools.blade.php @@ -0,0 +1,22 @@ +@extends('layouts.adminStyle') +@section('content') + +<div class="container mt-5"> + <h1 class="text-center">Admin Panel</h1><br> + <div class="d-grid gap-2 col-6 mx-auto"> + <h2 class="text-center">Series tools</h2> + <a href="/admin/add/serie" class="btn btn-primary btn-block mb-2">Add Serie</a> + <a href="/admin/modify/serie" class="btn btn-primary btn-block mb-2">Modify Series</a> + <a href="/admin/list/serie" class="btn btn-primary btn-block mb-2">List Series</a> + <a href="/admin/delete/serie" class="btn btn-primary btn-block mb-2">Delete Series</a> + + <h2 class="text-center">Chapters Tools</h2> + <a href="/admin/add/chapter" class="btn btn-primary btn-block mb-2">Add Chapter</a> + <a href="/admin/modify/chapter" class="btn btn-primary btn-block mb-2">Modify Chapters</a> + <a href="/admin/list/chapter" class="btn btn-primary btn-block mb-2">List Chapters</a> + <a href="/admin/delete/chapter" class="btn btn-primary btn-block mb-2">Delete Chapters</a> + + </div><br> +</div> + +@endsection \ No newline at end of file diff --git a/resources/views/admin/user-tools.blade.php b/resources/views/admin/user-tools.blade.php new file mode 100644 index 00000000..c08a83ba --- /dev/null +++ b/resources/views/admin/user-tools.blade.php @@ -0,0 +1,44 @@ +@extends('layouts.adminStyle') +@section('content') + +<div class="container mt-5"> + <h1 class="text-center">Admin Panel</h1><br> + <div class="d-grid gap-2 col-6 mx-auto"> + <h2 class="text-center">User tools</h2> + <a href="/admin/add/user" class="btn btn-primary btn-block mb-2">Add User</a> + <a href="/admin/delete/user" class="btn btn-primary btn-block mb-2">Delete User</a> + <a href="/admin/list/users" class="btn btn-primary btn-block mb-2">List Users</a> + <div class="form-group"> + <select id="user-select" class="form-control"> + <option value="">Select a user</option> + @foreach($users as $user) + <option value="{{ $user->id }}">{{ $user->name }}</option> + @endforeach + </select> + </div> + <button id="modify-user-btn" class="btn btn-primary btn-block mb-2" disabled>Modify User</button> + </div><br> +</div> + +<script> +document.addEventListener('DOMContentLoaded', function() { + const userSelect = document.getElementById('user-select'); + const modifyUserBtn = document.getElementById('modify-user-btn'); + + // Enable/disable button based on selection + userSelect.addEventListener('change', function() { + modifyUserBtn.disabled = !this.value; + }); + + // Handle button click + modifyUserBtn.addEventListener('click', function() { + if (userSelect.value) { + window.location.href = `/admin/modify/user?user_id=${userSelect.value}`; + } + }); +}); +</script> + </div><br> +</div> + +@endsection \ No newline at end of file diff --git a/resources/views/admin/users-list.blade.php b/resources/views/admin/users-list.blade.php index 688fef97..ac93fe76 100644 --- a/resources/views/admin/users-list.blade.php +++ b/resources/views/admin/users-list.blade.php @@ -1,33 +1,12 @@ -@extends('layouts.style') +@extends('layouts.adminStyle') @section('content') <div class="container mt-5"> <h1 class="text-center">Users List</h1><br> <ul class="list-group"> <div class="mb-3"> - <li class="list-group-item">User 1<br> - <a href="/admin/modify/users" class="btn btn-primary" role="button">Modify this user</a> - </li> - - </div> - <div class="mb-3"> - <li class="list-group-item">User 2<br> - <a href="/admin/modify/users" class="btn btn-primary" role="button">Modify this user</a> - </li> - </div> - <div class="mb-3"> - <li class="list-group-item">User 3<br> - <a href="/admin/modify/users" class="btn btn-primary" role="button">Modify this user</a> - </li> - </div> - <div class="mb-3"> - <li class="list-group-item">User 4<br> - <a href="/admin/modify/users" class="btn btn-primary" role="button">Modify this user</a> - </li> - </div> - <div class="mb-3"> - <li class="list-group-item">User 5<br> - <a href="/admin/modify/users" class="btn btn-primary" role="button">Modify this user</a> - </li> + @foreach ($users as $user) + <li class="list-group-item">{{ $user->name }}</li> + @endforeach </div> </ul> </div> diff --git a/resources/views/layouts/adminStyle.blade.php b/resources/views/layouts/adminStyle.blade.php new file mode 100644 index 00000000..b54f86e4 --- /dev/null +++ b/resources/views/layouts/adminStyle.blade.php @@ -0,0 +1,62 @@ +<!DOCTYPE html> +<html lang="en"> + +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> + <title>Home</title> +</head> +<body class="d-flex flex-column"> + <!-- Barra de navegación --> + <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> + <div class="container"> + <!-- Logo --> + <a class="navbar-brand" href="/"> + <img src="https://www.adaptivewfs.com/wp-content/uploads/2020/07/logo-placeholder-image.png" alt="Logo" height="50" width="50"> + </a> + <!-- Toggler para móviles/p para pantallas chiquitas --> + <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" + aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + <!-- Menú de navegación --> + <div class="collapse navbar-collapse" id="navbarNav"> + <ul class="navbar-nav"> + <li class="nav-item"> + <a class="nav-link" href="/admin">Adminstration panel</a> + </li> + </ul> + <ul class="navbar-nav ms-auto"> + <li class="nav-item"> + <a class="nav-link" href="/admin">Adminstration panel</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/admin/users/list">Users</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/admin/series/list">Series</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/admin/chapters/list">Chapters</a> + </li> + <li class="nav-item"> + </ul> + </div> + </div> + </nav> + + @yield('content') + + <!-- Footer --> + <footer class="py-5 bg-dark" style="position: fixed; + bottom: 0; + width: 100%;"> + <div class="container"> + <p class="m-0 text-center text-white">Copyright © Escola del Treball. Sergi Coll, Xavier Ledesma, Marc Gomez</p> + </div> + <!-- /.container --> + </footer> + <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoU1uQu/Y5nvhZfZZZflCTaFs0nEj4ieHkXu3g0Ga39g+5p" crossorigin="anonymous"></script> +</body> +</html> \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 7b87b4a9..2a40b3f8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -5,6 +5,8 @@ use App\Http\Controllers\FilmsController; use App\Http\Controllers\ChaptersController; use App\Http\Controllers\SeriesController; +use App\Http\Controllers\UserController; +use Illuminate\Http\Request; /* |-------------------------------------------------------------------------- @@ -21,10 +23,6 @@ Route::get('/', [FilmsController::class, 'showList'])->name('home'); -Route::get('/prueva', function () { - return view('prueva'); -})->name('prueva'); - Route::get('/favoritos', function () { return view('favoritos'); }); @@ -63,17 +61,34 @@ //ADMIN ROUTES Route::get('/admin', function () { - return view('admin/admin'); -}); + $users = App\Models\User::all(); + return view('admin/admin', compact('users')); +})->name('admin.index'); //SERIES +Route::get('/admin/serie/tools', function () { + return view('admin/series-tools'); +}); + Route::get('/admin/add/serie', function () { return view('admin/series-form'); }); Route::post('/admin/add/serie', [SeriesController::class, 'store'])->name('series.store'); +/*Route::get('/admin/modify/serie', function (Request $request) { + +});*/ + +/*Route::get('/admin/list/series', function () { + +});*/ + +/*Route::get('/admin/delete/serie', function () { + +});*/ + //CHAPTER Route::get('/admin/add/chapter', function () { @@ -82,20 +97,67 @@ Route::post('/admin/add/chapter', [ChaptersController::class, 'addChapter']); +/*Route::get('/admin/modify/chapter', function (Request $request) { + +});*/ + +/*Route::get('/admin/list/chapters', function () { + +});*/ + +/*Route::get('/admin/delete/chapter', function () { + +});*/ + + //FILM +Route::get('/admin/film/tools', function () { + return view('admin/film-tools'); + }); + Route::get('admin/add/film', function () { return view('admin/films-form'); }); Route::post('admin/add/film', [FilmsController::class, 'store'])->name('films.store'); +/*Route::get('/admin/modify/film', function (Request $request) { + +});*/ + +/*Route::get('/admin/list/films', function () { + +});*/ + +/*Route::get('/admin/delete/film', function () { + +});*/ + //USERS +Route::get('/admin/users/tools', function () { + $users = App\Models\User::all(); + return view('admin/user-tools', compact('users')); + }); + +/*Route::get('/admin/add/user', function () { + +});*/ + +/*Route::get('/admin/delete/user', function () { + +});*/ + Route::get('admin/list/users', function (){ - return view('admin/users-list'); + $users = App\Models\User::all(); + return view('admin/users-list', compact('users')); }); -Route::get('/admin/modify/users', function(){ - return view('admin/modify-users'); -}); \ No newline at end of file +Route::get('/admin/modify/user', function (Request $request) { + $user = App\Models\User::findOrFail($request->input('user_id')); + return view('admin.modify-users', compact('user')); +})->name('admin.user.edit'); + +Route::put('/admin/modify/user/{user}', [UserController::class, 'update']) + ->name('admin.user.update'); \ No newline at end of file -- GitLab From 24db6b7a2ddc15d1c4581ae5c659d765c1e0d5e2 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 9 Apr 2025 19:36:53 +0200 Subject: [PATCH 15/24] feat: Admin views now ordered on subdirectories according to their category (series, films or users) --- resources/views/admin/film-tools.blade.php | 16 -------------- .../views/admin/film/film-tools.blade.php | 22 +++++++++++++++++++ .../admin/{ => film}/films-form.blade.php | 0 .../admin/{ => series}/addChapter.blade.php | 0 .../admin/{ => series}/series-tools.blade.php | 0 .../admin/{ => users}/modify-users.blade.php | 0 .../admin/{ => users}/user-tools.blade.php | 0 .../admin/{ => users}/users-list.blade.php | 0 resources/views/layouts/adminStyle.blade.php | 2 +- routes/web.php | 15 ++++++------- 10 files changed, 30 insertions(+), 25 deletions(-) delete mode 100644 resources/views/admin/film-tools.blade.php create mode 100644 resources/views/admin/film/film-tools.blade.php rename resources/views/admin/{ => film}/films-form.blade.php (100%) rename resources/views/admin/{ => series}/addChapter.blade.php (100%) rename resources/views/admin/{ => series}/series-tools.blade.php (100%) rename resources/views/admin/{ => users}/modify-users.blade.php (100%) rename resources/views/admin/{ => users}/user-tools.blade.php (100%) rename resources/views/admin/{ => users}/users-list.blade.php (100%) diff --git a/resources/views/admin/film-tools.blade.php b/resources/views/admin/film-tools.blade.php deleted file mode 100644 index f038c09a..00000000 --- a/resources/views/admin/film-tools.blade.php +++ /dev/null @@ -1,16 +0,0 @@ -@extends('layouts.adminStyle') -@section('content') - -<div class="container mt-5"> - <h1 class="text-center">Admin Panel</h1><br> - <div class="d-grid gap-2 col-6 mx-auto"> - <h2 class="text-center">Film Tools</h2> - <a href="/admin/add/Film" class="btn btn-primary btn-block mb-2">Add Film</a> - <a href="/admin/modify/Film" class="btn btn-primary btn-block mb-2">Modify Film</a> - <a href="/admin/list/Film" class="btn btn-primary btn-block mb-2">List Film</a> - <a href="/admin/delete/Film" class="btn btn-primary btn-block mb-2">Delete Film</a> - - </div><br> -</div> - -@endsection \ No newline at end of file diff --git a/resources/views/admin/film/film-tools.blade.php b/resources/views/admin/film/film-tools.blade.php new file mode 100644 index 00000000..0a7d5b02 --- /dev/null +++ b/resources/views/admin/film/film-tools.blade.php @@ -0,0 +1,22 @@ +@extends('layouts.adminStyle') +@section('content') + +<div class="container mt-5"> + <h1 class="text-center">Admin Panel</h1><br> + <div class="d-grid gap-2 col-6 mx-auto"> + <h2 class="text-center">Film Tools</h2> + <a href="#" class="btn btn-primary btn-block mb-2">Add Film</a> + <a href="#" class="btn btn-primary btn-block mb-2">Modify Film</a> + <a href="#" class="btn btn-primary btn-block mb-2">List Film</a> + <a href="#" class="btn btn-primary btn-block mb-2">Delete Film</a> + + <!-- Descomentar cuando las funciones de cada ruta esten listas y la ruta funcional + <a href="/admin/add/film" class="btn btn-primary btn-block mb-2">Add Film</a> + <a href="/admin/modify/film" class="btn btn-primary btn-block mb-2">Modify Film</a> + <a href="/admin/list/film" class="btn btn-primary btn-block mb-2">List Film</a> + <a href="/admin/delete/film" class="btn btn-primary btn-block mb-2">Delete Film</a> --> + + </div><br> +</div> + +@endsection \ No newline at end of file diff --git a/resources/views/admin/films-form.blade.php b/resources/views/admin/film/films-form.blade.php similarity index 100% rename from resources/views/admin/films-form.blade.php rename to resources/views/admin/film/films-form.blade.php diff --git a/resources/views/admin/addChapter.blade.php b/resources/views/admin/series/addChapter.blade.php similarity index 100% rename from resources/views/admin/addChapter.blade.php rename to resources/views/admin/series/addChapter.blade.php diff --git a/resources/views/admin/series-tools.blade.php b/resources/views/admin/series/series-tools.blade.php similarity index 100% rename from resources/views/admin/series-tools.blade.php rename to resources/views/admin/series/series-tools.blade.php diff --git a/resources/views/admin/modify-users.blade.php b/resources/views/admin/users/modify-users.blade.php similarity index 100% rename from resources/views/admin/modify-users.blade.php rename to resources/views/admin/users/modify-users.blade.php diff --git a/resources/views/admin/user-tools.blade.php b/resources/views/admin/users/user-tools.blade.php similarity index 100% rename from resources/views/admin/user-tools.blade.php rename to resources/views/admin/users/user-tools.blade.php diff --git a/resources/views/admin/users-list.blade.php b/resources/views/admin/users/users-list.blade.php similarity index 100% rename from resources/views/admin/users-list.blade.php rename to resources/views/admin/users/users-list.blade.php diff --git a/resources/views/layouts/adminStyle.blade.php b/resources/views/layouts/adminStyle.blade.php index b54f86e4..0e153729 100644 --- a/resources/views/layouts/adminStyle.blade.php +++ b/resources/views/layouts/adminStyle.blade.php @@ -1,6 +1,6 @@ <!DOCTYPE html> <html lang="en"> - +<!--Cuando se haya pasado toda la parte de usuario normal a Vue, dejar solo el layout de admin --> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> diff --git a/routes/web.php b/routes/web.php index 2a40b3f8..27207132 100644 --- a/routes/web.php +++ b/routes/web.php @@ -66,13 +66,12 @@ })->name('admin.index'); //SERIES - Route::get('/admin/serie/tools', function () { - return view('admin/series-tools'); + return view('admin/series/series-tools'); }); Route::get('/admin/add/serie', function () { - return view('admin/series-form'); + return view('admin/series/series-form'); }); Route::post('/admin/add/serie', [SeriesController::class, 'store'])->name('series.store'); @@ -92,7 +91,7 @@ //CHAPTER Route::get('/admin/add/chapter', function () { - return view('admin/addChapter'); + return view('admin/series/addChapter'); })->name('addChapter'); Route::post('/admin/add/chapter', [ChaptersController::class, 'addChapter']); @@ -113,11 +112,11 @@ //FILM Route::get('/admin/film/tools', function () { - return view('admin/film-tools'); + return view('admin/film/film-tools'); }); Route::get('admin/add/film', function () { - return view('admin/films-form'); + return view('admin/film/films-form'); }); Route::post('admin/add/film', [FilmsController::class, 'store'])->name('films.store'); @@ -138,7 +137,7 @@ Route::get('/admin/users/tools', function () { $users = App\Models\User::all(); - return view('admin/user-tools', compact('users')); + return view('admin/users/user-tools', compact('users')); }); /*Route::get('/admin/add/user', function () { @@ -151,7 +150,7 @@ Route::get('admin/list/users', function (){ $users = App\Models\User::all(); - return view('admin/users-list', compact('users')); + return view('admin/users/users-list', compact('users')); }); Route::get('/admin/modify/user', function (Request $request) { -- GitLab From 776c8413c2f9f36fb3007b1b29ae05ff65d7c050 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 9 Apr 2025 20:07:41 +0200 Subject: [PATCH 16/24] feat: (WIP) added missing user administration views --- .../views/admin/users/add-users.blade.php | 25 +++++++++++++++++++ .../views/admin/users/delete-users.blade.php | 15 +++++++++++ routes/web.php | 14 ++++++----- 3 files changed, 48 insertions(+), 6 deletions(-) create mode 100644 resources/views/admin/users/add-users.blade.php create mode 100644 resources/views/admin/users/delete-users.blade.php diff --git a/resources/views/admin/users/add-users.blade.php b/resources/views/admin/users/add-users.blade.php new file mode 100644 index 00000000..cfeb83ce --- /dev/null +++ b/resources/views/admin/users/add-users.blade.php @@ -0,0 +1,25 @@ +@extends('layouts.adminStyle') +@section('content') + +<div class="container mt-5"> + <h1 class="text-center">Add user</h1><br> + <div class="d-grid gap-2 col-6 mx-auto"> + <form action="/admin/add/user" method="POST"> + @csrf + <div class="form-group"> + <label for="name">Name:</label> + <input type="text" class="form-control" id="name" name="name" required> + </div> + <div class="form-group"> + <label for="email">Email:</label> + <input type="email" class="form-control" id="email" name="email" required> + </div> + <div class="form-group"> + <label for="password">Password:</label> + <input type="password" class="form-control" id="password" name="password" required> + </div> + <button type="submit" class="btn btn-primary btn-block mb-2">Add User</button> + </form> + </div> +</div> +@endsection \ No newline at end of file diff --git a/resources/views/admin/users/delete-users.blade.php b/resources/views/admin/users/delete-users.blade.php new file mode 100644 index 00000000..edd3e38f --- /dev/null +++ b/resources/views/admin/users/delete-users.blade.php @@ -0,0 +1,15 @@ +@extends('layouts.adminStyle') +@section('content') + +<div class="container mt-5"> + <h1 class="text-center">Delete user: {{ $user->name }}</h1><br> + <div class="d-grid gap-2 col-6 mx-auto"> + <form action="/admin/delete/user/{{ $user->id }}" method="POST"> + @csrf + @method('DELETE') + <button type="submit" class="btn btn-danger btn-block mb-2">Delete User</button> + </form> + </div> +</div> + +@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 27207132..f6b08705 100644 --- a/routes/web.php +++ b/routes/web.php @@ -140,13 +140,15 @@ return view('admin/users/user-tools', compact('users')); }); -/*Route::get('/admin/add/user', function () { - -});*/ +Route::get('/admin/add/user', function () { + $users = App\Models\User::all(); + return view('admin/users/add-users'); +}); -/*Route::get('/admin/delete/user', function () { - -});*/ +Route::get('/admin/delete/user', function () { + $users = App\Models\User::all(); + return view('admin/users/delete-users'); +}); Route::get('admin/list/users', function (){ $users = App\Models\User::all(); -- GitLab From 64d8e7c13b25f1382c15f05a23434e79e1b2e678 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 23 Apr 2025 17:06:53 +0200 Subject: [PATCH 17/24] deleted unnecessary header links --- resources/views/layouts/adminStyle.blade.php | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/resources/views/layouts/adminStyle.blade.php b/resources/views/layouts/adminStyle.blade.php index 0e153729..eb55f394 100644 --- a/resources/views/layouts/adminStyle.blade.php +++ b/resources/views/layouts/adminStyle.blade.php @@ -27,21 +27,6 @@ <a class="nav-link" href="/admin">Adminstration panel</a> </li> </ul> - <ul class="navbar-nav ms-auto"> - <li class="nav-item"> - <a class="nav-link" href="/admin">Adminstration panel</a> - </li> - <li class="nav-item"> - <a class="nav-link" href="/admin/users/list">Users</a> - </li> - <li class="nav-item"> - <a class="nav-link" href="/admin/series/list">Series</a> - </li> - <li class="nav-item"> - <a class="nav-link" href="/admin/chapters/list">Chapters</a> - </li> - <li class="nav-item"> - </ul> </div> </div> </nav> -- GitLab From ee8266fc2ab54ed45f5d1a11c4a6327b94f3e09a Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 23 Apr 2025 18:09:58 +0200 Subject: [PATCH 18/24] fixed error where modify-users route was pointing towards file's old position instead of new one --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index f6b08705..8f0bbf43 100644 --- a/routes/web.php +++ b/routes/web.php @@ -157,7 +157,7 @@ Route::get('/admin/modify/user', function (Request $request) { $user = App\Models\User::findOrFail($request->input('user_id')); - return view('admin.modify-users', compact('user')); + return view('admin/users/modify-users', compact('user')); })->name('admin.user.edit'); Route::put('/admin/modify/user/{user}', [UserController::class, 'update']) -- GitLab From 68b76840966437f8578d9c52cfa17e4bfbeb069f Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 23 Apr 2025 19:28:43 +0200 Subject: [PATCH 19/24] moved series form into proper admin directory --- resources/views/{ => admin/series}/series-form.blade.php | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename resources/views/{ => admin/series}/series-form.blade.php (100%) diff --git a/resources/views/series-form.blade.php b/resources/views/admin/series/series-form.blade.php similarity index 100% rename from resources/views/series-form.blade.php rename to resources/views/admin/series/series-form.blade.php -- GitLab From 60a358975f0c52dbe4e771f0f4a30610cc7fdb28 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 23 Apr 2025 19:35:34 +0200 Subject: [PATCH 20/24] style.blade.php issue fixed --- resources/views/layouts/style.blade.php | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/resources/views/layouts/style.blade.php b/resources/views/layouts/style.blade.php index 27999b4a..d2318b73 100644 --- a/resources/views/layouts/style.blade.php +++ b/resources/views/layouts/style.blade.php @@ -22,12 +22,7 @@ <span class="navbar-toggler-icon"></span> </button> <!-- Menú de navegación --> - <div class="collapse navbar-collapse" id="navbarNav"> - <ul class="navbar-nav"> - <li class="nav-item"> - <a class="nav-link" href="/admin">Adminstration panel</a> - </li> - </ul> + <div class="navbar-collapse" id="navbarNav"> <ul class="navbar-nav ms-auto"> <li class="nav-item"> <a class="nav-link" href="/">Home</a> @@ -47,7 +42,7 @@ </li> <!-- Opciones de Login y Register --> <li class="nav-item"> - <a class="nav-link" href="/user/login">Login</a> + <a class="nav-link" href="/dashboard">Login</a> </li> <li class="nav-item"> <a class="nav-link" href="/register">Register</a> @@ -137,9 +132,7 @@ <!-- Footer --> - <footer class="py-5 bg-dark" style="position: fixed; - bottom: 0; - width: 100%;"> + <footer class="py-5 bg-dark"> <div class="container"> <p class="m-0 text-center text-white">Copyright © Escola del Treball. Sergi Coll, Xavier Ledesma, Marc Gomez</p> </div> -- GitLab From ecdb4d47e28b311af62ce0b7c77e8c67e1f350e3 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 23 Apr 2025 19:41:32 +0200 Subject: [PATCH 21/24] feat: fixed Films routing in navbar --- resources/views/layouts/style.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/layouts/style.blade.php b/resources/views/layouts/style.blade.php index d2318b73..e4f3e1ce 100644 --- a/resources/views/layouts/style.blade.php +++ b/resources/views/layouts/style.blade.php @@ -31,7 +31,7 @@ <a class="nav-link" href="/series">Series</a> </li> <li class="nav-item"> - <a class="nav-link" href="/media/watchContent">Movies</a> + <a class="nav-link" href="/films">Movies</a> </li> <!-- Búsqueda --> <li class="nav-item"> -- GitLab From d012aab10558304b03b1903757d9d7511905c3ea Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 23 Apr 2025 19:41:53 +0200 Subject: [PATCH 22/24] deleted some empty space --- routes/web.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/routes/web.php b/routes/web.php index 77179b72..555aa3fa 100644 --- a/routes/web.php +++ b/routes/web.php @@ -44,9 +44,6 @@ Route::get('/films', [FilmsController::class, 'showAllFilms'])->name('films'); - - - Route::get('/films/form', function () { return view('films-form'); }); -- GitLab From 42d6c95d21a26b16092048e3c347b35a5dd4a385 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 23 Apr 2025 19:54:50 +0200 Subject: [PATCH 23/24] corrected film-tools.blade.php href --- resources/views/admin/film/film-tools.blade.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/views/admin/film/film-tools.blade.php b/resources/views/admin/film/film-tools.blade.php index 0a7d5b02..3d1c0fba 100644 --- a/resources/views/admin/film/film-tools.blade.php +++ b/resources/views/admin/film/film-tools.blade.php @@ -5,10 +5,10 @@ <h1 class="text-center">Admin Panel</h1><br> <div class="d-grid gap-2 col-6 mx-auto"> <h2 class="text-center">Film Tools</h2> - <a href="#" class="btn btn-primary btn-block mb-2">Add Film</a> - <a href="#" class="btn btn-primary btn-block mb-2">Modify Film</a> - <a href="#" class="btn btn-primary btn-block mb-2">List Film</a> - <a href="#" class="btn btn-primary btn-block mb-2">Delete Film</a> + <a href="/admin/add/film" class="btn btn-primary btn-block mb-2">Add Film</a> + <a href="/admin/modify/film" class="btn btn-primary btn-block mb-2">Modify Film</a> + <a href="/admin/list/film" class="btn btn-primary btn-block mb-2">List Film</a> + <a href="/admin/delete/film" class="btn btn-primary btn-block mb-2">Delete Film</a> <!-- Descomentar cuando las funciones de cada ruta esten listas y la ruta funcional <a href="/admin/add/film" class="btn btn-primary btn-block mb-2">Add Film</a> -- GitLab From f4acbd1573152a3e867c9d150bec4d3b2dc182f0 Mon Sep 17 00:00:00 2001 From: a232850xl <xaviledesma721@gmail.com> Date: Wed, 23 Apr 2025 19:55:09 +0200 Subject: [PATCH 24/24] deleted some redundant routes --- routes/web.php | 8 -------- 1 file changed, 8 deletions(-) diff --git a/routes/web.php b/routes/web.php index 555aa3fa..6b455565 100644 --- a/routes/web.php +++ b/routes/web.php @@ -44,15 +44,7 @@ Route::get('/films', [FilmsController::class, 'showAllFilms'])->name('films'); -Route::get('/films/form', function () { - return view('films-form'); -}); - -Route::get('/prueva', function () { - return view('prueva'); -})->name('prueva'); -Route::post('/films/form', [FilmsController::class, 'store'])->name('films.store'); //ADMIN SERIES GET & POST Route::get('/admin/add/serie', function () { -- GitLab