summaryrefslogtreecommitdiffstats
path: root/src/Pages/Shared
diff options
context:
space:
mode:
authorivar <i@oiee.no>2025-10-19 23:41:23 +0200
committerivar <i@oiee.no>2025-10-19 23:41:23 +0200
commit3f4c0720e1e3421431e7baa20882a4a4512a7fab (patch)
tree734ca81d7d0841d8863e3f523ebba14c282dc681 /src/Pages/Shared
downloadfagprove-3f4c0720e1e3421431e7baa20882a4a4512a7fab.tar.xz
fagprove-3f4c0720e1e3421431e7baa20882a4a4512a7fab.zip
InitialHEADmaster
Diffstat (limited to 'src/Pages/Shared')
-rw-r--r--src/Pages/Shared/_Layout.cshtml59
-rw-r--r--src/Pages/Shared/_Scripts.cshtml23
-rw-r--r--src/Pages/Shared/_Sidebar.cshtml32
-rw-r--r--src/Pages/Shared/_Stylesheets.cshtml15
-rw-r--r--src/Pages/Shared/_Templates.cshtml210
-rw-r--r--src/Pages/Shared/_TopNavbar.cshtml30
6 files changed, 369 insertions, 0 deletions
diff --git a/src/Pages/Shared/_Layout.cshtml b/src/Pages/Shared/_Layout.cshtml
new file mode 100644
index 0000000..e59dedd
--- /dev/null
+++ b/src/Pages/Shared/_Layout.cshtml
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang="no">
+<head>
+ <meta charset="utf-8" />
+ <meta content="width=device-width, initial-scale=1.0"
+ name="viewport" />
+ <partial name="_Stylesheets" />
+ @RenderSection("Head", required: false)
+ <title>@ViewData["Title"] - Reservasjonstjeneste</title>
+</head>
+<body class="pusher pusable">
+<partial name="_Sidebar" />
+<partial name="_TopNavbar" />
+<main class="pusher main-content">
+ @RenderBody()
+</main>
+<aside class="ui small modal"
+ id="profile-settings-modal">
+ <div class="content">
+ <form class="ui form"
+ id="edit-profile-form"
+ onsubmit="return false">
+ <div class="field">
+ <label for="password">Nytt passord</label>
+ <div class="ui left icon input">
+ <i class="lock icon"></i>
+ <input autocomplete="new-password"
+ id="password"
+ minlength="6"
+ name="password"
+ placeholder="Passord"
+ required
+ type="password">
+ </div>
+ </div>
+ <div class="field">
+ <label for="password-again">Gjenta passord</label>
+ <div class="ui left icon input">
+ <i class="lock icon"></i>
+ <input autocomplete="new-password"
+ id="password-again"
+ minlength="6"
+ name="password-again"
+ placeholder="Gjenta passord"
+ required
+ type="password">
+ </div>
+ </div>
+ <div class="field">
+ <button class="ui positive button">Lagre</button>
+ </div>
+ </form>
+ </div>
+</aside>
+<partial name="_Templates" />
+<partial name="_Scripts" />
+@RenderSection("Scripts", required: false)
+</body>
+</html>
diff --git a/src/Pages/Shared/_Scripts.cshtml b/src/Pages/Shared/_Scripts.cshtml
new file mode 100644
index 0000000..121f9db
--- /dev/null
+++ b/src/Pages/Shared/_Scripts.cshtml
@@ -0,0 +1,23 @@
+<script asp-append-version="true"
+ asp-fallback-src="//code.jquery.com/jquery-3.4.1.min.js"
+ src="~/libraries/jquery/dist/jquery.min.js"></script>
+<script asp-append-version="true"
+ src="~/libraries/kendo/kendo.all.min.js"></script>
+<script asp-append-version="true"
+ src="~/libraries/fomantic/dist/semantic.min.js"></script>
+<script asp-append-version="true"
+ src="~/libraries/kendo/kendo.messages.nb-NO.min.js"></script>
+<script asp-append-version="true"
+ src="~/libraries/kendo/kendo.culture.no.min.js"></script>
+<script asp-append-version="true"
+ src="~/libraries/jquery-pjax/jquery.pjax.js"></script>
+<script asp-append-version="true"
+ src="~/libraries/jquery-steps/jquery.steps.min.js"></script>
+<script asp-append-version="true"
+ src="~/scripts/base.js"></script>
+<script asp-append-version="true"
+ src="~/scripts/prototypes.js"></script>
+<script asp-append-version="true"
+ src="~/scripts/utils.js"></script>
+<script asp-append-version="true"
+ src="~/scripts/index.js"></script>
diff --git a/src/Pages/Shared/_Sidebar.cshtml b/src/Pages/Shared/_Sidebar.cshtml
new file mode 100644
index 0000000..b708daa
--- /dev/null
+++ b/src/Pages/Shared/_Sidebar.cshtml
@@ -0,0 +1,32 @@
+<!-- Sidebar -->
+<nav class="ui sidebar vertical labeled icon menu"
+ id="sidebar">
+ <a class="item"
+ href="/app">
+ <i class="icon far fa-home"></i>
+ Hjem
+ </a>
+ <a class="item"
+ href="/app/info">
+ <i class="icon far fa-info-circle"></i>
+ Informasjon
+ </a>
+ @if (User.IsInRole("Administrator"))
+ {
+ <a class="item"
+ href="/app/users">
+ <i class="icon far fa-users"></i>
+ Brukere
+ </a>
+ <a class="item"
+ href="/app/reservations">
+ <i class="icon far fa-clipboard-list"></i>
+ Reservasjoner
+ </a>
+ <a class="item"
+ href="/app/cabins">
+ <i class="icon far fa-hotel"></i>
+ Hytter
+ </a>
+ }
+</nav>
diff --git a/src/Pages/Shared/_Stylesheets.cshtml b/src/Pages/Shared/_Stylesheets.cshtml
new file mode 100644
index 0000000..0b506c3
--- /dev/null
+++ b/src/Pages/Shared/_Stylesheets.cshtml
@@ -0,0 +1,15 @@
+<link asp-append-version="true"
+ href="~/libraries/fomantic/dist/semantic.min.css"
+ rel="stylesheet">
+<link asp-append-version="true"
+ href="~/libraries/kendo/kendo.material-v2.min.css"
+ rel="stylesheet">
+<link asp-append-version="true"
+ href="~/libraries/fontawesome/css/fontawesome.min.css"
+ rel="stylesheet">
+<link asp-append-version="true"
+ href="~/libraries/fontawesome/css/regular.min.css"
+ rel="stylesheet">
+<link asp-append-version="true"
+ href="~/styles/index.css"
+ rel="stylesheet">
diff --git a/src/Pages/Shared/_Templates.cshtml b/src/Pages/Shared/_Templates.cshtml
new file mode 100644
index 0000000..b153a1e
--- /dev/null
+++ b/src/Pages/Shared/_Templates.cshtml
@@ -0,0 +1,210 @@
+@using IOL.Fagprove.Data
+<div style="display: none">
+ <script id="editCabinInfoModalTemplate"
+ type="text/x-kendo-template">
+<i class="close icon"></i>
+<div class="header">
+ Rediger #= data.name #
+</div>
+<div class="content">
+ <form class="ui form"
+ id="editCabinForm"
+ onsubmit="return false">
+ <input type="hidden" name="id" id="id" value="#= data.id #">
+ <div class="two fields">
+ <div class="field required">
+ <label for="name">Navn</label>
+ <input id="name"
+ name="name"
+ required
+ value="#= data.name #"
+ type="text">
+ </div>
+ <div class="field">
+ <label for="categoryId">Hyttefelt</label>
+ <select class="ui selection dropdown"
+ id="categoryId"
+ name="categoryId">
+ @foreach (var field in StaticData.CabinFields)
+ {
+ <option value="@field.Id">@field.Name</option>
+ }
+ </select>
+ </div>
+ </div>
+ <div class="two fields">
+ <div class="field">
+ <label for="price">Pris pr. natt</label>
+ <input id="price"
+ name="price"
+ value="#= data.price #"
+ type="text">
+ </div>
+ <div class="field">
+ <label for="capacity">Sengeplasser</label>
+ <input id="capacity"
+ name="capacity"
+ value="#= data.capacity #"
+ type="number">
+ </div>
+ </div>
+ <div class="field">
+ <label for="description">Beskrivelse</label>
+ <textarea id="description"
+ name="description"
+ type="text">#= data.description #</textarea>
+ </div>
+ </form>
+</div>
+<div class="actions">
+ <div class="ui black deny button">
+ Avbryt
+ </div>
+ <div class="ui green right labeled icon button"
+ id="submitEditCabinForm">
+ Oppdater
+ <i class="checkmark icon"></i>
+ </div>
+</div>
+ </script>
+
+ <script id="newCabinInfoModalTemplate"
+ type="text/x-kendo-template">
+<i class="close icon"></i>
+<div class="header">
+ Ny hytte
+</div>
+<div class="content">
+ <form class="ui form"
+ id="newCabinForm"
+ onsubmit="return false">
+ <div class="two fields">
+ <div class="field required">
+ <label for="name">Navn</label>
+ <input id="name"
+ name="name"
+ required
+ type="text">
+ </div>
+ <div class="field">
+ <label for="categoryId">Hyttefelt</label>
+ <select class="ui selection dropdown"
+ id="categoryId"
+ name="categoryId">
+ @foreach (var field in StaticData.CabinFields)
+ {
+ <option value="@field.Id">@field.Name</option>
+ }
+ </select>
+ </div>
+ </div>
+ <div class="two fields">
+ <div class="field">
+ <label for="price">Pris pr. natt</label>
+ <input id="price"
+ name="price"
+ type="text">
+ </div>
+ <div class="field">
+ <label for="capacity">Sengeplasser</label>
+ <input id="capacity"
+ name="capacity"
+ type="number">
+ </div>
+ </div>
+ <div class="field">
+ <label for="description">Beskrivelse</label>
+ <textarea id="description"
+ name="description"
+ type="text"></textarea>
+ </div>
+ </form>
+</div>
+<div class="actions">
+ <div class="ui black deny button">
+ Avbryt
+ </div>
+ <div class="ui green right labeled icon button"
+ id="submitNewCabinForm">
+ Lagre
+ <i class="checkmark icon"></i>
+ </div>
+</div>
+</script>
+
+ <script id="cabinRowCommandButtons"
+ type="text/x-kendo-template">
+ <div class="ui compact buttons">
+ <button class='ui compact button primary' onclick="openEditCabinModal(this)">Rediger</button>
+ <button class='ui compact button red' onclick="deleteCabin(this)">Slett</button>
+ </div>
+ </script>reservationsRowCommandButtons
+ <script id="reservationsRowCommandButtons"
+ type="text/x-kendo-template">
+ <div class="ui compact buttons">
+ <button class="ui compact button primary" onclick="inspectReservation(this)">Detaljer</button>
+ # if(data.status !== 3 && data.status !== 1) { #
+ <button class='ui compact button green' onclick="grantReservation(this)">Godkjenn</button>
+ # } #
+ # if(data.status !== 3 && data.status !== 2) { #
+ <button class='ui compact button red' onclick="rejectReservation(this)">Avvis</button>
+ # } #
+ </div>
+ </script>
+ <script id="reservationStatusTextTemplate"
+ type="text/x-kendo-template">
+ # switch (data.status) {
+ case 0: #
+ <span class='ui teal label'>VENTENDE</span>
+ # break; #
+ # case 1: #
+ <span class='ui green label'>GODKJENT</span>
+ # break; #
+ # case 2: #
+ <span class='ui red label'>AVVIST</span>
+ # break; #
+ # case 3: #
+ <span class='ui grey label'>INAKTIV</span>
+ # break; #
+ # }#
+ </script>
+
+ <script id="reservationInfoTemplate" type="text/x-kendo-template">
+ <i class="close icon"></i>
+ <div class="header">
+ Reservasjon - #= data.name #
+ </div>
+ <div class="content">
+ <div class="description">
+ <div class="ui header">#= data.name #</div>
+ <p>Fra: #= data.from #</p>
+ <p>Til: #= data.to #</p>
+ <p>Hytte: #= data.cabin #</p>
+ <p>Status: #= data.status #</p>
+ # switch (data.status) {
+ case 0: #
+ <p>Status: <span class='ui teal label'>VENTENDE</span></p>
+ # break; #
+ # case 1: #
+ <p>Status: <span class='ui green label'>GODKJENT</span></p>
+ # break; #
+ # case 2: #
+ <p>Status: <span class='ui red label'>AVVIST</span></p>
+ # break; #
+ # case 3: #
+ <p>Status: <span class='ui grey label'>INAKTIV</span></p>
+ # break; #
+ # }#
+ # if(data.description) { #
+ <span class="ui large text">Kommentar</span>
+ <p>#= data.description #</p>
+ # } #
+ </div>
+ </div>
+ <div class="actions">
+ <div class="ui deny button">
+ Lukk
+ </div>
+ </div>
+ </script>
+</div>
diff --git a/src/Pages/Shared/_TopNavbar.cshtml b/src/Pages/Shared/_TopNavbar.cshtml
new file mode 100644
index 0000000..6d71cd3
--- /dev/null
+++ b/src/Pages/Shared/_TopNavbar.cshtml
@@ -0,0 +1,30 @@
+<!-- Top navbar -->
+<nav class="ui top fixed icon menu" id="navbar">
+ <div class="left menu">
+ <a class="item"
+ data-target="#sidebar"
+ href="#"
+ id="sidebar-menu-toggler">
+ <i class="sidebar icon"></i>
+ </a>
+ <div class="item"><span class="ui large text">@ViewData["Title"]</span></div>
+ </div>
+ <div class="right menu basic">
+ <div class="ui dropdown item">
+ <i class="user circle outline large icon"></i>
+ @User.Identity.Name
+ <div class="menu large">
+ <div class="item"
+ id="profile-options-button">
+ <i class="user cog icon"></i>
+ Innstillinger
+ </div>
+ <div class="item"
+ id="log-out-button">
+ <i class="sign out alternate icon"></i>
+ Logg ut
+ </div>
+ </div>
+ </div>
+ </div>
+</nav>