お知らせメールを受け取るかどうかの設定を追加
This commit is contained in:
parent
4ecd036d0a
commit
547da89c7d
6 changed files with 37 additions and 1 deletions
|
@ -700,6 +700,7 @@ capacity: "容量"
|
||||||
inUse: "使用中"
|
inUse: "使用中"
|
||||||
editCode: "コードを編集"
|
editCode: "コードを編集"
|
||||||
apply: "適用"
|
apply: "適用"
|
||||||
|
receiveAnnouncementFromInstance: "インスタンスからのお知らせを受け取る"
|
||||||
|
|
||||||
_plugin:
|
_plugin:
|
||||||
install: "プラグインのインストール"
|
install: "プラグインのインストール"
|
||||||
|
|
14
migration/1612619156584-announcement-email.ts
Normal file
14
migration/1612619156584-announcement-email.ts
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class announcementEmail1612619156584 implements MigrationInterface {
|
||||||
|
name = 'announcementEmail1612619156584'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" ADD "receiveAnnouncementEmail" boolean NOT NULL DEFAULT true`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "receiveAnnouncementEmail"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -8,6 +8,10 @@
|
||||||
{{ $i.email || $ts.notSet }}
|
{{ $i.email || $ts.notSet }}
|
||||||
</FormLink>
|
</FormLink>
|
||||||
</FormGroup>
|
</FormGroup>
|
||||||
|
|
||||||
|
<FormSwitch :value="$i.receiveAnnouncementEmail" @update:value="onChangeReceiveAnnouncementEmail">
|
||||||
|
{{ $ts.receiveAnnouncementFromInstance }}
|
||||||
|
</FormSwitch>
|
||||||
</FormBase>
|
</FormBase>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -19,6 +23,7 @@ import FormButton from '@/components/form/button.vue';
|
||||||
import FormLink from '@/components/form/link.vue';
|
import FormLink from '@/components/form/link.vue';
|
||||||
import FormBase from '@/components/form/base.vue';
|
import FormBase from '@/components/form/base.vue';
|
||||||
import FormGroup from '@/components/form/group.vue';
|
import FormGroup from '@/components/form/group.vue';
|
||||||
|
import FormSwitch from '@/components/form/switch.vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
|
@ -26,6 +31,7 @@ export default defineComponent({
|
||||||
FormBase,
|
FormBase,
|
||||||
FormLink,
|
FormLink,
|
||||||
FormButton,
|
FormButton,
|
||||||
|
FormSwitch,
|
||||||
FormGroup,
|
FormGroup,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -46,7 +52,11 @@ export default defineComponent({
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
onChangeReceiveAnnouncementEmail(v) {
|
||||||
|
os.api('i/update', {
|
||||||
|
receiveAnnouncementEmail: v
|
||||||
|
});
|
||||||
|
},
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -133,6 +133,11 @@ export class UserProfile {
|
||||||
})
|
})
|
||||||
public injectFeaturedNote: boolean;
|
public injectFeaturedNote: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', {
|
||||||
|
default: true,
|
||||||
|
})
|
||||||
|
public receiveAnnouncementEmail: boolean;
|
||||||
|
|
||||||
@Column({
|
@Column({
|
||||||
...id(),
|
...id(),
|
||||||
nullable: true
|
nullable: true
|
||||||
|
|
|
@ -236,6 +236,7 @@ export class UserRepository extends Repository<User> {
|
||||||
avatarId: user.avatarId,
|
avatarId: user.avatarId,
|
||||||
bannerId: user.bannerId,
|
bannerId: user.bannerId,
|
||||||
injectFeaturedNote: profile!.injectFeaturedNote,
|
injectFeaturedNote: profile!.injectFeaturedNote,
|
||||||
|
receiveAnnouncementEmail: profile!.receiveAnnouncementEmail,
|
||||||
alwaysMarkNsfw: profile!.alwaysMarkNsfw,
|
alwaysMarkNsfw: profile!.alwaysMarkNsfw,
|
||||||
carefulBot: profile!.carefulBot,
|
carefulBot: profile!.carefulBot,
|
||||||
autoAcceptFollowed: profile!.autoAcceptFollowed,
|
autoAcceptFollowed: profile!.autoAcceptFollowed,
|
||||||
|
|
|
@ -135,6 +135,10 @@ export const meta = {
|
||||||
validator: $.optional.bool,
|
validator: $.optional.bool,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
receiveAnnouncementEmail: {
|
||||||
|
validator: $.optional.bool,
|
||||||
|
},
|
||||||
|
|
||||||
alwaysMarkNsfw: {
|
alwaysMarkNsfw: {
|
||||||
validator: $.optional.bool,
|
validator: $.optional.bool,
|
||||||
desc: {
|
desc: {
|
||||||
|
@ -219,6 +223,7 @@ export default define(meta, async (ps, user, token) => {
|
||||||
if (typeof ps.noCrawle === 'boolean') profileUpdates.noCrawle = ps.noCrawle;
|
if (typeof ps.noCrawle === 'boolean') profileUpdates.noCrawle = ps.noCrawle;
|
||||||
if (typeof ps.isCat === 'boolean') updates.isCat = ps.isCat;
|
if (typeof ps.isCat === 'boolean') updates.isCat = ps.isCat;
|
||||||
if (typeof ps.injectFeaturedNote === 'boolean') profileUpdates.injectFeaturedNote = ps.injectFeaturedNote;
|
if (typeof ps.injectFeaturedNote === 'boolean') profileUpdates.injectFeaturedNote = ps.injectFeaturedNote;
|
||||||
|
if (typeof ps.receiveAnnouncementEmail === 'boolean') profileUpdates.receiveAnnouncementEmail = ps.receiveAnnouncementEmail;
|
||||||
if (typeof ps.alwaysMarkNsfw === 'boolean') profileUpdates.alwaysMarkNsfw = ps.alwaysMarkNsfw;
|
if (typeof ps.alwaysMarkNsfw === 'boolean') profileUpdates.alwaysMarkNsfw = ps.alwaysMarkNsfw;
|
||||||
|
|
||||||
if (ps.avatarId) {
|
if (ps.avatarId) {
|
||||||
|
|
Loading…
Reference in a new issue