wip
This commit is contained in:
		
							parent
							
								
									26b40d8886
								
							
						
					
					
						commit
						34923888c7
					
				
					 6 changed files with 58 additions and 3 deletions
				
			
		|  | @ -473,6 +473,11 @@ desktop: | |||
|     mk-user: | ||||
|       last-used-at: "Last used at" | ||||
| 
 | ||||
|       follows-you: "Follows you" | ||||
|       mute: "Mute" | ||||
|       muted: "Muting" | ||||
|       unmute: "Unmute" | ||||
| 
 | ||||
|       photos: | ||||
|         title: "Photos" | ||||
|         loading: "Loading" | ||||
|  |  | |||
|  | @ -473,6 +473,11 @@ desktop: | |||
|     mk-user: | ||||
|       last-used-at: "最終アクセス" | ||||
| 
 | ||||
|       follows-you: "フォローされています" | ||||
|       mute: "ミュートする" | ||||
|       muted: "ミュートしています" | ||||
|       unmute: "ミュート解除" | ||||
| 
 | ||||
|       photos: | ||||
|         title: "フォト" | ||||
|         loading: "読み込み中" | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ import deepcopy = require('deepcopy'); | |||
| import { default as User, IUser } from '../models/user'; | ||||
| import serializePost from './post'; | ||||
| import Following from '../models/following'; | ||||
| import Mute from '../models/mute'; | ||||
| import getFriends from '../common/get-friends'; | ||||
| import config from '../../conf'; | ||||
| import rap from '@prezzemolo/rap'; | ||||
|  | @ -113,7 +114,7 @@ export default ( | |||
| 	} | ||||
| 
 | ||||
| 	if (meId && !meId.equals(_user.id)) { | ||||
| 		// If the user is following
 | ||||
| 		// Whether the user is following
 | ||||
| 		_user.is_following = (async () => { | ||||
| 			const follow = await Following.findOne({ | ||||
| 				follower_id: meId, | ||||
|  | @ -123,7 +124,7 @@ export default ( | |||
| 			return follow !== null; | ||||
| 		})(); | ||||
| 
 | ||||
| 		// If the user is followed
 | ||||
| 		// Whether the user is followed
 | ||||
| 		_user.is_followed = (async () => { | ||||
| 			const follow2 = await Following.findOne({ | ||||
| 				follower_id: _user.id, | ||||
|  | @ -132,6 +133,16 @@ export default ( | |||
| 			}); | ||||
| 			return follow2 !== null; | ||||
| 		})(); | ||||
| 
 | ||||
| 		// Whether the user is muted
 | ||||
| 		_user.is_muted = (async () => { | ||||
| 			const mute = await Mute.findOne({ | ||||
| 				muter_id: meId, | ||||
| 				mutee_id: _user.id, | ||||
| 				deleted_at: { $exists: false } | ||||
| 			}); | ||||
| 			return mute !== null; | ||||
| 		})(); | ||||
| 	} | ||||
| 
 | ||||
| 	if (opts.detail) { | ||||
|  |  | |||
|  | @ -226,7 +226,9 @@ | |||
| <mk-user-profile> | ||||
| 	<div class="friend-form" if={ SIGNIN && I.id != user.id }> | ||||
| 		<mk-big-follow-button user={ user }/> | ||||
| 		<p class="followed" if={ user.is_followed }>フォローされています</p> | ||||
| 		<p class="followed" if={ user.is_followed }>%i18n:desktop.tags.mk-user.follows-you%</p> | ||||
| 		<p if={ user.is_muted }>%i18n:desktop.tags.mk-user.muted% <a onclick={ unmute }>%i18n:desktop.tags.mk-user.unmute%</a></p> | ||||
| 		<p if={ !user.is_muted }><a onclick={ mute }>%i18n:desktop.tags.mk-user.mute%</a></p> | ||||
| 	</div> | ||||
| 	<div class="description" if={ user.description }>{ user.description }</div> | ||||
| 	<div class="birthday" if={ user.profile.birthday }> | ||||
|  | @ -311,6 +313,7 @@ | |||
| 		this.age = require('s-age'); | ||||
| 
 | ||||
| 		this.mixin('i'); | ||||
| 		this.mixin('api'); | ||||
| 
 | ||||
| 		this.user = this.opts.user; | ||||
| 
 | ||||
|  | @ -325,6 +328,28 @@ | |||
| 				user: this.user | ||||
| 			}); | ||||
| 		}; | ||||
| 
 | ||||
| 		this.mute = () => { | ||||
| 			this.api('mute/create', { | ||||
| 				user_id: this.user.id | ||||
| 			}).then(() => { | ||||
| 				this.user.is_muted = true; | ||||
| 				this.update(); | ||||
| 			}, e => { | ||||
| 				alert('error'); | ||||
| 			}); | ||||
| 		}; | ||||
| 
 | ||||
| 		this.unmute = () => { | ||||
| 			this.api('mute/delete', { | ||||
| 				user_id: this.user.id | ||||
| 			}).then(() => { | ||||
| 				this.user.is_muted = false; | ||||
| 				this.update(); | ||||
| 			}, e => { | ||||
| 				alert('error'); | ||||
| 			}); | ||||
| 		}; | ||||
| 	</script> | ||||
| </mk-user-profile> | ||||
| 
 | ||||
|  |  | |||
|  | @ -75,6 +75,12 @@ props: | |||
|     optional: true | ||||
|     desc: | ||||
|       ja: "自分がこのユーザーにフォローされているか" | ||||
|   - name: "is_muted" | ||||
|     type: "boolean" | ||||
|     optional: true | ||||
|     desc: | ||||
|       ja: "自分がこのユーザーをミュートしているか" | ||||
|       en: "Whether you muted this user" | ||||
|   - name: "last_used_at" | ||||
|     type: "date" | ||||
|     optional: false | ||||
|  |  | |||
							
								
								
									
										3
									
								
								src/web/docs/mute.ja.pug
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/web/docs/mute.ja.pug
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| h1 ミュート | ||||
| 
 | ||||
| p ユーザーをミュートすると、タイムラインや検索結果に対象のユーザーの投稿(およびそれらの投稿に対する返信やRepost)が表示されなくなります。 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue