+import { debounce } from 'lodash-es'
+import { Subject } from 'rxjs'
import { Component, Input, OnInit } from '@angular/core'
-import { User } from '@app/shared'
+import { Notifier, ServerService, User } from '@app/core'
+import { UserNotificationService } from '@app/shared/shared-main'
import { I18n } from '@ngx-translate/i18n-polyfill'
-import { Subject } from 'rxjs'
-import { UserNotificationSetting, UserNotificationSettingValue, UserRight } from '../../../../../../shared'
-import { Notifier, ServerService } from '@app/core'
-import { debounce } from 'lodash-es'
-import { UserNotificationService } from '@app/shared/users/user-notification.service'
+import { UserNotificationSetting, UserNotificationSettingValue, UserRight } from '@shared/models'
@Component({
selector: 'my-account-notification-preferences',
webNotifications: { [ id in keyof UserNotificationSetting ]: boolean } = {} as any
labelNotifications: { [ id in keyof UserNotificationSetting ]: string } = {} as any
rightNotifications: { [ id in keyof Partial<UserNotificationSetting> ]: UserRight } = {} as any
- emailEnabled: boolean
+ emailEnabled = false
private savePreferences = debounce(this.savePreferencesImpl.bind(this), 500)
this.labelNotifications = {
newVideoFromSubscription: this.i18n('New video from your subscriptions'),
newCommentOnMyVideo: this.i18n('New comment on your video'),
- videoAbuseAsModerator: this.i18n('New video abuse on local video'),
- blacklistOnMyVideo: this.i18n('One of your video is blacklisted/unblacklisted'),
+ abuseAsModerator: this.i18n('New abuse'),
+ videoAutoBlacklistAsModerator: this.i18n('Video blocked automatically waiting review'),
+ blacklistOnMyVideo: this.i18n('One of your video is blocked/unblocked'),
myVideoPublished: this.i18n('Video published (after transcoding/scheduled update)'),
myVideoImportFinished: this.i18n('Video import finished'),
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')
+ commentMention: this.i18n('Someone mentioned you in video comments'),
+ newInstanceFollower: this.i18n('Your instance has a new follower'),
+ autoInstanceFollowing: this.i18n('Your instance auto followed another instance'),
+ abuseNewMessage: this.i18n('An abuse received a new message'),
+ abuseStateChange: this.i18n('One of your abuse has been accepted or rejected by moderators')
}
this.notificationSettingKeys = Object.keys(this.labelNotifications) as (keyof UserNotificationSetting)[]
this.rightNotifications = {
- videoAbuseAsModerator: UserRight.MANAGE_VIDEO_ABUSES,
- newUserRegistration: UserRight.MANAGE_USERS
+ abuseAsModerator: UserRight.MANAGE_ABUSES,
+ videoAutoBlacklistAsModerator: UserRight.MANAGE_VIDEO_BLACKLIST,
+ newUserRegistration: UserRight.MANAGE_USERS,
+ newInstanceFollower: UserRight.MANAGE_SERVER_FOLLOW,
+ autoInstanceFollowing: UserRight.MANAGE_CONFIGURATION
}
-
- this.emailEnabled = this.serverService.getConfig().email.enabled
}
ngOnInit () {
+ this.serverService.getConfig()
+ .subscribe(config => {
+ this.emailEnabled = config.email.enabled
+ })
+
this.userInformationLoaded.subscribe(() => this.loadNotificationSettings())
}