X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=webapp%2Fsrc%2Fapp%2Fpages%2Fbuild%2Fbuild-settings-modal%2Fbuild-settings-modal.component.ts;fp=webapp%2Fsrc%2Fapp%2Fpages%2Fbuild%2Fbuild-settings-modal%2Fbuild-settings-modal.component.ts;h=01c6d1e473842dffecb67a47fc02d80c8c388d2a;hb=4d843d2bde236ec23810d0904dfb8aebbc53a37b;hp=0000000000000000000000000000000000000000;hpb=38c0c21a969e621c725245ce91c78e77076c5ce7;p=src%2Fxds%2Fxds-agent.git diff --git a/webapp/src/app/pages/build/build-settings-modal/build-settings-modal.component.ts b/webapp/src/app/pages/build/build-settings-modal/build-settings-modal.component.ts new file mode 100644 index 0000000..01c6d1e --- /dev/null +++ b/webapp/src/app/pages/build/build-settings-modal/build-settings-modal.component.ts @@ -0,0 +1,77 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { Observable } from 'rxjs/Observable'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { FormControl, FormGroup, Validators, ValidationErrors, FormBuilder, ValidatorFn, AbstractControl } from '@angular/forms'; + +import { AlertService } from '../../../@core-xds/services/alert.service'; +import { ProjectService, IProject } from '../../../@core-xds/services/project.service'; + + +@Component({ + selector: 'xds-build-settings-modal', + templateUrl: 'build-settings-modal.component.html', +}) + +export class BuildSettingsModalComponent implements OnInit { + // @Input('server-id') serverID: string; + private serverID: string; + + closeAction = false; + userEditedLabel = false; + + settingsProjectForm: FormGroup; + subpathCtrl = new FormControl('', Validators.nullValidator); + + private curPrj: IProject; + + constructor( + private alert: AlertService, + private projectSvr: ProjectService, + private fb: FormBuilder, + private activeModal: NgbActiveModal, + ) { + this.settingsProjectForm = fb.group({ + subpath: this.subpathCtrl, + cmdClean: ['', Validators.required], + cmdPrebuild: ['', Validators.nullValidator], + cmdBuild: ['', Validators.required], + cmdPopulate: ['', Validators.nullValidator], + cmdArgs: ['', Validators.nullValidator], + envVars: ['', Validators.nullValidator], + }); + } + + ngOnInit() { + this.curPrj = this.projectSvr.getCurrent(); + this.settingsProjectForm.patchValue(this.curPrj.uiSettings); + } + + closeModal() { + this.activeModal.close(); + } + + resetDefault() { + this.settingsProjectForm.patchValue(this.projectSvr.getDefaultSettings()); + } + + onSubmit() { + if (!this.closeAction) { + return; + } + + this.curPrj.uiSettings = this.settingsProjectForm.value; + this.projectSvr.setSettings(this.curPrj) + .subscribe(prj => { + this.alert.info('Settings of project "' + prj.label + '" successfully updated.'); + this.closeModal(); + + // Reset Value for the next creation + this.settingsProjectForm.reset(); + }, + err => { + this.alert.error(err, 60); + this.closeModal(); + }); + } + +}