Skip to content

Commit

Permalink
fluentcms#2210 Add validation for content type field settings (fluent…
Browse files Browse the repository at this point in the history
  • Loading branch information
TheHadiAhmadi authored Oct 30, 2024
1 parent 9005840 commit f107802
Show file tree
Hide file tree
Showing 11 changed files with 60 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<FormHiddenInput @bind-Value="Model.Type" />
<FormInput @bind-Value="Model.Name" Cols="6" Label="Name" Placeholder="Enter Field Name" Required Disabled="@(CurrentState != FieldManagementState.Create)" />
<FormInput @bind-Value="Model.Label" Cols="6" Label="Label" Placeholder="Enter Field Label" Required />
<FormTextarea @bind-Value="Model.Description" Label="Description" Placeholder="Enter Field Description" />
<FormTextarea @bind-Value="Model.Description" Required Label="Description" Placeholder="Enter Field Description" />
</Grid>
</TabPanel>
<TabPanel Name="View">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
<FormHiddenInput @bind-Value="Model.Type" />
<FormInput @bind-Value="Model.Name" Cols="6" Label="Name" Placeholder="Enter Field Name" Required Disabled="@(CurrentState != FieldManagementState.Create)" />
<FormInput @bind-Value="Model.Label" Cols="4" Label="Label" Placeholder="Enter Field Label" Required />
<FormSwitch @bind-Value="ContentTypeField!.Required" Cols="2" Label="Required" Required />
<FormInput @bind-Value="Model.Placeholder" Label="Placeholder" Placeholder="Enter Field Placeholder" Required />
<FormTextarea @bind-Value="Model.Description" Label="Description" Placeholder="Enter Field Description" />
<FormSwitch @bind-Value="ContentTypeField!.Required" Cols="2" Label="Required" />
<FormInput @bind-Value="Model.Placeholder" Label="Placeholder" Placeholder="Enter Field Placeholder" />
<FormTextarea @bind-Value="Model.Description" Required Label="Description" Placeholder="Enter Field Description" />
</Grid>
</TabPanel>
<TabPanel Name="View">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
@if (Model != null)
{
<EditForm Model="@Model" OnSubmit="OnFormSubmit">
<Modal Size="ModalSize.Large">
<DataAnnotationsValidator />
<Modal Placement="ModalPlacement.Top" Size="ModalSize.Large">
<ModalHeader Closable OnClose="OnCancel">
<ModalTitle Visible="@(CurrentState == FieldManagementState.Create)">
Create New Field@* New @FieldType?.Title Field *@
Expand All @@ -14,8 +15,13 @@
</ModalTitle>
</ModalHeader>
<ModalBody>
<DataAnnotationsValidator />
@ChildContent
<Alert Visible="Errors.Count > 0" Type="AlertType.Danger">
@foreach (var error in Errors)
{
<p>@error</p>
}
</Alert>
</ModalBody>
<ModalFooter>
<FormActions>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,23 @@ public partial class FieldSettingForm
[Parameter]
public RenderFragment ChildContent { get; set; } = default!;

private List<string> Errors { get; set; } = [];

protected async Task OnFormSubmit()
{
await OnSubmit.InvokeAsync();
try
{
await OnSubmit.InvokeAsync();
}
catch (ApiClientException ex)
{
Errors = ex.ApiResult?.Errors?.Select(x => $"{x.Code ?? string.Empty}: {x.Description ?? string.Empty}").ToList() ?? [ex.Message];
StateHasChanged();
}
catch (Exception ex)
{
Errors = [ex.Message];
StateHasChanged();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
<FormHiddenInput @bind-Value="Model.Type" />
<FormInput @bind-Value="Model.Name" Cols="6" Label="Name" Placeholder="Enter Field Name" Required Disabled="@(CurrentState != FieldManagementState.Create)" />
<FormInput @bind-Value="Model.Label" Cols="4" Label="Label" Placeholder="Enter Field Label" Required />
<FormSwitch @bind-Value="ContentTypeField!.Required" Cols="2" Label="Required" Required />
<FormTextarea @bind-Value="Model.Description" Label="Description" Placeholder="Enter Field Description" />
<FormSwitch @bind-Value="ContentTypeField!.Required" Cols="2" Label="Required" />
<FormTextarea @bind-Value="Model.Description" Required Label="Description" Placeholder="Enter Field Description" />
</Grid>
</TabPanel>
<TabPanel Name="View">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
<FormHiddenInput @bind-Value="Model.Type" />
<FormInput @bind-Value="Model.Name" Cols="6" Label="Name" Placeholder="Enter Field Name" Required Disabled="@(CurrentState != FieldManagementState.Create)" />
<FormInput @bind-Value="Model.Label" Cols="4" Label="Label" Placeholder="Enter Field Label" Required />
<FormSwitch @bind-Value="ContentTypeField!.Required" Cols="2" Label="Required" Required />
<FormSwitch @bind-Value="ContentTypeField!.Required" Cols="2" Label="Required" />
<FormNumberInput @bind-Value="Model.MinimumValue" Min="0" Cols="6" Label="Minimum Value" Placeholder="Enter Minimum value" />
<FormNumberInput @bind-Value="Model.MaximumValue" Min="0" Cols="6" Label="Maximum Value" Placeholder="Enter Maximum value" />
<FormInput @bind-Value="Model.Placeholder" Label="Placeholder" Placeholder="Enter Field Placeholder" Required />
<FormTextarea @bind-Value="Model.Description" Label="Description" Placeholder="Enter Field Description" />
<FormInput @bind-Value="Model.Placeholder" Label="Placeholder" Placeholder="Enter Field Placeholder" />
<FormTextarea @bind-Value="Model.Description" Required Label="Description" Placeholder="Enter Field Description" />
</Grid>
</TabPanel>
<TabPanel Name="View">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
<FormHiddenInput @bind-Value="Model.Type" />
<FormInput @bind-Value="Model.Name" Cols="6" Label="Name" Placeholder="Enter Field Name" Required Disabled="@(CurrentState != FieldManagementState.Create)" />
<FormInput @bind-Value="Model.Label" Cols="4" Label="Label" Placeholder="Enter Field Label" Required />
<FormSwitch @bind-Value="ContentTypeField!.Required" Cols="2" Label="Required" Required />
<FormInput @bind-Value="Model.Placeholder" Label="Placeholder" Placeholder="Enter Field Placeholder" Required />
<FormTextarea @bind-Value="Model.Description" Label="Description" Placeholder="Enter Field Description" />
<FormSwitch @bind-Value="ContentTypeField!.Required" Cols="2" Label="Required" />
<FormInput @bind-Value="Model.Placeholder" Label="Placeholder" Placeholder="Enter Field Placeholder" />
<FormTextarea @bind-Value="Model.Description" Required Label="Description" Placeholder="Enter Field Description" />
</Grid>
</TabPanel>
<TabPanel Name="View">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
<FormHiddenInput @bind-Value="Model.Type" />
<FormInput @bind-Value="Model.Name" Cols="6" Label="Name" Placeholder="Enter Field Name" Required Disabled="@(CurrentState != FieldManagementState.Create)" />
<FormInput @bind-Value="Model.Label" Cols="4" Label="Label" Placeholder="Enter Field Label" Required />
<FormSwitch @bind-Value="Model.Required" Cols="2" Label="Required" Required />
<FormTextarea @bind-Value="Model.Description" Label="Description" Placeholder="Enter Field Description" />
<FormSwitch @bind-Value="Model.Required" Cols="2" Label="Required" />
<FormTextarea @bind-Value="Model.Description" Required Label="Description" Placeholder="Enter Field Description" />
</Grid>
</TabPanel>
<TabPanel Name="View">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
<FormHiddenInput @bind-Value="Model.Type" />
<FormInput @bind-Value="Model.Name" Cols="6" Label="Name" Placeholder="Enter Field Name" Required Disabled="@(CurrentState != FieldManagementState.Create)" />
<FormInput @bind-Value="Model.Label" Cols="4" Label="Label" Placeholder="Enter Field Label" Required />
<FormSwitch @bind-Value="ContentTypeField!.Required" Cols="2" Label="Required" Required />
<FormSwitch @bind-Value="ContentTypeField!.Required" Cols="2" Label="Required" />
<FormNumberInput @bind-Value="Model.MinimumLength" Min="0" Cols="6" Label="Minimum Length" Placeholder="Enter Minimum Length" />
<FormNumberInput @bind-Value="Model.MaximumLength" Min="0" Cols="6" Label="Maximum Length" Placeholder="Enter Maximum Length" />
<FormInput @bind-Value="Model.Placeholder" Label="Placeholder" Placeholder="Enter Field Placeholder" Required />
<FormTextarea @bind-Value="Model.Description" Label="Description" Placeholder="Enter Field Description" />
<FormInput @bind-Value="Model.Placeholder" Label="Placeholder" Placeholder="Enter Field Placeholder" />
<FormTextarea @bind-Value="Model.Description" Required Label="Description" Placeholder="Enter Field Description" />
</Grid>
</TabPanel>
<TabPanel Name="View">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,26 @@
namespace FluentCMS.Web.Plugins.Admin.ContentTypeManagement;
public interface IFieldModel
{
[Required]
public string Name { get; set; }
public string Type { get; set; }
public bool Required { get; set; }
public bool Unique { get; set; }

[Required]
public string Description { get; set; }
public int DataTableColumnOrder { get; set; }
public bool DataTableVisible { get; set; }

[Required]
public string DataTableViewComponent { get; set; }
public int FormViewOrder { get; set; }
public int FormColWidth { get; set; }

[Required]
public string FormViewComponent { get; set; }

[Required]
public string Label { get; set; }
}

Expand All @@ -22,17 +31,26 @@ public interface IFieldModel<T> : IFieldModel

public abstract class FieldModel<T> : IFieldModel<T>
{
[Required]
public string Name { get; set; } = string.Empty;
public abstract string Type { get; set; }
public bool Required { get; set; }
public bool Unique { get; set; }

[Required]
public string Description { get; set; } = string.Empty;
public int DataTableColumnOrder { get; set; } = 0;
public bool DataTableVisible { get; set; } = true;

[Required]
public string DataTableViewComponent { get; set; } = default!;
public int FormViewOrder { get; set; } = 0;
public int FormColWidth { get; set; } = 12;

[Required]
public string FormViewComponent { get; set; } = default!;

[Required]
public string Label { get; set; } = string.Empty;
public T DefaultValue { get; set; } = default!;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
global using Microsoft.AspNetCore.Components;
global using Microsoft.AspNetCore.Components.Forms;
global using Microsoft.AspNetCore.Http;
global using System.ComponentModel.DataAnnotations;

0 comments on commit f107802

Please sign in to comment.