BP 766: added times to reporting dialog
diff --git a/src/app/reporting/components/standby-reporting/standby-reporting.component.html b/src/app/reporting/components/standby-reporting/standby-reporting.component.html
index 7131d52..7bea729 100644
--- a/src/app/reporting/components/standby-reporting/standby-reporting.component.html
+++ b/src/app/reporting/components/standby-reporting/standby-reporting.component.html
@@ -66,59 +66,6 @@
</div>
</div>
</div>
- <div class="row">
- <div class="col-md-12 col-sm-12 col-xl-6">
- <div class="row" formGroupName="date">
- <label class="form-check-label col-form-label col-md-3">
- Gültigkeit
- </label>
- <div class="col-sm-4">
- <div class="form-group">
- <div class="input-group">
- <input class="form-control" placeholder="Von" name="dp" ngbDatepicker #validFrom="ngbDatepicker"
- formControlName="validFrom" required id="dateFromInput">
- <div class="input-group-append">
- <button class="btn btn-outline-secondary" (click)="validFrom.toggle()" type="button" id="dateFromPicker">
- <i class="fa fa-calendar" aria-hidden="true"></i>
- </button>
- </div>
- <div class="input-group-append">
- <button class="btn btn-outline-secondary" (click)="setDefaultDate('validFrom')" type="button" id="dateFromDefault"
- data-toggle="tooltip" data-placement="bottom" title="Auf Standardwert setzen">
- <i class="fa fa-clock-o" aria-hidden="true"></i>
- </button>
- </div>
- <ok-error [control]="form.get('date').get('validFrom')" class="w-100"></ok-error>
- </div>
- <ok-error [control]="form.controls['date']"></ok-error>
- </div>
- </div>
- <div class="col-sm-1">
- <label class="form-check-label col-form-label col-md-3">-</label>
- </div>
- <div class="col-sm-4">
- <div class="form-group">
- <div class="input-group">
- <input class="form-control" placeholder="Bis" name="dp" ngbDatepicker #validTo="ngbDatepicker"
- formControlName="validTo" required id="dateToInput">
- <div class="input-group-append">
- <button class="btn btn-outline-secondary" (click)="validTo.toggle()" type="button" id="dateToPicker">
- <i class="fa fa-calendar" aria-hidden="true"></i>
- </button>
- </div>
- <div class="input-group-append">
- <button class="btn btn-outline-secondary" (click)="setReportDefaultDays(true)" type="button" id="dateToDefault"
- data-toggle="tooltip" data-placement="bottom" title="Auf Standardwert setzen">
- <i class="fa fa-clock-o" aria-hidden="true"></i>
- </button>
- </div>
- <ok-error [control]="form.get('date').get('validTo')" class="w-100"></ok-error>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
<div *ngIf="authService.userHasRoles(['BP_Sachbearbeiter', 'BP_Admin', 'BP_Gruppenleiter'])" class="row">
<div class="col-md-12 col-sm-12 col-xl-6">
<div class="form-group row">
@@ -150,6 +97,63 @@
</div>
</div>
<div class="row">
+ <div class="col-md-12 col-sm-12 col-xl-6">
+ <div class="form-group row d-flex align-items-center h-100">
+ <label class="form-check-label col-form-label col-md-3">
+ Gültigkeit Von
+ </label>
+ <div class="input-group col-md-6" formGroupName="date">
+ <input class="form-control" placeholder="von" name="dp" ngbDatepicker #validFrom="ngbDatepicker"
+ formControlName="validFrom" required id="validityDateFromInput">
+ <div class="input-group-append">
+ <button class="btn btn-outline-secondary" (click)="validFrom.toggle()" type="button" id="validityDateFromPicker">
+ <i class="fa fa-calendar" aria-hidden="true"></i>
+ </button>
+ </div>
+ <div class="input-group-append">
+ <button class="btn btn-outline-secondary" (click)="setDefaultDate('validFrom')" type="button" id="validityDateFromDefault"
+ data-toggle="tooltip" data-placement="bottom" title="Auf Standardwert setzen">
+ <i class="fa fa-clock-o" aria-hidden="true"></i>
+ </button>
+ </div>
+ <ok-error [control]="form.controls['date']" class="w-100"></ok-error>
+ <ok-error [control]="form.get('date').get('validFrom')" class="w-100"></ok-error>
+ </div>
+ <div class="col-md-3">
+ <ngb-timepicker formControlName="validFromTime" id="moveTimePickerFrom"></ngb-timepicker>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-md-12 col-sm-12 col-xl-6">
+ <div class="form-group row d-flex align-items-center h-100">
+ <label class="form-check-label col-form-label col-md-3">
+ Gültigkeit Bis
+ </label>
+ <div class="input-group col-md-6" formGroupName="date">
+ <input class="form-control" placeholder="bis" name="dp" ngbDatepicker #validTo="ngbDatepicker"
+ formControlName="validTo" required id="validityDateToInput">
+ <div class="input-group-append">
+ <button class="btn btn-outline-secondary" (click)="validTo.toggle()" type="button" id="validityDateToPicker">
+ <i class="fa fa-calendar" aria-hidden="true"></i>
+ </button>
+ </div>
+ <div class="input-group-append">
+ <button class="btn btn-outline-secondary" (click)="setDefaultDate('validTo')" type="button" id="validityDateToDefault"
+ data-toggle="tooltip" data-placement="bottom" title="Auf Standardwert setzen">
+ <i class="fa fa-clock-o" aria-hidden="true"></i>
+ </button>
+ </div>
+ <ok-error [control]="form.get('date').get('validTo')" class="w-100"></ok-error>
+ </div>
+ <div class="col-md-3">
+ <ngb-timepicker formControlName="validToTime" id="moveTimePickerTo"></ngb-timepicker>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row">
<div class="col-xl-1 col-md-1 col-sm-12 col-12">
<button class="btn w-100 btn-primary" (click)="generate()" id="btnGenerate">Generieren</button>
</div>
diff --git a/src/app/reporting/components/standby-reporting/standby-reporting.component.ts b/src/app/reporting/components/standby-reporting/standby-reporting.component.ts
index 1cf41bf..3ec0c59 100644
--- a/src/app/reporting/components/standby-reporting/standby-reporting.component.ts
+++ b/src/app/reporting/components/standby-reporting/standby-reporting.component.ts
@@ -63,6 +63,7 @@
if (FormUtil.validate(this.form)) {
const formValue = this.form.getRawValue();
FormUtil.formatDates(formValue, ['validFrom', 'validTo']);
+ FormUtil.addTimeToDates(formValue);
const object = {
validFrom: formValue.validFrom,
validTo: formValue.validTo,
@@ -101,6 +102,8 @@
validFrom: ['', Validators.required],
validTo: ['', Validators.required],
}, { validator: [DatepickerValidator.dateRangeTo('')] }),
+ validFromTime: { hour: 12, minute: 0 },
+ validToTime: { hour: 8, minute: 0 },
printFormat: ['', Validators.required],
reportLevel: ['Ist-Ebene', Validators.required],
statusId: 1
diff --git a/src/app/shared/abstract/abstract-dialog/abstract-dialog.component.spec.ts b/src/app/shared/abstract/abstract-dialog/abstract-dialog.component.spec.ts
index 3340efd..7ef8472 100644
--- a/src/app/shared/abstract/abstract-dialog/abstract-dialog.component.spec.ts
+++ b/src/app/shared/abstract/abstract-dialog/abstract-dialog.component.spec.ts
@@ -88,37 +88,6 @@
});
});
- describe('test addTimeToDates method', () => {
- it('should add times to date and result in datestring', () => {
- const obj = {
- date: {
- validFrom: { day: 1, month: 1, year: 2018 },
- validTo: { day: 1, month: 1, year: 2018 },
- },
- validFromTime: { hour: 10, minute: 10 },
- validToTime: { hour: 12, minute: 10 },
- };
-
- FormUtil.formatDates(obj, ['validFrom', 'validTo']);
- component.addTimeToDates(obj);
- expect(obj).toBeTruthy();
- });
- it('should not change the object if a needed property is not available', () => {
- const obj = {
- validFrom: { day: 1, month: 1, year: 2018 },
- validToTime: { hour: 12, minute: 10 }
- };
-
- component.addTimeToDates(obj);
- expect(obj).toEqual(
- {
- validFrom: { day: 1, month: 1, year: 2018 },
- validToTime: { hour: 12, minute: 10 }
- }
- );
- });
- });
-
describe('setDefaultDate', () => {
it('should set validFrom to current day', () => {
component.form = new FormGroup({
diff --git a/src/app/shared/abstract/abstract-dialog/abstract-dialog.component.ts b/src/app/shared/abstract/abstract-dialog/abstract-dialog.component.ts
index ba81fc3..2100d46 100644
--- a/src/app/shared/abstract/abstract-dialog/abstract-dialog.component.ts
+++ b/src/app/shared/abstract/abstract-dialog/abstract-dialog.component.ts
@@ -45,15 +45,4 @@
setDefaultDate(field: string) {
FormUtil.setDefaultDate(this.form, field);
}
-
- addTimeToDates(obj) {
- // Fixme: make this more generic
- if (obj.hasOwnProperty('validFrom') && obj.hasOwnProperty('validFromTime')) {
- obj.validFrom = `${obj.validFrom}T${FormUtil.addZero(obj.validFromTime.hour)}:${FormUtil.addZero(obj.validFromTime.minute)}:00`;
- }
- if (obj.hasOwnProperty('validTo') && obj.hasOwnProperty('validToTime')) {
- obj.validTo = `${obj.validTo}T${FormUtil.addZero(obj.validToTime.hour)}:${FormUtil.addZero(obj.validToTime.minute)}:00`;
- }
- }
-
}
diff --git a/src/app/shared/utils/form.util.spec.ts b/src/app/shared/utils/form.util.spec.ts
index 47bae98..e50ede8 100644
--- a/src/app/shared/utils/form.util.spec.ts
+++ b/src/app/shared/utils/form.util.spec.ts
@@ -155,4 +155,35 @@
expect(FormUtil.addZero(1234)).toBe('34');
});
});
+
+ describe('test addTimeToDates method', () => {
+ it('should add times to date and result in datestring', () => {
+ const obj = {
+ date: {
+ validFrom: { day: 1, month: 1, year: 2018 },
+ validTo: { day: 1, month: 1, year: 2018 },
+ },
+ validFromTime: { hour: 10, minute: 10 },
+ validToTime: { hour: 12, minute: 10 },
+ };
+
+ FormUtil.formatDates(obj, ['validFrom', 'validTo']);
+ FormUtil.addTimeToDates(obj);
+ expect(obj).toBeTruthy();
+ });
+ it('should not change the object if a needed property is not available', () => {
+ const obj = {
+ validFrom: { day: 1, month: 1, year: 2018 },
+ validToTime: { hour: 12, minute: 10 }
+ };
+
+ FormUtil.addTimeToDates(obj);
+ expect(obj).toEqual(
+ {
+ validFrom: { day: 1, month: 1, year: 2018 },
+ validToTime: { hour: 12, minute: 10 }
+ }
+ );
+ });
+ });
});
diff --git a/src/app/shared/utils/form.util.ts b/src/app/shared/utils/form.util.ts
index 7548773..079a720 100644
--- a/src/app/shared/utils/form.util.ts
+++ b/src/app/shared/utils/form.util.ts
@@ -136,4 +136,13 @@
static addZero(num: number) {
return ('0' + num).slice(-2);
}
+
+ static addTimeToDates(obj) {
+ if (obj.hasOwnProperty('validFrom') && obj.hasOwnProperty('validFromTime')) {
+ obj.validFrom = `${obj.validFrom}T${FormUtil.addZero(obj.validFromTime.hour)}:${FormUtil.addZero(obj.validFromTime.minute)}:00`;
+ }
+ if (obj.hasOwnProperty('validTo') && obj.hasOwnProperty('validToTime')) {
+ obj.validTo = `${obj.validTo}T${FormUtil.addZero(obj.validToTime.hour)}:${FormUtil.addZero(obj.validToTime.minute)}:00`;
+ }
+ }
}
diff --git a/src/app/standby-schedule/dialogs/move-dialog/move-dialog.component.ts b/src/app/standby-schedule/dialogs/move-dialog/move-dialog.component.ts
index 7dba4fb..5e0dede 100644
--- a/src/app/standby-schedule/dialogs/move-dialog/move-dialog.component.ts
+++ b/src/app/standby-schedule/dialogs/move-dialog/move-dialog.component.ts
@@ -51,7 +51,7 @@
decide(decision) {
const dataToTransmit = this.form.getRawValue();
FormUtil.formatDates(dataToTransmit, ['validFrom', 'validTo']);
- this.addTimeToDates(dataToTransmit);
+ FormUtil.addTimeToDates(dataToTransmit);
delete dataToTransmit.validFromTime;
delete dataToTransmit.validToTime;
super.decide(decision, dataToTransmit);
diff --git a/src/app/standby-schedule/dialogs/replace-dialog/replace-dialog.component.ts b/src/app/standby-schedule/dialogs/replace-dialog/replace-dialog.component.ts
index 4e378e9..940f2e6 100644
--- a/src/app/standby-schedule/dialogs/replace-dialog/replace-dialog.component.ts
+++ b/src/app/standby-schedule/dialogs/replace-dialog/replace-dialog.component.ts
@@ -56,7 +56,7 @@
decide(decision) {
const dataToTransmit = this.form.getRawValue();
FormUtil.formatDates(dataToTransmit, ['validFrom', 'validTo']);
- this.addTimeToDates(dataToTransmit);
+ FormUtil.addTimeToDates(dataToTransmit);
delete dataToTransmit.validFromTime;
delete dataToTransmit.validToTime;
super.decide(decision, dataToTransmit);