From 60faf8118790077f9a8c17bccee5efad6c135c08 Mon Sep 17 00:00:00 2001 From: trivernis Date: Thu, 25 Nov 2021 20:33:16 +0100 Subject: [PATCH] Cleanup code Signed-off-by: trivernis --- mediarepo-ui/src/app/app.module.ts | 4 -- .../src/app/components/core/core.component.ts | 4 +- .../src/app/components/core/core.module.ts | 24 +--------- .../files-tab-sidebar.component.html | 19 +++++--- .../files-tab-sidebar.component.scss | 1 + .../files-tab-sidebar.component.ts | 11 +++-- .../core/files-tab/files-tab.component.html | 2 +- .../filesystem-import.component.html | 21 +++++---- .../filesystem-import.component.spec.ts | 10 ++-- .../import-tab-sidebar.component.html | 3 +- .../import-tab-sidebar.component.scss | 1 + .../import-tab-sidebar.component.spec.ts | 10 ++-- .../import-tab-sidebar.component.ts | 12 ++--- .../core/import-tab/import-tab.component.html | 5 +- .../import-tab/import-tab.component.spec.ts | 10 ++-- .../repositories-tab.component.scss | 2 +- .../busy-indicator.component.html | 5 +- .../busy-indicator.component.spec.ts | 10 ++-- .../busy-indicator.component.ts | 5 +- .../content-aware-image.component.html | 4 +- .../context-menu/context-menu.component.html | 2 +- .../context-menu.component.spec.ts | 10 ++-- .../context-menu/context-menu.component.ts | 5 +- .../file-context-menu.component.html | 4 +- .../file-context-menu.component.spec.ts | 10 ++-- .../file-context-menu.component.ts | 6 +-- .../shared/file-edit/file-edit.component.html | 15 +++--- .../shared/file-edit/file-edit.component.scss | 2 + .../file-edit/file-edit.component.spec.ts | 10 ++-- .../shared/file-edit/file-edit.component.ts | 19 ++++---- .../audio-viewer/audio-viewer.component.html | 2 +- .../audio-viewer/audio-viewer.component.scss | 1 + .../audio-viewer.component.spec.ts | 10 ++-- .../audio-viewer/audio-viewer.component.ts | 7 +-- .../content-viewer.component.html | 2 +- .../content-viewer.component.scss | 2 + .../content-viewer.component.spec.ts | 10 ++-- .../content-viewer.component.ts | 11 +++-- .../image-viewer.component.spec.ts | 10 ++-- .../image-viewer/image-viewer.component.ts | 10 ++-- .../video-viewer/video-viewer.component.html | 2 +- .../video-viewer.component.spec.ts | 10 ++-- .../video-viewer/video-viewer.component.ts | 5 +- .../file-gallery-entry.component.ts | 10 ++-- .../file-gallery/file-gallery.component.html | 3 +- .../file-gallery/file-gallery.component.scss | 2 +- .../file-gallery/file-gallery.component.ts | 46 +++++++++--------- .../file-grid-entry.component.ts | 6 ++- .../file-grid/file-grid.component.html | 6 +-- .../file-grid/file-grid.component.ts | 20 ++++---- .../file-multiview.component.html | 9 ++-- .../file-multiview.component.spec.ts | 10 ++-- .../file-multiview.component.ts | 5 +- .../file-search/file-search.component.html | 5 +- .../file-search/file-search.component.ts | 6 ++- .../filter-dialog.component.html | 22 ++++----- .../filter-dialog.component.spec.ts | 10 ++-- .../filter-dialog/filter-dialog.component.ts | 47 ++++++++++--------- .../tag-filter-list-item.component.html | 18 +++---- .../tag-filter-list-item.component.spec.ts | 10 ++-- .../tag-filter-list-item.component.ts | 14 +++--- .../sort-dialog/sort-dialog.component.html | 3 +- .../file-thumbnail.component.html | 8 ++-- .../file-thumbnail.component.spec.ts | 10 ++-- .../file-thumbnail.component.ts | 8 +++- .../native-file-select.component.html | 7 +-- .../native-file-select.component.spec.ts | 10 ++-- .../inputs/tag-input/tag-input.component.html | 6 +-- .../tag-input/tag-input.component.spec.ts | 10 ++-- .../inputs/tag-input/tag-input.component.ts | 30 +++++++----- .../app/components/shared/shared.module.ts | 9 ++-- .../src/app/models/FilterExpression.ts | 5 +- mediarepo-ui/src/app/models/TagQuery.ts | 2 - .../src/app/services/file/file.service.ts | 17 ++++--- .../services/import/import.service.spec.ts | 4 +- .../src/app/services/import/import.service.ts | 11 +++-- .../src/app/services/tab/tab.service.spec.ts | 4 +- .../src/app/services/tab/tab.service.ts | 6 ++- .../src/app/services/tag/tag.service.ts | 7 +-- 79 files changed, 385 insertions(+), 349 deletions(-) diff --git a/mediarepo-ui/src/app/app.module.ts b/mediarepo-ui/src/app/app.module.ts index 17d0dd4..b12edea 100644 --- a/mediarepo-ui/src/app/app.module.ts +++ b/mediarepo-ui/src/app/app.module.ts @@ -1,11 +1,7 @@ import {NgModule} from '@angular/core'; import {BrowserModule} from '@angular/platform-browser'; - -import {AppRoutingModule} from './app-routing.module'; import {AppComponent} from './app.component'; import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; -import {NgIconsModule} from "@ng-icons/core"; -import * as materialIcons from "@ng-icons/material-icons"; import {CoreModule} from "./components/core/core.module"; @NgModule({ diff --git a/mediarepo-ui/src/app/components/core/core.component.ts b/mediarepo-ui/src/app/components/core/core.component.ts index 4b8cfb1..949fdea 100644 --- a/mediarepo-ui/src/app/components/core/core.component.ts +++ b/mediarepo-ui/src/app/components/core/core.component.ts @@ -20,8 +20,8 @@ export class CoreComponent implements OnInit { constructor( private tabService: TabService, private repoService: RepositoryService, - private tagService: TagService) - {} + private tagService: TagService) { + } public async ngOnInit(): Promise { this.selectedRepository = this.repoService.selectedRepository.getValue(); diff --git a/mediarepo-ui/src/app/components/core/core.module.ts b/mediarepo-ui/src/app/components/core/core.module.ts index ac8cc63..d7b8933 100644 --- a/mediarepo-ui/src/app/components/core/core.module.ts +++ b/mediarepo-ui/src/app/components/core/core.module.ts @@ -7,34 +7,14 @@ import {FilesTabSidebarComponent} from "./files-tab/files-tab-sidebar/files-tab- import {ImportTabComponent} from "./import-tab/import-tab.component"; import {ImportTabSidebarComponent} from "./import-tab/import-tab-sidebar/import-tab-sidebar.component"; import {FilesystemImportComponent} from "./import-tab/import-tab-sidebar/filesystem-import/filesystem-import.component"; -import {MatCardModule} from "@angular/material/card"; -import {MatListModule} from "@angular/material/list"; import {MatButtonModule} from "@angular/material/button"; -import {MatToolbarModule} from "@angular/material/toolbar"; -import {MatSnackBarModule} from "@angular/material/snack-bar"; -import {MatFormFieldModule} from "@angular/material/form-field"; -import {MatInputModule} from "@angular/material/input"; -import {ReactiveFormsModule} from "@angular/forms"; import {MatSidenavModule} from "@angular/material/sidenav"; -import {MatGridListModule} from "@angular/material/grid-list"; import {MatProgressBarModule} from "@angular/material/progress-bar"; -import {MatPaginatorModule} from "@angular/material/paginator"; import {ScrollingModule} from "@angular/cdk/scrolling"; -import {MatChipsModule} from "@angular/material/chips"; -import {MatAutocompleteModule} from "@angular/material/autocomplete"; import {MatTabsModule} from "@angular/material/tabs"; -import {FlexModule, GridModule} from "@angular/flex-layout"; -import {MatOptionModule, MatRippleModule} from "@angular/material/core"; -import {MatDialogModule} from "@angular/material/dialog"; +import {FlexModule} from "@angular/flex-layout"; +import {MatOptionModule} from "@angular/material/core"; import {MatSelectModule} from "@angular/material/select"; -import {MatProgressSpinnerModule} from "@angular/material/progress-spinner"; -import {BlockUIModule} from "primeng/blockui"; -import {PanelModule} from "primeng/panel"; -import {DragDropModule} from "@angular/cdk/drag-drop"; -import {MatSliderModule} from "@angular/material/slider"; -import {MatTooltipModule} from "@angular/material/tooltip"; -import {MatMenuModule} from "@angular/material/menu"; -import {MatExpansionModule} from "@angular/material/expansion"; import {MatCheckboxModule} from "@angular/material/checkbox"; import {SharedModule} from "../shared/shared.module"; import {MatDividerModule} from "@angular/material/divider"; diff --git a/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.html b/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.html index 3b3b29a..437a6f2 100644 --- a/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.html +++ b/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.html @@ -14,23 +14,28 @@
-
+
- + - - - + + diff --git a/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.scss b/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.scss index fcdf3f8..0c08786 100644 --- a/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.scss +++ b/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.scss @@ -49,6 +49,7 @@ cdk-virtual-scroll-viewport { height: 100%; width: 100%; overflow-y: auto; + ::ng-deep .cdk-virtual-scroll-content-wrapper { width: 100%; } diff --git a/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.ts b/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.ts index 4978467..2325c48 100644 --- a/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.ts +++ b/mediarepo-ui/src/app/components/core/files-tab/files-tab-sidebar/files-tab-sidebar.component.ts @@ -75,12 +75,17 @@ export class FilesTabSidebarComponent implements OnInit, OnChanges { } async showFileDetails(files: File[]) { - this.tagsOfSelection = await this.tagService.getTagsForFiles(files.map(f => f.hash)) + this.tagsOfSelection = await this.tagService.getTagsForFiles( + files.map(f => f.hash)) this.tagsOfSelection = this.tagsOfSelection.sort( (a, b) => a.getNormalizedOutput().localeCompare(b.getNormalizedOutput())); this.tags = this.tagsOfSelection; } + public async copyToClipboard(text: string) { + await clipboard.writeText(text); + } + private async refreshFileSelection() { const filteredSelection = this.selectedFiles.filter( file => this.files.findIndex(f => f.id === file.id) >= 0); @@ -100,8 +105,4 @@ export class FilesTabSidebarComponent implements OnInit, OnChanges { .localeCompare(b.getNormalizedOutput())); } } - - public async copyToClipboard(text: string) { - await clipboard.writeText(text); - } } diff --git a/mediarepo-ui/src/app/components/core/files-tab/files-tab.component.html b/mediarepo-ui/src/app/components/core/files-tab/files-tab.component.html index 540071a..3677cee 100644 --- a/mediarepo-ui/src/app/components/core/files-tab/files-tab.component.html +++ b/mediarepo-ui/src/app/components/core/files-tab/files-tab.component.html @@ -5,7 +5,7 @@ [selectedFiles]="this.selectedFiles"> - + diff --git a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/filesystem-import/filesystem-import.component.html b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/filesystem-import/filesystem-import.component.html index 7373366..fe67858 100644 --- a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/filesystem-import/filesystem-import.component.html +++ b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/filesystem-import/filesystem-import.component.html @@ -5,26 +5,31 @@ Files - +
- Import tags from + Import tags from adjacent .txt tag files - + Delete files from original location after import
- - + diff --git a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/filesystem-import/filesystem-import.component.spec.ts b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/filesystem-import/filesystem-import.component.spec.ts index 6252f90..fa0d963 100644 --- a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/filesystem-import/filesystem-import.component.spec.ts +++ b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/filesystem-import/filesystem-import.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { FilesystemImportComponent } from './filesystem-import.component'; +import {FilesystemImportComponent} from './filesystem-import.component'; describe('FilesystemImportComponent', () => { let component: FilesystemImportComponent; @@ -8,9 +8,9 @@ describe('FilesystemImportComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ FilesystemImportComponent ] - }) - .compileComponents(); + declarations: [FilesystemImportComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.html b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.html index 84de2f8..2f7431b 100644 --- a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.html +++ b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.html @@ -12,7 +12,8 @@
- +
diff --git a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.scss b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.scss index 7a59d9d..c0f7b7d 100644 --- a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.scss +++ b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.scss @@ -18,6 +18,7 @@ mat-tab-group, mat-tab { width: calc(100% - 2em); height: calc(100% - 2em); margin: 1em; + mat-select { height: 100%; } diff --git a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.spec.ts b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.spec.ts index 1a67b9f..1068486 100644 --- a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.spec.ts +++ b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { ImportTabSidebarComponent } from './import-tab-sidebar.component'; +import {ImportTabSidebarComponent} from './import-tab-sidebar.component'; describe('ImportTabSidebarComponent', () => { let component: ImportTabSidebarComponent; @@ -8,9 +8,9 @@ describe('ImportTabSidebarComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ ImportTabSidebarComponent ] - }) - .compileComponents(); + declarations: [ImportTabSidebarComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.ts b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.ts index 546476c..f3ac287 100644 --- a/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.ts +++ b/mediarepo-ui/src/app/components/core/import-tab/import-tab-sidebar/import-tab-sidebar.component.ts @@ -1,11 +1,4 @@ -import { - Component, - EventEmitter, - OnInit, - Output, - ViewChild -} from '@angular/core'; -import {MatTabGroup} from "@angular/material/tabs"; +import {Component, EventEmitter, Output} from '@angular/core'; import {File} from "../../../../models/File"; @Component({ @@ -18,5 +11,6 @@ export class ImportTabSidebarComponent { @Output() fileImported = new EventEmitter(); @Output() importFinished = new EventEmitter(); - constructor() { } + constructor() { + } } diff --git a/mediarepo-ui/src/app/components/core/import-tab/import-tab.component.html b/mediarepo-ui/src/app/components/core/import-tab/import-tab.component.html index 09f995d..6f2e579 100644 --- a/mediarepo-ui/src/app/components/core/import-tab/import-tab.component.html +++ b/mediarepo-ui/src/app/components/core/import-tab/import-tab.component.html @@ -1,8 +1,9 @@ - + - + diff --git a/mediarepo-ui/src/app/components/core/import-tab/import-tab.component.spec.ts b/mediarepo-ui/src/app/components/core/import-tab/import-tab.component.spec.ts index 10d3571..70263b2 100644 --- a/mediarepo-ui/src/app/components/core/import-tab/import-tab.component.spec.ts +++ b/mediarepo-ui/src/app/components/core/import-tab/import-tab.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { ImportTabComponent } from './import-tab.component'; +import {ImportTabComponent} from './import-tab.component'; describe('ImportTabComponent', () => { let component: ImportTabComponent; @@ -8,9 +8,9 @@ describe('ImportTabComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ ImportTabComponent ] - }) - .compileComponents(); + declarations: [ImportTabComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/core/repositories-tab/repositories-tab.component.scss b/mediarepo-ui/src/app/components/core/repositories-tab/repositories-tab.component.scss index 61c3481..dc8b4d3 100644 --- a/mediarepo-ui/src/app/components/core/repositories-tab/repositories-tab.component.scss +++ b/mediarepo-ui/src/app/components/core/repositories-tab/repositories-tab.component.scss @@ -27,6 +27,6 @@ height: calc(100% - 5em); } -app-repository-card{ +app-repository-card { position: relative; } diff --git a/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.html b/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.html index 36c45b3..8e060fe 100644 --- a/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.html +++ b/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.html @@ -1,4 +1,5 @@ -
- +
+
diff --git a/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.spec.ts b/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.spec.ts index 198dbe9..3db0ec9 100644 --- a/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { BusyIndicatorComponent } from './busy-indicator.component'; +import {BusyIndicatorComponent} from './busy-indicator.component'; describe('BusyIndicatorComponent', () => { let component: BusyIndicatorComponent; @@ -8,9 +8,9 @@ describe('BusyIndicatorComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ BusyIndicatorComponent ] - }) - .compileComponents(); + declarations: [BusyIndicatorComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.ts b/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.ts index 90f3be2..159876d 100644 --- a/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.ts +++ b/mediarepo-ui/src/app/components/shared/busy-indicator/busy-indicator.component.ts @@ -1,4 +1,4 @@ -import {Component, Input, OnInit} from '@angular/core'; +import {Component, Input} from '@angular/core'; import {ProgressSpinnerMode} from "@angular/material/progress-spinner"; @Component({ @@ -14,7 +14,8 @@ export class BusyIndicatorComponent { @Input() mode: ProgressSpinnerMode = "indeterminate"; @Input() value: number | undefined; - constructor() { } + constructor() { + } public setBusy(busy: boolean) { this.busy = busy; diff --git a/mediarepo-ui/src/app/components/shared/content-aware-image/content-aware-image.component.html b/mediarepo-ui/src/app/components/shared/content-aware-image/content-aware-image.component.html index 16110fb..616c21c 100644 --- a/mediarepo-ui/src/app/components/shared/content-aware-image/content-aware-image.component.html +++ b/mediarepo-ui/src/app/components/shared/content-aware-image/content-aware-image.component.html @@ -1,5 +1,5 @@
+ [class.scale-width]="scaleWidth && maximizeWidth" [src]="this.imageSrc" + [style]="{borderRadius: this.borderRadius}" alt="">
diff --git a/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.html b/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.html index 4bc536f..ab72e3a 100644 --- a/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.html +++ b/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.html @@ -1,4 +1,4 @@ - + diff --git a/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.spec.ts b/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.spec.ts index 55a3414..51f0339 100644 --- a/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { ContextMenuComponent } from './context-menu.component'; +import {ContextMenuComponent} from './context-menu.component'; describe('ContextMenuComponent', () => { let component: ContextMenuComponent; @@ -8,9 +8,9 @@ describe('ContextMenuComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ ContextMenuComponent ] - }) - .compileComponents(); + declarations: [ContextMenuComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.ts b/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.ts index 5307252..f88ff78 100644 --- a/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.ts +++ b/mediarepo-ui/src/app/components/shared/context-menu/context-menu.component.ts @@ -1,7 +1,4 @@ -import { - Component, - ViewChild, -} from '@angular/core'; +import {Component, ViewChild,} from '@angular/core'; import {MatMenuTrigger} from "@angular/material/menu"; @Component({ diff --git a/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.html b/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.html index cdfd11c..6de5abc 100644 --- a/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.html +++ b/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.html @@ -1,5 +1,5 @@ - - + + diff --git a/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.spec.ts b/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.spec.ts index 3c40444..b6ce6b6 100644 --- a/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { FileContextMenuComponent } from './file-context-menu.component'; +import {FileContextMenuComponent} from './file-context-menu.component'; describe('FileContextMenuComponent', () => { let component: FileContextMenuComponent; @@ -8,9 +8,9 @@ describe('FileContextMenuComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ FileContextMenuComponent ] - }) - .compileComponents(); + declarations: [FileContextMenuComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.ts b/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.ts index 73c32b8..e8a19fe 100644 --- a/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.ts +++ b/mediarepo-ui/src/app/components/shared/context-menu/file-context-menu/file-context-menu.component.ts @@ -1,10 +1,9 @@ import {Component, ViewChild} from '@angular/core'; import {File} from "../../../../models/File"; import {ContextMenuComponent} from "../context-menu.component"; -import {clipboard, dialog} from "@tauri-apps/api"; +import {clipboard} from "@tauri-apps/api"; import {FileService} from "../../../../services/file/file.service"; import {ErrorBrokerService} from "../../../../services/error-broker/error-broker.service"; -import {downloadDir} from "@tauri-apps/api/path"; import {FileHelper} from "../../../../services/file/file.helper"; @Component({ @@ -18,7 +17,8 @@ export class FileContextMenuComponent { @ViewChild("contextMenu") contextMenu!: ContextMenuComponent; - constructor(private fileService: FileService, private errorBroker: ErrorBrokerService) { } + constructor(private fileService: FileService, private errorBroker: ErrorBrokerService) { + } public onContextMenu(event: MouseEvent, file: File) { this.file = file; diff --git a/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.html b/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.html index 8d0ca8d..17ab6ea 100644 --- a/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.html +++ b/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.html @@ -3,14 +3,14 @@

Edit File

Name - +
-
+
-
+
-
@@ -19,14 +19,15 @@
- -
- + Mode Toggle diff --git a/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.scss b/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.scss index 53b1869..2261a37 100644 --- a/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.scss +++ b/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.scss @@ -27,6 +27,7 @@ cdk-virtual-scroll-viewport { height: 100%; width: 100%; overflow-y: auto; + ::ng-deep .cdk-virtual-scroll-content-wrapper { width: 100%; } @@ -56,6 +57,7 @@ cdk-virtual-scroll-viewport { .tag-input-field { display: flex; flex-direction: row; + .add-tag-button { width: 65px; height: 65px; diff --git a/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.spec.ts b/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.spec.ts index 51ab4bb..81eb48d 100644 --- a/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { FileEditComponent } from './file-edit.component'; +import {FileEditComponent} from './file-edit.component'; describe('FileEditComponent', () => { let component: FileEditComponent; @@ -8,9 +8,9 @@ describe('FileEditComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ FileEditComponent ] - }) - .compileComponents(); + declarations: [FileEditComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.ts b/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.ts index 82efb65..f49b522 100644 --- a/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.ts +++ b/mediarepo-ui/src/app/components/shared/file-edit/file-edit.component.ts @@ -1,5 +1,6 @@ import { - Component, ElementRef, + Component, + ElementRef, Input, OnChanges, OnInit, @@ -23,12 +24,10 @@ export class FileEditComponent implements OnInit, OnChanges { public tags: Tag[] = []; public allTags: Tag[] = []; - private fileTags: {[key: number]: Tag[]} = {}; - public editMode: string = "Toggle"; - @ViewChild("tagScroll") tagScroll!: CdkVirtualScrollViewport; @ViewChild("fileNameInput") fileNameInput!: ElementRef; + private fileTags: { [key: number]: Tag[] } = {}; constructor( private tagService: TagService, @@ -95,7 +94,8 @@ export class FileEditComponent implements OnInit, OnChanges { } else { removedTags.push(tag.id); } - this.fileTags[file.id] = await this.tagService.changeFileTags(file.id, addedTags, removedTags); + this.fileTags[file.id] = await this.tagService.changeFileTags(file.id, + addedTags, removedTags); } this.mapFileTagsToTagList(); const index = this.tags.indexOf(tag); @@ -126,7 +126,8 @@ export class FileEditComponent implements OnInit, OnChanges { private async loadFileTags() { for (const file of this.files) { - this.fileTags[file.id] = await this.tagService.getTagsForFiles([file.hash]); + this.fileTags[file.id] = await this.tagService.getTagsForFiles( + [file.hash]); } this.mapFileTagsToTagList(); } @@ -141,8 +142,10 @@ export class FileEditComponent implements OnInit, OnChanges { let tags: Tag[] = []; for (const file of this.files) { const fileTags = this.fileTags[file.id]; - tags.push(...fileTags.filter(t => tags.findIndex(tag => tag.id === t.id) < 0)); + tags.push( + ...fileTags.filter(t => tags.findIndex(tag => tag.id === t.id) < 0)); } - this.tags = tags.sort((a, b) => a.getNormalizedOutput().localeCompare(b.getNormalizedOutput())); + this.tags = tags.sort( + (a, b) => a.getNormalizedOutput().localeCompare(b.getNormalizedOutput())); } } diff --git a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.html b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.html index 1172d35..3f555f6 100644 --- a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.html +++ b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.html @@ -1,4 +1,4 @@
-
diff --git a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.scss b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.scss index 52ae794..7403cb4 100644 --- a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.scss +++ b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.scss @@ -2,6 +2,7 @@ height: 100%; width: 100%; display: flex; + audio { margin: auto; } diff --git a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.spec.ts b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.spec.ts index 1ef6ca2..1974f72 100644 --- a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { AudioViewerComponent } from './audio-viewer.component'; +import {AudioViewerComponent} from './audio-viewer.component'; describe('AudioViewerComponent', () => { let component: AudioViewerComponent; @@ -8,9 +8,9 @@ describe('AudioViewerComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ AudioViewerComponent ] - }) - .compileComponents(); + declarations: [AudioViewerComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.ts b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.ts index e3ce219..0ff6c37 100644 --- a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.ts +++ b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/audio-viewer/audio-viewer.component.ts @@ -1,4 +1,4 @@ -import {Component, Input, OnInit} from '@angular/core'; +import {Component, Input} from '@angular/core'; import {SafeResourceUrl} from "@angular/platform-browser"; @Component({ @@ -6,9 +6,10 @@ import {SafeResourceUrl} from "@angular/platform-browser"; templateUrl: './audio-viewer.component.html', styleUrls: ['./audio-viewer.component.scss'] }) -export class AudioViewerComponent { +export class AudioViewerComponent { @Input() blobUrl!: SafeResourceUrl; - constructor() { } + constructor() { + } } diff --git a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.html b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.html index c64a703..fd68dd5 100644 --- a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.html +++ b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.html @@ -4,6 +4,6 @@
Unsupported content type {{this.file.mime_type}} - +
diff --git a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.scss b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.scss index d9b4e79..83baaa2 100644 --- a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.scss +++ b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.scss @@ -8,10 +8,12 @@ app-image-viewer, app-video-viewer, app-audio-viewer { height: 100%; display: flex; flex-direction: column; + button { margin: 1em 0 auto; align-self: center; } + span { margin: auto 0 0; align-self: center; diff --git a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.spec.ts b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.spec.ts index 897cbed..a314ee7 100644 --- a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { ContentViewerComponent } from './content-viewer.component'; +import {ContentViewerComponent} from './content-viewer.component'; describe('ContentViewerComponent', () => { let component: ContentViewerComponent; @@ -8,9 +8,9 @@ describe('ContentViewerComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ ContentViewerComponent ] - }) - .compileComponents(); + declarations: [ContentViewerComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.ts b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.ts index 5fbc4a5..2e7bebd 100644 --- a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.ts +++ b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/content-viewer.component.ts @@ -1,11 +1,11 @@ import { - AfterContentInit, AfterViewInit, + AfterViewInit, Component, Input, OnChanges, OnDestroy, - OnInit, - SimpleChanges, ViewChild + SimpleChanges, + ViewChild } from '@angular/core'; import {SafeResourceUrl} from "@angular/platform-browser"; import {File} from "../../../../../models/File"; @@ -43,9 +43,10 @@ export class ContentViewerComponent implements AfterViewInit, OnChanges, OnDestr } } - public async ngOnChanges(changes:SimpleChanges) { + public async ngOnChanges(changes: SimpleChanges) { if (changes["file"]) { - if (["audio", "video"].includes(this.getContentType()) && this.busyIndicator) { + if (["audio", "video"].includes( + this.getContentType()) && this.busyIndicator) { await this.loadBlobUrl(); } else { this.contentUrl = this.fileService.buildContentUrl(this.file); diff --git a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/image-viewer/image-viewer.component.spec.ts b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/image-viewer/image-viewer.component.spec.ts index 1f4f87b..32078df 100644 --- a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/image-viewer/image-viewer.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/image-viewer/image-viewer.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { ImageViewerComponent } from './image-viewer.component'; +import {ImageViewerComponent} from './image-viewer.component'; describe('ImageViewerComponent', () => { let component: ImageViewerComponent; @@ -8,9 +8,9 @@ describe('ImageViewerComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ ImageViewerComponent ] - }) - .compileComponents(); + declarations: [ImageViewerComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/image-viewer/image-viewer.component.ts b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/image-viewer/image-viewer.component.ts index 64a144c..a0250a4 100644 --- a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/image-viewer/image-viewer.component.ts +++ b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/image-viewer/image-viewer.component.ts @@ -1,10 +1,9 @@ import { Component, - ElementRef, HostListener, - Input, OnChanges, - OnInit, SimpleChanges, - ViewChild + Input, + OnChanges, + SimpleChanges } from '@angular/core'; import {CdkDragMove} from "@angular/cdk/drag-drop"; import {SafeResourceUrl} from "@angular/platform-browser"; @@ -20,7 +19,8 @@ export class ImageViewerComponent implements OnChanges { public imagePosition = {x: 0, y: 0}; public mouseInImageView = false; - constructor() { } + constructor() { + } public ngOnChanges(changes: SimpleChanges): void { if (changes["imageUrl"]) { diff --git a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/video-viewer/video-viewer.component.html b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/video-viewer/video-viewer.component.html index ca7c555..288f44a 100644 --- a/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/video-viewer/video-viewer.component.html +++ b/mediarepo-ui/src/app/components/shared/file-multiview/file-gallery/content-viewer/video-viewer/video-viewer.component.html @@ -1,3 +1,3 @@ -
- - diff --git a/mediarepo-ui/src/app/components/shared/file-search/file-search.component.ts b/mediarepo-ui/src/app/components/shared/file-search/file-search.component.ts index e732cf3..a657ce5 100644 --- a/mediarepo-ui/src/app/components/shared/file-search/file-search.component.ts +++ b/mediarepo-ui/src/app/components/shared/file-search/file-search.component.ts @@ -43,7 +43,8 @@ export class FileSearchComponent implements AfterViewChecked, OnInit { private errorBroker: ErrorBrokerService, private fileService: FileService, public dialog: MatDialog - ) {} + ) { + } public async ngOnInit() { await this.searchForFiles(); @@ -74,7 +75,8 @@ export class FileSearchComponent implements AfterViewChecked, OnInit { } public getValidSearchTags(): Tag[] { - return this.availableTags.filter(t => this.filters.findIndex(f => f.partiallyEq(t.getNormalizedOutput())) < 0); + return this.availableTags.filter(t => this.filters.findIndex( + f => f.partiallyEq(t.getNormalizedOutput())) < 0); } public async removeAllSearchTags() { diff --git a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.html b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.html index bd161b0..858af0a 100644 --- a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.html +++ b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.html @@ -1,26 +1,26 @@

Filters

-
+
- - +
- +
- - + +
- - - + + + diff --git a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.spec.ts b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.spec.ts index 7c3bedb..11d7dfe 100644 --- a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { FilterDialogComponent } from './filter-dialog.component'; +import {FilterDialogComponent} from './filter-dialog.component'; describe('FilterDialogComponent', () => { let component: FilterDialogComponent; @@ -8,9 +8,9 @@ describe('FilterDialogComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ FilterDialogComponent ] - }) - .compileComponents(); + declarations: [FilterDialogComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.ts b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.ts index 8b1df42..86116b3 100644 --- a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.ts +++ b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/filter-dialog.component.ts @@ -35,6 +35,24 @@ export class FilterDialogComponent { this.availableTags = data.availableTags ?? []; } + private static checkFiltersEqual(l: FilterExpression, r: FilterExpression): boolean { + const lTags = l.queryList().map(q => q.getNormalizedTag()).sort(); + const rTags = r.queryList().map(q => q.getNormalizedTag()).sort(); + let match = false; + + if (lTags.length == rTags.length) { + match = true; + + for (const tag of lTags) { + match = rTags.includes(tag); + if (!match) { + break; + } + } + } + return match; + } + public cancelFilter(): void { this.dialogRef.close(); } @@ -97,7 +115,9 @@ export class FilterDialogComponent { public convertSelectionToAndExpression(): void { for (const query of this.selectedQueries) { - this.filters.push(new Selectable(new SingleFilterExpression(query), false)); + this.filters.push( + new Selectable(new SingleFilterExpression(query), + false)); } this.removeFilterDuplicates(); this.unselectAll(); @@ -123,9 +143,12 @@ export class FilterDialogComponent { if (filterItem.data.filter_type == "OrExpression") { (filterItem.data as OrFilterExpression).removeDuplicates(); } - if (newFilters.findIndex(f => FilterDialogComponent.checkFiltersEqual(f.data, filterItem.data)) < 0) { + if (newFilters.findIndex( + f => FilterDialogComponent.checkFiltersEqual(f.data, + filterItem.data)) < 0) { if (filterItem.data.filter_type == "OrExpression" && filterItem.data.queryList().length === 1) { - filterItem.data = new SingleFilterExpression(filterItem.data.queryList()[0]); + filterItem.data = new SingleFilterExpression( + filterItem.data.queryList()[0]); } newFilters.push(filterItem); } @@ -133,24 +156,6 @@ export class FilterDialogComponent { this.filters = newFilters; } - private static checkFiltersEqual(l: FilterExpression, r: FilterExpression): boolean { - const lTags = l.queryList().map(q => q.getNormalizedTag()).sort(); - const rTags = r.queryList().map(q => q.getNormalizedTag()).sort(); - let match = false; - - if (lTags.length == rTags.length) { - match = true; - - for (const tag of lTags) { - match = rTags.includes(tag); - if (!match) { - break; - } - } - } - return match; - } - @HostListener("window:keydown", ["$event"]) private async handleKeydownEvent(event: KeyboardEvent) { if (event.key === "Shift") { diff --git a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.html b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.html index 51d2a45..4d9376f 100644 --- a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.html +++ b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.html @@ -1,16 +1,18 @@ -
+
{{expression.data.getDisplayName()}} - +
- - OR + + OR {{entry[1].getNormalizedTag()}} - diff --git a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.spec.ts b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.spec.ts index c6a054a..896388c 100644 --- a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { TagFilterListItemComponent } from './tag-filter-list-item.component'; +import {TagFilterListItemComponent} from './tag-filter-list-item.component'; describe('TagFilterListItemComponent', () => { let component: TagFilterListItemComponent; @@ -8,9 +8,9 @@ describe('TagFilterListItemComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ TagFilterListItemComponent ] - }) - .compileComponents(); + declarations: [TagFilterListItemComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.ts b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.ts index afc20c1..68d644d 100644 --- a/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.ts +++ b/mediarepo-ui/src/app/components/shared/file-search/filter-dialog/tag-filter-list-item/tag-filter-list-item.component.ts @@ -2,14 +2,15 @@ import { ChangeDetectorRef, Component, EventEmitter, - Inject, - Input, OnChanges, - OnInit, - Output, SimpleChanges + Input, + OnChanges, + Output, + SimpleChanges } from '@angular/core'; import { FilterExpression, - OrFilterExpression, SingleFilterExpression + OrFilterExpression, + SingleFilterExpression } from "../../../../../models/FilterExpression"; import {TagQuery} from "../../../../../models/TagQuery"; import {Selectable} from "../../../../../models/Selectable"; @@ -28,7 +29,8 @@ export class TagFilterListItemComponent implements OnChanges { public selectedIndices: number[] = []; - constructor(private changeDetector: ChangeDetectorRef) { } + constructor(private changeDetector: ChangeDetectorRef) { + } public ngOnChanges(changes: SimpleChanges): void { if (changes["expression"]) { diff --git a/mediarepo-ui/src/app/components/shared/file-search/sort-dialog/sort-dialog.component.html b/mediarepo-ui/src/app/components/shared/file-search/sort-dialog/sort-dialog.component.html index c0b64e0..948e4ed 100644 --- a/mediarepo-ui/src/app/components/shared/file-search/sort-dialog/sort-dialog.component.html +++ b/mediarepo-ui/src/app/components/shared/file-search/sort-dialog/sort-dialog.component.html @@ -21,7 +21,8 @@ Namespace Name -
diff --git a/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.html b/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.html index f8281cf..0ab6e34 100644 --- a/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.html +++ b/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.html @@ -1,10 +1,10 @@ - -
+ +
-
+
diff --git a/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.spec.ts b/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.spec.ts index 3ea5ee9..8e73455 100644 --- a/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { FileThumbnailComponent } from './file-thumbnail.component'; +import {FileThumbnailComponent} from './file-thumbnail.component'; describe('FileThumbnailComponent', () => { let component: FileThumbnailComponent; @@ -8,9 +8,9 @@ describe('FileThumbnailComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ FileThumbnailComponent ] - }) - .compileComponents(); + declarations: [FileThumbnailComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.ts b/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.ts index 36c739a..6347af0 100644 --- a/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.ts +++ b/mediarepo-ui/src/app/components/shared/file-thumbnail/file-thumbnail.component.ts @@ -1,4 +1,10 @@ -import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core'; +import { + Component, + Input, + OnChanges, + OnInit, + SimpleChanges +} from '@angular/core'; import {File} from "../../../models/File"; import {FileService} from "../../../services/file/file.service"; import {FileHelper} from "../../../services/file/file.helper"; diff --git a/mediarepo-ui/src/app/components/shared/inputs/native-file-select/native-file-select.component.html b/mediarepo-ui/src/app/components/shared/inputs/native-file-select/native-file-select.component.html index a7af886..8468adb 100644 --- a/mediarepo-ui/src/app/components/shared/inputs/native-file-select/native-file-select.component.html +++ b/mediarepo-ui/src/app/components/shared/inputs/native-file-select/native-file-select.component.html @@ -2,13 +2,14 @@ {{label}} - +
- -
diff --git a/mediarepo-ui/src/app/components/shared/inputs/native-file-select/native-file-select.component.spec.ts b/mediarepo-ui/src/app/components/shared/inputs/native-file-select/native-file-select.component.spec.ts index 6800d85..1565163 100644 --- a/mediarepo-ui/src/app/components/shared/inputs/native-file-select/native-file-select.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/inputs/native-file-select/native-file-select.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { NativeFileSelectComponent } from './native-file-select.component'; +import {NativeFileSelectComponent} from './native-file-select.component'; describe('NativeFileSelectComponent', () => { let component: NativeFileSelectComponent; @@ -8,9 +8,9 @@ describe('NativeFileSelectComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ NativeFileSelectComponent ] - }) - .compileComponents(); + declarations: [NativeFileSelectComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.html b/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.html index af9d353..98aad78 100644 --- a/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.html +++ b/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.html @@ -3,10 +3,10 @@ Enter a tag + [formControl]="formControl" + [matAutocomplete]="auto" + matInput> diff --git a/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.spec.ts b/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.spec.ts index b94bb54..9bd3150 100644 --- a/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.spec.ts +++ b/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.spec.ts @@ -1,6 +1,6 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; -import { TagInputComponent } from './tag-input.component'; +import {TagInputComponent} from './tag-input.component'; describe('TagInputComponent', () => { let component: TagInputComponent; @@ -8,9 +8,9 @@ describe('TagInputComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ TagInputComponent ] - }) - .compileComponents(); + declarations: [TagInputComponent] + }) + .compileComponents(); }); beforeEach(() => { diff --git a/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.ts b/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.ts index f8fec21..a0ea511 100644 --- a/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.ts +++ b/mediarepo-ui/src/app/components/shared/inputs/tag-input/tag-input.component.ts @@ -1,23 +1,25 @@ import { - Component, ElementRef, + Component, + ElementRef, EventEmitter, - Input, OnChanges, - OnInit, - Output, SimpleChanges, + Input, + OnChanges, + Output, + SimpleChanges, ViewChild } from '@angular/core'; import {Tag} from "../../../../models/Tag"; import {FormControl} from "@angular/forms"; import {MatAutocompleteSelectedEvent} from "@angular/material/autocomplete"; import {Observable} from "rxjs"; -import {debounceTime, delay, map, startWith} from "rxjs/operators"; +import {debounceTime, map, startWith} from "rxjs/operators"; @Component({ selector: 'app-tag-input', templateUrl: './tag-input.component.html', styleUrls: ['./tag-input.component.scss'] }) -export class TagInputComponent implements OnChanges{ +export class TagInputComponent implements OnChanges { @Input() availableTags: Tag[] = []; @Input() allowNegation: boolean = false; @@ -30,16 +32,19 @@ export class TagInputComponent implements OnChanges{ private tagsForAutocomplete: string[] = []; constructor() { - this.tagsForAutocomplete = this.availableTags.map(t => t.getNormalizedOutput()); + this.tagsForAutocomplete = this.availableTags.map( + t => t.getNormalizedOutput()); this.autosuggestTags = this.formControl.valueChanges.pipe( startWith(null), debounceTime(250), - map((tag: string | null) => tag ? this.filterSuggestionTag(tag) : this.tagsForAutocomplete.slice(0, 20))); + map((tag: string | null) => tag ? this.filterSuggestionTag( + tag) : this.tagsForAutocomplete.slice(0, 20))); } ngOnChanges(changes: SimpleChanges): void { if (changes["availableTags"]) { - this.tagsForAutocomplete = this.availableTags.map(t => t.getNormalizedOutput()); + this.tagsForAutocomplete = this.availableTags.map( + t => t.getNormalizedOutput()); } } @@ -63,11 +68,12 @@ export class TagInputComponent implements OnChanges{ private filterSuggestionTag(tag: string) { let normalizedTag = this.normalizeTag(tag); const negated = normalizedTag.startsWith("-") && this.allowNegation; - normalizedTag = this.allowNegation? normalizedTag.replace(/^-/, "") : normalizedTag; + normalizedTag = this.allowNegation ? normalizedTag.replace(/^-/, + "") : normalizedTag; return this.tagsForAutocomplete.filter( t => t.includes(normalizedTag)) - .map(t => negated ? "-" + t: t) + .map(t => negated ? "-" + t : t) .sort((l, r) => this.compareSuggestionTags(normalizedTag, l, r)) .slice(0, 20); } @@ -105,7 +111,7 @@ export class TagInputComponent implements OnChanges{ return 1; } else if (l.length < r.length) { return -1; - } else if (l.length > r.length) { + } else if (l.length > r.length) { return 1; } else { return l.localeCompare(r) diff --git a/mediarepo-ui/src/app/components/shared/shared.module.ts b/mediarepo-ui/src/app/components/shared/shared.module.ts index 8d336ee..cf597bd 100644 --- a/mediarepo-ui/src/app/components/shared/shared.module.ts +++ b/mediarepo-ui/src/app/components/shared/shared.module.ts @@ -1,6 +1,5 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import {AppComponent} from "../../app.component"; +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; import {RepositoryCardComponent} from "../core/repositories-tab/repository-card/repository-card.component"; import {FileGridComponent} from "./file-multiview/file-grid/file-grid.component"; import {FileGridEntryComponent} from "./file-multiview/file-grid/file-grid-entry/file-grid-entry.component"; @@ -60,7 +59,6 @@ import {NgIconsModule} from "@ng-icons/core"; import * as materialIcons from "@ng-icons/material-icons"; - @NgModule({ declarations: [ RepositoryCardComponent, @@ -135,4 +133,5 @@ import * as materialIcons from "@ng-icons/material-icons"; NgIconsModule.withIcons({...materialIcons}), ] }) -export class SharedModule { } +export class SharedModule { +} diff --git a/mediarepo-ui/src/app/models/FilterExpression.ts b/mediarepo-ui/src/app/models/FilterExpression.ts index e2e8d62..21288aa 100644 --- a/mediarepo-ui/src/app/models/FilterExpression.ts +++ b/mediarepo-ui/src/app/models/FilterExpression.ts @@ -15,7 +15,7 @@ export interface FilterExpression { queryList(): TagQuery[]; } -export class OrFilterExpression implements FilterExpression{ +export class OrFilterExpression implements FilterExpression { public filter_type: "OrExpression" = "OrExpression"; public filter: TagQuery[] = []; @@ -82,7 +82,8 @@ export class SingleFilterExpression implements FilterExpression { } public clone(): FilterExpression { - return new SingleFilterExpression(new TagQuery(this.filter.tag, this.filter.negate)) + return new SingleFilterExpression( + new TagQuery(this.filter.tag, this.filter.negate)) } public queryList(): TagQuery[] { diff --git a/mediarepo-ui/src/app/models/TagQuery.ts b/mediarepo-ui/src/app/models/TagQuery.ts index 493f5c7..fb3bb91 100644 --- a/mediarepo-ui/src/app/models/TagQuery.ts +++ b/mediarepo-ui/src/app/models/TagQuery.ts @@ -1,5 +1,3 @@ -import {SingleFilterExpression} from "./FilterExpression"; - export class TagQuery { constructor(public tag: string, public negate: boolean) { } diff --git a/mediarepo-ui/src/app/services/file/file.service.ts b/mediarepo-ui/src/app/services/file/file.service.ts index 110120c..7fdbe91 100644 --- a/mediarepo-ui/src/app/services/file/file.service.ts +++ b/mediarepo-ui/src/app/services/file/file.service.ts @@ -15,7 +15,7 @@ import {FilterExpression} from "../../models/FilterExpression"; export class FileService { displayedFiles = new BehaviorSubject([]); - thumbnailCache: {[key: number]: Thumbnail[]} = {}; + thumbnailCache: { [key: number]: Thumbnail[] } = {}; constructor( @Inject(DomSanitizer) private sanitizer: DomSanitizer, @@ -41,7 +41,8 @@ export class FileService { } public async updateFileName(file: File, name: string): Promise { - return await invoke("plugin:mediarepo|update_file_name", {id: file.id, name}) + return await invoke("plugin:mediarepo|update_file_name", + {id: file.id, name}) } /** @@ -52,7 +53,8 @@ export class FileService { * @returns {SafeResourceUrl} */ public buildThumbnailUrl(file: File, height: number, width: number): SafeResourceUrl { - return this.sanitizer.bypassSecurityTrustResourceUrl(`thumb://${file.hash}?width=${250}&height=${250}`) + return this.sanitizer.bypassSecurityTrustResourceUrl( + `thumb://${file.hash}?width=${250}&height=${250}`) } /** @@ -61,7 +63,8 @@ export class FileService { * @returns {SafeResourceUrl} */ public buildContentUrl(file: File): SafeResourceUrl { - return this.sanitizer.bypassSecurityTrustResourceUrl(`content://${file.hash}`) + return this.sanitizer.bypassSecurityTrustResourceUrl( + `content://${file.hash}`) } /** @@ -71,7 +74,8 @@ export class FileService { * @returns {Promise} */ public async saveFile(file: File, targetPath: string) { - await invoke("plugin:mediarepo|save_file_locally", {id: file.id, path: targetPath}) + await invoke("plugin:mediarepo|save_file_locally", + {id: file.id, path: targetPath}) } /** @@ -89,7 +93,8 @@ export class FileService { * @returns {Promise} */ public async readFile(file: File): Promise { - const data = await invoke("plugin:mediarepo|read_file", {hash: file.hash, mimeType: file.mime_type}); + const data = await invoke("plugin:mediarepo|read_file", + {hash: file.hash, mimeType: file.mime_type}); const blob = new Blob([new Uint8Array(data)], {type: file.mime_type}); const url = URL?.createObjectURL(blob); return this.sanitizer.bypassSecurityTrustResourceUrl(url); diff --git a/mediarepo-ui/src/app/services/import/import.service.spec.ts b/mediarepo-ui/src/app/services/import/import.service.spec.ts index da66864..3166feb 100644 --- a/mediarepo-ui/src/app/services/import/import.service.spec.ts +++ b/mediarepo-ui/src/app/services/import/import.service.spec.ts @@ -1,6 +1,6 @@ -import { TestBed } from '@angular/core/testing'; +import {TestBed} from '@angular/core/testing'; -import { ImportService } from './import.service'; +import {ImportService} from './import.service'; describe('ImportService', () => { let service: ImportService; diff --git a/mediarepo-ui/src/app/services/import/import.service.ts b/mediarepo-ui/src/app/services/import/import.service.ts index e0c18a2..c27761f 100644 --- a/mediarepo-ui/src/app/services/import/import.service.ts +++ b/mediarepo-ui/src/app/services/import/import.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import {Injectable} from '@angular/core'; import {FileOsMetadata} from "../../models/FileOsMetadata"; import {invoke} from "@tauri-apps/api/tauri"; import {AddFileOptions} from "../../models/AddFileOptions"; @@ -9,7 +9,8 @@ import {File} from "../../models/File"; }) export class ImportService { - constructor() { } + constructor() { + } /** * Resolves paths from the local file system into a list of files that can be imported @@ -17,7 +18,8 @@ export class ImportService { * @returns {Promise} */ public async resolvePathsToFiles(paths: string[]): Promise { - return await invoke("plugin:mediarepo|resolve_paths_to_files", {paths}); + return await invoke( + "plugin:mediarepo|resolve_paths_to_files", {paths}); } /** @@ -27,6 +29,7 @@ export class ImportService { * @returns {Promise} */ public async addLocalFile(metadata: FileOsMetadata, options: AddFileOptions): Promise { - return await invoke("plugin:mediarepo|add_local_file", {metadata, options}); + return await invoke("plugin:mediarepo|add_local_file", + {metadata, options}); } } diff --git a/mediarepo-ui/src/app/services/tab/tab.service.spec.ts b/mediarepo-ui/src/app/services/tab/tab.service.spec.ts index 6621cb9..f9d64cf 100644 --- a/mediarepo-ui/src/app/services/tab/tab.service.spec.ts +++ b/mediarepo-ui/src/app/services/tab/tab.service.spec.ts @@ -1,6 +1,6 @@ -import { TestBed } from '@angular/core/testing'; +import {TestBed} from '@angular/core/testing'; -import { TabService } from './tab.service'; +import {TabService} from './tab.service'; describe('TabService', () => { let service: TabService; diff --git a/mediarepo-ui/src/app/services/tab/tab.service.ts b/mediarepo-ui/src/app/services/tab/tab.service.ts index d6bfcf6..7bb9f3f 100644 --- a/mediarepo-ui/src/app/services/tab/tab.service.ts +++ b/mediarepo-ui/src/app/services/tab/tab.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import {Injectable} from '@angular/core'; import {BehaviorSubject} from "rxjs"; @Injectable({ @@ -7,7 +7,9 @@ import {BehaviorSubject} from "rxjs"; export class TabService { public selectedTab = new BehaviorSubject(0); - constructor() { } + + constructor() { + } public setSelectedTab(index: number) { this.selectedTab.next(index); diff --git a/mediarepo-ui/src/app/services/tag/tag.service.ts b/mediarepo-ui/src/app/services/tag/tag.service.ts index a8f566a..31d94d2 100644 --- a/mediarepo-ui/src/app/services/tag/tag.service.ts +++ b/mediarepo-ui/src/app/services/tag/tag.service.ts @@ -2,7 +2,6 @@ import {Injectable} from '@angular/core'; import {invoke} from "@tauri-apps/api/tauri"; import {Tag} from "../../models/Tag"; import {BehaviorSubject} from "rxjs"; -import {File} from "../../models/File"; @Injectable({ providedIn: 'root' @@ -29,12 +28,14 @@ export class TagService { } public async createTags(tags: string[]): Promise { - const resultTags = await invoke("plugin:mediarepo|create_tags", {tags}); + const resultTags = await invoke("plugin:mediarepo|create_tags", + {tags}); return resultTags.map(t => new Tag(t.id, t.name, t.namespace)); } public async changeFileTags(fileId: number, addedTags: number[], removedTags: number[]): Promise { - const tags = await invoke("plugin:mediarepo|change_file_tags", {id: fileId, addedTags, removedTags}); + const tags = await invoke("plugin:mediarepo|change_file_tags", + {id: fileId, addedTags, removedTags}); return tags.map(t => new Tag(t.id, t.name, t.namespace)); } }