@ -1,121 +1,135 @@
< settings-menu >
< settings-menu > < / settings-menu >
< / settings-menu >
< wiki [ url ] = " ' https: / / github . com / tidusjar / Ombi / wiki / Job-Settings ' " > < / wiki >
< wiki [ url ] = " ' https: / / github . com / tidusjar / Ombi / wiki / Job-Settings ' " > < / wiki >
< div * ngIf = "form" >
< div * ngIf = "form" class = "small-middle-container" >
< fieldset >
< fieldset >
< legend > Job Settings< / legend >
< legend > Job Settings< / legend >
< form novalidate [ formGroup ] = " form " ( ngSubmit ) = " onSubmit ( form ) " style = "padding-top:5%;" >
< form novalidate [ formGroup ] = " form " ( ngSubmit ) = " onSubmit ( form ) " >
< div class = "col-md-6" >
< small > Changes require a restart.< / small > < p >
< small > Changes to any of the below requires you to restart Ombi. < / small >
< small > You can generate valid CRON Expressions here: < a href = "https://www.cronmaker.com/" target = "_blank" > https://www.cronmaker.com/< / a > < / small >
< small > You can generate valid CRON Expressions here: < a href = "https://www.cronmaker.com/" target = "_blank" > https://www.cronmaker.com/< / a > < / small >
< div class = "form-group" >
< div style = "margin-top:1em;" >
< label for = "sonarrSync" class = "control-label" > Sonarr Sync< / label >
< div class = "form-group cronBox" >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' sonarrSync ' ) . hasError ( ' required ' ) } " id = "sonarrSync" name = "sonarrSync" formControlName = "sonarrSync" >
< mat-form-field appearance = "outline" floatLabel = always >
< small * ngIf = "form.get('sonarrSync').hasError('required')" class = "error-text" > The Sonarr Sync is required< / small >
< mat-label for = "sonarrSync" class = "control-mat-label" > Sonarr Sync< / mat-label >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' sonarrSync ' ) ? . value ) " > Test< / button >
< input matInput type = "text" [ ngClass ] = " { ' form-error ' : form . get ( ' sonarrSync ' ) . hasError ( ' required ' ) } " id = "sonarrSync" name = "sonarrSync" formControlName = "sonarrSync" >
< / div >
< small * ngIf = "form.get('sonarrSync').hasError('required')" class = "error-text" > The Sonarr Sync is required< / small > < / mat-form-field >
< div class = "form-group" >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' sonarrSync ' ) ? . value ) " > Test< / button >
< label for = "sickRageSync" class = "control-label" > SickRage Sync< / label >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' sonarrSync ' ) . hasError ( ' required ' ) } " id = "sickRageSync" name = "sickRageSync" formControlName = "sickRageSync" >
< / div >
< small * ngIf = "form.get('sickRageSync').hasError('required')" class = "error-text" > The SickRage Sync is required< / small >
< div class = "form-group cronBox" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' sickRageSync ' ) ? . value ) " > Test< / button >
< mat-form-field appearance = "outline" floatLabel = always >
< mat-label for = "sickRageSync" class = "control-mat-label" > SickRage Sync< / mat-label >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' sonarrSync ' ) . hasError ( ' required ' ) } " id = "sickRageSync" name = "sickRageSync" formControlName = "sickRageSync" >
< small * ngIf = "form.get('sickRageSync').hasError('required')" class = "error-text" > The SickRage Sync is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' sickRageSync ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox" >
< label for = "radarrSync" class = "control-label" > Radarr Sync< / label >
< mat-form-field appearance = "outline" floatLabel = always >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' radarrSync ' ) . hasError ( ' required ' ) } " id = "radarrSync" name = "radarrSync" formControlName = "radarrSync" >
< mat-label for = "radarrSync" class = "control-mat-label" > Radarr Sync< / mat-label >
< small * ngIf = "form.get('radarrSync').hasError('required')" class = "error-text" > The Radarr Sync is required< / small >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' radarrSync ' ) . hasError ( ' required ' ) } " id = "radarrSync" name = "radarrSync" formControlName = "radarrSync" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' radarrSync ' ) ? . value ) " > Test< / button >
< small * ngIf = "form.get('radarrSync').hasError('required')" class = "error-text" > The Radarr Sync is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' radarrSync ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox" >
< label for = "lidarrArtistSync" class = "control-label" > Lidarr Sync< / label >
< mat-form-field appearance = "outline" floatLabel = always >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' lidarrArtistSync ' ) . hasError ( ' required ' ) } " id = "lidarrArtistSync" name = "lidarrArtistSync" formControlName = "lidarrArtistSync" >
< mat-label for = "lidarrArtistSync" class = "control-mat-label" > Lidarr Sync< / mat-label >
< small * ngIf = "form.get('lidarrArtistSync').hasError('required')" class = "error-text" > The Lidarr Sync is required< / small >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' lidarrArtistSync ' ) . hasError ( ' required ' ) } " id = "lidarrArtistSync" name = "lidarrArtistSync" formControlName = "lidarrArtistSync" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' lidarrArtistSync ' ) ? . value ) " > Test< / button >
< small * ngIf = "form.get('lidarrArtistSync').hasError('required')" class = "error-text" > The Lidarr Sync is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' lidarrArtistSync ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox" >
< label for = "couchPotatoSync" class = "control-label" > CouchPotato Sync< / label >
< mat-form-field appearance = "outline" floatLabel = always >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' radarrSync ' ) . hasError ( ' required ' ) } " id = "couchPotatoSync" name = "couchPotatoSync" formControlName = "couchPotatoSync" >
< mat-label for = "couchPotatoSync" class = "control-mat-label" > CouchPotato Sync< / mat-label >
< small * ngIf = "form.get('couchPotatoSync').hasError('required')" class = "error-text" > The CouchPotato Sync is required< / small >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' radarrSync ' ) . hasError ( ' required ' ) } " id = "couchPotatoSync" name = "couchPotatoSync" formControlName = "couchPotatoSync" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' couchPotatoSync ' ) ? . value ) " > Test< / button >
< small * ngIf = "form.get('couchPotatoSync').hasError('required')" class = "error-text" > The CouchPotato Sync is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' couchPotatoSync ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox" >
< label for = "automaticUpdater" class = "control-label" > Automatic Update< / label >
< mat-form-field appearance = "outline" floatLabel = always >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' automaticUpdater ' ) . hasError ( ' required ' ) } " id = "automaticUpdater" name = "automaticUpdater" formControlName = "automaticUpdater" >
< mat-label for = "automaticUpdater" class = "control-mat-label" > Automatic Update< / mat-label >
< small * ngIf = "form.get('automaticUpdater').hasError('required')" class = "error-text" > The Automatic Update is required< / small >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' automaticUpdater ' ) . hasError ( ' required ' ) } " id = "automaticUpdater" name = "automaticUpdater" formControlName = "automaticUpdater" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' automaticUpdater ' ) ? . value ) " > Test< / button >
< small * ngIf = "form.get('automaticUpdater').hasError('required')" class = "error-text" > The Automatic Update is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' automaticUpdater ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox" >
< label for = "retryRequests" class = "control-label" > Retry Failed Requests< / label >
< mat-form-field appearance = "outline" floatLabel = always >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' retryRequests ' ) . hasError ( ' required ' ) } " id = "retryRequests" name = "retryRequests" formControlName = "retryRequests" >
< mat-label for = "retryRequests" class = "control-mat-label" > Retry Failed Requests< / mat-label >
< small * ngIf = "form.get('retryRequests').hasError('required')" class = "error-text" > The Retry Requests is required< / small >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' retryRequests ' ) . hasError ( ' required ' ) } " id = "retryRequests" name = "retryRequests" formControlName = "retryRequests" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' retryRequests ' ) ? . value ) " > Test< / button >
< small * ngIf = "form.get('retryRequests').hasError('required')" class = "error-text" > The Retry Requests is required< / small > < / mat-form-field >
< / div >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' retryRequests ' ) ? . value ) " > Test< / button >
< / div >
< div class = "col-md-6" >
< div class = "form-group" >
< label for = "plexContentSync" class = "control-label" > Plex Sync< / label >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' plexContentSync ' ) . hasError ( ' required ' ) } " id = "plexContentSync" name = "plexContentSync" formControlName = "plexContentSync" >
< small * ngIf = "form.get('plexContentSync').hasError('required')" class = "error-text" > The Plex Sync is required< / small >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' plexContentSync ' ) ? . value ) " > Test< / button >
< / div >
< div class = "form-group" >
< label for = "plexRecentlyAddedSync" class = "control-label" > Plex Recently Added Sync< / label >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' plexRecentlyAddedSync ' ) . hasError ( ' required ' ) } " id = "plexRecentlyAddedSync" name = "plexRecentlyAddedSync" formControlName = "plexRecentlyAddedSync" >
< small * ngIf = "form.get('plexRecentlyAddedSync').hasError('required')" class = "error-text" > The Plex Sync is required< / small >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' plexRecentlyAddedSync ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox" >
< label for = "embyContentSync" class = "control-label" > Emby Sync< / label >
< mat-form-field appearance = "outline" floatLabel = always >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' embyContentSync ' ) . hasError ( ' required ' ) } " id = "embyContentSync" name = "embyContentSync" formControlName = "embyContentSync" >
< mat-label for = "plexContentSync" class = "control-mat-label" > Plex Sync< / mat-label >
< small * ngIf = "form.get('embyContentSync').hasError('required')" class = "error-text" > The Emby Sync is required< / small >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' plexContentSync ' ) . hasError ( ' required ' ) } " id = "plexContentSync" name = "plexContentSync" formControlName = "plexContentSync" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' embyContentSync ' ) ? . value ) " > Test< / button >
< small * ngIf = "form.get('plexContentSync').hasError('required')" class = "error-text" > The Plex Sync is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' plexContentSync ' ) ? . value ) " > Test< / button >
< / div >
< div class = "form-group cronBox" >
< mat-form-field appearance = "outline" floatLabel = always >
< mat-label for = "plexRecentlyAddedSync" class = "control-mat-label" > Plex Recently Added Sync< / mat-label >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' plexRecentlyAddedSync ' ) . hasError ( ' required ' ) } " id = "plexRecentlyAddedSync" name = "plexRecentlyAddedSync" formControlName = "plexRecentlyAddedSync" >
< small * ngIf = "form.get('plexRecentlyAddedSync').hasError('required')" class = "error-text" > The Plex Sync is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' plexRecentlyAddedSync ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox" >
< label for = "userImporter" class = "control-label" > User Importer< / label >
< mat-form-field appearance = "outline" floatLabel = always >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' userImporter ' ) . hasError ( ' required ' ) } " id = "userImporter" name = "userImporter" formControlName = "userImporter" >
< mat-label for = "embyContentSync" class = "control-mat-label" > Emby Sync< / mat-label >
< small * ngIf = "form.get('userImporter').hasError('required')" class = "error-text" > The User Importer is required< / small >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' embyContentSync ' ) . hasError ( ' required ' ) } " id = "embyContentSync" name = "embyContentSync" formControlName = "embyContentSync" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' userImporter ' ) ? . value ) " > Test< / button >
< small * ngIf = "form.get('embyContentSync').hasError('required')" class = "error-text" > The Emby Sync is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' embyContentSync ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox" >
< label for = "userImporter" class = "control-label" > Newsletter< / label >
< mat-form-field appearance = "outline" floatLabel = always >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' newsletter ' ) . hasError ( ' required ' ) } " id = "newsletter" name = "newsletter" formControlName = "newsletter" >
< mat-label for = "userImporter" class = "control-mat-label" > User Importer< / mat-label >
< small * ngIf = "form.get('newsletter').hasError('required')" class = "error-text" > The Newsletter is required< / small >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' userImporter ' ) . hasError ( ' required ' ) } " id = "userImporter" name = "userImporter" formControlName = "userImporter" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' newsletter ' ) ? . value ) " > Test< / button >
< small * ngIf = "form.get('userImporter').hasError('required')" class = "error-text" > The User Importer is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' userImporter ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox" >
< label for = "userImporter" class = "control-label" > Issue Purge/Delete< / label >
< mat-form-field appearance = "outline" floatLabel = always >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' issuesPurge ' ) . hasError ( ' required ' ) } " id = "issuesPurge" name = "issuesPurge" formControlName = "issuesPurge" >
< mat-label for = "userImporter" class = "control-mat-label" > Newsletter< / mat-label >
< small * ngIf = "form.get('issuesPurge').hasError('required')" class = "error-text" > The Issues Purge is required< / small >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' newsletter ' ) . hasError ( ' required ' ) } " id = "newsletter" name = "newsletter" formControlName = "newsletter" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' issuesPurge ' ) ? . value ) " > Test< / button >
< small * ngIf = "form.get('newsletter').hasError('required')" class = "error-text" > The Newsletter is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' newsletter ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox" >
< label for = "userImporter" class = "control-label" > Media Data Refresh< / label >
< mat-form-field appearance = "outline" floatLabel = always >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' mediaDatabaseRefresh ' ) . hasError ( ' required ' ) } " id = "mediaDatabaseRefresh" name = "mediaDatabaseRefresh" formControlName = "mediaDatabaseRefresh" >
< mat-label for = "userImporter" class = "control-mat-label" > Issue Purge/Delete< / mat-label >
< small * ngIf = "form.get('mediaDatabaseRefresh').hasError('required')" class = "error-text" > The Media Database Refresh is required< / small >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' issuesPurge ' ) . hasError ( ' required ' ) } " id = "issuesPurge" name = "issuesPurge" formControlName = "issuesPurge" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' mediaDatabaseRefresh ' ) ? . value ) " > Test< / button >
< small * ngIf = "form.get('issuesPurge').hasError('required')" class = "error-text" > The Issues Purge is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' issuesPurge ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox" >
< label for = "userImporter" class = "control-label" > Auto Available Request Deletion< / label >
< mat-form-field appearance = "outline" floatLabel = always >
< input type = "text" class = "form-control form-control-custom" [ ngClass ] = " { ' form-error ' : form . get ( ' autoDeleteRequests ' ) . hasError ( ' required ' ) } " id = "autoDeleteRequests" name = "autoDeleteRequests" formControlName = "autoDeleteRequests" >
< mat-label for = "userImporter" class = "control-mat-label" > Media Data Refresh< / mat-label >
< small * ngIf = "form.get('autoDeleteRequests').hasError('required')" class = "error-text" > Auto Available Request Deletion is required< / small >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' mediaDatabaseRefresh ' ) . hasError ( ' required ' ) } " id = "mediaDatabaseRefresh" name = "mediaDatabaseRefresh" formControlName = "mediaDatabaseRefresh" >
< button type = "button" class = "btn btn-sm btn-primary-outline" ( click ) = " testCron ( form . get ( ' autoDeleteRequests ' ) ? . value ) " > Test< / button >
< small * ngIf = "form.get('mediaDatabaseRefresh').hasError('required')" class = "error-text" > The Media Database Refresh is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' mediaDatabaseRefresh ' ) ? . value ) " > Test< / button >
< / div >
< div class = "form-group cronBox" >
< mat-form-field appearance = "outline" floatLabel = always >
< mat-label for = "userImporter" class = "control-mat-label" > Auto Available Request Deletion< / mat-label >
< input type = "text" matInput [ ngClass ] = " { ' form-error ' : form . get ( ' autoDeleteRequests ' ) . hasError ( ' required ' ) } " id = "autoDeleteRequests" name = "autoDeleteRequests" formControlName = "autoDeleteRequests" >
< small * ngIf = "form.get('autoDeleteRequests').hasError('required')" class = "error-text" > Auto Available Request Deletion is required< / small > < / mat-form-field >
< button mat-raised-button type = "button" class = "btn btn-sm btn-primary-outline cronbtn" ( click ) = " testCron ( form . get ( ' autoDeleteRequests ' ) ? . value ) " > Test< / button >
< / div >
< / div >
< / div >
< / div >
< div class = "form-group" >
< div class = "form-group cronBox ">
< div >
< div >
< button type = "submit" [ disabled ] = " form . invalid " class = "btn btn-primary-outline" > Submit< / button >
< button mat-raised-button type = "submit" [ disabled ] = " form . invalid " class = "mat-focus-indicator mat-raised-button mat-button-base mat-accent" > Submit< / button >
< / div >
< / div >
< / div >
< / div >
< / form >
< / form >