diff --git a/rsconcept/frontend/src/dialogs/DlgEditOperation/DlgEditOperation.tsx b/rsconcept/frontend/src/dialogs/DlgEditOperation/DlgEditOperation.tsx index 079c287b..7c019cb5 100644 --- a/rsconcept/frontend/src/dialogs/DlgEditOperation/DlgEditOperation.tsx +++ b/rsconcept/frontend/src/dialogs/DlgEditOperation/DlgEditOperation.tsx @@ -95,7 +95,7 @@ function DlgEditOperation({ hideWindow, oss, target, onSubmit }: DlgEditOperatio }, [schemasIDs, needPreload, cache]); useEffect(() => { - if (cache.loading || schemas.length !== schemasIDs.length) { + if (cache.loading || schemas.length !== schemasIDs.length || schemas.length === 0) { return; } setSubstitutions(prev => @@ -114,7 +114,7 @@ function DlgEditOperation({ hideWindow, oss, target, onSubmit }: DlgEditOperatio }, [schemasIDs, schemas, cache.loading, getSchemaByCst]); useEffect(() => { - if (cache.loading || schemas.length !== schemasIDs.length) { + if (cache.loading || schemas.length !== schemasIDs.length || schemas.length === 0) { return; } const validator = new SubstitutionValidator(schemas, substitutions); diff --git a/rsconcept/frontend/src/dialogs/DlgEditOperation/TabSynthesis.tsx b/rsconcept/frontend/src/dialogs/DlgEditOperation/TabSynthesis.tsx index ac896a62..af6933ee 100644 --- a/rsconcept/frontend/src/dialogs/DlgEditOperation/TabSynthesis.tsx +++ b/rsconcept/frontend/src/dialogs/DlgEditOperation/TabSynthesis.tsx @@ -44,7 +44,7 @@ function TabSynthesis({ disabled value={validationText} rows={4} - style={{ borderColor: isCorrect ? undefined : APP_COLORS.fgRed }} + style={{ borderColor: isCorrect ? undefined : APP_COLORS.fgRed, borderWidth: isCorrect ? undefined : '2px' }} /> diff --git a/rsconcept/frontend/src/models/RSFormLoader.ts b/rsconcept/frontend/src/models/RSFormLoader.ts index e9ad37fd..9b6dd30b 100644 --- a/rsconcept/frontend/src/models/RSFormLoader.ts +++ b/rsconcept/frontend/src/models/RSFormLoader.ts @@ -75,6 +75,7 @@ export class RSFormLoader { const order = this.graph.topologicalOrder(); order.forEach(cstID => { const cst = this.cstByID.get(cstID)!; + cst.schema = this.schema.id; cst.status = inferStatus(cst.parse.status, cst.parse.valueClass); cst.is_template = inferTemplate(cst.definition_formal); cst.cst_class = inferClass(cst.cst_type, cst.is_template); diff --git a/rsconcept/frontend/src/models/ossAPI.ts b/rsconcept/frontend/src/models/ossAPI.ts index 7559b084..24e4f30b 100644 --- a/rsconcept/frontend/src/models/ossAPI.ts +++ b/rsconcept/frontend/src/models/ossAPI.ts @@ -70,9 +70,10 @@ export class SubstitutionValidator { constructor(schemas: IRSForm[], substitutions: ICstSubstitute[]) { this.schemas = schemas; this.substitutions = substitutions; - if (this.substitutions.length === 0) { + if (schemas.length === 0 || substitutions.length === 0) { return; } + schemas.forEach(schema => { this.schemaByID.set(schema.id, schema); this.mapping.set(schema.id, {}); diff --git a/rsconcept/frontend/src/models/rsform.ts b/rsconcept/frontend/src/models/rsform.ts index 7da75f9d..1f7c2e1b 100644 --- a/rsconcept/frontend/src/models/rsform.ts +++ b/rsconcept/frontend/src/models/rsform.ts @@ -65,7 +65,6 @@ export interface TermForm { */ export interface IConstituentaMeta { id: ConstituentaID; - schema: LibraryItemID; alias: string; convention: string; cst_type: CstType; @@ -101,6 +100,9 @@ export interface IConstituentaData extends IConstituentaMeta { * Represents Constituenta. */ export interface IConstituenta extends IConstituentaData { + /** {@link LibraryItemID} of this {@link IConstituenta}. */ + schema: LibraryItemID; + /** {@link CstClass} of this {@link IConstituenta}. */ cst_class: CstClass; /** {@link ExpressionStatus} of this {@link IConstituenta}. */ @@ -135,7 +137,7 @@ export interface IConstituenta extends IConstituentaData { /** * Represents {@link IConstituenta} reference. */ -export interface IConstituentaReference extends Pick {} +export interface IConstituentaReference extends Pick {} /** * Represents Constituenta list.