@attribute [Authorize] @using BLAIzor.Components.Layout @using BLAIzor.Models @using BLAIzor.Services @using Microsoft.AspNetCore.Components.Authorization @layout AdminLayout @inject ContentEditorService _contentEditorService @inject AuthenticationStateProvider AuthenticationStateProvider @inject CustomAuthenticationStateProvider CustomAuthProvider @inject NotificationService notificationService @inject DialogService dialogService

Forms linked to this site

@if (siteInfo.FormDefinitions?.Count > 0) { } else {

No forms added yet.

} Add New Form @code { [Parameter] public int SiteId { get; set; } [Parameter] public Func OnSiteInfoSaveClicked { get; set; } [Parameter] public Func OnSiteNameChanged { get; set; } [Parameter] public Func OnCancelItemClicked { get; set; } private EditContext EditContext; private SiteInfo siteInfo = new(); private string? userId; private string? userName; private AuthenticationState? authState; protected override Task OnInitializedAsync() { EditContext = new EditContext(siteInfo); EditContext.OnFieldChanged += EditContext_OnFieldChanged; return base.OnInitializedAsync(); } protected override async Task OnParametersSetAsync() { authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); if (authState.User.Identity?.IsAuthenticated == true) { userId = CustomAuthProvider.GetUserId(); userName = CustomAuthProvider.GetUserName(); } siteInfo = await _contentEditorService.GetSiteInfoWithFormsByIdAsync(SiteId) ?? new SiteInfo(); } private async Task SaveSiteInfo() { await _contentEditorService.UpdateSiteInfoAsync(siteInfo); if (OnSiteInfoSaveClicked != null) await OnSiteInfoSaveClicked.Invoke(siteInfo); } private async void EditContext_OnFieldChanged(object sender, FieldChangedEventArgs e) { if (e.FieldIdentifier.FieldName == "SiteName") { //invoke SiteNameChanged if (OnSiteNameChanged != null) await OnSiteNameChanged.Invoke(siteInfo.SiteName); } } private async Task Rechunk(SiteInfo site) { var confirmationResult = await dialogService.Confirm("Are you sure?", "Rechunk site", new ConfirmOptions() { OkButtonText = "Rechunk", CancelButtonText = "Oops, no" }); if (confirmationResult == true) { await ReallyRechunk(site); } else { //do nothing? } } private async Task ReallyRechunk(SiteInfo site) { await _contentEditorService.ForceRecreateQdrantCollectionAsync(site.Id); } }