@asteby/metacore-runtime-react 28.3.4 → 28.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @asteby/metacore-runtime-react
2
2
 
3
+ ## 28.3.6
4
+
5
+ ### Patch Changes
6
+
7
+ - c3f781e: Ocultar columnas de auditoría/redundantes en las sub-tablas de líneas del modal de vista.
8
+
9
+ Las sub-tablas de relaciones (`DynamicRelation` one_to_many — "Líneas del pedido", etc.) ahora respetan la `visibility` de cada columna con criterio de modal: una columna declarada `visibility: "table"` (o `"list"`) NO aparece en la sub-tabla del modal, aunque siga visible en la tabla principal `/m/<model>`. Además, las columnas de auditoría (`created_by`, `updated_by`, `created_at`, `updated_at`, `deleted_at`, `organization_id`) se ocultan por defecto en ese contexto por ser ruido bajo el registro padre; un manifest puede volver a mostrarlas declarando una `visibility` explícita (`"all"`/`"modal"`) en la columna.
10
+
11
+ Nuevos helpers exportados: `isColumnVisibleInModal`, `isColumnVisibleInLineSubtable` y `AUDIT_SUBTABLE_COLUMN_KEYS`.
12
+
13
+ ## 28.3.5
14
+
15
+ ### Patch Changes
16
+
17
+ - ca3b27f: Subida de imágenes arreglada: el UploadField posteaba a `/uploads` (el host
18
+ sirve `/upload`) → 404. Además el subfolder declarado por campo
19
+ (`storage_path` en el manifest) ahora se manda también como `folder`, que es
20
+ el parámetro que lee el host — antes toda subida caía en la carpeta por
21
+ defecto.
22
+
3
23
  ## 28.3.4
4
24
 
5
25
  ### Patch Changes
@@ -9,6 +9,37 @@ import type { ColumnDefinition, TableMetadata } from './types';
9
9
  * by older kernels that don't set `visibility` at all.
10
10
  */
11
11
  export declare function isColumnVisibleInTable(col: ColumnDefinition): boolean;
