Skip to content

Commit 0e64b4e

Browse files
Remote Console Refresh (#115)
* addressing UI refresh issue and some Jet audit issues * fixing disconnected bug
1 parent 935d1d5 commit 0e64b4e

File tree

5 files changed

+58
-45
lines changed

5 files changed

+58
-45
lines changed

webui/src/css/app.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@
258258
}
259259

260260
.wkt-paths-table {
261-
.wkt-env-vars-table;
261+
border: 1px solid var(--oj-collection-border-color);
262262
width: 100%;
263263
}
264264

webui/src/js/viewModels/model-design-view.js

Lines changed: 53 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
* Copyright (c) 2021, 2022, Oracle and/or its affiliates.
44
* Licensed under The Universal Permissive License (UPL), Version 1.0 as shown at https://oss.oracle.com/licenses/upl/
55
*/
6-
define(['accUtils', 'utils/i18n', 'knockout', 'models/wkt-project', 'utils/url-catalog', 'utils/wkt-logger',
7-
'wrc-frontend/core/parsers/yaml', 'wrc-frontend/integration/viewModels/utils','wdt-model-designer/loader',
8-
'ojs/ojinputtext', 'ojs/ojlabel', 'ojs/ojbutton', 'ojs/ojformlayout'],
9-
function(accUtils, i18n, ko, project, urlCatalog, wktLogger, YamlParser, ViewModelUtils) {
6+
define(['accUtils', 'utils/i18n', 'knockout', 'models/wkt-project', 'utils/url-catalog', 'utils/view-helper',
7+
'utils/wkt-logger', 'wrc-frontend/core/parsers/yaml', 'wrc-frontend/integration/viewModels/utils',
8+
'wdt-model-designer/loader', 'ojs/ojinputtext', 'ojs/ojlabel', 'ojs/ojbutton', 'ojs/ojformlayout'],
9+
function(accUtils, i18n, ko, project, urlCatalog, viewHelper, wktLogger, YamlParser, ViewModelUtils) {
1010
function ModelDesignViewModel() {
1111

1212
let subscriptions = [];
@@ -18,19 +18,18 @@ function(accUtils, i18n, ko, project, urlCatalog, wktLogger, YamlParser, ViewMod
1818

1919
this.connected = () => {
2020
accUtils.announce('Model design view loaded.', 'assertive');
21+
this.designer = document.getElementById('WdtModelDesigner');
22+
2123
subscriptions.push(this.project.wdtModel.internal.wlRemoteConsolePort.subscribe((newValue) => {
2224
wktLogger.debug('Model Design View got event for Remote Console backend port change to %s', newValue);
23-
this.showWdtModelDesigner(newValue, this);
25+
this.showWdtModelDesigner(newValue, this.designer);
2426
}, this));
2527

26-
// eslint-disable-next-line no-unused-vars
27-
subscriptions.push(this.project.wdtModel.modelContent.subscribe((newValue) => {
28+
subscriptions.push(this.project.wdtModel.modelContent.subscribe(() => {
2829
wktLogger.debug('Model Design View got event for Model contents changed');
2930

3031
if (this.designer) {
31-
// FIXME - There doesn't seem to be a way to update the data of the data provider.
32-
// Please fix this accordingly and delete this comment...
33-
//
32+
this.createRemoteConsoleProvider(this.designer, true);
3433
}
3534
}, this));
3635

@@ -40,12 +39,11 @@ function(accUtils, i18n, ko, project, urlCatalog, wktLogger, YamlParser, ViewMod
4039
if (typeof port !== 'undefined') {
4140
wktLogger.debug('direct connected: port=%s', port);
4241

43-
// FIXME - There seems to be a race condition where the JET component does not seem to
44-
// be fully loaded by the time we get to this point. Working around it for now...
45-
//
46-
setTimeout( () => {
47-
this.showWdtModelDesigner(port);
48-
}, 1000);
42+
if (this.designer) {
43+
viewHelper.componentReady(this.designer).then(() => {
44+
this.showWdtModelDesigner(port, this.designer);
45+
});
46+
}
4947
}
5048
};
5149

@@ -55,7 +53,8 @@ function(accUtils, i18n, ko, project, urlCatalog, wktLogger, YamlParser, ViewMod
5553
});
5654

5755
if (this.designer) {
58-
this.designer.deactivateProvider(self.dataProvider);
56+
wktLogger.debug('disconnected() dataProvider = %s', JSON.stringify(this.dataProvider));
57+
this.designer.deactivateProvider(this.dataProvider);
5958
}
6059
};
6160

@@ -67,13 +66,15 @@ function(accUtils, i18n, ko, project, urlCatalog, wktLogger, YamlParser, ViewMod
6766
return window.api.process.isLinux();
6867
};
6968

70-
this.showWdtModelDesigner = (backendPort) => {
69+
this.showWdtModelDesigner = (backendPort, wdtModelDesigner) => {
7170
wktLogger.info('showWdtModelDesigner using backendPort %s', backendPort);
7271
if (!backendPort) {
7372
return;
7473
}
7574

76-
self.designer = document.getElementById('WdtModelDesigner');
75+
if (!wdtModelDesigner) {
76+
return;
77+
}
7778

7879
// We cannot use <oj-bind-if> to control the visibility of
7980
// the <wdt-model-designer> JET composite, because it prevents
@@ -84,25 +85,18 @@ function(accUtils, i18n, ko, project, urlCatalog, wktLogger, YamlParser, ViewMod
8485
// that controls its visibility. The default value for that
8586
// property is false.
8687
//
87-
self.designer.visible = this.showRemoteConsoleComponent();
88-
self.designer.setBackendUrlPort(backendPort);
88+
wdtModelDesigner.visible = this.showRemoteConsoleComponent();
89+
wdtModelDesigner.setBackendUrlPort(backendPort);
8990

9091
// ResizeObserver needs to be set on the parent element
9192
// of the <wdt-model-designer> tag.
9293
//
93-
const parentElement = self.designer.parentElement;
94+
const parentElement = wdtModelDesigner.parentElement;
9495
new ResizeObserver(() => {
95-
self.designer.resize();
96+
wdtModelDesigner.resize();
9697
}).observe(parentElement);
9798

98-
// TODO - Do we need to use the Remote Console parser or can we just use js-yaml?
99-
//
100-
const providerOptions = this.getRemoteConsoleProviderOptions();
101-
YamlParser.parse(providerOptions.fileContents).then(data => {
102-
self.designer.createProvider(providerOptions.name, data);
103-
}).catch(err => {
104-
ViewModelUtils.failureResponseDefaultHandling(err);
105-
});
99+
this.createRemoteConsoleProvider(wdtModelDesigner);
106100
};
107101

108102
// We need to support several use cases:
@@ -120,7 +114,7 @@ function(accUtils, i18n, ko, project, urlCatalog, wktLogger, YamlParser, ViewMod
120114
};
121115

122116
if (!providerOptions.fileContents) {
123-
const modelTemplates = self.designer.getProperty('modelTemplate');
117+
const modelTemplates = this.designer.getProperty('modelTemplate');
124118
providerOptions.fileContents = modelTemplates.sparse;
125119
}
126120

@@ -130,35 +124,55 @@ function(accUtils, i18n, ko, project, urlCatalog, wktLogger, YamlParser, ViewMod
130124
return providerOptions;
131125
};
132126

127+
this.createRemoteConsoleProvider = (wdtModelDesigner, resetExistingDataProvider = false) => {
128+
if (!wdtModelDesigner) {
129+
return;
130+
}
131+
132+
if (resetExistingDataProvider) {
133+
wdtModelDesigner.deactivateProvider(this.dataProvider);
134+
}
135+
136+
const providerOptions = this.getRemoteConsoleProviderOptions();
137+
// TODO - Do we need to use the Remote Console parser or can we just use js-yaml?
138+
//
139+
YamlParser.parse(providerOptions.fileContents).then(data => {
140+
wdtModelDesigner.createProvider(providerOptions.name, data);
141+
}).catch(err => {
142+
ViewModelUtils.failureResponseDefaultHandling(err);
143+
});
144+
};
145+
133146
// Triggered when WDT Model File provider has been activated with the WRC backend.
134147
//
135148
this.providerActivated = (event) => {
136-
self.dataProvider = event.detail.value;
137-
self.designer.selectLastVisitedSlice();
149+
this.dataProvider = event.detail.value;
150+
this.designer.selectLastVisitedSlice();
138151
};
139152

140153
// Triggered when changes have been downloaded from the WRC backend, for the active WDT Model File provider.
141154
//
142155
this.changesAutoDownloaded = (event) => {
143-
self.project.wdtModel.modelContent(event.detail.value);
156+
wktLogger.debug('changesAutoDownloaded event: %s', event.detail.value);
157+
this.project.wdtModel.modelContent(event.detail.value);
144158
};
145159

146160
// Triggered when WDT Model File provider has been deactivated with the WRC backend.
147161
//
148162
this.providerDeactivated = (event) => {
149163
const result = event.detail.value;
150164
delete result.data;
151-
self.dataProvider = {state: 'disconnected'};
165+
this.dataProvider = {state: 'disconnected'};
152166
};
153167

154168
// Triggered when WDT Model Designer has lost its connection to the WRC backend.
155169
//
156170
this.connectionLostRefused = (event) => {
157171
wktLogger.debug('connectionLostRefused: backendUrl=%s', event.detail.value);
158-
if (self.designer) {
159-
self.designer.visible = false;
172+
if (this.designer) {
173+
this.designer.visible = false;
160174
}
161-
self.project.wdtModel.internal.wlRemoteConsolePort(undefined);
175+
this.project.wdtModel.internal.wlRemoteConsolePort(undefined);
162176
};
163177

164178
const wrcInitialText = this.labelMapper('wrc-install-description');

webui/src/js/views/domain-status-dialog.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
<oj-bind-text value="{{labelMapper('domain-status-introspectJobFailureCount')}}"></oj-bind-text>
2424
</oj-label>
2525
<br>
26-
<oj-input-text id="introspectjobfailurecount" value="{{introspectJobFailureCount}}" readonly="true"
27-
></oj-input-text>
26+
<oj-input-text id="introspectJobFailureCount" value="{{introspectJobFailureCount}}" readonly="true"></oj-input-text>
2827
</div>
2928

3029
<oj-bind-if test="[[domainHasError === true]]">

webui/src/js/views/image-design-view.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
on-value-changed="[[selectedSubviewValueChangedHandler]]"
2020
value="{{selectedSubview}}">
2121
<div slot="primaryImage">
22-
<h6 slot="header" class="wkt-subheading"><oj-bind-text value="[[mainImagePageTitle]]"></oj-bind-text></h6>
22+
<h6 class="wkt-subheading"><oj-bind-text value="[[mainImagePageTitle]]"></oj-bind-text></h6>
2323
<div class="oj-panel">
2424
<oj-form-layout max-columns="2" direction="row">
2525
<oj-switch id="create-image-switch"
@@ -366,7 +366,7 @@ <h6 class="wkt-subheading"><oj-bind-text value="[[labelMapper('build-config-titl
366366
----------------------------------------------------------------------->
367367

368368
<div slot="auxiliaryImage">
369-
<h6 slot="header" class="wkt-subheading"><oj-bind-text value="[[labelMapper('aux-title')]]"></oj-bind-text></h6>
369+
<h6 class="wkt-subheading"><oj-bind-text value="[[labelMapper('aux-title')]]"></oj-bind-text></h6>
370370
<div class="oj-panel">
371371
<oj-form-layout max-columns="2" direction="row">
372372
<oj-input-text id="aux-image-tag"

webui/src/js/views/project-settings-page.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ <h6 class="wkt-subheading"><oj-bind-text value="[[labelMapper('java-directory-lo
179179
</oj-button>
180180
</oj-input-text>
181181
</oj-form-layout>
182-
<p><oj-bind-text id="java-dir-location-answer" value="[[javaDirectoryLocationAnswer]]"></oj-bind-text></p>
182+
<p><oj-bind-text value="[[javaDirectoryLocationAnswer]]"></oj-bind-text></p>
183183
</div>
184184

185185
<oj-bind-if test="[[requiresOracleHome() === true]]">

0 commit comments

Comments
 (0)