diff --git a/.azuredevops/pipelines/publish-job.yml b/.azuredevops/pipelines/publish-job.yml index 8f836d8b8..78697830b 100644 --- a/.azuredevops/pipelines/publish-job.yml +++ b/.azuredevops/pipelines/publish-job.yml @@ -98,3 +98,21 @@ stages: isPreRelease: true changeLogCompareToRelease: 'lastNonDraftRelease' changeLogType: 'commitBased' + + - task: PowerShell@2 + displayName: "Trigger APT build" + inputs: + targetType: 'inline' + script: | + $body = @{ + "ref"="main" + "inputs"= @{"version"= "$(gitTag)"} + } | ConvertTo-Json + + $header = @{ + "Accept"="application/vnd.github.v3+json" + "Authorization"="Bearer $(APTPAT)" + "User-Agent"="Ombi" + } + + Invoke-RestMethod -Uri "https://api.github.com/repos/Ombi-app/Ombi.Apt/actions/workflows/build-deb.yml/dispatches" -Method 'Post' -Body $body -Headers $header \ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.scss b/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.scss index b927176fd..ec2dbae3b 100644 --- a/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.scss +++ b/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.scss @@ -256,6 +256,7 @@ a.poster-overlay:hover{ ::ng-deep .ombi-card .button-request-container .button-request{ padding-right:0px; padding-left:0px; + width:100%; } .c:hover .button-request-container { diff --git a/src/Ombi/ClientApp/src/app/issues/issues.component.ts b/src/Ombi/ClientApp/src/app/issues/issues.component.ts index c97eb4eff..b8482f1ff 100644 --- a/src/Ombi/ClientApp/src/app/issues/issues.component.ts +++ b/src/Ombi/ClientApp/src/app/issues/issues.component.ts @@ -4,6 +4,8 @@ import { IssuesService } from "../services"; import { IIssueCount, IIssues, IPagenator, IssueStatus } from "../interfaces"; +import { PageEvent } from '@angular/material/paginator'; + @Component({ templateUrl: "issues.component.html", styleUrls: ['issues.component.scss'] @@ -16,7 +18,7 @@ export class IssuesComponent implements OnInit { public count: IIssueCount; - private takeAmount = 10; + private takeAmount = 50; private pendingSkip = 0; private inProgressSkip = 0; private resolvedSkip = 0; @@ -30,18 +32,18 @@ export class IssuesComponent implements OnInit { this.issueService.getIssuesCount().subscribe(x => this.count = x); } - public changePagePending(event: IPagenator) { - this.pendingSkip = event.first; + public changePagePending(event: PageEvent) { + this.pendingSkip = event.pageSize * event.pageIndex++; this.getPending(); } - public changePageInProg(event: IPagenator) { - this.inProgressSkip = event.first; + public changePageInProg(event: PageEvent) { + this.inProgressSkip = event.pageSize * event.pageIndex++; this.getInProg(); } - public changePageResolved(event: IPagenator) { - this.resolvedSkip = event.first; + public changePageResolved(event: PageEvent) { + this.resolvedSkip = event.pageSize * event.pageIndex++; this.getResolved(); } diff --git a/src/Ombi/ClientApp/src/app/issues/issuestable.component.html b/src/Ombi/ClientApp/src/app/issues/issuestable.component.html index 8713d09b2..e266a718a 100644 --- a/src/Ombi/ClientApp/src/app/issues/issuestable.component.html +++ b/src/Ombi/ClientApp/src/app/issues/issuestable.component.html @@ -26,94 +26,17 @@ {{element.userReported.userAlias}} - - - - + - \ No newline at end of file + \ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/issues/issuestable.component.ts b/src/Ombi/ClientApp/src/app/issues/issuestable.component.ts index d1c656662..ff584a35e 100644 --- a/src/Ombi/ClientApp/src/app/issues/issuestable.component.ts +++ b/src/Ombi/ClientApp/src/app/issues/issuestable.component.ts @@ -14,7 +14,9 @@ export class IssuesTableComponent { @Output() public changePage = new EventEmitter(); public displayedColumns = ["title", "category", "subject", "status", "reportedBy", "actions"] - public IssueStatus = IssueStatus; + public IssueStatus = IssueStatus; + public resultsLength: number; + public gridCount: string = "15"; public order: string = "id"; public reverse = false; @@ -44,11 +46,6 @@ export class IssuesTableComponent { } public paginate(event: IPagenator) { - //event.first = Index of the first record (current index) - //event.rows = Number of rows to display in new page - //event.page = Index of the new page - //event.pageCount = Total number of pages - this.changePage.emit(event); } diff --git a/src/Ombi/ClientApp/src/app/login/login.component.html b/src/Ombi/ClientApp/src/app/login/login.component.html index ced032260..b0f4841fa 100644 --- a/src/Ombi/ClientApp/src/app/login/login.component.html +++ b/src/Ombi/ClientApp/src/app/login/login.component.html @@ -19,7 +19,7 @@

OMBI

{{'Login.UsernamePlaceholder' | translate}} is required - + {{'Login.PasswordPlaceholder' | translate}} diff --git a/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html index 9cd6666b8..ffa06a502 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html @@ -22,6 +22,7 @@ [isAdmin]="isAdmin" [canRequestOnBehalf]="!hasRequest && !movie.available" [canShowAdvanced]="showAdvanced && movieRequest" + [type]="requestType" (openTrailer)="openDialog()" (onRequestBehalf)="openRequestOnBehalf()" (onAdvancedOptions)="openAdvancedOptions()" @@ -103,7 +104,7 @@
- + diff --git a/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.ts index 06a1cf0e4..988859245 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.ts +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.ts @@ -27,6 +27,9 @@ export class MovieDetailsComponent { public advancedOptions: IAdvancedData; public showAdvanced: boolean; // Set on the UI + public requestType = RequestType.movie; + + private theMovidDbId: number; private imdbId: string; diff --git a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html index 13cb4d16a..b14e2d44a 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html @@ -1,21 +1,23 @@ -
- - {{movie.voteAverage | number:'1.0-1'}}/10 - - - - {{ratings.critics_score}}% - - - - {{ratings.audience_score}}% - -
+
+
+ + {{movie.voteAverage | number:'1.0-1'}}/10 + + + + {{ratings.critics_score}}% + + + + {{ratings.audience_score}}% + +
+

- {{'MediaDetails.StreamingOn' | translate }}: + {{'MediaDetails.StreamingOn' | translate }}:
@@ -24,18 +26,16 @@

- {{'MediaDetails.Status' | translate }}: + {{'MediaDetails.Status' | translate }}: {{movie.status}}
- {{'MediaDetails.Availability' | translate }}: + {{'MediaDetails.Availability' | translate }}: {{'Common.Available' | translate}} {{'Common.NotAvailable' | translate}} -
-
- {{'MediaDetails.RequestStatus' | translate }} + {{'MediaDetails.RequestStatus' | translate }}
{{'Common.ProcessingRequest' | translate}}
{{'Common.PendingApproval' | translate}}
@@ -44,27 +44,27 @@
- {{'Requests.RequestedBy' | translate }}: + {{'Requests.RequestedBy' | translate }}: {{request.requestedUser.userAlias}}
- {{'Requests.RequestDate' | translate }}: + {{'Requests.RequestDate' | translate }}: {{request.requestedDate | date}}
- {{'MediaDetails.Quality' | translate }}: + {{'MediaDetails.Quality' | translate }}:
{{movie.quality | quality}}
- {{'MediaDetails.RootFolderOverride' | translate }} + {{'MediaDetails.RootFolderOverride' | translate }}
{{request.rootPathOverrideTitle}}
- {{'MediaDetails.QualityOverride' | translate }} + {{'MediaDetails.QualityOverride' | translate }}
{{request.qualityOverrideTitle}}
@@ -72,34 +72,34 @@
- {{'MediaDetails.TheatricalRelease' | translate }}: + {{'MediaDetails.TheatricalRelease' | translate }}: {{movie.releaseDate | date: 'mediumDate'}}
- {{'MediaDetails.DigitalRelease' | translate }}: + {{'MediaDetails.DigitalRelease' | translate }}: {{movie.digitalReleaseDate | date: 'mediumDate'}}
- {{'MediaDetails.Votes' | translate }}: + {{'MediaDetails.Votes' | translate }}: {{movie.voteCount | thousandShort: 1}}
- {{'MediaDetails.Runtime' | translate }}: + {{'MediaDetails.Runtime' | translate }}: {{'MediaDetails.Minutes' | translate:{runtime: movie.runtime} }}
- {{'MediaDetails.Revenue' | translate }}: + {{'MediaDetails.Revenue' | translate }}: {{movie.revenue | currency: 'USD'}}
- {{'MediaDetails.Budget' | translate }}: + {{'MediaDetails.Budget' | translate }}: {{movie.budget | currency: 'USD'}}

- {{'MediaDetails.Genres' | translate }}: + {{'MediaDetails.Genres' | translate }}:
@@ -111,7 +111,7 @@
- {{'MediaDetails.Keywords' | translate }}: + {{'MediaDetails.Keywords' | translate }}: {{keyword.name}} 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 index 847f51491..c49b52e1c 100644 --- 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 @@ -35,7 +35,8 @@
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 index 5f98b27df..715320ff2 100644 --- 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 @@ -1,4 +1,5 @@ import { Component, Input, Output, EventEmitter } from "@angular/core"; +import { RequestType } from "../../../../interfaces"; @Component({ selector: "social-icons", templateUrl: "./social-icons.component.html", @@ -18,6 +19,7 @@ export class SocialIconsComponent { @Input() embyUrl: string; @Input() jellyfinUrl: string; @Input() doNotAppend: boolean; + @Input() type: RequestType; @Input() isAdmin: boolean; @Input() canRequestOnBehalf: boolean; @@ -27,6 +29,8 @@ export class SocialIconsComponent { @Output() onRequestBehalf: EventEmitter = new EventEmitter(); @Output() onAdvancedOptions: EventEmitter = new EventEmitter(); + public RequestType = RequestType; + public openDialog() { this.openTrailer.emit(); diff --git a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html index 777f4820e..2997cda3c 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html @@ -1,63 +1,68 @@ -
- - {{tv.rating}}/10 - - - {{ratings.score}}% - - -
+
+
+
+ + {{tv.rating}}/10 + + + {{ratings.score}}% + +
+
+
+
+ {{'MediaDetails.StreamingOn' | translate }}: +
+ + + +
+
+

- {{'MediaDetails.StreamingOn' | translate }}: -
- - - +
+ {{'MediaDetails.Status' | translate }}: + {{tv.status}}
+ First Aired: + {{tv.firstAired | date: 'mediumDate'}}
-
-
- {{'MediaDetails.Status' | translate }}: - {{tv.status}} -
- First Aired: - {{tv.firstAired | date: 'mediumDate'}} -
-
- Seasons: - {{seasonCount}} -
-
- Episodes: - {{totalEpisodes}} -
+
+ Seasons: + {{seasonCount}} +
+
+ Episodes: + {{totalEpisodes}} +
-
- {{'MediaDetails.RootFolderOverride' | translate }}: -
{{request.rootPathOverrideTitle}}
-
-
- {{'MediaDetails.QualityOverride' | translate }}: -
{{request.qualityOverrideTitle}}
-
+
+ {{'MediaDetails.RootFolderOverride' | translate }}: +
{{request.rootPathOverrideTitle}}
+
+
+ {{'MediaDetails.QualityOverride' | translate }}: +
{{request.qualityOverrideTitle}}
+
-
- {{'MediaDetails.Runtime' | translate }}: - {{'MediaDetails.Minutes' | translate:{ runtime: tv.runtime} }} -
+
+ {{'MediaDetails.Runtime' | translate }}: + {{'MediaDetails.Minutes' | translate:{ runtime: tv.runtime} }} +
-
- Network: - {{tv.network.name}} -
+
+ Network: + {{tv.network.name}} +
-
- {{'MediaDetails.Genres' | translate }}: -
- - {{genre}} | - +
+ {{'MediaDetails.Genres' | translate }}: +
+ + {{genre}} | + +
diff --git a/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.html b/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.html index 03e1ad4ee..62d1b5b77 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.html @@ -16,73 +16,64 @@

{{ 'MediaDetails.NotEnoughInfo' | translate }}

+
-
- - - - - -
- - - - +
+
+
+ +
+
+ + + + + + -
- - - - - - - - -
- -
- - - - - +
- - + + -
- -
@@ -95,7 +86,6 @@

{{ 'MediaDetails.NotEnoughInfo' | translate }}

-
diff --git a/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.ts index 8ed41e078..a5f80d2cf 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.ts +++ b/src/Ombi/ClientApp/src/app/media-details/components/tv/tv-details.component.ts @@ -12,6 +12,7 @@ import { NewIssueComponent } from "../shared/new-issue/new-issue.component"; import { TvAdvancedOptionsComponent } from "./panels/tv-advanced-options/tv-advanced-options.component"; import { RequestServiceV2 } from "../../../services/requestV2.service"; import { RequestBehalfComponent } from "../shared/request-behalf/request-behalf.component"; +import { forkJoin } from "rxjs"; @Component({ templateUrl: "./tv-details.component.html", @@ -27,6 +28,7 @@ export class TvDetailsComponent implements OnInit { public isAdmin: boolean; public advancedOptions: IAdvancedData; public showAdvanced: boolean; // Set on the UI + public requestType = RequestType.tvShow; private tvdbId: number; @@ -63,6 +65,7 @@ export class TvDetailsComponent implements OnInit { if (this.tv.requestId) { this.tvRequest = await this.requestService.getChildRequests(this.tv.requestId).toPromise(); this.showRequest = this.tvRequest.length > 0 ? this.tvRequest[0].parentRequest : undefined; + this.loadAdvancedInfo(); } const tvBanner = await this.imageService.getTvBanner(this.tvdbId).toPromise(); @@ -97,7 +100,7 @@ export class TvDetailsComponent implements OnInit { // get the name and ids result.rootFolder = result.rootFolders.filter(f => f.id === +result.rootFolderId)[0]; result.profile = result.profiles.filter(f => f.id === +result.profileId)[0]; - await this.requestService2.updateTvAdvancedOptions({ qualityOverride: result.profileId, rootPathOverride: result.rootFolderId, requestId: this.tv.id }).toPromise(); + await this.requestService2.updateTvAdvancedOptions({ qualityOverride: result.profileId, rootPathOverride: result.rootFolderId, requestId: this.showRequest.id }).toPromise(); this.setAdvancedOptions(result); } }); @@ -116,10 +119,35 @@ export class TvDetailsComponent implements OnInit { this.advancedOptions = data; console.log(this.advancedOptions); if (data.rootFolderId) { - this.showRequest.qualityOverrideTitle = data.rootFolders.filter(x => x.id == data.rootFolderId)[0].path; + this.showRequest.qualityOverrideTitle = data.profiles.filter(x => x.id == data.profileId)[0].name; } if (data.profileId) { - this.showRequest.rootPathOverrideTitle = data.profiles.filter(x => x.id == data.profileId)[0].name; + this.showRequest.rootPathOverrideTitle = data.rootFolders.filter(x => x.id == data.rootFolderId)[0].path; } } + + private loadAdvancedInfo() { + const profile = this.sonarrService.getQualityProfilesWithoutSettings(); + const folders = this.sonarrService.getRootFoldersWithoutSettings(); + + forkJoin([profile, folders]).subscribe(x => { + const sonarrProfiles = x[0]; + const sonarrRootFolders = x[1]; + + const profile = sonarrProfiles.filter((p) => { + return p.id === this.showRequest.qualityOverride; + }); + if (profile.length > 0) { + this.showRequest.qualityOverrideTitle = profile[0].name; + } + + const path = sonarrRootFolders.filter((folder) => { + return folder.id === this.showRequest.rootFolder; + }); + if (path.length > 0) { + this.showRequest.rootPathOverrideTitle = path[0].path; + } + + }); + } } diff --git a/src/Ombi/ClientApp/src/app/media-details/media-details.component.scss b/src/Ombi/ClientApp/src/app/media-details/media-details.component.scss index 6e752ce80..13886c0db 100644 --- a/src/Ombi/ClientApp/src/app/media-details/media-details.component.scss +++ b/src/Ombi/ClientApp/src/app/media-details/media-details.component.scss @@ -143,11 +143,11 @@ } .btn-spacing { - margin-right: 10px !important; + margin-right: 10px; } .spacing-below { - margin-bottom: 15px !important; + margin-bottom: 15px; } .left-seperator { @@ -170,8 +170,9 @@ } .media-row { - padding-top: 56px; - padding-left: 26px; + position:absolute; + bottom:0; + margin-bottom:20px; } .cast-profile-img { @@ -239,16 +240,16 @@ } .viewon-btn.plex { - border: 1px solid #E5A00D; color: #E5A00D; + box-shadow: inset 0px 0px 0px 1px #e5a00d; } .viewon-btn.emby { - border: 1px solid #52b54a; color: #52b54a; + box-shadow: inset 0px 0px 0px 1px #52b54a; } .viewon-btn.jellyfin { - border: 1px solid #00a4dc; color: #00a4dc; + box-shadow: inset 0px 0px 0px 1px #00a4dc; } ::ng-deep .p-carousel-indicators { @@ -269,8 +270,87 @@ .details-button-container{ width:100%; + position:relative; } .info-wrapper .row{ flex-wrap:wrap; -} \ No newline at end of file +} + +.rating{ + display:flex; + justify-content: space-evenly; + width:100%; + flex-wrap: wrap; +} + +.left-panel-details .label{ + font-weight:500; +} + +.left-panel-details .streaming-on-content{ + display:flex; + justify-content: center; + align-items: center; + flex-flow:row wrap; +} + +.left-panel-details .streaming-on-content .label{ + white-space:nowrap; + padding-right:10px; +} + +.left-panel-details{ + font-weight:100; +} + +.genre-button-container .mat-chip-list .mat-chip-list-wrapper{ + margin-top:3px; + margin:0; + margin-left: -6px; +} + +.keyword-button-container .mat-chip-list .mat-chip-list-wrapper{ + margin-top:3px; + margin:0; + margin-left: -6px; +} + +.mat-card-header{ + font-size: 20px; + padding-top: 10px; + padding-bottom:10px; +} + +.media-row .mat-raised-button{ + padding:2px 1.5em;; + width:170px; + margin-top:10px; + margin-left:10px; +} + +@media (max-width:500px){ + .row.justify-content-center.justify-content-sm-start.header-container{ + flex-wrap:wrap; + } + + .media-row{ + position:relative; + justify-content: center; + display: flex; + flex-wrap: wrap; + } + + .media-row .mat-raised-button{ + width:100%; + margin-left:0px; + } + + .media-row .btn-spacing{ + margin-right:0; + } + + .media-row span{ + width:100%; + } +} diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html b/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html index 4a8c17f7c..9c71884e0 100644 --- a/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html +++ b/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html @@ -88,7 +88,7 @@
+ diff --git a/src/Ombi/ClientApp/src/app/services/job.service.ts b/src/Ombi/ClientApp/src/app/services/job.service.ts index e1915dac2..24b5e9a52 100644 --- a/src/Ombi/ClientApp/src/app/services/job.service.ts +++ b/src/Ombi/ClientApp/src/app/services/job.service.ts @@ -43,6 +43,10 @@ export class JobService extends ServiceHelpers { return this.http.post(`${this.url}plexrecentlyadded/`, {headers: this.headers}); } + public clearMediaserverData(): Observable { + return this.http.post(`${this.url}clearmediaserverdata/`, {headers: this.headers}); + } + public runEmbyCacher(): Observable { return this.http.post(`${this.url}embycontentcacher/`, {headers: this.headers}); } diff --git a/src/Ombi/ClientApp/src/app/settings/emby/emby.component.html b/src/Ombi/ClientApp/src/app/settings/emby/emby.component.html index e7dd34504..a079534f2 100644 --- a/src/Ombi/ClientApp/src/app/settings/emby/emby.component.html +++ b/src/Ombi/ClientApp/src/app/settings/emby/emby.component.html @@ -105,6 +105,12 @@
+
+ +
diff --git a/src/Ombi/ClientApp/src/app/settings/emby/emby.component.ts b/src/Ombi/ClientApp/src/app/settings/emby/emby.component.ts index df6653fd6..c01b5636f 100644 --- a/src/Ombi/ClientApp/src/app/settings/emby/emby.component.ts +++ b/src/Ombi/ClientApp/src/app/settings/emby/emby.component.ts @@ -92,4 +92,12 @@ export class EmbyComponent implements OnInit { } }); } + + public clearDataAndResync(): void { + this.jobService.clearMediaserverData().subscribe(x => { + if (x) { + this.notificationService.success("Triggered the Clear MediaServer Resync"); + } + }); + } } diff --git a/src/Ombi/ClientApp/src/app/settings/jellyfin/jellyfin.component.html b/src/Ombi/ClientApp/src/app/settings/jellyfin/jellyfin.component.html index 66b4b39f6..ada4f5aa6 100644 --- a/src/Ombi/ClientApp/src/app/settings/jellyfin/jellyfin.component.html +++ b/src/Ombi/ClientApp/src/app/settings/jellyfin/jellyfin.component.html @@ -105,6 +105,12 @@
+
+ +
diff --git a/src/Ombi/ClientApp/src/app/settings/jellyfin/jellyfin.component.ts b/src/Ombi/ClientApp/src/app/settings/jellyfin/jellyfin.component.ts index 133ae4b39..fd65ba43c 100644 --- a/src/Ombi/ClientApp/src/app/settings/jellyfin/jellyfin.component.ts +++ b/src/Ombi/ClientApp/src/app/settings/jellyfin/jellyfin.component.ts @@ -93,4 +93,12 @@ export class JellyfinComponent implements OnInit { } }); } + + public clearDataAndResync(): void { + this.jobService.clearMediaserverData().subscribe(x => { + if (x) { + this.notificationService.success("Triggered the Clear MediaServer Resync"); + } + }); + } } diff --git a/src/Ombi/ClientApp/src/app/settings/jobs/jobs.component.html b/src/Ombi/ClientApp/src/app/settings/jobs/jobs.component.html index f51c5626e..03780b264 100644 --- a/src/Ombi/ClientApp/src/app/settings/jobs/jobs.component.html +++ b/src/Ombi/ClientApp/src/app/settings/jobs/jobs.component.html @@ -1,11 +1,11 @@  - +
Job Settings
Changes require a restart.

- You can generate valid CRON Expressions here: https://www.cronmaker.com/ + You can generate valid CRON Expressions here: https://www.cronmaker.com/

diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/cloudmobile.component.html b/src/Ombi/ClientApp/src/app/settings/notifications/cloudmobile.component.html index a569a6ef4..dfb047fe8 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/cloudmobile.component.html +++ b/src/Ombi/ClientApp/src/app/settings/notifications/cloudmobile.component.html @@ -1,6 +1,6 @@  -
+
Mobile Notifications @@ -47,7 +47,7 @@
- +
diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/cloudmobile.coponent.ts b/src/Ombi/ClientApp/src/app/settings/notifications/cloudmobile.coponent.ts index e78860e09..3708f48a5 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/cloudmobile.coponent.ts +++ b/src/Ombi/ClientApp/src/app/settings/notifications/cloudmobile.coponent.ts @@ -11,6 +11,7 @@ import { MatTableDataSource } from "@angular/material/table"; @Component({ templateUrl: "./cloudmobile.component.html", + styleUrls: ["./notificationtemplate.component.scss"] }) export class CloudMobileComponent implements OnInit { diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/gotify.component.html b/src/Ombi/ClientApp/src/app/settings/notifications/gotify.component.html index 0b732fd74..9b2a7c938 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/gotify.component.html +++ b/src/Ombi/ClientApp/src/app/settings/notifications/gotify.component.html @@ -42,7 +42,7 @@
- @@ -53,7 +53,7 @@
- +
diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/mattermost.component.html b/src/Ombi/ClientApp/src/app/settings/notifications/mattermost.component.html index ea18e07e5..d7998c417 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/mattermost.component.html +++ b/src/Ombi/ClientApp/src/app/settings/notifications/mattermost.component.html @@ -47,7 +47,7 @@
- @@ -58,7 +58,7 @@
- +
diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/mobile.component.html b/src/Ombi/ClientApp/src/app/settings/notifications/mobile.component.html index b01a8b459..c5573c57e 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/mobile.component.html +++ b/src/Ombi/ClientApp/src/app/settings/notifications/mobile.component.html @@ -3,71 +3,73 @@
Legacy Mobile Notifications -
-
-
-
- - - - - +
+
+ +
+
+
- Username/Alias - - Mobile Devices Registered -
+ + + + - - - - - - + + + + + + - -
+ Username/Alias + + Mobile Devices Registered +
- {{user.username}} - - {{user.devices}} -
+ {{user.username}} + + {{user.devices}} +
+ + +
-
-
-
- -
- +
+
+ +
+ +
-
-
-
- +
+
+ +
-
-
-
- +
+
+ +
-
-
-
- +
+
+ +
-
- -
+ +
-
- +
+ +
\ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/notificationtemplate.component.scss b/src/Ombi/ClientApp/src/app/settings/notifications/notificationtemplate.component.scss index 33f8a2d6c..1ffd9207b 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/notificationtemplate.component.scss +++ b/src/Ombi/ClientApp/src/app/settings/notifications/notificationtemplate.component.scss @@ -1,15 +1,30 @@ @import "~styles/shared.scss"; -::ng-deep ngb-accordion > div.card { - color:white; - padding-top: 0px; -} - -::ng-deep ngb-accordion > div.card > div.card-header { - padding:0px; -} .small-middle-container{ margin: auto; width: 95%; margin-top:10px; +} + +.lmobile-actions{ + display:flex; + justify-content: left; + align-items:flex-end; +} + +.lmobile-actions .form-group{ + margin-right:10px; +} + +.lmobile-container{ + display:flex; + margin-top:10px; +} + +.issue-content{ + justify-content: flex-end; +} + +.mat-raised-button{ + margin-right:10px; } \ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/pushbullet.component.html b/src/Ombi/ClientApp/src/app/settings/notifications/pushbullet.component.html index 3c4db7698..e8115e4f5 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/pushbullet.component.html +++ b/src/Ombi/ClientApp/src/app/settings/notifications/pushbullet.component.html @@ -32,7 +32,7 @@
- @@ -43,7 +43,7 @@
- +
diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/pushover.component.html b/src/Ombi/ClientApp/src/app/settings/notifications/pushover.component.html index 8ce9b401d..926b344e0 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/pushover.component.html +++ b/src/Ombi/ClientApp/src/app/settings/notifications/pushover.component.html @@ -74,7 +74,7 @@
- @@ -85,7 +85,7 @@
- +
diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/slack.component.html b/src/Ombi/ClientApp/src/app/settings/notifications/slack.component.html index 15ef796fc..378e48060 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/slack.component.html +++ b/src/Ombi/ClientApp/src/app/settings/notifications/slack.component.html @@ -57,7 +57,7 @@
- @@ -68,7 +68,7 @@
- +
diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/telegram.component.html b/src/Ombi/ClientApp/src/app/settings/notifications/telegram.component.html index d89d14483..51e4c36d4 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/telegram.component.html +++ b/src/Ombi/ClientApp/src/app/settings/notifications/telegram.component.html @@ -43,7 +43,7 @@
- @@ -52,7 +52,7 @@
- +
diff --git a/src/Ombi/ClientApp/src/app/settings/notifications/webhook.component.html b/src/Ombi/ClientApp/src/app/settings/notifications/webhook.component.html index 8ab28cc3c..aab095953 100644 --- a/src/Ombi/ClientApp/src/app/settings/notifications/webhook.component.html +++ b/src/Ombi/ClientApp/src/app/settings/notifications/webhook.component.html @@ -31,7 +31,7 @@
- @@ -40,7 +40,7 @@
- +
diff --git a/src/Ombi/ClientApp/src/app/settings/plex/plex.component.html b/src/Ombi/ClientApp/src/app/settings/plex/plex.component.html index 6ade3261d..3b05e4585 100644 --- a/src/Ombi/ClientApp/src/app/settings/plex/plex.component.html +++ b/src/Ombi/ClientApp/src/app/settings/plex/plex.component.html @@ -158,15 +158,21 @@

Plex Credentials

-
-
+
+ +
diff --git a/src/Ombi/ClientApp/src/app/settings/plex/plex.component.ts b/src/Ombi/ClientApp/src/app/settings/plex/plex.component.ts index 7509fb45a..dc2352999 100644 --- a/src/Ombi/ClientApp/src/app/settings/plex/plex.component.ts +++ b/src/Ombi/ClientApp/src/app/settings/plex/plex.component.ts @@ -73,10 +73,9 @@ export class PlexComponent implements OnInit, OnDestroy { } public addTab(event: MatTabChangeEvent) { - const tabName = event.tab.textLabel; if (tabName == "Add Server"){ - + if (this.settings.servers == null) { this.settings.servers = []; } @@ -146,6 +145,14 @@ export class PlexComponent implements OnInit, OnDestroy { }); } + public clearDataAndResync(): void { + this.jobService.clearMediaserverData().subscribe(x => { + if (x) { + this.notificationService.success("Triggered the Clear MediaServer Resync"); + } + }); + } + public ngOnDestroy() { this.subscriptions.next(); this.subscriptions.complete(); diff --git a/src/Ombi/ClientApp/src/app/settings/wiki.component.html b/src/Ombi/ClientApp/src/app/settings/wiki.component.html index fe12a1a19..d34ce82ff 100644 --- a/src/Ombi/ClientApp/src/app/settings/wiki.component.html +++ b/src/Ombi/ClientApp/src/app/settings/wiki.component.html @@ -2,7 +2,7 @@ diff --git a/src/Ombi/ClientApp/src/styles/Styles.scss b/src/Ombi/ClientApp/src/styles/Styles.scss index f34d199a0..55bc8657c 100644 --- a/src/Ombi/ClientApp/src/styles/Styles.scss +++ b/src/Ombi/ClientApp/src/styles/Styles.scss @@ -141,3 +141,19 @@ .mat-flat-button, .mat-raised-button, .mat-fab, .mat-mini-fab{ background-color: $ombi-active; } + + hr{ + border-top: 1px solid $ombi-background-primary; + } + + .form-control{ + background-color: $ombi-background-accent; + color:#FFF; + border: 1px solid $ombi-background-accent; + } + + .form-control:focus{ + background-color: $ombi-background-accent; + color:#FFF; + border: 1px solid $ombi-active; + } diff --git a/src/Ombi/Controllers/V1/JobController.cs b/src/Ombi/Controllers/V1/JobController.cs index b8ae1446b..e182e1239 100644 --- a/src/Ombi/Controllers/V1/JobController.cs +++ b/src/Ombi/Controllers/V1/JobController.cs @@ -9,6 +9,7 @@ using Ombi.Schedule.Jobs.Jellyfin; using Ombi.Schedule.Jobs.Ombi; using Ombi.Schedule.Jobs.Plex; +using Ombi.Schedule.Jobs.Plex.Interfaces; using Ombi.Schedule.Jobs.Radarr; using Quartz; @@ -125,6 +126,17 @@ public bool StartPlexContentCacher() return true; } + /// + /// Clear out the media server and resync + /// + /// + [HttpPost("clearmediaserverdata")] + public bool ClearMediaServerData() + { + OmbiQuartz.Scheduler.TriggerJob(new JobKey(nameof(IMediaDatabaseRefresh), "System")); + return true; + } + /// /// Runs a smaller version of the content cacher /// diff --git a/src/Ombi/yarn.lock b/src/Ombi/yarn.lock new file mode 100644 index 000000000..fb57ccd13 --- /dev/null +++ b/src/Ombi/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + +