Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
d22148b418 | |||
5dc75c9cea | |||
200e82decb | |||
50359dbaf4 | |||
7165f21a62 | |||
8aab828c65 | |||
c9f8c12f5b | |||
a347f8fa49 | |||
2d76bdd0f8 | |||
c5cdd56edb | |||
6901ab39ed | |||
014c1673c6 |
12
CHANGELOG.md
12
CHANGELOG.md
@ -1,6 +1,18 @@
|
||||
ChangeLog
|
||||
=========
|
||||
|
||||
12.21.0 (2020/02/23)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* ノートのメニューに詳細ページへのリンクを追加
|
||||
* UIの調整
|
||||
|
||||
### 🐛Fixes
|
||||
* チャットで自分の送信したURLが視認しにくい問題を修正
|
||||
* ノートの内のインラインコードが横に突き抜ける問題を修正
|
||||
* (新しいノートがあります)表示中にタイムラインを切り替えると、表示が消えなくなってしまう問題を修正
|
||||
* 引用RNフォームを開いた時だけ、textareaにフォーカスが当たっていない問題を修正
|
||||
|
||||
12.20.0 (2020/02/22)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
|
@ -186,13 +186,15 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4503830/ccf2cc867ea64de0b524bb2e24b9a1cb/1.jpeg?token-time=2145916800&token-hash=L55UhJ0rcuNAH3w_ryeeGN4hC6taoOixyAhraEi0bzw%3D" alt="dansup" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5731881/4b6038e6cda34c04b83a5fcce3806a93/1.png?token-time=2145916800&token-hash=hBayGfOmQH3kRMdNnDe4oCZD_9fsJWSt29xXR3KRMVk%3D" alt="Nokotaro Takeda" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/23932002" alt="nenohi" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12531784/93a45137841849329ba692da92ac7c60/1.jpeg?token-time=2145916800&token-hash=vGe7wXGqmA8Q7m-kDNb6fyGdwk-Dxk4F-ut8ZZu51RM%3D" alt="Takashi Shibuya" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/dansup">dansup</a></td>
|
||||
<td><a href="https://www.patreon.com/takenoko">Nokotaro Takeda</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=23932002">nenohi</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
|
||||
</tr></table>
|
||||
|
||||
**Last updated:** Fri, 21 Feb 2020 09:37:07 UTC
|
||||
**Last updated:** Fri, 21 Feb 2020 13:39:06 UTC
|
||||
<!-- PATREON_END -->
|
||||
|
||||
[backer-url]: #backers
|
||||
|
@ -431,6 +431,7 @@ sounds: "サウンド"
|
||||
listen: "聴く"
|
||||
none: "なし"
|
||||
volume: "音量"
|
||||
details: "詳細"
|
||||
|
||||
_sfx:
|
||||
note: "ノート"
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "misskey",
|
||||
"author": "syuilo <syuilotan@yahoo.co.jp>",
|
||||
"version": "12.20.0",
|
||||
"version": "12.21.0",
|
||||
"codename": "indigo",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
@ -37,6 +37,10 @@ export default Vue.extend({
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
::v-deep > code {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
::v-deep .title {
|
||||
text-align: center;
|
||||
border-bottom: solid 1px var(--divider);
|
||||
|
@ -85,7 +85,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue';
|
||||
import { faBolt, faTimes, faBullhorn, faStar, faLink, faExternalLinkSquareAlt, faPlus, faMinus, faRetweet, faReply, faReplyAll, faEllipsisH, faHome, faUnlock, faEnvelope, faThumbtack, faBan, faQuoteRight } from '@fortawesome/free-solid-svg-icons';
|
||||
import { faBolt, faTimes, faBullhorn, faStar, faLink, faExternalLinkSquareAlt, faPlus, faMinus, faRetweet, faReply, faReplyAll, faEllipsisH, faHome, faUnlock, faEnvelope, faThumbtack, faBan, faQuoteRight, faInfoCircle } from '@fortawesome/free-solid-svg-icons';
|
||||
import { faCopy, faTrashAlt, faEye, faEyeSlash } from '@fortawesome/free-regular-svg-icons';
|
||||
import { parse } from '../../mfm/parse';
|
||||
import { sum, unique } from '../../prelude/array';
|
||||
@ -392,7 +392,7 @@ export default Vue.extend({
|
||||
}]
|
||||
source: this.$refs.renoteButton,
|
||||
viaKeyboard
|
||||
}).then(this.focus);
|
||||
});
|
||||
},
|
||||
|
||||
renoteDirectly() {
|
||||
@ -489,6 +489,11 @@ export default Vue.extend({
|
||||
noteId: this.appearNote.id
|
||||
});
|
||||
menu = [{
|
||||
type: 'link',
|
||||
icon: faInfoCircle,
|
||||
text: this.$t('details'),
|
||||
to: '/notes/' + this.appearNote.id
|
||||
}, null, {
|
||||
icon: faCopy,
|
||||
text: this.$t('copyContent'),
|
||||
action: this.copyContent
|
||||
|
@ -3,14 +3,14 @@
|
||||
<svg width="128" height="128" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle fill="none" cx="64" cy="64">
|
||||
<animate attributeName="r"
|
||||
begin="0s" dur="1s"
|
||||
begin="0s" dur="0.5s"
|
||||
values="4; 32"
|
||||
calcMode="spline"
|
||||
keyTimes="0; 1"
|
||||
keySplines="0.165, 0.84, 0.44, 1"
|
||||
repeatCount="1" />
|
||||
<animate attributeName="stroke-width"
|
||||
begin="0s" dur="1s"
|
||||
begin="0s" dur="0.5s"
|
||||
values="16; 0"
|
||||
calcMode="spline"
|
||||
keyTimes="0; 1"
|
||||
@ -20,21 +20,21 @@
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<circle v-for="(particle, i) in particles" :key="i" :fill="particle.color">
|
||||
<animate attributeName="r"
|
||||
begin="0s" dur="1s"
|
||||
begin="0s" dur="0.8s"
|
||||
:values="`${particle.size}; 0`"
|
||||
calcMode="spline"
|
||||
keyTimes="0; 1"
|
||||
keySplines="0.165, 0.84, 0.44, 1"
|
||||
repeatCount="1" />
|
||||
<animate attributeName="cx"
|
||||
begin="0s" dur="1s"
|
||||
begin="0s" dur="0.8s"
|
||||
:values="`${particle.xA}; ${particle.xB}`"
|
||||
calcMode="spline"
|
||||
keyTimes="0; 1"
|
||||
keySplines="0.3, 0.61, 0.355, 1"
|
||||
repeatCount="1" />
|
||||
<animate attributeName="cy"
|
||||
begin="0s" dur="1s"
|
||||
begin="0s" dur="0.8s"
|
||||
:values="`${particle.yA}; ${particle.yB}`"
|
||||
calcMode="spline"
|
||||
keyTimes="0; 1"
|
||||
|
@ -1,16 +1,17 @@
|
||||
<template>
|
||||
<span
|
||||
class="reaction _button"
|
||||
<button
|
||||
class="hkzvhatu _button"
|
||||
:class="{ reacted: note.myReaction == reaction }"
|
||||
@click="toggleReaction(reaction)"
|
||||
v-if="count > 0"
|
||||
@mouseover="onMouseover"
|
||||
@mouseleave="onMouseleave"
|
||||
ref="reaction"
|
||||
v-particle
|
||||
>
|
||||
<x-reaction-icon :reaction="reaction" ref="icon"/>
|
||||
<span>{{ count }}</span>
|
||||
</span>
|
||||
</button>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
@ -136,7 +137,7 @@ export default Vue.extend({
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.reaction {
|
||||
.hkzvhatu {
|
||||
display: inline-block;
|
||||
height: 32px;
|
||||
margin: 2px;
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="mk-reactions-viewer" :class="{ isMe }">
|
||||
<div class="tdflqwzn" :class="{ isMe }">
|
||||
<x-reaction v-for="(count, reaction) in note.reactions" :reaction="reaction" :count="count" :is-initial="initialReactions.has(reaction)" :note="note" :key="reaction"/>
|
||||
</div>
|
||||
</template>
|
||||
@ -32,7 +32,7 @@ export default Vue.extend({
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.mk-reactions-viewer {
|
||||
.tdflqwzn {
|
||||
margin: 4px -2px 0 -2px;
|
||||
|
||||
&:empty {
|
||||
|
@ -152,7 +152,7 @@ export default Vue.extend({
|
||||
font-weight: normal;
|
||||
font-size: 16px;
|
||||
height: 32px;
|
||||
background: var(--panel);
|
||||
background: none;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
outline: none;
|
||||
|
@ -310,7 +310,7 @@ export default Vue.extend({
|
||||
}
|
||||
|
||||
> .text {
|
||||
&, * {
|
||||
&, ::v-deep * {
|
||||
color: #fff !important;
|
||||
}
|
||||
}
|
||||
|
@ -62,6 +62,7 @@ export default (opts) => ({
|
||||
},
|
||||
|
||||
async init() {
|
||||
this.queue = [];
|
||||
this.fetching = true;
|
||||
if (opts.before) opts.before(this);
|
||||
let params = typeof this.pagination.params === 'function' ? this.pagination.params(true) : this.pagination.params;
|
||||
|
@ -1,7 +1,7 @@
|
||||
import rndstr from 'rndstr';
|
||||
import { Note } from '../../../models/entities/note';
|
||||
import { User } from '../../../models/entities/user';
|
||||
import { Notes, UserProfiles } from '../../../models';
|
||||
import { Notes, UserProfiles, NoteReactions } from '../../../models';
|
||||
import { generateMuteQuery } from './generate-mute-query';
|
||||
import { ensure } from '../../../prelude/ensure';
|
||||
|
||||
@ -26,9 +26,17 @@ export async function injectFeatured(timeline: Note[], user?: User | null) {
|
||||
.andWhere(`note.visibility = 'public'`)
|
||||
.leftJoinAndSelect('note.user', 'user');
|
||||
|
||||
if (user) query.andWhere('note.userId != :userId', { userId: user.id });
|
||||
if (user) {
|
||||
query.andWhere('note.userId != :userId', { userId: user.id });
|
||||
|
||||
if (user) generateMuteQuery(query, user);
|
||||
generateMuteQuery(query, user);
|
||||
|
||||
const reactionQuery = NoteReactions.createQueryBuilder('reaction')
|
||||
.select('reaction.noteId')
|
||||
.where('reaction.userId = :userId', { userId: user.id });
|
||||
|
||||
query.andWhere(`note.id NOT IN (${ reactionQuery.getQuery() })`);
|
||||
}
|
||||
|
||||
const notes = await query
|
||||
.orderBy('note.score', 'DESC')
|
||||
|
Reference in New Issue
Block a user