diff --git a/Template/StuzkovakWeb/Areas/Admin/Controllers/InvitesController.cs b/Template/StuzkovakWeb/Areas/Admin/Controllers/InvitesController.cs deleted file mode 100644 index ef360a1..0000000 --- a/Template/StuzkovakWeb/Areas/Admin/Controllers/InvitesController.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.EntityFrameworkCore; -using StuzkovakWeb.Data; -using StuzkovakWeb.ViewModels; - -namespace StuzkovakWeb.Areas.Admin.Controllers; - -public class InvitesController : AdminBaseController -{ - private readonly AppDbContext _context; - - public InvitesController(AppDbContext context) - { - _context = context; - } - - public async Task Index() - { - var invites = await _context.Invites.ToListAsync(); - return View(invites); - } - - public async Task Details(Guid id) - { - var invite = await _context.Invites.FirstOrDefaultAsync(i => i.Id == id); - if (invite == null) return NotFound(); - return View(new AdminInviteDetailViewModel - { - Id = invite.Id, - TeacherName = invite.TeacherName, - IsAccepted = invite.IsAccepted - }); - } -} \ No newline at end of file diff --git a/Template/StuzkovakWeb/Areas/Admin/Views/Dashboard/Index.cshtml b/Template/StuzkovakWeb/Areas/Admin/Views/Dashboard/Index.cshtml deleted file mode 100644 index 0a744b0..0000000 --- a/Template/StuzkovakWeb/Areas/Admin/Views/Dashboard/Index.cshtml +++ /dev/null @@ -1,19 +0,0 @@ -@{ - ViewData["Title"] = "Dashboard"; -} - -

Admin Dashboard

-

Welcome to the administration area.

- -
-
-
-
Users
-
-
Manage system users
-

View and edit user details.

- Go to Users -
-
-
-
diff --git a/Template/StuzkovakWeb/Areas/Admin/Views/Invites/Index.cshtml b/Template/StuzkovakWeb/Areas/Admin/Views/Invites/Index.cshtml deleted file mode 100644 index aed58e6..0000000 --- a/Template/StuzkovakWeb/Areas/Admin/Views/Invites/Index.cshtml +++ /dev/null @@ -1,41 +0,0 @@ -@model List -@{ - ViewData["Title"] = "Invite Management"; -} - -
-

Pozvánky

-
- - - - - - - - - - - - @foreach (var invite in Model) - { - - - - - - - } - -
IDUčitelPotvrzeníActions
@invite.Id@invite.TeacherName@{ - if (invite.IsAccepted == true) - { - Ano - } - else if (invite.IsAccepted == false) - { - Ne - } - } - Details -
diff --git a/Template/StuzkovakWeb/Views/Home/Index.cshtml b/Template/StuzkovakWeb/Views/Home/Index.cshtml deleted file mode 100644 index 09285dd..0000000 --- a/Template/StuzkovakWeb/Views/Home/Index.cshtml +++ /dev/null @@ -1,8 +0,0 @@ -@{ - ViewData["Title"] = "Home Page"; -} - -
-

Welcome

-

Learn about building Web apps with ASP.NET Core.

-
\ No newline at end of file diff --git a/Template/StuzkovakWeb/Views/Home/Privacy.cshtml b/Template/StuzkovakWeb/Views/Home/Privacy.cshtml deleted file mode 100644 index e6eef70..0000000 --- a/Template/StuzkovakWeb/Views/Home/Privacy.cshtml +++ /dev/null @@ -1,6 +0,0 @@ -@{ - ViewData["Title"] = "Privacy Policy"; -} -

@ViewData["Title"]

- -

Use this page to detail your site's privacy policy.

\ No newline at end of file diff --git a/rename-template.sh b/rename-template.sh deleted file mode 100644 index 287bafb..0000000 --- a/rename-template.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -ROOT="$SCRIPT_DIR/Template" - -if [[ ! -d "$ROOT" ]]; then - echo "Error: Template directory not found at $ROOT" - exit 1 -fi - -echo "=========================================" -echo " MVC Template - Project Rename Tool" -echo "=========================================" -echo "" -read -rp "Enter new project name: " NEW_NAME - -if [[ -z "$NEW_NAME" ]]; then - echo "Error: Project name cannot be empty." - exit 1 -fi - -echo "" -echo "Renaming 'Template' -> '$NEW_NAME'..." -echo "" - -# Rename files first (deepest first to avoid path issues) -while IFS= read -r -d '' path; do - dir="$(dirname "$path")" - base="$(basename "$path")" - new_base="${base//Template/$NEW_NAME}" - if [[ "$base" != "$new_base" ]]; then - echo " FILE: $base -> $new_base" - mv "$path" "$dir/$new_base" - fi -done < <(find "$ROOT" \ - -not -path "*/bin/*" \ - -not -path "*/obj/*" \ - -not -path "*/.idea/*" \ - -type f -name "*Template*" -print0 | sort -rz) - -# Rename directories (deepest first) -while IFS= read -r -d '' path; do - parent="$(dirname "$path")" - base="$(basename "$path")" - new_base="${base//Template/$NEW_NAME}" - if [[ "$base" != "$new_base" ]]; then - echo " DIR: $base -> $new_base" - mv "$path" "$parent/$new_base" - fi -done < <(find "$ROOT" \ - -not -path "*/bin/*" \ - -not -path "*/obj/*" \ - -not -path "*/.idea/*" \ - -type d -name "*Template*" -print0 | sort -rz) - -echo "" -echo "Done! Project renamed to '$NEW_NAME'." diff --git a/Template/.dockerignore b/web/.dockerignore similarity index 100% rename from Template/.dockerignore rename to web/.dockerignore diff --git a/web/.idea/.idea.Stuzkovak/.idea/.gitignore b/web/.idea/.idea.Stuzkovak/.idea/.gitignore new file mode 100644 index 0000000..cbb9b51 --- /dev/null +++ b/web/.idea/.idea.Stuzkovak/.idea/.gitignore @@ -0,0 +1,15 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Rider ignored files +/modules.xml +/contentModel.xml +/projectSettingsUpdater.xml +/.idea.Stuzkovak.iml +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/web/.idea/.idea.Stuzkovak/.idea/.name b/web/.idea/.idea.Stuzkovak/.idea/.name new file mode 100644 index 0000000..722b01f --- /dev/null +++ b/web/.idea/.idea.Stuzkovak/.idea/.name @@ -0,0 +1 @@ +Stuzkovak \ No newline at end of file diff --git a/web/.idea/.idea.Stuzkovak/.idea/dataSources.xml b/web/.idea/.idea.Stuzkovak/.idea/dataSources.xml new file mode 100644 index 0000000..14e754d --- /dev/null +++ b/web/.idea/.idea.Stuzkovak/.idea/dataSources.xml @@ -0,0 +1,13 @@ + + + + + postgresql + true + true + org.postgresql.Driver + jdbc:postgresql://localhost/templatedb?password=password&user=user + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/Template/.idea/.idea.Template/.idea/indexLayout.xml b/web/.idea/.idea.Stuzkovak/.idea/indexLayout.xml similarity index 100% rename from Template/.idea/.idea.Template/.idea/indexLayout.xml rename to web/.idea/.idea.Stuzkovak/.idea/indexLayout.xml diff --git a/web/.idea/.idea.Stuzkovak/.idea/vcs.xml b/web/.idea/.idea.Stuzkovak/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/web/.idea/.idea.Stuzkovak/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Template/.idea/.idea.Template/.idea/.gitignore b/web/.idea/.idea.Template/.idea/.gitignore similarity index 100% rename from Template/.idea/.idea.Template/.idea/.gitignore rename to web/.idea/.idea.Template/.idea/.gitignore diff --git a/Template/.idea/.idea.Template/.idea/encodings.xml b/web/.idea/.idea.Template/.idea/encodings.xml similarity index 100% rename from Template/.idea/.idea.Template/.idea/encodings.xml rename to web/.idea/.idea.Template/.idea/encodings.xml diff --git a/web/.idea/.idea.Template/.idea/indexLayout.xml b/web/.idea/.idea.Template/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/web/.idea/.idea.Template/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Template/.idea/.idea.Template/.idea/vcs.xml b/web/.idea/.idea.Template/.idea/vcs.xml similarity index 100% rename from Template/.idea/.idea.Template/.idea/vcs.xml rename to web/.idea/.idea.Template/.idea/vcs.xml diff --git a/Template/Template.slnx b/web/Stuzkovak.slnx similarity index 100% rename from Template/Template.slnx rename to web/Stuzkovak.slnx diff --git a/Template/StuzkovakWeb/Areas/Admin/Controllers/AdminBaseController.cs b/web/StuzkovakWeb/Areas/Admin/Controllers/AdminBaseController.cs similarity index 100% rename from Template/StuzkovakWeb/Areas/Admin/Controllers/AdminBaseController.cs rename to web/StuzkovakWeb/Areas/Admin/Controllers/AdminBaseController.cs diff --git a/Template/StuzkovakWeb/Areas/Admin/Controllers/DashboardController.cs b/web/StuzkovakWeb/Areas/Admin/Controllers/DashboardController.cs similarity index 100% rename from Template/StuzkovakWeb/Areas/Admin/Controllers/DashboardController.cs rename to web/StuzkovakWeb/Areas/Admin/Controllers/DashboardController.cs diff --git a/web/StuzkovakWeb/Areas/Admin/Controllers/InvitesController.cs b/web/StuzkovakWeb/Areas/Admin/Controllers/InvitesController.cs new file mode 100644 index 0000000..f961b89 --- /dev/null +++ b/web/StuzkovakWeb/Areas/Admin/Controllers/InvitesController.cs @@ -0,0 +1,77 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using StuzkovakWeb.Data; +using StuzkovakWeb.Entities; +using StuzkovakWeb.ViewModels; + +namespace StuzkovakWeb.Areas.Admin.Controllers; + +public class InvitesController : AdminBaseController +{ + private readonly AppDbContext _context; + + public InvitesController(AppDbContext context) + { + _context = context; + } + + public async Task Index() + { + var invites = await _context.Invites.ToListAsync(); + return View(invites); + } + + public async Task Details(Guid id) + { + var invite = await _context.Invites.FirstOrDefaultAsync(i => i.Id == id); + if (invite == null) return NotFound(); + return View(new AdminInviteDetailViewModel + { + Id = invite.Id, + TeacherName = invite.TeacherName, + IsAccepted = invite.IsAccepted + }); + } + + [HttpPost] + [ValidateAntiForgeryToken] + public async Task Create(string teacherName) + { + if (string.IsNullOrEmpty(teacherName)) return BadRequest(); + var invite = new InviteEntity + { + TeacherName = teacherName, + IsAccepted = null + }; + await _context.Invites.AddAsync(invite); + await _context.SaveChangesAsync(); + + TempData["SuccessMessage"] = "Pozvánka byla vytvořena."; + return RedirectToAction("Index"); + } + + [HttpPost] + [ValidateAntiForgeryToken] + public async Task Delete(Guid id) + { + var invite = await _context.Invites.FirstOrDefaultAsync(i => i.Id == id); + if (invite == null) return NotFound(); + _context.Invites.Remove(invite); + await _context.SaveChangesAsync(); + return RedirectToAction("Index"); + } + + [HttpPost] + [ValidateAntiForgeryToken] + public async Task Edit(Guid id, string name) + { + var invite = await _context.Invites.FirstOrDefaultAsync(i => i.Id == id); + if (invite is null) return NotFound(); + + invite.TeacherName = name; + await _context.SaveChangesAsync(); + + TempData["SuccessMessage"] = "Pozvánka byla upravena."; + return RedirectToAction("Details", new { id }); + } +} \ No newline at end of file diff --git a/Template/StuzkovakWeb/Areas/Admin/Controllers/UsersController.cs b/web/StuzkovakWeb/Areas/Admin/Controllers/UsersController.cs similarity index 100% rename from Template/StuzkovakWeb/Areas/Admin/Controllers/UsersController.cs rename to web/StuzkovakWeb/Areas/Admin/Controllers/UsersController.cs diff --git a/web/StuzkovakWeb/Areas/Admin/Views/Dashboard/Index.cshtml b/web/StuzkovakWeb/Areas/Admin/Views/Dashboard/Index.cshtml new file mode 100644 index 0000000..f8bd08e --- /dev/null +++ b/web/StuzkovakWeb/Areas/Admin/Views/Dashboard/Index.cshtml @@ -0,0 +1,27 @@ +@{ + ViewData["Title"] = "Dashboard"; +} + +

