From bd8d7c3d0f1bb831f26a75a6107e34a85a1bc804 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 7 Jul 2019 06:56:13 +0900 Subject: Improve Page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ページをピン留めできるように * デッキでカラム内でページを見れるように --- src/models/entities/page.ts | 5 +++++ src/models/entities/user-profile.ts | 13 +++++++++++++ src/models/repositories/page.ts | 1 + src/models/repositories/user.ts | 4 +++- 4 files changed, 22 insertions(+), 1 deletion(-) (limited to 'src/models') diff --git a/src/models/entities/page.ts b/src/models/entities/page.ts index 05015ba175..2163f9997f 100644 --- a/src/models/entities/page.ts +++ b/src/models/entities/page.ts @@ -40,6 +40,11 @@ export class Page { @Column('boolean') public alignCenter: boolean; + @Column('boolean', { + default: false + }) + public hideTitleWhenPinned: boolean; + @Column('varchar', { length: 32, }) diff --git a/src/models/entities/user-profile.ts b/src/models/entities/user-profile.ts index 4a588ebfbf..61e80049c3 100644 --- a/src/models/entities/user-profile.ts +++ b/src/models/entities/user-profile.ts @@ -1,6 +1,7 @@ import { Entity, Column, Index, OneToOne, JoinColumn, PrimaryColumn } from 'typeorm'; import { id } from '../id'; import { User } from './user'; +import { Page } from './page'; @Entity() export class UserProfile { @@ -118,6 +119,18 @@ export class UserProfile { }) public carefulBot: boolean; + @Column({ + ...id(), + nullable: true + }) + public pinnedPageId: Page['id'] | null; + + @OneToOne(type => Page, { + onDelete: 'SET NULL' + }) + @JoinColumn() + public pinnedPage: Page | null; + //#region Linking @Column('boolean', { default: false, diff --git a/src/models/repositories/page.ts b/src/models/repositories/page.ts index 33126274a1..1335ada73f 100644 --- a/src/models/repositories/page.ts +++ b/src/models/repositories/page.ts @@ -71,6 +71,7 @@ export class PageRepository extends Repository { title: page.title, name: page.name, summary: page.summary, + hideTitleWhenPinned: page.hideTitleWhenPinned, alignCenter: page.alignCenter, font: page.font, eyeCatchingImageId: page.eyeCatchingImageId, diff --git a/src/models/repositories/user.ts b/src/models/repositories/user.ts index 06da74197f..4e85fd7b93 100644 --- a/src/models/repositories/user.ts +++ b/src/models/repositories/user.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { EntityRepository, Repository, In } from 'typeorm'; import { User, ILocalUser, IRemoteUser } from '../entities/user'; -import { Emojis, Notes, NoteUnreads, FollowRequests, Notifications, MessagingMessages, UserNotePinings, Followings, Blockings, Mutings, UserProfiles, UserSecurityKeys, UserGroupJoinings } from '..'; +import { Emojis, Notes, NoteUnreads, FollowRequests, Notifications, MessagingMessages, UserNotePinings, Followings, Blockings, Mutings, UserProfiles, UserSecurityKeys, UserGroupJoinings, Pages } from '..'; import { ensure } from '../../prelude/ensure'; import config from '../../config'; import { SchemaType } from '../../misc/schema'; @@ -155,6 +155,8 @@ export class UserRepository extends Repository { pinnedNotes: Notes.packMany(pins.map(pin => pin.noteId), meId, { detail: true }), + pinnedPageId: profile!.pinnedPageId, + pinnedPage: profile!.pinnedPageId ? Pages.pack(profile!.pinnedPageId, meId) : null, twoFactorEnabled: profile!.twoFactorEnabled, usePasswordLessLogin: profile!.usePasswordLessLogin, securityKeys: profile!.twoFactorEnabled -- cgit v1.2.3-freya