Enhances application menu and adds calendar feature
Adds new calendar page and module with comprehensive initialization Introduces quick actions group in side menu with create booking and sale options Updates menu service to include new menu groups and rearrange sort order Configures custom npm registry and esbuild configuration Adds localization for new menu items and calendar section Implements calendar controller with dependency injection and settings seeding
This commit is contained in:
parent
435d9f11b7
commit
51f3b92d69
14 changed files with 422 additions and 10 deletions
37
PlanTempus.Application/Features/Calendar/Pages/Index.cshtml
Normal file
37
PlanTempus.Application/Features/Calendar/Pages/Index.cshtml
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
@page "/kalender"
|
||||
@using PlanTempus.Application.Features.Calendar.Pages
|
||||
@model PlanTempus.Application.Features.Calendar.Pages.IndexModel
|
||||
@{
|
||||
ViewData["Title"] = "Kalender";
|
||||
}
|
||||
|
||||
@section Styles {
|
||||
<link rel="stylesheet" href="~/lib/calendar/dist/css/calendar.css" />
|
||||
}
|
||||
|
||||
<div class="calendar-wrapper">
|
||||
<swp-calendar-container>
|
||||
<swp-time-axis>
|
||||
<swp-header-spacer></swp-header-spacer>
|
||||
<swp-time-axis-content id="time-axis"></swp-time-axis-content>
|
||||
</swp-time-axis>
|
||||
<swp-grid-container>
|
||||
<swp-header-viewport>
|
||||
<swp-header-track>
|
||||
<swp-calendar-header></swp-calendar-header>
|
||||
</swp-header-track>
|
||||
<swp-header-drawer></swp-header-drawer>
|
||||
</swp-header-viewport>
|
||||
<swp-content-viewport>
|
||||
<swp-content-track>
|
||||
<swp-scrollable-content>
|
||||
<swp-time-grid>
|
||||
<swp-grid-lines></swp-grid-lines>
|
||||
<swp-day-columns></swp-day-columns>
|
||||
</swp-time-grid>
|
||||
</swp-scrollable-content>
|
||||
</swp-content-track>
|
||||
</swp-content-viewport>
|
||||
</swp-grid-container>
|
||||
</swp-calendar-container>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
|
||||
namespace PlanTempus.Application.Features.Calendar.Pages;
|
||||
|
||||
public class IndexModel : PageModel
|
||||
{
|
||||
public void OnGet()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,8 @@
|
|||
"home": "Dashboard",
|
||||
"calendar": "Kalender",
|
||||
"pos": "Kasse",
|
||||
"createBooking": "Opret booking",
|
||||
"createSale": "Opret salg",
|
||||
"products": "Produkter & Lager",
|
||||
"suppliers": "Leverandører",
|
||||
"customers": "Kunder",
|
||||
|
|
@ -16,6 +18,7 @@
|
|||
},
|
||||
"groups": {
|
||||
"overview": "Overblik",
|
||||
"quickActions": "Hurtigvalg",
|
||||
"data": "Data",
|
||||
"online": "Online",
|
||||
"analytics": "Analyse",
|
||||
|
|
@ -762,5 +765,9 @@
|
|||
"modules": "Moduler",
|
||||
"tracking": "Tracking"
|
||||
}
|
||||
},
|
||||
"calendar": {
|
||||
"title": "Kalender",
|
||||
"subtitle": "Se og administrer bookinger"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public class MockMenuService : IMenuService
|
|||
Id = "calendar",
|
||||
Label = "Kalender",
|
||||
Icon = "ph-calendar",
|
||||
Url = "/poc-calendar.html",
|
||||
Url = "/kalender",
|
||||
MinimumRole = UserRole.Staff,
|
||||
SortOrder = 2
|
||||
},
|
||||
|
|
@ -87,12 +87,41 @@ public class MockMenuService : IMenuService
|
|||
}
|
||||
},
|
||||
|
||||
// QUICK ACTIONS GROUP
|
||||
new MenuGroup
|
||||
{
|
||||
Id = "quickActions",
|
||||
Label = "Hurtigvalg",
|
||||
SortOrder = 2,
|
||||
Items = new List<MenuItem>
|
||||
{
|
||||
new MenuItem
|
||||
{
|
||||
Id = "createBooking",
|
||||
Label = "Opret booking",
|
||||
Icon = "ph-calendar-plus",
|
||||
Url = "/opret-booking",
|
||||
MinimumRole = UserRole.Staff,
|
||||
SortOrder = 1
|
||||
},
|
||||
new MenuItem
|
||||
{
|
||||
Id = "createSale",
|
||||
Label = "Opret salg",
|
||||
Icon = "ph-shopping-cart",
|
||||
Url = "/opret-salg",
|
||||
MinimumRole = UserRole.Staff,
|
||||
SortOrder = 2
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// DATA GROUP
|
||||
new MenuGroup
|
||||
{
|
||||
Id = "data",
|
||||
Label = "Data",
|
||||
SortOrder = 2,
|
||||
SortOrder = 3,
|
||||
Items = new List<MenuItem>
|
||||
{
|
||||
new MenuItem
|
||||
|
|
@ -148,7 +177,7 @@ public class MockMenuService : IMenuService
|
|||
{
|
||||
Id = "online",
|
||||
Label = "Online",
|
||||
SortOrder = 3,
|
||||
SortOrder = 4,
|
||||
Items = new List<MenuItem>
|
||||
{
|
||||
new MenuItem
|
||||
|
|
@ -177,7 +206,7 @@ public class MockMenuService : IMenuService
|
|||
{
|
||||
Id = "analytics",
|
||||
Label = "Analyse",
|
||||
SortOrder = 4,
|
||||
SortOrder = 5,
|
||||
Items = new List<MenuItem>
|
||||
{
|
||||
new MenuItem
|
||||
|
|
@ -197,7 +226,7 @@ public class MockMenuService : IMenuService
|
|||
{
|
||||
Id = "system",
|
||||
Label = "System",
|
||||
SortOrder = 5,
|
||||
SortOrder = 6,
|
||||
Items = new List<MenuItem>
|
||||
{
|
||||
new MenuItem
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
@using PlanTempus.Application.Features.Menu
|
||||
@using PlanTempus.Application.Features.Menu
|
||||
@model SideMenuViewModel
|
||||
|
||||
<swp-side-menu>
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
<swp-side-menu-nav>
|
||||
@foreach (var group in Model.Groups)
|
||||
{
|
||||
<swp-side-menu-group>
|
||||
<swp-side-menu-group data-group="@group.Id">
|
||||
<swp-side-menu-label>@group.Label</swp-side-menu-label>
|
||||
@foreach (var item in group.Items)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<swp-side-menu-nav>
|
||||
@foreach (var group in Model.Groups)
|
||||
{
|
||||
<swp-side-menu-group>
|
||||
<swp-side-menu-group data-group="@group.Id">
|
||||
<swp-side-menu-label>@group.Label</swp-side-menu-label>
|
||||
@foreach (var item in group.Items)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue