Skip to content

Releases: relaticle/custom-fields

v3.9.0

Choose a tag to compare

@ManukMinasyan ManukMinasyan released this 28 Aug 11:17
be43d73

What's Changed

Other Changes

  • chore(deps-dev): bump the npm group across 1 directory with 9 updates by @dependabot[bot] in #204
  • fix(imports): report every invalid cell instead of aborting the row or silently guessing by @ManukMinasyan in #206

Full Changelog: v3.8.0...v3.9.0

v3.8.0

Choose a tag to compare

@ManukMinasyan ManukMinasyan released this 20 Aug 20:34
ad3a148

Deterministic record lookups, a configurable search minimum, and an option-count threshold for option-backed selects. All three are reachable from a new selects config block, so 3.7 behaviour can be restored exactly.

Deterministic record lookups

RecordSelectInputComponent ran limit(50) with no orderBy, so the initial page was whatever the database returned and could differ between two renders of the same form. It now orders by the model key descending, which is deterministic and backed by the primary key index.

Measured on a seeded 50,000-row tenant with EXPLAIN (ANALYZE, BUFFERS):

Variant Plan Time Shared buffers
Model key desc (the new default) Index Scan Backward on the primary key 0.036 ms 7
No ORDER BY (3.7 behaviour) Seq Scan stops at 50 rows 0.043 ms 4
updated_at desc, id desc Seq Scan 50,004 rows, top-N heapsort, Limit 7.59 ms 822

Determinism therefore costs nothing. Set record_lookup.order_column to 'updated_at' if you prefer most-recently-touched-first, and index that column when the lookup table is large. A configured column always gets the model key appended as a tiebreaker.

Minimum search length, configurable end to end

getSearchResultsForJs() returned [] below 2 characters. It now returns the unfiltered first page, and the minimum comes from record_lookup.min_search_length rather than a literal. The field's JavaScript reads the same value, so raising the minimum can no longer leave the client asking for a filtered search that the server answers with an unfiltered page.

Search box only above an option-count threshold (behaviour change)

SelectComponent and MultiSelectComponent called ->searchable() unconditionally, so a three-option status field rendered a search box above three items. They now gate on option count, default 10.

This is a taste change, not a bug fix. It carries no performance benefit: filtering for static options already happened client-side at zero server cost. The only effect is that the search box disappears on small option sets.

Opt-out: set custom-fields.selects.searchable_threshold to 0 to always render the search box, which is exactly the pre-3.8 behaviour.

Config

'selects' => [
    'searchable_threshold' => 10,   // 0 always shows the search box (pre-3.8 behaviour)

    'record_lookup' => [
        'order_column' => null,     // null means the model key, index-backed
        'order_direction' => 'desc',
        'limit' => 50,
        'min_search_length' => 2,
    ],
],

Consumers who published config/custom-fields.php before 3.8 do not have this block. Every read passes the same value as its default, so nothing breaks and the new defaults apply.

Full Changelog: v3.7.0...v3.8.0

v3.7.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 17:25
a33e3a3

What's Changed

Other Changes

Full Changelog: v3.6.3...v3.7.0

v3.6.3

Choose a tag to compare

@ManukMinasyan ManukMinasyan released this 13 Aug 14:05
a7f5855

What's Changed

Other Changes

  • fix: keep a persisted field's code stable when its name is renamed [3.x] by @ManukMinasyan in #201

Full Changelog: v3.6.2...v3.6.3

v3.6.2

Choose a tag to compare

@ManukMinasyan ManukMinasyan released this 12 Aug 18:09
926f37c

What's Changed

Other Changes

Full Changelog: v3.6.1...v3.6.2

v3.6.1

Choose a tag to compare

@ManukMinasyan ManukMinasyan released this 08 Aug 14:17
fcd2b99

What's Changed

Other Changes

  • chore(deps): bump brace-expansion from 2.1.1 to 2.1.4 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #194
  • chore(deps): bump ip-address from 10.2.0 to 10.4.0 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #195
  • chore(deps): bump the npm_and_yarn group across 2 directories with 5 updates by @dependabot[bot] in #196
  • chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #199
  • perf: reuse eager-loaded relations in forModel via loadMissing by @MACscr in #197
  • feat: section-scoped custom field resolution by @ManukMinasyan in #198

New Contributors

Full Changelog: v3.6.0...v3.6.1

v3.6.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 19:46
1a1bb5e

What's Changed

Other Changes

  • chore(deps): bump tar from 7.5.20 to 7.5.22 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #191
  • fix: apply presence rule to custom field validation on import [3.x] by @ManukMinasyan in #192
  • fix: only save custom fields the imported row carried [3.x] by @ManukMinasyan in #193

Full Changelog: v3.5.5...v3.6.0

v3.5.5

Choose a tag to compare

@ManukMinasyan ManukMinasyan released this 28 Jul 11:53
97f3091

What's Changed

Other Changes

  • feat: add section-level width control (UI_SECTION_WIDTH_CONTROL) by @ManukMinasyan in #181
  • chore(deps): bump the npm_and_yarn group across 2 directories with 3 updates by @dependabot[bot] in #183
  • chore(deps): bump the npm_and_yarn group across 1 directory with 3 updates by @dependabot[bot] in #184
  • chore(deps): bump actions/setup-node from 6 to 7 by @dependabot[bot] in #182
  • chore(deps): bump hono from 4.12.25 to 4.12.31 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #185
  • chore(deps): bump the npm_and_yarn group across 2 directories with 3 updates by @dependabot[bot] in #186
  • fix: generate cloned container schemas from the evaluated component by @ManukMinasyan in #188
  • chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #187
  • fix: resync docs lockfile so the docs deploy can install again by @ManukMinasyan in #190
  • chore(deps): bump @hono/node-server from 1.19.13 to 2.0.12 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #189

Full Changelog: v3.5.4...v3.5.5

v3.5.4

Choose a tag to compare

@github-actions github-actions released this 15 Jul 21:35

What's Changed

Other Changes

  • chore: apply rector 2.5.7 auto-fixes by @ManukMinasyan in #180
  • fix(forms): resolve dependent fields via CoreVisibilityLogicService (fixes #149 strict-mode crash) by @crossi-dev in #167

New Contributors

Full Changelog: v3.5.3...v3.5.4

v3.5.3

Choose a tag to compare

@github-actions github-actions released this 01 Jul 16:32
c9f9f9e

What's Changed

Other Changes

  • fix: keep multi-choice visibleJs expressions attribute-safe and id-typed by @ManukMinasyan in #178

Full Changelog: v3.5.2...v3.5.3