12
+ /**
13
+ * Whether a column should render in a MODAL context — the create/edit/view
14
+ * dialog. Mirror image of {@link isColumnVisibleInTable}: a column scoped to
15
+ * `'table'` (list-only) or `'list'` (API-only) is hidden here, while empty /
16
+ * `'all'` / `'modal'` keep it visible. Preserves zero-value behaviour for
17
+ * metadata emitted by older kernels that never set `visibility`.
18
+ */
19
+ export declare function isColumnVisibleInModal(col: ColumnDefinition): boolean;
20
+ /**
21
+ * Audit / system columns that are pure noise inside a child line list rendered
22
+ * under a parent record (line items, one_to_many panels in the view modal):
23
+ * they are either constant for the parent (`organization_id`) or already
24
+ * obvious from the parent record (`created_by`, timestamps). Hidden by default
25
+ * in that context — see {@link isColumnVisibleInLineSubtable}.
26
+ */
27
+ export declare const AUDIT_SUBTABLE_COLUMN_KEYS: readonly string[];
28
+ /**
29
+ * Column visibility decision for a sub-table of lines/relations rendered inside
30
+ * the view modal of a parent record. Two rules on top of the modal criterion:
31
+ *
32
+ * 1. Respect `visibility`: a column scoped to `'table'`/`'list'` never shows
33
+ * here (reuses {@link isColumnVisibleInModal}), so a manifest hides a
34
+ * redundant column from the sub-table with `visibility: "table"`.
35
+ * 2. Audit columns ({@link AUDIT_SUBTABLE_COLUMN_KEYS}) are hidden BY DEFAULT
36
+ * — unless the manifest explicitly opts them back in by declaring a
37
+ * `visibility` (`'all'`/`'modal'`) on that column.
38
+ *
39
+ * Only applies to the embedded child-list context; the main `/m/<model>` table
40
+ * uses {@link isColumnVisibleInTable} and is unaffected.
41
+ */
42
+ export declare function isColumnVisibleInLineSubtable(col: ColumnDefinition): boolean;
12
43
  /**
13
44
  * Returns the keys of columns that opt into the model's full-text search,
14
45
  * or `null` when no column declares `searchable` at all.
@@ -1 +1 @@
1
- {"version":3,"file":"column-visibility.d.ts","sourceRoot":"","sources":["../src/column-visibility.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAKrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GACzC,MAAM,EAAE,GAAG,IAAI,CAKjB"}
1
+ {"version":3,"file":"column-visibility.d.ts","sourceRoot":"","sources":["../src/column-visibility.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAKrE;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAKrE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAOvD,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAI5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GACzC,MAAM,EAAE,GAAG,IAAI,CAKjB"}
@@ -22,6 +22,57 @@ export function isColumnVisibleInTable(col) {
22
22
  return true;
23
23
  return v === 'all' || v === 'table';
24
24
  }
25
+ /**
26
+ * Whether a column should render in a MODAL context — the create/edit/view
27
+ * dialog. Mirror image of {@link isColumnVisibleInTable}: a column scoped to
28
+ * `'table'` (list-only) or `'list'` (API-only) is hidden here, while empty /
29
+ * `'all'` / `'modal'` keep it visible. Preserves zero-value behaviour for
30
+ * metadata emitted by older kernels that never set `visibility`.
31
+ */
32
+ export function isColumnVisibleInModal(col) {
33
+ if (col.hidden)
34
+ return false;
35
+ const v = col.visibility;
36
+ if (!v)
37
+ return true;
38
+ return v === 'all' || v === 'modal';
39
+ }
40
+ /**
41
+ * Audit / system columns that are pure noise inside a child line list rendered
42
+ * under a parent record (line items, one_to_many panels in the view modal):
43
+ * they are either constant for the parent (`organization_id`) or already
44
+ * obvious from the parent record (`created_by`, timestamps). Hidden by default
45
+ * in that context — see {@link isColumnVisibleInLineSubtable}.
46
+ */
47
+ export const AUDIT_SUBTABLE_COLUMN_KEYS = [
48
+ 'created_by',
49
+ 'updated_by',
50
+ 'created_at',
51
+ 'updated_at',
52
+ 'deleted_at',
53
+ 'organization_id',
54
+ ];
55
+ /**
56
+ * Column visibility decision for a sub-table of lines/relations rendered inside
57
+ * the view modal of a parent record. Two rules on top of the modal criterion:
58
+ *
59
+ * 1. Respect `visibility`: a column scoped to `'table'`/`'list'` never shows
60
+ * here (reuses {@link isColumnVisibleInModal}), so a manifest hides a
61
+ * redundant column from the sub-table with `visibility: "table"`.
62
+ * 2. Audit columns ({@link AUDIT_SUBTABLE_COLUMN_KEYS}) are hidden BY DEFAULT
63
+ * — unless the manifest explicitly opts them back in by declaring a
64
+ * `visibility` (`'all'`/`'modal'`) on that column.
65
+ *
66
+ * Only applies to the embedded child-list context; the main `/m/<model>` table
67
+ * uses {@link isColumnVisibleInTable} and is unaffected.
68
+ */
69
+ export function isColumnVisibleInLineSubtable(col) {
70
+ if (!isColumnVisibleInModal(col))
71
+ return false;
72
+ if (!col.visibility && AUDIT_SUBTABLE_COLUMN_KEYS.includes(col.key))
73
+ return false;
74
+ return true;
75
+ }
25
76
  /**
26
77
  * Returns the keys of columns that opt into the model's full-text search,
27
78
  * or `null` when no column declares `searchable` at all.
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-relation.d.ts","sourceRoot":"","sources":["../src/dynamic-relation.tsx"],"names":[],"mappings":"AA+DA,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EACH,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,cAAc,GACjB,MAAM,4BAA4B,CAAA;AAEnC,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,wBAAwB,EAAE,MAAM,CAAA;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,WAAW,EAAE,MAAM,CAAA;CACtB;AAiBD,UAAU,WAAW;IACjB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACzC,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,6BAA8B,SAAQ,WAAW;IAC9D,IAAI,EAAE,aAAa,CAAA;IACnB,yFAAyF;IACzF,KAAK,EAAE,MAAM,CAAA;IACb,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,8BAA+B,SAAQ,WAAW;IAC/D,IAAI,EAAE,cAAc,CAAA;IACpB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAA;IAClB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,oBAAoB,GAC1B,6BAA6B,GAC7B,8BAA8B,CAAA;AAEpC,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,+BAK1D"}
1
+ {"version":3,"file":"dynamic-relation.d.ts","sourceRoot":"","sources":["../src/dynamic-relation.tsx"],"names":[],"mappings":"AAgEA,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EACH,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,cAAc,GACjB,MAAM,4BAA4B,CAAA;AAEnC,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,wBAAwB,EAAE,MAAM,CAAA;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,WAAW,EAAE,MAAM,CAAA;CACtB;AAiBD,UAAU,WAAW;IACjB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACzC,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,6BAA8B,SAAQ,WAAW;IAC9D,IAAI,EAAE,aAAa,CAAA;IACnB,yFAAyF;IACzF,KAAK,EAAE,MAAM,CAAA;IACb,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,8BAA+B,SAAQ,WAAW;IAC/D,IAAI,EAAE,cAAc,CAAA;IACpB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAA;IAClB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,oBAAoB,GAC1B,6BAA6B,GAC7B,8BAA8B,CAAA;AAEpC,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,+BAK1D"}
@@ -16,6 +16,7 @@ import { DynamicForm } from './dynamic-form';
16
16
  import { useImageUrl } from './image-url-context';
17
17
  import { useTimeZone, useCurrency } from './org-runtime-context';
18
18
  import { makeDefaultGetDynamicColumns } from './dynamic-columns';
19
+ import { isColumnVisibleInLineSubtable } from './column-visibility';
19
20
  import { useOptionsResolver } from './use-options-resolver';
20
21
  import { buildCreatePayload, buildPivotAttachPayload, buildPivotRowIndex, buildRelationFilterParams, deriveRelationFormFields, diffSelection, extractSelectedTargetIds, pickOptionLabel, relationRowKey, } from './dynamic-relation-helpers';
21
22
  export { buildCreatePayload, buildPivotAttachPayload, buildPivotRowIndex, buildRelationFilterParams, deriveRelationFormFields, diffSelection, extractSelectedTargetIds, formatRelationCell, objectLabel, pickOptionLabel, relationRowKey, } from './dynamic-relation-helpers';
@@ -101,7 +102,10 @@ function OneToManyRelation({ kind, model, foreignKey, parentId, filters, endpoin
101
102
  // Hide the FK and every scope column — they're fixed for this parent and
102
103
  // would just render the same value on every row.
103
104
  const hidden = new Set([foreignKey, ...Object.keys(filters || {}), ...hiddenColumns]);
104
- return metadata.columns.filter(c => !hidden.has(c.key) && !c.hidden);
105
+ // isColumnVisibleInLineSubtable additionally drops `hidden`/table-scoped
106
+ // columns AND the audit/system noise (created_by, timestamps, org_id)
107
+ // that's redundant under a parent record — see column-visibility.ts.
108
+ return metadata.columns.filter(c => !hidden.has(c.key) && isColumnVisibleInLineSubtable(c));
105
109
  }, [metadata, foreignKey, filtersKey, hiddenColumns]);
106
110
  // Reuse the EXACT column factory the main `<DynamicTable>` uses so each cell
107
111
  // renders identically — money in the org currency right-aligned, FK chips
package/dist/index.d.ts CHANGED
@@ -49,7 +49,7 @@ export { DynamicCRUDPage, type DynamicCRUDPageProps, type DynamicCRUDPageStrings
49
49
  export { DynamicRelation, type DynamicRelationProps, type DynamicRelationStrings, type DynamicRelationKind, buildRelationFilterParams, buildCreatePayload, deriveRelationFormFields, relationRowKey, } from './dynamic-relation';
50
50
  export { DynamicRelations, resolveParentId, buildRelationFilters, type DynamicRelationsProps, } from './dynamic-relations';
51
51
  export { registerModelExtension, getModelExtension, clearModelExtensions, type ModelExtension, type ModelExtensionProps, } from './model-extension-registry';
52
- export { isColumnVisibleInTable, getSearchableColumnKeys, } from './column-visibility';
52
+ export { isColumnVisibleInTable, isColumnVisibleInModal, isColumnVisibleInLineSubtable, AUDIT_SUBTABLE_COLUMN_KEYS, getSearchableColumnKeys, } from './column-visibility';
53
53
  export { useOptionsResolver, projectOption, type ResolvedOption, type OptionsMeta, type UseOptionsResolverArgs, type UseOptionsResolverResult, } from './use-options-resolver';
54
54
  export { setOrgConfigBridge, getOrgConfigBridge, resolveValidatorToken, type OrgConfigBridge, } from './use-org-config-bridge';
55
55
  export { registerValidator, getDependsOn, resolveDependsValue, getOptionsConfig, resolveOptionsSource, } from './dynamic-form-schema';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -51,7 +51,7 @@ export { DynamicCRUDPage, } from './dynamic-crud-page';
51
51
  export { DynamicRelation, buildRelationFilterParams, buildCreatePayload, deriveRelationFormFields, relationRowKey, } from './dynamic-relation';
52
52
  export { DynamicRelations, resolveParentId, buildRelationFilters, } from './dynamic-relations';
53
53
  export { registerModelExtension, getModelExtension, clearModelExtensions, } from './model-extension-registry';
54
- export { isColumnVisibleInTable, getSearchableColumnKeys, } from './column-visibility';
54
+ export { isColumnVisibleInTable, isColumnVisibleInModal, isColumnVisibleInLineSubtable, AUDIT_SUBTABLE_COLUMN_KEYS, getSearchableColumnKeys, } from './column-visibility';
55
55
  export { useOptionsResolver, projectOption, } from './use-options-resolver';
56
56
  export { setOrgConfigBridge, getOrgConfigBridge, resolveValidatorToken, } from './use-org-config-bridge';
57
57
  export { registerValidator, getDependsOn, resolveDependsValue, getOptionsConfig, resolveOptionsSource, } from './dynamic-form-schema';
@@ -1 +1 @@
1
- {"version":3,"file":"upload-field.d.ts","sourceRoot":"","sources":["../src/upload-field.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,cAAc,CAAA;IACrB,KAAK,EAAE,GAAG,CAAA;IACV,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAC7B;AAKD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAWzD;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAK1D;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,gBAAgB,+BAkHvE"}
1
+ {"version":3,"file":"upload-field.d.ts","sourceRoot":"","sources":["../src/upload-field.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,cAAc,CAAA;IACrB,KAAK,EAAE,GAAG,CAAA;IACV,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAC7B;AAKD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAWzD;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAK1D;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,gBAAgB,+BAyHvE"}
@@ -17,7 +17,7 @@ import { Loader2, Paperclip, X } from 'lucide-react';
17
17
  import { useApi } from './api-context';
18
18
  import { getUploadConfig } from './dynamic-form-schema';
19
19
  /** Default host upload endpoint. Overridable per-field via `searchEndpoint`. */
