8b0451c2ec
This commit enhances the Note entity by introducing two new properties: IsPinned and IsDeleted, allowing for better management of note visibility and status. The NoteConfiguration class has been updated to include indexes for these properties, improving query performance. Additionally, new migrations have been created to reflect these changes in the database schema. The UI components have been updated to support pinning and restoring notes, enhancing user interaction and functionality within the note management system.
128 lines
3.7 KiB
Plaintext
128 lines
3.7 KiB
Plaintext
@using Core.Entities
|
|
@using WebApp.Services
|
|
@using MudBlazor
|
|
@inject INotesService NotesService
|
|
@inject IDialogService DialogService
|
|
|
|
<MudDialog>
|
|
<DialogContent>
|
|
@if (_isLoading)
|
|
{
|
|
<MudProgressLinear Color="Color.Primary" Indeterminate="true" Class="my-4" />
|
|
}
|
|
else if (!_history.Any())
|
|
{
|
|
<MudText Typo="Typo.body1" Align="Align.Center" Class="my-4">
|
|
No history available for this note.
|
|
</MudText>
|
|
}
|
|
else
|
|
{
|
|
<MudTable Items="@_history" Hover="true" Striped="true" Dense="true">
|
|
<HeaderContent>
|
|
<MudTh>Date/Time</MudTh>
|
|
<MudTh>User</MudTh>
|
|
<MudTh>Change Type</MudTh>
|
|
<MudTh>Title</MudTh>
|
|
<MudTh>Actions</MudTh>
|
|
</HeaderContent>
|
|
<RowTemplate>
|
|
<MudTd DataLabel="Date/Time">
|
|
@context.ModifiedAt.ToString("g")
|
|
</MudTd>
|
|
<MudTd DataLabel="User">
|
|
@(context.ModifiedBy ?? "Unknown")
|
|
</MudTd>
|
|
<MudTd DataLabel="Change Type">
|
|
<MudChip T="string" Size="Size.Small"
|
|
Color="@GetChangeTypeColor(context.ChangeType)">
|
|
@context.ChangeType
|
|
</MudChip>
|
|
</MudTd>
|
|
<MudTd DataLabel="Title">
|
|
@context.Title
|
|
</MudTd>
|
|
<MudTd DataLabel="Actions">
|
|
<MudButton StartIcon="@Icons.Material.Filled.Visibility"
|
|
OnClick="() => ViewVersion(context)"
|
|
Variant="Variant.Text"
|
|
Size="Size.Small">
|
|
View
|
|
</MudButton>
|
|
</MudTd>
|
|
</RowTemplate>
|
|
</MudTable>
|
|
}
|
|
</DialogContent>
|
|
<DialogActions>
|
|
<MudButton OnClick="Close">Close</MudButton>
|
|
</DialogActions>
|
|
</MudDialog>
|
|
|
|
@code {
|
|
[CascadingParameter]
|
|
IMudDialogInstance MudDialog { get; set; } = null!;
|
|
|
|
[Parameter]
|
|
public int NoteId { get; set; }
|
|
|
|
private List<NoteHistory> _history = [];
|
|
private bool _isLoading = true;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
await LoadHistory();
|
|
}
|
|
|
|
private async Task LoadHistory()
|
|
{
|
|
try
|
|
{
|
|
_history = (await NotesService.GetNoteHistoryAsync(NoteId)).ToList();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Error handling - could show snackbar if we had access
|
|
}
|
|
finally
|
|
{
|
|
_isLoading = false;
|
|
}
|
|
}
|
|
|
|
private Color GetChangeTypeColor(string changeType)
|
|
{
|
|
return changeType switch
|
|
{
|
|
"Created" => Color.Success,
|
|
"Updated" => Color.Info,
|
|
"Deleted" => Color.Error,
|
|
"Soft Deleted" => Color.Error,
|
|
"Restored" => Color.Success,
|
|
_ => Color.Default
|
|
};
|
|
}
|
|
|
|
private async Task ViewVersion(NoteHistory history)
|
|
{
|
|
var parameters = new DialogParameters
|
|
{
|
|
["History"] = history
|
|
};
|
|
|
|
var options = new DialogOptions
|
|
{
|
|
MaxWidth = MaxWidth.Medium,
|
|
FullWidth = true,
|
|
CloseButton = true
|
|
};
|
|
|
|
await DialogService.ShowAsync<NoteVersionViewDialog>("View Version", parameters, options);
|
|
}
|
|
|
|
private void Close()
|
|
{
|
|
MudDialog.Close();
|
|
}
|
|
}
|