aboutsummaryrefslogtreecommitdiffstats
path: root/webapp/src/app/pages
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/src/app/pages')
-rw-r--r--webapp/src/app/pages/build/build-settings-modal/build-settings-modal.component.html60
-rw-r--r--webapp/src/app/pages/build/build-settings-modal/build-settings-modal.component.ts77
-rw-r--r--webapp/src/app/pages/build/build.component.html65
-rw-r--r--webapp/src/app/pages/build/build.component.scss6
-rw-r--r--webapp/src/app/pages/build/build.component.spec.ts2
-rw-r--r--webapp/src/app/pages/build/build.component.ts85
-rw-r--r--webapp/src/app/pages/build/build.module.ts3
-rw-r--r--webapp/src/app/pages/build/settings-modal/build-settings-modal.component.ts143
-rw-r--r--webapp/src/app/pages/build/settings/project-select-dropdown.component.ts25
-rw-r--r--webapp/src/app/pages/config/config-xds/downloadXdsAgent.component.ts5
-rw-r--r--webapp/src/app/pages/config/config.module.ts2
-rw-r--r--webapp/src/app/pages/projects/project-add-modal/project-add-modal.component.html11
-rw-r--r--webapp/src/app/pages/projects/project-add-modal/project-add-modal.component.ts8
-rw-r--r--webapp/src/app/pages/projects/project-card/project-card.component.scss13
-rw-r--r--webapp/src/app/pages/projects/project-card/project-card.component.ts12
-rw-r--r--webapp/src/app/pages/projects/projects.component.html2
-rw-r--r--webapp/src/app/pages/projects/projects.component.scss2
-rw-r--r--webapp/src/app/pages/projects/projects.component.ts2
-rw-r--r--webapp/src/app/pages/projects/projects.module.ts2
-rw-r--r--webapp/src/app/pages/sdks/sdk-card/sdk-card.component.scss13
-rw-r--r--webapp/src/app/pages/sdks/sdk-card/sdk-card.component.ts4
-rw-r--r--webapp/src/app/pages/sdks/sdks.component.html2
-rw-r--r--webapp/src/app/pages/sdks/sdks.component.scss2
-rw-r--r--webapp/src/app/pages/sdks/sdks.component.ts2
-rw-r--r--webapp/src/app/pages/sdks/sdks.module.ts6
25 files changed, 403 insertions, 151 deletions
diff --git a/webapp/src/app/pages/build/build-settings-modal/build-settings-modal.component.html b/webapp/src/app/pages/build/build-settings-modal/build-settings-modal.component.html
new file mode 100644
index 0000000..7dd2ec7
--- /dev/null
+++ b/webapp/src/app/pages/build/build-settings-modal/build-settings-modal.component.html
@@ -0,0 +1,60 @@
+<div class="modal-header">
+ <span>Build Settings</span>
+ <button class="close" aria-label="Close" (click)="closeModal()">
+ <span aria-hidden="true">&times;</span>
+ </button>
+</div>
+
+<div class="modal-body row">
+ <div class="col-12">
+ <form [formGroup]="settingsProjectForm" (ngSubmit)="onSubmit()">
+
+ <div class="form-group row">
+ <label for="clean-cmd" class="col-sm-3 col-form-label">Clean command</label>
+ <div class="col-sm-9">
+ <input type="text" id="inputCleanCmd" class="form-control" formControlName="cmdClean">
+ </div>
+ </div>
+
+ <div class="form-group row">
+ <label for="prebuild-cmd" class="col-sm-3 col-form-label">Pre-Build command</label>
+ <div class="col-sm-9">
+ <input type="text" id="inputPrebuildCmd" class="form-control" formControlName="cmdPrebuild">
+ </div>
+ </div>
+
+ <div class="form-group row">
+ <label for="build-cmd" class="col-sm-3 col-form-label">Build command</label>
+ <div class="col-sm-9">
+ <input type="text" id="inputBuildCmd" class="form-control" formControlName="cmdBuild">
+ </div>
+ </div>
+
+ <div class="form-group row">
+ <label for="populate-cmd" class="col-sm-3 col-form-label">Populate command</label>
+ <div class="col-sm-9">
+ <input type="text" id="inputPopulateCmd" class="form-control" formControlName="cmdPopulate">
+ </div>
+ </div>
+
+ <div class="form-group row">
+ <label for="envvars-cmd" class="col-sm-3 col-form-label">Env variables</label>
+ <div class="col-sm-9">
+ <input type="text" id="inputEnvVars" class="form-control" formControlName="envVars">
+ </div>
+ </div>
+
+ <div class="offset-sm-9 col-sm-9">
+ <button class="btn btn-sm btn-hero-secondary" (click)="closeAction=false; resetDefault()">Reset settings</button>
+ </div>
+ </form>
+ </div>
+</div>
+<div class="modal-footer form-group">
+ <div class="col-12">
+ <div class="offset-sm-4 col-sm-6">
+ <button class="btn btn-md btn-secondary" (click)="closeAction=false; closeModal()"> Cancel </button>
+ <button class="btn btn-md btn-primary" [disabled]="!settingsProjectForm.valid" (click)="closeAction=true; onSubmit()">Update</button>
+ </div>
+ </div>
+</div>
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();
+ });
+ }
+
+}
diff --git a/webapp/src/app/pages/build/build.component.html b/webapp/src/app/pages/build/build.component.html
index a1ef62d..1ce9484 100644
--- a/webapp/src/app/pages/build/build.component.html
+++ b/webapp/src/app/pages/build/build.component.html
@@ -11,43 +11,48 @@
</nb-actions>
</nb-card-body>
</div>
- <div class="col-md-12 col-lg-12 col-xxxl-6">
+ <div class="col-md-12 col-lg-12">
<nb-card size="xlarge">
<nb-tabset fullWidth>
- <nb-tab tabTitle="Build">
+ <nb-tab tabTitle="Build" style="overflow: hidden;">
- <div class="row" style="margin-top:1em;">
- <!-- FIXME SEB
- <button class="btn pull-right " (click)="reset() ">
- <span class="fa fa-eraser fa-size-x2"></span>
- </button>
- -->
- <div class="col-md-12 text-center ">
- <textarea rows="20" class="textarea-scroll" #scrollOutput>{{ cmdOutput }}</textarea>
- </div>
+ <div class="offset-md-10 col-md-2 right">
+ <i class="control-icon fa fa-eraser" (click)="resetOutput()">
+ </i>
+ </div>
+ <div class="col-md-12 text-center ">
+ <textarea rows="20" class="textarea-scroll" #scrollOutput>{{ cmdOutput }}</textarea>
</div>
<nb-card-body>
- <nb-actions size="medium" fullWidth>
- <nb-action (click)="clean()">
- <i class="fa fa-eraser"></i>
- <span>Clean</span>
- </nb-action>
- <nb-action (click)="preBuild()">
- <i class="nb-list"></i>
- <span>Pre-Build</span>
- </nb-action>
- <nb-action (click)="build()">
- <i class="fa fa-wrench"></i>
- <span>Build</span>
- </nb-action>
- <nb-action (click)="populate()">
- <i class="fa fa-send"></i>
- <span>Populate</span>
- </nb-action>
- </nb-actions>
- </nb-card-body>
+ <nb-actions size="medium" fullWidth>
+ <nb-action (click)="settingsShow()">
+ <i class="fa fa-cog"></i>
+ <span>Settings</span>
+ </nb-action>
+
+ <nb-action>
+ </nb-action>
+
+ <nb-action (click)="clean()">
+ <i class="fa fa-eraser"></i>
+ <span>Clean</span>
+ </nb-action>
+ <nb-action (click)="preBuild()">
+ <i class="nb-list"></i>
+ <span>Pre-Build</span>
+ </nb-action>
+ <nb-action (click)="build()">
+ <i class="fa fa-wrench"></i>
+ <span>Build</span>
+ </nb-action>
+ <nb-action (click)="populate()">
+ <i class="fa fa-send"></i>
+ <span>Populate</span>
+ </nb-action>
+ </nb-actions>
+ </nb-card-body>
</nb-tab>
diff --git a/webapp/src/app/pages/build/build.component.scss b/webapp/src/app/pages/build/build.component.scss
index b256f66..5308f3f 100644
--- a/webapp/src/app/pages/build/build.component.scss
+++ b/webapp/src/app/pages/build/build.component.scss
@@ -23,6 +23,12 @@
}
}
+.right {
+ display: flex;
+ flex-direction: row-reverse;
+ padding-right: 30px;
+}
+
nb-action {
i {
font-size: 2rem;
diff --git a/webapp/src/app/pages/build/build.component.spec.ts b/webapp/src/app/pages/build/build.component.spec.ts
index 016192c..a676a66 100644
--- a/webapp/src/app/pages/build/build.component.spec.ts
+++ b/webapp/src/app/pages/build/build.component.spec.ts
@@ -8,7 +8,7 @@ describe('BuildComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ BuildComponent ]
+ declarations: [ BuildComponent ],
})
.compileComponents();
}));
diff --git a/webapp/src/app/pages/build/build.component.ts b/webapp/src/app/pages/build/build.component.ts
index 5adb9bc..99b7e54 100644
--- a/webapp/src/app/pages/build/build.component.ts
+++ b/webapp/src/app/pages/build/build.component.ts
@@ -1,11 +1,13 @@
import { Component, ViewEncapsulation, AfterViewChecked, ElementRef, ViewChild, OnInit, Input } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { FormControl, FormGroup, Validators, FormBuilder } from '@angular/forms';
-import { CookieService } from 'ngx-cookie';
+import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import 'rxjs/add/operator/scan';
import 'rxjs/add/operator/startWith';
+import { BuildSettingsModalComponent } from './build-settings-modal/build-settings-modal.component';
+
import { XDSAgentService, ICmdOutput } from '../../@core-xds/services/xdsagent.service';
import { ProjectService, IProject } from '../../@core-xds/services/project.service';
import { AlertService, IAlert } from '../../@core-xds/services/alert.service';
@@ -26,9 +28,6 @@ export class BuildComponent implements OnInit, AfterViewChecked {
// @Input() curProject: IProject;
@Input() curProject = <IProject>null;
- public buildForm: FormGroup;
- public subpathCtrl = new FormControl('', Validators.required);
- public debugEnable = false;
public buildIsCollapsed = false;
public cmdOutput: string;
public cmdInfo: string;
@@ -38,37 +37,16 @@ export class BuildComponent implements OnInit, AfterViewChecked {
constructor(
private prjSvr: ProjectService,
private xdsSvr: XDSAgentService,
- private fb: FormBuilder,
private alertSvr: AlertService,
private sdkSvr: SdkService,
- private cookie: CookieService,
+ private modalService: NgbModal,
) {
this.cmdOutput = '';
this.cmdInfo = ''; // TODO: to be remove (only for debug)
- this.buildForm = fb.group({
- subpath: this.subpathCtrl,
- cmdClean: ['', Validators.nullValidator],
- cmdPrebuild: ['', Validators.nullValidator],
- cmdBuild: ['', Validators.nullValidator],
- cmdPopulate: ['', Validators.nullValidator],
- cmdArgs: ['', Validators.nullValidator],
- envVars: ['', Validators.nullValidator],
- });
+
}
ngOnInit() {
- // Set default settings
- // TODO save & restore values from cookies
- this.buildForm.patchValue({
- subpath: '',
- cmdClean: 'rm -rf build',
- cmdPrebuild: 'mkdir -p build && cd build && cmake ..',
- cmdBuild: 'cd build && make',
- cmdPopulate: 'cd build && make remote-target-populate',
- cmdArgs: '',
- envVars: '',
- });
-
// Command output data tunneling
this.xdsSvr.CmdOutput$.subscribe(data => {
this.cmdOutput += data.stdout;
@@ -88,70 +66,77 @@ export class BuildComponent implements OnInit, AfterViewChecked {
});
this._scrollToBottom();
-
- // only use for debug
- this.debugEnable = (this.cookie.get('debug_build') === '1');
}
ngAfterViewChecked() {
this._scrollToBottom();
}
- reset() {
+ resetOutput() {
this.cmdOutput = '';
}
+ settingsShow() {
+ const activeModal = this.modalService.open(BuildSettingsModalComponent, { size: 'lg', container: 'nb-layout' });
+ activeModal.componentInstance.modalHeader = 'Large Modal';
+ }
+
clean() {
+ const curPrj = this.prjSvr.getCurrent();
this._exec(
- this.buildForm.value.cmdClean,
- this.buildForm.value.subpath,
+ curPrj.uiSettings.cmdClean,
+ curPrj.uiSettings.subpath,
[],
- this.buildForm.value.envVars);
+ curPrj.uiSettings.envVars.join(' '));
}
preBuild() {
+ const curPrj = this.prjSvr.getCurrent();
this._exec(
- this.buildForm.value.cmdPrebuild,
- this.buildForm.value.subpath,
+ curPrj.uiSettings.cmdPrebuild,
+ curPrj.uiSettings.subpath,
[],
- this.buildForm.value.envVars);
+ curPrj.uiSettings.envVars.join(' '));
}
build() {
+ const curPrj = this.prjSvr.getCurrent();
this._exec(
- this.buildForm.value.cmdBuild,
- this.buildForm.value.subpath,
+ curPrj.uiSettings.cmdBuild,
+ curPrj.uiSettings.subpath,
[],
- this.buildForm.value.envVars
+ curPrj.uiSettings.envVars.join(' '),
);
}
populate() {
+ const curPrj = this.prjSvr.getCurrent();
this._exec(
- this.buildForm.value.cmdPopulate,
- this.buildForm.value.subpath,
+ curPrj.uiSettings.cmdPopulate,
+ curPrj.uiSettings.subpath,
[], // args
- this.buildForm.value.envVars
+ curPrj.uiSettings.envVars.join(' '),
);
}
execCmd() {
+ const curPrj = this.prjSvr.getCurrent();
this._exec(
- this.buildForm.value.cmdArgs,
- this.buildForm.value.subpath,
+ curPrj.uiSettings.cmdArgs.join(' '),
+ curPrj.uiSettings.subpath,
[],
- this.buildForm.value.envVars
+ curPrj.uiSettings.envVars.join(' '),
);
}
private _exec(cmd: string, dir: string, args: string[], env: string) {
+ this.curProject = this.prjSvr.getCurrent();
+ const prjID = this.curProject.id;
+
if (!this.curProject) {
- this.alertSvr.warning('No active project', true);
+ return this.alertSvr.warning('No active project', true);
}
- // const prjID = this.curProject.id;
- const prjID = this.prjSvr.getCurrent().id;
-
this.cmdOutput += this._outputHeader();
const sdkid = this.sdkSvr.getCurrentId();
diff --git a/webapp/src/app/pages/build/build.module.ts b/webapp/src/app/pages/build/build.module.ts
index ac1dfab..34f05f2 100644
--- a/webapp/src/app/pages/build/build.module.ts
+++ b/webapp/src/app/pages/build/build.module.ts
@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
import { ThemeModule } from '../../@theme/theme.module';
import { BuildComponent } from './build.component';
+import { BuildSettingsModalComponent } from './build-settings-modal/build-settings-modal.component';
import { ProjectSelectDropdownComponent } from './settings/project-select-dropdown.component';
import { SdkSelectDropdownComponent } from './settings/sdk-select-dropdown.component';
@@ -11,10 +12,12 @@ import { SdkSelectDropdownComponent } from './settings/sdk-select-dropdown.compo
],
declarations: [
BuildComponent,
+ BuildSettingsModalComponent,
ProjectSelectDropdownComponent,
SdkSelectDropdownComponent,
],
entryComponents: [
+ BuildSettingsModalComponent,
],
})
export class BuildModule { }
diff --git a/webapp/src/app/pages/build/settings-modal/build-settings-modal.component.ts b/webapp/src/app/pages/build/settings-modal/build-settings-modal.component.ts
new file mode 100644
index 0000000..fd1b904
--- /dev/null
+++ b/webapp/src/app/pages/build/settings-modal/build-settings-modal.component.ts
@@ -0,0 +1,143 @@
+import { Component, Input, ViewChild, 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 RxJs required methods
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/filter';
+import 'rxjs/add/operator/debounceTime';
+
+import { AlertService, IAlert } from '../../../@core-xds/services/alert.service';
+import { ProjectService, IProject, ProjectType, ProjectTypes } from '../../../@core-xds/services/project.service';
+import { XDSConfigService } from '../../../@core-xds/services/xds-config.service';
+
+
+@Component({
+ selector: 'xds-build-settings-modal',
+ templateUrl: 'build-settings-modal.component.html',
+ styleUrls: ['build-settings-modal.component.scss'],
+})
+export class BuildSettingsModalComponent implements OnInit {
+ // @Input('server-id') serverID: string;
+ private serverID: string;
+
+ cancelAction = false;
+ userEditedLabel = false;
+ projectTypes = ProjectTypes;
+
+ addProjectForm: FormGroup;
+ typeCtrl: FormControl;
+ pathCliCtrl: FormControl;
+ pathSvrCtrl: FormControl;
+
+ constructor(
+ private alert: AlertService,
+ private projectSvr: ProjectService,
+ private XdsConfigSvr: XDSConfigService,
+ private fb: FormBuilder,
+ private activeModal: NgbActiveModal,
+ ) {
+ // Define types (first one is special/placeholder)
+ this.projectTypes.unshift({ value: ProjectType.UNSET, display: '--Select a type--' });
+
+ this.typeCtrl = new FormControl(this.projectTypes[0].value, this.validatorProjType);
+ this.pathCliCtrl = new FormControl('', this.validatorProjPath);
+ this.pathSvrCtrl = new FormControl({ value: '', disabled: true }, this.validatorProjPath);
+
+ this.addProjectForm = fb.group({
+ type: this.typeCtrl,
+ pathCli: this.pathCliCtrl,
+ pathSvr: this.pathSvrCtrl,
+ label: ['', Validators.nullValidator],
+ });
+ }
+
+
+ ngOnInit() {
+ // Update server ID
+ this.serverID = this.XdsConfigSvr.getCurServer().id;
+ this.XdsConfigSvr.onCurServer().subscribe(svr => this.serverID = svr.id);
+
+ // Auto create label name
+ this.pathCliCtrl.valueChanges
+ .debounceTime(100)
+ .filter(n => n)
+ .map(n => {
+ const last = n.split('/');
+ let nm = n;
+ if (last.length > 0) {
+ nm = last.pop();
+ if (nm === '' && last.length > 0) {
+ nm = last.pop();
+ }
+ }
+ return 'Project_' + nm;
+ })
+ .subscribe(value => {
+ if (value && !this.userEditedLabel) {
+ this.addProjectForm.patchValue({ label: value });
+ }
+ });
+
+ // Handle disabling of Server path
+ this.typeCtrl.valueChanges
+ .debounceTime(500)
+ .subscribe(valType => {
+ const dis = (valType === String(ProjectType.SYNCTHING));
+ this.pathSvrCtrl.reset({ value: '', disabled: dis });
+ });
+ }
+
+ closeModal() {
+ this.activeModal.close();
+ }
+
+ onKeyLabel(event: any) {
+ this.userEditedLabel = (this.addProjectForm.value.label !== '');
+ }
+
+ onChangeLocalProject(e) {
+ }
+
+ onSubmit() {
+ if (this.cancelAction) {
+ return;
+ }
+
+ const formVal = this.addProjectForm.value;
+
+ const type = formVal['type'].value;
+ this.projectSvr.add({
+ serverId: this.serverID,
+ label: formVal['label'],
+ pathClient: formVal['pathCli'],
+ pathServer: formVal['pathSvr'],
+ type: formVal['type'],
+ // FIXME: allow to set defaultSdkID from New Project config panel
+ })
+ .subscribe(prj => {
+ this.alert.info('Project ' + prj.label + ' successfully created.');
+ this.closeModal();
+
+ // Reset Value for the next creation
+ this.addProjectForm.reset();
+ const selectedType = this.projectTypes[0].value;
+ this.addProjectForm.patchValue({ type: selectedType });
+
+ },
+ err => {
+ this.alert.error(err, 60);
+ this.closeModal();
+ });
+ }
+
+ private validatorProjType(g: FormGroup): ValidationErrors | null {
+ return (g.value !== ProjectType.UNSET) ? null : { validatorProjType: { valid: false } };
+ }
+
+ private validatorProjPath(g: FormGroup): ValidationErrors | null {
+ return (g.disabled || g.value !== '') ? null : { validatorProjPath: { valid: false } };
+ }
+
+}
diff --git a/webapp/src/app/pages/build/settings/project-select-dropdown.component.ts b/webapp/src/app/pages/build/settings/project-select-dropdown.component.ts
index da3580a..a83ec0a 100644
--- a/webapp/src/app/pages/build/settings/project-select-dropdown.component.ts
+++ b/webapp/src/app/pages/build/settings/project-select-dropdown.component.ts
@@ -1,4 +1,5 @@
import { Component, OnInit, Input } from '@angular/core';
+import { Observable } from 'rxjs/Observable';
import { IProject, ProjectService } from '../../../@core-xds/services/project.service';
@@ -7,33 +8,27 @@ import { IProject, ProjectService } from '../../../@core-xds/services/project.se
template: `
<div class="form-group">
<label>Project</label>
- <select class="form-control">
- <option *ngFor="let prj of projects" (click)="select(prj)">{{prj.label}}</option>
+ <select class="form-control" [(ngModel)]="curPrj" (click)="select()">
+ <option *ngFor="let prj of projects$ | async" [ngValue]="prj">{{ prj.label }}</option>
</select>
</div>
`,
})
export class ProjectSelectDropdownComponent implements OnInit {
- projects: IProject[];
+ projects$: Observable<IProject[]>;
curPrj: IProject;
- constructor(private prjSvr: ProjectService) { }
+ constructor(private projectSvr: ProjectService) { }
ngOnInit() {
- this.curPrj = this.prjSvr.getCurrent();
- this.prjSvr.Projects$.subscribe((s) => {
- if (s) {
- this.projects = s;
- if (this.curPrj === null || s.indexOf(this.curPrj) === -1) {
- this.prjSvr.setCurrent(this.curPrj = s.length ? s[0] : null);
- }
- }
- });
+ this.curPrj = this.projectSvr.getCurrent();
+ this.projects$ = this.projectSvr.projects$;
+ this.projectSvr.curProject$.subscribe(p => this.curPrj = p);
}
- select(s) {
- this.prjSvr.setCurrent(this.curPrj = s);
+ select() {
+ this.projectSvr.setCurrentById(this.curPrj.id);
}
}
diff --git a/webapp/src/app/pages/config/config-xds/downloadXdsAgent.component.ts b/webapp/src/app/pages/config/config-xds/downloadXdsAgent.component.ts
index 3901331..556316c 100644
--- a/webapp/src/app/pages/config/config-xds/downloadXdsAgent.component.ts
+++ b/webapp/src/app/pages/config/config-xds/downloadXdsAgent.component.ts
@@ -2,6 +2,8 @@ import { Component } from '@angular/core';
@Component({
selector: 'xds-dwnl-agent',
+ template: ``,
+ /* FIXME SEB: to be reworked
template: `
<template #popTemplate>
<h3>Install xds-agent:</h3>
@@ -25,7 +27,8 @@ import { Component } from '@angular/core';
.fa-size-x2 {
font-size: 20px;
}
- `]
+ `],
+ */
})
export class DwnlAgentComponent {
diff --git a/webapp/src/app/pages/config/config.module.ts b/webapp/src/app/pages/config/config.module.ts
index 2fdaf94..d11bcf3 100644
--- a/webapp/src/app/pages/config/config.module.ts
+++ b/webapp/src/app/pages/config/config.module.ts
@@ -10,6 +10,6 @@ import { ConfigRoutingModule, routedConfig } from './config-routing.module';
],
declarations: [
...routedConfig,
- ]
+ ],
})
export class ConfigModule { }
diff --git a/webapp/src/app/pages/projects/project-add-modal/project-add-modal.component.html b/webapp/src/app/pages/projects/project-add-modal/project-add-modal.component.html
index e2c6748..9d26c71 100644
--- a/webapp/src/app/pages/projects/project-add-modal/project-add-modal.component.html
+++ b/webapp/src/app/pages/projects/project-add-modal/project-add-modal.component.html
@@ -39,13 +39,14 @@
<input type="text" id="inputLabel" class="form-control" formControlName="label" (keyup)="onKeyLabel($event)">
</div>
</div>
-
- <div class="offset-sm-3 col-sm-9">
- <button class="btn btn-md btn-secondary" (click)="cancelAction=true; closeModal()"> Cancel </button>
- <button class="btn btn-md btn-primary" type="submit" [disabled]="!addProjectForm.valid">Add Folder</button>
- </div>
</form>
</div>
</div>
<div class="modal-footer form-group">
+ <div class="col-12">
+ <div class="offset-sm-4 col-sm-6">
+ <button class="btn btn-md btn-secondary" (click)="cancelAction=true; closeModal()"> Cancel </button>
+ <button class="btn btn-md btn-primary" (click)="onSubmit()" [disabled]="!addProjectForm.valid">Add Folder</button>
+ </div>
+ </div>
</div>
diff --git a/webapp/src/app/pages/projects/project-add-modal/project-add-modal.component.ts b/webapp/src/app/pages/projects/project-add-modal/project-add-modal.component.ts
index 640ac5c..15b1b24 100644
--- a/webapp/src/app/pages/projects/project-add-modal/project-add-modal.component.ts
+++ b/webapp/src/app/pages/projects/project-add-modal/project-add-modal.component.ts
@@ -16,7 +16,7 @@ import { XDSConfigService } from '../../../@core-xds/services/xds-config.service
@Component({
selector: 'xds-project-add-modal',
templateUrl: 'project-add-modal.component.html',
- styleUrls: ['project-add-modal.component.scss']
+ styleUrls: ['project-add-modal.component.scss'],
})
export class ProjectAddModalComponent implements OnInit {
// @Input('server-id') serverID: string;
@@ -24,7 +24,7 @@ export class ProjectAddModalComponent implements OnInit {
cancelAction = false;
userEditedLabel = false;
- projectTypes = ProjectTypes;
+ projectTypes = Object.assign([], ProjectTypes);
addProjectForm: FormGroup;
typeCtrl: FormControl;
@@ -36,7 +36,7 @@ export class ProjectAddModalComponent implements OnInit {
private projectSvr: ProjectService,
private XdsConfigSvr: XDSConfigService,
private fb: FormBuilder,
- private activeModal: NgbActiveModal
+ private activeModal: NgbActiveModal,
) {
// Define types (first one is special/placeholder)
this.projectTypes.unshift({ value: ProjectType.UNSET, display: '--Select a type--' });
@@ -108,7 +108,7 @@ export class ProjectAddModalComponent implements OnInit {
const formVal = this.addProjectForm.value;
const type = formVal['type'].value;
- this.projectSvr.Add({
+ this.projectSvr.add({
serverId: this.serverID,
label: formVal['label'],
pathClient: formVal['pathCli'],
diff --git a/webapp/src/app/pages/projects/project-card/project-card.component.scss b/webapp/src/app/pages/projects/project-card/project-card.component.scss
index a433f58..6ac8d11 100644
--- a/webapp/src/app/pages/projects/project-card/project-card.component.scss
+++ b/webapp/src/app/pages/projects/project-card/project-card.component.scss
@@ -13,11 +13,6 @@ nb-card-footer {
text-align: right;
}
-.fa-big {
- font-size: 20px;
- font-weight: bold;
-}
-
.fa-size-x2 {
font-size: 20px;
}
@@ -31,14 +26,6 @@ th label {
margin-bottom: 0;
}
-tr.info>th {
- vertical-align: middle;
-}
-
-tr.info>td {
- vertical-align: middle;
-}
-
.btn-outline-danger.btn-xds {
color: #ff4c6a;
&:focus {
diff --git a/webapp/src/app/pages/projects/project-card/project-card.component.ts b/webapp/src/app/pages/projects/project-card/project-card.component.ts
index 160c4c8..840d656 100644
--- a/webapp/src/app/pages/projects/project-card/project-card.component.ts
+++ b/webapp/src/app/pages/projects/project-card/project-card.component.ts
@@ -17,28 +17,28 @@ export class ProjectCardComponent {
constructor(
private alert: AlertService,
- private projectSvr: ProjectService
+ private projectSvr: ProjectService,
) {
}
delete(prj: IProject) {
- this.projectSvr.Delete(prj).subscribe(
+ this.projectSvr.delete(prj).subscribe(
res => { },
- err => this.alert.error('ERROR delete: ' + err)
+ err => this.alert.error('ERROR delete: ' + err),
);
}
sync(prj: IProject) {
- this.projectSvr.Sync(prj).subscribe(
+ this.projectSvr.sync(prj).subscribe(
res => { },
- err => this.alert.error('ERROR: ' + err)
+ err => this.alert.error('ERROR: ' + err),
);
}
}
// Make Project type human readable
@Pipe({
- name: 'readableType'
+ name: 'readableType',
})
export class ProjectReadableTypePipe implements PipeTransform {
diff --git a/webapp/src/app/pages/projects/projects.component.html b/webapp/src/app/pages/projects/projects.component.html
index 662dfcc..ecce824 100644
--- a/webapp/src/app/pages/projects/projects.component.html
+++ b/webapp/src/app/pages/projects/projects.component.html
@@ -20,7 +20,7 @@
</div>
</nb-card-body>
</div>
- <div class="col-md-12 col-lg-12 col-xxxl-6" *ngFor="let prj of (projects$ | async)">
+ <div class="col-md-6 col-lg-6" *ngFor="let prj of (projects$ | async)">
<xds-project-card [project]="prj"></xds-project-card>
</div>
</div>
diff --git a/webapp/src/app/pages/projects/projects.component.scss b/webapp/src/app/pages/projects/projects.component.scss
index 3631fbb..92a8807 100644
--- a/webapp/src/app/pages/projects/projects.component.scss
+++ b/webapp/src/app/pages/projects/projects.component.scss
@@ -25,7 +25,7 @@
order: 1;
flex-direction: row-reverse;
}
- nb-actions>nb-action {
+ nb-actions > nb-action {
padding: 0;
}
nb-action {
diff --git a/webapp/src/app/pages/projects/projects.component.ts b/webapp/src/app/pages/projects/projects.component.ts
index 179bbd0..761ff50 100644
--- a/webapp/src/app/pages/projects/projects.component.ts
+++ b/webapp/src/app/pages/projects/projects.component.ts
@@ -23,7 +23,7 @@ export class ProjectsComponent implements OnInit {
}
ngOnInit() {
- this.projects$ = this.projectSvr.Projects$;
+ this.projects$ = this.projectSvr.projects$;
}
add() {
diff --git a/webapp/src/app/pages/projects/projects.module.ts b/webapp/src/app/pages/projects/projects.module.ts
index 48f37ce..960a2da 100644
--- a/webapp/src/app/pages/projects/projects.module.ts
+++ b/webapp/src/app/pages/projects/projects.module.ts
@@ -17,7 +17,7 @@ import { ProjectAddModalComponent } from './project-add-modal/project-add-modal.
ProjectReadableTypePipe,
],
entryComponents: [
- ProjectAddModalComponent
+ ProjectAddModalComponent,
],
})
export class ProjectsModule { }
diff --git a/webapp/src/app/pages/sdks/sdk-card/sdk-card.component.scss b/webapp/src/app/pages/sdks/sdk-card/sdk-card.component.scss
index e404610..a83cca4 100644
--- a/webapp/src/app/pages/sdks/sdk-card/sdk-card.component.scss
+++ b/webapp/src/app/pages/sdks/sdk-card/sdk-card.component.scss
@@ -13,11 +13,6 @@ nb-card-footer {
text-align: right;
}
-.fa-big {
- font-size: 20px;
- font-weight: bold;
-}
-
.fa-size-x2 {
font-size: 20px;
}
@@ -31,14 +26,6 @@ th label {
margin-bottom: 0;
}
-tr.info>th {
- vertical-align: middle;
-}
-
-tr.info>td {
- vertical-align: middle;
-}
-
.btn-outline-danger.btn-xds {
color: #ff4c6a;
&:focus {
diff --git a/webapp/src/app/pages/sdks/sdk-card/sdk-card.component.ts b/webapp/src/app/pages/sdks/sdk-card/sdk-card.component.ts
index 8228570..7135d36 100644
--- a/webapp/src/app/pages/sdks/sdk-card/sdk-card.component.ts
+++ b/webapp/src/app/pages/sdks/sdk-card/sdk-card.component.ts
@@ -17,7 +17,7 @@ export class SdkCardComponent {
constructor(
private alert: AlertService,
- private sdkSvr: SdkService
+ private sdkSvr: SdkService,
) {
}
@@ -28,7 +28,7 @@ export class SdkCardComponent {
delete(sdk: ISdk) {
this.sdkSvr.delete(sdk).subscribe(
res => { },
- err => this.alert.error('ERROR delete: ' + err)
+ err => this.alert.error('ERROR delete: ' + err),
);
}
}
diff --git a/webapp/src/app/pages/sdks/sdks.component.html b/webapp/src/app/pages/sdks/sdks.component.html
index adfd924..94c2501 100644
--- a/webapp/src/app/pages/sdks/sdks.component.html
+++ b/webapp/src/app/pages/sdks/sdks.component.html
@@ -20,7 +20,7 @@
</div>
</nb-card-body>
</div>
- <div class="col-md-12 col-lg-12 col-xxxl-6" *ngFor="let sdk of (sdks$ | async)">
+ <div class="col-md-6 col-lg-6" *ngFor="let sdk of (sdks$ | async)">
<xds-sdk-card [sdk]="sdk"></xds-sdk-card>
</div>
</div>
diff --git a/webapp/src/app/pages/sdks/sdks.component.scss b/webapp/src/app/pages/sdks/sdks.component.scss
index 3631fbb..92a8807 100644
--- a/webapp/src/app/pages/sdks/sdks.component.scss
+++ b/webapp/src/app/pages/sdks/sdks.component.scss
@@ -25,7 +25,7 @@
order: 1;
flex-direction: row-reverse;
}
- nb-actions>nb-action {
+ nb-actions > nb-action {
padding: 0;
}
nb-action {
diff --git a/webapp/src/app/pages/sdks/sdks.component.ts b/webapp/src/app/pages/sdks/sdks.component.ts
index 3208121..ef933af 100644
--- a/webapp/src/app/pages/sdks/sdks.component.ts
+++ b/webapp/src/app/pages/sdks/sdks.component.ts
@@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
-//import { SdkAddModalComponent } from './sdk-add-modal/sdk-add-modal.component';
+// import { SdkAddModalComponent } from './sdk-add-modal/sdk-add-modal.component';
import { SdkService, ISdk } from '../../@core-xds/services/sdk.service';
diff --git a/webapp/src/app/pages/sdks/sdks.module.ts b/webapp/src/app/pages/sdks/sdks.module.ts
index 48629f6..c811eb4 100644
--- a/webapp/src/app/pages/sdks/sdks.module.ts
+++ b/webapp/src/app/pages/sdks/sdks.module.ts
@@ -3,7 +3,7 @@ import { ThemeModule } from '../../@theme/theme.module';
import { SdksComponent } from './sdks.component';
import { SdkCardComponent } from './sdk-card/sdk-card.component';
-//import { SdkAddModalComponent } from './sdk-add-modal/sdk-add-modal.component';
+// import { SdkAddModalComponent } from './sdk-add-modal/sdk-add-modal.component';
@NgModule({
@@ -13,10 +13,10 @@ import { SdkCardComponent } from './sdk-card/sdk-card.component';
declarations: [
SdksComponent,
SdkCardComponent,
- //SdkAddModalComponent,
+ // SdkAddModalComponent,
],
entryComponents: [
- //SdkAddModalComponent
+ // SdkAddModalComponent,
],
})
export class SdksModule { }