diff --git a/src-ui/src/app/app.module.ts b/src-ui/src/app/app.module.ts index 3021e417b..4d31fff18 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 { FilterDropdownButtonComponent } from './components/filter-editor/filter-dropdown/filter-dropdown-button/filter-dropdown-button.component'; import { FilterDropdownDateComponent } from './components/filter-editor/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'; @@ -77,6 +78,7 @@ import { FilterPipe } from './pipes/filter.pipe'; ToastsComponent, FilterEditorComponent, FilterDropdownComponent, + FilterDropdownButtonComponent, FilterDropdownDateComponent, DocumentCardLargeComponent, DocumentCardSmallComponent, diff --git a/src-ui/src/app/components/document-list/document-list.component.html b/src-ui/src/app/components/document-list/document-list.component.html index a6ec1b741..0fd139b89 100644 --- a/src-ui/src/app/components/document-list/document-list.component.html +++ b/src-ui/src/app/components/document-list/document-list.component.html @@ -64,7 +64,7 @@
- +
diff --git a/src-ui/src/app/components/document-list/document-list.component.ts b/src-ui/src/app/components/document-list/document-list.component.ts index 271f6f7e5..fe03cae80 100644 --- a/src-ui/src/app/components/document-list/document-list.component.ts +++ b/src-ui/src/app/components/document-list/document-list.component.ts @@ -6,6 +6,7 @@ import { cloneFilterRules, FilterRule } from 'src/app/data/filter-rule'; import { FILTER_CORRESPONDENT, FILTER_DOCUMENT_TYPE, FILTER_HAS_TAG, FILTER_RULE_TYPES } from 'src/app/data/filter-rule-type'; import { SavedViewConfig } from 'src/app/data/saved-view-config'; import { DocumentListViewService } from 'src/app/services/document-list-view.service'; +import { FilterEditorViewService } from 'src/app/services/filter-editor-view.service'; import { DOCUMENT_SORT_FIELDS } from 'src/app/services/rest/document.service'; import { SavedViewConfigService } from 'src/app/services/saved-view-config.service'; import { Toast, ToastService } from 'src/app/services/toast.service'; @@ -26,6 +27,7 @@ export class DocumentListComponent implements OnInit { constructor( public list: DocumentListViewService, public savedViewConfigService: SavedViewConfigService, + public filterEditorService: FilterEditorViewService, public route: ActivatedRoute, private toastService: ToastService, public modalService: NgbModal, @@ -33,14 +35,18 @@ export class DocumentListComponent implements OnInit { displayMode = 'smallCards' // largeCards, smallCards, details - filterRules: FilterRule[] = [] - - @ViewChild('filterEditor') filterEditor: FilterEditorComponent - get isFiltered() { return this.list.filterRules?.length > 0 } + set filterRules(filterRules: FilterRule[]) { + this.filterEditorService.filterRules = filterRules + } + + get filterRules(): FilterRule[] { + return this.filterEditorService.filterRules + } + getTitle() { return this.list.savedViewTitle || "Documents" } @@ -60,28 +66,29 @@ export class DocumentListComponent implements OnInit { this.route.paramMap.subscribe(params => { if (params.has('id')) { this.list.savedView = this.savedViewConfigService.getConfig(params.get('id')) - this.filterRules = this.list.filterRules + this.filterEditorService.filterRules = this.list.filterRules this.titleService.setTitle(`${this.list.savedView.title} - ${environment.appTitle}`) } else { this.list.savedView = null - this.filterRules = this.list.filterRules + this.filterEditorService.filterRules = this.list.filterRules this.titleService.setTitle(`Documents - ${environment.appTitle}`) } this.list.clear() this.list.reload() }) + this.filterEditorService.filterRules = this.list.filterRules } applyFilterRules() { - this.list.filterRules = this.filterRules + this.list.filterRules = this.filterEditorService.filterRules } clearFilterRules() { - this.list.filterRules = this.filterRules + this.list.filterRules = this.filterEditorService.filterRules } loadViewConfig(config: SavedViewConfig) { - this.filterRules = cloneFilterRules(config.filterRules) + this.filterEditorService.filterRules = cloneFilterRules(config.filterRules) this.list.load(config) } @@ -106,15 +113,18 @@ export class DocumentListComponent implements OnInit { } clickTag(tagID: number) { - this.filterEditor.toggleFilterByItem(tagID, FILTER_HAS_TAG) + this.filterEditorService.toggleFitlerByTagID(tagID) + this.applyFilterRules() } clickCorrespondent(correspondentID: number) { - this.filterEditor.toggleFilterByItem(correspondentID, FILTER_CORRESPONDENT) + this.filterEditorService.toggleFitlerByCorrespondentID(correspondentID) + this.applyFilterRules() } clickDocumentType(documentTypeID: number) { - this.filterEditor.toggleFilterByItem(documentTypeID, FILTER_DOCUMENT_TYPE) + this.filterEditorService.toggleFitlerByDocumentTypeID(documentTypeID) + this.applyFilterRules() } } diff --git a/src-ui/src/app/components/filter-editor/filter-dropdown-date/filter-dropdown-date.component.html b/src-ui/src/app/components/filter-editor/filter-dropdown-date/filter-dropdown-date.component.html index fb514d7df..a2b395c09 100644 --- a/src-ui/src/app/components/filter-editor/filter-dropdown-date/filter-dropdown-date.component.html +++ b/src-ui/src/app/components/filter-editor/filter-dropdown-date/filter-dropdown-date.component.html @@ -11,7 +11,7 @@