From 379a01d84f215ec4564696d0c37280a7950a1c15 Mon Sep 17 00:00:00 2001 From: Brandon Kelly Date: Sat, 1 Feb 2020 13:01:17 -0500 Subject: [PATCH 1/6] doc updates --- ...enerationmanager_.codegenerationmanager.md | 58 ++++++++++++++- ...templatemanager_.templatefilesystemitem.md | 6 +- ...plates_templatemanager_.templatemanager.md | 36 +++++----- .../classes/_cs_.cds.controls.cdsexplorer.md | 33 +++++---- .../api/classes/_cs_.cds.controls.explorer.md | 39 ++++++---- .../_cs_.cds.controls.jsoninspector.md | 4 +- .../classes/_cs_.cds.controls.newworkspace.md | 4 +- .../classes/_cs_.cds.controls.pluginstep.md | 4 +- .../_cs_.cds.controls.pluginstepimage.md | 4 +- .../classes/_cs_.cds.controls.quickpicker.md | 6 +- .../_cs_.cds.controls.svcutilconfig.md | 4 +- .../_cs_.cds.controls.templateexplorer.md | 20 +++--- .../api/classes/_cs_.cds.theme.colors.md | 4 +- ..._metadatarepository_.metadatarepository.md | 71 ++++++++++++++++--- ...iewcontainers_cdsexplorer_.cdstreeentry.md | 67 +++++++++-------- ...ners_templateexplorer_.templateexplorer.md | 2 +- ...iews_pluginstepeditor_.pluginstepeditor.md | 27 +++++-- ...nstepimageeditor_.pluginstepimageeditor.md | 14 ++-- ..._cds_deployment_createcrmsvcutilconfig_.md | 2 +- ...mmands_cs_cds_deployment_createprocess_.md | 2 +- ...commands_cs_cds_templates_savetemplate_.md | 6 +- ...iews_cs_cds_viewcontainers_cdsexplorer_.md | 4 +- .../_views_cs_cds_views_pluginstepeditor_.md | 4 +- ...ews_cs_cds_views_pluginstepimageeditor_.md | 2 +- .../_views_cs_cds_views_svcutilconfigview_.md | 2 +- 25 files changed, 287 insertions(+), 138 deletions(-) diff --git a/docs/extension/api/classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md b/docs/extension/api/classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md index 6a962bf..a43a623 100644 --- a/docs/extension/api/classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md +++ b/docs/extension/api/classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md @@ -14,17 +14,69 @@ sidebar_label: "CodeGenerationManager" ### Methods +* [createCrmSvcUtilConfig](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-createcrmsvcutilconfig) +* [createCrmSvcUtilConfigFromConfig](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-createcrmsvcutilconfigfromconfig) +* [createCrmSvcUtilConfigToFile](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-createcrmsvcutilconfigtofile) * [generateEntities](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-generateentities) * [generateEntityCodeToFile](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-generateentitycodetofile) * [generateEntityCodeToFolder](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-generateentitycodetofolder) ## Methods +### `Static` createCrmSvcUtilConfig + +▸ **createCrmSvcUtilConfig**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `file?`: Uri): *Promise‹void›* + +Defined in src/components/CodeGeneration/CodeGenerationManager.ts:36 + +**Parameters:** + +Name | Type | +------ | ------ | +`config?` | [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md) | +`file?` | Uri | + +**Returns:** *Promise‹void›* + +___ + +### `Static` createCrmSvcUtilConfigFromConfig + +▸ **createCrmSvcUtilConfigFromConfig**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md)): *Promise‹unknown›* + +Defined in src/components/CodeGeneration/CodeGenerationManager.ts:26 + +**Parameters:** + +Name | Type | +------ | ------ | +`config?` | [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md) | + +**Returns:** *Promise‹unknown›* + +___ + +### `Static` createCrmSvcUtilConfigToFile + +▸ **createCrmSvcUtilConfigToFile**(`defaultUri?`: Uri): *Promise‹unknown›* + +Defined in src/components/CodeGeneration/CodeGenerationManager.ts:21 + +**Parameters:** + +Name | Type | +------ | ------ | +`defaultUri?` | Uri | + +**Returns:** *Promise‹unknown›* + +___ + ### `Static` generateEntities ▸ **generateEntities**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `folder?`: string, `outputFileName?`: string, `namespace?`: string): *Promise‹void›* -Defined in src/components/CodeGeneration/CodeGenerationManager.ts:20 +Defined in src/components/CodeGeneration/CodeGenerationManager.ts:31 **Parameters:** @@ -43,7 +95,7 @@ ___ ▸ **generateEntityCodeToFile**(`file?`: Uri): *Promise‹unknown›* -Defined in src/components/CodeGeneration/CodeGenerationManager.ts:10 +Defined in src/components/CodeGeneration/CodeGenerationManager.ts:11 **Parameters:** @@ -59,7 +111,7 @@ ___ ▸ **generateEntityCodeToFolder**(`folder?`: Uri): *Promise‹unknown›* -Defined in src/components/CodeGeneration/CodeGenerationManager.ts:15 +Defined in src/components/CodeGeneration/CodeGenerationManager.ts:16 **Parameters:** diff --git a/docs/extension/api/classes/_components_templates_templatemanager_.templatefilesystemitem.md b/docs/extension/api/classes/_components_templates_templatemanager_.templatefilesystemitem.md index 576c872..79b5afb 100644 --- a/docs/extension/api/classes/_components_templates_templatemanager_.templatefilesystemitem.md +++ b/docs/extension/api/classes/_components_templates_templatemanager_.templatefilesystemitem.md @@ -27,7 +27,7 @@ sidebar_label: "TemplateFilesystemItem" \+ **new TemplateFilesystemItem**(`type`: FileType, `name`: string): *[TemplateFilesystemItem](_components_templates_templatemanager_.templatefilesystemitem.md)* -Defined in src/components/Templates/TemplateManager.ts:882 +Defined in src/components/Templates/TemplateManager.ts:874 **Parameters:** @@ -44,7 +44,7 @@ Name | Type | • **name**: *string* -Defined in src/components/Templates/TemplateManager.ts:885 +Defined in src/components/Templates/TemplateManager.ts:877 ___ @@ -52,4 +52,4 @@ ___ • **type**: *FileType* -Defined in src/components/Templates/TemplateManager.ts:884 +Defined in src/components/Templates/TemplateManager.ts:876 diff --git a/docs/extension/api/classes/_components_templates_templatemanager_.templatemanager.md b/docs/extension/api/classes/_components_templates_templatemanager_.templatemanager.md index 6ea96c6..a3951f8 100644 --- a/docs/extension/api/classes/_components_templates_templatemanager_.templatemanager.md +++ b/docs/extension/api/classes/_components_templates_templatemanager_.templatemanager.md @@ -83,7 +83,7 @@ Name | Type | ▪ **_systemTemplates**: *[TemplateItem](_components_templates_types_.templateitem.md)[]* -Defined in src/components/Templates/TemplateManager.ts:498 +Defined in src/components/Templates/TemplateManager.ts:490 ## Methods @@ -241,7 +241,7 @@ ___ ▸ **saveToFilesystem**(`fsPath`: string, `type`: [TemplateType](../enums/_components_templates_types_.templatetype.md)): *Promise‹[TemplateItem](_components_templates_types_.templateitem.md)›* -Defined in src/components/Templates/TemplateManager.ts:383 +Defined in src/components/Templates/TemplateManager.ts:376 Saves a workspace as a new template @@ -313,7 +313,7 @@ ___ ▸ **createTemplatesDirIfNotExists**(): *Promise‹void›* -Defined in src/components/Templates/TemplateManager.ts:649 +Defined in src/components/Templates/TemplateManager.ts:641 Creates the templates directory if it does not exists @@ -327,7 +327,7 @@ ___ ▸ **defaultResolver**(`data`: string | Buffer, `placeholderRegExp`: RegExp, `template?`: [TemplateItem](_components_templates_types_.templateitem.md), `defaultPlaceholders?`: [Dictionary](_core_types_dictionary_.dictionary.md)‹string, string›): *Promise‹string | Buffer›* -Defined in src/components/Templates/TemplateManager.ts:796 +Defined in src/components/Templates/TemplateManager.ts:788 **Parameters:** @@ -346,7 +346,7 @@ ___ ▸ **exportTemplate**(`template`: [TemplateItem](_components_templates_types_.templateitem.md), `archive`: string, `systemTemplate`: boolean): *Promise‹void›* -Defined in src/components/Templates/TemplateManager.ts:324 +Defined in src/components/Templates/TemplateManager.ts:317 **Parameters:** @@ -364,7 +364,7 @@ ___ ▸ **getDefaultTemplatesFolder**(`systemTemplates`: boolean): *string* -Defined in src/components/Templates/TemplateManager.ts:578 +Defined in src/components/Templates/TemplateManager.ts:570 Returns the default templates location, which is based on the global storage-path directory. @@ -384,7 +384,7 @@ ___ ▸ **getPlaceholders**(`fsItem`: string, `placeholderRegExp`: string, `isFolder`: boolean): *string[]* -Defined in src/components/Templates/TemplateManager.ts:668 +Defined in src/components/Templates/TemplateManager.ts:660 **Parameters:** @@ -402,7 +402,7 @@ ___ ▸ **getSystemTemplate**(`name`: string): *Promise‹[TemplateItem](_components_templates_types_.templateitem.md)›* -Defined in src/components/Templates/TemplateManager.ts:508 +Defined in src/components/Templates/TemplateManager.ts:500 **Parameters:** @@ -418,7 +418,7 @@ ___ ▸ **getSystemTemplates**(): *Promise‹[TemplateItem](_components_templates_types_.templateitem.md)[]›* -Defined in src/components/Templates/TemplateManager.ts:500 +Defined in src/components/Templates/TemplateManager.ts:492 **Returns:** *Promise‹[TemplateItem](_components_templates_types_.templateitem.md)[]›* @@ -428,7 +428,7 @@ ___ ▸ **getTemplateCatalog**(`filename?`: string, `getSystemCatalog`: boolean): *Promise‹[TemplateCatalog](_components_templates_templatecatalog_.templatecatalog.md)›* -Defined in src/components/Templates/TemplateManager.ts:471 +Defined in src/components/Templates/TemplateManager.ts:463 Gets a copy of the template catalog @@ -451,7 +451,7 @@ ___ ▸ **getTemplateFolder**(`template`: [TemplateItem](_components_templates_types_.templateitem.md), `systemTemplate`: boolean): *Promise‹string›* -Defined in src/components/Templates/TemplateManager.ts:308 +Defined in src/components/Templates/TemplateManager.ts:301 **Parameters:** @@ -468,7 +468,7 @@ ___ ▸ **getTemplateFolderItems**(`folder?`: string): *Promise‹[TemplateFilesystemItem](_components_templates_templatemanager_.templatefilesystemitem.md)[]›* -Defined in src/components/Templates/TemplateManager.ts:618 +Defined in src/components/Templates/TemplateManager.ts:610 Returns a list of available project templates by reading the Templates Directory. @@ -488,7 +488,7 @@ ___ ▸ **getTemplates**(`folder`: string, `mergeWith?`: [TemplateItem](_components_templates_types_.templateitem.md)[], `exclusions?`: string[]): *Promise‹[TemplateItem](_components_templates_types_.templateitem.md)[]›* -Defined in src/components/Templates/TemplateManager.ts:513 +Defined in src/components/Templates/TemplateManager.ts:505 **Parameters:** @@ -506,7 +506,7 @@ ___ ▸ **getTemplatesFolder**(`systemTemplates`: boolean): *Promise‹string›* -Defined in src/components/Templates/TemplateManager.ts:558 +Defined in src/components/Templates/TemplateManager.ts:550 Returns the templates directory location. If no user configuration is found, the extension will look for @@ -529,7 +529,7 @@ ___ ▸ **importTemplate**(`archive`: string, `systemTemplate`: boolean): *Promise‹[TemplateItem](_components_templates_types_.templateitem.md)›* -Defined in src/components/Templates/TemplateManager.ts:332 +Defined in src/components/Templates/TemplateManager.ts:325 **Parameters:** @@ -546,7 +546,7 @@ ___ ▸ **mergePlaceholders**(`source`: [TemplatePlaceholder](_components_templates_types_.templateplaceholder.md)[], `merge`: [TemplatePlaceholder](_components_templates_types_.templateplaceholder.md)[]): *[TemplatePlaceholder](_components_templates_types_.templateplaceholder.md)‹›[]* -Defined in src/components/Templates/TemplateManager.ts:740 +Defined in src/components/Templates/TemplateManager.ts:732 **Parameters:** @@ -579,7 +579,7 @@ ___ ▸ **openTemplateFolderInExplorer**(`template`: [TemplateItem](_components_templates_types_.templateitem.md), `systemTemplate`: boolean): *Promise‹void›* -Defined in src/components/Templates/TemplateManager.ts:373 +Defined in src/components/Templates/TemplateManager.ts:366 **Parameters:** @@ -596,7 +596,7 @@ ___ ▸ **resolvePlaceholders**(`data`: string | Buffer, `placeholderRegExp`: string, `placeholders`: [Dictionary](_core_types_dictionary_.dictionary.md)‹string, string›, `templateInfo`: [TemplateItem](_components_templates_types_.templateitem.md), `resolvers?`: function[]): *Promise‹string | Buffer›* -Defined in src/components/Templates/TemplateManager.ts:772 +Defined in src/components/Templates/TemplateManager.ts:764 Replaces any placeholders found within the input data. Will use a dictionary of values from the user's workspace settings, or will prompt diff --git a/docs/extension/api/classes/_cs_.cds.controls.cdsexplorer.md b/docs/extension/api/classes/_cs_.cds.controls.cdsexplorer.md index 6afdb73..4aaf777 100644 --- a/docs/extension/api/classes/_cs_.cds.controls.cdsexplorer.md +++ b/docs/extension/api/classes/_cs_.cds.controls.cdsexplorer.md @@ -19,6 +19,7 @@ sidebar_label: "cdsExplorer" * [addEntry](_cs_.cds.controls.cdsexplorer.md#static-addentry) * [addEntryToSolution](_cs_.cds.controls.cdsexplorer.md#static-addentrytosolution) * [clickEntry](_cs_.cds.controls.cdsexplorer.md#static-clickentry) +* [createCrmSvcUtilConfig](_cs_.cds.controls.cdsexplorer.md#static-createcrmsvcutilconfig) * [deleteEntry](_cs_.cds.controls.cdsexplorer.md#static-deleteentry) * [editConnection](_cs_.cds.controls.cdsexplorer.md#static-editconnection) * [editEntry](_cs_.cds.controls.cdsexplorer.md#static-editentry) @@ -74,11 +75,19 @@ Defined in src/cs.ts:163 ___ +### `Static` createCrmSvcUtilConfig + +▪ **createCrmSvcUtilConfig**: *string* = `${cdsExplorer._namespace}.createCrmSvcUtilConfig` + +Defined in src/cs.ts:164 + +___ + ### `Static` deleteEntry ▪ **deleteEntry**: *string* = `${cdsExplorer._namespace}.deleteEntry` -Defined in src/cs.ts:164 +Defined in src/cs.ts:165 ___ @@ -86,7 +95,7 @@ ___ ▪ **editConnection**: *string* = `${cdsExplorer._namespace}.editConnection` -Defined in src/cs.ts:165 +Defined in src/cs.ts:166 ___ @@ -94,7 +103,7 @@ ___ ▪ **editEntry**: *string* = `${cdsExplorer._namespace}.editEntry` -Defined in src/cs.ts:166 +Defined in src/cs.ts:167 ___ @@ -102,7 +111,7 @@ ___ ▪ **exportSolution**: *string* = `${cdsExplorer._namespace}.exportSolution` -Defined in src/cs.ts:167 +Defined in src/cs.ts:168 ___ @@ -110,7 +119,7 @@ ___ ▪ **inspectEntry**: *string* = `${cdsExplorer._namespace}.inspectEntry` -Defined in src/cs.ts:168 +Defined in src/cs.ts:169 ___ @@ -118,7 +127,7 @@ ___ ▪ **moveSolution**: *string* = `${cdsExplorer._namespace}.moveSolution` -Defined in src/cs.ts:169 +Defined in src/cs.ts:170 ___ @@ -126,7 +135,7 @@ ___ ▪ **openInApp**: *string* = `${cdsExplorer._namespace}.openInApp` -Defined in src/cs.ts:170 +Defined in src/cs.ts:171 ___ @@ -134,7 +143,7 @@ ___ ▪ **openInBrowser**: *string* = `${cdsExplorer._namespace}.openInBrowser` -Defined in src/cs.ts:171 +Defined in src/cs.ts:172 ___ @@ -142,7 +151,7 @@ ___ ▪ **openInEditor**: *string* = `${cdsExplorer._namespace}.openInEditor` -Defined in src/cs.ts:172 +Defined in src/cs.ts:173 ___ @@ -150,7 +159,7 @@ ___ ▪ **refreshEntry**: *string* = `${cdsExplorer._namespace}.refreshEntry` -Defined in src/cs.ts:173 +Defined in src/cs.ts:174 ___ @@ -158,7 +167,7 @@ ___ ▪ **removeEntryFromSolution**: *string* = `${cdsExplorer._namespace}.removeEntryFromSolution` -Defined in src/cs.ts:174 +Defined in src/cs.ts:175 ___ @@ -166,4 +175,4 @@ ___ ▪ **unpackSolution**: *string* = `${cdsExplorer._namespace}.unpackSolution` -Defined in src/cs.ts:175 +Defined in src/cs.ts:176 diff --git a/docs/extension/api/classes/_cs_.cds.controls.explorer.md b/docs/extension/api/classes/_cs_.cds.controls.explorer.md index a61bda8..4d2ea32 100644 --- a/docs/extension/api/classes/_cs_.cds.controls.explorer.md +++ b/docs/extension/api/classes/_cs_.cds.controls.explorer.md @@ -16,6 +16,7 @@ sidebar_label: "explorer" * [_namespace](_cs_.cds.controls.explorer.md#static-_namespace) * [craeteWebResource](_cs_.cds.controls.explorer.md#static-craetewebresource) +* [createCrmSvcUtilConfig](_cs_.cds.controls.explorer.md#static-createcrmsvcutilconfig) * [createFromItemTemplate](_cs_.cds.controls.explorer.md#static-createfromitemtemplate) * [createFromProjectTemplate](_cs_.cds.controls.explorer.md#static-createfromprojecttemplate) * [dotNetBuild](_cs_.cds.controls.explorer.md#static-dotnetbuild) @@ -36,7 +37,7 @@ sidebar_label: "explorer" ▪ **_namespace**: *string* = "cs.cds.controls.explorer" -Defined in src/cs.ts:180 +Defined in src/cs.ts:181 ___ @@ -44,7 +45,15 @@ ___ ▪ **craeteWebResource**: *string* = `${explorer._namespace}.createWebResource` -Defined in src/cs.ts:183 +Defined in src/cs.ts:185 + +___ + +### `Static` createCrmSvcUtilConfig + +▪ **createCrmSvcUtilConfig**: *string* = `${explorer._namespace}.createCrmSvcUtilConfig` + +Defined in src/cs.ts:182 ___ @@ -52,7 +61,7 @@ ___ ▪ **createFromItemTemplate**: *string* = `${explorer._namespace}.createFromItemTemplate` -Defined in src/cs.ts:181 +Defined in src/cs.ts:183 ___ @@ -60,7 +69,7 @@ ___ ▪ **createFromProjectTemplate**: *string* = `${explorer._namespace}.createFromProjectTemplate` -Defined in src/cs.ts:182 +Defined in src/cs.ts:184 ___ @@ -68,7 +77,7 @@ ___ ▪ **dotNetBuild**: *string* = `${explorer._namespace}.dotNetBuild` -Defined in src/cs.ts:184 +Defined in src/cs.ts:186 ___ @@ -76,7 +85,7 @@ ___ ▪ **dotNetTest**: *string* = `${explorer._namespace}.dotNetTest` -Defined in src/cs.ts:185 +Defined in src/cs.ts:187 ___ @@ -84,7 +93,7 @@ ___ ▪ **generateEntityCodeToFile**: *string* = `${explorer._namespace}.generateEntityCodeToFile` -Defined in src/cs.ts:187 +Defined in src/cs.ts:189 ___ @@ -92,7 +101,7 @@ ___ ▪ **generateEntityCodeToFolder**: *string* = `${explorer._namespace}.generateEntityCodeToFolder` -Defined in src/cs.ts:186 +Defined in src/cs.ts:188 ___ @@ -100,7 +109,7 @@ ___ ▪ **importSolution**: *string* = `${explorer._namespace}.importSolution` -Defined in src/cs.ts:188 +Defined in src/cs.ts:190 ___ @@ -108,7 +117,7 @@ ___ ▪ **packSolutionFromFolder**: *string* = `${explorer._namespace}.packSolutionFromFolder` -Defined in src/cs.ts:189 +Defined in src/cs.ts:191 ___ @@ -116,7 +125,7 @@ ___ ▪ **packWebResource**: *string* = `${explorer._namespace}.packWebResource` -Defined in src/cs.ts:190 +Defined in src/cs.ts:192 ___ @@ -124,7 +133,7 @@ ___ ▪ **registerPluginFile**: *string* = `${explorer._namespace}.registerPluginFile` -Defined in src/cs.ts:193 +Defined in src/cs.ts:195 ___ @@ -132,7 +141,7 @@ ___ ▪ **saveTemplateFile**: *string* = `${explorer._namespace}.saveTemplateFile` -Defined in src/cs.ts:191 +Defined in src/cs.ts:193 ___ @@ -140,7 +149,7 @@ ___ ▪ **saveTemplateFolder**: *string* = `${explorer._namespace}.saveTemplateFolder` -Defined in src/cs.ts:192 +Defined in src/cs.ts:194 ___ @@ -148,4 +157,4 @@ ___ ▪ **unpackSolutionToFolder**: *string* = `${explorer._namespace}.unpackSolutionToFolder` -Defined in src/cs.ts:194 +Defined in src/cs.ts:196 diff --git a/docs/extension/api/classes/_cs_.cds.controls.jsoninspector.md b/docs/extension/api/classes/_cs_.cds.controls.jsoninspector.md index 90ce1ba..221ffa0 100644 --- a/docs/extension/api/classes/_cs_.cds.controls.jsoninspector.md +++ b/docs/extension/api/classes/_cs_.cds.controls.jsoninspector.md @@ -23,7 +23,7 @@ sidebar_label: "jsonInspector" ▪ **_namespace**: *string* = "cs.cds.controls.jsonInspector" -Defined in src/cs.ts:199 +Defined in src/cs.ts:201 ___ @@ -31,4 +31,4 @@ ___ ▪ **open**: *string* = `${jsonInspector._namespace}.open` -Defined in src/cs.ts:200 +Defined in src/cs.ts:202 diff --git a/docs/extension/api/classes/_cs_.cds.controls.newworkspace.md b/docs/extension/api/classes/_cs_.cds.controls.newworkspace.md index 2df43cb..603eba8 100644 --- a/docs/extension/api/classes/_cs_.cds.controls.newworkspace.md +++ b/docs/extension/api/classes/_cs_.cds.controls.newworkspace.md @@ -23,7 +23,7 @@ sidebar_label: "newWorkspace" ▪ **_namespace**: *string* = "cs.cds.controls.newWorkspace" -Defined in src/cs.ts:205 +Defined in src/cs.ts:207 ___ @@ -31,4 +31,4 @@ ___ ▪ **open**: *string* = `${newWorkspace._namespace}.open` -Defined in src/cs.ts:206 +Defined in src/cs.ts:208 diff --git a/docs/extension/api/classes/_cs_.cds.controls.pluginstep.md b/docs/extension/api/classes/_cs_.cds.controls.pluginstep.md index 7b54cbf..f6cc96d 100644 --- a/docs/extension/api/classes/_cs_.cds.controls.pluginstep.md +++ b/docs/extension/api/classes/_cs_.cds.controls.pluginstep.md @@ -23,7 +23,7 @@ sidebar_label: "pluginStep" ▪ **_namespace**: *string* = "cs.cds.controls.pluginStep" -Defined in src/cs.ts:211 +Defined in src/cs.ts:213 ___ @@ -31,4 +31,4 @@ ___ ▪ **open**: *string* = `${pluginStep._namespace}.open` -Defined in src/cs.ts:212 +Defined in src/cs.ts:214 diff --git a/docs/extension/api/classes/_cs_.cds.controls.pluginstepimage.md b/docs/extension/api/classes/_cs_.cds.controls.pluginstepimage.md index 2b99360..9a73bb2 100644 --- a/docs/extension/api/classes/_cs_.cds.controls.pluginstepimage.md +++ b/docs/extension/api/classes/_cs_.cds.controls.pluginstepimage.md @@ -23,7 +23,7 @@ sidebar_label: "pluginStepImage" ▪ **_namespace**: *string* = "cs.cds.controls.pluginStepImage" -Defined in src/cs.ts:217 +Defined in src/cs.ts:219 ___ @@ -31,4 +31,4 @@ ___ ▪ **open**: *string* = `${pluginStepImage._namespace}.open` -Defined in src/cs.ts:218 +Defined in src/cs.ts:220 diff --git a/docs/extension/api/classes/_cs_.cds.controls.quickpicker.md b/docs/extension/api/classes/_cs_.cds.controls.quickpicker.md index 22fa2c9..0d15ec9 100644 --- a/docs/extension/api/classes/_cs_.cds.controls.quickpicker.md +++ b/docs/extension/api/classes/_cs_.cds.controls.quickpicker.md @@ -24,7 +24,7 @@ sidebar_label: "quickPicker" ▪ **_namespace**: *string* = "cs.cds.controls.quickPicker" -Defined in src/cs.ts:223 +Defined in src/cs.ts:225 ___ @@ -32,7 +32,7 @@ ___ ▪ **cancel**: *string* = `search.action.focusActiveEditor` -Defined in src/cs.ts:224 +Defined in src/cs.ts:226 ___ @@ -40,4 +40,4 @@ ___ ▪ **quit**: *string* = `workbench.action.quit` -Defined in src/cs.ts:225 +Defined in src/cs.ts:227 diff --git a/docs/extension/api/classes/_cs_.cds.controls.svcutilconfig.md b/docs/extension/api/classes/_cs_.cds.controls.svcutilconfig.md index cb2c54f..b5a2d5e 100644 --- a/docs/extension/api/classes/_cs_.cds.controls.svcutilconfig.md +++ b/docs/extension/api/classes/_cs_.cds.controls.svcutilconfig.md @@ -23,7 +23,7 @@ sidebar_label: "svcUtilConfig" ▪ **_namespace**: *string* = "cs.cds.controls.svcUtilConfig" -Defined in src/cs.ts:230 +Defined in src/cs.ts:232 ___ @@ -31,4 +31,4 @@ ___ ▪ **open**: *string* = `${svcUtilConfig._namespace}.open` -Defined in src/cs.ts:231 +Defined in src/cs.ts:233 diff --git a/docs/extension/api/classes/_cs_.cds.controls.templateexplorer.md b/docs/extension/api/classes/_cs_.cds.controls.templateexplorer.md index bd07a7a..75e9939 100644 --- a/docs/extension/api/classes/_cs_.cds.controls.templateexplorer.md +++ b/docs/extension/api/classes/_cs_.cds.controls.templateexplorer.md @@ -31,7 +31,7 @@ sidebar_label: "templateExplorer" ▪ **_namespace**: *string* = "cs.cds.controls.templateExplorer" -Defined in src/cs.ts:236 +Defined in src/cs.ts:238 ___ @@ -39,7 +39,7 @@ ___ ▪ **addEntry**: *string* = `${templateExplorer._namespace}.addEntry` -Defined in src/cs.ts:237 +Defined in src/cs.ts:239 ___ @@ -47,7 +47,7 @@ ___ ▪ **clickEntry**: *string* = `${templateExplorer._namespace}.clickEntry` -Defined in src/cs.ts:238 +Defined in src/cs.ts:240 ___ @@ -55,7 +55,7 @@ ___ ▪ **createInWorkspace**: *string* = `${templateExplorer._namespace}.createInWorkspace` -Defined in src/cs.ts:239 +Defined in src/cs.ts:241 ___ @@ -63,7 +63,7 @@ ___ ▪ **deleteEntry**: *string* = `${templateExplorer._namespace}.deleteEntry` -Defined in src/cs.ts:240 +Defined in src/cs.ts:242 ___ @@ -71,7 +71,7 @@ ___ ▪ **editEntry**: *string* = `${templateExplorer._namespace}.editEntry` -Defined in src/cs.ts:241 +Defined in src/cs.ts:243 ___ @@ -79,7 +79,7 @@ ___ ▪ **exportEntry**: *string* = `${templateExplorer._namespace}.exportEntry` -Defined in src/cs.ts:242 +Defined in src/cs.ts:244 ___ @@ -87,7 +87,7 @@ ___ ▪ **importEntry**: *string* = `${templateExplorer._namespace}.importEntry` -Defined in src/cs.ts:243 +Defined in src/cs.ts:245 ___ @@ -95,7 +95,7 @@ ___ ▪ **openEntry**: *string* = `${templateExplorer._namespace}.openEntry` -Defined in src/cs.ts:244 +Defined in src/cs.ts:246 ___ @@ -103,4 +103,4 @@ ___ ▪ **refreshEntry**: *string* = `${templateExplorer._namespace}.refreshEntry` -Defined in src/cs.ts:245 +Defined in src/cs.ts:247 diff --git a/docs/extension/api/classes/_cs_.cds.theme.colors.md b/docs/extension/api/classes/_cs_.cds.theme.colors.md index 114e30e..2abeadc 100644 --- a/docs/extension/api/classes/_cs_.cds.theme.colors.md +++ b/docs/extension/api/classes/_cs_.cds.theme.colors.md @@ -23,7 +23,7 @@ sidebar_label: "colors" ▪ **_namespace**: *string* = "cs.cds.theme.colors" -Defined in src/cs.ts:253 +Defined in src/cs.ts:255 ___ @@ -31,4 +31,4 @@ ___ ▪ **icons**: *string* = `${colors._namespace}.icons` -Defined in src/cs.ts:254 +Defined in src/cs.ts:256 diff --git a/docs/extension/api/classes/_repositories_metadatarepository_.metadatarepository.md b/docs/extension/api/classes/_repositories_metadatarepository_.metadatarepository.md index 68b5c44..8b5e7da 100644 --- a/docs/extension/api/classes/_repositories_metadatarepository_.metadatarepository.md +++ b/docs/extension/api/classes/_repositories_metadatarepository_.metadatarepository.md @@ -31,6 +31,9 @@ sidebar_label: "MetadataRepository" * [retrieveCharts](_repositories_metadatarepository_.metadatarepository.md#retrievecharts) * [retrieveDashboards](_repositories_metadatarepository_.metadatarepository.md#retrievedashboards) * [retrieveEntities](_repositories_metadatarepository_.metadatarepository.md#retrieveentities) +* [retrieveEntityByKey](_repositories_metadatarepository_.metadatarepository.md#retrieveentitybykey) +* [retrieveEntityByLogicalName](_repositories_metadatarepository_.metadatarepository.md#retrieveentitybylogicalname) +* [retrieveEntityMetadataId](_repositories_metadatarepository_.metadatarepository.md#retrieveentitymetadataid) * [retrieveForms](_repositories_metadatarepository_.metadatarepository.md#retrieveforms) * [retrieveKeys](_repositories_metadatarepository_.metadatarepository.md#retrievekeys) * [retrieveOptionSets](_repositories_metadatarepository_.metadatarepository.md#retrieveoptionsets) @@ -91,7 +94,7 @@ Defined in src/repositories/metadataRepository.ts:14 ▸ **retrieveAttributes**(`entityKey`: string, `select`: string[]): *Promise‹any[]›* -Defined in src/repositories/metadataRepository.ts:32 +Defined in src/repositories/metadataRepository.ts:45 **Parameters:** @@ -108,7 +111,7 @@ ___ ▸ **retrieveCharts**(`entityLogicalName`: string, `solutionId?`: string, `select`: string[]): *Promise‹any[]›* -Defined in src/repositories/metadataRepository.ts:82 +Defined in src/repositories/metadataRepository.ts:95 **Parameters:** @@ -126,7 +129,7 @@ ___ ▸ **retrieveDashboards**(`entityLogicalName`: string, `solutionId?`: string, `select`: string[]): *Promise‹any[]›* -Defined in src/repositories/metadataRepository.ts:56 +Defined in src/repositories/metadataRepository.ts:69 **Parameters:** @@ -144,7 +147,7 @@ ___ ▸ **retrieveEntities**(`solutionId?`: string, `select`: string[]): *Promise‹any[]›* -Defined in src/repositories/metadataRepository.ts:26 +Defined in src/repositories/metadataRepository.ts:39 **Parameters:** @@ -157,11 +160,61 @@ Name | Type | Default | ___ +### retrieveEntityByKey + +▸ **retrieveEntityByKey**(`entityKey`: string, `select`: string[]): *Promise‹any›* + +Defined in src/repositories/metadataRepository.ts:31 + +**Parameters:** + +Name | Type | Default | +------ | ------ | ------ | +`entityKey` | string | - | +`select` | string[] | MetadataRepository.defaultSelections["EntityDefinitions"] | + +**Returns:** *Promise‹any›* + +___ + +### retrieveEntityByLogicalName + +▸ **retrieveEntityByLogicalName**(`logicalName`: string, `select`: string[]): *Promise‹any›* + +Defined in src/repositories/metadataRepository.ts:35 + +**Parameters:** + +Name | Type | Default | +------ | ------ | ------ | +`logicalName` | string | - | +`select` | string[] | MetadataRepository.defaultSelections["EntityDefinitions"] | + +**Returns:** *Promise‹any›* + +___ + +### retrieveEntityMetadataId + +▸ **retrieveEntityMetadataId**(`logicalName`: string): *Promise‹string›* + +Defined in src/repositories/metadataRepository.ts:26 + +**Parameters:** + +Name | Type | +------ | ------ | +`logicalName` | string | + +**Returns:** *Promise‹string›* + +___ + ### retrieveForms ▸ **retrieveForms**(`entityLogicalName`: string, `solutionId?`: string, `select`: string[]): *Promise‹any[]›* -Defined in src/repositories/metadataRepository.ts:43 +Defined in src/repositories/metadataRepository.ts:56 **Parameters:** @@ -179,7 +232,7 @@ ___ ▸ **retrieveKeys**(`entityKey`: string): *Promise‹any[]›* -Defined in src/repositories/metadataRepository.ts:95 +Defined in src/repositories/metadataRepository.ts:108 **Parameters:** @@ -195,7 +248,7 @@ ___ ▸ **retrieveOptionSets**(`solutionId?`: string, `select?`: string[]): *Promise‹any[]›* -Defined in src/repositories/metadataRepository.ts:37 +Defined in src/repositories/metadataRepository.ts:50 **Parameters:** @@ -212,7 +265,7 @@ ___ ▸ **retrieveRelationships**(`entityKey`: string): *Promise‹object›* -Defined in src/repositories/metadataRepository.ts:100 +Defined in src/repositories/metadataRepository.ts:113 **Parameters:** @@ -228,7 +281,7 @@ ___ ▸ **retrieveViews**(`entityLogicalName`: string, `solutionId?`: string, `select`: string[]): *Promise‹any[]›* -Defined in src/repositories/metadataRepository.ts:69 +Defined in src/repositories/metadataRepository.ts:82 **Parameters:** diff --git a/docs/extension/api/classes/_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md b/docs/extension/api/classes/_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md index 4e8fc02..9c74aaf 100644 --- a/docs/extension/api/classes/_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md +++ b/docs/extension/api/classes/_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md @@ -39,6 +39,7 @@ Represents an entry that is dispalbed in the CdsexplorerView * [subtext](_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md#optional-subtext) * [canAddEntryTypes](_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md#static-private-canaddentrytypes) * [canAddToSolutionEntryTypes](_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md#static-private-canaddtosolutionentrytypes) +* [canCreateCrmSvcUtilConfigTypes](_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md#static-private-cancreatecrmsvcutilconfigtypes) * [canDeleteEntryTypes](_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md#static-private-candeleteentrytypes) * [canEditEntryTypes](_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md#static-private-caneditentrytypes) * [canExportSolutionTypes](_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md#static-private-canexportsolutiontypes) @@ -77,7 +78,7 @@ Represents an entry that is dispalbed in the CdsexplorerView *Overrides void* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1017 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1018 Creates an instance of CdsTreeEntry. @@ -127,7 +128,7 @@ ___ • **configId**: *string* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1082 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1083 Represents the identifier for the connection that created the tree entry. This can be used to lookup the configuration for the connection from the CdsExplorerView.connections property. @@ -142,7 +143,7 @@ ___ • **context**? : *any* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1037 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1038 ___ @@ -193,7 +194,7 @@ ___ *Overrides void* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1033 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1034 The identifier of the item (can be segmented by "/") @@ -203,7 +204,7 @@ ___ • **itemType**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1032 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1033 The item type @@ -240,7 +241,7 @@ ___ • **subtext**? : *string* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1035 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1036 ___ @@ -256,7 +257,15 @@ ___ ▪ **canAddToSolutionEntryTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "Plugin", "Entity", "OptionSet", "WebResource", "Process", "Form", "View", "Chart", "Dashboard" ] -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1016 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1017 + +___ + +### `Static` `Private` canCreateCrmSvcUtilConfigTypes + +▪ **canCreateCrmSvcUtilConfigTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "Entities" ] + +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1007 ___ @@ -264,7 +273,7 @@ ___ ▪ **canDeleteEntryTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "Connection", "PluginStep", "PluginStepImage" ] -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1008 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1009 ___ @@ -272,7 +281,7 @@ ___ ▪ **canEditEntryTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "Connection", "Application", "Solution", "Entity", "OptionSet", "WebResource", "Process", "Attribute", "Form", "View", "Chart", "Dashboard", "Key", "OneToManyRelationship", "ManyToOneRelationship", "ManyToManyRelationship", "Entry", "PluginStep", "PluginStepImage" ] -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1007 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1008 ___ @@ -280,7 +289,7 @@ ___ ▪ **canExportSolutionTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "Solution" ] -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1009 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1010 ___ @@ -288,7 +297,7 @@ ___ ▪ **canInspectEntryTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "Connection", "Solution", "Entity", "OptionSet", "WebResource", "Process", "Attribute", "Form", "View", "Chart", "Dashboard", "Key", "OneToManyRelationship", "ManyToOneRelationship", "ManyToManyRelationship", "Entry", "PluginStep" ] -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1010 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1011 ___ @@ -296,7 +305,7 @@ ___ ▪ **canMoveSolutionEntryTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "Solution" ] -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1012 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1013 ___ @@ -304,7 +313,7 @@ ___ ▪ **canOpenInAppEntryTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "View", "Entity", "Dashboard" ] -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1013 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1014 ___ @@ -312,7 +321,7 @@ ___ ▪ **canOpenInBrowserEntryTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "Application", "Form", "View", "Entity", "Dashboard" ] -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1014 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1015 ___ @@ -320,7 +329,7 @@ ___ ▪ **canOpenInEditorEntryTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "Form", "View", "Chart", "Dashboard" ] -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1015 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1016 ___ @@ -336,7 +345,7 @@ ___ ▪ **canRemoveFromSolutionEntryTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "Plugin", "Entity", "OptionSet", "WebResource", "Process", "Form", "View", "Chart", "Dashboard" ] -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1017 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1018 ___ @@ -344,7 +353,7 @@ ___ ▪ **canUnpackSolutionEntryTypes**: *[CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[]* = [ "Solution" ] -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1011 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1012 ## Accessors @@ -352,7 +361,7 @@ Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1011 • **get capabilities**(): *string[]* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1280 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1281 Gets an array of the capabilities of this tree item. Used in conjunction with the "when" clause from package.json to indicate which icons/commands are available for a given tree item. @@ -371,7 +380,7 @@ ___ • **get config**(): *[Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md)* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1114 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1115 Gets a reference to the configuration used to create the tree entry. This is the object returned when using the configId. @@ -392,7 +401,7 @@ ___ *Overrides void* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1102 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1103 Gets the description (subtext) on the tree entry. @@ -410,7 +419,7 @@ ___ • **get folder**(): *string* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1171 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1172 Gets the folder associated with the tree item, if applicable. Used when nesting resources by folder. @@ -429,7 +438,7 @@ ___ • **get parent**(): *[CdsTreeEntry](_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md) | undefined* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1148 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1149 Gets the parent tree item (if any). @@ -447,7 +456,7 @@ ___ • **get solution**(): *any* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1210 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1211 Gets the solution associated with the tree item, if applicable. @@ -465,7 +474,7 @@ ___ • **get solutionId**(): *string* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1190 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1191 Gets the solution ID associated with the tree item, if applicable. @@ -483,7 +492,7 @@ ___ • **get solutionIdPath**(): *string* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1237 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1238 Gets the solution path segment of the tree item's identifier. @@ -501,7 +510,7 @@ ___ • **get solutionMapping**(): *[SolutionWorkspaceMapping](_components_solutions_solutionworkspacemapping_.solutionworkspacemapping.md)* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1258 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1259 Gets the mapping of the current solution for the currently loaded workspace, if applicable. @@ -521,7 +530,7 @@ ___ *Overrides void* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1091 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1092 Gets the tooltip text on the tree entry. @@ -539,7 +548,7 @@ Gets the tooltip text on the tree entry. ▸ **addCapability**(`returnList`: string[], `capabilityName`: string, `constrain`: [CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype)[], `additionalCheck?`: function): *void* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1316 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1318 **Parameters:** @@ -561,7 +570,7 @@ ___ ▸ **createChildItem**(`itemType`: [CdsExplorerEntryType](../modules/_views_cs_cds_viewcontainers_cdsexplorer_.md#cdsexplorerentrytype), `id`: string, `label`: string, `subtext?`: string, `collapsibleState`: TreeItemCollapsibleState, `context?`: any): *[CdsTreeEntry](_views_cs_cds_viewcontainers_cdsexplorer_.cdstreeentry.md)* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1312 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1314 Creates a child item underneath the current tree entry with the specified properties. diff --git a/docs/extension/api/classes/_views_cs_cds_viewcontainers_templateexplorer_.templateexplorer.md b/docs/extension/api/classes/_views_cs_cds_viewcontainers_templateexplorer_.templateexplorer.md index b5f29ea..5db5533 100644 --- a/docs/extension/api/classes/_views_cs_cds_viewcontainers_templateexplorer_.templateexplorer.md +++ b/docs/extension/api/classes/_views_cs_cds_viewcontainers_templateexplorer_.templateexplorer.md @@ -86,7 +86,7 @@ ___ ### `Static` `Private` parsers ▪ **parsers**: *[Dictionary](_core_types_dictionary_.dictionary.md)‹"Folder" | "ProjectTemplate" | "ItemTemplate", function›* = new Dictionary TemplateExplorerEntry>([ - { key: "Folder", value: (folder, element) => element.createChildItem("Folder", folder, folder, folder, vscode.TreeItemCollapsibleState.Collapsed, folder) }, + { key: "Folder", value: (folder, element) => element.createChildItem("Folder", folder, folder, folder, vscode.TreeItemCollapsibleState.Collapsed, undefined) }, { key: "ProjectTemplate", value: (item, element) => element.createChildItem("ProjectTemplate", item.name, item.displayName, item.description, vscode.TreeItemCollapsibleState.None, item) }, { key: "ItemTemplate", value: (item, element) => element.createChildItem("ItemTemplate", item.name, item.displayName, item.description, vscode.TreeItemCollapsibleState.None, item) } ]) diff --git a/docs/extension/api/classes/_views_cs_cds_views_pluginstepeditor_.pluginstepeditor.md b/docs/extension/api/classes/_views_cs_cds_views_pluginstepeditor_.pluginstepeditor.md index 2f9f8d8..e46f73e 100644 --- a/docs/extension/api/classes/_views_cs_cds_views_pluginstepeditor_.pluginstepeditor.md +++ b/docs/extension/api/classes/_views_cs_cds_views_pluginstepeditor_.pluginstepeditor.md @@ -40,6 +40,7 @@ sidebar_label: "PluginStepEditor" * [construct](_views_cs_cds_views_pluginstepeditor_.pluginstepeditor.md#construct) * [dispose](_views_cs_cds_views_pluginstepeditor_.pluginstepeditor.md#dispose) * [postMessage](_views_cs_cds_views_pluginstepeditor_.pluginstepeditor.md#postmessage) +* [retrieveAttributes](_views_cs_cds_views_pluginstepeditor_.pluginstepeditor.md#private-retrieveattributes) * [save](_views_cs_cds_views_pluginstepeditor_.pluginstepeditor.md#private-save) * [setInitialState](_views_cs_cds_views_pluginstepeditor_.pluginstepeditor.md#setinitialstate) * [show](_views_cs_cds_views_pluginstepeditor_.pluginstepeditor.md#static-show) @@ -69,7 +70,7 @@ Name | Type | • **config**: *[Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md)* -Defined in src/views/cs.cds.views.pluginStepEditor.ts:24 +Defined in src/views/cs.cds.views.pluginStepEditor.ts:25 ___ @@ -155,7 +156,7 @@ Track the currently panel. Only allow a single panel to exist at a time. *Overrides [View](_core_webui_view_.view.md).[commands](_core_webui_view_.view.md#commands)* -Defined in src/views/cs.cds.views.pluginStepEditor.ts:41 +Defined in src/views/cs.cds.views.pluginStepEditor.ts:42 **Returns:** *[Dictionary](_core_types_dictionary_.dictionary.md)‹string, Function›* @@ -197,7 +198,7 @@ ___ *Overrides [View](_core_webui_view_.view.md).[construct](_core_webui_view_.view.md#abstract-construct)* -Defined in src/views/cs.cds.views.pluginStepEditor.ts:26 +Defined in src/views/cs.cds.views.pluginStepEditor.ts:27 **Parameters:** @@ -239,11 +240,27 @@ Name | Type | ___ +### `Private` retrieveAttributes + +▸ **retrieveAttributes**(`logicalName`: string): *Promise‹void›* + +Defined in src/views/cs.cds.views.pluginStepEditor.ts:49 + +**Parameters:** + +Name | Type | +------ | ------ | +`logicalName` | string | + +**Returns:** *Promise‹void›* + +___ + ### `Private` save ▸ **save**(`step`: any): *void* -Defined in src/views/cs.cds.views.pluginStepEditor.ts:47 +Defined in src/views/cs.cds.views.pluginStepEditor.ts:57 **Parameters:** @@ -259,7 +276,7 @@ ___ ▸ **setInitialState**(`pluginAssemblyId`: string, `config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `step?`: any): *Promise‹void›* -Defined in src/views/cs.cds.views.pluginStepEditor.ts:60 +Defined in src/views/cs.cds.views.pluginStepEditor.ts:70 **Parameters:** diff --git a/docs/extension/api/classes/_views_cs_cds_views_pluginstepimageeditor_.pluginstepimageeditor.md b/docs/extension/api/classes/_views_cs_cds_views_pluginstepimageeditor_.pluginstepimageeditor.md index 1919c27..6cf25cf 100644 --- a/docs/extension/api/classes/_views_cs_cds_views_pluginstepimageeditor_.pluginstepimageeditor.md +++ b/docs/extension/api/classes/_views_cs_cds_views_pluginstepimageeditor_.pluginstepimageeditor.md @@ -69,7 +69,7 @@ Name | Type | • **config**: *[Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md)* -Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:24 +Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:25 ___ @@ -155,7 +155,7 @@ Track the currently panel. Only allow a single panel to exist at a time. *Overrides [View](_core_webui_view_.view.md).[commands](_core_webui_view_.view.md#commands)* -Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:41 +Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:42 **Returns:** *[Dictionary](_core_types_dictionary_.dictionary.md)‹string, Function›* @@ -197,7 +197,7 @@ ___ *Overrides [View](_core_webui_view_.view.md).[construct](_core_webui_view_.view.md#abstract-construct)* -Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:26 +Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:27 **Parameters:** @@ -243,7 +243,7 @@ ___ ▸ **save**(`pluginStepImage`: any): *void* -Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:47 +Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:48 **Parameters:** @@ -257,16 +257,16 @@ ___ ### setInitialState -▸ **setInitialState**(`sdkmessageprocessingstepid`: string, `viewModel`: any, `config`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md)): *Promise‹void›* +▸ **setInitialState**(`sdkmessageprocessingstepid`: string, `pluginStepImage`: any, `config`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md)): *Promise‹void›* -Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:61 +Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:62 **Parameters:** Name | Type | ------ | ------ | `sdkmessageprocessingstepid` | string | -`viewModel` | any | +`pluginStepImage` | any | `config` | [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md) | **Returns:** *Promise‹void›* diff --git a/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md b/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md index 183065d..cbd2c12 100644 --- a/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md +++ b/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md @@ -18,7 +18,7 @@ sidebar_label: "commands/cs.cds.deployment.createCrmSvcUtilConfig" ▸ **run**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `defaultUri?`: Uri): *Promise‹void›* -Defined in src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts:18 +Defined in src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts:19 This command can be invoked by the by either the file explorer view or the CDS Explorer and can create a blank crmsvcutil.exe.config file or open an existing one up in the editor. diff --git a/docs/extension/api/modules/_commands_cs_cds_deployment_createprocess_.md b/docs/extension/api/modules/_commands_cs_cds_deployment_createprocess_.md index 9697435..55c2da7 100644 --- a/docs/extension/api/modules/_commands_cs_cds_deployment_createprocess_.md +++ b/docs/extension/api/modules/_commands_cs_cds_deployment_createprocess_.md @@ -18,7 +18,7 @@ sidebar_label: "commands/cs.cds.deployment.createProcess" ▸ **run**(`this`: [SolutionManager](../classes/_components_solutions_solutionmanager_.solutionmanager.md), `config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `solutionid?`: string): *Promise‹object›* -Defined in src/commands/cs.cds.deployment.createProcess.ts:17 +Defined in src/commands/cs.cds.deployment.createProcess.ts:18 Creates a process for a CDS solution diff --git a/docs/extension/api/modules/_commands_cs_cds_templates_savetemplate_.md b/docs/extension/api/modules/_commands_cs_cds_templates_savetemplate_.md index 69e213a..53f8e26 100644 --- a/docs/extension/api/modules/_commands_cs_cds_templates_savetemplate_.md +++ b/docs/extension/api/modules/_commands_cs_cds_templates_savetemplate_.md @@ -28,7 +28,7 @@ Defined in src/commands/cs.cds.templates.saveTemplate.ts:1 ### run -▸ **run**(`this`: [TemplateManager](../classes/_components_templates_templatemanager_.templatemanager.md), `templateUri`: Uri, `type`: [TemplateType](../enums/_components_templates_types_.templatetype.md)): *Promise‹void›* +▸ **run**(`this`: [TemplateManager](../classes/_components_templates_templatemanager_.templatemanager.md), `templateUri?`: Uri, `type?`: [TemplateType](../enums/_components_templates_types_.templatetype.md)): *Promise‹void›* Defined in src/commands/cs.cds.templates.saveTemplate.ts:19 @@ -44,8 +44,8 @@ This command can be invoked by the Command Palette or in a folder context menu o Name | Type | ------ | ------ | `this` | [TemplateManager](../classes/_components_templates_templatemanager_.templatemanager.md) | -`templateUri` | Uri | -`type` | [TemplateType](../enums/_components_templates_types_.templatetype.md) | +`templateUri?` | Uri | +`type?` | [TemplateType](../enums/_components_templates_types_.templatetype.md) | **Returns:** *Promise‹void›* diff --git a/docs/extension/api/modules/_views_cs_cds_viewcontainers_cdsexplorer_.md b/docs/extension/api/modules/_views_cs_cds_viewcontainers_cdsexplorer_.md index 8568014..6447212 100644 --- a/docs/extension/api/modules/_views_cs_cds_viewcontainers_cdsexplorer_.md +++ b/docs/extension/api/modules/_views_cs_cds_viewcontainers_cdsexplorer_.md @@ -28,12 +28,12 @@ sidebar_label: "views/cs.cds.viewContainers.cdsExplorer" Ƭ **CdsExplorerEntryType**: *"Connection" | "Organization" | "Entities" | "OptionSets" | "WebResources" | "Plugins" | "Processes" | "Solutions" | "Applications" | "Entity" | "OptionSet" | "Option" | "WebResource" | "Plugin" | "PluginType" | "PluginStep" | "PluginStepImage" | "Process" | "Solution" | "Application" | "Attributes" | "Views" | "Charts" | "Dashboards" | "Keys" | "Relationships" | "Forms" | "Attribute" | "View" | "Chart" | "Dashboard" | "Key" | "OneToManyRelationship" | "ManyToOneRelationship" | "ManyToManyRelationship" | "Form" | "Entry" | "Entries" | "Folder"* -Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1326 +Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:1328 ## Variables ### async -• **async**: *"C:/dev/cds-for-code/node_modules/@types/async/index"* +• **async**: *"C:/Dev/Internal/cds-for-code/node_modules/@types/async/index"* Defined in src/views/cs.cds.viewContainers.cdsExplorer.ts:23 diff --git a/docs/extension/api/modules/_views_cs_cds_views_pluginstepeditor_.md b/docs/extension/api/modules/_views_cs_cds_views_pluginstepeditor_.md index 301c1d9..c6a34ae 100644 --- a/docs/extension/api/modules/_views_cs_cds_views_pluginstepeditor_.md +++ b/docs/extension/api/modules/_views_cs_cds_views_pluginstepeditor_.md @@ -24,7 +24,7 @@ sidebar_label: "views/cs.cds.views.pluginStepEditor" ### async -• **async**: *"C:/dev/cds-for-code/node_modules/@types/async/index"* +• **async**: *"C:/Dev/Internal/cds-for-code/node_modules/@types/async/index"* Defined in src/views/cs.cds.views.pluginStepEditor.ts:7 @@ -34,7 +34,7 @@ Defined in src/views/cs.cds.views.pluginStepEditor.ts:7 ▸ **openView**(`pluginAssemblyId`: string, `config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `step?`: any): *Promise‹[View](../classes/_core_webui_view_.view.md)›* -Defined in src/views/cs.cds.views.pluginStepEditor.ts:11 +Defined in src/views/cs.cds.views.pluginStepEditor.ts:12 **Parameters:** diff --git a/docs/extension/api/modules/_views_cs_cds_views_pluginstepimageeditor_.md b/docs/extension/api/modules/_views_cs_cds_views_pluginstepimageeditor_.md index e96ebd4..2eef0f4 100644 --- a/docs/extension/api/modules/_views_cs_cds_views_pluginstepimageeditor_.md +++ b/docs/extension/api/modules/_views_cs_cds_views_pluginstepimageeditor_.md @@ -22,7 +22,7 @@ sidebar_label: "views/cs.cds.views.pluginStepImageEditor" ▸ **openView**(`sdkmessageprocessingstepid`: string, `pluginStepImage`: any, `config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md)): *Promise‹[View](../classes/_core_webui_view_.view.md)›* -Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:11 +Defined in src/views/cs.cds.views.pluginStepImageEditor.ts:12 **Parameters:** diff --git a/docs/extension/api/modules/_views_cs_cds_views_svcutilconfigview_.md b/docs/extension/api/modules/_views_cs_cds_views_svcutilconfigview_.md index b1b037a..87c157e 100644 --- a/docs/extension/api/modules/_views_cs_cds_views_svcutilconfigview_.md +++ b/docs/extension/api/modules/_views_cs_cds_views_svcutilconfigview_.md @@ -24,7 +24,7 @@ sidebar_label: "views/cs.cds.views.svcUtilConfigView" ### async -• **async**: *"C:/dev/cds-for-code/node_modules/@types/async/index"* +• **async**: *"C:/Dev/Internal/cds-for-code/node_modules/@types/async/index"* Defined in src/views/cs.cds.views.svcUtilConfigView.ts:9 From 1ac8e1f4b263a15c75e659b775dcb214f80961f7 Mon Sep 17 00:00:00 2001 From: Brandon Kelly Date: Tue, 4 Feb 2020 06:38:28 -0500 Subject: [PATCH 2/6] new commands; updates to script --- ...enerationmanager_.codegenerationmanager.md | 41 +++++++++++++------ ..._cds_deployment_createcrmsvcutilconfig_.md | 5 ++- package.json | 2 +- resources/scripts/svcutil-config.js | 37 +++++++++++++---- resources/webviews/svcutil-config.html | 2 +- ...s.cds.deployment.createCrmSvcUtilConfig.ts | 7 +++- .../CodeGeneration/CodeGenerationManager.ts | 26 +++++++++--- 7 files changed, 89 insertions(+), 31 deletions(-) diff --git a/docs/extension/api/classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md b/docs/extension/api/classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md index a43a623..2b91676 100644 --- a/docs/extension/api/classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md +++ b/docs/extension/api/classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md @@ -14,16 +14,17 @@ sidebar_label: "CodeGenerationManager" ### Methods -* [createCrmSvcUtilConfig](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-createcrmsvcutilconfig) -* [createCrmSvcUtilConfigFromConfig](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-createcrmsvcutilconfigfromconfig) -* [createCrmSvcUtilConfigToFile](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-createcrmsvcutilconfigtofile) -* [generateEntities](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-generateentities) -* [generateEntityCodeToFile](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-generateentitycodetofile) -* [generateEntityCodeToFolder](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#static-generateentitycodetofolder) +* [createCrmSvcUtilConfig](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#createcrmsvcutilconfig) +* [createCrmSvcUtilConfigFromConfig](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#createcrmsvcutilconfigfromconfig) +* [createCrmSvcUtilConfigToFile](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#createcrmsvcutilconfigtofile) +* [generateEntities](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#generateentities) +* [generateEntityCodeToFile](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#generateentitycodetofile) +* [generateEntityCodeToFolder](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#generateentitycodetofolder) +* [parseXml](_components_codegeneration_codegenerationmanager_.codegenerationmanager.md#parsexml) ## Methods -### `Static` createCrmSvcUtilConfig +### createCrmSvcUtilConfig ▸ **createCrmSvcUtilConfig**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `file?`: Uri): *Promise‹void›* @@ -40,7 +41,7 @@ Name | Type | ___ -### `Static` createCrmSvcUtilConfigFromConfig +### createCrmSvcUtilConfigFromConfig ▸ **createCrmSvcUtilConfigFromConfig**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md)): *Promise‹unknown›* @@ -56,7 +57,7 @@ Name | Type | ___ -### `Static` createCrmSvcUtilConfigToFile +### createCrmSvcUtilConfigToFile ▸ **createCrmSvcUtilConfigToFile**(`defaultUri?`: Uri): *Promise‹unknown›* @@ -72,7 +73,7 @@ Name | Type | ___ -### `Static` generateEntities +### generateEntities ▸ **generateEntities**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `folder?`: string, `outputFileName?`: string, `namespace?`: string): *Promise‹void›* @@ -91,7 +92,7 @@ Name | Type | ___ -### `Static` generateEntityCodeToFile +### generateEntityCodeToFile ▸ **generateEntityCodeToFile**(`file?`: Uri): *Promise‹unknown›* @@ -107,7 +108,7 @@ Name | Type | ___ -### `Static` generateEntityCodeToFolder +### generateEntityCodeToFolder ▸ **generateEntityCodeToFolder**(`folder?`: Uri): *Promise‹unknown›* @@ -120,3 +121,19 @@ Name | Type | `folder?` | Uri | **Returns:** *Promise‹unknown›* + +___ + +### parseXml + +▸ **parseXml**(`xml`: any): *any* + +Defined in src/components/CodeGeneration/CodeGenerationManager.ts:40 + +**Parameters:** + +Name | Type | +------ | ------ | +`xml` | any | + +**Returns:** *any* diff --git a/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md b/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md index cbd2c12..2952650 100644 --- a/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md +++ b/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md @@ -16,9 +16,9 @@ sidebar_label: "commands/cs.cds.deployment.createCrmSvcUtilConfig" ### run -▸ **run**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `defaultUri?`: Uri): *Promise‹void›* +▸ **run**(`this`: [CodeGenerationManager](../classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md), `config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `defaultUri?`: Uri): *Promise‹void›* -Defined in src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts:19 +Defined in src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts:21 This command can be invoked by the by either the file explorer view or the CDS Explorer and can create a blank crmsvcutil.exe.config file or open an existing one up in the editor. @@ -29,6 +29,7 @@ and can create a blank crmsvcutil.exe.config file or open an existing one up in Name | Type | ------ | ------ | +`this` | [CodeGenerationManager](../classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md) | `config?` | [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md) | `defaultUri?` | Uri | diff --git a/package.json b/package.json index ca698fe..dea0b95 100644 --- a/package.json +++ b/package.json @@ -829,7 +829,7 @@ }, { "command": "cs.cds.controls.explorer.createCrmSvcUtilConfig", - "when": "explorerResourceIsFolder || resourceExtName == .config", + "when": "explorerResourceIsFolder || resourceExtname == .config", "group": "navigation@4" }, { diff --git a/resources/scripts/svcutil-config.js b/resources/scripts/svcutil-config.js index a67080d..8a79d84 100644 --- a/resources/scripts/svcutil-config.js +++ b/resources/scripts/svcutil-config.js @@ -57,7 +57,7 @@ entities: viewModel.entities, optionsets: viewModel.optionsets, solutions: viewModel.solutions, - entityMap: _.map(viewModel.entities, i => { return { value: i.LogicalName, text: i.LogicalName } }), + entityMap: _.map(viewModel.entities, i => { return { value: i.MetadataId, text: i.LogicalName } }), optionsetMap: _.map(viewModel.optionsets, i => { return { value: i.Name, text: i.Name } }), solutionMap: _.map(viewModel.solutions, i => { return { value: i.uniquename, text: i.uniquename } }), filterRules: viewModel.filterRules || [], @@ -83,7 +83,7 @@ function setAttributes(attributes, targetElem) { window.dataCache.attributes = attributes; - window.dataCache.attributesMap = _.map(attributes, i => { return { value: i.LogicalName, text: i.LogicalName } }); + window.dataCache.attributesMap = _.map(attributes, i => { return { value: i.MetadataId, text: i.LogicalName } }); bindSelect($(targetElem), window.dataCache.attributesMap); } @@ -149,15 +149,29 @@ const itemType = form[`${listType}-filterType`] === 'OptionSet' ? 'optionSet' : form[`${listType}-filterType`].toLowerCase(); if (form[`${listType}-${itemType}-addmode`] === itemType) { - const options = itemType !== 'attribute' ? {} : { entity: form[`${listType}-${itemType}-allentities`] === 'true' ? '*' : form[`${listType}-${itemType}-entity`] }; + const options = itemType !== 'attribute' ? {} : { entity: form[`${listType}-${itemType}-allentities`] === 'true' ? '*' : window.dataCache.entities.filter(e => e.MetadataId === form[`${listType}-${itemType}-entity`])[0].LogicalName }; const idPrefix = `${listType}.${itemType}.exact-match.${options.entity ? options.entity + "." : ''}`; if (form[`${listType}-${itemType}-selections`] instanceof Array) { form[`${listType}-${itemType}-selections`].forEach((value, index) => { + if (itemType === 'entity') { + value = window.dataCache.entities.filter(e => e.MetadataId === value)[0].LogicalName; + } else if (itemType === 'attribute') { + value = window.dataCache.attributes.filter(a => a.MetadataId === value)[0].LogicalName; + } + items.push({ id: idPrefix + value, listType, scope: itemType, value, ruleType: 'exact-match', options }); }); } else { - items.push({ id: idPrefix + form[`${listType}-${itemType}-selections`], listType, scope: itemType, value: form[`${listType}-${itemType}-selections`], ruleType: 'exact-match', options }); + let value; + + if (itemType === 'entity') { + value = window.dataCache.entities.filter(e => e.MetadataId === form[`${listType}-${itemType}-selections`])[0].LogicalName; + } else if (itemType === 'attribute') { + value = window.dataCache.attributes.filter(a => a.MetadataId === form[`${listType}-${itemType}-selections`])[0].LogicalName; + } + + items.push({ id: idPrefix + value, listType, scope: itemType, value, ruleType: 'exact-match', options }); } } else { items.push({ id: `${listType}.${itemType}.regex`, listType, scope: itemType, value: form[`${listType}-${itemType}-regex`], ruleType: 'regex', options: { ignoreCase: form[`${listType}-${itemType}-regex-ignorecase`] === 'true' } }); @@ -182,11 +196,11 @@ let newValue; if (itemType === "attribute") { - oldValue = (form["naming-mapping-attribute-allentities"] === "true" ? "*." : form["naming-mapping-attribute-entity"] + ".") - + form["naming-mapping-attribute-selection"]; + oldValue = (form["naming-mapping-attribute-allentities"] === "true" ? "*." : window.dataCache.entities.filter(e => e.MetadataId === form["naming-mapping-attribute-entity"])[0].LogicalName + ".") + + window.dataCache.attributes.filter(a => a.MetadataId === form["naming-mapping-attribute-selection"])[0].LogicalName; newValue = form["naming-mapping-newname"]; } else if (itemType === "entity") { - oldValue = form["naming-mapping-entity-selection"]; + oldValue = window.dataCache.entities.filter(e => e.MetadataId === form["naming-mapping-entity-selection"])[0].LogicalName; newValue = form["naming-mapping-newname"]; } else if (itemType === "publisher") { oldValue = form["naming-publisher-oldname"]; @@ -401,7 +415,14 @@ // wire up click handler for the submit button $("[data-action='save']").click(function() { - + vscode.postMessage({ + command: 'save', + config: { + filterRules: window.dataCache.filterRules, + namingRules: window.dataCache.namingRules, + codeGeneration: window.dataCache.codeGeneration + } + }) }); }); }()); \ No newline at end of file diff --git a/resources/webviews/svcutil-config.html b/resources/webviews/svcutil-config.html index 8d4884d..be6e1e2 100644 --- a/resources/webviews/svcutil-config.html +++ b/resources/webviews/svcutil-config.html @@ -603,7 +603,7 @@
- {{ruleType}}: {{value}} + {{ruleType}}: {{#options}}{{entity}}.{{/options}}{{value}}
{{/items}} diff --git a/src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts b/src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts index d47a8b5..7c1c8e4 100644 --- a/src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts +++ b/src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts @@ -8,6 +8,8 @@ import { CdsWebApi } from "../api/cds-webapi/CdsWebApi"; import Quickly from "../core/Quickly"; import ExtensionContext from "../core/ExtensionContext"; import logger from "../core/framework/Logger"; +import Xml from "../core/io/Xml"; +import CodeGenerationManager from "../components/CodeGeneration/CodeGenerationManager"; /** * This command can be invoked by the by either the file explorer view or the CDS Explorer @@ -16,7 +18,7 @@ import logger from "../core/framework/Logger"; * @param {vscode.Uri} [defaultUri] that invoked the command * @returns void */ -export default async function run(config?: CdsWebApi.Config, defaultUri?: vscode.Uri) { +export default async function run(this: CodeGenerationManager, config?: CdsWebApi.Config, defaultUri?: vscode.Uri) { config = config || await Quickly.pickCdsOrganization(ExtensionContext.Instance, "Choose a CDS Organization", true); if (!config) { logger.warn(`Command: ${cs.cds.deployment.createCrmSvcUtilConfig} Organization not chosen, command cancelled`); @@ -39,5 +41,8 @@ export default async function run(config?: CdsWebApi.Config, defaultUri?: vscode FileSystem.writeFileSync(defaultUri.fsPath, configFile); } + const xml = await Xml.parseFile(defaultUri.fsPath); + const viewModel = this.parseXml(xml); + await ViewManager.openSvcUtilConfiguration(config); } \ No newline at end of file diff --git a/src/components/CodeGeneration/CodeGenerationManager.ts b/src/components/CodeGeneration/CodeGenerationManager.ts index ad3ad85..ddc95e8 100644 --- a/src/components/CodeGeneration/CodeGenerationManager.ts +++ b/src/components/CodeGeneration/CodeGenerationManager.ts @@ -8,32 +8,46 @@ import { CdsWebApi } from '../../api/cds-webapi/CdsWebApi'; export default class CodeGenerationManager { @command(cs.cds.controls.explorer.generateEntityCodeToFile, "Generate entity code to a file") - static async generateEntityCodeToFile(file?:vscode.Uri) { + async generateEntityCodeToFile(file?:vscode.Uri) { return await vscode.commands.executeCommand(cs.cds.powerShell.generateEntities, undefined, path.dirname(file.fsPath), path.basename(file.fsPath), undefined); } @command(cs.cds.controls.explorer.generateEntityCodeToFolder, "Generate entity code to a folder") - static async generateEntityCodeToFolder(folder?:vscode.Uri) { + async generateEntityCodeToFolder(folder?:vscode.Uri) { return await vscode.commands.executeCommand(cs.cds.powerShell.generateEntities, undefined, folder.fsPath, undefined, undefined); } @command(cs.cds.controls.explorer.createCrmSvcUtilConfig, "Create or edit CrmSvcUtil.exe.config from File Explorer") - static async createCrmSvcUtilConfigToFile(defaultUri?: vscode.Uri) { + async createCrmSvcUtilConfigToFile(defaultUri?: vscode.Uri) { return await vscode.commands.executeCommand(cs.cds.deployment.createCrmSvcUtilConfig, undefined, defaultUri); } @command(cs.cds.controls.cdsExplorer.createCrmSvcUtilConfig, "Create or edit CrmSvcUtil.exe.config from CDS Explorer") - static async createCrmSvcUtilConfigFromConfig(config?: CdsWebApi.Config) { + async createCrmSvcUtilConfigFromConfig(config?: CdsWebApi.Config) { return await vscode.commands.executeCommand(cs.cds.deployment.createCrmSvcUtilConfig, config, undefined); } @command(cs.cds.powerShell.generateEntities, "Generate entity code using CrmSvcUtil") - static async generateEntities(config?: CdsWebApi.Config, folder?: string, outputFileName?: string, namespace?: string) { + async generateEntities(config?: CdsWebApi.Config, folder?: string, outputFileName?: string, namespace?: string) { generateEntities.apply(this, [config, folder, outputFileName, namespace]); } @command(cs.cds.deployment.createCrmSvcUtilConfig, "Create or edit CrmSvcUtil.exe.config") - static async createCrmSvcUtilConfig(config?: CdsWebApi.Config, file?: vscode.Uri) { + async createCrmSvcUtilConfig(config?: CdsWebApi.Config, file?: vscode.Uri) { createCrmSvcUtilConfig.apply(this, [config, file]); } + + parseXml(xml: any): any { + const viewModel = { + filterRules: [], + namingRules: [], + codeGeneration: { namingRules: [] } + }; + + xml.configuration?.ServiceExtensions[0]?.Filtering[0]?.Whitelist[0]?.Entities[0]?.add?.forEach(e => { + viewModel.filterRules.push({ id: `whitelist.entity.exact-match.${e.$.entity}`, listType: 'whitelist', scope: 'entity', ruleType: 'exact-match', value: e.$.entity }); + }); + + return viewModel; + } } \ No newline at end of file From 561af130b08e714cbf0c68ad0922ede288586de7 Mon Sep 17 00:00:00 2001 From: Brandon Kelly Date: Tue, 4 Feb 2020 11:47:23 -0500 Subject: [PATCH 3/6] fixes for XML data load --- ...ws_svcutilconfigview_.svcutilconfigview.md | 5 +- .../_views_viewmanager_.viewmanager.md | 3 +- ..._cds_deployment_createcrmsvcutilconfig_.md | 14 ++-- .../_views_cs_cds_views_svcutilconfigview_.md | 3 +- resources/scripts/svcutil-config.js | 17 ++++- ...s.cds.deployment.createCrmSvcUtilConfig.ts | 10 ++- .../CodeGeneration/CodeGenerationManager.ts | 76 ++++++++++++++++++- src/components/CodeGeneration/SvcConfig.json | 50 ++++++++++++ src/views/ViewManager.ts | 4 +- src/views/cs.cds.views.svcUtilConfigView.ts | 20 +++-- 10 files changed, 174 insertions(+), 28 deletions(-) create mode 100644 src/components/CodeGeneration/SvcConfig.json diff --git a/docs/extension/api/classes/_views_cs_cds_views_svcutilconfigview_.svcutilconfigview.md b/docs/extension/api/classes/_views_cs_cds_views_svcutilconfigview_.svcutilconfigview.md index 67b2ac7..2690064 100644 --- a/docs/extension/api/classes/_views_cs_cds_views_svcutilconfigview_.svcutilconfigview.md +++ b/docs/extension/api/classes/_views_cs_cds_views_svcutilconfigview_.svcutilconfigview.md @@ -275,15 +275,16 @@ ___ ### setInitialState -▸ **setInitialState**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md)): *Promise‹void›* +▸ **setInitialState**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `viewModel?`: any): *Promise‹void›* -Defined in src/views/cs.cds.views.svcUtilConfigView.ts:61 +Defined in src/views/cs.cds.views.svcUtilConfigView.ts:60 **Parameters:** Name | Type | ------ | ------ | `config?` | [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md) | +`viewModel?` | any | **Returns:** *Promise‹void›* diff --git a/docs/extension/api/classes/_views_viewmanager_.viewmanager.md b/docs/extension/api/classes/_views_viewmanager_.viewmanager.md index dd12e2c..f1e9522 100644 --- a/docs/extension/api/classes/_views_viewmanager_.viewmanager.md +++ b/docs/extension/api/classes/_views_viewmanager_.viewmanager.md @@ -120,7 +120,7 @@ ___ ### `Static` openSvcUtilConfiguration -▸ **openSvcUtilConfiguration**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md)): *Promise‹[View](_core_webui_view_.view.md)›* +▸ **openSvcUtilConfiguration**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `viewModel?`: any): *Promise‹[View](_core_webui_view_.view.md)›* Defined in src/views/ViewManager.ts:44 @@ -129,5 +129,6 @@ Defined in src/views/ViewManager.ts:44 Name | Type | ------ | ------ | `config?` | [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md) | +`viewModel?` | any | **Returns:** *Promise‹[View](_core_webui_view_.view.md)›* diff --git a/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md b/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md index 2952650..db48ae3 100644 --- a/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md +++ b/docs/extension/api/modules/_commands_cs_cds_deployment_createcrmsvcutilconfig_.md @@ -18,20 +18,20 @@ sidebar_label: "commands/cs.cds.deployment.createCrmSvcUtilConfig" ▸ **run**(`this`: [CodeGenerationManager](../classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md), `config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `defaultUri?`: Uri): *Promise‹void›* -Defined in src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts:21 +Defined in src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts:23 This command can be invoked by the by either the file explorer view or the CDS Explorer and can create a blank crmsvcutil.exe.config file or open an existing one up in the editor. -**`export`** run command function +**`export`** run command function, this is the default binding that will be invoked with the command. **Parameters:** -Name | Type | ------- | ------ | -`this` | [CodeGenerationManager](../classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md) | -`config?` | [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md) | -`defaultUri?` | Uri | +Name | Type | Description | +------ | ------ | ------ | +`this` | [CodeGenerationManager](../classes/_components_codegeneration_codegenerationmanager_.codegenerationmanager.md) | is a manager that handles code generation tasks (helpers) | +`config?` | [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md) | - | +`defaultUri?` | Uri | - | **Returns:** *Promise‹void›* diff --git a/docs/extension/api/modules/_views_cs_cds_views_svcutilconfigview_.md b/docs/extension/api/modules/_views_cs_cds_views_svcutilconfigview_.md index 87c157e..34aba46 100644 --- a/docs/extension/api/modules/_views_cs_cds_views_svcutilconfigview_.md +++ b/docs/extension/api/modules/_views_cs_cds_views_svcutilconfigview_.md @@ -32,7 +32,7 @@ Defined in src/views/cs.cds.views.svcUtilConfigView.ts:9 ### openView -▸ **openView**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md)): *Promise‹[View](../classes/_core_webui_view_.view.md)›* +▸ **openView**(`config?`: [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md), `viewModel?`: any): *Promise‹[View](../classes/_core_webui_view_.view.md)›* Defined in src/views/cs.cds.views.svcUtilConfigView.ts:12 @@ -41,5 +41,6 @@ Defined in src/views/cs.cds.views.svcUtilConfigView.ts:12 Name | Type | ------ | ------ | `config?` | [Config](../interfaces/_api_cds_webapi_cdswebapi_.cdswebapi.config.md) | +`viewModel?` | any | **Returns:** *Promise‹[View](../classes/_core_webui_view_.view.md)›* diff --git a/resources/scripts/svcutil-config.js b/resources/scripts/svcutil-config.js index 8a79d84..e472fcd 100644 --- a/resources/scripts/svcutil-config.js +++ b/resources/scripts/svcutil-config.js @@ -77,6 +77,21 @@ bindSelect($(element), window.dataCache.solutionMap, !element.multiple ? "- Select Solution -" : undefined); }); + // cache html for mustache template + const filterRuleTemplate = $("#filter-rule-template").html(); + const namingRuleTemplate = $("#naming-rule-template").html(); + const codeGenerationNamingRuleTemplate = $("#code-generation-fileNaming-rule-template").html(); + + // cache template in mustache + Mustache.parse(filterRuleTemplate); + Mustache.parse(namingRuleTemplate); + Mustache.parse(codeGenerationNamingRuleTemplate); + + renderTemplate(filterRuleTemplate, window.dataCache.filterRules.filter(i => i.listType === 'whitelist'), 'whitelist'); + renderTemplate(filterRuleTemplate, window.dataCache.filterRules.filter(i => i.listType === 'blacklist'), 'blacklist'); + renderTemplate(namingRuleTemplate, window.dataCache.namingRules, "naming"); + renderTemplate(codeGenerationNamingRuleTemplate, window.dataCache.codeGeneration.namingRules, listType); + // hide initialize info box $("#loadingPanel").hide(); } @@ -163,7 +178,7 @@ items.push({ id: idPrefix + value, listType, scope: itemType, value, ruleType: 'exact-match', options }); }); } else { - let value; + let value = form[`${listType}-${itemType}-selections`]; if (itemType === 'entity') { value = window.dataCache.entities.filter(e => e.MetadataId === form[`${listType}-${itemType}-selections`])[0].LogicalName; diff --git a/src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts b/src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts index 7c1c8e4..502556e 100644 --- a/src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts +++ b/src/commands/cs.cds.deployment.createCrmSvcUtilConfig.ts @@ -14,8 +14,10 @@ import CodeGenerationManager from "../components/CodeGeneration/CodeGenerationMa /** * This command can be invoked by the by either the file explorer view or the CDS Explorer * and can create a blank crmsvcutil.exe.config file or open an existing one up in the editor. - * @export run command function - * @param {vscode.Uri} [defaultUri] that invoked the command + * @export run command function, this is the default binding that will be invoked with the command. + * @param {CodeGenerationManager} this is a manager that handles code generation tasks (helpers) + * @param {CdsWebApi.Config} [config] indicating where to connect to a CDS instance + * @param {vscode.Uri} [defaultUri] location of where the crmsvcutil.exe.config file should be created/modified * @returns void */ export default async function run(this: CodeGenerationManager, config?: CdsWebApi.Config, defaultUri?: vscode.Uri) { @@ -43,6 +45,6 @@ export default async function run(this: CodeGenerationManager, config?: CdsWebAp const xml = await Xml.parseFile(defaultUri.fsPath); const viewModel = this.parseXml(xml); - - await ViewManager.openSvcUtilConfiguration(config); + + await ViewManager.openSvcUtilConfiguration(config, viewModel); } \ No newline at end of file diff --git a/src/components/CodeGeneration/CodeGenerationManager.ts b/src/components/CodeGeneration/CodeGenerationManager.ts index ddc95e8..e63a9a5 100644 --- a/src/components/CodeGeneration/CodeGenerationManager.ts +++ b/src/components/CodeGeneration/CodeGenerationManager.ts @@ -43,10 +43,80 @@ export default class CodeGenerationManager { namingRules: [], codeGeneration: { namingRules: [] } }; + + if (!xml.configuration) { + return; + } + + const serviceExtensionsElement = xml.configuration?.ServiceExtensions?.length > 0 ? xml.configuration.ServiceExtensions[0] : undefined; + const filteringElement = serviceExtensionsElement.Filtering?.length > 0 ? serviceExtensionsElement.Filtering[0] : undefined; + + if (filteringElement) { + [ 'whitelist', 'blacklist '].forEach(list => { + const listElement = (list === 'whitelist' && filteringElement?.Whitelist?.length > 0) + ? filteringElement?.Whitelist[0] + : (list === 'blacklist' && filteringElement?.Blacklist?.length > 0) + ? filteringElement?.Blacklist[0] + : undefined; + + if (!listElement) { + return; + } + + // entities + if (listElement.Entities && listElement.Entities?.length > 0) { + listElement.Entities[0]?.add?.forEach(e => { + viewModel.filterRules.push({ id: `${list}.entity.exact-match.${e.$.entity}`, listType: list, scope: 'entity', ruleType: 'exact-match', value: e.$.entity }); + }); + } + + // attributes + if (listElement.Attributes && listElement.Attributes?.length > 0) { + listElement.Attributes[0]?.add?.forEach(e => { + viewModel.filterRules.push({ id: `${list}.attribute.exact-match.${e.$.entity}.${e.$.attribute}`, listType: list, scope: 'attribute', ruleType: 'exact-match', value: e.$.attribute, options: { entity: e.$.entity || '*' } }); + }); + } + + // option sets + if (listElement.OptionSets && listElement.OptionSets?.length > 0) { + listElement.OptionSets[0]?.add?.forEach(e => { + viewModel.filterRules.push({ id: `${list}.optionSet.exact-match.${e.$.entity}.${e.$.optionSet}`, listType: list, scope: 'optionSet', ruleType: 'exact-match', value: e.$.optionSet, options: { entity: e.$.entity || '*' } }); + }); + } + + // solutions + if (listElement.Solutions && listElement.Solutions?.length > 0) { + listElement.Solutions[0]?.add?.forEach(e => { + viewModel.filterRules.push({ id: `${list}.solution.exact-match.${e.$.solution}`, listType: list, scope: 'solution', ruleType: 'exact-match', value: e.$.solution }); + }); + } + + // filters + if (listElement.Filters && listElement.Filters?.length > 0 ) { + listElement.Filters?.forEach(f => { + Object.keys(f).forEach(key => { + var obj = f[key][0]; - xml.configuration?.ServiceExtensions[0]?.Filtering[0]?.Whitelist[0]?.Entities[0]?.add?.forEach(e => { - viewModel.filterRules.push({ id: `whitelist.entity.exact-match.${e.$.entity}`, listType: 'whitelist', scope: 'entity', ruleType: 'exact-match', value: e.$.entity }); - }); + viewModel.filterRules.push({ id: `${list}.${key}.regex.${obj.$.expression}`, listType: list, scope: key, ruleType: 'regex', value: obj.$.expression, options: { ignoreCase: obj.$.ignoreCase, entity: obj.$.entity } }); + }); + }); + } + }); + } + + const namingElement = serviceExtensionsElement?.Naming && serviceExtensionsElement?.Naming?.length > 0 ? serviceExtensionsElement?.Naming[0] : undefined; + + if (namingElement?.MappingRules && namingElement?.MappingRules?.length > 0) { + namingElement.MappingRules[0]?.add?.forEach(m => { + viewModel.namingRules.push({ id: `${m.$.type}.${m.$.from}`, scope: m.$.type, ruleType: 'Mapping', oldValue: m.$.from, newValue: m.$.to }); + }); + } + + if (namingElement?.PublisherRules && namingElement?.PublisherRules?.length > 0) { + namingElement.PublisherRules[0]?.add?.forEach(p => { + viewModel.namingRules.push({ id: `Publisher.${p.$.name}`, ruleType: 'Publisher', oldValue: p.$.name, newValue: p.$.action && p.$.action === "remove" ? "" : p.$.replacement }); + }); + } return viewModel; } diff --git a/src/components/CodeGeneration/SvcConfig.json b/src/components/CodeGeneration/SvcConfig.json new file mode 100644 index 0000000..ddcb1fd --- /dev/null +++ b/src/components/CodeGeneration/SvcConfig.json @@ -0,0 +1,50 @@ +{ + "codeGeneration": { + "namingRules": [{ + "fileType": "Entities", + "format": "{0}.{1}.{2}.cs", + "id": "undefined.undefined", + "strategy": "OneFilePerItem" + }] + }, + "filterRules": [{ + "id": "whitelist.attribute.exact-match.aciviewmapper.createdon", + "listType": "whitelist", + "options": { + "entity": "aciviewmapper" + }, + "ruleType": "exact-match", + "scope": "attribute", + "value": "createdon" + }, { + "id": "whitelist.optionSet.exact-match.activity_typecode", + "listType": "whitelist", + "options": {}, + "ruleType": "exact-match", + "scope": "optionSet", + "value": "activity_typecode" + }, { + "id": "whitelist.optionSet.exact-match.activitypointer_isemailfollowed", + "listType": "whitelist", + "options": {}, + "ruleType": "exact-match", + "scope": "optionSet", + "value": "activitypointer_isemailfollowed" + }, { + "id": "whitelist.optionSet.regex", + "listType": "whitelist", + "options": { + "ignoreCase": false + }, + "ruleType": "regex", + "scope": "optionSet", + "value": "test" + }], + "namingRules": [{ + "id": "attribute.*.accountid", + "newValue": "id", + "oldValue": "*.accountid", + "ruleType": "Mapping", + "scope": "attribute" + }] +} \ No newline at end of file diff --git a/src/views/ViewManager.ts b/src/views/ViewManager.ts index a9cb6cf..8e3d22f 100644 --- a/src/views/ViewManager.ts +++ b/src/views/ViewManager.ts @@ -41,7 +41,7 @@ export default class ViewManager { } @command(cs.cds.controls.svcUtilConfig.open, "Open SvcUtil configuration view") - static async openSvcUtilConfiguration(config?: CdsWebApi.Config): Promise { - return await svcUtilConfigView.apply(this, [config]); + static async openSvcUtilConfiguration(config?: CdsWebApi.Config, viewModel?: any): Promise { + return await svcUtilConfigView.apply(this, [ config, viewModel ]); } } \ No newline at end of file diff --git a/src/views/cs.cds.views.svcUtilConfigView.ts b/src/views/cs.cds.views.svcUtilConfigView.ts index 461c57f..7149cf3 100644 --- a/src/views/cs.cds.views.svcUtilConfigView.ts +++ b/src/views/cs.cds.views.svcUtilConfigView.ts @@ -9,12 +9,12 @@ import MetadataRepository from '../repositories/metadataRepository'; import async = require('async'); import ApiRepository from '../repositories/apiRepository'; -export default async function openView(config?: CdsWebApi.Config): Promise { +export default async function openView(config?: CdsWebApi.Config, viewModel?: any): Promise { const view = View.show(SvcUtilConfigView, { icon: './resources/images/cloudsmith-logo-only-50px.png', title: 'Configure entity code generation - CDS', type: cs.cds.views.svcUtilConfigView, - onReady: view => view.setInitialState(config) + onReady: view => view.setInitialState(config, viewModel) }); return view; @@ -52,16 +52,17 @@ class SvcUtilConfigView extends View { this.postMessage({ command: 'updateAttributes', attributes, targetElem }); } - private save(config :any) { - - Quickly.inform(`SvcUtil Configuration was saved.`); + private save(config :any) { + Quickly.inform(`CrmSvcUtil Configuration was saved.`); this.dispose(); } - async setInitialState(config?: CdsWebApi.Config) { + async setInitialState(config?: CdsWebApi.Config, viewModel?: any) { this.config = config || await Quickly.pickCdsOrganization(ExtensionContext.Instance, "Choose a CDS Organization", true); if (!this.config) { return; } + viewModel = viewModel || {}; + const metaApi = new MetadataRepository(this.config); const webApi = new ApiRepository(this.config); @@ -79,11 +80,16 @@ class SvcUtilConfigView extends View { const solutions = await webApi.retrieveSolutions(); callback(null, solutions.filter(i => !i.ismanaged && i.isvisible)); } - }, (error: any, viewModel: any) => { + }, (error: any, taskResults: any) => { if (error) { Quickly.error(error.message); return; } + + viewModel.entities = taskResults.entities; + viewModel.optionsets = taskResults.optionsets; + viewModel.solutions = taskResults.solutions; + // set the initial state this.postMessage({ command: 'load', viewModel }); }); From 944192687563dca2746c492fa199cbaaf5a9d2a4 Mon Sep 17 00:00:00 2001 From: Brandon Kelly Date: Wed, 5 Feb 2020 17:05:10 -0500 Subject: [PATCH 4/6] fix for recursion in clone method --- src/repositories/discoveryRepository.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/repositories/discoveryRepository.ts b/src/repositories/discoveryRepository.ts index ace4afe..20370c6 100644 --- a/src/repositories/discoveryRepository.ts +++ b/src/repositories/discoveryRepository.ts @@ -70,7 +70,7 @@ export default class DiscoveryRepository { static createOrganizationConnection(org: any, connection: CdsWebApi.Config): CdsWebApi.Config { const versionSplit = org.Version.split('.'); // Clone the current connection and override the endpoint and version. - const orgConnection = Utilities.$Object.clone(connection); + const orgConnection = Utilities.$Object.clone(connection, undefined, [ "onDidAuthenticate", "onInteractiveLoginRequired", "credentials" ] ); if ((orgConnection).accessToken) { delete (orgConnection).accessToken; @@ -95,7 +95,14 @@ export default class DiscoveryRepository { orgConnection.credentials = e.credentials; } }); + + (orgConnection.credentials).onInteractiveLoginRequired(e => { + if (e.success) { + (orgConnection.credentials).isMultiFactorAuthentication = true; + } + }); } + return orgConnection; } } \ No newline at end of file From c9549611fd6816ba7d43accfc778370ab34dc751 Mon Sep 17 00:00:00 2001 From: Brandon Kelly Date: Wed, 5 Feb 2020 19:47:07 -0500 Subject: [PATCH 5/6] updates required for crmsvcutil --- package.json | 79 ++++--- resources/scripts/main.js | 19 -- resources/scripts/svcutil-config.js | 65 +++++- .../BuiltInTemplates/crmsvcutil.config.xml | 4 +- .../CrmSvcUtil.exe.config | 4 +- resources/webviews/plugin-step-editor.html | 15 +- resources/webviews/svcutil-config.html | 23 +- ...s.cds.deployment.createCrmSvcUtilConfig.ts | 2 + .../cs.cds.deployment.saveCrmSvcUtilConfig.ts | 43 ++++ .../CodeGeneration/CodeGenerationManager.ts | 201 ++++++++++++++++-- src/components/CodeGeneration/SvcConfig.json | 50 ----- src/cs.ts | 2 + src/views/cs.cds.views.svcUtilConfigView.ts | 8 +- 13 files changed, 363 insertions(+), 152 deletions(-) create mode 100644 src/commands/cs.cds.deployment.saveCrmSvcUtilConfig.ts delete mode 100644 src/components/CodeGeneration/SvcConfig.json diff --git a/package.json b/package.json index dea0b95..278f78a 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "onCommand:cs.cds.controls.explorer.createFromProjectTemplate", "onCommand:cs.cds.controls.explorer.dotNetBuild", "onCommand:cs.cds.controls.explorer.dotNetTest", + "onCommand:cs.cds.controls.explorer.editCrmSvcUtilConfig", "onCommand:cs.cds.controls.explorer.generateEntityCodeToFolder", "onCommand:cs.cds.controls.explorer.generateEntityCodeToFile", "onCommand:cs.cds.controls.explorer.packSolutionFromFolder", @@ -313,6 +314,11 @@ "title": "Test project", "category": "UserInterface" }, + { + "command": "cs.cds.controls.explorer.editCrmSvcUtilConfig", + "title": "Edit CrmSvcUtil Configuration", + "category": "UserInterface" + }, { "command": "cs.cds.controls.explorer.generateEntityCodeToFolder", "title": "Generate CDS entity classes", @@ -605,6 +611,10 @@ }, "menus": { "commandPalette": [ + { + "command": "cs.cds.controls.explorer.createCrmSvcUtilConfig", + "when": "false" + }, { "command": "cs.cds.controls.explorer.createFromItemTemplate", "when": "false" @@ -625,6 +635,10 @@ "command": "cs.cds.controls.explorer.dotNetTest", "when": "false" }, + { + "command": "cs.cds.controls.explorer.editCrmSvcUtilConfig", + "when": "false" + }, { "command": "cs.cds.controls.explorer.generateEntityCodeToFolder", "when": "false" @@ -767,6 +781,36 @@ } ], "explorer/context": [ + { + "command": "cs.cds.controls.explorer.createFromItemTemplate", + "when": "explorerResourceIsFolder", + "group": "navigation@1" + }, + { + "command": "cs.cds.controls.explorer.createFromProjectTemplate", + "when": "explorerResourceIsFolder", + "group": "navigation@2" + }, + { + "command": "cs.cds.controls.explorer.createWebResource", + "when": "explorerResourceIsFolder", + "group": "navigation@3" + }, + { + "command": "cs.cds.controls.explorer.createCrmSvcUtilConfig", + "when": "explorerResourceIsFolder", + "group": "navigation@4" + }, + { + "command": "cs.cds.controls.explorer.saveTemplateFile", + "when": "explorerResourceIsFolder != true", + "group": "navigation@999" + }, + { + "command": "cs.cds.controls.explorer.saveTemplateFolder", + "when": "explorerResourceIsFolder", + "group": "navigation@999" + }, { "command": "cs.cds.controls.explorer.dotNetBuild", "when": "explorerResourceIsFolder == true || resourceExtname == .csproj || resourceExtname == .vbproj", @@ -782,6 +826,11 @@ "when": "resourceExtname == .zip", "group": "build@3" }, + { + "command": "cs.cds.controls.explorer.editCrmSvcUtilConfig", + "when": "explorerResourceIsFolder != true && resourceExtname == .config", + "group": "generateCode@1" + }, { "command": "cs.cds.controls.explorer.generateEntityCodeToFile", "when": "explorerResourceIsFolder != true && resourceLangId == csharp || resourceLangId == vb", @@ -811,36 +860,6 @@ "command": "cs.cds.controls.explorer.registerPluginFile", "when": "explorerResourceIsFolder != true && resourceExtname == .csproj || resourceExtname == .vbproj || resourceExtname == .dll", "group": "zzz_azuretools_deploy@4" - }, - { - "command": "cs.cds.controls.explorer.createFromItemTemplate", - "when": "explorerResourceIsFolder", - "group": "navigation@1" - }, - { - "command": "cs.cds.controls.explorer.createFromProjectTemplate", - "when": "explorerResourceIsFolder", - "group": "navigation@2" - }, - { - "command": "cs.cds.controls.explorer.createWebResource", - "when": "explorerResourceIsFolder", - "group": "navigation@3" - }, - { - "command": "cs.cds.controls.explorer.createCrmSvcUtilConfig", - "when": "explorerResourceIsFolder || resourceExtname == .config", - "group": "navigation@4" - }, - { - "command": "cs.cds.controls.explorer.saveTemplateFile", - "when": "explorerResourceIsFolder != true", - "group": "navigation@999" - }, - { - "command": "cs.cds.controls.explorer.saveTemplateFolder", - "when": "explorerResourceIsFolder", - "group": "navigation@999" } ], "view/title": [ diff --git a/resources/scripts/main.js b/resources/scripts/main.js index f003f0a..e144c3c 100644 --- a/resources/scripts/main.js +++ b/resources/scripts/main.js @@ -6,9 +6,6 @@ // cloudsmith utilities const CloudSmith = window.CloudSmith || {}; - CloudSmith.LocalBridge = typeof require !== "undefined" && require("./LocalBridge"); - CloudSmith.WebSocketBridge = typeof require !== "undefined" && require('./WebSocketBridge'); - CloudSmith.getHost = function() { host = host || acquireVsCodeApi(); @@ -19,22 +16,6 @@ return host; }; - CloudSmith.getBridge = function(options) { - if (!bridge && options) { - if ((options.type && options.type === 'local' && CloudSmith.LocalBridge) - || (typeof options === 'string' && options === 'local')) { - bridge = new CloudSmith.LocalBridge(window, CloudSmith.getHost()); - } - - if ((options.type && options.type === 'websocket' && CloudSmith.WebSocketBridge) - || (typeof options === 'string' && options === 'websocket')) { - bridge = new CloudSmith.WebSocketBridge(options.address || 'localhost:8080'); - } - } - - return bridge; - }; - CloudSmith.System = { closeWindow: function() { CloudSmith.getHost().postMessage({command: "system:closeWindow" }); diff --git a/resources/scripts/svcutil-config.js b/resources/scripts/svcutil-config.js index e472fcd..461ab5b 100644 --- a/resources/scripts/svcutil-config.js +++ b/resources/scripts/svcutil-config.js @@ -54,15 +54,17 @@ function setInitialState(viewModel) { // form load here window.dataCache = { + options: { fsPath: viewModel.options ? viewModel.options.fsPath : undefined }, entities: viewModel.entities, optionsets: viewModel.optionsets, solutions: viewModel.solutions, entityMap: _.map(viewModel.entities, i => { return { value: i.MetadataId, text: i.LogicalName } }), optionsetMap: _.map(viewModel.optionsets, i => { return { value: i.Name, text: i.Name } }), solutionMap: _.map(viewModel.solutions, i => { return { value: i.uniquename, text: i.uniquename } }), + filterOptions: viewModel.filterOptions || { }, filterRules: viewModel.filterRules || [], namingRules: viewModel.namingRules || [], - codeGeneration: { namingRules: viewModel.codeGeneration && viewModel.codeGeneration.namingRules ? viewModel.codeGeneration.namingRules : [] } + codeGeneration: viewModel.codeGeneration || { namingRules: [], behaviors: {} } } $("[data-source='Entities']").each(function (index, element) { @@ -82,6 +84,35 @@ const namingRuleTemplate = $("#naming-rule-template").html(); const codeGenerationNamingRuleTemplate = $("#code-generation-fileNaming-rule-template").html(); + if (window.dataCache.filterOptions.whitelistMode) { + const $control = $('[data-action="whitelist-filtermode"]'); + const newMode = window.dataCache.filterOptions.whitelistMode === 'Eclusive' ? 'Inclusive' : 'Exclusive'; + const newText = `Switch to ${$control.attr("data-value")} Whitelist`; + + $control.attr("data-value") = newMode; + $control.attr('title', newText) + $control.text(newText); + } + + if (window.dataCache.codeGeneration.path) { + $("#code-generation-outputPath").val(window.dataCache.codeGeneration.path); + } + + if (window.dataCache.codeGeneration.language) { + $("#code-generation-outputLanguage").val(window.dataCache.codeGeneration.language); + $("#code-generation-outputLanguage").formSelect(); + } + + if (window.dataCache.codeGeneration.behaviors) { + if (window.dataCache.codeGeneration.behaviors.translateOptionSetsAsEnums) { + $("#code-generation-translateOptionSets").prop("checked", true); + } + + if (window.dataCache.codeGeneration.behaviors.importNamespaces) { + $("#code-generation-defaultImports").val(window.dataCache.codeGeneration.behaviors.importNamespaces); + } + } + // cache template in mustache Mustache.parse(filterRuleTemplate); Mustache.parse(namingRuleTemplate); @@ -90,7 +121,7 @@ renderTemplate(filterRuleTemplate, window.dataCache.filterRules.filter(i => i.listType === 'whitelist'), 'whitelist'); renderTemplate(filterRuleTemplate, window.dataCache.filterRules.filter(i => i.listType === 'blacklist'), 'blacklist'); renderTemplate(namingRuleTemplate, window.dataCache.namingRules, "naming"); - renderTemplate(codeGenerationNamingRuleTemplate, window.dataCache.codeGeneration.namingRules, listType); + renderTemplate(codeGenerationNamingRuleTemplate, window.dataCache.codeGeneration.namingRules, "code-generation-fileNaming"); // hide initialize info box $("#loadingPanel").hide(); @@ -291,29 +322,40 @@ Mustache.parse(namingRuleTemplate); Mustache.parse(codeGenerationNamingRuleTemplate); - $('[data-action=whitelist-add').click(function() { + $('[data-action="whitelist-filtermode"]').click(function() { + const $this = $(this); + const currentMode = $this.attr('data-value'); + const newMode = currentMode === 'Exclusive' ? 'Inclusive' : 'Exclusive'; + const newText = `Switch to ${currentMode} Whitelist`; + + $this.attr('data-value', newMode); + $this.attr('title', newText) + $this.text(newText); + }); + + $('[data-action="whitelist-add"]').click(function() { $("#whitelist-nullpanel").hide(); $("#whitelist-addpanel").show(); }); - $('[data-action=blacklist-add').click(function() { + $('[data-action="blacklist-add"]').click(function() { $("#blacklist-nullpanel").hide(); $("#blacklist-addpanel").show(); }); - $('[data-action=naming-add-mapping').click(function() { + $('[data-action="naming-add-mapping"]').click(function() { $("#naming-nullpanel").hide(); $("#naming-publisher-addpanel").hide(); $("#naming-mapping-addpanel").show(); }); - $('[data-action=naming-add-publisher').click(function() { + $('[data-action="naming-add-publisher"]').click(function() { $("#naming-nullpanel").hide(); $("#naming-mapping-addpanel").hide(); $("#naming-publisher-addpanel").show(); }); - $('[data-action=code-generation-fileNaming-add').click(function() { + $('[data-action="code-generation-fileNaming-add"]').click(function() { $("#code-generation-fileNaming-nullpanel").hide(); $("#code-generation-fileNaming-addpanel").show(); }); @@ -430,9 +472,18 @@ // wire up click handler for the submit button $("[data-action='save']").click(function() { + // Save the handful of properties that aren't auto-saved. + window.dataCache.filterOptions.whitelistMode = $('[data-action="whitelist-filtermode"]').attr("data-value"); + window.dataCache.codeGeneration.path = $("#code-generation-outputPath").val(); + window.dataCache.codeGeneration.language = $("#code-generation-outputLanguage").val(); + window.dataCache.codeGeneration.behaviors.translateOptionSetsAsEnums = $("#code-generation-translateOptionSets").prop("checked"); + window.dataCache.codeGeneration.behaviors.importNamespaces = $("#code-generation-defaultImports").val(); + vscode.postMessage({ command: 'save', config: { + options: window.dataCache.options, + filterOptions: window.dataCache.filterOptions, filterRules: window.dataCache.filterRules, namingRules: window.dataCache.namingRules, codeGeneration: window.dataCache.codeGeneration diff --git a/resources/templates/BuiltInTemplates/crmsvcutil.config.xml b/resources/templates/BuiltInTemplates/crmsvcutil.config.xml index f97bace..085a5e6 100644 --- a/resources/templates/BuiltInTemplates/crmsvcutil.config.xml +++ b/resources/templates/BuiltInTemplates/crmsvcutil.config.xml @@ -26,7 +26,7 @@ - + @@ -48,7 +48,7 @@ - + diff --git a/resources/tools/CloudSmith.Cds.CrmSvcUtil/CrmSvcUtil.exe.config b/resources/tools/CloudSmith.Cds.CrmSvcUtil/CrmSvcUtil.exe.config index eab9aef..c8b8dc0 100644 --- a/resources/tools/CloudSmith.Cds.CrmSvcUtil/CrmSvcUtil.exe.config +++ b/resources/tools/CloudSmith.Cds.CrmSvcUtil/CrmSvcUtil.exe.config @@ -90,7 +90,7 @@ - + @@ -112,7 +112,7 @@ - + diff --git a/resources/webviews/plugin-step-editor.html b/resources/webviews/plugin-step-editor.html index ded95d9..8048299 100644 --- a/resources/webviews/plugin-step-editor.html +++ b/resources/webviews/plugin-step-editor.html @@ -1,22 +1,15 @@ - -