Skip to content
Snippets Groups Projects
Commit 3dfb6d78 authored by Nathan Hertz's avatar Nathan Hertz Committed by Nathan Hertz
Browse files

Made it so latest version is the default selected version in the UI;

made it so "Submit" button appears based on latest version state rather
than request state
parent 5c1bd3fc
No related branches found
No related tags found
No related merge requests found
......@@ -6,10 +6,10 @@
<div class="row">
<div id="capability-definition-container" class="col-5">
<span id="capability-label"
>Capability:
>Capability:
<strong class="pl-1">{{
this.capabilityRequest.capability_name.toUpperCase()
}}</strong></span
}}</strong></span
>
<app-capability-definition
*ngIf="this.capability !== undefined"
......@@ -29,7 +29,7 @@
id="download-button"
class="btn btn-warning"
href="{{ this.capabilityExecution.delivery_url }}"
>Download</a
>Download</a
>
</div>
<div *ngIf="this.capabilityRequest.current_execution !== null">
......@@ -46,11 +46,11 @@
href="/workflows/{{ this.capability.name }}/requests/{{
this.capabilityExecution.current_workflow_request_id
}}/weblog"
>View Weblog</a
>View Weblog</a
>
</div>
</div>
<br/>
<br />
<div id="qa-container" class="col-5">
<div
class="d-flex justify-content-left py-3"
......@@ -108,11 +108,16 @@
id="versions"
class="pt-2"
[capabilityRequest]="this.capabilityRequest"
(versionEvent) = setVersion($event)
[selected_version]="this.latestVersion"
(versionEvent)="setVersion($event)"
></app-versions>
<br/>
<span id="parameters-label" *ngIf="currentVersion !== undefined">Version {{currentVersion.version_number}} Parameters</span>
<span id="parameters-label" *ngIf="currentVersion === undefined">Version {{latestVersion.version_number}} Parameters</span>
<br />
<span id="parameters-label" *ngIf="currentVersion !== undefined"
>Version {{ currentVersion.version_number }} Parameters</span
>
<span id="parameters-label" *ngIf="currentVersion === undefined"
>Version {{ latestVersion.version_number }} Parameters</span
>
<app-parameters
id="parameters"
class="pt-2"
......@@ -125,9 +130,13 @@
[currentVersion]="latestVersion"
*ngIf="currentVersion === undefined"
></app-parameters>
<br/>
<span id="files-label" *ngIf="currentVersion !== undefined">Version {{currentVersion.version_number}} Files</span>
<span id="files-label" *ngIf="currentVersion === undefined">Version {{latestVersion.version_number}} Files</span>
<br />
<span id="files-label" *ngIf="currentVersion !== undefined"
>Version {{ currentVersion.version_number }} Files</span
>
<span id="files-label" *ngIf="currentVersion === undefined"
>Version {{ latestVersion.version_number }} Files</span
>
<app-files
id="files"
class="pt-2"
......@@ -140,22 +149,21 @@
[capabilityVersion]="latestVersion"
*ngIf="currentVersion === undefined"
></app-files>
<br/>
<br />
<app-metadata
id="metadata"
class="pt-2"
[capabilityVersion]="currentVersion"
*ngIf="
currentVersion !== undefined && currentVersion.workflow_metadata !== null
"
*ngIf="currentVersion !== undefined && currentVersion.workflow_metadata !== null"
></app-metadata>
<br/>
<br />
<app-request-operations
id="operations"
class="pt-2"
[capability]="this.capability"
[capabilityRequest]="this.capabilityRequest"
[currentVersion]="currentVersion"
(cartaLaunched)="alertMessage($event)"
></app-request-operations>
</div>
......
......@@ -16,19 +16,20 @@
* You should have received a copy of the GNU General Public License
* along with Workspaces. If not, see <https://www.gnu.org/licenses/>.
*/
import {Component, OnDestroy, OnInit} from "@angular/core";
import {CapabilityRequest} from "../../model/capability-request";
import {ActivatedRoute} from "@angular/router";
import {DataRetrieverService} from "../../services/data-retriever.service";
import {CapabilityExecution} from "../../model/capability-execution";
import {CapabilityRequestService} from "../../services/capability-request.service";
import {CapabilityVersion} from "../../model/capability-version";
import {PollingDataUpdaterService} from "../../services/polling-data-updater.service";
import {AlertService} from "../../../shared/alert/alert.service";
import {JsonObject} from "@angular/compiler-cli/ngcc/src/packages/entry_point";
import {Subject} from "rxjs";
import {takeUntil} from "rxjs/operators";
import {Capability} from "../../model/capability";
import { Component, OnDestroy, OnInit } from "@angular/core";
import { CapabilityRequest } from "../../model/capability-request";
import { ActivatedRoute } from "@angular/router";
import { DataRetrieverService } from "../../services/data-retriever.service";
import { CapabilityExecution } from "../../model/capability-execution";
import { CapabilityRequestService } from "../../services/capability-request.service";
import { CapabilityVersion } from "../../model/capability-version";
import { PollingDataUpdaterService } from "../../services/polling-data-updater.service";
import { AlertService } from "../../../shared/alert/alert.service";
import { JsonObject } from "@angular/compiler-cli/ngcc/src/packages/entry_point";
import { Subject } from "rxjs";
import { takeUntil } from "rxjs/operators";
import { Capability } from "../../model/capability";
@Component({
selector: "app-capability-request",
......@@ -65,7 +66,6 @@ export class CapabilityRequestComponent implements OnInit, OnDestroy {
type: "CapabilityExecution",
};
}
this.dataRetriever
.getCapability(this.capabilityRequest.capability_name)
.pipe(takeUntil(this.ngUnsubscribe))
......@@ -85,6 +85,10 @@ export class CapabilityRequestComponent implements OnInit, OnDestroy {
next: (capabilityVersion) => {
if (capabilityVersion !== undefined) {
this.latestVersion = capabilityVersion;
// Set selected version to be the request's current version
console.log("Setting current version to latest");
console.log("List of versions: " + this.latestVersion);
this.setVersion(this.latestVersion);
} else {
console.error("Current version returned undefined.");
}
......@@ -173,12 +177,11 @@ export class CapabilityRequestComponent implements OnInit, OnDestroy {
.subscribe(addRestCallObservable);
}
setVersion(version: CapabilityVersion){
setVersion(version: CapabilityVersion) {
this.currentVersion = version;
}
ngOnInit(): void {
}
ngOnInit(): void {}
ngOnDestroy(): void {
// Prevent memory leakage by unsubscribing all observers
......
......@@ -7,28 +7,46 @@
[capabilityRequest]="capabilityRequest"
></app-create-new-version-form>
</div>
<div class="col-auto d-flex" *ngIf="capabilityRequest.state === 'Complete' &&
(capabilityRequest.capability_name === 'std_calibration' || capabilityRequest.capability_name === 'restore_cms')">
<div
class="col-auto d-flex"
*ngIf="
capabilityRequest.state === 'Complete' &&
(capabilityRequest.capability_name === 'std_calibration' ||
capabilityRequest.capability_name === 'restore_cms')
"
>
<button
id="create-image-request"
type="button"
class="btn btn-warning"
(click)="capabilityLauncherService.createImageRequestFromPreviousCal('std_cms_imaging', capabilityRequest.id).subscribe(followonRequestObserver)">
(click)="
capabilityLauncherService
.createImageRequestFromPreviousCal('std_cms_imaging', capabilityRequest.id)
.subscribe(followonRequestObserver)
"
>
<span class="fas fa-camera"></span><span class="pl-2">Create Image Request</span>
</button>
</div>
<div class="col-auto d-flex" *ngIf="capability !== undefined && capability.has_image_products === true && capabilityRequest.state === 'Complete'">
<div
class="col-auto d-flex"
*ngIf="
capability !== undefined &&
capability.has_image_products === true &&
capabilityRequest.state === 'Complete'
"
>
<button
id="launch-carta"
type="button"
class="btn btn-outline-success"
(click)="launchCarta()"
[disabled]="hasBeenClicked"
>
>
<span class="fas fa-image"></span><span class="pl-2">Launch CARTA</span>
</button>
</div>
<div class="col-auto d-flex" *ngIf="capabilityRequest.state === 'Created'">
<div class="col-auto d-flex" *ngIf="currentVersion.state === 'Created'">
<button
id="submit-button"
type="button"
......
......@@ -23,6 +23,7 @@ import { CapabilityLauncherService } from "../../../../services/capability-launc
import { WorkflowLauncherService } from "../../../../services/workflow-launcher.service";
import { CapabilityExecution } from "../../../../model/capability-execution";
import { CapabilityRequestService } from "../../../../services/capability-request.service";
import { CapabilityVersion } from "../../../../model/capability-version";
@Component({
selector: "app-request-operations",
......@@ -36,6 +37,7 @@ export class RequestOperationsComponent implements OnInit {
private capabilityRequestService: CapabilityRequestService,
) {}
@Input() capabilityRequest: CapabilityRequest;
@Input() currentVersion: CapabilityVersion;
@Input() capability: Capability;
public capabilityExecution: CapabilityExecution;
@Output() cartaLaunched: EventEmitter<any> = new EventEmitter<any>();
......
......@@ -16,32 +16,28 @@
* You should have received a copy of the GNU General Public License
* along with Workspaces. If not, see <https://www.gnu.org/licenses/>.
*/
import {Component, Input, OnInit, Output, EventEmitter} from '@angular/core';
import {CapabilityVersion} from "../../../../model/capability-version";
import {CapabilityRequestService} from "../../../../services/capability-request.service";
import {CapabilityRequest} from "../../../../model/capability-request";
import {FormControl, FormGroup, Validators} from "@angular/forms";
import {JsonObject} from "@angular/compiler-cli/ngcc/src/packages/entry_point";
import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core";
import { CapabilityVersion } from "../../../../model/capability-version";
import { CapabilityRequestService } from "../../../../services/capability-request.service";
import { CapabilityRequest } from "../../../../model/capability-request";
import { JsonObject } from "@angular/compiler-cli/ngcc/src/packages/entry_point";
@Component({
selector: 'app-versions',
templateUrl: './versions.component.html',
styleUrls: ['./versions.component.scss']
selector: "app-versions",
templateUrl: "./versions.component.html",
styleUrls: ["./versions.component.scss"],
})
export class VersionsComponent implements OnInit {
@Input() capabilityRequest: CapabilityRequest;
@Output() versionEvent = new EventEmitter<CapabilityVersion>();
public capabilityVersions: Array<CapabilityVersion>;
public selected_version: CapabilityVersion
@Input() public selected_version: CapabilityVersion;
constructor(private capabilityRequestService: CapabilityRequestService) {
// this.getSpecificVersion(this.capabilityRequest.id, this.capabilityRequest.versions[this.capabilityRequest.versions.length-1].version_number);
}
ngOnInit(): void {
}
ngOnInit(): void {}
getVersion(): number {
return this.selected_version.version_number;
......@@ -50,15 +46,15 @@ export class VersionsComponent implements OnInit {
getAllVersions(requestId: string) {
const versionsObserver = {
next: (request) => {
this.capabilityVersions = request;
console.log(this.capabilityVersions)
this.capabilityVersions = request;
console.log(this.capabilityVersions);
},
error: (error) => console.error("Error when retrieving capability versions:" + error),
};
this.capabilityRequestService.getAllVersions(requestId).subscribe(versionsObserver);
this.capabilityRequestService.getAllVersions(requestId).subscribe(versionsObserver);
}
getSpecificVersion(request_id: string, version_id: number){
getSpecificVersion(request_id: string, version_id: number) {
const specificVersionObserver = {
next: (version) => {
this.selected_version = version;
......@@ -66,10 +62,11 @@ export class VersionsComponent implements OnInit {
},
error: (error) => console.error("Error when retrieving capability version:" + error),
};
this.capabilityRequestService.getSpecificVersion(request_id, version_id).subscribe(specificVersionObserver);
this.capabilityRequestService
.getSpecificVersion(request_id, version_id)
.subscribe(specificVersionObserver);
}
/**
* Check if JsonObject is empty
* Taken from: https://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object
......@@ -85,5 +82,4 @@ export class VersionsComponent implements OnInit {
return true;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment