Compare commits

...

3 Commits

Author SHA1 Message Date
syuilo
2f598b8fa1 10.11.0 2018-10-13 01:04:29 +09:00
syuilo
bca349fec1 Improve performance 2018-10-13 01:00:43 +09:00
syuilo
719fac6480 お気に入りを解除できるように 2018-10-13 00:54:30 +09:00
7 changed files with 47 additions and 9 deletions

View File

@@ -363,6 +363,7 @@ common/views/components/note-menu.vue:
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
unfavorite: "お気に入り解除"
pin: "ピン留め"
unpin: "ピン留め解除"
delete: "削除"

View File

@@ -1,8 +1,8 @@
{
"name": "misskey",
"author": "syuilo <i@syuilo.com>",
"version": "10.10.1",
"clientVersion": "1.0.10469",
"version": "10.11.0",
"clientVersion": "1.0.10473",
"codename": "nighthike",
"main": "./built/index.js",
"private": true,

View File

@@ -22,11 +22,21 @@ export default Vue.extend({
icon: '%fa:link%',
text: '%i18n:@copy-link%',
action: this.copyLink
}, null, {
icon: '%fa:star%',
text: '%i18n:@favorite%',
action: this.favorite
}];
}, null];
if (this.note.isFavorited) {
items.push({
icon: '%fa:star%',
text: '%i18n:@unfavorite%',
action: this.unfavorite
});
} else {
items.push({
icon: '%fa:star%',
text: '%i18n:@favorite%',
action: this.favorite
});
}
if (this.note.userId == this.$store.state.i.id) {
if ((this.$store.state.i.pinnedNoteIds || []).includes(this.note.id)) {
@@ -45,6 +55,7 @@ export default Vue.extend({
}
if (this.note.userId == this.$store.state.i.id || this.$store.state.i.isAdmin) {
items.push(null);
items.push({
icon: '%fa:trash-alt R%',
text: '%i18n:@delete%',
@@ -110,6 +121,15 @@ export default Vue.extend({
});
},
unfavorite() {
(this as any).api('notes/favorites/delete', {
noteId: this.note.id
}).then(() => {
(this as any).os.new(Ok);
this.destroyDom();
});
},
closed() {
this.$nextTick(() => {
this.destroyDom();

View File

@@ -11,6 +11,7 @@ import DriveFileThumbnail, { deleteDriveFileThumbnail } from './drive-file-thumb
const DriveFile = monkDb.get<IDriveFile>('driveFiles.files');
DriveFile.createIndex('md5');
DriveFile.createIndex('metadata.uri');
DriveFile.createIndex('metadata.userId');
export default DriveFile;
export const DriveFileChunk = monkDb.get('driveFiles.chunks');

View File

@@ -4,6 +4,7 @@ import db from '../db/mongodb';
import DriveFile from './drive-file';
const DriveFolder = db.get<IDriveFolder>('driveFolders');
DriveFolder.createIndex('userId');
export default DriveFolder;
export type IDriveFolder = {

View File

@@ -75,7 +75,9 @@ export const pack = (
delete _favorite._id;
// Populate note
_favorite.note = await packNote(_favorite.noteId, me);
_favorite.note = await packNote(_favorite.noteId, me, {
detail: true
});
// (データベースの不具合などで)投稿が見つからなかったら
if (_favorite.note == null) {

View File

@@ -358,8 +358,8 @@ export const pack = async (
})(_note.poll);
}
// Fetch my reaction
if (meId) {
// Fetch my reaction
_note.myReaction = (async () => {
const reaction = await Reaction
.findOne({
@@ -374,6 +374,19 @@ export const pack = async (
return null;
})();
// isFavorited
_note.isFavorited = (async () => {
const favorite = await Favorite
.count({
userId: meId,
noteId: id
}, {
limit: 1
});
return favorite === 1;
})();
}
}