20
- const DEFAULT_UPLOAD_ENDPOINT = '/uploads';
20
+ const DEFAULT_UPLOAD_ENDPOINT = '/upload';
21
21
  /**
22
22
  * Pulls the stored file url/path out of an upload response envelope, tolerating
23
23
  * the common key shapes a host might return. Pure — exported for tests.
@@ -72,8 +72,14 @@ export function UploadField({ field, value, onChange }) {
72
72
  }
73
73
  const form = new FormData();
74
74
  form.append('file', file);
75
- if (storagePath)
75
+ // The destination subfolder, declared per field via the manifest
76
+ // (`storage_path`). Sent under BOTH keys: `folder` is what the ops
77
+ // host reads (`c.FormValue("folder")`), `storage_path` is the
78
+ // canonical SDK name kept for hosts that read it.
79
+ if (storagePath) {
80
+ form.append('folder', storagePath);
76
81
  form.append('storage_path', storagePath);
82
+ }
77
83
  setUploading(true);
78
84
  try {
79
85
  const res = await api.post(endpoint, form, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asteby/metacore-runtime-react",
3
- "version": "28.3.4",
3
+ "version": "28.3.6",
4
4
  "description": "React runtime for metacore hosts — renders addon contributions dynamically",
5
5
  "repository": {
6
6
  "type": "git",
@@ -2,6 +2,8 @@ import { describe, it, expect } from 'vitest'
2
2
 
3
3
  import {
4
4
  isColumnVisibleInTable,
5
+ isColumnVisibleInModal,
6
+ isColumnVisibleInLineSubtable,
5
7
  getSearchableColumnKeys,
6
8
  } from '../column-visibility'
7
9
  import type { ColumnDefinition, TableMetadata } from '../types'
@@ -57,6 +59,64 @@ describe('isColumnVisibleInTable', () => {
57
59
  })
58
60
  })
59
61
 
62
+ describe('isColumnVisibleInModal', () => {
63
+ it('keeps columns with no visibility flag (legacy zero-value)', () => {
64
+ expect(isColumnVisibleInModal(baseCol())).toBe(true)
65
+ })
66
+
67
+ it('keeps columns with visibility="all" or "modal"', () => {
68
+ expect(isColumnVisibleInModal(baseCol({ visibility: 'all' }))).toBe(true)
69
+ expect(isColumnVisibleInModal(baseCol({ visibility: 'modal' }))).toBe(true)
70
+ })
71
+
72
+ it('hides columns scoped to the table or the API payload', () => {
73
+ expect(isColumnVisibleInModal(baseCol({ visibility: 'table' }))).toBe(false)
74
+ expect(isColumnVisibleInModal(baseCol({ visibility: 'list' }))).toBe(false)
75
+ })
76
+
77
+ it('hides columns with the legacy hidden boolean even if visibility="all"', () => {
78
+ expect(isColumnVisibleInModal(baseCol({ hidden: true, visibility: 'all' }))).toBe(false)
79
+ })
80
+ })
81
+
82
+ describe('isColumnVisibleInLineSubtable', () => {
83
+ it('keeps a plain column with no visibility flag', () => {
84
+ expect(isColumnVisibleInLineSubtable(baseCol({ key: 'quantity' }))).toBe(true)
85
+ })
86
+
87
+ it('hides audit/system columns by default', () => {
88
+ for (const key of [
89
+ 'created_by',
90
+ 'updated_by',
91
+ 'created_at',
92
+ 'updated_at',
93
+ 'deleted_at',
94
+ 'organization_id',
95
+ ]) {
96
+ expect(isColumnVisibleInLineSubtable(baseCol({ key }))).toBe(false)
97
+ }
98
+ })
99
+
100
+ it('lets a manifest opt an audit column back in via explicit visibility', () => {
101
+ expect(
102
+ isColumnVisibleInLineSubtable(baseCol({ key: 'created_by', visibility: 'all' })),
103
+ ).toBe(true)
104
+ expect(
105
+ isColumnVisibleInLineSubtable(baseCol({ key: 'created_by', visibility: 'modal' })),
106
+ ).toBe(true)
107
+ })
108
+
109
+ it('hides a redundant column declared visibility="table" (table-only)', () => {
110
+ expect(
111
+ isColumnVisibleInLineSubtable(baseCol({ key: 'status', visibility: 'table' })),
112
+ ).toBe(false)
113
+ })
114
+
115
+ it('still respects the legacy hidden boolean', () => {
116
+ expect(isColumnVisibleInLineSubtable(baseCol({ key: 'quantity', hidden: true }))).toBe(false)
117
+ })
118
+ })
119
+
60
120
  describe('getSearchableColumnKeys', () => {
61
121
  it('returns null when no column declares searchable (legacy metadata)', () => {
62
122
  const meta = baseMeta([
@@ -24,6 +24,56 @@ export function isColumnVisibleInTable(col: ColumnDefinition): boolean {
24
24
  return v === 'all' || v === 'table'
25
25
  }
26
26
 
27
+ /**
28
+ * Whether a column should render in a MODAL context — the create/edit/view
29
+ * dialog. Mirror image of {@link isColumnVisibleInTable}: a column scoped to
30
+ * `'table'` (list-only) or `'list'` (API-only) is hidden here, while empty /
31
+ * `'all'` / `'modal'` keep it visible. Preserves zero-value behaviour for
32
+ * metadata emitted by older kernels that never set `visibility`.
33
+ */
34
+ export function isColumnVisibleInModal(col: ColumnDefinition): boolean {
35
+ if (col.hidden) return false
36
+ const v = col.visibility
37
+ if (!v) return true
38
+ return v === 'all' || v === 'modal'
39
+ }
40
+
41
+ /**
42
+ * Audit / system columns that are pure noise inside a child line list rendered
43
+ * under a parent record (line items, one_to_many panels in the view modal):
44
+ * they are either constant for the parent (`organization_id`) or already
45
+ * obvious from the parent record (`created_by`, timestamps). Hidden by default
46
+ * in that context — see {@link isColumnVisibleInLineSubtable}.
47
+ */
48
+ export const AUDIT_SUBTABLE_COLUMN_KEYS: readonly string[] = [
49
+ 'created_by',
50
+ 'updated_by',
51
+ 'created_at',
52
+ 'updated_at',
53
+ 'deleted_at',
54
+ 'organization_id',
55
+ ]
56
+
57
+ /**
58
+ * Column visibility decision for a sub-table of lines/relations rendered inside
59
+ * the view modal of a parent record. Two rules on top of the modal criterion:
60
+ *
61
+ * 1. Respect `visibility`: a column scoped to `'table'`/`'list'` never shows
62
+ * here (reuses {@link isColumnVisibleInModal}), so a manifest hides a
63
+ * redundant column from the sub-table with `visibility: "table"`.
64
+ * 2. Audit columns ({@link AUDIT_SUBTABLE_COLUMN_KEYS}) are hidden BY DEFAULT
65
+ * — unless the manifest explicitly opts them back in by declaring a
66
+ * `visibility` (`'all'`/`'modal'`) on that column.
67
+ *
68
+ * Only applies to the embedded child-list context; the main `/m/<model>` table
69
+ * uses {@link isColumnVisibleInTable} and is unaffected.
70
+ */
71
+ export function isColumnVisibleInLineSubtable(col: ColumnDefinition): boolean {
72
+ if (!isColumnVisibleInModal(col)) return false
73
+ if (!col.visibility && AUDIT_SUBTABLE_COLUMN_KEYS.includes(col.key)) return false
74
+ return true
75
+ }
76
+
27
77
  /**
28
78
  * Returns the keys of columns that opt into the model's full-text search,
29
79
  * or `null` when no column declares `searchable` at all.
@@ -46,6 +46,7 @@ import { DynamicForm } from './dynamic-form'
46
46
  import { useImageUrl } from './image-url-context'
47
47
  import { useTimeZone, useCurrency } from './org-runtime-context'
48
48
  import { makeDefaultGetDynamicColumns } from './dynamic-columns'
49
+ import { isColumnVisibleInLineSubtable } from './column-visibility'
49
50
  import { useOptionsResolver } from './use-options-resolver'
50
51
  import type { ApiResponse, TableMetadata } from './types'
51
52
  import {
@@ -265,7 +266,12 @@ function OneToManyRelation({
265
266
  // Hide the FK and every scope column — they're fixed for this parent and
266
267
  // would just render the same value on every row.
267
268
  const hidden = new Set([foreignKey, ...Object.keys(filters || {}), ...hiddenColumns])
268
- return metadata.columns.filter(c => !hidden.has(c.key) && !c.hidden)
269
+ // isColumnVisibleInLineSubtable additionally drops `hidden`/table-scoped
270
+ // columns AND the audit/system noise (created_by, timestamps, org_id)
271
+ // that's redundant under a parent record — see column-visibility.ts.
272
+ return metadata.columns.filter(
273
+ c => !hidden.has(c.key) && isColumnVisibleInLineSubtable(c),
274
+ )
269
275
  }, [metadata, foreignKey, filtersKey, hiddenColumns])
270
276
 
271
277
  // Reuse the EXACT column factory the main `<DynamicTable>` uses so each cell
package/src/index.ts CHANGED
@@ -282,6 +282,9 @@ export {
282
282
  } from './model-extension-registry'
283
283
  export {
284
284
  isColumnVisibleInTable,
285
+ isColumnVisibleInModal,
286
+ isColumnVisibleInLineSubtable,
287
+ AUDIT_SUBTABLE_COLUMN_KEYS,
285
288
  getSearchableColumnKeys,
286
289
  } from './column-visibility'
287
290
  export {
@@ -24,7 +24,7 @@ export interface UploadFieldProps {
24
24
  }
25
25
 
26
26
  /** Default host upload endpoint. Overridable per-field via `searchEndpoint`. */
27
- const DEFAULT_UPLOAD_ENDPOINT = '/uploads'
27
+ const DEFAULT_UPLOAD_ENDPOINT = '/upload'
28
28
 
29
29
  /**
30
30
  * Pulls the stored file url/path out of an upload response envelope, tolerating
@@ -79,7 +79,14 @@ export function UploadField({ field, value, onChange }: UploadFieldProps) {
79
79
  }
80
80
  const form = new FormData()
81
81
  form.append('file', file)
82
- if (storagePath) form.append('storage_path', storagePath)
82
+ // The destination subfolder, declared per field via the manifest
83
+ // (`storage_path`). Sent under BOTH keys: `folder` is what the ops
84
+ // host reads (`c.FormValue("folder")`), `storage_path` is the
85
+ // canonical SDK name kept for hosts that read it.
86
+ if (storagePath) {
87
+ form.append('folder', storagePath)
88
+ form.append('storage_path', storagePath)
89
+ }
83
90
  setUploading(true)
84
91
  try {
85
92
  const res = await api.post(endpoint, form, {