Admin Dashboard

+

Vítejte v administraci.

+ +
+
+
+
Pozvánky
+
+
Správa pozvánek
+

Přidání, mazání a úprava pozvánek pro učitele.

+ Jít k pozvánkám +
+
+
+
Uživatelé
+
+
Správa uživatelů
+

Zobrazení a úprava uživatelů.

+ Jít k uživatelům +
+
+
+
diff --git a/Template/StuzkovakWeb/Areas/Admin/Views/Invites/Details.cshtml b/web/StuzkovakWeb/Areas/Admin/Views/Invites/Details.cshtml similarity index 60% rename from Template/StuzkovakWeb/Areas/Admin/Views/Invites/Details.cshtml rename to web/StuzkovakWeb/Areas/Admin/Views/Invites/Details.cshtml index 6bac467..89a55de 100644 --- a/Template/StuzkovakWeb/Areas/Admin/Views/Invites/Details.cshtml +++ b/web/StuzkovakWeb/Areas/Admin/Views/Invites/Details.cshtml @@ -38,3 +38,26 @@ + +
+
+
Upravit jméno učitele
+
+
+
+ @Html.AntiForgeryToken() + +
+ + +
+ +
+
+
+ +
+ @Html.AntiForgeryToken() + +
\ No newline at end of file diff --git a/web/StuzkovakWeb/Areas/Admin/Views/Invites/Index.cshtml b/web/StuzkovakWeb/Areas/Admin/Views/Invites/Index.cshtml new file mode 100644 index 0000000..48cb21f --- /dev/null +++ b/web/StuzkovakWeb/Areas/Admin/Views/Invites/Index.cshtml @@ -0,0 +1,84 @@ +@model List +@{ + ViewData["Title"] = "Invite Management"; +} + +
+

