diff --git a/src-ui/src/app/app.module.ts b/src-ui/src/app/app.module.ts
index 6a847494a..394e3ba58 100644
--- a/src-ui/src/app/app.module.ts
+++ b/src-ui/src/app/app.module.ts
@@ -29,6 +29,7 @@ import { AppFrameComponent } from './components/app-frame/app-frame.component';
import { ToastsComponent } from './components/common/toasts/toasts.component';
import { FilterEditorComponent } from './components/filter-editor/filter-editor.component';
import { FilterDropdownComponent } from './components/filter-editor/filter-dropdown/filter-dropdown.component';
+import { FilterDropdownDateComponent } from './components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component';
import { DocumentCardLargeComponent } from './components/document-list/document-card-large/document-card-large.component';
import { DocumentCardSmallComponent } from './components/document-list/document-card-small/document-card-small.component';
import { NgxFileDropModule } from 'ngx-file-drop';
@@ -76,6 +77,7 @@ import { FilterPipe } from './pipes/filter.pipe';
ToastsComponent,
FilterEditorComponent,
FilterDropdownComponent,
+ FilterDropdownDateComponent,
DocumentCardLargeComponent,
DocumentCardSmallComponent,
TextComponent,
diff --git a/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.html b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.html
new file mode 100644
index 000000000..74d508390
--- /dev/null
+++ b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.scss b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.scss
new file mode 100644
index 000000000..67edb9bf8
--- /dev/null
+++ b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.scss
@@ -0,0 +1,3 @@
+.date-filter {
+ min-width: 250px;
+}
diff --git a/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.spec.ts b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.spec.ts
new file mode 100644
index 000000000..6bf59e2e7
--- /dev/null
+++ b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.spec.ts
@@ -0,0 +1,25 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { FilterDropdownDateComponent } from './filter-dropdown-date.component';
+
+describe('FilterDropdownDateComponent', () => {
+ let component: FilterDropdownDateComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [ FilterDropdownDateComponent ]
+ })
+ .compileComponents();
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(FilterDropdownDateComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.ts b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.ts
new file mode 100644
index 000000000..37ea2cd09
--- /dev/null
+++ b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown-date/filter-dropdown-date.component.ts
@@ -0,0 +1,53 @@
+import { Component, EventEmitter, Input, OnInit, Output, ElementRef, ViewChild } from '@angular/core';
+import { FilterRuleType, FILTER_RULE_TYPES } from 'src/app/data/filter-rule-type';
+import { ObjectWithId } from 'src/app/data/object-with-id';
+import { FilterDropdownComponent } from '../filter-dropdown.component'
+import { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';
+
+@Component({
+ selector: 'app-filter-dropdown-date',
+ templateUrl: './filter-dropdown-date.component.html',
+ styleUrls: ['./filter-dropdown-date.component.scss']
+})
+export class FilterDropdownDateComponent extends FilterDropdownComponent {
+
+ @Input()
+ filterRuleTypeIDs: number[] = []
+
+ @Output()
+ selected = new EventEmitter()
+
+ filterRuleTypes: FilterRuleType[] = []
+ showYear: boolean = false
+ showMonth: boolean = false
+ dateAfter: NgbDateStruct
+ dateBefore: NgbDateStruct
+
+ ngOnInit(): void {
+ this.filterRuleTypes = this.filterRuleTypeIDs.map(id => FILTER_RULE_TYPES.find(rt => rt.id == id))
+ this.filterRuleTypeID = this.filterRuleTypeIDs[0]
+ super.ngOnInit()
+
+ this.showYear = this.filterRuleTypes.find(rt => rt.filtervar.indexOf('year') > -1) !== undefined
+ this.showMonth = this.filterRuleTypes.find(rt => rt.filtervar.indexOf('month') > -1) !== undefined
+ }
+
+ setQuickFilter(range: any) {
+ this.dateAfter = this.dateBefore = undefined
+ switch (typeof range) {
+ case 'number':
+ let date = new Date();
+ date.setDate(date.getDate() - range)
+ this.dateAfter = { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() }
+ break;
+
+ case 'string':
+ let filterRuleType = this.filterRuleTypes.find(rt => rt.filtervar.indexOf(range) > -1)
+ console.log(range);
+ break;
+
+ default:
+ break;
+ }
+ }
+}
diff --git a/src-ui/src/app/components/filter-editor/filter-editor.component.html b/src-ui/src/app/components/filter-editor/filter-editor.component.html
index 153f32644..d3473337b 100644
--- a/src-ui/src/app/components/filter-editor/filter-editor.component.html
+++ b/src-ui/src/app/components/filter-editor/filter-editor.component.html
@@ -6,18 +6,9 @@
-
-
+
-
-
-
-
-
-
-
+