The File
and Photo
control types in forms no longer make the <input
s required if they already have an „old” value. This issue was reported by @ziomek ![:pray: :pray:](https://forum.sealcode.org/images/emoji/twitter/pray.png?v=12)
To use the fixed version, run npm install --save @sealcode/sealgen@0.15.17
2024-06-08 • v0.15.18 • ddca246d68
Make it so the isValueValid
method isn’t run on a field if its value is empty. This helps prevent some form errors appearing even if there are no actual errors in the form
2024-06-08 • v0.15.19 • 5db79116
Fix an issue where .parse was not taking empty values into consideration. It used to be the case that empty values were passed to .parse and gave weird results, especially with CollectionFields, where they run a Sealious Field .parse function that assumes the value is not empty.
This change introduces a small change in the field API - now the getValue
function takes an optional third boolean argument. Set it to true to include validation result in the output of the function
v0.15.20
Simplified constructor argument for the Checkbox form control
v0.15.21
Put the error messages of the form in the application log for easier debugging
v0.15.22
Make the debug log more verbose for test errors
v0.15.23
Make the checkboxed list form control not hide label and field errors
1 Like
v0.15.24
-
Add control type to class list of form control containers to help with contextual styling
-
Fix a crash when displaying sealious-list pages that I’ve accidentally introduced yesterday (cc @ziomek). Add tests to prevent regression in that regard
-
Add a new TestOnRealApp
helper. Now you can test sealgen CLI and features on a sealious app end-to-end with a much simplified syntax:
describe("add route test", () => {
it("creates minimal sealious app and adds a simple route that works", async function () {
const test_app = await RealAppTest.init();
const path = "/sample";
await test_app.runSealgenCommand(`add-route --url=${path} --action=Sample --mode=page`);
await test_app.start();
const res = await test_app.httpGet(path);
if (res.status != 200) {
throw new Error("url generated by add-route exists but doesn't return 200");
}
await test_app.close();
}).timeout(100 * 1000);
});
v0.15.25
Add more classes to make styling forms easier
v0.15.26
Show checkboxed-list errors at the top of the list so they don’t get cut out by overflow in certain cases
v0.15.27
Make the form
class use getInitialValues
to populate the form after successful submission. This resolves an issue where after editing a photo in a form the old photo remained visible until the page is refreshed
v0.15.28 and v0.15.29
Changes to how image thumbnail is displayed in image form control. It’s now cropped with SmartCrop to always be a neat square.
v0.15.30
Sealgen now supports FormControls for SingleReference fields in shape of a dropdown with customizable labels.
Use it like so in the controls
array of the form:
new Controls.SingleReferenceDropdown(
fields.article,
{ getLabel: item => item.get("title") }
)
In the above example, fields.article
is a CollectionField
that points to a SingleReference
field.
Implemented by @FilipI and e2e-tested by @kuba-orlik
v0.15.31
Fix the sealious-list template to make auto-generated text
list filters to work with partial matches.
This changes the API for DefaultList filters. You need to change
{ field: "name", render: DefaultListFilters["text"] },
to
{ field: "name", ...DefaultListFilters["text"] },
in filterFields. The ListFilter is now not only a function for rendering the control, but an object that contains the render function and optionally a prepareValue
function. So, in places when you get access to the render function, you need to change
render = DefaultListFilters.fallback;
to
render = DefaultListFilters.fallback.render;
Here you can see the filter in action:
v0.15.32, v0.15.33
The getParsedValues
on form now returns proper TS types when used with CollectionField
s. It also takes into consideration whether or not the field is required
v0.15.34
Added withFallback
method for easier setup of values for forms when some values can be null but shouldn’t from the form’s perspective
v0.15.35
added a Table
Field and Control. It can be used to edit a DeepReverseSingleReference field when the relation between has an attribute, like rank
for sorting, for example
v0.15.36
Add a beta version of the npx sealgen add-crud
command, that automatically creates forms for list/create/edit/delete of items in a given collection
v0.15.40
Made the file
controls in forms use data-turbo-permanent
so the chosen files do not get reset after form submit that results n 422
v0.15.41
Undo the above change and just use turbo-frames for table form controls instead
v0.15.42, v0.15.43
Fix a buf where generate-crud
would fail while building a edit form that includes a File
field type
v0.15.44
Switch to tempstream 0.4.0. Allow for async field control generations within Table
control
v0.15.45
More precise types for DefaultFilters, so it plays more nicely with noUncheckedIndexedAccess typescript setting
v0.15.46
Use appropriate TS flags to properly support Tempstream JSX fragments
v0.15.47
Add a boolean disabled
attribute for StatefulPage’s ActionButton
v0.15.48
Add empty value option to SingleReference dropdown control
v0.15.49
Update the component template to reflect new jdd styles
v0.15.50
Item grouping in checkboxed-list
v0.15.51
Support for .woff2 imports in css