Sealgen changelog

2024-06-06 • v0.15.17 • 65fec8010eab

The File and Photo control types in forms no longer make the <inputs required if they already have an „old” value. This issue was reported by @ziomek :pray:

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 CollectionFields. 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