diff --git a/client/imports/app/radio/radio-search/radio-search.component.html b/client/imports/app/radio/radio-search/radio-search.component.html index 899f5f0..cb92ac5 100644 --- a/client/imports/app/radio/radio-search/radio-search.component.html +++ b/client/imports/app/radio/radio-search/radio-search.component.html @@ -81,7 +81,7 @@ Date - + @@ -115,7 +115,7 @@
-
diff --git a/client/imports/app/radio/radio-search/radio-search.component.ts b/client/imports/app/radio/radio-search/radio-search.component.ts index f3334a9..a7163d8 100644 --- a/client/imports/app/radio/radio-search/radio-search.component.ts +++ b/client/imports/app/radio/radio-search/radio-search.component.ts @@ -28,6 +28,9 @@ export class AppRadioSearchComponent implements OnDestroy, OnInit { count = 0; + dateMax: Date; + dateMin: Date; + form: FormGroup = this.ngFormBuilder.group({ date: [], sort: [], @@ -58,10 +61,12 @@ export class AppRadioSearchComponent implements OnDestroy, OnInit { private _subscriptions: { calls: Subscription[]; + dateLimits: Subscription[]; form: Subscription[]; radio: Subscription[]; } = { calls: [], + dateLimits: [], form: [], radio: [], }; @@ -111,8 +116,10 @@ export class AppRadioSearchComponent implements OnDestroy, OnInit { if (this._active) { this._subscribeCalls(); + this._subscribeDateLimits(); } else { this._unsubscribeCalls(); + this._unsubscribeDateLimits(); } } } @@ -212,6 +219,40 @@ export class AppRadioSearchComponent implements OnDestroy, OnInit { })); } + private _subscribeDateLimits(): void { + this._subscriptions.dateLimits.push( + + MeteorObservable.subscribe('calls', {}, { + fields: { audio: 0 }, + limit: 1, + sort: { startTime: -1 }, + }).subscribe(() => { + const call = RadioCalls.findOne({}, { + sort: { startTime: -1 }, + }); + + if (call) { + this.dateMax = call.startTime; + } + }), + + MeteorObservable.subscribe('calls', {}, { + fields: { audio: 0 }, + limit: 1, + sort: { startTime: 1 }, + }).subscribe(() => { + const call = RadioCalls.findOne({}, { + sort: { startTime: 1 }, + }); + + if (call) { + this.dateMin = call.startTime; + } + }), + + ); + } + private _subscribeFormChanges(): void { const dateForm = this.form.get('date'); const sortForm = this.form.get('sort'); @@ -268,6 +309,7 @@ export class AppRadioSearchComponent implements OnDestroy, OnInit { private _unsubscribe(subscriptions: Subscription[] = [ ...this._subscriptions.calls, + ...this._subscriptions.dateLimits, ...this._subscriptions.form, ...this._subscriptions.radio, ]): void { @@ -279,4 +321,8 @@ export class AppRadioSearchComponent implements OnDestroy, OnInit { private _unsubscribeCalls(): void { this._unsubscribe(this._subscriptions.calls); } + + private _unsubscribeDateLimits(): void { + this._unsubscribe(this._subscriptions.dateLimits); + } }