564996 - xy chartviewer does not consider preview checkbox correctly
Signed-off-by: Matthias Koller <m.koller@peak-solution.de>
diff --git a/build.gradle b/build.gradle
index 782aca8..d68bff6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -24,7 +24,8 @@
subprojects {
apply plugin: 'java'
-
+ apply plugin: 'maven'
+
group = rootProject.group
version = rootProject.version
diff --git a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.html b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.html
index 85ba743..fcb98ad 100644
--- a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.html
+++ b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.html
@@ -15,17 +15,17 @@
<p-chart #lineChart type="line" [data]="data" [options]="options"></p-chart>
<p-accordion>
- <p-accordionTab header="Optionen">
+ <p-accordionTab header="{{'chartviewer.request-options.options' | translate}}">
- Von <input type="number" numbersOnly pInputText [(ngModel)]="rangeValues[0]" />
- Bis <input type="number" numbersOnly pInputText [(ngModel)]="rangeValues[1]" />
- Gesamt {{numberOfRows}}
- Schrittweite: <input type="text" numbersOnly pInputText [(ngModel)]="step"/>
- Vorschauwerte<p-checkbox [(ngModel)]="previewEnabled" binary="true"></p-checkbox> <input *ngIf="previewEnabled" type="text" numbersOnly pInputText [(ngModel)]="numberOfChunks" />
+ {{'chartviewer.request-options.from' | translate}} <input type="number" numbersOnly pInputText [(ngModel)]="rangeValues[0]" />
+ {{'chartviewer.request-options.to' | translate}} <input type="number" numbersOnly pInputText [(ngModel)]="rangeValues[1]" />
+ {{'chartviewer.request-options.overall' | translate}} {{numberOfRows}}
+ {{'chartviewer.request-options.step-size' | translate}}: <input type="text" numbersOnly pInputText [(ngModel)]="step"/>
+ {{'chartviewer.request-options.preview-values' | translate}}<p-checkbox [(ngModel)]="previewEnabled" binary="true"></p-checkbox> <input *ngIf="previewEnabled" type="text" numbersOnly pInputText [(ngModel)]="numberOfChunks" />
<div style="margin: 20px 0;">
<p-slider [(ngModel)]="rangeValues" [range]="true" [min]="1" [max]="numberOfRows" [step]="step"></p-slider>
</div>
- <p-button label="Anwenden" (onClick)="applySettings($event)"></p-button>
+ <p-button label="{{'chartviewer.request-options.apply' | translate}}" (onClick)="applySettings($event)"></p-button>
</p-accordionTab>
</p-accordion>
diff --git a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.ts b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.ts
index 10262be..0b36ab5 100644
--- a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.ts
+++ b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.ts
@@ -116,8 +116,8 @@
}
chartChannel() {
- this.chartMeasuredValues(this.chartService.loadPreviewValues(
- this.channelGroup, [this.channels[0]], this.numberOfChunks, this.rangeValues[0] - 1, this.rangeValues[1]));
+ this.chartMeasuredValues(this.chartService.loadValues(
+ this.channelGroup, [this.channels[0]], this.rangeValues[0] - 1, this.rangeValues[1], this.previewEnabled ? this.numberOfChunks : 0));
}
chartMeasuredValues(measuredValues: Observable<MeasuredValues[]>) {
diff --git a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/request-options/request-options.component.html b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/request-options/request-options.component.html
index 108ee9a..e542627 100644
--- a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/request-options/request-options.component.html
+++ b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/request-options/request-options.component.html
@@ -12,12 +12,12 @@
*
********************************************************************************-->
<p-accordion [style]="{'width':'100%'}">
- <p-accordionTab header="Optionen" [disabled]="!channelGroups || channelGroups.length === 0">
+ <p-accordionTab header="{{'chartviewer.request-options.options' | translate}}" [disabled]="!channelGroups || channelGroups.length === 0">
<div class="p-grid nested-grid p-align-center">
<!-- Row 1 -->
<!-- left -->
<div class="p-col-2">
- <label for="rangeValStart">Von</label>
+ <label for="rangeValStart">{{'chartviewer.request-options.from' | translate}}</label>
<p-spinner id="rangeValStart"
size="4"
[(ngModel)]="rangeValues[0]"
@@ -28,7 +28,7 @@
></p-spinner>
</div>
<div class="p-col-2">
- <label for="rangeValEnd">Bis</label>
+ <label for="rangeValEnd">{{'chartviewer.request-options.to' | translate}}</label>
<p-spinner id="rangeValEnd"
size="4"
[(ngModel)]="rangeValues[1]"
@@ -40,12 +40,12 @@
></p-spinner>
</div>
<div class="p-col-4">
- <label for="step">Schrittweite</label>
+ <label for="step">{{'chartviewer.request-options.step-size' | translate}}</label>
<p-spinner id="step" type="text" [(ngModel)]="step" size="4"></p-spinner>
</div>
<!-- right -->
<div class="p-col-4">
- <label for="preview">Vorschauwerte</label>
+ <label for="preview">{{'chartviewer.request-options.preview-values' | translate}}</label>
<p-checkbox id="preview" [(ngModel)]="previewEnabled" binary="true"></p-checkbox>
</div>
@@ -69,7 +69,7 @@
<div class="p-col-12" style="text-align: right;">
<button class="btn btn-mdm" (click)="onApplySettings($event)">
<span class="fa fa-check"></span>
- Übernehmen
+ {{'chartviewer.request-options.apply' | translate}}
</button>
</div>
</div>
diff --git a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/xy-chart-viewer/xy-chart-viewer.component.ts b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/xy-chart-viewer/xy-chart-viewer.component.ts
index 549a418..2a1e0d3 100644
--- a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/xy-chart-viewer/xy-chart-viewer.component.ts
+++ b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/xy-chart-viewer/xy-chart-viewer.component.ts
@@ -125,8 +125,8 @@
private doChart() {
if (this.arrayUtil.isNotEmpty(this.selectedChannelRows) && this.requestOptions != undefined) {
const xChannels = this.selectedChannelRows.filter(row => row.xChannel != undefined)
- .map(row => this.chartviewerDataService.loadMeasuredValues(
- row.channelGroup, [row.xChannel], this.requestOptions.startIndex, this.requestOptions.requestSize));
+ .map(row => this.chartviewerDataService.loadValues(row.channelGroup, [row.xChannel],
+ this.requestOptions.startIndex, this.requestOptions.requestSize, this.requestOptions.getChunks()));
forkJoin(xChannels)
.pipe(
map(array => array.map((mea, index) => ({yChannel: this.selectedChannelRows[index].yChannel, measuredValues: mea[0]}))),
@@ -167,8 +167,8 @@
// const channelGroups = this.selectedChannelGroups.filter(cg => this.arrayUtil.isNotEmpty(yChannels[cg.id]));
const channelGroups = Array.from(new Set(this.selectedChannelRows.map(row => row.channelGroup)));
- const obs = channelGroups.map(cg => this.chartviewerDataService.loadMeasuredValues(
- cg, yChannels[cg.id], this.requestOptions.startIndex, this.requestOptions.requestSize));
+ const obs = channelGroups.map(cg => this.chartviewerDataService.loadValues(
+ cg, yChannels[cg.id], this.requestOptions.startIndex, this.requestOptions.requestSize, this.requestOptions.getChunks()));
// forkJoin return observables in order of input array. Therefore channelgroup id has to be like tmpChannelGroups[index].id
return forkJoin(obs)
.pipe(
diff --git a/nucleus/webclient/src/main/webapp/src/app/chartviewer/model/types/request-options.class.ts b/nucleus/webclient/src/main/webapp/src/app/chartviewer/model/types/request-options.class.ts
index c818e02..547c066 100644
--- a/nucleus/webclient/src/main/webapp/src/app/chartviewer/model/types/request-options.class.ts
+++ b/nucleus/webclient/src/main/webapp/src/app/chartviewer/model/types/request-options.class.ts
@@ -23,4 +23,12 @@
this.previewEnabled = previewEnabled;
this.numberOfChunks = numberOfChunks;
}
+
+ getChunks() {
+ if (this.previewEnabled) {
+ return this.numberOfChunks;
+ } else {
+ return 0;
+ }
+ }
}
diff --git a/nucleus/webclient/src/main/webapp/src/app/chartviewer/services/chart-viewer-data.service.ts b/nucleus/webclient/src/main/webapp/src/app/chartviewer/services/chart-viewer-data.service.ts
index 7773a30..5332c9d 100644
--- a/nucleus/webclient/src/main/webapp/src/app/chartviewer/services/chart-viewer-data.service.ts
+++ b/nucleus/webclient/src/main/webapp/src/app/chartviewer/services/chart-viewer-data.service.ts
@@ -58,6 +58,29 @@
this._contextUrl = _prop.getUrl('mdm/environments');
}
+ /**
+ * Loads preview value (if chunks > 0) or measured values (if chunks == 0).
+ * @param channelGroup channel group node
+ * @param channels channel nodes
+ * @param startIndex start index to load the data
+ * @param requestSize number of requested values
+ * @param chunks preview chunks. If 0, preview is disabled and original values are loaded
+ */
+ loadValues(channelGroup: Node, channels: Node[], startIndex = 0, requestSize = 0, chunks = 0) {
+ if (chunks > 0) {
+ return this.loadPreviewValues(channelGroup, channels, chunks, startIndex, requestSize);
+ } else {
+ return this.loadMeasuredValues(channelGroup, channels, startIndex, requestSize);
+ }
+ }
+
+ /**
+ * Loads measured values
+ * @param channelGroup channel group node
+ * @param channels channel nodes
+ * @param startIndex start index to load the data
+ * @param requestSize number of requested values
+ */
loadMeasuredValues(channelGroup: Node, channels: Node[], startIndex = 0, requestSize = 0) {
let readRequest = {
'channelGroupId': channelGroup.id,
@@ -77,6 +100,14 @@
);
}
+ /**
+ * Loads preview values.
+ * @param channelGroup channel group node
+ * @param channels channel nodes
+ * @param chunks preview chunks
+ * @param startIndex start index to load the data
+ * @param requestSize number of requested values
+ */
loadPreviewValues(channelGroup: Node, channels: Node[], chunks: number, startIndex = 0, requestSize = 0) {
let readRequest = {
'channelGroupId': channelGroup.id,
diff --git a/nucleus/webclient/src/main/webapp/src/assets/i18n/de.json b/nucleus/webclient/src/main/webapp/src/assets/i18n/de.json
index 52b4e18..8d5dc04 100644
--- a/nucleus/webclient/src/main/webapp/src/assets/i18n/de.json
+++ b/nucleus/webclient/src/main/webapp/src/assets/i18n/de.json
@@ -425,7 +425,15 @@
}
},
"chartviewer": {
- "request-options": {},
+ "request-options": {
+ "options": "Optionen",
+ "from": "von",
+ "to": "bis",
+ "overall": "Gesamt",
+ "step-size": "Schrittweite",
+ "preview-values": "Vorschauwerte",
+ "apply": "Übernehmen"
+ },
"xy-chart-data-selection-panel": {
"select-channel-placeholder": "Kanal wählen",
"no-x-channel-dialog-header": "Information",
diff --git a/nucleus/webclient/src/main/webapp/src/assets/i18n/en.json b/nucleus/webclient/src/main/webapp/src/assets/i18n/en.json
index 1b1f927..4aa8b1d 100644
--- a/nucleus/webclient/src/main/webapp/src/assets/i18n/en.json
+++ b/nucleus/webclient/src/main/webapp/src/assets/i18n/en.json
@@ -425,7 +425,15 @@
}
},
"chartviewer": {
- "request-options": {},
+ "request-options": {
+ "options": "Options",
+ "from": "from",
+ "to": "to",
+ "overall": "overall",
+ "step-size": "step size",
+ "preview-values": "preview values",
+ "apply": "Apply"
+ },
"xy-chart-data-selection-panel": {
"select-channel-placeholder": "Select Channel",
"no-x-channel-dialog-header": "Information",