Improve Page
* ページをピン留めできるように * デッキでカラム内でページを見れるように
This commit is contained in:
@ -10,7 +10,7 @@ import extractHashtags from '../../../../misc/extract-hashtags';
|
||||
import * as langmap from 'langmap';
|
||||
import { updateHashtag } from '../../../../services/update-hashtag';
|
||||
import { ApiError } from '../../error';
|
||||
import { Users, DriveFiles, UserProfiles } from '../../../../models';
|
||||
import { Users, DriveFiles, UserProfiles, Pages } from '../../../../models';
|
||||
import { User } from '../../../../models/entities/user';
|
||||
import { UserProfile } from '../../../../models/entities/user-profile';
|
||||
import { ensure } from '../../../../prelude/ensure';
|
||||
@ -125,6 +125,13 @@ export const meta = {
|
||||
'ja-JP': 'アップロードするメディアをデフォルトで「閲覧注意」として設定するか'
|
||||
}
|
||||
},
|
||||
|
||||
pinnedPageId: {
|
||||
validator: $.optional.nullable.type(ID),
|
||||
desc: {
|
||||
'ja-JP': 'ピン留めするページID'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
errors: {
|
||||
@ -150,7 +157,13 @@ export const meta = {
|
||||
message: 'The file specified as a banner is not an image.',
|
||||
code: 'BANNER_NOT_AN_IMAGE',
|
||||
id: '75aedb19-2afd-4e6d-87fc-67941256fa60'
|
||||
}
|
||||
},
|
||||
|
||||
noSuchPage: {
|
||||
message: 'No such page.',
|
||||
code: 'NO_SUCH_PAGE',
|
||||
id: '8e01b590-7eb9-431b-a239-860e086c408e'
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
@ -203,6 +216,16 @@ export default define(meta, async (ps, user, app) => {
|
||||
}
|
||||
}
|
||||
|
||||
if (ps.pinnedPageId) {
|
||||
const page = await Pages.findOne(ps.pinnedPageId);
|
||||
|
||||
if (page == null || page.userId !== user.id) throw new ApiError(meta.errors.noSuchPage);
|
||||
|
||||
profileUpdates.pinnedPageId = page.id;
|
||||
} else if (ps.pinnedPageId === null) {
|
||||
profileUpdates.pinnedPageId = null;
|
||||
}
|
||||
|
||||
//#region emojis/tags
|
||||
|
||||
let emojis = [] as string[];
|
||||
|
@ -57,6 +57,11 @@ export const meta = {
|
||||
validator: $.optional.bool,
|
||||
default: false
|
||||
},
|
||||
|
||||
hideTitleWhenPinned: {
|
||||
validator: $.optional.bool,
|
||||
default: false
|
||||
},
|
||||
},
|
||||
|
||||
res: {
|
||||
@ -100,6 +105,7 @@ export default define(meta, async (ps, user) => {
|
||||
userId: user.id,
|
||||
visibility: 'public',
|
||||
alignCenter: ps.alignCenter,
|
||||
hideTitleWhenPinned: ps.hideTitleWhenPinned,
|
||||
font: ps.font
|
||||
}));
|
||||
|
||||
|
@ -61,6 +61,10 @@ export const meta = {
|
||||
alignCenter: {
|
||||
validator: $.optional.bool,
|
||||
},
|
||||
|
||||
hideTitleWhenPinned: {
|
||||
validator: $.optional.bool,
|
||||
},
|
||||
},
|
||||
|
||||
errors: {
|
||||
@ -113,6 +117,7 @@ export default define(meta, async (ps, user) => {
|
||||
content: ps.content,
|
||||
variables: ps.variables,
|
||||
alignCenter: ps.alignCenter === undefined ? page.alignCenter : ps.alignCenter,
|
||||
hideTitleWhenPinned: ps.hideTitleWhenPinned === undefined ? page.hideTitleWhenPinned : ps.hideTitleWhenPinned,
|
||||
font: ps.font === undefined ? page.font : ps.font,
|
||||
eyeCatchingImageId: ps.eyeCatchingImageId === null
|
||||
? null
|
||||
|
Reference in New Issue
Block a user