summaryrefslogtreecommitdiff
path: root/src/models
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-07-07 06:56:13 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-07-07 06:56:13 +0900
commitbd8d7c3d0f1bb831f26a75a6107e34a85a1bc804 (patch)
treef5c7f4d850ab00da5c800fa893f8319cf71b384a /src/models
parentUse npx to avoid global install of ts-node (diff)
downloadsharkey-bd8d7c3d0f1bb831f26a75a6107e34a85a1bc804.tar.gz
sharkey-bd8d7c3d0f1bb831f26a75a6107e34a85a1bc804.tar.bz2
sharkey-bd8d7c3d0f1bb831f26a75a6107e34a85a1bc804.zip
Improve Page
* ページをピン留めできるように * デッキでカラム内でページを見れるように
Diffstat (limited to 'src/models')
-rw-r--r--src/models/entities/page.ts5
-rw-r--r--src/models/entities/user-profile.ts13
-rw-r--r--src/models/repositories/page.ts1
-rw-r--r--src/models/repositories/user.ts4
4 files changed, 22 insertions, 1 deletions
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<Page> {
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<User> {
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