From 5180b962a489319eb7137b6909cf6fda13c3a6be Mon Sep 17 00:00:00 2001 From: Amir Pournasserian Date: Mon, 19 Oct 2026 04:31:56 -0400 Subject: [PATCH] Add generated forms for content types, saved as a person's change set --- .../Components/Forms/FieldWidget.razor | 78 ++++++ .../Components/Layout/MainLayout.razor | 1 + .../Components/Pages/ChangeSetView.razor | 1 + .../Components/Pages/ContentTypesView.razor | 49 ++++ .../Components/Pages/EntriesView.razor | 102 +++++++ .../Components/Pages/EntryEditor.razor | 258 ++++++++++++++++++ src/FluentCMS.Admin/Forms/EntryFormModel.cs | 22 ++ src/FluentCMS.Admin/Forms/FieldValues.cs | 123 +++++++++ src/FluentCMS.Core/Content/EntryEdits.cs | 66 +++++ src/FluentCMS.Core/Content/IEntryEdits.cs | 17 ++ .../CoreServiceCollectionExtensions.cs | 4 + .../Browser/AccessibilityTests.cs | 2 +- .../Forms/EntryEditsTests.cs | 81 ++++++ .../Forms/EntryFormScreenTests.cs | 189 +++++++++++++ .../Admin/GeneratedFormTests.cs | 109 ++++++++ 15 files changed, 1101 insertions(+), 1 deletion(-) create mode 100644 src/FluentCMS.Admin/Components/Forms/FieldWidget.razor create mode 100644 src/FluentCMS.Admin/Components/Pages/ContentTypesView.razor create mode 100644 src/FluentCMS.Admin/Components/Pages/EntriesView.razor create mode 100644 src/FluentCMS.Admin/Components/Pages/EntryEditor.razor create mode 100644 src/FluentCMS.Admin/Forms/EntryFormModel.cs create mode 100644 src/FluentCMS.Admin/Forms/FieldValues.cs create mode 100644 src/FluentCMS.Core/Content/EntryEdits.cs create mode 100644 src/FluentCMS.Core/Content/IEntryEdits.cs create mode 100644 tests/FluentCMS.IntegrationTests/Forms/EntryEditsTests.cs create mode 100644 tests/FluentCMS.IntegrationTests/Forms/EntryFormScreenTests.cs create mode 100644 tests/FluentCMS.Tests/Admin/GeneratedFormTests.cs diff --git a/src/FluentCMS.Admin/Components/Forms/FieldWidget.razor b/src/FluentCMS.Admin/Components/Forms/FieldWidget.razor new file mode 100644 index 000000000..3456566a9 --- /dev/null +++ b/src/FluentCMS.Admin/Components/Forms/FieldWidget.razor @@ -0,0 +1,78 @@ +@using FluentCMS.Admin.Forms +@using FluentCMS.Core.Schema +@inject IStringLocalizer L + +@* One field of a generated form (FRM-01): the widget its type takes, inside a FormField with the field's description and error. *@ + + @switch (Field.Type) + { + case "boolean": +
+ +
+ break; + case "richText": +