diff --git a/mediarepo-daemon/Cargo.lock b/mediarepo-daemon/Cargo.lock
index df9038b..76aa152 100644
--- a/mediarepo-daemon/Cargo.lock
+++ b/mediarepo-daemon/Cargo.lock
@@ -8,6 +8,15 @@ version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+[[package]]
+name = "addr2line"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b"
+dependencies = [
+ "gimli",
+]
+
[[package]]
name = "adler"
version = "1.0.2"
@@ -40,6 +49,15 @@ dependencies = [
"version_check",
]
+[[package]]
+name = "aho-corasick"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "aliasable"
version = "0.1.3"
@@ -185,6 +203,21 @@ dependencies = [
"mime",
]
+[[package]]
+name = "backtrace"
+version = "0.3.65"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
[[package]]
name = "bae"
version = "0.1.7"
@@ -1015,6 +1048,12 @@ dependencies = [
"weezl",
]
+[[package]]
+name = "gimli"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4"
+
[[package]]
name = "glob"
version = "0.3.0"
@@ -1150,6 +1189,21 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+[[package]]
+name = "human-panic"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36"
+dependencies = [
+ "backtrace",
+ "os_type",
+ "serde",
+ "serde_derive",
+ "termcolor",
+ "toml",
+ "uuid",
+]
+
[[package]]
name = "humantime"
version = "2.1.0"
@@ -1451,6 +1505,7 @@ version = "1.0.3"
dependencies = [
"console-subscriber",
"glob",
+ "human-panic",
"log",
"mediarepo-core",
"mediarepo-logic",
@@ -1785,6 +1840,15 @@ dependencies = [
"libc",
]
+[[package]]
+name = "object"
+version = "0.28.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40bec70ba014595f99f7aa110b84331ffe1ee9aece7fe6f387cc7e3ecda4d456"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "once_cell"
version = "1.10.0"
@@ -1900,6 +1964,15 @@ dependencies = [
"hashbrown 0.12.0",
]
+[[package]]
+name = "os_type"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3df761f6470298359f84fcfb60d86db02acc22c251c37265c07a3d1057d2389"
+dependencies = [
+ "regex",
+]
+
[[package]]
name = "ouroboros"
version = "0.15.0"
@@ -2293,6 +2366,8 @@ version = "1.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286"
dependencies = [
+ "aho-corasick",
+ "memchr",
"regex-syntax",
]
@@ -2361,6 +2436,12 @@ dependencies = [
"serde",
]
+[[package]]
+name = "rustc-demangle"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
+
[[package]]
name = "rustc_version"
version = "0.2.3"
@@ -2958,6 +3039,15 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "termcolor"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+dependencies = [
+ "winapi-util",
+]
+
[[package]]
name = "textwrap"
version = "0.11.0"
@@ -3689,6 +3779,15 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
diff --git a/mediarepo-daemon/Cargo.toml b/mediarepo-daemon/Cargo.toml
index 0308f74..513b08b 100644
--- a/mediarepo-daemon/Cargo.toml
+++ b/mediarepo-daemon/Cargo.toml
@@ -30,6 +30,7 @@ log = "0.4.16"
opentelemetry = { version = "0.17.0", features = ["rt-tokio"] }
opentelemetry-jaeger = { version = "0.16.0", features = ["rt-tokio"] }
tracing-opentelemetry = "0.17.2"
+human-panic = "1.0.3"
[dependencies.mediarepo-core]
path = "./mediarepo-core"
diff --git a/mediarepo-daemon/src/main.rs b/mediarepo-daemon/src/main.rs
index b4e085a..433f6d5 100644
--- a/mediarepo-daemon/src/main.rs
+++ b/mediarepo-daemon/src/main.rs
@@ -55,6 +55,7 @@ enum SubCommand {
#[tokio::main]
async fn main() -> RepoResult<()> {
+ human_panic::setup_panic!();
let mut opt: Opt = Opt::from_args();
opt.repo = env::current_dir().unwrap().join(opt.repo);
diff --git a/mediarepo-ui/src/app/components/core/core.module.ts b/mediarepo-ui/src/app/components/core/core.module.ts
index 217d4e5..37432e7 100644
--- a/mediarepo-ui/src/app/components/core/core.module.ts
+++ b/mediarepo-ui/src/app/components/core/core.module.ts
@@ -34,7 +34,7 @@ import {TagModule} from "../shared/tag/tag.module";
import {
DownloadDaemonDialogComponent
} from "./repositories-tab/download-daemon-dialog/download-daemon-dialog.component";
-import {RepositoryModule} from "../shared/repository/repository/repository.module";
+import {RepositoryModule} from "../shared/repository/repository.module";
import {MatToolbarModule} from "@angular/material/toolbar";
import {
RepositoryDetailsViewComponent
diff --git a/mediarepo-ui/src/app/components/core/repositories-tab/repository-card/repository-card.component.ts b/mediarepo-ui/src/app/components/core/repositories-tab/repository-card/repository-card.component.ts
index 9b4f23f..a524781 100644
--- a/mediarepo-ui/src/app/components/core/repositories-tab/repository-card/repository-card.component.ts
+++ b/mediarepo-ui/src/app/components/core/repositories-tab/repository-card/repository-card.component.ts
@@ -6,7 +6,7 @@ import {ConfirmDialogComponent} from "../../../shared/app-common/confirm-dialog/
import {BusyIndicatorComponent} from "../../../shared/app-common/busy-indicator/busy-indicator.component";
import {
EditRepositoryDialogComponent
-} from "../../../shared/repository/repository/edit-repository-dialog/edit-repository-dialog.component";
+} from "../../../shared/repository/edit-repository-dialog/edit-repository-dialog.component";
@Component({
selector: "app-repository-card",
diff --git a/mediarepo-ui/src/app/components/core/repositories-tab/repository-details-view/repository-details-view.component.html b/mediarepo-ui/src/app/components/core/repositories-tab/repository-details-view/repository-details-view.component.html
index 66b350e..847c65c 100644
--- a/mediarepo-ui/src/app/components/core/repositories-tab/repository-details-view/repository-details-view.component.html
+++ b/mediarepo-ui/src/app/components/core/repositories-tab/repository-details-view/repository-details-view.component.html
@@ -47,13 +47,16 @@
{{this.databaseFileSize | async}}
+
-
diff --git a/mediarepo-ui/src/app/components/core/repositories-tab/repository-details-view/repository-details-view.component.scss b/mediarepo-ui/src/app/components/core/repositories-tab/repository-details-view/repository-details-view.component.scss
index 573a3be..a57e7ce 100644
--- a/mediarepo-ui/src/app/components/core/repositories-tab/repository-details-view/repository-details-view.component.scss
+++ b/mediarepo-ui/src/app/components/core/repositories-tab/repository-details-view/repository-details-view.component.scss
@@ -31,14 +31,17 @@
.stats-container {
margin-left: auto;
margin-right: auto;
+ display: block;
+ width: 50%;
}
-}
-.repository-charts {
- margin-top: 4em;
- margin-right: 2em;
- height: 100%;
- display: block;
+ .repository-charts {
+ margin-top: 4em;
+ margin-right: 2em;
+ height: calc(100% - 4em);;
+ width: 50%;
+ display: block;
+ }
}
.details-content {
@@ -54,3 +57,7 @@
max-width: 500px;
margin: auto;
}
+
+.repo-maintenance {
+ padding: 2em;
+}
diff --git a/mediarepo-ui/src/app/components/core/repositories-tab/repository-overview/repository-overview.component.ts b/mediarepo-ui/src/app/components/core/repositories-tab/repository-overview/repository-overview.component.ts
index 03f313f..ca75501 100644
--- a/mediarepo-ui/src/app/components/core/repositories-tab/repository-overview/repository-overview.component.ts
+++ b/mediarepo-ui/src/app/components/core/repositories-tab/repository-overview/repository-overview.component.ts
@@ -7,7 +7,7 @@ import {StateService} from "../../../../services/state/state.service";
import {MatDialog, MatDialogRef} from "@angular/material/dialog";
import {
AddRepositoryDialogComponent
-} from "../../../shared/repository/repository/add-repository-dialog/add-repository-dialog.component";
+} from "../../../shared/repository/add-repository-dialog/add-repository-dialog.component";
import {BehaviorSubject} from "rxjs";
import {BusyDialogComponent} from "../../../shared/app-common/busy-dialog/busy-dialog.component";
import {DownloadDaemonDialogComponent} from "../download-daemon-dialog/download-daemon-dialog.component";
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/add-repository-dialog/add-repository-dialog.component.html b/mediarepo-ui/src/app/components/shared/repository/add-repository-dialog/add-repository-dialog.component.html
similarity index 100%
rename from mediarepo-ui/src/app/components/shared/repository/repository/add-repository-dialog/add-repository-dialog.component.html
rename to mediarepo-ui/src/app/components/shared/repository/add-repository-dialog/add-repository-dialog.component.html
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/add-repository-dialog/add-repository-dialog.component.scss b/mediarepo-ui/src/app/components/shared/repository/add-repository-dialog/add-repository-dialog.component.scss
similarity index 100%
rename from mediarepo-ui/src/app/components/shared/repository/repository/add-repository-dialog/add-repository-dialog.component.scss
rename to mediarepo-ui/src/app/components/shared/repository/add-repository-dialog/add-repository-dialog.component.scss
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/add-repository-dialog/add-repository-dialog.component.spec.ts b/mediarepo-ui/src/app/components/shared/repository/add-repository-dialog/add-repository-dialog.component.spec.ts
similarity index 100%
rename from mediarepo-ui/src/app/components/shared/repository/repository/add-repository-dialog/add-repository-dialog.component.spec.ts
rename to mediarepo-ui/src/app/components/shared/repository/add-repository-dialog/add-repository-dialog.component.spec.ts
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/add-repository-dialog/add-repository-dialog.component.ts b/mediarepo-ui/src/app/components/shared/repository/add-repository-dialog/add-repository-dialog.component.ts
similarity index 91%
rename from mediarepo-ui/src/app/components/shared/repository/repository/add-repository-dialog/add-repository-dialog.component.ts
rename to mediarepo-ui/src/app/components/shared/repository/add-repository-dialog/add-repository-dialog.component.ts
index d89cf87..2918db1 100644
--- a/mediarepo-ui/src/app/components/shared/repository/repository/add-repository-dialog/add-repository-dialog.component.ts
+++ b/mediarepo-ui/src/app/components/shared/repository/add-repository-dialog/add-repository-dialog.component.ts
@@ -1,8 +1,8 @@
import {Component, Inject, ViewChild} from "@angular/core";
import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
import {RepositoryFormComponent} from "../repository-form/repository-form.component";
-import {RepositoryService} from "../../../../../services/repository/repository.service";
-import {LoggingService} from "../../../../../services/logging/logging.service";
+import {RepositoryService} from "../../../../services/repository/repository.service";
+import {LoggingService} from "../../../../services/logging/logging.service";
@Component({
selector: "app-add-repository-dialog",
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/edit-repository-dialog/edit-repository-dialog.component.html b/mediarepo-ui/src/app/components/shared/repository/edit-repository-dialog/edit-repository-dialog.component.html
similarity index 100%
rename from mediarepo-ui/src/app/components/shared/repository/repository/edit-repository-dialog/edit-repository-dialog.component.html
rename to mediarepo-ui/src/app/components/shared/repository/edit-repository-dialog/edit-repository-dialog.component.html
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/edit-repository-dialog/edit-repository-dialog.component.scss b/mediarepo-ui/src/app/components/shared/repository/edit-repository-dialog/edit-repository-dialog.component.scss
similarity index 100%
rename from mediarepo-ui/src/app/components/shared/repository/repository/edit-repository-dialog/edit-repository-dialog.component.scss
rename to mediarepo-ui/src/app/components/shared/repository/edit-repository-dialog/edit-repository-dialog.component.scss
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/edit-repository-dialog/edit-repository-dialog.component.spec.ts b/mediarepo-ui/src/app/components/shared/repository/edit-repository-dialog/edit-repository-dialog.component.spec.ts
similarity index 100%
rename from mediarepo-ui/src/app/components/shared/repository/repository/edit-repository-dialog/edit-repository-dialog.component.spec.ts
rename to mediarepo-ui/src/app/components/shared/repository/edit-repository-dialog/edit-repository-dialog.component.spec.ts
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/edit-repository-dialog/edit-repository-dialog.component.ts b/mediarepo-ui/src/app/components/shared/repository/edit-repository-dialog/edit-repository-dialog.component.ts
similarity index 91%
rename from mediarepo-ui/src/app/components/shared/repository/repository/edit-repository-dialog/edit-repository-dialog.component.ts
rename to mediarepo-ui/src/app/components/shared/repository/edit-repository-dialog/edit-repository-dialog.component.ts
index a53b338..33a8e9c 100644
--- a/mediarepo-ui/src/app/components/shared/repository/repository/edit-repository-dialog/edit-repository-dialog.component.ts
+++ b/mediarepo-ui/src/app/components/shared/repository/edit-repository-dialog/edit-repository-dialog.component.ts
@@ -1,9 +1,9 @@
import {Component, Inject, ViewChild} from "@angular/core";
import {RepositoryFormComponent} from "../repository-form/repository-form.component";
-import {RepositoryService} from "../../../../../services/repository/repository.service";
-import {LoggingService} from "../../../../../services/logging/logging.service";
+import {RepositoryService} from "../../../../services/repository/repository.service";
+import {LoggingService} from "../../../../services/logging/logging.service";
import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
-import {Repository} from "../../../../../../api/models/Repository";
+import {Repository} from "../../../../../api/models/Repository";
@Component({
selector: "app-edit-repository-dialog",
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/repository-form/repository-form.component.html b/mediarepo-ui/src/app/components/shared/repository/repository-form/repository-form.component.html
similarity index 100%
rename from mediarepo-ui/src/app/components/shared/repository/repository/repository-form/repository-form.component.html
rename to mediarepo-ui/src/app/components/shared/repository/repository-form/repository-form.component.html
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/repository-form/repository-form.component.scss b/mediarepo-ui/src/app/components/shared/repository/repository-form/repository-form.component.scss
similarity index 100%
rename from mediarepo-ui/src/app/components/shared/repository/repository/repository-form/repository-form.component.scss
rename to mediarepo-ui/src/app/components/shared/repository/repository-form/repository-form.component.scss
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/repository-form/repository-form.component.spec.ts b/mediarepo-ui/src/app/components/shared/repository/repository-form/repository-form.component.spec.ts
similarity index 100%
rename from mediarepo-ui/src/app/components/shared/repository/repository/repository-form/repository-form.component.spec.ts
rename to mediarepo-ui/src/app/components/shared/repository/repository-form/repository-form.component.spec.ts
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/repository-form/repository-form.component.ts b/mediarepo-ui/src/app/components/shared/repository/repository-form/repository-form.component.ts
similarity index 96%
rename from mediarepo-ui/src/app/components/shared/repository/repository/repository-form/repository-form.component.ts
rename to mediarepo-ui/src/app/components/shared/repository/repository-form/repository-form.component.ts
index 863f304..ae57e95 100644
--- a/mediarepo-ui/src/app/components/shared/repository/repository/repository-form/repository-form.component.ts
+++ b/mediarepo-ui/src/app/components/shared/repository/repository-form/repository-form.component.ts
@@ -1,7 +1,7 @@
import {Component, Input, OnInit, Output} from "@angular/core";
import {AbstractControl, FormControl, FormGroup, ValidationErrors, Validators} from "@angular/forms";
-import {Repository} from "../../../../../../api/models/Repository";
-import {RepositoryService} from "../../../../../services/repository/repository.service";
+import {Repository} from "../../../../../api/models/Repository";
+import {RepositoryService} from "../../../../services/repository/repository.service";
import {dialog} from "@tauri-apps/api";
import {MatDialog} from "@angular/material/dialog";
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.html b/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.html
new file mode 100644
index 0000000..b316398
--- /dev/null
+++ b/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.html
@@ -0,0 +1,29 @@
+
+
+
+ Maintenance
+
+
+
+
+
+
+
+
+
+
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.scss b/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.scss
new file mode 100644
index 0000000..70dc9dc
--- /dev/null
+++ b/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.scss
@@ -0,0 +1,18 @@
+mat-card-header {
+ display: block;
+}
+
+mat-card-title h1 {
+ margin: auto;
+ text-align: center;
+}
+
+.button-list {
+ display: block;
+ width: 100%;
+
+ button {
+ display: block;
+ margin: 2em auto;
+ }
+}
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.spec.ts b/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.spec.ts
new file mode 100644
index 0000000..f67bd5c
--- /dev/null
+++ b/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.spec.ts
@@ -0,0 +1,25 @@
+import {ComponentFixture, TestBed} from "@angular/core/testing";
+
+import {RepositoryMaintenanceComponent} from "./repository-maintenance.component";
+
+describe("RepositoryMaintenanceComponent", () => {
+ let component: RepositoryMaintenanceComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [RepositoryMaintenanceComponent]
+ })
+ .compileComponents();
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(RepositoryMaintenanceComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it("should create", () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.ts b/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.ts
new file mode 100644
index 0000000..00296fc
--- /dev/null
+++ b/mediarepo-ui/src/app/components/shared/repository/repository-maintenance/repository-maintenance.component.ts
@@ -0,0 +1,68 @@
+import {ChangeDetectionStrategy, ChangeDetectorRef, Component} from "@angular/core";
+import {JobService} from "../../../../services/job/job.service";
+import {JobType} from "../../../../../api/api-types/job";
+import {MatDialog} from "@angular/material/dialog";
+import {BusyDialogComponent, BusyDialogData} from "../../app-common/busy-dialog/busy-dialog.component";
+import {LoggingService} from "../../../../services/logging/logging.service";
+import {BehaviorSubject} from "rxjs";
+
+
+@Component({
+ selector: "app-repository-maintenance",
+ templateUrl: "./repository-maintenance.component.html",
+ styleUrls: ["./repository-maintenance.component.scss"],
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class RepositoryMaintenanceComponent {
+
+ public jobState: { [Property in JobType]?: boolean } = {
+ CalculateSizes: false,
+ GenerateThumbnails: false,
+ };
+
+ constructor(
+ private changeDetector: ChangeDetectorRef,
+ private jobService: JobService,
+ private dialog: MatDialog,
+ private logger: LoggingService
+ ) {
+ }
+
+ public async runJob(jobType: JobType, runAsync: boolean) {
+ if (runAsync) {
+ this.jobState[jobType] = true;
+ this.jobService.runJob(jobType).then(() => this.delay(1000)).catch(this.logger.error).finally(() => {
+ this.jobState[jobType] = false;
+ this.changeDetector.detectChanges();
+ });
+ this.changeDetector.detectChanges();
+ } else {
+ const dialog = this.dialog.open(BusyDialogComponent, {
+ disableClose: true,
+ minWidth: "30%",
+ minHeight: "30%",
+ data: {
+ title: "Synchronous Job",
+ message: new BehaviorSubject(`Running Job ${jobType}`),
+ allowCancel: false,
+ }
+ });
+ try {
+ this.changeDetector.detectChanges();
+ await this.jobService.runJob(jobType);
+ } catch (err: any) {
+ this.logger.error(err);
+ } finally {
+ dialog.close();
+ this.changeDetector.detectChanges();
+ }
+ }
+ }
+
+ private async delay(ms: number) {
+ return new Promise((res, _) => setTimeout(
+ res,
+ ms
+ ));
+ }
+}
diff --git a/mediarepo-ui/src/app/components/shared/repository/repository/repository.module.ts b/mediarepo-ui/src/app/components/shared/repository/repository.module.ts
similarity index 74%
rename from mediarepo-ui/src/app/components/shared/repository/repository/repository.module.ts
rename to mediarepo-ui/src/app/components/shared/repository/repository.module.ts
index 4038696..3922140 100644
--- a/mediarepo-ui/src/app/components/shared/repository/repository/repository.module.ts
+++ b/mediarepo-ui/src/app/components/shared/repository/repository.module.ts
@@ -11,17 +11,22 @@ import {MatInputModule} from "@angular/material/input";
import {ReactiveFormsModule} from "@angular/forms";
import {NgIconsModule} from "@ng-icons/core";
import {MatFolder} from "@ng-icons/material-icons/baseline";
+import {RepositoryMaintenanceComponent} from "./repository-maintenance/repository-maintenance.component";
+import {MatCardModule} from "@angular/material/card";
+import {MatProgressBarModule} from "@angular/material/progress-bar";
@NgModule({
declarations: [
AddRepositoryDialogComponent,
EditRepositoryDialogComponent,
- RepositoryFormComponent
+ RepositoryFormComponent,
+ RepositoryMaintenanceComponent
],
exports: [
AddRepositoryDialogComponent,
EditRepositoryDialogComponent,
+ RepositoryMaintenanceComponent,
],
imports: [
CommonModule,
@@ -31,7 +36,9 @@ import {MatFolder} from "@ng-icons/material-icons/baseline";
MatSelectModule,
MatInputModule,
ReactiveFormsModule,
- NgIconsModule.withIcons({ MatFolder })
+ NgIconsModule.withIcons({ MatFolder }),
+ MatCardModule,
+ MatProgressBarModule
]
})
export class RepositoryModule {