From 6f2f84ec535c5ef72c20388e31823e5eee4314a7 Mon Sep 17 00:00:00 2001 From: Martin Mechtel <mechtelm@user.hu-berlin.de> Date: Wed, 16 Jan 2019 21:27:57 +0100 Subject: [PATCH] questionnaire ok --- src/app/app.module.ts | 4 +- .../questionnaire/questionnaire.component.css | 6 +-- .../questionnaire.component.html | 44 ++++++++++++++----- .../questionnaire/questionnaire.component.ts | 8 +++- src/app/sys-check/run.component.html | 2 +- src/app/sys-check/run.component.ts | 3 +- src/app/sys-check/sys-check.module.ts | 5 ++- 7 files changed, 51 insertions(+), 21 deletions(-) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index e197787f..de1ed07f 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -7,7 +7,7 @@ import { ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule, MatCheckboxModule, MatMenuModule, MatTooltipModule, MatCardModule, MatToolbarModule, MatIconModule, MatDialogModule, MatFormFieldModule, MatInputModule, - MatTabsModule, MatProgressSpinnerModule } from '@angular/material'; + MatTabsModule, MatProgressSpinnerModule, MatRadioModule } from '@angular/material'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; @@ -37,6 +37,8 @@ import { ErrormsgComponent } from './errormsg/errormsg.component'; MatIconModule, MatInputModule, MatTooltipModule, + MatCheckboxModule, + MatRadioModule, MatDialogModule, MatTabsModule, MatProgressSpinnerModule, diff --git a/src/app/sys-check/questionnaire/questionnaire.component.css b/src/app/sys-check/questionnaire/questionnaire.component.css index 4300c565..cc67e2ac 100644 --- a/src/app/sys-check/questionnaire/questionnaire.component.css +++ b/src/app/sys-check/questionnaire/questionnaire.component.css @@ -11,6 +11,7 @@ display: block; left: 15px; right: 15px; + overflow: auto; } .formList { @@ -19,9 +20,6 @@ } .formEntry { - margin: 10px 0 0 0; + margin: 5px 0 0 10px; } -.field { - width: 200px; -} diff --git a/src/app/sys-check/questionnaire/questionnaire.component.html b/src/app/sys-check/questionnaire/questionnaire.component.html index 4c14bff2..480de7f9 100644 --- a/src/app/sys-check/questionnaire/questionnaire.component.html +++ b/src/app/sys-check/questionnaire/questionnaire.component.html @@ -3,17 +3,39 @@ </div> <div class="step-body" #questionnaireBody> <div [formGroup]="form" class="formList" fxLayout="column"> - <div *ngFor="let q of questions" fxLayout="row" fxLayoutGap="5px" fxLayoutAlign="left top" class="formEntry"> - <label>{{q.prompt}}</label> - - <mat-form-field class="field" [ngSwitch]="q.type" *ngIf="q.type !== 'header'"> - <input matInput *ngSwitchCase="'string'" [formControlName]="q.id"> - <mat-select [id]="q.id" *ngSwitchCase="'select'" [formControlName]="q.id"> - <mat-option *ngFor="let opt of q.options" [value]="opt"> - {{opt}} - </mat-option> - </mat-select> - </mat-form-field> + <div *ngFor="let q of questions"> + <div [ngSwitch]="q.type" class="formEntry" fxLayout="column" fxLayoutGap="5px"> + <h2 *ngSwitchCase="'header'">{{ q.value }}</h2> + <mat-form-field *ngSwitchCase="'text'"> + <p>{{q.prompt}}</p> + <textarea matInput [formControlName]="q.id" [id]="q.id" cdkTextareaAutosize cdkAutosizeMinRows="2" class="formEntry"></textarea> + </mat-form-field> + <mat-form-field *ngSwitchCase="'string'"> + <p>{{q.prompt}}</p> + <input matInput [formControlName]="q.id" [id]="q.id" class="formEntry"> + </mat-form-field> + <mat-form-field *ngSwitchCase="'select'"> + <p>{{q.prompt}}</p> + <mat-select [id]="q.id" [formControlName]="q.id" class="formEntry"> + <mat-option *ngFor="let opt of q.options" [value]="opt"> + {{opt}} + </mat-option> + </mat-select> + </mat-form-field> + <div *ngSwitchCase="'check'"> + <p *ngIf="q.prompt.length > 0">{{q.prompt}}</p> + <mat-checkbox *ngSwitchCase="'check'" [formControlName]="q.id" [id]="q.id">{{q.value}}</mat-checkbox> + </div> + <div *ngSwitchCase="'radio'"> + <p>{{q.prompt}}</p> + <mat-radio-group [id]="q.id" [formControlName]="q.id" [name]="q.id"> + <mat-radio-button *ngFor="let opt of q.options" [value]="opt" class="formEntry"> + {{opt}} + </mat-radio-button> + </mat-radio-group> + </div> + <p *ngSwitchDefault>Unbekannter Control-Typ: {{q.type}} für Element-ID {{q.id}}</p> + </div> </div> </div> </div> diff --git a/src/app/sys-check/questionnaire/questionnaire.component.ts b/src/app/sys-check/questionnaire/questionnaire.component.ts index 31ae979c..b94f110e 100644 --- a/src/app/sys-check/questionnaire/questionnaire.component.ts +++ b/src/app/sys-check/questionnaire/questionnaire.component.ts @@ -38,8 +38,12 @@ export class QuestionnaireComponent implements OnInit { this.form.valueChanges.subscribe(f => { const myReportEntries: ReportEntry[] = []; this.questions.forEach(element => { - const myValue = this.form.controls[element.id].value; - myReportEntries.push({'label': element.prompt, 'value': myValue}); + if (element.type === 'header') { + myReportEntries.push({'label': element.value, 'value': ''}); + } else { + const myValue = this.form.controls[element.id].value; + myReportEntries.push({'label': element.prompt, 'value': myValue}); + } }); this.ds.questionnaireData$.next(myReportEntries); }); diff --git a/src/app/sys-check/run.component.html b/src/app/sys-check/run.component.html index 4a351564..63b0b7b7 100644 --- a/src/app/sys-check/run.component.html +++ b/src/app/sys-check/run.component.html @@ -56,7 +56,7 @@ <button mat-mini-fab matStepperPrevious> <i class="material-icons">chevron_left</i> </button> - <button mat-raised-button (click)="saveReport()">Bericht senden</button> + <button *ngIf="saveEnabled" mat-raised-button (click)="saveReport()">Bericht senden</button> </div> </mat-step> </mat-horizontal-stepper> diff --git a/src/app/sys-check/run.component.ts b/src/app/sys-check/run.component.ts index 93bdf6c2..9a48e008 100644 --- a/src/app/sys-check/run.component.ts +++ b/src/app/sys-check/run.component.ts @@ -28,7 +28,7 @@ export class RunComponent implements OnInit { paramId: string; unitcheckAvailable = false; questionnaireAvailable = false; - emailEnabled = false; + saveEnabled = false; constructor( @@ -79,6 +79,7 @@ export class RunComponent implements OnInit { this.ds.checkConfig$.next(scData); this.stepper.selectedIndex = 0; this.stepNetwork.completed = false; + this.saveEnabled = scData.cansave; } ); } diff --git a/src/app/sys-check/sys-check.module.ts b/src/app/sys-check/sys-check.module.ts index 8ba43872..419f3ca6 100644 --- a/src/app/sys-check/sys-check.module.ts +++ b/src/app/sys-check/sys-check.module.ts @@ -1,3 +1,4 @@ +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { ResizeIFrameChildDirective } from './unit-check/resize-IFrameChild/resize-IFrameChild.directive'; import { SyscheckDataService } from './syscheck-data.service'; import { BackendService } from './backend.service'; @@ -10,7 +11,7 @@ import { RunComponent } from './run.component'; import { FlexLayoutModule } from '@angular/flex-layout'; import { MatButtonModule, MatCheckboxModule, MatMenuModule, MatTooltipModule, MatCardModule, MatStepperModule, MatToolbarModule, MatIconModule, MatDialogModule, MatFormFieldModule, MatInputModule, MatSelectModule, - MatTabsModule, MatProgressSpinnerModule, MatSnackBarModule } from '@angular/material'; + MatTabsModule, MatProgressSpinnerModule, MatSnackBarModule, MatRadioModule } from '@angular/material'; import {MatDividerModule} from '@angular/material/divider'; import {MatListModule} from '@angular/material/list'; import { ReactiveFormsModule } from '@angular/forms'; @@ -36,7 +37,9 @@ import { SaveReportComponent } from './report/save-report/save-report.component' MatButtonModule, MatDividerModule, MatListModule, + MatIconModule, MatSelectModule, + MatRadioModule, MatSnackBarModule, MatDialogModule, ReactiveFormsModule -- GitLab