From df056941594b32b22c5eb4d70c36cc5d222cfbf6 Mon Sep 17 00:00:00 2001 From: Ilya Bushin Date: Thu, 3 Nov 2022 13:12:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BB=D0=B0=D0=BD=D1=8B=20=D0=BE=D0=B1?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + src/metadataView.ts | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4510704..71bd6fc 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ ### Типы метаданных +* Планы обмена * Константы * Справочники * Документы diff --git a/src/metadataView.ts b/src/metadataView.ts index 6c2bc89..608f7cc 100644 --- a/src/metadataView.ts +++ b/src/metadataView.ts @@ -11,6 +11,7 @@ interface MetadataDictionaries { interface MetadataObjects { commonModule: TreeItem[], + exchangePlan: TreeItem[], constant: TreeItem[], catalog: TreeItem[], document: TreeItem[], @@ -130,6 +131,9 @@ function CreateTreeElements(metadataFile: MetadataFile) { const reduceResult = versionMetadata.reduce((previous, current) => { if (!current.Metadata && current.$.name.startsWith('CommonModule.') && !current.$.name.endsWith('.Module')) { previous.commonModule.push(GetTreeItem(current, { icon: 'commonModule', context: 'module' })); + } else if (current.$.name.startsWith('ExchangePlan.') && current.$.name.split('.').length === 2) { + previous.exchangePlan.push(GetTreeItem(current, + { icon: 'exchangePlan', context: 'object_and_manager', children: FillObjectItemsByMetadata(current, attributeReduceResult) })); } else if (!current.Metadata && current.$.name.startsWith('Constant.') && !current.$.name.endsWith('ManagerModule') && @@ -177,9 +181,22 @@ function CreateTreeElements(metadataFile: MetadataFile) { icon: 'accumulationRegister', context: 'recordset_and_manager', children: FillRegisterItemsByMetadata(current, attributeReduceResult ) })); } return previous; - }, { commonModule: [], constant: [], catalog: [], document: [], documentJournal: [], enum: [], report: [], dataProcessor: [], informationRegister: [], accumulationRegister: [] }); + }, { + commonModule: [], + exchangePlan: [], + constant: [], + catalog: [], + document: [], + documentJournal: [], + enum: [], + report: [], + dataProcessor: [], + informationRegister: [], + accumulationRegister: [] + }); SearchTree(tree[0], 'commonModules')!.children = reduceResult.commonModule; + SearchTree(tree[0], 'exchangePlans')!.children = reduceResult.exchangePlan; SearchTree(tree[0], 'constants')!.children = reduceResult.constant; SearchTree(tree[0], 'catalogs')!.children = reduceResult.catalog; @@ -205,6 +222,7 @@ function FillObjectItemsByMetadata(versionMetadata: VersionMetadata, objectData: .filter(m => m.$.name.startsWith(versionMetadata.$.name + '.TabularSection.') && !m.$.name.includes('.Attribute.')) .map(m => GetTreeItem(m, { icon: 'tabularSection', + // TODO: undefined for children if length eq zero children: (versionMetadata.Metadata ?? []) .filter(f => f.$.name.startsWith(versionMetadata.$.name + '.TabularSection.' + m.$.name.split('.').pop()) && f.$.name.includes('.Attribute.')) .map(f => GetTreeItem(f, { icon: 'attribute' })) })) @@ -313,6 +331,7 @@ function SearchTree(element: TreeItem, matchingId: string): TreeItem | null { function CreatePath(name: string): string { return name + .replace('ExchangePlan.', 'ExchangePlans/') .replace('Constant.', 'Constants/') .replace('Catalog.', 'Catalogs/') .replace('Document.', 'Documents/')