Most Changes for v0.1.0-beta #51
@@ -276,4 +276,4 @@
|
|||||||
_isSaving = false;
|
_isSaving = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,17 +7,18 @@
|
|||||||
@using Microsoft.EntityFrameworkCore
|
@using Microsoft.EntityFrameworkCore
|
||||||
@using CouchLog.Components.Pages.GlobalList.Dialogs
|
@using CouchLog.Components.Pages.GlobalList.Dialogs
|
||||||
|
|
||||||
@inject ApplicationDbContext CouchLogDB
|
@inject ApplicationDbContext CouchLogDb
|
||||||
@inject UserManager<ApplicationUser> UserManager
|
@inject UserManager<ApplicationUser> UserManager
|
||||||
@inject AuthenticationStateProvider AuthenticationStateProvider
|
@inject AuthenticationStateProvider AuthenticationStateProvider
|
||||||
@inject NavigationManager NavigationManager
|
@inject NavigationManager NavigationManager
|
||||||
@inject IDialogService DialogService
|
@inject IDialogService DialogService
|
||||||
|
@inject ISnackbar Snackbar
|
||||||
|
|
||||||
@attribute [Authorize]
|
@attribute [Authorize]
|
||||||
|
|
||||||
<PageTitle>GlobalList</PageTitle>
|
<PageTitle>GlobalList</PageTitle>
|
||||||
|
|
||||||
<MudContainer>
|
<MudContainer MaxWidth="MaxWidth.False">
|
||||||
@*Top of the Page*@
|
@*Top of the Page*@
|
||||||
<MudContainer>
|
<MudContainer>
|
||||||
<MudStack Row="true" AlignItems="AlignItems.Center">
|
<MudStack Row="true" AlignItems="AlignItems.Center">
|
||||||
@@ -33,13 +34,67 @@
|
|||||||
</MudTooltip>
|
</MudTooltip>
|
||||||
</MudStack>
|
</MudStack>
|
||||||
</MudContainer>
|
</MudContainer>
|
||||||
|
<br/>
|
||||||
|
<MudContainer MaxWidth="MaxWidth.False">
|
||||||
|
<MudGrid Spacing="6" Justify="Justify.Center">
|
||||||
|
@foreach (var entity in _globalEntities)
|
||||||
|
{
|
||||||
|
if (!entity.IsPrivate || (entity.IsPrivate && (entity.CreatorId == _appUser?.Id)))
|
||||||
|
{
|
||||||
|
<MudItem xs="12" sm="6" md="4" lg="2">
|
||||||
|
<MudCard>
|
||||||
|
<MudCardMedia Image="@entity.PicturePath" />
|
||||||
|
<MudCardContent>
|
||||||
|
<MudText Typo="Typo.h5">@entity.Title</MudText>
|
||||||
|
</MudCardContent>
|
||||||
|
<MudCardActions>
|
||||||
|
<MudTooltip Text="Add to shared List">
|
||||||
|
<MudIconButton Icon="@Icons.Material.Rounded.People" Color="Color.Primary" OnClick="AddGlobalEntityToSharedList"/>
|
||||||
|
</MudTooltip>
|
||||||
|
<MudTooltip Text="Add to private List">
|
||||||
|
<MudIconButton Icon="@Icons.Material.Rounded.Lock" Color="Color.Primary" />
|
||||||
|
</MudTooltip>
|
||||||
|
</MudCardActions>
|
||||||
|
</MudCard>
|
||||||
|
</MudItem>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</MudGrid>
|
||||||
|
</MudContainer>
|
||||||
</MudContainer>
|
</MudContainer>
|
||||||
|
|
||||||
|
|
||||||
@code
|
@code
|
||||||
{
|
{
|
||||||
|
private ApplicationUser? _appUser;
|
||||||
|
private List<GlobalEntity> _globalEntities = [];
|
||||||
|
private HashSet<int> _userPrivateEntityIds = [];
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
_globalEntities = await CouchLogDb.GlobalEntities.OrderByDescending(entity => entity.CreationTime).ToListAsync();
|
||||||
|
|
||||||
|
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
|
||||||
|
_appUser = await UserManager.GetUserAsync(authState.User);
|
||||||
|
|
||||||
|
if (_appUser is null)
|
||||||
|
{
|
||||||
|
Snackbar.Add("Not authenticated.", Severity.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_userPrivateEntityIds = await CouchLogDb.PrivateEntities
|
||||||
|
.Where(entity => entity.UserId == _appUser.Id)
|
||||||
|
.Select(p => p.GlobalEntityId)
|
||||||
|
.ToHashSetAsync();
|
||||||
|
}
|
||||||
|
|
||||||
private async Task OpenAddNewGlobalEntityDialog()
|
private async Task OpenAddNewGlobalEntityDialog()
|
||||||
{
|
{
|
||||||
var dialog = await DialogService.ShowAsync<AddNewGlobalEntityDialog>("Add new Global Entity");
|
var dialog = await DialogService.ShowAsync<AddNewGlobalEntityDialog>("Add new Global Entity");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task AddGlobalEntityToSharedList()
|
||||||
|
{
|
||||||
|
Snackbar.Add("Feature not implemented yet!", Severity.Error);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+5
-1
@@ -5,6 +5,7 @@ using CouchLog.Components;
|
|||||||
using CouchLog.Components.Account;
|
using CouchLog.Components.Account;
|
||||||
using CouchLog.Data;
|
using CouchLog.Data;
|
||||||
using CouchLog;
|
using CouchLog;
|
||||||
|
using MudBlazor;
|
||||||
using MudBlazor.Services;
|
using MudBlazor.Services;
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
@@ -36,7 +37,10 @@ builder.Services.AddIdentityCore<ApplicationUser>(options => options.SignIn.Requ
|
|||||||
.AddDefaultTokenProviders();
|
.AddDefaultTokenProviders();
|
||||||
|
|
||||||
builder.Services.AddSingleton<IEmailSender<ApplicationUser>, IdentityNoOpEmailSender>();
|
builder.Services.AddSingleton<IEmailSender<ApplicationUser>, IdentityNoOpEmailSender>();
|
||||||
builder.Services.AddMudServices();
|
builder.Services.AddMudServices(config =>
|
||||||
|
{
|
||||||
|
config.SnackbarConfiguration.PositionClass = Defaults.Classes.Position.BottomCenter;
|
||||||
|
});
|
||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user