Pozvánky

+ +
+ +@if (TempData["SuccessMessage"] != null) +{ +
@TempData["SuccessMessage"]
+} + + + + + + + + + + + + @foreach (var invite in Model) + { + + + + + + + } + +
IDUčitelPotvrzeníActions
@invite.Id@invite.TeacherName@{ + if (invite.IsAccepted == true) + { + Ano + } + else if (invite.IsAccepted == false) + { + Ne + } + } + Details +
+ @Html.AntiForgeryToken() + +
+ + Ukázka + +
+ + + \ No newline at end of file diff --git a/Template/StuzkovakWeb/Areas/Admin/Views/Shared/_AdminLayout.cshtml b/web/StuzkovakWeb/Areas/Admin/Views/Shared/_AdminLayout.cshtml similarity index 91% rename from Template/StuzkovakWeb/Areas/Admin/Views/Shared/_AdminLayout.cshtml rename to web/StuzkovakWeb/Areas/Admin/Views/Shared/_AdminLayout.cshtml index d2ed2b6..a59070a 100644 --- a/Template/StuzkovakWeb/Areas/Admin/Views/Shared/_AdminLayout.cshtml +++ b/web/StuzkovakWeb/Areas/Admin/Views/Shared/_AdminLayout.cshtml @@ -1,5 +1,5 @@ - + @@ -48,9 +48,11 @@ Dashboard
  • - Users + Uživatelé +
  • +
  • + Pozvánky
  • - diff --git a/Template/StuzkovakWeb/Areas/Admin/Views/Users/Details.cshtml b/web/StuzkovakWeb/Areas/Admin/Views/Users/Details.cshtml similarity index 100% rename from Template/StuzkovakWeb/Areas/Admin/Views/Users/Details.cshtml rename to web/StuzkovakWeb/Areas/Admin/Views/Users/Details.cshtml diff --git a/Template/StuzkovakWeb/Areas/Admin/Views/Users/Index.cshtml b/web/StuzkovakWeb/Areas/Admin/Views/Users/Index.cshtml similarity index 100% rename from Template/StuzkovakWeb/Areas/Admin/Views/Users/Index.cshtml rename to web/StuzkovakWeb/Areas/Admin/Views/Users/Index.cshtml diff --git a/Template/StuzkovakWeb/Areas/Admin/Views/_ViewImports.cshtml b/web/StuzkovakWeb/Areas/Admin/Views/_ViewImports.cshtml similarity index 100% rename from Template/StuzkovakWeb/Areas/Admin/Views/_ViewImports.cshtml rename to web/StuzkovakWeb/Areas/Admin/Views/_ViewImports.cshtml diff --git a/Template/StuzkovakWeb/Areas/Admin/Views/_ViewStart.cshtml b/web/StuzkovakWeb/Areas/Admin/Views/_ViewStart.cshtml similarity index 100% rename from Template/StuzkovakWeb/Areas/Admin/Views/_ViewStart.cshtml rename to web/StuzkovakWeb/Areas/Admin/Views/_ViewStart.cshtml diff --git a/Template/StuzkovakWeb/Controllers/AuthController.cs b/web/StuzkovakWeb/Controllers/AuthController.cs similarity index 100% rename from Template/StuzkovakWeb/Controllers/AuthController.cs rename to web/StuzkovakWeb/Controllers/AuthController.cs diff --git a/Template/StuzkovakWeb/Controllers/HomeController.cs b/web/StuzkovakWeb/Controllers/HomeController.cs similarity index 50% rename from Template/StuzkovakWeb/Controllers/HomeController.cs rename to web/StuzkovakWeb/Controllers/HomeController.cs index b7d1c01..0f2b57c 100644 --- a/Template/StuzkovakWeb/Controllers/HomeController.cs +++ b/web/StuzkovakWeb/Controllers/HomeController.cs @@ -1,14 +1,27 @@ using System.Diagnostics; using Microsoft.AspNetCore.Mvc; +using StuzkovakWeb.Data; using StuzkovakWeb.Models; namespace StuzkovakWeb.Controllers; public class HomeController : Controller { - public IActionResult Index() + private readonly AppDbContext _context; + + public HomeController(AppDbContext context) { - return View(); + _context = context; + } + + public IActionResult Index(Guid? id) + { + if (id == null) return View(); + + var invite = _context.Invites.FirstOrDefault(i => i.Id == id); + if (invite == null) return NotFound(); + + return View(invite); } [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] diff --git a/web/StuzkovakWeb/Controllers/InvitesController.cs b/web/StuzkovakWeb/Controllers/InvitesController.cs new file mode 100644 index 0000000..806f274 --- /dev/null +++ b/web/StuzkovakWeb/Controllers/InvitesController.cs @@ -0,0 +1,44 @@ +using Microsoft.AspNetCore.Mvc; +using StuzkovakWeb.Data; + +namespace StuzkovakWeb.Controllers; + +public class InvitesController : Controller +{ + private readonly AppDbContext _context; + + public InvitesController(AppDbContext context) + { + _context = context; + } + + public async Task Accept(Guid id) + { + var invite = await _context.Invites.FindAsync(id); + if (invite == null) + { + return NotFound(); + } + + invite.IsAccepted = true; + _context.Invites.Update(invite); + await _context.SaveChangesAsync(); + + return RedirectToAction("Index", "Home", new { Id=id }); + } + + public async Task Refuse(Guid id) + { + var invite = await _context.Invites.FindAsync(id); + if (invite == null) + { + return NotFound(); + } + + invite.IsAccepted = false; + _context.Invites.Update(invite); + await _context.SaveChangesAsync(); + + return RedirectToAction("Index", "Home", new { Id=id }); + } +} \ No newline at end of file diff --git a/Template/StuzkovakWeb/Data/AppDbContext.cs b/web/StuzkovakWeb/Data/AppDbContext.cs similarity index 100% rename from Template/StuzkovakWeb/Data/AppDbContext.cs rename to web/StuzkovakWeb/Data/AppDbContext.cs diff --git a/Template/StuzkovakWeb/Data/DataSeeder.cs b/web/StuzkovakWeb/Data/DataSeeder.cs similarity index 100% rename from Template/StuzkovakWeb/Data/DataSeeder.cs rename to web/StuzkovakWeb/Data/DataSeeder.cs diff --git a/Template/StuzkovakWeb/Dockerfile b/web/StuzkovakWeb/Dockerfile similarity index 100% rename from Template/StuzkovakWeb/Dockerfile rename to web/StuzkovakWeb/Dockerfile diff --git a/Template/StuzkovakWeb/Entities/InviteEntity.cs b/web/StuzkovakWeb/Entities/InviteEntity.cs similarity index 100% rename from Template/StuzkovakWeb/Entities/InviteEntity.cs rename to web/StuzkovakWeb/Entities/InviteEntity.cs diff --git a/Template/StuzkovakWeb/Entities/UserEntity.cs b/web/StuzkovakWeb/Entities/UserEntity.cs similarity index 100% rename from Template/StuzkovakWeb/Entities/UserEntity.cs rename to web/StuzkovakWeb/Entities/UserEntity.cs diff --git a/Template/StuzkovakWeb/Migrations/20260501160159_SwitchToIdentity.Designer.cs b/web/StuzkovakWeb/Migrations/20260501160159_SwitchToIdentity.Designer.cs similarity index 100% rename from Template/StuzkovakWeb/Migrations/20260501160159_SwitchToIdentity.Designer.cs rename to web/StuzkovakWeb/Migrations/20260501160159_SwitchToIdentity.Designer.cs diff --git a/Template/StuzkovakWeb/Migrations/20260501160159_SwitchToIdentity.cs b/web/StuzkovakWeb/Migrations/20260501160159_SwitchToIdentity.cs similarity index 100% rename from Template/StuzkovakWeb/Migrations/20260501160159_SwitchToIdentity.cs rename to web/StuzkovakWeb/Migrations/20260501160159_SwitchToIdentity.cs diff --git a/web/StuzkovakWeb/Migrations/20260917152052_Invites.Designer.cs b/web/StuzkovakWeb/Migrations/20260917152052_Invites.Designer.cs new file mode 100644 index 0000000..5232907 --- /dev/null +++ b/web/StuzkovakWeb/Migrations/20260917152052_Invites.Designer.cs @@ -0,0 +1,295 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using StuzkovakWeb.Data; + +#nullable disable + +namespace StuzkovakWeb.Migrations +{ + [DbContext(typeof(AppDbContext))] + [Migration("20260917152052_Invites")] + partial class Invites + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "10.0.6") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => + { + b.Property("Id") + .HasColumnType("text"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("text"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("text"); + + b.Property("ClaimValue") + .HasColumnType("text"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("text"); + + b.Property("ClaimValue") + .HasColumnType("text"); + + b.Property("UserId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("text"); + + b.Property("ProviderKey") + .HasColumnType("text"); + + b.Property("ProviderDisplayName") + .HasColumnType("text"); + + b.Property("UserId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("text"); + + b.Property("RoleId") + .HasColumnType("text"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("text"); + + b.Property("LoginProvider") + .HasColumnType("text"); + + b.Property("Name") + .HasColumnType("text"); + + b.Property("Value") + .HasColumnType("text"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("StuzkovakWeb.Entities.InviteEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("IsAccepted") + .HasColumnType("boolean"); + + b.Property("TeacherName") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Invites"); + }); + + modelBuilder.Entity("StuzkovakWeb.Entities.UserEntity", b => + { + b.Property("Id") + .HasColumnType("text"); + + b.Property("AccessFailedCount") + .HasColumnType("integer"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("text"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("EmailConfirmed") + .HasColumnType("boolean"); + + b.Property("LockoutEnabled") + .HasColumnType("boolean"); + + b.Property("LockoutEnd") + .HasColumnType("timestamp with time zone"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("PasswordHash") + .HasColumnType("text"); + + b.Property("PhoneNumber") + .HasColumnType("text"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("boolean"); + + b.Property("SecurityStamp") + .HasColumnType("text"); + + b.Property("TwoFactorEnabled") + .HasColumnType("boolean"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex"); + + b.ToTable("AspNetUsers", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("StuzkovakWeb.Entities.UserEntity", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("StuzkovakWeb.Entities.UserEntity", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("StuzkovakWeb.Entities.UserEntity", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("StuzkovakWeb.Entities.UserEntity", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/web/StuzkovakWeb/Migrations/20260917152052_Invites.cs b/web/StuzkovakWeb/Migrations/20260917152052_Invites.cs new file mode 100644 index 0000000..f015e6c --- /dev/null +++ b/web/StuzkovakWeb/Migrations/20260917152052_Invites.cs @@ -0,0 +1,35 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace StuzkovakWeb.Migrations +{ + /// + public partial class Invites : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Invites", + columns: table => new + { + Id = table.Column(type: "uuid", nullable: false), + TeacherName = table.Column(type: "text", nullable: false), + IsAccepted = table.Column(type: "boolean", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Invites", x => x.Id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Invites"); + } + } +} diff --git a/Template/StuzkovakWeb/Migrations/AppDbContextModelSnapshot.cs b/web/StuzkovakWeb/Migrations/AppDbContextModelSnapshot.cs similarity index 94% rename from Template/StuzkovakWeb/Migrations/AppDbContextModelSnapshot.cs rename to web/StuzkovakWeb/Migrations/AppDbContextModelSnapshot.cs index 7ef8730..219ddf1 100644 --- a/Template/StuzkovakWeb/Migrations/AppDbContextModelSnapshot.cs +++ b/web/StuzkovakWeb/Migrations/AppDbContextModelSnapshot.cs @@ -154,6 +154,24 @@ namespace StuzkovakWeb.Migrations b.ToTable("AspNetUserTokens", (string)null); }); + modelBuilder.Entity("StuzkovakWeb.Entities.InviteEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid"); + + b.Property("IsAccepted") + .HasColumnType("boolean"); + + b.Property("TeacherName") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Invites"); + }); + modelBuilder.Entity("StuzkovakWeb.Entities.UserEntity", b => { b.Property("Id") diff --git a/Template/StuzkovakWeb/Models/ServiceResult.cs b/web/StuzkovakWeb/Models/ServiceResult.cs similarity index 100% rename from Template/StuzkovakWeb/Models/ServiceResult.cs rename to web/StuzkovakWeb/Models/ServiceResult.cs diff --git a/Template/StuzkovakWeb/Program.cs b/web/StuzkovakWeb/Program.cs similarity index 100% rename from Template/StuzkovakWeb/Program.cs rename to web/StuzkovakWeb/Program.cs diff --git a/Template/StuzkovakWeb/Properties/launchSettings.json b/web/StuzkovakWeb/Properties/launchSettings.json similarity index 85% rename from Template/StuzkovakWeb/Properties/launchSettings.json rename to web/StuzkovakWeb/Properties/launchSettings.json index 330fb6c..da1987a 100644 --- a/Template/StuzkovakWeb/Properties/launchSettings.json +++ b/web/StuzkovakWeb/Properties/launchSettings.json @@ -5,7 +5,7 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "applicationUrl": "http://localhost:5240", + "applicationUrl": "http://localhost:5300", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/Template/StuzkovakWeb/StuzkovakWeb.csproj b/web/StuzkovakWeb/StuzkovakWeb.csproj similarity index 100% rename from Template/StuzkovakWeb/StuzkovakWeb.csproj rename to web/StuzkovakWeb/StuzkovakWeb.csproj diff --git a/Template/StuzkovakWeb/ViewModels/AdminInviteDetailViewModel.cs b/web/StuzkovakWeb/ViewModels/AdminInviteDetailViewModel.cs similarity index 100% rename from Template/StuzkovakWeb/ViewModels/AdminInviteDetailViewModel.cs rename to web/StuzkovakWeb/ViewModels/AdminInviteDetailViewModel.cs diff --git a/Template/StuzkovakWeb/ViewModels/AuthLoginViewModel.cs b/web/StuzkovakWeb/ViewModels/AuthLoginViewModel.cs similarity index 100% rename from Template/StuzkovakWeb/ViewModels/AuthLoginViewModel.cs rename to web/StuzkovakWeb/ViewModels/AuthLoginViewModel.cs diff --git a/Template/StuzkovakWeb/ViewModels/AuthRegisterViewModel.cs b/web/StuzkovakWeb/ViewModels/AuthRegisterViewModel.cs similarity index 100% rename from Template/StuzkovakWeb/ViewModels/AuthRegisterViewModel.cs rename to web/StuzkovakWeb/ViewModels/AuthRegisterViewModel.cs diff --git a/Template/StuzkovakWeb/ViewModels/ErrorViewModel.cs b/web/StuzkovakWeb/ViewModels/ErrorViewModel.cs similarity index 100% rename from Template/StuzkovakWeb/ViewModels/ErrorViewModel.cs rename to web/StuzkovakWeb/ViewModels/ErrorViewModel.cs diff --git a/Template/StuzkovakWeb/ViewModels/ProfileViewModel.cs b/web/StuzkovakWeb/ViewModels/ProfileViewModel.cs similarity index 100% rename from Template/StuzkovakWeb/ViewModels/ProfileViewModel.cs rename to web/StuzkovakWeb/ViewModels/ProfileViewModel.cs diff --git a/Template/StuzkovakWeb/ViewModels/UserWithRolesViewModel.cs b/web/StuzkovakWeb/ViewModels/UserWithRolesViewModel.cs similarity index 100% rename from Template/StuzkovakWeb/ViewModels/UserWithRolesViewModel.cs rename to web/StuzkovakWeb/ViewModels/UserWithRolesViewModel.cs diff --git a/Template/StuzkovakWeb/Views/Auth/AccessDenied.cshtml b/web/StuzkovakWeb/Views/Auth/AccessDenied.cshtml similarity index 100% rename from Template/StuzkovakWeb/Views/Auth/AccessDenied.cshtml rename to web/StuzkovakWeb/Views/Auth/AccessDenied.cshtml diff --git a/Template/StuzkovakWeb/Views/Auth/Login.cshtml b/web/StuzkovakWeb/Views/Auth/Login.cshtml similarity index 100% rename from Template/StuzkovakWeb/Views/Auth/Login.cshtml rename to web/StuzkovakWeb/Views/Auth/Login.cshtml diff --git a/Template/StuzkovakWeb/Views/Auth/Profile.cshtml b/web/StuzkovakWeb/Views/Auth/Profile.cshtml similarity index 100% rename from Template/StuzkovakWeb/Views/Auth/Profile.cshtml rename to web/StuzkovakWeb/Views/Auth/Profile.cshtml diff --git a/web/StuzkovakWeb/Views/Home/Index.cshtml b/web/StuzkovakWeb/Views/Home/Index.cshtml new file mode 100644 index 0000000..e9fa379 --- /dev/null +++ b/web/StuzkovakWeb/Views/Home/Index.cshtml @@ -0,0 +1,47 @@ +@model StuzkovakWeb.Entities.InviteEntity? + +@{ + ViewData["Title"] = "Pozvánka"; +} + +@if (Model is not null) +{ +
    +

    4.EP Vás zve na stužkovák!

    + +

    Kde se bude konat? V UPu!

    +

    Kdy? 23. října!

    + +

    pls zachraňte ten obsah někdo ;-;

    +

    Jméno učitele pro kontrolu: @Model.TeacherName

    + + @if (Model.IsAccepted is null) + { +
    + + +
    + +
    + + +
    + } + else if (Model.IsAccepted == true) + { +

    Děkujeme za příjetí pozvánky! Budeme se na Vás těšit.

    + } + else if (Model.IsAccepted == false) + { +

    Taková škoda... A my se na Vás tak těšili.

    + } + +
    +} +else +{ +
    +

    Stužkovák 4.EP

    +

    Copak se stalo s Vaší pozvánkou? 🤔

    +
    +} diff --git a/Template/StuzkovakWeb/Views/Shared/Error.cshtml b/web/StuzkovakWeb/Views/Shared/Error.cshtml similarity index 100% rename from Template/StuzkovakWeb/Views/Shared/Error.cshtml rename to web/StuzkovakWeb/Views/Shared/Error.cshtml diff --git a/Template/StuzkovakWeb/Views/Shared/_Layout.cshtml b/web/StuzkovakWeb/Views/Shared/_Layout.cshtml similarity index 100% rename from Template/StuzkovakWeb/Views/Shared/_Layout.cshtml rename to web/StuzkovakWeb/Views/Shared/_Layout.cshtml diff --git a/Template/StuzkovakWeb/Views/Shared/_Layout.cshtml.css b/web/StuzkovakWeb/Views/Shared/_Layout.cshtml.css similarity index 100% rename from Template/StuzkovakWeb/Views/Shared/_Layout.cshtml.css rename to web/StuzkovakWeb/Views/Shared/_Layout.cshtml.css diff --git a/Template/StuzkovakWeb/Views/Shared/_ValidationScriptsPartial.cshtml b/web/StuzkovakWeb/Views/Shared/_ValidationScriptsPartial.cshtml similarity index 100% rename from Template/StuzkovakWeb/Views/Shared/_ValidationScriptsPartial.cshtml rename to web/StuzkovakWeb/Views/Shared/_ValidationScriptsPartial.cshtml diff --git a/Template/StuzkovakWeb/Views/_ViewImports.cshtml b/web/StuzkovakWeb/Views/_ViewImports.cshtml similarity index 100% rename from Template/StuzkovakWeb/Views/_ViewImports.cshtml rename to web/StuzkovakWeb/Views/_ViewImports.cshtml diff --git a/Template/StuzkovakWeb/Views/_ViewStart.cshtml b/web/StuzkovakWeb/Views/_ViewStart.cshtml similarity index 100% rename from Template/StuzkovakWeb/Views/_ViewStart.cshtml rename to web/StuzkovakWeb/Views/_ViewStart.cshtml diff --git a/Template/StuzkovakWeb/appsettings.Development.json b/web/StuzkovakWeb/appsettings.Development.json similarity index 100% rename from Template/StuzkovakWeb/appsettings.Development.json rename to web/StuzkovakWeb/appsettings.Development.json diff --git a/Template/StuzkovakWeb/appsettings.json b/web/StuzkovakWeb/appsettings.json similarity index 100% rename from Template/StuzkovakWeb/appsettings.json rename to web/StuzkovakWeb/appsettings.json diff --git a/Template/StuzkovakWeb/wwwroot/css/site.css b/web/StuzkovakWeb/wwwroot/css/site.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/css/site.css rename to web/StuzkovakWeb/wwwroot/css/site.css diff --git a/Template/StuzkovakWeb/wwwroot/favicon.ico b/web/StuzkovakWeb/wwwroot/favicon.ico similarity index 100% rename from Template/StuzkovakWeb/wwwroot/favicon.ico rename to web/StuzkovakWeb/wwwroot/favicon.ico diff --git a/Template/StuzkovakWeb/wwwroot/js/site.js b/web/StuzkovakWeb/wwwroot/js/site.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/js/site.js rename to web/StuzkovakWeb/wwwroot/js/site.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/LICENSE b/web/StuzkovakWeb/wwwroot/lib/bootstrap/LICENSE similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/LICENSE rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/LICENSE diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.js b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.js rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map b/web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map rename to web/StuzkovakWeb/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt b/web/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt rename to web/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.js b/web/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.js rename to web/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js b/web/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js rename to web/StuzkovakWeb/wwwroot/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery-validation/LICENSE.md b/web/StuzkovakWeb/wwwroot/lib/jquery-validation/LICENSE.md similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery-validation/LICENSE.md rename to web/StuzkovakWeb/wwwroot/lib/jquery-validation/LICENSE.md diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/additional-methods.js b/web/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/additional-methods.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/additional-methods.js rename to web/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/additional-methods.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/additional-methods.min.js b/web/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/additional-methods.min.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/additional-methods.min.js rename to web/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/additional-methods.min.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/jquery.validate.js b/web/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/jquery.validate.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/jquery.validate.js rename to web/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/jquery.validate.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js b/web/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js rename to web/StuzkovakWeb/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery/LICENSE.txt b/web/StuzkovakWeb/wwwroot/lib/jquery/LICENSE.txt similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery/LICENSE.txt rename to web/StuzkovakWeb/wwwroot/lib/jquery/LICENSE.txt diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.js b/web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.js rename to web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.min.js b/web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.min.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.min.js rename to web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.min.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.min.map b/web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.min.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.min.map rename to web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.min.map diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.js b/web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.js rename to web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.min.js b/web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.min.js similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.min.js rename to web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.min.js diff --git a/Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.min.map b/web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.min.map similarity index 100% rename from Template/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.min.map rename to web/StuzkovakWeb/wwwroot/lib/jquery/dist/jquery.slim.min.map diff --git a/Template/compose.yaml b/web/compose.yaml similarity index 100% rename from Template/compose.yaml rename to web/compose.yaml