From e1b49ee534108ba8ac98dcb209d2efcbf1ecd678 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 4 Sep 2019 14:30:34 +0200 Subject: Implement auto follow in client --- .../edit-custom-config.component.html | 35 ++++++++++++++++++++++ .../edit-custom-config.component.ts | 11 +++++++ ...y-account-notification-preferences.component.ts | 6 ++-- .../custom-config-validators.service.ts | 9 ++++++ .../app/shared/users/user-notification.model.ts | 7 ++++- .../shared/users/user-notifications.component.html | 10 ++++++- 6 files changed, 74 insertions(+), 4 deletions(-) (limited to 'client/src/app') diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html index fe9d856d0..ec6f879d7 100644 --- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html +++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html @@ -221,6 +221,41 @@ +
Instance followings
+ + + + + +
+ +
+
+ + +
+ +
+ +
+ + +
{{ formErrors.followings.instance.autoFollowIndex.indexUrl }}
+
+ +
+
+
+
Administrator
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 8bd7f7cf6..d51104569 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 @@ -158,6 +158,17 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit { enabled: null, manualApproval: null } + }, + followings: { + instance: { + autoFollowBack: { + enabled: null + }, + autoFollowIndex: { + enabled: null, + indexUrl: this.customConfigValidatorsService.INDEX_URL + } + } } } diff --git a/client/src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts b/client/src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts index 34febc457..76fabb19d 100644 --- a/client/src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts +++ b/client/src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts @@ -43,7 +43,8 @@ export class MyAccountNotificationPreferencesComponent implements OnInit { newUserRegistration: this.i18n('A new user registered on your instance'), newFollow: this.i18n('You or your channel(s) has a new follower'), commentMention: this.i18n('Someone mentioned you in video comments'), - newInstanceFollower: this.i18n('Your instance has a new follower') + newInstanceFollower: this.i18n('Your instance has a new follower'), + autoInstanceFollowing: this.i18n('Your instance auto followed another instance') } this.notificationSettingKeys = Object.keys(this.labelNotifications) as (keyof UserNotificationSetting)[] @@ -51,7 +52,8 @@ export class MyAccountNotificationPreferencesComponent implements OnInit { videoAbuseAsModerator: UserRight.MANAGE_VIDEO_ABUSES, videoAutoBlacklistAsModerator: UserRight.MANAGE_VIDEO_BLACKLIST, newUserRegistration: UserRight.MANAGE_USERS, - newInstanceFollower: UserRight.MANAGE_SERVER_FOLLOW + newInstanceFollower: UserRight.MANAGE_SERVER_FOLLOW, + autoInstanceFollowing: UserRight.MANAGE_CONFIGURATION } this.emailEnabled = this.serverService.getConfig().email.enabled diff --git a/client/src/app/shared/forms/form-validators/custom-config-validators.service.ts b/client/src/app/shared/forms/form-validators/custom-config-validators.service.ts index 882e39453..767e3f026 100644 --- a/client/src/app/shared/forms/form-validators/custom-config-validators.service.ts +++ b/client/src/app/shared/forms/form-validators/custom-config-validators.service.ts @@ -13,6 +13,7 @@ export class CustomConfigValidatorsService { readonly SIGNUP_LIMIT: BuildFormValidator readonly ADMIN_EMAIL: BuildFormValidator readonly TRANSCODING_THREADS: BuildFormValidator + readonly INDEX_URL: BuildFormValidator constructor (private i18n: I18n) { this.INSTANCE_NAME = { @@ -78,5 +79,13 @@ export class CustomConfigValidatorsService { 'min': this.i18n('Transcoding threads must be greater or equal to 0.') } } + + this.INDEX_URL = { + VALIDATORS: [ Validators.required, Validators.pattern(/^https:\/\//) ], + MESSAGES: { + 'required': this.i18n('Index URL is required.'), + 'pattern': this.i18n('Index URL should be a URL') + } + } } } diff --git a/client/src/app/shared/users/user-notification.model.ts b/client/src/app/shared/users/user-notification.model.ts index 37fa29ee8..b4ac075c5 100644 --- a/client/src/app/shared/users/user-notification.model.ts +++ b/client/src/app/shared/users/user-notification.model.ts @@ -42,9 +42,10 @@ export class UserNotification implements UserNotificationServer { state: FollowState follower: ActorInfo & { avatarUrl?: string } following: { - type: 'account' | 'channel' + type: 'account' | 'channel' | 'instance' name: string displayName: string + host: string } } @@ -146,6 +147,10 @@ export class UserNotification implements UserNotificationServer { case UserNotificationType.NEW_INSTANCE_FOLLOWER: this.instanceFollowUrl = '/admin/follows/followers-list' break + + case UserNotificationType.AUTO_INSTANCE_FOLLOWING: + this.instanceFollowUrl = '/admin/follows/following-list' + break } } catch (err) { this.type = null diff --git a/client/src/app/shared/users/user-notifications.component.html b/client/src/app/shared/users/user-notifications.component.html index 292813426..0702d3b5e 100644 --- a/client/src/app/shared/users/user-notifications.component.html +++ b/client/src/app/shared/users/user-notifications.component.html @@ -40,7 +40,7 @@
- The recently added video {{ notification.video.name }} has been auto-blacklisted + The recently added video {{ notification.videoBlacklist.video.name }} has been auto-blacklisted
@@ -111,6 +111,14 @@ awaiting your approval + + + + +
+ Your instance automatically followed {{ notification.actorFollow.following.host }} +
+
{{ notification.createdAt | myFromNow }}
-- cgit v1.2.3