diff --git a/src/Ombi/ClientApp/src/app/media-details/components/index.ts b/src/Ombi/ClientApp/src/app/media-details/components/index.ts new file mode 100644 index 000000000..7346ac6c0 --- /dev/null +++ b/src/Ombi/ClientApp/src/app/media-details/components/index.ts @@ -0,0 +1,17 @@ +import { MovieDetailsComponent } from "./movie/movie-details.component"; +import { YoutubeTrailerComponent } from "./shared/youtube-trailer.component"; +import { TvDetailsComponent } from "./tv/tv-details.component"; +import { MovieInformationPanelComponent } from "./movie/panels/movie-information-panel.component"; +import { TvInformationPanelComponent } from "./tv/panels/tv-information-panel.component"; +import { TopBannerComponent } from "./shared/top-banner/top-banner.component"; +import { SocialIconsComponent } from "./shared/social-icons/social-icons.component"; + +export const components: any[] = [ + MovieDetailsComponent, + YoutubeTrailerComponent, + TvDetailsComponent, + MovieInformationPanelComponent, + TvInformationPanelComponent, + TopBannerComponent, + SocialIconsComponent, +]; diff --git a/src/Ombi/ClientApp/src/app/media-details/movie/movie-details.component.html b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html similarity index 74% rename from src/Ombi/ClientApp/src/app/media-details/movie/movie-details.component.html rename to src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html index 83a39776c..a8ffa8657 100644 --- a/src/Ombi/ClientApp/src/app/media-details/movie/movie-details.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html @@ -1,25 +1,9 @@
+ -
-
-
- -
-
-
-
-

{{movie.title}} ({{movie.releaseDate - | date:'yyyy'}}) -

