diff --git a/webui/package-lock.json b/webui/package-lock.json index f86f9fd1c..21632a20a 100644 --- a/webui/package-lock.json +++ b/webui/package-lock.json @@ -824,9 +824,9 @@ } }, "node_modules/@oracle/wrc-jet-pack": { - "version": "2.3.0-develop.202204212326", - "resolved": "https://registry.npmjs.org/@oracle/wrc-jet-pack/-/wrc-jet-pack-2.3.0-develop.202204212326.tgz", - "integrity": "sha512-/IYxar1j6CDC9j7JwXDI4Miz8gQ51LEkaGu8uYQgguJZcBG6Bk1/3sBe1TRtC0b1SBBiFIi/hbSK31HOLOiJjg==", + "version": "2.3.0-develop.202204261615", + "resolved": "https://registry.npmjs.org/@oracle/wrc-jet-pack/-/wrc-jet-pack-2.3.0-develop.202204261615.tgz", + "integrity": "sha512-Ueof0XuTBggll/cwLkEjC9Bq1qK7bGZTngPjra+gOezE7Es6ey0EvkDdfZx0J8tA3+ixjTcyMGQla0SVNBvdNQ==", "engines": { "node": ">=4.0.0" } @@ -7599,9 +7599,9 @@ } }, "@oracle/wrc-jet-pack": { - "version": "2.3.0-develop.202204212326", - "resolved": "https://registry.npmjs.org/@oracle/wrc-jet-pack/-/wrc-jet-pack-2.3.0-develop.202204212326.tgz", - "integrity": "sha512-/IYxar1j6CDC9j7JwXDI4Miz8gQ51LEkaGu8uYQgguJZcBG6Bk1/3sBe1TRtC0b1SBBiFIi/hbSK31HOLOiJjg==" + "version": "2.3.0-develop.202204261615", + "resolved": "https://registry.npmjs.org/@oracle/wrc-jet-pack/-/wrc-jet-pack-2.3.0-develop.202204261615.tgz", + "integrity": "sha512-Ueof0XuTBggll/cwLkEjC9Bq1qK7bGZTngPjra+gOezE7Es6ey0EvkDdfZx0J8tA3+ixjTcyMGQla0SVNBvdNQ==" }, "@tootallnate/once": { "version": "2.0.0", diff --git a/webui/src/js/viewModels/model-design-view.js b/webui/src/js/viewModels/model-design-view.js index ddfe4f71e..00cdc723c 100644 --- a/webui/src/js/viewModels/model-design-view.js +++ b/webui/src/js/viewModels/model-design-view.js @@ -4,9 +4,9 @@ * Licensed under The Universal Permissive License (UPL), Version 1.0 as shown at https://oss.oracle.com/licenses/upl/ */ define(['accUtils', 'utils/i18n', 'knockout', 'models/wkt-project', 'utils/url-catalog', 'utils/view-helper', - 'utils/wkt-logger', 'js-yaml', 'wrc-frontend/integration/viewModels/utils', 'wdt-model-designer/loader', + 'utils/wkt-logger', 'wrc-frontend/integration/viewModels/utils', 'wdt-model-designer/loader', 'ojs/ojinputtext', 'ojs/ojlabel', 'ojs/ojbutton', 'ojs/ojformlayout'], -function(accUtils, i18n, ko, project, urlCatalog, viewHelper, wktLogger, jsYaml, ViewModelUtils) { +function(accUtils, i18n, ko, project, urlCatalog, viewHelper, wktLogger, ViewModelUtils) { function ModelDesignViewModel() { let subscriptions = []; @@ -47,6 +47,7 @@ function(accUtils, i18n, ko, project, urlCatalog, viewHelper, wktLogger, jsYaml, if (this.designer) { viewHelper.componentReady(this.designer).then(() => { this.showWdtModelDesigner(port, this.designer); + this.designer.addEventListener('archiveUpdated', this.archiveUpdated); }); } } @@ -62,6 +63,7 @@ function(accUtils, i18n, ko, project, urlCatalog, viewHelper, wktLogger, jsYaml, if (this.designer) { wktLogger.debug('disconnected() dataProvider = %s', JSON.stringify(this.dataProvider)); this.designer.deactivateProvider(this.dataProvider); + this.designer.removeEventListener('archiveUpdated', this.archiveUpdated); } viewHelper.removeEventListenerFromRootElement('searchModel', this.handleSearchModelEvent); @@ -127,12 +129,19 @@ function(accUtils, i18n, ko, project, urlCatalog, viewHelper, wktLogger, jsYaml, if (!providerOptions.fileContents) { const modelTemplates = this.designer.getProperty('modelTemplate'); - providerOptions.fileContents = modelTemplates.sparse; + providerOptions.fileContents = modelTemplates.domain; } // A name is needed to create a WDT Model File provider. // providerOptions['name'] = this.project.wdtModel.getDefaultModelFile(); + + // Set model properties provider option + providerOptions['modelProperties'] = [...this.project.wdtModel.getModelPropertiesObject().observable()]; + + // Set model archive provider option + providerOptions['modelArchive'] = this.project.wdtModel.archiveRoots; + return providerOptions; }; @@ -147,8 +156,7 @@ function(accUtils, i18n, ko, project, urlCatalog, viewHelper, wktLogger, jsYaml, const providerOptions = this.getRemoteConsoleProviderOptions(); try { - const data = jsYaml.load(providerOptions.fileContents); - wdtModelDesigner.createProvider(providerOptions.name, data); + wdtModelDesigner.createProvider(providerOptions); } catch (err) { ViewModelUtils.failureResponseDefaultHandling(err); } @@ -168,6 +176,20 @@ function(accUtils, i18n, ko, project, urlCatalog, viewHelper, wktLogger, jsYaml, wktLogger.debug('Received changesAutoDownloaded event with modelContent = %s', event.detail.value); this.wrcBackendTriggerChange = true; this.project.wdtModel.modelContent(event.detail.value); + if (event.detail.properties) this.project.wdtModel.getModelPropertiesObject().observable(event.detail.properties); + }; + + this.archiveUpdated = (event) => { + const options = event.detail.options; + wktLogger.debug('Received archiveUpdated event with options = %s', JSON.stringify(event.detail.options)); + switch (options.operation) { + case 'add': + this.project.wdtModel.addArchiveUpdate(options.operation, options.archivePath, options.filePath); + break; + case 'remove': + this.project.wdtModel.addArchiveUpdate(options.operation, options.path); + break; + } }; // Triggered when WDT Model File provider has been deactivated with the WRC backend. diff --git a/webui/src/js/viewModels/model-page-impl.js b/webui/src/js/viewModels/model-page-impl.js index f048f70d0..02426cc40 100644 --- a/webui/src/js/viewModels/model-page-impl.js +++ b/webui/src/js/viewModels/model-page-impl.js @@ -14,7 +14,7 @@ define([], // Setup for Design / Code tab selection. let navData = [ - {path: '', redirect: 'model-code-view'}, + {path: '', redirect: 'model-design-view'}, {path: 'model-design-view', detail: {label: i18n.t('page-design-view')}}, {path: 'model-code-view', detail: {label: i18n.t('page-code-view')}} ]; @@ -33,7 +33,7 @@ define([], preparer.startPrepareModel().then(); }; - this.selectedItem = ko.observable('model-code-view'); + this.selectedItem = ko.observable('model-design-view'); this.inDesignView = ko.computed(() => { return this.selectedItem() === 'model-design-view'; });