+
Search for
-
+
+ {{provider.name}} ID
+
+
+
-
+
diff --git a/src/app/metadata-edit/metadata-edit.component.scss b/src/app/metadata-edit/metadata-edit.component.scss
index e69de29b..1c4773f4 100644
--- a/src/app/metadata-edit/metadata-edit.component.scss
+++ b/src/app/metadata-edit/metadata-edit.component.scss
@@ -0,0 +1,18 @@
+@import "~bootstrap/scss/functions";
+@import "~bootstrap/scss/variables";
+@import "~bootstrap/scss/mixins/breakpoints";
+
+.provider
+{
+ width: 100%;
+
+ @include media-breakpoint-up(md)
+ {
+ width: 33%;
+ }
+
+ @include media-breakpoint-up(lg)
+ {
+ width: 25%;
+ }
+}
\ No newline at end of file
diff --git a/src/app/metadata-edit/metadata-edit.component.ts b/src/app/metadata-edit/metadata-edit.component.ts
index efa7351c..d0965f61 100644
--- a/src/app/metadata-edit/metadata-edit.component.ts
+++ b/src/app/metadata-edit/metadata-edit.component.ts
@@ -9,22 +9,25 @@ import {Observable, of} from "rxjs";
import {tap} from "rxjs/operators";
import {Studio} from "../../models/studio";
import {ShowGridComponent} from "../show-grid/show-grid.component";
+import {Provider} from "../../models/provider";
@Component({
selector: 'app-metadata-edit',
templateUrl: './metadata-edit.component.html',
styleUrls: ['./metadata-edit.component.scss']
})
-export class MetadataEditComponent implements OnInit
+export class MetadataEditComponent
{
- @ViewChild("genreInput") genreInput: ElementRef;
-
+ @ViewChild("genreInput") private genreInput: ElementRef;
private allGenres: Genre[];
private allStudios: Studio[];
+ @ViewChild("identifyGrid") private identifyGrid: ShowGridComponent;
private identifing: Observable;
private identifiedShows: [string, Show[]];
- @ViewChild("identifyGrid") private identifyGrid: ShowGridComponent;
+ private providers: Provider[];
+
+ public metadataChanged: boolean = false;
constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public show: Show, private http: HttpClient)
{
@@ -36,13 +39,13 @@ export class MetadataEditComponent implements OnInit
{
this.allStudios = result;
});
+ this.http.get("/api/providers").subscribe(result =>
+ {
+ this.providers = result;
+ });
this.reIdentify(this.show.title);
}
-
- ngOnInit(): void
- {
- }
apply(): void
{
@@ -103,7 +106,28 @@ export class MetadataEditComponent implements OnInit
reIdentify(search: string)
{
- console.log("Searching for " + search);
this.identityShow(search).subscribe(x => this.identifyGrid.shows = x);
}
+
+ getMetadataID(show: Show, provider: Provider)
+ {
+ return show.externalIDs.find(x => x.provider.name == provider.name);
+ }
+
+ setMetadataID(show: Show, provider: Provider, id: string)
+ {
+ let i = show.externalIDs.findIndex(x => x.provider.name == provider.name);
+
+ this.metadataChanged = true;
+ if (i != -1)
+ show.externalIDs[i].dataID = id;
+ else
+ show.externalIDs.push({provider: provider, dataID: id, link: undefined});
+ }
+
+ identifyID(show: Show)
+ {
+ for (let id of show.externalIDs)
+ this.setMetadataID(this.show, id.provider, id.dataID);
+ }
}
diff --git a/src/app/show-grid/show-grid.component.html b/src/app/show-grid/show-grid.component.html
index 1f505bc6..1826ecb6 100644
--- a/src/app/show-grid/show-grid.component.html
+++ b/src/app/show-grid/show-grid.component.html
@@ -1,7 +1,7 @@
-
+
diff --git a/src/app/show-grid/show-grid.component.ts b/src/app/show-grid/show-grid.component.ts
index 19fec72f..d22da070 100644
--- a/src/app/show-grid/show-grid.component.ts
+++ b/src/app/show-grid/show-grid.component.ts
@@ -1,4 +1,4 @@
-import {AfterViewInit, Component, Input, OnInit} from '@angular/core';
+import {AfterViewInit, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
import {Show} from "../../models/show";
import {DomSanitizer} from "@angular/platform-browser";
@@ -11,6 +11,7 @@ export class ShowGridComponent
{
@Input() shows: Show[]
@Input() externalShows: boolean = false;
+ @Output() clickCallback: EventEmitter = new EventEmitter();
constructor(private sanitizer: DomSanitizer) { }
diff --git a/src/models/external-id.ts b/src/models/external-id.ts
index b0cd1a3b..2699a776 100644
--- a/src/models/external-id.ts
+++ b/src/models/external-id.ts
@@ -1,6 +1,8 @@
+import {Provider} from "./provider"
+
export interface ExternalID
{
- provider: {name: string, logo: string};
- id: string;
+ provider: Provider;
+ dataID: string;
link: string;
}
\ No newline at end of file
diff --git a/src/models/provider.ts b/src/models/provider.ts
new file mode 100644
index 00000000..bdae3192
--- /dev/null
+++ b/src/models/provider.ts
@@ -0,0 +1,5 @@
+export interface Provider
+{
+ name: string;
+ logo: string;
+}
\ No newline at end of file