You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ombi/src/Ombi/ClientApp/src/app/settings/settings.module.ts

231 lines
10 KiB

import {
CouchPotatoService,
EmbyService,
FileDownloadService,
IssuesService,
JellyfinService,
JobService,
LidarrService,
MobileService,
NotificationMessageService,
PlexService,
RadarrService,
RequestRetryService,
SonarrService,
SystemService,
TesterService,
TheMovieDbService,
ValidationService
} from "../services";
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
import { RouterModule, Routes } from "@angular/router";
import { AboutComponent } from "./about/about.component";
import { AuthGuard } from "../auth/auth.guard";
import { AuthService } from "../auth/auth.service";
import { AuthenticationComponent } from "./authentication/authentication.component";
import {AutoCompleteModule} from "primeng/autocomplete";
import {CalendarModule} from "primeng/calendar";
import { ClipboardModule } from "ngx-clipboard";
import { CloudMobileComponent } from "./notifications/cloudmobile.coponent";
import { CloudMobileService } from "../services/cloudmobile.service";
import { CommonModule } from "@angular/common";
import { CouchPotatoComponent } from "./couchpotato/couchpotato.component";
import { CustomizationComponent } from "./customization/customization.component";
import {DialogModule} from "primeng/dialog";
import { DiscordComponent } from "./notifications/discord.component";
import { DogNzbComponent } from "./dognzb/dognzb.component";
import { EmailNotificationComponent } from "./notifications/emailnotification.component";
import { EmbyComponent } from "./emby/emby.component";
import { FailedRequestsComponent } from "./failedrequests/failedrequests.component";
import { FeaturesComponent } from "./features/features.component";
import { GotifyComponent } from "./notifications/gotify.component";
import { HubService } from "../services/hub.service";
import {InputSwitchModule} from "primeng/inputswitch";
import {InputTextModule} from "primeng/inputtext";
import { IssuesComponent } from "./issues/issues.component";
import { JellyfinComponent } from "./jellyfin/jellyfin.component";
import { JobsComponent } from "./jobs/jobs.component";
import { LandingPageComponent } from "./landingpage/landingpage.component";
import { LidarrComponent } from "./lidarr/lidarr.component";
import { LogsComponent } from "./logs/logs.component";
import { MassEmailComponent } from "./massemail/massemail.component";
import { MatDialogActions, MatDialogModule } from "@angular/material/dialog";
import { MatMenuModule } from "@angular/material/menu";
import { MattermostComponent } from "./notifications/mattermost.component";
import {MenuModule} from "primeng/menu";
import { MobileComponent } from "./notifications/mobile.component";
import { NewsletterComponent } from "./notifications/newsletter.component";
import { NgModule } from "@angular/core";
import { NotificationTemplate } from "./notifications/notificationtemplate.component";
import { OmbiComponent } from "./ombi/ombi.component";
import { PipeModule } from "../pipes/pipe.module";
import { PlexComponent } from "./plex/plex.component";
import { PushbulletComponent } from "./notifications/pushbullet.component";
import { PushoverComponent } from "./notifications/pushover.component";
import { RadarrComponent } from "./radarr/radarr.component";
import { RadarrFormComponent } from "./radarr/components/radarr-form.component";
import {RadioButtonModule} from "primeng/radiobutton";
import { SettingsMenuComponent } from "./settingsmenu.component";
import { SharedModule } from "../shared/shared.module";
import { SickRageComponent } from "./sickrage/sickrage.component";
import { SlackComponent } from "./notifications/slack.component";
import { SonarrComponent } from "./sonarr/sonarr.component";
import { TelegramComponent } from "./notifications/telegram.component";
import { TheMovieDbComponent } from "./themoviedb/themoviedb.component";
import {TooltipModule} from "primeng/tooltip";
import { TwilioComponent } from "./notifications/twilio/twilio.component";
import { UpdateComponent } from "./update/update.component";
import { UpdateDialogComponent } from "./about/update-dialog.component";
import { UpdateService } from "../services/update.service";
import { UserManagementComponent } from "./usermanagement/usermanagement.component";
import { VoteComponent } from "./vote/vote.component";
import { WebhookComponent } from "./notifications/webhook.component";
import { WhatsAppComponent } from "./notifications/twilio/whatsapp.component";
import { WikiComponent } from "./wiki.component";
import { PlexWatchlistComponent } from "./plex/components/watchlist/plex-watchlist.component";
import { PlexFormComponent } from "./plex/components/plex-form/plex-form.component";
import { PlexFormFieldComponent } from "./plex/components/form-field/plex-form-field.component";
import { PlexServerDialogComponent } from "./plex/components/plex-server-dialog/plex-server-dialog.component";
const routes: Routes = [
{ path: "Ombi", component: OmbiComponent, canActivate: [AuthGuard] },
{ path: "About", component: AboutComponent, canActivate: [AuthGuard] },
{ path: "Plex", component: PlexComponent, canActivate: [AuthGuard] },
{ path: "Emby", component: EmbyComponent, canActivate: [AuthGuard] },
{ path: "Jellyfin", component: JellyfinComponent, canActivate: [AuthGuard] },
{ path: "Sonarr", component: SonarrComponent, canActivate: [AuthGuard] },
{ path: "Radarr", component: RadarrComponent, canActivate: [AuthGuard] },
{ path: "LandingPage", component: LandingPageComponent, canActivate: [AuthGuard] },
{ path: "Customization", component: CustomizationComponent, canActivate: [AuthGuard] },
{ path: "Email", component: EmailNotificationComponent, canActivate: [AuthGuard] },
{ path: "Discord", component: DiscordComponent, canActivate: [AuthGuard] },
{ path: "Slack", component: SlackComponent, canActivate: [AuthGuard] },
{ path: "Pushover", component: PushoverComponent, canActivate: [AuthGuard] },
{ path: "Pushbullet", component: PushbulletComponent, canActivate: [AuthGuard] },
{ path: "Gotify", component: GotifyComponent, canActivate: [AuthGuard] },
{ path: "Webhook", component: WebhookComponent, canActivate: [AuthGuard] },
{ path: "Mattermost", component: MattermostComponent, canActivate: [AuthGuard] },
{ path: "Twilio", component: TwilioComponent, canActivate: [AuthGuard] },
{ path: "UserManagement", component: UserManagementComponent, canActivate: [AuthGuard] },
{ path: "Update", component: UpdateComponent, canActivate: [AuthGuard] },
{ path: "CouchPotato", component: CouchPotatoComponent, canActivate: [AuthGuard] },
{ path: "DogNzb", component: DogNzbComponent, canActivate: [AuthGuard] },
{ path: "Telegram", component: TelegramComponent, canActivate: [AuthGuard] },
{ path: "Jobs", component: JobsComponent, canActivate: [AuthGuard] },
{ path: "SickRage", component: SickRageComponent, canActivate: [AuthGuard] },
{ path: "Issues", component: IssuesComponent, canActivate: [AuthGuard] },
{ path: "Authentication", component: AuthenticationComponent, canActivate: [AuthGuard] },
{ path: "Mobile", component: MobileComponent, canActivate: [AuthGuard] },
{ path: "MassEmail", component: MassEmailComponent, canActivate: [AuthGuard] },
{ path: "Newsletter", component: NewsletterComponent, canActivate: [AuthGuard] },
{ path: "Lidarr", component: LidarrComponent, canActivate: [AuthGuard] },
{ path: "Vote", component: VoteComponent, canActivate: [AuthGuard] },
{ path: "TheMovieDb", component: TheMovieDbComponent, canActivate: [AuthGuard] },
{ path: "FailedRequests", component: FailedRequestsComponent, canActivate: [AuthGuard] },
{ path: "Logs", component: LogsComponent, canActivate: [AuthGuard] },
{ path: "CloudMobile", component: CloudMobileComponent, canActivate: [AuthGuard] },
{ path: "Features", component: FeaturesComponent, canActivate: [AuthGuard] },
];
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule,
RouterModule.forChild(routes),
MenuModule,
InputSwitchModule,
InputTextModule,
TooltipModule,
AutoCompleteModule,
CalendarModule,
// TagInputModule,
ClipboardModule,
PipeModule,
RadioButtonModule,
DialogModule,
SharedModule,
MatMenuModule,
MatDialogModule,
],
declarations: [
SettingsMenuComponent,
OmbiComponent,
PlexComponent,
EmbyComponent,
JellyfinComponent,
JobsComponent,
LandingPageComponent,
CustomizationComponent,
DiscordComponent,
SonarrComponent,
SlackComponent,
RadarrComponent,
RadarrFormComponent,
EmailNotificationComponent,
NotificationTemplate,
PushoverComponent,
MattermostComponent,
PushbulletComponent,
GotifyComponent,
WebhookComponent,
UserManagementComponent,
UpdateComponent,
AboutComponent,
WikiComponent,
CouchPotatoComponent,
DogNzbComponent,
SickRageComponent,
TelegramComponent,
IssuesComponent,
AuthenticationComponent,
MobileComponent,
MassEmailComponent,
NewsletterComponent,
LidarrComponent,
VoteComponent,
TheMovieDbComponent,
FailedRequestsComponent,
LogsComponent,
TwilioComponent,
WhatsAppComponent,
FeaturesComponent,
CloudMobileComponent,
UpdateDialogComponent,
PlexWatchlistComponent,
PlexFormComponent,
PlexFormFieldComponent,
PlexServerDialogComponent,
],
exports: [
RouterModule,
],
providers: [
SonarrService,
AuthService,
RadarrService,
AuthGuard,
ValidationService,
TesterService,
JobService,
CouchPotatoService,
IssuesService,
PlexService,
EmbyService,
JellyfinService,
MobileService,
NotificationMessageService,
LidarrService,
RequestRetryService,
HubService,
SystemService,
FileDownloadService,
TheMovieDbService,
CloudMobileService,
UpdateService,
],
})
export class SettingsModule { }