bunch o stuff
This commit is contained in:
@@ -21,16 +21,22 @@
|
||||
<div class="container">
|
||||
<header class="admin-header">
|
||||
<div class="tab-container">
|
||||
<button class="tab-btn @(currentTab == AdminTab.Home ? "active" : "")"
|
||||
@onclick="() => currentTab = AdminTab.Home">
|
||||
<button class="tab-btn @(CurrentTab == AdminTab.Home ? "active" : "")"
|
||||
@onclick="() => CurrentTab = AdminTab.Home">
|
||||
Home Page
|
||||
</button>
|
||||
</div>
|
||||
<div class="tab-container">
|
||||
<button class="tab-btn @(CurrentTab == AdminTab.BusinessInfo ? "active" : "")"
|
||||
@onclick="() => CurrentTab = AdminTab.BusinessInfo">
|
||||
Business Info
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@if (currentTab == AdminTab.Home)
|
||||
@if (CurrentTab == AdminTab.Home)
|
||||
{
|
||||
<EditForm FormName="HomePageForm" Model="HomePageModel" OnValidSubmit="SaveHomePageModel" On class="admin-form home-page-form">
|
||||
<EditForm FormName="HomePageForm" Model="HomePageModel" OnValidSubmit="SaveHomePageModel" On class="admin-form">
|
||||
<DataAnnotationsValidator />
|
||||
|
||||
<div class="form-section text-center">
|
||||
@@ -100,9 +106,35 @@
|
||||
</div>
|
||||
</EditForm>
|
||||
}
|
||||
else
|
||||
else if (CurrentTab == AdminTab.BusinessInfo)
|
||||
{
|
||||
<h1>Another page</h1>
|
||||
<EditForm FormName="BusinessInfoForm" Model="BusinessInfo" OnValidSubmit="SaveBusinessInfo" On class="admin-form">
|
||||
<DataAnnotationsValidator />
|
||||
|
||||
<div class="form-section text-center">
|
||||
<h3><i class="icon">🏠</i> Business Info</h3>
|
||||
|
||||
<div class="input-group">
|
||||
<label>Business Name</label>
|
||||
<InputText @bind-Value="BusinessInfo.Name" class="form-input" />
|
||||
</div>
|
||||
|
||||
<div class="input-group">
|
||||
<label>Phone Number</label>
|
||||
<InputText @bind-Value="BusinessInfo.PhoneNumber" class="form-input" />
|
||||
</div>
|
||||
|
||||
<div class="input-group">
|
||||
<label>Support Email</label>
|
||||
<InputText @bind-Value="BusinessInfo.SupportEmail" class="form-input" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="admin-footer">
|
||||
<button type="submit" class="btn btn-save">Save</button>
|
||||
<button type="button" class="btn btn-revert" @onclick="RevertBusinessInfo">Revert</button>
|
||||
</div>
|
||||
</EditForm>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,39 +1,63 @@
|
||||
namespace ApplianceRepair.Components.Pages.admin
|
||||
{
|
||||
public partial class EditPages(HomePageReader homePageReader, ContentCardReader contentCardReader)
|
||||
public partial class EditPages(HomePageReader homePageReader, ContentCardReader contentCardReader, BusinessConfigReader businessConfigReader)
|
||||
{
|
||||
public HomePageModel? HomePageModel;
|
||||
public BusinessInfoModel? BusinessInfo;
|
||||
|
||||
private enum AdminTab { Home, About }
|
||||
private AdminTab currentTab = AdminTab.Home;
|
||||
private enum AdminTab { Home, About, BusinessInfo }
|
||||
private AdminTab CurrentTab = AdminTab.Home;
|
||||
|
||||
override
|
||||
protected async void OnInitialized()
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
HomePageModel = await homePageReader.ReadLatestRecordWithModel(contentCardReader) ?? Defaults.DefaultHomePageContent;
|
||||
var businessConfig = await businessConfigReader.ReadLatestRecord() ?? Defaults.DefaultBusinessConfig;
|
||||
var latestHomeRecord = await homePageReader.ReadLatestRecord() ?? Defaults.DefaultHomePageContent;
|
||||
var servicesList = await contentCardReader.ReadAllByPageAndGroup(HomePageModel.PageName, nameof(HomePageModel.ContentCardTypes.Services)) ?? [];
|
||||
var trustList = await contentCardReader.ReadAllByPageAndGroup(HomePageModel.PageName, nameof(HomePageModel.ContentCardTypes.Trust)) ?? [];
|
||||
|
||||
BusinessInfo = new BusinessInfoModel(businessConfig);
|
||||
HomePageModel = new HomePageModel(latestHomeRecord, businessConfig, servicesList, trustList);
|
||||
}
|
||||
|
||||
private async void RevertHomePageModel()
|
||||
{
|
||||
HomePageModel = await homePageReader.ReadLatestRecordWithModel(contentCardReader) ?? Defaults.DefaultHomePageContent;
|
||||
var businessConfig = await businessConfigReader.ReadLatestRecord() ?? Defaults.DefaultBusinessConfig;
|
||||
var latestHomeRecord = await homePageReader.ReadLatestRecord() ?? Defaults.DefaultHomePageContent;
|
||||
var servicesList = await contentCardReader.ReadAllByPageAndGroup(HomePageModel.PageName, nameof(HomePageModel.ContentCardTypes.Services)) ?? [];
|
||||
var trustList = await contentCardReader.ReadAllByPageAndGroup(HomePageModel.PageName, nameof(HomePageModel.ContentCardTypes.Trust)) ?? [];
|
||||
|
||||
BusinessInfo = new BusinessInfoModel(businessConfig);
|
||||
HomePageModel = new HomePageModel(latestHomeRecord, businessConfig, servicesList, trustList);
|
||||
}
|
||||
|
||||
private async void RevertBusinessInfo()
|
||||
{
|
||||
var businessConfig = await businessConfigReader.ReadLatestRecord() ?? Defaults.DefaultBusinessConfig;
|
||||
BusinessInfo = new BusinessInfoModel(businessConfig);
|
||||
}
|
||||
|
||||
private async void SaveHomePageModel()
|
||||
{
|
||||
HomePageModel.CreatedAt = DateTime.Now;
|
||||
HomePageModel.UpdatedAt = DateTime.Now;
|
||||
await homePageReader.UpdateRecord(HomePageModel);
|
||||
|
||||
foreach (var card in HomePageModel.ServicesCards)
|
||||
{
|
||||
card.UpdatedAt = DateTime.Now;
|
||||
await contentCardReader.UpdateRecord(card);
|
||||
}
|
||||
|
||||
foreach (var card in HomePageModel.TrustCards)
|
||||
{
|
||||
card.UpdatedAt = DateTime.Now;
|
||||
await contentCardReader.UpdateRecord(card);
|
||||
}
|
||||
}
|
||||
|
||||
await homePageReader.AddRecord(HomePageModel);
|
||||
private async void SaveBusinessInfo()
|
||||
{
|
||||
BusinessInfo.UpdatedAt = DateTime.Now;
|
||||
await businessConfigReader.UpdateRecord(BusinessInfo);
|
||||
}
|
||||
|
||||
private void AddServiceCard()
|
||||
@@ -42,7 +66,7 @@
|
||||
CreatedAt = DateTime.Now,
|
||||
UpdatedAt = DateTime.Now,
|
||||
BelongsToPage = HomePageModel.PageName,
|
||||
Group = HomePageModel.ContentCardTypes.Service.ToString(),
|
||||
Group = HomePageModel.ContentCardTypes.Services.ToString(),
|
||||
Header = "Service Name",
|
||||
Text = "Short Description"
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user