From 5c5bcea2e64daf0a66a796c89432732ed27308d2 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 7 Oct 2022 15:26:53 +0200 Subject: [PATCH] Refactor form reactive --- .../contact-admin-modal.component.ts | 4 +- .../edit-custom-config.component.ts | 8 +- .../following-list/follow-modal.component.ts | 4 +- .../users/user-edit/user-create.component.ts | 4 +- .../user-edit/user-password.component.ts | 4 +- .../users/user-edit/user-update.component.ts | 4 +- .../plugin-show-installed.component.ts | 4 +- client/src/app/+login/login.component.ts | 5 +- .../video-channel-create.component.ts | 4 +- .../video-channel-update.component.ts | 4 +- .../my-account-change-email.component.ts | 4 +- .../my-account-change-password.component.ts | 4 +- .../my-account-profile.component.ts | 4 +- .../my-accept-ownership.component.ts | 4 +- .../video-channel-sync-edit.component.ts | 4 +- .../my-video-playlist-create.component.ts | 4 +- .../my-video-playlist-update.component.ts | 4 +- .../video-change-ownership.component.ts | 4 +- .../reset-password.component.ts | 4 +- .../steps/register-step-channel.component.ts | 4 +- .../steps/register-step-terms.component.ts | 8 +- .../steps/register-step-user.component.ts | 4 +- ...verify-account-ask-send-email.component.ts | 4 +- .../edit/video-studio-edit.component.ts | 4 +- .../video-caption-add-modal.component.ts | 4 +- ...eo-caption-edit-modal-content.component.ts | 7 +- .../video-go-live.component.ts | 4 +- .../video-import-torrent.component.ts | 4 +- .../video-import-url.component.ts | 4 +- .../video-upload.component.ts | 4 +- .../+video-edit/video-update.component.ts | 4 +- .../comment/video-comment-add.component.ts | 4 +- .../abuse-message-modal.component.ts | 4 +- .../moderation-comment-modal.component.ts | 4 +- .../shared-forms/form-reactive.service.ts | 2 +- .../app/shared/shared-forms/form-reactive.ts | 82 ++----------------- .../batch-domains-modal.component.ts | 4 +- .../report-modals/account-report.component.ts | 4 +- .../report-modals/comment-report.component.ts | 4 +- .../report-modals/video-report.component.ts | 4 +- .../user-ban-modal.component.ts | 4 +- .../video-block.component.ts | 4 +- .../user-interface-settings.component.ts | 4 +- .../user-video-settings.component.ts | 4 +- .../remote-subscribe.component.ts | 4 +- .../video-add-to-playlist.component.ts | 4 +- 46 files changed, 101 insertions(+), 171 deletions(-) diff --git a/client/src/app/+about/about-instance/contact-admin-modal.component.ts b/client/src/app/+about/about-instance/contact-admin-modal.component.ts index fab9cfc4b..0e2bf51e8 100644 --- a/client/src/app/+about/about-instance/contact-admin-modal.component.ts +++ b/client/src/app/+about/about-instance/contact-admin-modal.component.ts @@ -7,7 +7,7 @@ import { FROM_NAME_VALIDATOR, SUBJECT_VALIDATOR } from '@app/shared/form-validators/instance-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { InstanceService } from '@app/shared/shared-instance' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' @@ -32,7 +32,7 @@ export class ContactAdminModalComponent extends FormReactive implements OnInit { private serverConfig: HTMLServerConfig constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private router: Router, private modalService: NgbModal, private instanceService: InstanceService, diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts index 545e37857..168f4702c 100644 --- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts +++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts @@ -18,15 +18,15 @@ import { MAX_INSTANCE_LIVES_VALIDATOR, MAX_LIVE_DURATION_VALIDATOR, MAX_USER_LIVES_VALIDATOR, + MAX_VIDEO_CHANNELS_PER_USER_VALIDATOR, SEARCH_INDEX_URL_VALIDATOR, SERVICES_TWITTER_USERNAME_VALIDATOR, SIGNUP_LIMIT_VALIDATOR, SIGNUP_MINIMUM_AGE_VALIDATOR, - TRANSCODING_THREADS_VALIDATOR, - MAX_VIDEO_CHANNELS_PER_USER_VALIDATOR + TRANSCODING_THREADS_VALIDATOR } from '@app/shared/form-validators/custom-config-validators' import { USER_VIDEO_QUOTA_DAILY_VALIDATOR, USER_VIDEO_QUOTA_VALIDATOR } from '@app/shared/form-validators/user-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { CustomPageService } from '@app/shared/shared-main/custom-page' import { CustomConfig, CustomPage, HTMLServerConfig } from '@shared/models' import { EditConfigurationService } from './edit-configuration.service' @@ -52,9 +52,9 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit { categoryItems: SelectOptionsItem[] = [] constructor ( + protected formReactiveService: FormReactiveService, private router: Router, private route: ActivatedRoute, - protected formValidatorService: FormValidatorService, private notifier: Notifier, private configService: ConfigService, private customPage: CustomPageService, diff --git a/client/src/app/+admin/follows/following-list/follow-modal.component.ts b/client/src/app/+admin/follows/following-list/follow-modal.component.ts index 07cc75d77..8f74e82a6 100644 --- a/client/src/app/+admin/follows/following-list/follow-modal.component.ts +++ b/client/src/app/+admin/follows/following-list/follow-modal.component.ts @@ -2,7 +2,7 @@ import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/cor import { Notifier } from '@app/core' import { prepareIcu } from '@app/helpers' import { splitAndGetNotEmpty, UNIQUE_HOSTS_OR_HANDLE_VALIDATOR } from '@app/shared/form-validators/host-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { InstanceFollowService } from '@app/shared/shared-instance' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' @@ -22,7 +22,7 @@ export class FollowModalComponent extends FormReactive implements OnInit { private openedModal: NgbModalRef constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private modalService: NgbModal, private followService: InstanceFollowService, private notifier: Notifier diff --git a/client/src/app/+admin/overview/users/user-edit/user-create.component.ts b/client/src/app/+admin/overview/users/user-edit/user-create.component.ts index 1713e06ce..0627aa887 100644 --- a/client/src/app/+admin/overview/users/user-edit/user-create.component.ts +++ b/client/src/app/+admin/overview/users/user-edit/user-create.component.ts @@ -12,7 +12,7 @@ import { USER_VIDEO_QUOTA_DAILY_VALIDATOR, USER_VIDEO_QUOTA_VALIDATOR } from '@app/shared/form-validators/user-validators' -import { FormValidatorService } from '@app/shared/shared-forms' +import { FormReactiveService } from '@app/shared/shared-forms' import { UserAdminService } from '@app/shared/shared-users' import { UserCreate, UserRole } from '@shared/models' import { UserEdit } from './user-edit' @@ -27,7 +27,7 @@ export class UserCreateComponent extends UserEdit implements OnInit { constructor ( protected serverService: ServerService, - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, protected configService: ConfigService, protected screenService: ScreenService, protected auth: AuthService, diff --git a/client/src/app/+admin/overview/users/user-edit/user-password.component.ts b/client/src/app/+admin/overview/users/user-edit/user-password.component.ts index 8999d1f00..d6616e077 100644 --- a/client/src/app/+admin/overview/users/user-edit/user-password.component.ts +++ b/client/src/app/+admin/overview/users/user-edit/user-password.component.ts @@ -1,7 +1,7 @@ import { Component, Input, OnInit } from '@angular/core' import { Notifier } from '@app/core' import { USER_PASSWORD_VALIDATOR } from '@app/shared/form-validators/user-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { UserAdminService } from '@app/shared/shared-users' import { UserUpdate } from '@shared/models' @@ -18,7 +18,7 @@ export class UserPasswordComponent extends FormReactive implements OnInit { @Input() userId: number constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private notifier: Notifier, private userAdminService: UserAdminService ) { diff --git a/client/src/app/+admin/overview/users/user-edit/user-update.component.ts b/client/src/app/+admin/overview/users/user-edit/user-update.component.ts index 1482a1902..71212b19c 100644 --- a/client/src/app/+admin/overview/users/user-edit/user-update.component.ts +++ b/client/src/app/+admin/overview/users/user-edit/user-update.component.ts @@ -9,7 +9,7 @@ import { USER_VIDEO_QUOTA_DAILY_VALIDATOR, USER_VIDEO_QUOTA_VALIDATOR } from '@app/shared/form-validators/user-validators' -import { FormValidatorService } from '@app/shared/shared-forms' +import { FormReactiveService } from '@app/shared/shared-forms' import { TwoFactorService, UserAdminService } from '@app/shared/shared-users' import { User as UserType, UserAdminFlag, UserRole, UserUpdate } from '@shared/models' import { UserEdit } from './user-edit' @@ -25,7 +25,7 @@ export class UserUpdateComponent extends UserEdit implements OnInit, OnDestroy { private paramsSub: Subscription constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, protected serverService: ServerService, protected configService: ConfigService, protected screenService: ScreenService, diff --git a/client/src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.ts b/client/src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.ts index ec02cfcd9..b1a41567e 100644 --- a/client/src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.ts +++ b/client/src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.ts @@ -4,7 +4,7 @@ import { Component, OnDestroy, OnInit } from '@angular/core' import { ActivatedRoute } from '@angular/router' import { HooksService, Notifier, PluginService } from '@app/core' import { BuildFormArgument } from '@app/shared/form-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { PeerTubePlugin, RegisterServerSettingOptions } from '@shared/models' import { PluginApiService } from '../shared/plugin-api.service' @@ -22,7 +22,7 @@ export class PluginShowInstalledComponent extends FormReactive implements OnInit private npmName: string constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private pluginService: PluginService, private pluginAPIService: PluginApiService, private notifier: Notifier, diff --git a/client/src/app/+login/login.component.ts b/client/src/app/+login/login.component.ts index 9095e43a7..c1705807f 100644 --- a/client/src/app/+login/login.component.ts +++ b/client/src/app/+login/login.component.ts @@ -1,11 +1,10 @@ - import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core' import { ActivatedRoute, Router } from '@angular/router' import { AuthService, Notifier, RedirectService, SessionStorageService, UserService } from '@app/core' import { HooksService } from '@app/core/plugins/hooks.service' import { LOGIN_PASSWORD_VALIDATOR, LOGIN_USERNAME_VALIDATOR } from '@app/shared/form-validators/login-validators' import { USER_OTP_TOKEN_VALIDATOR } from '@app/shared/form-validators/user-validators' -import { FormReactive, FormValidatorService, InputTextComponent } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService, InputTextComponent } from '@app/shared/shared-forms' import { InstanceAboutAccordionComponent } from '@app/shared/shared-instance' import { NgbAccordion, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' import { PluginsManager } from '@root-helpers/plugins-manager' @@ -45,7 +44,7 @@ export class LoginComponent extends FormReactive implements OnInit, AfterViewIni private serverConfig: ServerConfig constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private route: ActivatedRoute, private modalService: NgbModal, private authService: AuthService, diff --git a/client/src/app/+manage/video-channel-edit/video-channel-create.component.ts b/client/src/app/+manage/video-channel-edit/video-channel-create.component.ts index 8211451a4..372066890 100644 --- a/client/src/app/+manage/video-channel-edit/video-channel-create.component.ts +++ b/client/src/app/+manage/video-channel-edit/video-channel-create.component.ts @@ -9,7 +9,7 @@ import { VIDEO_CHANNEL_NAME_VALIDATOR, VIDEO_CHANNEL_SUPPORT_VALIDATOR } from '@app/shared/form-validators/video-channel-validators' -import { FormValidatorService } from '@app/shared/shared-forms' +import { FormReactiveService } from '@app/shared/shared-forms' import { VideoChannel, VideoChannelService } from '@app/shared/shared-main' import { HttpStatusCode, VideoChannelCreate } from '@shared/models' import { VideoChannelEdit } from './video-channel-edit' @@ -26,7 +26,7 @@ export class VideoChannelCreateComponent extends VideoChannelEdit implements OnI private banner: FormData constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private authService: AuthService, private notifier: Notifier, private router: Router, diff --git a/client/src/app/+manage/video-channel-edit/video-channel-update.component.ts b/client/src/app/+manage/video-channel-edit/video-channel-update.component.ts index 7e8d6ffe6..32f6d650d 100644 --- a/client/src/app/+manage/video-channel-edit/video-channel-update.component.ts +++ b/client/src/app/+manage/video-channel-edit/video-channel-update.component.ts @@ -9,7 +9,7 @@ import { VIDEO_CHANNEL_DISPLAY_NAME_VALIDATOR, VIDEO_CHANNEL_SUPPORT_VALIDATOR } from '@app/shared/form-validators/video-channel-validators' -import { FormValidatorService } from '@app/shared/shared-forms' +import { FormReactiveService } from '@app/shared/shared-forms' import { VideoChannel, VideoChannelService } from '@app/shared/shared-main' import { HTMLServerConfig, VideoChannelUpdate } from '@shared/models' import { VideoChannelEdit } from './video-channel-edit' @@ -28,7 +28,7 @@ export class VideoChannelUpdateComponent extends VideoChannelEdit implements OnI private serverConfig: HTMLServerConfig constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private authService: AuthService, private notifier: Notifier, private route: ActivatedRoute, diff --git a/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts b/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts index 9e6b8e21d..235fbec4a 100644 --- a/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts +++ b/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts @@ -3,7 +3,7 @@ import { tap } from 'rxjs/operators' import { Component, OnInit } from '@angular/core' import { AuthService, ServerService, UserService } from '@app/core' import { USER_EMAIL_VALIDATOR, USER_PASSWORD_VALIDATOR } from '@app/shared/form-validators/user-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { HttpStatusCode, User } from '@shared/models' @Component({ @@ -17,7 +17,7 @@ export class MyAccountChangeEmailComponent extends FormReactive implements OnIni user: User = null constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private authService: AuthService, private userService: UserService, private serverService: ServerService diff --git a/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.ts b/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.ts index dd405de33..805d50070 100644 --- a/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.ts +++ b/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.ts @@ -6,7 +6,7 @@ import { USER_EXISTING_PASSWORD_VALIDATOR, USER_PASSWORD_VALIDATOR } from '@app/shared/form-validators/user-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { HttpStatusCode, User } from '@shared/models' @Component({ @@ -19,7 +19,7 @@ export class MyAccountChangePasswordComponent extends FormReactive implements On user: User = null constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private notifier: Notifier, private authService: AuthService, private userService: UserService diff --git a/client/src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.ts b/client/src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.ts index f395ad73f..8621eb7aa 100644 --- a/client/src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.ts +++ b/client/src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.ts @@ -2,7 +2,7 @@ import { Subject } from 'rxjs' import { Component, Input, OnInit } from '@angular/core' import { Notifier, User, UserService } from '@app/core' import { USER_DESCRIPTION_VALIDATOR, USER_DISPLAY_NAME_REQUIRED_VALIDATOR } from '@app/shared/form-validators/user-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' @Component({ selector: 'my-account-profile', @@ -16,7 +16,7 @@ export class MyAccountProfileComponent extends FormReactive implements OnInit { error: string = null constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private notifier: Notifier, private userService: UserService ) { diff --git a/client/src/app/+my-library/my-ownership/my-accept-ownership/my-accept-ownership.component.ts b/client/src/app/+my-library/my-ownership/my-accept-ownership/my-accept-ownership.component.ts index 8ead237c7..ca7eb680b 100644 --- a/client/src/app/+my-library/my-ownership/my-accept-ownership/my-accept-ownership.component.ts +++ b/client/src/app/+my-library/my-ownership/my-accept-ownership/my-accept-ownership.component.ts @@ -3,7 +3,7 @@ import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from ' import { AuthService, Notifier } from '@app/core' import { listUserChannelsForSelect } from '@app/helpers' import { OWNERSHIP_CHANGE_CHANNEL_VALIDATOR } from '@app/shared/form-validators/video-ownership-change-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { VideoOwnershipService } from '@app/shared/shared-main' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { VideoChangeOwnership } from '@shared/models' @@ -24,7 +24,7 @@ export class MyAcceptOwnershipComponent extends FormReactive implements OnInit { error: string = null constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private videoOwnershipService: VideoOwnershipService, private notifier: Notifier, private authService: AuthService, diff --git a/client/src/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.ts b/client/src/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.ts index 9ceb6dfd1..a14ab5b92 100644 --- a/client/src/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.ts +++ b/client/src/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.ts @@ -5,7 +5,7 @@ import { Router } from '@angular/router' import { AuthService, Notifier } from '@app/core' import { listUserChannelsForSelect } from '@app/helpers' import { VIDEO_CHANNEL_EXTERNAL_URL_VALIDATOR } from '@app/shared/form-validators/video-channel-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { VideoChannelService, VideoChannelSyncService } from '@app/shared/shared-main' import { VideoChannelSyncCreate } from '@shared/models/videos' @@ -20,7 +20,7 @@ export class VideoChannelSyncEditComponent extends FormReactive implements OnIni existingVideosStrategy: string constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private authService: AuthService, private router: Router, private notifier: Notifier, diff --git a/client/src/app/+my-library/my-video-playlists/my-video-playlist-create.component.ts b/client/src/app/+my-library/my-video-playlists/my-video-playlist-create.component.ts index 9eb3e9888..63f72df3f 100644 --- a/client/src/app/+my-library/my-video-playlists/my-video-playlist-create.component.ts +++ b/client/src/app/+my-library/my-video-playlists/my-video-playlist-create.component.ts @@ -9,7 +9,7 @@ import { VIDEO_PLAYLIST_DISPLAY_NAME_VALIDATOR, VIDEO_PLAYLIST_PRIVACY_VALIDATOR } from '@app/shared/form-validators/video-playlist-validators' -import { FormValidatorService } from '@app/shared/shared-forms' +import { FormReactiveService } from '@app/shared/shared-forms' import { VideoPlaylistService } from '@app/shared/shared-video-playlist' import { VideoPlaylistCreate } from '@shared/models/videos/playlist/video-playlist-create.model' import { VideoPlaylistPrivacy } from '@shared/models/videos/playlist/video-playlist-privacy.model' @@ -23,7 +23,7 @@ export class MyVideoPlaylistCreateComponent extends MyVideoPlaylistEdit implemen error: string constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private authService: AuthService, private notifier: Notifier, private router: Router, diff --git a/client/src/app/+my-library/my-video-playlists/my-video-playlist-update.component.ts b/client/src/app/+my-library/my-video-playlists/my-video-playlist-update.component.ts index ef7ba0018..bbe8a5f80 100644 --- a/client/src/app/+my-library/my-video-playlists/my-video-playlist-update.component.ts +++ b/client/src/app/+my-library/my-video-playlists/my-video-playlist-update.component.ts @@ -11,7 +11,7 @@ import { VIDEO_PLAYLIST_DISPLAY_NAME_VALIDATOR, VIDEO_PLAYLIST_PRIVACY_VALIDATOR } from '@app/shared/form-validators/video-playlist-validators' -import { FormValidatorService } from '@app/shared/shared-forms' +import { FormReactiveService } from '@app/shared/shared-forms' import { VideoPlaylist, VideoPlaylistService } from '@app/shared/shared-video-playlist' import { VideoPlaylistUpdate } from '@shared/models' import { MyVideoPlaylistEdit } from './my-video-playlist-edit' @@ -27,7 +27,7 @@ export class MyVideoPlaylistUpdateComponent extends MyVideoPlaylistEdit implemen private paramsSub: Subscription constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private authService: AuthService, private notifier: Notifier, private router: Router, diff --git a/client/src/app/+my-library/my-videos/modals/video-change-ownership.component.ts b/client/src/app/+my-library/my-videos/modals/video-change-ownership.component.ts index 960c9a4f7..72187e893 100644 --- a/client/src/app/+my-library/my-videos/modals/video-change-ownership.component.ts +++ b/client/src/app/+my-library/my-videos/modals/video-change-ownership.component.ts @@ -1,7 +1,7 @@ import { Component, ElementRef, OnInit, ViewChild } from '@angular/core' import { Notifier, UserService } from '@app/core' import { OWNERSHIP_CHANGE_USERNAME_VALIDATOR } from '@app/shared/form-validators/video-ownership-change-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { Video, VideoOwnershipService } from '@app/shared/shared-main' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' @@ -20,7 +20,7 @@ export class VideoChangeOwnershipComponent extends FormReactive implements OnIni private video: Video | undefined = undefined constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private videoOwnershipService: VideoOwnershipService, private notifier: Notifier, private userService: UserService, diff --git a/client/src/app/+reset-password/reset-password.component.ts b/client/src/app/+reset-password/reset-password.component.ts index 11c5110fd..44216f978 100644 --- a/client/src/app/+reset-password/reset-password.component.ts +++ b/client/src/app/+reset-password/reset-password.component.ts @@ -3,7 +3,7 @@ import { ActivatedRoute, Router } from '@angular/router' import { Notifier, UserService } from '@app/core' import { RESET_PASSWORD_CONFIRM_VALIDATOR } from '@app/shared/form-validators/reset-password-validators' import { USER_PASSWORD_VALIDATOR } from '@app/shared/form-validators/user-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' @Component({ selector: 'my-login', @@ -16,7 +16,7 @@ export class ResetPasswordComponent extends FormReactive implements OnInit { private verificationString: string constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private userService: UserService, private notifier: Notifier, private router: Router, diff --git a/client/src/app/+signup/+register/steps/register-step-channel.component.ts b/client/src/app/+signup/+register/steps/register-step-channel.component.ts index c10b568ba..df92c5145 100644 --- a/client/src/app/+signup/+register/steps/register-step-channel.component.ts +++ b/client/src/app/+signup/+register/steps/register-step-channel.component.ts @@ -3,7 +3,7 @@ import { pairwise } from 'rxjs/operators' import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core' import { FormGroup } from '@angular/forms' import { VIDEO_CHANNEL_DISPLAY_NAME_VALIDATOR, VIDEO_CHANNEL_NAME_VALIDATOR } from '@app/shared/form-validators/video-channel-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { UserSignupService } from '@app/shared/shared-users' @Component({ @@ -19,7 +19,7 @@ export class RegisterStepChannelComponent extends FormReactive implements OnInit @Output() formBuilt = new EventEmitter() constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private userSignupService: UserSignupService ) { super() diff --git a/client/src/app/+signup/+register/steps/register-step-terms.component.ts b/client/src/app/+signup/+register/steps/register-step-terms.component.ts index 87d16696e..2df963b30 100644 --- a/client/src/app/+signup/+register/steps/register-step-terms.component.ts +++ b/client/src/app/+signup/+register/steps/register-step-terms.component.ts @@ -1,9 +1,7 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core' import { FormGroup } from '@angular/forms' -import { - USER_TERMS_VALIDATOR -} from '@app/shared/form-validators/user-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { USER_TERMS_VALIDATOR } from '@app/shared/form-validators/user-validators' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' @Component({ selector: 'my-register-step-terms', @@ -19,7 +17,7 @@ export class RegisterStepTermsComponent extends FormReactive implements OnInit { @Output() codeOfConductClick = new EventEmitter() constructor ( - protected formValidatorService: FormValidatorService + protected formReactiveService: FormReactiveService ) { super() } diff --git a/client/src/app/+signup/+register/steps/register-step-user.component.ts b/client/src/app/+signup/+register/steps/register-step-user.component.ts index b89e38a28..822f8f5c5 100644 --- a/client/src/app/+signup/+register/steps/register-step-user.component.ts +++ b/client/src/app/+signup/+register/steps/register-step-user.component.ts @@ -8,7 +8,7 @@ import { USER_PASSWORD_VALIDATOR, USER_USERNAME_VALIDATOR } from '@app/shared/form-validators/user-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { UserSignupService } from '@app/shared/shared-users' @Component({ @@ -23,7 +23,7 @@ export class RegisterStepUserComponent extends FormReactive implements OnInit { @Output() formBuilt = new EventEmitter() constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private userSignupService: UserSignupService ) { super() diff --git a/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts b/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts index a0ed66a3a..06905f678 100644 --- a/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts +++ b/client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core' import { Notifier, RedirectService, ServerService } from '@app/core' import { USER_EMAIL_VALIDATOR } from '@app/shared/form-validators/user-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { UserSignupService } from '@app/shared/shared-users' @Component({ @@ -14,7 +14,7 @@ export class VerifyAccountAskSendEmailComponent extends FormReactive implements requiresEmailVerification = false constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private userSignupService: UserSignupService, private serverService: ServerService, private notifier: Notifier, diff --git a/client/src/app/+video-studio/edit/video-studio-edit.component.ts b/client/src/app/+video-studio/edit/video-studio-edit.component.ts index bf91c237a..dad083bf9 100644 --- a/client/src/app/+video-studio/edit/video-studio-edit.component.ts +++ b/client/src/app/+video-studio/edit/video-studio-edit.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core' import { ActivatedRoute, Router } from '@angular/router' import { ConfirmService, Notifier, ServerService } from '@app/core' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { VideoDetails } from '@app/shared/shared-main' import { LoadingBarService } from '@ngx-loading-bar/core' import { logger } from '@root-helpers/logger' @@ -20,7 +20,7 @@ export class VideoStudioEditComponent extends FormReactive implements OnInit { video: VideoDetails constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private serverService: ServerService, private notifier: Notifier, private router: Router, diff --git a/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.ts b/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.ts index 95d83b131..4ab2d42db 100644 --- a/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.ts +++ b/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.ts @@ -1,7 +1,7 @@ import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core' import { ServerService } from '@app/core' import { VIDEO_CAPTION_FILE_VALIDATOR, VIDEO_CAPTION_LANGUAGE_VALIDATOR } from '@app/shared/form-validators/video-captions-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { VideoCaptionEdit } from '@app/shared/shared-main' import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' import { HTMLServerConfig, VideoConstant } from '@shared/models' @@ -26,7 +26,7 @@ export class VideoCaptionAddModalComponent extends FormReactive implements OnIni private closingModal = false constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private modalService: NgbModal, private serverService: ServerService ) { diff --git a/client/src/app/+videos/+video-edit/shared/video-caption-edit-modal-content/video-caption-edit-modal-content.component.ts b/client/src/app/+videos/+video-edit/shared/video-caption-edit-modal-content/video-caption-edit-modal-content.component.ts index f33353d36..2cb470a24 100644 --- a/client/src/app/+videos/+video-edit/shared/video-caption-edit-modal-content/video-caption-edit-modal-content.component.ts +++ b/client/src/app/+videos/+video-edit/shared/video-caption-edit-modal-content/video-caption-edit-modal-content.component.ts @@ -1,8 +1,8 @@ import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core' import { VIDEO_CAPTION_FILE_CONTENT_VALIDATOR } from '@app/shared/form-validators/video-captions-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { VideoCaptionEdit, VideoCaptionService, VideoCaptionWithPathEdit } from '@app/shared/shared-main' -import { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap' +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap' import { HTMLServerConfig, VideoConstant } from '@shared/models' import { ServerService } from '../../../../core' @@ -29,8 +29,7 @@ export class VideoCaptionEditModalContentComponent extends FormReactive implemen constructor ( protected openedModal: NgbActiveModal, - protected formValidatorService: FormValidatorService, - private modalService: NgbModal, + protected formReactiveService: FormReactiveService, private videoCaptionService: VideoCaptionService, private serverService: ServerService ) { diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts index 344b99ea2..4f2276e8c 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts @@ -3,7 +3,7 @@ import { AfterViewInit, Component, EventEmitter, OnInit, Output } from '@angular import { Router } from '@angular/router' import { AuthService, CanComponentDeactivate, HooksService, Notifier, ServerService } from '@app/core' import { scrollToTop } from '@app/helpers' -import { FormValidatorService } from '@app/shared/shared-forms' +import { FormReactiveService } from '@app/shared/shared-forms' import { Video, VideoCaptionService, VideoEdit, VideoService } from '@app/shared/shared-main' import { LiveVideoService } from '@app/shared/shared-video-live' import { LoadingBarService } from '@ngx-loading-bar/core' @@ -39,7 +39,7 @@ export class VideoGoLiveComponent extends VideoSend implements OnInit, AfterView error: string constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, protected loadingBar: LoadingBarService, protected notifier: Notifier, protected authService: AuthService, diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts index 7b9531d27..4a1408a4a 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts @@ -3,7 +3,7 @@ import { AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, Vie import { Router } from '@angular/router' import { AuthService, CanComponentDeactivate, HooksService, Notifier, ServerService } from '@app/core' import { scrollToTop } from '@app/helpers' -import { FormValidatorService } from '@app/shared/shared-forms' +import { FormReactiveService } from '@app/shared/shared-forms' import { VideoCaptionService, VideoEdit, VideoImportService, VideoService } from '@app/shared/shared-main' import { LoadingBarService } from '@ngx-loading-bar/core' import { logger } from '@root-helpers/logger' @@ -35,7 +35,7 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Af error: string constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, protected loadingBar: LoadingBarService, protected notifier: Notifier, protected authService: AuthService, diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts index 422f0c643..502f3818e 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts @@ -4,7 +4,7 @@ import { AfterViewInit, Component, EventEmitter, OnInit, Output } from '@angular import { Router } from '@angular/router' import { AuthService, CanComponentDeactivate, HooksService, Notifier, ServerService } from '@app/core' import { scrollToTop } from '@app/helpers' -import { FormValidatorService } from '@app/shared/shared-forms' +import { FormReactiveService } from '@app/shared/shared-forms' import { VideoCaptionService, VideoEdit, VideoImportService, VideoService } from '@app/shared/shared-main' import { LoadingBarService } from '@ngx-loading-bar/core' import { logger } from '@root-helpers/logger' @@ -34,7 +34,7 @@ export class VideoImportUrlComponent extends VideoSend implements OnInit, AfterV error: string constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, protected loadingBar: LoadingBarService, protected notifier: Notifier, protected authService: AuthService, diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts index 19fba2a83..b0d846664 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts @@ -5,7 +5,7 @@ import { AfterViewInit, Component, ElementRef, EventEmitter, OnDestroy, OnInit, import { ActivatedRoute, Router } from '@angular/router' import { AuthService, CanComponentDeactivate, HooksService, MetaService, Notifier, ServerService, UserService } from '@app/core' import { genericUploadErrorHandler, scrollToTop } from '@app/helpers' -import { FormValidatorService } from '@app/shared/shared-forms' +import { FormReactiveService } from '@app/shared/shared-forms' import { BytesPipe, Video, VideoCaptionService, VideoEdit, VideoService } from '@app/shared/shared-main' import { LoadingBarService } from '@ngx-loading-bar/core' import { logger } from '@root-helpers/logger' @@ -60,7 +60,7 @@ export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy private uploadServiceSubscription: Subscription constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, protected loadingBar: LoadingBarService, protected notifier: Notifier, protected authService: AuthService, diff --git a/client/src/app/+videos/+video-edit/video-update.component.ts b/client/src/app/+videos/+video-edit/video-update.component.ts index ed17dff06..212971447 100644 --- a/client/src/app/+videos/+video-edit/video-update.component.ts +++ b/client/src/app/+videos/+video-edit/video-update.component.ts @@ -4,7 +4,7 @@ import { SelectChannelItem } from 'src/types/select-options-item.model' import { Component, HostListener, OnInit } from '@angular/core' import { ActivatedRoute, Router } from '@angular/router' import { Notifier } from '@app/core' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { Video, VideoCaptionEdit, VideoCaptionService, VideoDetails, VideoEdit, VideoService } from '@app/shared/shared-main' import { LiveVideoService } from '@app/shared/shared-video-live' import { LoadingBarService } from '@ngx-loading-bar/core' @@ -33,7 +33,7 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { private updateDone = false constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private route: ActivatedRoute, private router: Router, private notifier: Notifier, diff --git a/client/src/app/+videos/+video-watch/shared/comment/video-comment-add.component.ts b/client/src/app/+videos/+video-watch/shared/comment/video-comment-add.component.ts index 9f4a68736..9a9bfe710 100644 --- a/client/src/app/+videos/+video-watch/shared/comment/video-comment-add.component.ts +++ b/client/src/app/+videos/+video-watch/shared/comment/video-comment-add.component.ts @@ -16,7 +16,7 @@ import { import { Router } from '@angular/router' import { Notifier, User } from '@app/core' import { VIDEO_COMMENT_TEXT_VALIDATOR } from '@app/shared/form-validators/video-comment-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { Video } from '@app/shared/shared-main' import { VideoComment, VideoCommentService } from '@app/shared/shared-video-comment' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' @@ -48,7 +48,7 @@ export class VideoCommentAddComponent extends FormReactive implements OnChanges, private emojiMarkupList: { emoji: string, name: string }[] constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private notifier: Notifier, private videoCommentService: VideoCommentService, private modalService: NgbModal, diff --git a/client/src/app/shared/shared-abuse-list/abuse-message-modal.component.ts b/client/src/app/shared/shared-abuse-list/abuse-message-modal.component.ts index d24a5d58d..12d503f56 100644 --- a/client/src/app/shared/shared-abuse-list/abuse-message-modal.component.ts +++ b/client/src/app/shared/shared-abuse-list/abuse-message-modal.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core' import { AuthService, HtmlRendererService, Notifier } from '@app/core' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' import { logger } from '@root-helpers/logger' @@ -29,7 +29,7 @@ export class AbuseMessageModalComponent extends FormReactive implements OnInit { private abuse: UserAbuse constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private modalService: NgbModal, private htmlRenderer: HtmlRendererService, private auth: AuthService, diff --git a/client/src/app/shared/shared-abuse-list/moderation-comment-modal.component.ts b/client/src/app/shared/shared-abuse-list/moderation-comment-modal.component.ts index 2600da8da..4ad807d25 100644 --- a/client/src/app/shared/shared-abuse-list/moderation-comment-modal.component.ts +++ b/client/src/app/shared/shared-abuse-list/moderation-comment-modal.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core' import { Notifier } from '@app/core' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { AbuseService } from '@app/shared/shared-moderation' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' @@ -20,7 +20,7 @@ export class ModerationCommentModalComponent extends FormReactive implements OnI private openedModal: NgbModalRef constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private modalService: NgbModal, private notifier: Notifier, private abuseService: AbuseService diff --git a/client/src/app/shared/shared-forms/form-reactive.service.ts b/client/src/app/shared/shared-forms/form-reactive.service.ts index 69077eb07..f1b7e0ef2 100644 --- a/client/src/app/shared/shared-forms/form-reactive.service.ts +++ b/client/src/app/shared/shared-forms/form-reactive.service.ts @@ -56,7 +56,7 @@ export class FormReactiveService { } } - protected forceCheck (form: FormGroup, formErrors: any, validationMessages: FormReactiveValidationMessages) { + forceCheck (form: FormGroup, formErrors: any, validationMessages: FormReactiveValidationMessages) { this.onStatusChanged({ form, formErrors, validationMessages, onlyDirty: false }) } diff --git a/client/src/app/shared/shared-forms/form-reactive.ts b/client/src/app/shared/shared-forms/form-reactive.ts index acaeaba33..d1e7be802 100644 --- a/client/src/app/shared/shared-forms/form-reactive.ts +++ b/client/src/app/shared/shared-forms/form-reactive.ts @@ -1,11 +1,9 @@ -import { AbstractControl, FormGroup } from '@angular/forms' -import { wait } from '@root-helpers/utils' +import { FormGroup } from '@angular/forms' import { BuildFormArgument, BuildFormDefaultValues } from '../form-validators/form-validator.model' -import { FormReactiveErrors, FormReactiveValidationMessages } from './form-reactive.service' -import { FormValidatorService } from './form-validator.service' +import { FormReactiveService, FormReactiveValidationMessages } from './form-reactive.service' export abstract class FormReactive { - protected abstract formValidatorService: FormValidatorService + protected abstract formReactiveService: FormReactiveService protected formChanged = false form: FormGroup @@ -13,86 +11,22 @@ export abstract class FormReactive { validationMessages: FormReactiveValidationMessages buildForm (obj: BuildFormArgument, defaultValues: BuildFormDefaultValues = {}) { - const { formErrors, validationMessages, form } = this.formValidatorService.buildForm(obj, defaultValues) + const { formErrors, validationMessages, form } = this.formReactiveService.buildForm(obj, defaultValues) this.form = form this.formErrors = formErrors this.validationMessages = validationMessages - - this.form.statusChanges.subscribe(async () => { - // FIXME: remove when https://github.com/angular/angular/issues/41519 is fixed - await this.waitPendingCheck() - - this.onStatusChanged(this.form, this.formErrors, this.validationMessages) - }) } protected async waitPendingCheck () { - if (this.form.status !== 'PENDING') return - - // FIXME: the following line does not work: https://github.com/angular/angular/issues/41519 - // return firstValueFrom(this.form.statusChanges.pipe(filter(status => status !== 'PENDING'))) - // So we have to fallback to active wait :/ - - do { - await wait(10) - } while (this.form.status === 'PENDING') + return this.formReactiveService.waitPendingCheck(this.form) } - protected markAllAsDirty (controlsArg?: { [ key: string ]: AbstractControl }) { - const controls = controlsArg || this.form.controls - - for (const key of Object.keys(controls)) { - const control = controls[key] - - if (control instanceof FormGroup) { - this.markAllAsDirty(control.controls) - continue - } - - control.markAsDirty() - } + protected markAllAsDirty () { + return this.formReactiveService.markAllAsDirty(this.form.controls) } protected forceCheck () { - this.onStatusChanged(this.form, this.formErrors, this.validationMessages, false) - } - - private onStatusChanged ( - form: FormGroup, - formErrors: FormReactiveErrors, - validationMessages: FormReactiveValidationMessages, - onlyDirty = true - ) { - for (const field of Object.keys(formErrors)) { - if (formErrors[field] && typeof formErrors[field] === 'object') { - this.onStatusChanged( - form.controls[field] as FormGroup, - formErrors[field] as FormReactiveErrors, - validationMessages[field] as FormReactiveValidationMessages, - onlyDirty - ) - continue - } - - // clear previous error message (if any) - formErrors[field] = '' - const control = form.get(field) - - if (control.dirty) this.formChanged = true - - if (!control || (onlyDirty && !control.dirty) || !control.enabled || !control.errors) continue - - const staticMessages = validationMessages[field] - for (const key of Object.keys(control.errors)) { - const formErrorValue = control.errors[key] - - // Try to find error message in static validation messages first - // Then check if the validator returns a string that is the error - if (staticMessages[key]) formErrors[field] += staticMessages[key] + ' ' - else if (typeof formErrorValue === 'string') formErrors[field] += control.errors[key] - else throw new Error('Form error value of ' + field + ' is invalid') - } - } + return this.formReactiveService.forceCheck(this.form, this.formErrors, this.validationMessages) } } diff --git a/client/src/app/shared/shared-moderation/batch-domains-modal.component.ts b/client/src/app/shared/shared-moderation/batch-domains-modal.component.ts index 20be728f6..ec2fea528 100644 --- a/client/src/app/shared/shared-moderation/batch-domains-modal.component.ts +++ b/client/src/app/shared/shared-moderation/batch-domains-modal.component.ts @@ -1,5 +1,5 @@ import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' import { splitAndGetNotEmpty, UNIQUE_HOSTS_VALIDATOR } from '../form-validators/host-validators' @@ -18,7 +18,7 @@ export class BatchDomainsModalComponent extends FormReactive implements OnInit { private openedModal: NgbModalRef constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private modalService: NgbModal ) { super() diff --git a/client/src/app/shared/shared-moderation/report-modals/account-report.component.ts b/client/src/app/shared/shared-moderation/report-modals/account-report.component.ts index 78c9b3382..d587a9709 100644 --- a/client/src/app/shared/shared-moderation/report-modals/account-report.component.ts +++ b/client/src/app/shared/shared-moderation/report-modals/account-report.component.ts @@ -2,7 +2,7 @@ import { mapValues, pickBy } from 'lodash-es' import { Component, OnInit, ViewChild } from '@angular/core' import { Notifier } from '@app/core' import { ABUSE_REASON_VALIDATOR } from '@app/shared/form-validators/abuse-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { Account } from '@app/shared/shared-main' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' @@ -26,7 +26,7 @@ export class AccountReportComponent extends FormReactive implements OnInit { private openedModal: NgbModalRef constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private modalService: NgbModal, private abuseService: AbuseService, private notifier: Notifier diff --git a/client/src/app/shared/shared-moderation/report-modals/comment-report.component.ts b/client/src/app/shared/shared-moderation/report-modals/comment-report.component.ts index 7c0907ce4..e35d70c8f 100644 --- a/client/src/app/shared/shared-moderation/report-modals/comment-report.component.ts +++ b/client/src/app/shared/shared-moderation/report-modals/comment-report.component.ts @@ -2,7 +2,7 @@ import { mapValues, pickBy } from 'lodash-es' import { Component, Input, OnInit, ViewChild } from '@angular/core' import { Notifier } from '@app/core' import { ABUSE_REASON_VALIDATOR } from '@app/shared/form-validators/abuse-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { VideoComment } from '@app/shared/shared-video-comment' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' @@ -27,7 +27,7 @@ export class CommentReportComponent extends FormReactive implements OnInit { private openedModal: NgbModalRef constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private modalService: NgbModal, private abuseService: AbuseService, private notifier: Notifier diff --git a/client/src/app/shared/shared-moderation/report-modals/video-report.component.ts b/client/src/app/shared/shared-moderation/report-modals/video-report.component.ts index 38dd92910..16be8e0a1 100644 --- a/client/src/app/shared/shared-moderation/report-modals/video-report.component.ts +++ b/client/src/app/shared/shared-moderation/report-modals/video-report.component.ts @@ -3,7 +3,7 @@ import { Component, Input, OnInit, ViewChild } from '@angular/core' import { DomSanitizer } from '@angular/platform-browser' import { Notifier } from '@app/core' import { ABUSE_REASON_VALIDATOR } from '@app/shared/form-validators/abuse-validators' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' import { abusePredefinedReasonsMap } from '@shared/core-utils/abuse' @@ -27,7 +27,7 @@ export class VideoReportComponent extends FormReactive implements OnInit { private openedModal: NgbModalRef constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private modalService: NgbModal, private abuseService: AbuseService, private notifier: Notifier, diff --git a/client/src/app/shared/shared-moderation/user-ban-modal.component.ts b/client/src/app/shared/shared-moderation/user-ban-modal.component.ts index 617408f2a..27dcf043a 100644 --- a/client/src/app/shared/shared-moderation/user-ban-modal.component.ts +++ b/client/src/app/shared/shared-moderation/user-ban-modal.component.ts @@ -2,7 +2,7 @@ import { forkJoin } from 'rxjs' import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core' import { Notifier } from '@app/core' import { prepareIcu } from '@app/helpers' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' import { User } from '@shared/models' @@ -25,7 +25,7 @@ export class UserBanModalComponent extends FormReactive implements OnInit { modalMessage = '' constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private modalService: NgbModal, private notifier: Notifier, private userAdminService: UserAdminService, diff --git a/client/src/app/shared/shared-moderation/video-block.component.ts b/client/src/app/shared/shared-moderation/video-block.component.ts index f8b22a3f6..3ff53443a 100644 --- a/client/src/app/shared/shared-moderation/video-block.component.ts +++ b/client/src/app/shared/shared-moderation/video-block.component.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core' import { Notifier } from '@app/core' import { prepareIcu } from '@app/helpers' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { Video } from '@app/shared/shared-main' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' @@ -25,7 +25,7 @@ export class VideoBlockComponent extends FormReactive implements OnInit { private openedModal: NgbModalRef constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private modalService: NgbModal, private videoBlocklistService: VideoBlockService, private notifier: Notifier diff --git a/client/src/app/shared/shared-user-settings/user-interface-settings.component.ts b/client/src/app/shared/shared-user-settings/user-interface-settings.component.ts index 13e2e5424..c2c30d38b 100644 --- a/client/src/app/shared/shared-user-settings/user-interface-settings.component.ts +++ b/client/src/app/shared/shared-user-settings/user-interface-settings.component.ts @@ -1,7 +1,7 @@ import { Subject, Subscription } from 'rxjs' import { Component, Input, OnDestroy, OnInit } from '@angular/core' import { AuthService, Notifier, ServerService, ThemeService, UserService } from '@app/core' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { HTMLServerConfig, User, UserUpdateMe } from '@shared/models' import { SelectOptionsItem } from 'src/types' @@ -22,7 +22,7 @@ export class UserInterfaceSettingsComponent extends FormReactive implements OnIn private serverConfig: HTMLServerConfig constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private authService: AuthService, private notifier: Notifier, private userService: UserService, diff --git a/client/src/app/shared/shared-user-settings/user-video-settings.component.ts b/client/src/app/shared/shared-user-settings/user-video-settings.component.ts index 7d6b69469..af0870f12 100644 --- a/client/src/app/shared/shared-user-settings/user-video-settings.component.ts +++ b/client/src/app/shared/shared-user-settings/user-video-settings.component.ts @@ -3,7 +3,7 @@ import { Subject, Subscription } from 'rxjs' import { first } from 'rxjs/operators' import { Component, Input, OnDestroy, OnInit } from '@angular/core' import { AuthService, Notifier, ServerService, User, UserService } from '@app/core' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { UserUpdateMe } from '@shared/models' import { NSFWPolicyType } from '@shared/models/videos/nsfw-policy.type' @@ -22,7 +22,7 @@ export class UserVideoSettingsComponent extends FormReactive implements OnInit, formValuesWatcher: Subscription constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private authService: AuthService, private notifier: Notifier, private userService: UserService, diff --git a/client/src/app/shared/shared-user-subscription/remote-subscribe.component.ts b/client/src/app/shared/shared-user-subscription/remote-subscribe.component.ts index 7bcfdd8aa..61bcd5345 100644 --- a/client/src/app/shared/shared-user-subscription/remote-subscribe.component.ts +++ b/client/src/app/shared/shared-user-subscription/remote-subscribe.component.ts @@ -1,6 +1,6 @@ import { Component, Input, OnInit } from '@angular/core' import { Notifier } from '@app/core' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { logger } from '@root-helpers/logger' import { USER_HANDLE_VALIDATOR } from '../form-validators/user-validators' @@ -15,7 +15,7 @@ export class RemoteSubscribeComponent extends FormReactive implements OnInit { @Input() showHelp = false constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private notifier: Notifier ) { super() diff --git a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts index e019fdd26..f81de7c6b 100644 --- a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts +++ b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts @@ -3,7 +3,7 @@ import { Subject, Subscription } from 'rxjs' import { debounceTime, filter } from 'rxjs/operators' import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core' import { AuthService, DisableForReuseHook, Notifier } from '@app/core' -import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { FormReactive, FormReactiveService } from '@app/shared/shared-forms' import { secondsToTime } from '@shared/core-utils' import { Video, @@ -59,7 +59,7 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit, private pendingAddId: number constructor ( - protected formValidatorService: FormValidatorService, + protected formReactiveService: FormReactiveService, private authService: AuthService, private notifier: Notifier, private videoPlaylistService: VideoPlaylistService,