LP1831390: Fixing implementation of registerOnTouch
[Evergreen.git] / Open-ILS / src / eg2 / src / app / share / date-select / date-select.component.ts
index 079c4fe..66d363a 100644 (file)
@@ -58,6 +58,10 @@ export class DateSelectComponent implements OnInit, ControlValueAccessor {
         return date;
     }
 
         return date;
     }
 
+    // Stub functions required by ControlValueAccessor
+    propagateChange = (_: any) => {};
+    propagateTouch = () => {};
+
     constructor() {
         this.onChangeAsDate = new EventEmitter<Date>();
         this.onChangeAsIso = new EventEmitter<string>();
     constructor() {
         this.onChangeAsDate = new EventEmitter<Date>();
         this.onChangeAsIso = new EventEmitter<string>();
@@ -75,11 +79,7 @@ export class DateSelectComponent implements OnInit, ControlValueAccessor {
         }
 
         if (this.initialDate) {
         }
 
         if (this.initialDate) {
-            this.current = {
-                year: this.initialDate.getFullYear(),
-                month: this.initialDate.getMonth() + 1,
-                day: this.initialDate.getDate()
-            };
+            this.writeValue(this.initialDate);
         }
     }
 
         }
     }
 
@@ -102,8 +102,8 @@ export class DateSelectComponent implements OnInit, ControlValueAccessor {
         const iso = date.toISOString();
         this.onChangeAsDate.emit(date);
         this.onChangeAsYmd.emit(ymd);
         const iso = date.toISOString();
         this.onChangeAsDate.emit(date);
         this.onChangeAsYmd.emit(ymd);
-        this.propagateChange(ymd);
         this.onChangeAsIso.emit(iso);
         this.onChangeAsIso.emit(iso);
+        this.propagateChange(date);
     }
 
     // Create a date in the local time zone with selected YMD values.
     }
 
     // Create a date in the local time zone with selected YMD values.
@@ -122,19 +122,23 @@ export class DateSelectComponent implements OnInit, ControlValueAccessor {
         };
     }
 
         };
     }
 
-    writeValue(value: string) {
-        if (value !== undefined) {
-            this.initialYmd = value;
+    writeValue(value: Date) {
+        if (value) {
+            this.current = {
+                year: value.getFullYear(),
+                month: value.getMonth() + 1,
+                day: value.getDate()
+            };
         }
     }
 
         }
     }
 
-    propagateChange = (_: any) => {};
-
     registerOnChange(fn) {
         this.propagateChange = fn;
     }
 
     registerOnChange(fn) {
         this.propagateChange = fn;
     }
 
-    registerOnTouched() { }
+    registerOnTouched(fn) {
+        this.propagateTouch = fn;
+    }
 }
 
 
 }