@cxtms/cx-schema 1.9.262 → 1.9.263
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/quickSearchValidator.d.ts +13 -0
- package/dist/quickSearchValidator.d.ts.map +1 -0
- package/dist/quickSearchValidator.js +75 -0
- package/dist/quickSearchValidator.js.map +1 -0
- package/dist/validator.d.ts +7 -0
- package/dist/validator.d.ts.map +1 -1
- package/dist/validator.js +39 -0
- package/dist/validator.js.map +1 -1
- package/package.json +1 -1
- package/schemas/quick-search-kinds.json +27 -0
- package/schemas/schemas.json +42 -2
- package/skills/cxtms-developer/SKILL.md +1 -0
- package/skills/cxtms-module-builder/SKILL.md +20 -2
package/dist/index.d.ts
CHANGED
|
@@ -3,5 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { ModuleValidator } from './validator';
|
|
5
5
|
export { WorkflowValidator } from './workflowValidator';
|
|
6
|
+
export { validateQuickSearch, QuickSearchKind, QuickSearchKinds } from './quickSearchValidator';
|
|
6
7
|
export { ValidationResult, ValidationError, ValidationWarning, ValidationSummary, ValidatorOptions, WorkflowValidatorOptions, YAMLModule, YAMLWorkflow, WorkflowErrorType } from './types';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,UAAU,EACV,YAAY,EACZ,iBAAiB,EAClB,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,UAAU,EACV,YAAY,EACZ,iBAAiB,EAClB,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
* CX Schema Validator - Main entry point
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.WorkflowValidator = exports.ModuleValidator = void 0;
|
|
6
|
+
exports.validateQuickSearch = exports.WorkflowValidator = exports.ModuleValidator = void 0;
|
|
7
7
|
var validator_1 = require("./validator");
|
|
8
8
|
Object.defineProperty(exports, "ModuleValidator", { enumerable: true, get: function () { return validator_1.ModuleValidator; } });
|
|
9
9
|
var workflowValidator_1 = require("./workflowValidator");
|
|
10
10
|
Object.defineProperty(exports, "WorkflowValidator", { enumerable: true, get: function () { return workflowValidator_1.WorkflowValidator; } });
|
|
11
|
+
var quickSearchValidator_1 = require("./quickSearchValidator");
|
|
12
|
+
Object.defineProperty(exports, "validateQuickSearch", { enumerable: true, get: function () { return quickSearchValidator_1.validateQuickSearch; } });
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yCAA8C;AAArC,4GAAA,eAAe,OAAA;AACxB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yCAA8C;AAArC,4GAAA,eAAe,OAAA;AACxB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,+DAAgG;AAAvF,2HAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic rules for entity quickSearch blocks. Mirrors the backend's
|
|
3
|
+
* QuickSearchConfigValidator (tms-backend-api), except `filter`, which only
|
|
4
|
+
* the backend can check.
|
|
5
|
+
*/
|
|
6
|
+
export interface QuickSearchKind {
|
|
7
|
+
key: string;
|
|
8
|
+
matchFields: string[];
|
|
9
|
+
select: string[];
|
|
10
|
+
}
|
|
11
|
+
export type QuickSearchKinds = Record<string, QuickSearchKind>;
|
|
12
|
+
export declare function validateQuickSearch(entityName: string, entityKind: string | undefined | null, config: any, kinds: QuickSearchKinds): string[];
|
|
13
|
+
//# sourceMappingURL=quickSearchValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quickSearchValidator.d.ts","sourceRoot":"","sources":["../src/quickSearchValidator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAQ/D,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACrC,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,gBAAgB,GACtB,MAAM,EAAE,CAmDV"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Semantic rules for entity quickSearch blocks. Mirrors the backend's
|
|
4
|
+
* QuickSearchConfigValidator (tms-backend-api), except `filter`, which only
|
|
5
|
+
* the backend can check.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.validateQuickSearch = validateQuickSearch;
|
|
9
|
+
const CUSTOM_VALUES_PREFIX = 'customValues.';
|
|
10
|
+
// {{ path }} or {{helper path }}
|
|
11
|
+
const TEMPLATE_PATH = /\{\{\s*(?:[A-Za-z]+\s+)?([A-Za-z_][\w.]*)\s*\}\}/g;
|
|
12
|
+
// Component name, e.g. Orders/UpdateOrder
|
|
13
|
+
const DIALOG_COMPONENT = /^[A-Za-z0-9]+(\/[A-Za-z0-9]+)+$/;
|
|
14
|
+
function validateQuickSearch(entityName, entityKind, config, kinds) {
|
|
15
|
+
if (!config || config.enabled !== true)
|
|
16
|
+
return [];
|
|
17
|
+
const prefix = `Entity '${entityName}' quickSearch:`;
|
|
18
|
+
const kind = entityKind ? kinds[entityKind] : undefined;
|
|
19
|
+
if (!kind) {
|
|
20
|
+
return [`${prefix} entityKind must be one of ${Object.keys(kinds).join(', ')}.`];
|
|
21
|
+
}
|
|
22
|
+
const errors = [];
|
|
23
|
+
const match = Array.isArray(config.matchFields) ? config.matchFields : [];
|
|
24
|
+
const select = Array.isArray(config.select) ? config.select : [];
|
|
25
|
+
if (match.length === 0)
|
|
26
|
+
errors.push(`${prefix} matchFields must list at least one field.`);
|
|
27
|
+
for (const f of match) {
|
|
28
|
+
if (!kind.matchFields.includes(f)) {
|
|
29
|
+
errors.push(`${prefix} matchFields '${f}' is not searchable for ${entityKind}. Allowed: ${kind.matchFields.join(', ')}.`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (select.length === 0)
|
|
33
|
+
errors.push(`${prefix} select must list at least one path.`);
|
|
34
|
+
for (const p of select) {
|
|
35
|
+
if (!isSelectable(kind, p))
|
|
36
|
+
errors.push(`${prefix} select '${p}' is not available for ${entityKind}.`);
|
|
37
|
+
}
|
|
38
|
+
if (!config.display?.title || !String(config.display.title).trim())
|
|
39
|
+
errors.push(`${prefix} display.title is required.`);
|
|
40
|
+
if (!config.icon || !String(config.icon).trim())
|
|
41
|
+
errors.push(`${prefix} icon is required.`);
|
|
42
|
+
const open = config.open && typeof config.open === 'object' ? config.open : {};
|
|
43
|
+
const actions = ['navigate', 'dialog'].filter(a => a in open).length;
|
|
44
|
+
if (actions !== 1)
|
|
45
|
+
errors.push(`${prefix} open must define exactly one of navigate or dialog.`);
|
|
46
|
+
if ('dialog' in open && (typeof open.dialog !== 'string' || !DIALOG_COMPONENT.test(open.dialog))) {
|
|
47
|
+
errors.push(`${prefix} open.dialog must be a component name like 'Orders/UpdateOrder'.`);
|
|
48
|
+
}
|
|
49
|
+
if ('navigate' in open && typeof open.navigate !== 'string') {
|
|
50
|
+
errors.push(`${prefix} open.navigate must be a route path.`);
|
|
51
|
+
}
|
|
52
|
+
const allowed = new Set([...select, kind.key]);
|
|
53
|
+
const templates = [config.display?.title, config.display?.subtitle, config.display?.badge, open.navigate]
|
|
54
|
+
.filter((t) => typeof t === 'string');
|
|
55
|
+
const missing = new Set();
|
|
56
|
+
for (const t of templates) {
|
|
57
|
+
for (const m of t.matchAll(TEMPLATE_PATH)) {
|
|
58
|
+
if (!allowed.has(m[1]))
|
|
59
|
+
missing.add(m[1]);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
for (const p of missing)
|
|
63
|
+
errors.push(`${prefix} template path '${p}' must be listed in select.`);
|
|
64
|
+
return errors;
|
|
65
|
+
}
|
|
66
|
+
function isSelectable(kind, path) {
|
|
67
|
+
if (path === `${CUSTOM_VALUES_PREFIX}*`)
|
|
68
|
+
return false;
|
|
69
|
+
if (kind.select.includes(path))
|
|
70
|
+
return true;
|
|
71
|
+
return path.startsWith(CUSTOM_VALUES_PREFIX)
|
|
72
|
+
&& path.length > CUSTOM_VALUES_PREFIX.length
|
|
73
|
+
&& kind.select.includes(`${CUSTOM_VALUES_PREFIX}*`);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=quickSearchValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quickSearchValidator.js","sourceRoot":"","sources":["../src/quickSearchValidator.ts"],"names":[],"mappings":"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"}
|
package/dist/validator.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export declare class ModuleValidator {
|
|
|
7
7
|
private schemas;
|
|
8
8
|
private schemasDir;
|
|
9
9
|
private options;
|
|
10
|
+
private quickSearchKinds;
|
|
11
|
+
private quickSearchKindsError;
|
|
10
12
|
constructor(options?: ValidatorOptions);
|
|
11
13
|
/**
|
|
12
14
|
* Register all loaded schemas with Ajv
|
|
@@ -56,6 +58,11 @@ export declare class ModuleValidator {
|
|
|
56
58
|
* Validate entities array
|
|
57
59
|
*/
|
|
58
60
|
private validateEntities;
|
|
61
|
+
/**
|
|
62
|
+
* Validate an entity's quickSearch block: shape via schemas.json#/definitions/quickSearch,
|
|
63
|
+
* then the semantic rules the backend also enforces at module save.
|
|
64
|
+
*/
|
|
65
|
+
private validateQuickSearch;
|
|
59
66
|
/**
|
|
60
67
|
* Validate configurations array
|
|
61
68
|
*/
|
package/dist/validator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EACL,gBAAgB,EAGhB,gBAAgB,EAGjB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EACL,gBAAgB,EAGhB,gBAAgB,EAGjB,MAAM,SAAS,CAAC;AAQjB,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,qBAAqB,CAAgB;gBAEjC,OAAO,GAAE,gBAAqB;IAsC1C;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgEjE;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyE/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwD/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAwBtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAqBjC;;OAEG;IACH,OAAO,CAAC,YAAY;CAwBrB"}
|
package/dist/validator.js
CHANGED
|
@@ -46,6 +46,7 @@ const fs = __importStar(require("fs"));
|
|
|
46
46
|
const path = __importStar(require("path"));
|
|
47
47
|
const yaml_1 = __importDefault(require("yaml"));
|
|
48
48
|
const schemaLoader_1 = require("./utils/schemaLoader");
|
|
49
|
+
const quickSearchValidator_1 = require("./quickSearchValidator");
|
|
49
50
|
class ModuleValidator {
|
|
50
51
|
constructor(options = {}) {
|
|
51
52
|
this.schemasDir = options.schemasPath || path.join(__dirname, '../schemas');
|
|
@@ -68,6 +69,17 @@ class ModuleValidator {
|
|
|
68
69
|
this.schemas = (0, schemaLoader_1.loadSchemas)(this.schemasDir);
|
|
69
70
|
// Register schemas with Ajv
|
|
70
71
|
this.registerSchemas();
|
|
72
|
+
const kindsPath = path.join(this.schemasDir, 'quick-search-kinds.json');
|
|
73
|
+
this.quickSearchKinds = null;
|
|
74
|
+
this.quickSearchKindsError = null;
|
|
75
|
+
if (fs.existsSync(kindsPath)) {
|
|
76
|
+
try {
|
|
77
|
+
this.quickSearchKinds = JSON.parse(fs.readFileSync(kindsPath, 'utf-8'));
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
this.quickSearchKindsError = `quick-search-kinds.json in ${this.schemasDir} is invalid (${error.message}). Reinstall @cxtms/cx-schema.`;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
71
83
|
}
|
|
72
84
|
/**
|
|
73
85
|
* Register all loaded schemas with Ajv
|
|
@@ -363,8 +375,35 @@ class ModuleValidator {
|
|
|
363
375
|
message: 'Entity must have a name property'
|
|
364
376
|
});
|
|
365
377
|
}
|
|
378
|
+
if (entity.quickSearch !== undefined) {
|
|
379
|
+
this.validateQuickSearch(entity, `${entityPath}.quickSearch`, errors);
|
|
380
|
+
}
|
|
366
381
|
});
|
|
367
382
|
}
|
|
383
|
+
/**
|
|
384
|
+
* Validate an entity's quickSearch block: shape via schemas.json#/definitions/quickSearch,
|
|
385
|
+
* then the semantic rules the backend also enforces at module save.
|
|
386
|
+
*/
|
|
387
|
+
validateQuickSearch(entity, basePath, errors) {
|
|
388
|
+
const validate = this.ajv.getSchema('schemas.json#/definitions/quickSearch');
|
|
389
|
+
if (validate && !validate(entity.quickSearch)) {
|
|
390
|
+
this.addAjvErrors(validate.errors, basePath, errors);
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
393
|
+
if (!this.quickSearchKinds) {
|
|
394
|
+
const reason = this.quickSearchKindsError
|
|
395
|
+
?? `quick-search-kinds.json not found in ${this.schemasDir}. Reinstall @cxtms/cx-schema.`;
|
|
396
|
+
errors.push({
|
|
397
|
+
type: 'invalid_quick_search',
|
|
398
|
+
path: basePath,
|
|
399
|
+
message: `Cannot validate quickSearch: ${reason}`
|
|
400
|
+
});
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
for (const message of (0, quickSearchValidator_1.validateQuickSearch)(entity.name, entity.entityKind, entity.quickSearch, this.quickSearchKinds)) {
|
|
404
|
+
errors.push({ type: 'invalid_quick_search', path: basePath, message });
|
|
405
|
+
}
|
|
406
|
+
}
|
|
368
407
|
/**
|
|
369
408
|
* Validate configurations array
|
|
370
409
|
*/
|
package/dist/validator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"AccountingTransaction": {
|
|
3
|
+
"key": "accountingTransactionId",
|
|
4
|
+
"matchFields": ["transactionNumber"],
|
|
5
|
+
"select": ["accountingTransactionStatus", "accountingTransactionType", "applyToContact.name", "created", "customValues.*", "dueDate", "transactionDate", "transactionNumber"]
|
|
6
|
+
},
|
|
7
|
+
"Commodity": {
|
|
8
|
+
"key": "commodityId",
|
|
9
|
+
"matchFields": ["description", "serialNumber", "trackingNumbers.trackingNumber"],
|
|
10
|
+
"select": ["billToContact.name", "commodityStatus.statusName", "created", "customValues.*", "description", "serialNumber"]
|
|
11
|
+
},
|
|
12
|
+
"Contact": {
|
|
13
|
+
"key": "contactId",
|
|
14
|
+
"matchFields": ["accountNumber", "name"],
|
|
15
|
+
"select": ["accountNumber", "contactStatus.statusName", "contactType", "created", "customValues.*", "name"]
|
|
16
|
+
},
|
|
17
|
+
"Job": {
|
|
18
|
+
"key": "jobId",
|
|
19
|
+
"matchFields": ["jobNumber"],
|
|
20
|
+
"select": ["created", "customValues.*", "customer.name", "description", "employee.name", "jobNumber", "jobStatus.jobStatusName"]
|
|
21
|
+
},
|
|
22
|
+
"Order": {
|
|
23
|
+
"key": "orderId",
|
|
24
|
+
"matchFields": ["orderNumber", "trackingNumber"],
|
|
25
|
+
"select": ["billToContact.name", "created", "customValues.*", "employeeContact.name", "orderNumber", "orderStatus.orderStatusName", "orderType", "salespersonContact.name", "trackingNumber"]
|
|
26
|
+
}
|
|
27
|
+
}
|
package/schemas/schemas.json
CHANGED
|
@@ -541,7 +541,7 @@
|
|
|
541
541
|
"name": { "type": "string" },
|
|
542
542
|
"entityKind": {
|
|
543
543
|
"type": "string",
|
|
544
|
-
"enum": ["Order", "Contact", "OrderEntity", "AccountingTransaction", "Calendar", "CalendarEvent", "Other"]
|
|
544
|
+
"enum": ["Order", "Contact", "OrderEntity", "AccountingTransaction", "Calendar", "CalendarEvent", "CalendarAvailabilityBlock", "Other", "AuditChangeEntry", "Job", "Commodity"]
|
|
545
545
|
},
|
|
546
546
|
"extension": { "type": "boolean", "description": "Whether this entity extends an existing type" },
|
|
547
547
|
"displayName": { "$ref": "#/definitions/localized" },
|
|
@@ -549,11 +549,51 @@
|
|
|
549
549
|
"fields": {
|
|
550
550
|
"type": "array",
|
|
551
551
|
"items": { "$ref": "#/definitions/entityField" }
|
|
552
|
-
}
|
|
552
|
+
},
|
|
553
|
+
"quickSearch": { "$ref": "#/definitions/quickSearch" }
|
|
553
554
|
},
|
|
554
555
|
"required": ["name", "entityKind"]
|
|
555
556
|
},
|
|
556
557
|
|
|
558
|
+
"quickSearch": {
|
|
559
|
+
"type": "object",
|
|
560
|
+
"description": "Opts the entity into the global quick search (Ctrl+K). The backend validates the same rules at module save; see skills/cxtms-module-builder.",
|
|
561
|
+
"properties": {
|
|
562
|
+
"enabled": { "type": "boolean" },
|
|
563
|
+
"filter": { "type": "string", "description": "Lucene filter narrowing the kind's table to this entity, e.g. 'orderType: AirShipmentOrder'." },
|
|
564
|
+
"permission": { "type": "string", "description": "Permission required to see this group. Not enforced by the backend yet (HasPermission stub)." },
|
|
565
|
+
"matchFields": { "type": "array", "items": { "type": "string" }, "description": "Identifier fields matched exact > prefix > contains. Allowed values per entityKind: schemas/quick-search-kinds.json." },
|
|
566
|
+
"select": { "type": "array", "items": { "type": "string" }, "description": "Dotted paths fetched for display/open templates; customValues.<key> allowed." },
|
|
567
|
+
"groupLabel": { "$ref": "#/definitions/localized", "description": "Defaults to the entity displayName." },
|
|
568
|
+
"icon": { "type": "string", "description": "Tabler icon class as used by the web app, e.g. tabler-plane." },
|
|
569
|
+
"order": { "type": "integer", "description": "Tab/group position, ascending; default 100." },
|
|
570
|
+
"display": {
|
|
571
|
+
"type": "object",
|
|
572
|
+
"properties": {
|
|
573
|
+
"title": { "type": "string" },
|
|
574
|
+
"subtitle": { "type": "string" },
|
|
575
|
+
"badge": { "type": "string" }
|
|
576
|
+
},
|
|
577
|
+
"additionalProperties": false
|
|
578
|
+
},
|
|
579
|
+
"open": {
|
|
580
|
+
"type": "object",
|
|
581
|
+
"description": "Exactly one of navigate (route path template, unchanged) or dialog (component name opened in a dialog, e.g. Orders/UpdateOrder).",
|
|
582
|
+
"properties": {
|
|
583
|
+
"navigate": { "type": "string" },
|
|
584
|
+
"dialog": {
|
|
585
|
+
"type": "string",
|
|
586
|
+
"pattern": "^[A-Za-z0-9]+(/[A-Za-z0-9]+)+$",
|
|
587
|
+
"description": "Component name opened in a dialog, e.g. Orders/UpdateOrder. It receives the record key (e.g. orderId), organizationId and the title."
|
|
588
|
+
}
|
|
589
|
+
},
|
|
590
|
+
"additionalProperties": false
|
|
591
|
+
}
|
|
592
|
+
},
|
|
593
|
+
"required": ["enabled"],
|
|
594
|
+
"additionalProperties": false
|
|
595
|
+
},
|
|
596
|
+
|
|
557
597
|
"calendarEvent": {
|
|
558
598
|
"type": "object",
|
|
559
599
|
"description": "Calendar event object structure",
|
|
@@ -123,6 +123,7 @@ Used in module `entityKind` and Flow workflow `entity.name`:
|
|
|
123
123
|
| `OrderEntity` | OrderEntity (Shipper, Consignee, Carrier roles on an order) |
|
|
124
124
|
| `AccountingTransaction` | Invoice, Bill, CreditMemo |
|
|
125
125
|
| `Commodity` | Commodity |
|
|
126
|
+
| `Job` | Job |
|
|
126
127
|
| `Calendar` | CalendarEntity |
|
|
127
128
|
| `CalendarEvent` | CalendarEvent |
|
|
128
129
|
| `Other` | Any custom entity |
|
|
@@ -216,7 +216,7 @@ module:
|
|
|
216
216
|
|
|
217
217
|
entities:
|
|
218
218
|
- name: <EntityName>
|
|
219
|
-
entityKind: Order | Contact | OrderEntity | AccountingTransaction | Calendar | CalendarEvent | Other
|
|
219
|
+
entityKind: Order | Contact | OrderEntity | AccountingTransaction | Job | Commodity | Calendar | CalendarEvent | CalendarAvailabilityBlock | AuditChangeEntry | Other
|
|
220
220
|
extension: false # true if extending existing entity
|
|
221
221
|
displayName: { en-US: "..." }
|
|
222
222
|
fields:
|
|
@@ -234,6 +234,22 @@ entities:
|
|
|
234
234
|
filter: "contactType: Customer"
|
|
235
235
|
options: { baseName: "contactId" }
|
|
236
236
|
|
|
237
|
+
quickSearch: # Optional: show this entity in the global quick search (Ctrl+K)
|
|
238
|
+
enabled: true
|
|
239
|
+
filter: "orderType: AirShipmentOrder" # Lucene, same syntax as grid filters
|
|
240
|
+
permission: AirShipments/Read # Not enforced by the backend yet
|
|
241
|
+
matchFields: [orderNumber, trackingNumber] # Allowed per entityKind: .cx-schema/quick-search-kinds.json
|
|
242
|
+
select: [orderNumber, trackingNumber, billToContact.name, orderStatus.orderStatusName, customValues.hawb]
|
|
243
|
+
groupLabel: { en-US: "Air Shipments" } # Defaults to displayName
|
|
244
|
+
icon: tabler-plane
|
|
245
|
+
order: 20
|
|
246
|
+
display:
|
|
247
|
+
title: "{{ orderNumber }}" # Templates may use only select paths and the key (orderId)
|
|
248
|
+
subtitle: "{{ billToContact.name }} · {{ trackingNumber }}"
|
|
249
|
+
badge: "{{ orderStatus.orderStatusName }}"
|
|
250
|
+
open:
|
|
251
|
+
navigate: "consolidatedShipments/AirShipmentOrder/{{ orderId }}" # or dialog: Module/Component (opened in a dialog with the record key)
|
|
252
|
+
|
|
237
253
|
permissions:
|
|
238
254
|
- name: "ModuleName/Read" # PascalCase with slashes
|
|
239
255
|
displayName: { en-US: "..." }
|
|
@@ -267,6 +283,8 @@ components:
|
|
|
267
283
|
# ... component tree
|
|
268
284
|
```
|
|
269
285
|
|
|
286
|
+
**Quick search (`quickSearch`).** Supported `entityKind` values: `Order`, `Contact`, `AccountingTransaction`, `Job`, `Commodity`. `matchFields` must come from that kind's list in `.cx-schema/quick-search-kinds.json` (copied into your project at install; also available at `node_modules/@cxtms/cx-schema/schemas/quick-search-kinds.json`) — identifier columns only; `customValues` cannot be matched. `select` from the same file, plus any `customValues.<key>`. `display.title`, `icon` and exactly one of `open.navigate` / `open.dialog` are required. `npx cxtms` checks all of this; the backend additionally rejects an invalid `filter` when the module is saved. To change how a core entity opens (or hide it with `enabled: false`), redeclare the entity in your app module with its own full `quickSearch` block — the most recently saved block wins.
|
|
287
|
+
|
|
270
288
|
## Action Types
|
|
271
289
|
|
|
272
290
|
Actions are used in event handlers (onClick, onSubmit, etc.) as arrays:
|
|
@@ -555,7 +573,7 @@ npx cxtms app release -m "Add warehouse locations module" --org 42
|
|
|
555
573
|
- Permission names: PascalCase with slashes (e.g., `WarehouseLocations/Read`, `System/Contacts/Update`)
|
|
556
574
|
4. **Template expressions** use `{{ expression }}` syntax (double curly braces); prefer built-in functions (`isEqual`, `any`, `isNullOrEmpty`, `format`, …) over `eval`, and write non-trivial `eval` expressions as multiline block scalars (`>-`) — see Template expressions
|
|
557
575
|
5. **Include filePath** property pointing to the YAML file location
|
|
558
|
-
6. **Set proper entityKind** when defining entities (Order, Contact, OrderEntity, AccountingTransaction, Calendar, CalendarEvent, Other)
|
|
576
|
+
6. **Set proper entityKind** when defining entities (Order, Contact, OrderEntity, AccountingTransaction, Job, Commodity, Calendar, CalendarEvent, CalendarAvailabilityBlock, AuditChangeEntry, Other); it is required for `quickSearch`
|
|
559
577
|
7. **DataGrid options** requires ALL properties: query, rootEntityName, entityKeys, navigationType, enableDynamicGrid, enableViews, enableSearch, enablePagination, enableColumns, enableFilter, defaultView, onRowClick
|
|
560
578
|
8. **Form component** requires `validationSchema` in props
|
|
561
579
|
9. **Adaptive (mobile/tablet/desktop) design by default** — every form and layout must work on phones (`xs`), tablets (`sm`/`md`), and desktops (`lg+`):
|