Skip to content

Commit

Permalink
feat(demo): upd forms demo
Browse files Browse the repository at this point in the history
  • Loading branch information
SonicGD committed Jan 16, 2023
1 parent 8488455 commit 7c4bfa8
Show file tree
Hide file tree
Showing 7 changed files with 150 additions and 143 deletions.
4 changes: 0 additions & 4 deletions apps/Sitko.Core.Apps.MudBlazorDemo/Forms/BarForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,5 @@ public void RemoveFoo(FooModel foo)
}

public void DeleteFoo() => Entity.Foo = null;

[Parameter] public RenderFragment<BarForm> ChildContent { get; set; } = null!;

protected override RenderFragment ChildContentFragment => ChildContent(this);
}
}
2 changes: 1 addition & 1 deletion apps/Sitko.Core.Apps.MudBlazorDemo/Pages/Index.razor
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
</MudGrid>

<MudPageLayout Title="@LocalizationProvider["Title"]">
<BarRepositoryList @bind-RowsPerPage="RowsPerPage" OnDataLoaded="CountSummaryAsync" @ref="barList" Class="mb-10" EnableUrlNavigation="true"
<BarRepositoryList @bind-RowsPerPage="rowsPerPage" OnDataLoaded="CountSummaryAsync" @ref="barList" Class="mb-10" EnableUrlNavigation="true"
ConfigureQuery="ConfigureQueryAsync" AddParamsToUrl="AddParamsToUrlAsync"
GetParamsFromUrl="GetParamsFromUrlAsync">
<HeaderContent>
Expand Down
18 changes: 11 additions & 7 deletions apps/Sitko.Core.Apps.MudBlazorDemo/Pages/Index.razor.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components;
Expand All @@ -13,10 +14,11 @@ namespace Sitko.Core.Apps.MudBlazorDemo.Pages
{
public partial class Index
{
private int RowsPerPage = 10;
private int rowsPerPage = 10;
private const string FilterParamId = "id";
private const string FilterParamTitle = "title";
private const string FilterParamDateRange = "dateRange";

[Parameter]
[SupplyParameterFromQuery(Name = FilterParamId)]
public Guid? Id { get; set; }
Expand Down Expand Up @@ -75,9 +77,9 @@ public partial class Index
//

private FilterList FilterList { get; set; } = new();
private MudAutocomplete<BarModel> IdFilterAutocomplete { get; set; }
private MudAutocomplete<BarModel> IdFilterAutocomplete { get; set; } = null!;

[Inject] private BarRepository BarRepository { get; set; }
[Inject] private BarRepository BarRepository { get; set; } = null!;
private (BarModel[] items, int itemsCount) bars;

protected override async Task InitializeAsync()
Expand Down Expand Up @@ -112,11 +114,12 @@ private async Task SearchTitleAsync(string value)
private Task ConfigureQueryAsync(IRepositoryQuery<BarModel> query)
{
query
.Where(p => FilterList.Model == null || FilterList.Model.Id == Guid.Empty || p.Id == FilterList.Model.Id)
.Where(p => FilterList.Model == null || FilterList.Model.Id == Guid.Empty ||
p.Id == FilterList.Model.Id)
.Where(p => string.IsNullOrEmpty(FilterList.Title) || p.Bar == FilterList.Title)
.Where(p => FilterList.DateRange == null ||
p.Date >= new DateTimeOffset((DateTime)FilterList.DateRange.Start).UtcDateTime &&
p.Date <= new DateTimeOffset((DateTime)FilterList.DateRange.End).UtcDateTime);
(p.Date >= new DateTimeOffset((DateTime)FilterList.DateRange.Start!).UtcDateTime &&
p.Date <= new DateTimeOffset((DateTime)FilterList.DateRange.End!).UtcDateTime));

return Task.CompletedTask;
}
Expand Down Expand Up @@ -159,7 +162,8 @@ private Task GetParamsFromUrlAsync()
var dateData = DateRange.Split("-");
if (dateData.Length == 2)
{
FilterList.DateRange = new DateRange(DateTime.Parse(dateData[0]), DateTime.Parse(dateData[1]));
FilterList.DateRange = new DateRange(DateTime.Parse(dateData[0], CultureInfo.InvariantCulture),
DateTime.Parse(dateData[1], CultureInfo.InvariantCulture));
hasChanged = true;
}
}
Expand Down
8 changes: 4 additions & 4 deletions apps/Sitko.Core.Apps.MudBlazorDemo/Pages/Logging.razor
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
@using Thinktecture.Extensions.Configuration
@using Serilog.Events
@inherits BaseComponent
@inject ISerilogConfiguration loggingConfiguration
@inject ISerilogConfiguration LoggingConfiguration
<MudPageLayout Title="Logging">
<MudButton Variant="Variant.Filled" Color="Color.Error" OnClick="@(() => loggingConfiguration.SetLevel(LogEventLevel.Debug))">Set debug</MudButton>
<MudButton Variant="Variant.Filled" Color="Color.Info" OnClick="@(() => loggingConfiguration.SetLevel(LogEventLevel.Information))">Set info</MudButton>
<MudButton Color="Color.Secondary" Variant="Variant.Outlined" OnClick="@(() => loggingConfiguration.ResetLevel())">Reset</MudButton>
<MudButton Variant="Variant.Filled" Color="Color.Error" OnClick="@(() => LoggingConfiguration.SetLevel(LogEventLevel.Debug))">Set debug</MudButton>
<MudButton Variant="Variant.Filled" Color="Color.Info" OnClick="@(() => LoggingConfiguration.SetLevel(LogEventLevel.Information))">Set info</MudButton>
<MudButton Color="Color.Secondary" Variant="Variant.Outlined" OnClick="@(() => LoggingConfiguration.ResetLevel())">Reset</MudButton>
</MudPageLayout>
4 changes: 2 additions & 2 deletions apps/Sitko.Core.Apps.MudBlazorDemo/Pages/Options.razor
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@page "/Options"
@using Sitko.Core.App
@using System.Text.Json
@inject Application application
@inject Application Application
<MudPageLayout Title="Options">
<pre>
@JsonSerializer.Serialize(application.GetModulesOptions(), new JsonSerializerOptions
@JsonSerializer.Serialize(Application.GetModulesOptions(), new JsonSerializerOptions
{
WriteIndented = true
})
Expand Down
217 changes: 110 additions & 107 deletions apps/Sitko.Core.Apps.MudBlazorDemo/Pages/Scopes.razor
Original file line number Diff line number Diff line change
Expand Up @@ -2,122 +2,123 @@
@page "/Bars/{Id:guid}/Edit"
@inherits BaseComponent
<MudPageLayout Title="Edit" Breadcrumbs="Breadcrumbs" Description="Page description">
<BarForm EntityId="Id" Debug="true">
<MudPaper Class="pa-4">
<MudGrid>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Multiple file input</MudText>
<MudTextField Label="Bar" @bind-Value="@context.Entity.Bar" For="() => context.Entity.Bar"></MudTextField>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Edit Foo</MudText>
@if (context.Entity.Foo is not null)
{
<MudTextField Label="Foo" @bind-Value="@context.Entity.Foo.Foo" For="() => context.Entity.Foo.Foo"></MudTextField>
}
<div>
<MudButton Class="mr-3" Variant="Variant.Filled" Color="Color.Primary" OnClick="() => context.SetFoo()">Set foo</MudButton>
<MudButton Color="Color.Warning" Variant="Variant.Filled" OnClick="() => context.DeleteFoo()">Delete foo</MudButton>
</div>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Edit Foos</MudText>
@foreach (var foo in context.Entity.Foos)
{
<MudTextField Label="Foo" @bind-Value="@foo.Foo" For="() => foo.Foo" Class="mt-2"></MudTextField>
<MudButton Size="Size.Small" Color="Color.Warning" Variant="Variant.Filled" Class="mt-2" OnClick="() => context.RemoveFoo(foo)">Remove foo</MudButton>
}
<div>
<MudButton Variant="Variant.Filled" Color="Color.Primary" OnClick="() => context.AddFoo()">Add foo</MudButton>
</div>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Current storage items</MudText>
@if (context.Entity.StorageItem is not null)
{
<MudText>Storage item: @context.Entity.StorageItem</MudText>
}
@foreach (var file in context.Entity.StorageItems)
{
<p>Storage item: @file</p>
}
</MudItem>
<MudItem xs="12">
<Sitko.Core.Blazor.MudBlazorComponents.MudFileUpload
Label="Simple file input"
HelperText="Bla-bla-bla"
Storage="Storage"
@bind-Value="context.Entity.StorageItem"
For="() => context.Entity.StorageItem"
UploadPath="bars"
MaxFileSize="@(2 * 1024 * 1024)"
GenerateMetadata="@((_, _) => GenerateMetadataAsync())">
</Sitko.Core.Blazor.MudBlazorComponents.MudFileUpload>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Simple custom file input</MudText>
<Sitko.Core.Blazor.MudBlazorComponents.MudFileUpload
Storage="Storage"
@bind-Value="context.Entity.StorageItem"
For="() => context.Entity.StorageItem"
UploadPath="bars"
MaxFileSize="@(2 * 1024 * 1024)"
GenerateMetadata="@((_, _) => GenerateMetadataAsync())">
<ChildContent Context="upload">
PRESS ME
</ChildContent>
</Sitko.Core.Blazor.MudBlazorComponents.MudFileUpload>
</MudItem>
<MudItem xs="12">
<MudPaper Class="pa-4">
<BarForm @ref="Form" EntityId="Id" Debug="true">
<ChildContent Context="formContext">
<MudPaper Class="pa-4">
<MudGrid>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Multiple file input</MudText>
<MudFilesUpload
<MudTextField Label="Bar" @bind-Value="@formContext.Entity.Bar" For="() => formContext.Entity.Bar"></MudTextField>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Edit Foo</MudText>
@if (formContext.Entity.Foo is not null)
{
<MudTextField Label="Foo" @bind-Value="@formContext.Entity.Foo.Foo" For="() => formContext.Entity.Foo.Foo"></MudTextField>
}
<div>
<MudButton Class="mr-3" Variant="Variant.Filled" Color="Color.Primary" OnClick="() => Form.SetFoo()">Set foo</MudButton>
<MudButton Color="Color.Warning" Variant="Variant.Filled" OnClick="() => Form.DeleteFoo()">Delete foo</MudButton>
</div>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Edit Foos</MudText>
@foreach (var foo in formContext.Entity.Foos)
{
<MudTextField Label="Foo" @bind-Value="@foo.Foo" For="() => foo.Foo" Class="mt-2"></MudTextField>
<MudButton Size="Size.Small" Color="Color.Warning" Variant="Variant.Filled" Class="mt-2" OnClick="() => Form.RemoveFoo(foo)">Remove foo</MudButton>
}
<div>
<MudButton Variant="Variant.Filled" Color="Color.Primary" OnClick="() => Form.AddFoo()">Add foo</MudButton>
</div>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Current storage items</MudText>
@if (formContext.Entity.StorageItem is not null)
{
<MudText>Storage item: @formContext.Entity.StorageItem</MudText>
}
@foreach (var file in formContext.Entity.StorageItems)
{
<p>Storage item: @file</p>
}
</MudItem>
<MudItem xs="12">
<Sitko.Core.Blazor.MudBlazorComponents.MudFileUpload
Label="Simple file input"
HelperText="Bla-bla-bla"
Storage="Storage"
TCollection="ValueCollection<StorageItem>"
@bind-Value="context.Entity.StorageItems"
For="() => context.Entity.StorageItems"
@bind-Value="formContext.Entity.StorageItem"
For="() => formContext.Entity.StorageItem"
UploadPath="bars"
MaxFileSize="@(2 * 1024 * 1024)"
GenerateMetadata="@((_, _) => GenerateMetadataAsync())"/>

</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Simple custom file input</MudText>
<Sitko.Core.Blazor.MudBlazorComponents.MudFileUpload
Storage="Storage"
@bind-Value="formContext.Entity.StorageItem"
For="() => formContext.Entity.StorageItem"
UploadPath="bars"
MaxFileSize="@(2 * 1024 * 1024)"
GenerateMetadata="@((_, _) => GenerateMetadataAsync())">
</MudFilesUpload>
</MudPaper>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Single image</MudText>
<Sitko.Core.Blazor.MudBlazorComponents.MudFileUpload
Storage="Storage"
DisplayMode="FileUploadDisplayMode.Image"
@bind-Value="context.Entity.StorageItem"
For="() => context.Entity.StorageItem"
UploadPath="bars"
MaxFileSize="@(2 * 1024 * 1024)"
GenerateMetadata="@((_, _) => GenerateMetadataAsync())">
</Sitko.Core.Blazor.MudBlazorComponents.MudFileUpload>
</MudItem>
<MudItem xs="12">
<MudPaper Class="pa-4">
<MudText Typo="Typo.h6" Class="mb-4">Multiple image</MudText>
<MudFilesUpload
<ChildContent Context="_">
PRESS ME
</ChildContent>
</Sitko.Core.Blazor.MudBlazorComponents.MudFileUpload>
</MudItem>
<MudItem xs="12">
<MudPaper Class="pa-4">
<MudText Typo="Typo.h6" Class="mb-4">Multiple file input</MudText>
<MudFilesUpload
Storage="Storage"
TCollection="ValueCollection<StorageItem>"
@bind-Value="formContext.Entity.StorageItems"
For="() => formContext.Entity.StorageItems"
UploadPath="bars"
MaxFileSize="@(2 * 1024 * 1024)"
GenerateMetadata="@((_, _) => GenerateMetadataAsync())"/>

</MudPaper>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.h6" Class="mb-4">Single image</MudText>
<Sitko.Core.Blazor.MudBlazorComponents.MudFileUpload
Storage="Storage"
TCollection="ValueCollection<StorageItem>"
DisplayMode="FileUploadDisplayMode.Image"
@bind-Value="context.Entity.StorageItems"
For="() => context.Entity.StorageItems"
@bind-Value="formContext.Entity.StorageItem"
For="() => formContext.Entity.StorageItem"
UploadPath="bars"
MaxAllowedFiles="5"
MaxFileSize="@(2 * 1024 * 1024)"
GenerateMetadata="@((_, _) => GenerateMetadataAsync())">
</MudFilesUpload>
</MudPaper>
</MudItem>
<MudItem xs="12">
<MudPaper Class="mt-2 pa-3">
<MudButton Variant="Variant.Filled" Color="Color.Primary" Disabled="@(!context.CanSave())" OnClick="@context.SaveEntityAsync">Save</MudButton>
<MudButton Variant="Variant.Outlined" Color="Color.Secondary" Disabled="@(!context.HasChanges)" OnClick="@context.ResetAsync">Reset</MudButton>
</MudPaper>
</MudItem>
</MudGrid>
</MudPaper>
GenerateMetadata="@((_, _) => GenerateMetadataAsync())"/>

</MudItem>
<MudItem xs="12">
<MudPaper Class="pa-4">
<MudText Typo="Typo.h6" Class="mb-4">Multiple image</MudText>
<MudFilesUpload
Storage="Storage"
TCollection="ValueCollection<StorageItem>"
DisplayMode="FileUploadDisplayMode.Image"
@bind-Value="formContext.Entity.StorageItems"
For="() => formContext.Entity.StorageItems"
UploadPath="bars"
MaxAllowedFiles="5"
MaxFileSize="@(2 * 1024 * 1024)"
GenerateMetadata="@((_, _) => GenerateMetadataAsync())"/>
</MudPaper>
</MudItem>
<MudItem xs="12">
<MudPaper Class="mt-2 pa-3">
<MudButton Variant="Variant.Filled" Color="Color.Primary" Disabled="@(!formContext.Form.CanSave())" OnClick="@formContext.Form.SaveEntityAsync">Save</MudButton>
<MudButton Variant="Variant.Outlined" Color="Color.Secondary" Disabled="@(!formContext.Form.HasChanges)" OnClick="@formContext.Form.ResetAsync">Reset</MudButton>
</MudPaper>
</MudItem>
</MudGrid>
</MudPaper>
</ChildContent>
</BarForm>
</MudPageLayout>

Expand All @@ -140,4 +141,6 @@
new BreadcrumbItem("Bar", "/")
};

private BarForm Form { get; set; } = null!;

}
Loading

0 comments on commit 7c4bfa8

Please sign in to comment.