From b45bd665736879afcc776d876a5eacad35000b66 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+nikonratm@users.noreply.github.com> Date: Mon, 14 Dec 2020 23:14:19 -0800 Subject: [PATCH] Basic bulk editor component --- src-ui/src/app/app.module.ts | 2 + .../bulk-editor/bulk-editor.component.html | 16 +++++++ .../bulk-editor/bulk-editor.component.scss | 0 .../bulk-editor/bulk-editor.component.spec.ts | 25 ++++++++++ .../bulk-editor/bulk-editor.component.ts | 46 +++++++++++++++++++ .../document-list.component.html | 30 +++++++----- .../document-list/document-list.component.ts | 4 ++ 7 files changed, 111 insertions(+), 12 deletions(-) create mode 100644 src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.html create mode 100644 src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.scss create mode 100644 src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts create mode 100644 src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.ts diff --git a/src-ui/src/app/app.module.ts b/src-ui/src/app/app.module.ts index 914854892..627d4f6cf 100644 --- a/src-ui/src/app/app.module.ts +++ b/src-ui/src/app/app.module.ts @@ -32,6 +32,7 @@ import { FilterDropdownButtonComponent } from './components/filter-editor/filter 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'; +import { BulkEditorComponent } from './components/document-list/bulk-editor/bulk-editor.component'; import { NgxFileDropModule } from 'ngx-file-drop'; import { TextComponent } from './components/common/input/text/text.component'; import { SelectComponent } from './components/common/input/select/select.component'; @@ -84,6 +85,7 @@ import { SelectDialogComponent } from './components/common/select-dialog/select- FilterDropdownDateComponent, DocumentCardLargeComponent, DocumentCardSmallComponent, + BulkEditorComponent, TextComponent, SelectComponent, CheckComponent, diff --git a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.html b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.html new file mode 100644 index 000000000..a1574f6f7 --- /dev/null +++ b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -0,0 +1,16 @@ +
+ + + +
+
+ + + + + + +
+
+ +
diff --git a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.scss b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts new file mode 100644 index 000000000..140d73301 --- /dev/null +++ b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BulkEditorComponent } from './bulk-editor.component'; + +describe('BulkEditorComponent', () => { + let component: BulkEditorComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ BulkEditorComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(BulkEditorComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.ts b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.ts new file mode 100644 index 000000000..7459d62dc --- /dev/null +++ b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -0,0 +1,46 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { DocumentListViewService } from 'src/app/services/document-list-view.service'; + +@Component({ + selector: 'app-bulk-editor', + templateUrl: './bulk-editor.component.html', + styleUrls: ['./bulk-editor.component.scss'] +}) +export class BulkEditorComponent { + + @Input() + list: DocumentListViewService + + @Output() + selectPage = new EventEmitter() + + @Output() + selectAll = new EventEmitter() + + @Output() + selectNone = new EventEmitter() + + @Output() + setCorrespondent = new EventEmitter() + + @Output() + removeCorresponden = new EventEmitter() + + @Output() + setDocumentType = new EventEmitter() + + @Output() + removeDocumentType = new EventEmitter() + + @Output() + addTag = new EventEmitter() + + @Output() + removeTag = new EventEmitter() + + @Output() + delete = new EventEmitter() + + constructor( ) { } + +} 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 be2ed4847..36e9ff8fd 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 @@ -1,25 +1,16 @@
- -
+
- - - - - - - - -
@@ -96,6 +87,21 @@ [rotate]="true" (pageChange)="list.reload()" aria-label="Default pagination">
+
+ + +
+
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 1bd1e5c7f..0a6fa4352 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 @@ -52,6 +52,10 @@ export class DocumentListComponent implements OnInit { return DOCUMENT_SORT_FIELDS } + get isBulkEditing(): boolean { + return this.list.selected.size > 0 + } + saveDisplayMode() { localStorage.setItem('document-list:displayMode', this.displayMode) }