- -
{{movie.tagline}}
-
-
-
-
-
+
@@ -39,48 +23,11 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
diff --git a/src/Ombi/ClientApp/src/app/media-details/movie/movie-details.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.ts similarity index 93% rename from src/Ombi/ClientApp/src/app/media-details/movie/movie-details.component.ts rename to src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.ts index 734f55fd7..e65404f35 100644 --- a/src/Ombi/ClientApp/src/app/media-details/movie/movie-details.component.ts +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.ts @@ -1,16 +1,16 @@ import { Component, ViewEncapsulation } from "@angular/core"; -import { ImageService, SearchV2Service, RequestService, MessageService, RadarrService } from "../../services"; +import { ImageService, SearchV2Service, RequestService, MessageService, RadarrService } from "../../../services"; import { ActivatedRoute } from "@angular/router"; import { DomSanitizer } from "@angular/platform-browser"; -import { ISearchMovieResultV2 } from "../../interfaces/ISearchMovieResultV2"; +import { ISearchMovieResultV2 } from "../../../interfaces/ISearchMovieResultV2"; import { MatDialog } from "@angular/material"; -import { YoutubeTrailerComponent } from "../youtube-trailer.component"; -import { AuthService } from "../../auth/auth.service"; -import { IMovieRequests, IRadarrProfile, IRadarrRootFolder } from "../../interfaces"; +import { YoutubeTrailerComponent } from "../shared/youtube-trailer.component"; +import { AuthService } from "../../../auth/auth.service"; +import { IMovieRequests, IRadarrProfile, IRadarrRootFolder } from "../../../interfaces"; @Component({ templateUrl: "./movie-details.component.html", - styleUrls: ["../media-details.component.scss"], + styleUrls: ["../../media-details.component.scss"], encapsulation: ViewEncapsulation.None }) export class MovieDetailsComponent { diff --git a/src/Ombi/ClientApp/src/app/media-details/movie/panels/movie-information-panel.component.html b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html similarity index 100% rename from src/Ombi/ClientApp/src/app/media-details/movie/panels/movie-information-panel.component.html rename to src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html diff --git a/src/Ombi/ClientApp/src/app/media-details/movie/panels/movie-information-panel.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.ts similarity index 69% rename from src/Ombi/ClientApp/src/app/media-details/movie/panels/movie-information-panel.component.ts rename to src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.ts index c27a65855..5d5d9005e 100644 --- a/src/Ombi/ClientApp/src/app/media-details/movie/panels/movie-information-panel.component.ts +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.ts @@ -1,9 +1,9 @@ import { Component, ViewEncapsulation, Input } from "@angular/core"; -import { ISearchMovieResultV2 } from "../../../interfaces/ISearchMovieResultV2"; +import { ISearchMovieResultV2 } from "../../../../interfaces/ISearchMovieResultV2"; @Component({ templateUrl: "./movie-information-panel.component.html", - styleUrls: ["../../media-details.component.scss"], + styleUrls: ["../../../media-details.component.scss"], selector: "movie-information-panel", encapsulation: ViewEncapsulation.None }) diff --git a/src/Ombi/ClientApp/src/app/media-details/components/shared/social-icons/social-icons.component.html b/src/Ombi/ClientApp/src/app/media-details/components/shared/social-icons/social-icons.component.html new file mode 100644 index 000000000..ef5e29537 --- /dev/null +++ b/src/Ombi/ClientApp/src/app/media-details/components/shared/social-icons/social-icons.component.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/media-details/components/shared/social-icons/social-icons.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/shared/social-icons/social-icons.component.ts new file mode 100644 index 000000000..c21bc10cc --- /dev/null +++ b/src/Ombi/ClientApp/src/app/media-details/components/shared/social-icons/social-icons.component.ts @@ -0,0 +1,27 @@ +import { Component, Inject, Input, Output, EventEmitter } from "@angular/core"; + +@Component({ + selector: "social-icons", + templateUrl: "./social-icons.component.html", +}) +export class SocialIconsComponent { + + @Input() homepage: string; + @Input() theMoviedbId: number; + @Input() hasTrailer: boolean; + @Input() imdbId: string; + @Input() tvdbId: string; + @Input() twitter: string; + @Input() facebook: string; + @Input() instagram: string; + @Input() available: boolean; + @Input() plexUrl: string; + @Input() embyUrl: string; + + @Output() openTrailer: EventEmitter; + + + public openDialog() { + this.openTrailer.emit; + } +} diff --git a/src/Ombi/ClientApp/src/app/media-details/components/shared/top-banner/top-banner.component.html b/src/Ombi/ClientApp/src/app/media-details/components/shared/top-banner/top-banner.component.html new file mode 100644 index 000000000..d33fd7788 --- /dev/null +++ b/src/Ombi/ClientApp/src/app/media-details/components/shared/top-banner/top-banner.component.html @@ -0,0 +1,20 @@ + +
+
+
+ +
+
+
+
+

{{title}} + ({{releaseDate | amLocal | amDateFormat: 'YYYY'}}) +

+ +
{{tagline}}
+
+
+
+
+
\ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/media-details/components/shared/top-banner/top-banner.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/shared/top-banner/top-banner.component.ts new file mode 100644 index 000000000..f833a197a --- /dev/null +++ b/src/Ombi/ClientApp/src/app/media-details/components/shared/top-banner/top-banner.component.ts @@ -0,0 +1,15 @@ +import { Component, Inject, Input } from "@angular/core"; + +@Component({ + selector: "top-banner", + templateUrl: "./top-banner.component.html", +}) +export class TopBannerComponent { + + @Input() title: string; + @Input() releaseDate: Date; + @Input() tagline: string; + @Input() available: boolean; + @Input() background: any; + +} diff --git a/src/Ombi/ClientApp/src/app/media-details/youtube-trailer.component.html b/src/Ombi/ClientApp/src/app/media-details/components/shared/youtube-trailer.component.html similarity index 100% rename from src/Ombi/ClientApp/src/app/media-details/youtube-trailer.component.html rename to src/Ombi/ClientApp/src/app/media-details/components/shared/youtube-trailer.component.html diff --git a/src/Ombi/ClientApp/src/app/media-details/youtube-trailer.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/shared/youtube-trailer.component.ts similarity index 100% rename from src/Ombi/ClientApp/src/app/media-details/youtube-trailer.component.ts rename to src/Ombi/ClientApp/src/app/media-details/components/shared/youtube-trailer.component.ts diff --git a/src/Ombi/ClientApp/src/app/media-details/tv/panels/tv-information-panel.component.html b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel.component.html similarity index 100% rename from src/Ombi/ClientApp/src/app/media-details/tv/panels/tv-information-panel.component.html rename to src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel.component.html diff --git a/src/Ombi/ClientApp/src/app/media-details/tv/panels/tv-information-panel.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel.component.ts similarity index 69% rename from src/Ombi/ClientApp/src/app/media-details/tv/panels/tv-information-panel.component.ts rename to src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel.component.ts index 0981fbb31..645cbde11 100644 --- a/src/Ombi/ClientApp/src/app/media-details/tv/panels/tv-information-panel.component.ts +++ b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel.component.ts @@ -1,9 +1,9 @@ import { Component, ViewEncapsulation, Input } from "@angular/core"; -import { ISearchTvResultV2 } from "../../../interfaces/ISearchTvResultV2"; +import { ISearchTvResultV2 } from "../../../../interfaces/ISearchTvResultV2"; @Component({ templateUrl: "./tv-information-panel.component.html", - styleUrls: ["../../media-details.component.scss"], + styleUrls: ["../../../media-details.component.scss"], selector: "tv-information-panel", encapsulation: ViewEncapsulation.None }) diff --git a/src/Ombi/ClientApp/src/app/media-details/tv/tv-details.component.html b/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.html similarity index 76% rename from src/Ombi/ClientApp/src/app/media-details/tv/tv-details.component.html rename to src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.html index 53c47b9c9..1de945890 100644 --- a/src/Ombi/ClientApp/src/app/media-details/tv/tv-details.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.html @@ -1,25 +1,7 @@
- -
-
-
- -
-
-
-
-

{{tv.title}} ({{tv.firstAired | amLocal | amDateFormat: 'YYYY'}}) -

- -
{{tv.certification}}
-
-
-
-
-
+
@@ -37,24 +19,10 @@
- - - - - - - - - - - - - - - - + +
@@ -65,16 +33,6 @@ - - - - {{'Search.ViewOnPlex' | - translate}} - {{'Search.ViewOnEmby' | - translate}} -
diff --git a/src/Ombi/ClientApp/src/app/media-details/tv/tv-details.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.ts similarity index 85% rename from src/Ombi/ClientApp/src/app/media-details/tv/tv-details.component.ts rename to src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.ts index 70f6762db..326594d98 100644 --- a/src/Ombi/ClientApp/src/app/media-details/tv/tv-details.component.ts +++ b/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.ts @@ -1,15 +1,15 @@ import { Component, ViewEncapsulation } from "@angular/core"; -import { ImageService, SearchV2Service, RequestService, MessageService } from "../../services"; +import { ImageService, SearchV2Service, RequestService, MessageService } from "../../../services"; import { ActivatedRoute } from "@angular/router"; import { DomSanitizer } from "@angular/platform-browser"; -import { ISearchTvResultV2 } from "../../interfaces/ISearchTvResultV2"; +import { ISearchTvResultV2 } from "../../../interfaces/ISearchTvResultV2"; import { MatDialog } from "@angular/material"; -import { YoutubeTrailerComponent } from "../youtube-trailer.component"; -import { EpisodeRequestComponent } from "../../shared/episode-request/episode-request.component"; +import { YoutubeTrailerComponent } from "../shared/youtube-trailer.component"; +import { EpisodeRequestComponent } from "../../../shared/episode-request/episode-request.component"; @Component({ templateUrl: "./tv-details.component.html", - styleUrls: ["../media-details.component.scss"], + styleUrls: ["../../media-details.component.scss"], encapsulation: ViewEncapsulation.None }) export class TvDetailsComponent { diff --git a/src/Ombi/ClientApp/src/app/media-details/media-details.components.ts b/src/Ombi/ClientApp/src/app/media-details/media-details.components.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/Ombi/ClientApp/src/app/media-details/media-details.module.ts b/src/Ombi/ClientApp/src/app/media-details/media-details.module.ts index b726c3afe..f3bf768e9 100644 --- a/src/Ombi/ClientApp/src/app/media-details/media-details.module.ts +++ b/src/Ombi/ClientApp/src/app/media-details/media-details.module.ts @@ -6,17 +6,19 @@ import { SearchService, RequestService, RadarrService } from "../services"; import {CarouselModule} from 'primeng/carousel'; import { SharedModule } from "../shared/shared.module"; -import { MovieDetailsComponent } from "./movie/movie-details.component"; -import { TvDetailsComponent } from "./tv/tv-details.component"; +import { MovieDetailsComponent } from "./components/movie/movie-details.component"; +import { TvDetailsComponent } from "./components/tv/tv-details.component"; import { PipeModule } from "../pipes/pipe.module"; -import { YoutubeTrailerComponent } from "./youtube-trailer.component"; -import { MovieInformationPanelComponent } from "./movie/panels/movie-information-panel.component"; -import { TvInformationPanelComponent } from "./tv/panels/tv-information-panel.component"; +import { YoutubeTrailerComponent } from "./components/shared/youtube-trailer.component"; + +import * as fromComponents from './components'; +import { AuthGuard } from "../auth/auth.guard"; + const routes: Routes = [ - { path: "movie/:movieDbId", component: MovieDetailsComponent }, - { path: "tv/:tvdbId/:search", component: TvDetailsComponent }, - { path: "tv/:tvdbId", component: TvDetailsComponent }, + { path: "movie/:movieDbId", component: MovieDetailsComponent, canActivate: [AuthGuard] }, + { path: "tv/:tvdbId/:search", component: TvDetailsComponent, canActivate: [AuthGuard] }, + { path: "tv/:tvdbId", component: TvDetailsComponent, canActivate: [AuthGuard] }, ]; @NgModule({ imports: [ @@ -26,11 +28,7 @@ const routes: Routes = [ CarouselModule, ], declarations: [ - MovieDetailsComponent, - YoutubeTrailerComponent, - TvDetailsComponent, - MovieInformationPanelComponent, - TvInformationPanelComponent, + ...fromComponents.components ], exports: [ RouterModule,