This commit is contained in:
		
							parent
							
								
									09e443aeb3
								
							
						
					
					
						commit
						29ed58e4b3
					
				
					 7 changed files with 213 additions and 7 deletions
				
			
		|  | @ -4,6 +4,7 @@ ChangeLog | ||||||
| 
 | 
 | ||||||
| unreleased | unreleased | ||||||
| ---------- | ---------- | ||||||
|  | * New: モバイル版からプロフィールを設定できるように | ||||||
| * Improve: 投稿ページに次の投稿/前の投稿リンクを作成 (#734) | * Improve: 投稿ページに次の投稿/前の投稿リンクを作成 (#734) | ||||||
| * Improve: タイムラインの投稿をダブルクリックすることで詳細な情報が見れるように | * Improve: タイムラインの投稿をダブルクリックすることで詳細な情報が見れるように | ||||||
| * Fix: モバイル版でおすすめユーザーをフォローしてもタイムラインが更新されない (#736) | * Fix: モバイル版でおすすめユーザーをフォローしてもタイムラインが更新されない (#736) | ||||||
|  |  | ||||||
|  | @ -336,12 +336,28 @@ mobile: | ||||||
|     mk-search-page: |     mk-search-page: | ||||||
|       search: "Search" |       search: "Search" | ||||||
| 
 | 
 | ||||||
|  |     mk-settings: | ||||||
|  |       signed-in-as: "Signed in as {}" | ||||||
|  | 
 | ||||||
|     mk-settings-page: |     mk-settings-page: | ||||||
|       profile: "Profile" |       profile: "Profile" | ||||||
|       applications: "Applications" |       applications: "Applications" | ||||||
|       twitter-integration: "Twitter integration" |       twitter-integration: "Twitter integration" | ||||||
|       signin-history: "Sign in history" |       signin-history: "Sign in history" | ||||||
|  |       api: "API" | ||||||
|       settings: "Settings" |       settings: "Settings" | ||||||
|  |       signout: "Sign out" | ||||||
|  | 
 | ||||||
|  |     mk-profile-setting-page: | ||||||
|  |       title: "Profile Settings" | ||||||
|  | 
 | ||||||
|  |     mk-profile-setting: | ||||||
|  |       name: "Name" | ||||||
|  |       location: "Location" | ||||||
|  |       description: "Description" | ||||||
|  |       birthday: "Birthday" | ||||||
|  |       save: "Save" | ||||||
|  |       saved: "Profile updated successfully" | ||||||
| 
 | 
 | ||||||
|     mk-user-followers-page: |     mk-user-followers-page: | ||||||
|       followers-of: "Followers of {}" |       followers-of: "Followers of {}" | ||||||
|  |  | ||||||
|  | @ -336,12 +336,28 @@ mobile: | ||||||
|     mk-search-page: |     mk-search-page: | ||||||
|       search: "検索" |       search: "検索" | ||||||
| 
 | 
 | ||||||
|  |     mk-settings: | ||||||
|  |       signed-in-as: "{}としてサインイン中" | ||||||
|  | 
 | ||||||
|     mk-settings-page: |     mk-settings-page: | ||||||
|       profile: "プロフィール" |       profile: "プロフィール" | ||||||
|       applications: "アプリケーション" |       applications: "アプリケーション" | ||||||
|       twitter-integration: "Twitter連携" |       twitter-integration: "Twitter連携" | ||||||
|       signin-history: "ログイン履歴" |       signin-history: "ログイン履歴" | ||||||
|  |       api: "API" | ||||||
|       settings: "設定" |       settings: "設定" | ||||||
|  |       signout: "サインアウト" | ||||||
|  | 
 | ||||||
|  |     mk-profile-setting-page: | ||||||
|  |       title: "プロフィール設定" | ||||||
|  | 
 | ||||||
|  |     mk-profile-setting: | ||||||
|  |       name: "名前" | ||||||
|  |       location: "場所" | ||||||
|  |       description: "自己紹介" | ||||||
|  |       birthday: "誕生日" | ||||||
|  |       save: "保存" | ||||||
|  |       saved: "プロフィールを保存しました" | ||||||
| 
 | 
 | ||||||
|     mk-user-followers-page: |     mk-user-followers-page: | ||||||
|       followers-of: "{}のフォロワー" |       followers-of: "{}のフォロワー" | ||||||
|  |  | ||||||
|  | @ -15,6 +15,7 @@ export default me => { | ||||||
| 	route('/i/drive/folder/:folder',     drive); | 	route('/i/drive/folder/:folder',     drive); | ||||||
| 	route('/i/drive/file/:file',         drive); | 	route('/i/drive/file/:file',         drive); | ||||||
| 	route('/i/settings',                 settings); | 	route('/i/settings',                 settings); | ||||||
|  | 	route('/i/settings/profile',         settingsProfile); | ||||||
| 	route('/i/settings/signin-history',  settingsSignin); | 	route('/i/settings/signin-history',  settingsSignin); | ||||||
| 	route('/i/settings/api',             settingsApi); | 	route('/i/settings/api',             settingsApi); | ||||||
| 	route('/i/settings/twitter',         settingsTwitter); | 	route('/i/settings/twitter',         settingsTwitter); | ||||||
|  | @ -63,6 +64,10 @@ export default me => { | ||||||
| 		mount(document.createElement('mk-settings-page')); | 		mount(document.createElement('mk-settings-page')); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	function settingsProfile() { | ||||||
|  | 		mount(document.createElement('mk-profile-setting-page')); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	function settingsSignin() { | 	function settingsSignin() { | ||||||
| 		mount(document.createElement('mk-signin-history-page')); | 		mount(document.createElement('mk-signin-history-page')); | ||||||
| 	} | 	} | ||||||
|  | @ -130,6 +135,7 @@ export default me => { | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| function mount(content) { | function mount(content) { | ||||||
|  | 	document.documentElement.style.background = '#fff'; | ||||||
| 	if (page) page.unmount(); | 	if (page) page.unmount(); | ||||||
| 	const body = document.getElementById('app'); | 	const body = document.getElementById('app'); | ||||||
| 	page = riot.mount(body.appendChild(content))[0]; | 	page = riot.mount(body.appendChild(content))[0]; | ||||||
|  |  | ||||||
|  | @ -14,6 +14,7 @@ require('./page/post.tag'); | ||||||
| require('./page/new-post.tag'); | require('./page/new-post.tag'); | ||||||
| require('./page/search.tag'); | require('./page/search.tag'); | ||||||
| require('./page/settings.tag'); | require('./page/settings.tag'); | ||||||
|  | require('./page/settings/profile.tag'); | ||||||
| require('./page/settings/signin.tag'); | require('./page/settings/signin.tag'); | ||||||
| require('./page/settings/api.tag'); | require('./page/settings/api.tag'); | ||||||
| require('./page/settings/authorized-apps.tag'); | require('./page/settings/authorized-apps.tag'); | ||||||
|  |  | ||||||
|  | @ -1,12 +1,6 @@ | ||||||
| <mk-settings-page> | <mk-settings-page> | ||||||
| 	<mk-ui ref="ui"> | 	<mk-ui ref="ui"> | ||||||
| 		<ul> | 		<mk-settings /> | ||||||
| 			<li><a><i class="fa fa-user"></i>%i18n:mobile.tags.mk-settings-page.profile%</a></li> |  | ||||||
| 			<li><a href="./settings/authorized-apps"><i class="fa fa-puzzle-piece"></i>%i18n:mobile.tags.mk-settings-page.applications%</a></li> |  | ||||||
| 			<li><a href="./settings/twitter"><i class="fa fa-twitter"></i>%i18n:mobile.tags.mk-settings-page.twitter-integration%</a></li> |  | ||||||
| 			<li><a href="./settings/signin-history"><i class="fa fa-sign-in"></i>%i18n:mobile.tags.mk-settings-page.signin-history%</a></li> |  | ||||||
| 			<li><a href="./settings/api"><i class="fa fa-key"></i>API</a></li> |  | ||||||
| 		</ul> |  | ||||||
| 	</mk-ui> | 	</mk-ui> | ||||||
| 	<style> | 	<style> | ||||||
| 		:scope | 		:scope | ||||||
|  | @ -18,6 +12,72 @@ | ||||||
| 		this.on('mount', () => { | 		this.on('mount', () => { | ||||||
| 			document.title = 'Misskey | %i18n:mobile.tags.mk-settings-page.settings%'; | 			document.title = 'Misskey | %i18n:mobile.tags.mk-settings-page.settings%'; | ||||||
| 			ui.trigger('title', '<i class="fa fa-cog"></i>%i18n:mobile.tags.mk-settings-page.settings%'); | 			ui.trigger('title', '<i class="fa fa-cog"></i>%i18n:mobile.tags.mk-settings-page.settings%'); | ||||||
|  | 			document.documentElement.style.background = '#eee'; | ||||||
| 		}); | 		}); | ||||||
| 	</script> | 	</script> | ||||||
| </mk-settings-page> | </mk-settings-page> | ||||||
|  | 
 | ||||||
|  | <mk-settings> | ||||||
|  | 	<p><mk-raw content={ '%i18n:mobile.tags.mk-settings.signed-in-as%'.replace('{}', '<b>' + I.name + '</b>') }/></p> | ||||||
|  | 	<ul> | ||||||
|  | 		<li><a href="./settings/profile"><i class="fa fa-user"></i>%i18n:mobile.tags.mk-settings-page.profile%<i class="fa fa-angle-right"></i></a></li> | ||||||
|  | 		<li><a href="./settings/authorized-apps"><i class="fa fa-puzzle-piece"></i>%i18n:mobile.tags.mk-settings-page.applications%<i class="fa fa-angle-right"></i></a></li> | ||||||
|  | 		<li><a href="./settings/twitter"><i class="fa fa-twitter"></i>%i18n:mobile.tags.mk-settings-page.twitter-integration%<i class="fa fa-angle-right"></i></a></li> | ||||||
|  | 		<li><a href="./settings/signin-history"><i class="fa fa-sign-in"></i>%i18n:mobile.tags.mk-settings-page.signin-history%<i class="fa fa-angle-right"></i></a></li> | ||||||
|  | 		<li><a href="./settings/api"><i class="fa fa-key"></i>%i18n:mobile.tags.mk-settings-page.api%<i class="fa fa-angle-right"></i></a></li> | ||||||
|  | 	</ul> | ||||||
|  | 	<ul> | ||||||
|  | 		<li><a onclick={ signout }><i class="fa fa-power-off"></i>%i18n:mobile.tags.mk-settings-page.signout%</a></li> | ||||||
|  | 	</ul> | ||||||
|  | 	<style> | ||||||
|  | 		:scope | ||||||
|  | 			display block | ||||||
|  | 
 | ||||||
|  | 			> p | ||||||
|  | 				display block | ||||||
|  | 				margin 24px | ||||||
|  | 				text-align center | ||||||
|  | 				color #555 | ||||||
|  | 
 | ||||||
|  | 			> ul | ||||||
|  | 				display block | ||||||
|  | 				margin 16px 0 | ||||||
|  | 				padding 0 | ||||||
|  | 				list-style none | ||||||
|  | 				border-top solid 1px #aaa | ||||||
|  | 
 | ||||||
|  | 				> li | ||||||
|  | 					display block | ||||||
|  | 					background #fff | ||||||
|  | 					border-bottom solid 1px #aaa | ||||||
|  | 
 | ||||||
|  | 					> a | ||||||
|  | 						$height = 48px | ||||||
|  | 
 | ||||||
|  | 						display block | ||||||
|  | 						position relative | ||||||
|  | 						padding 0 16px | ||||||
|  | 						line-height $height | ||||||
|  | 						color #4d635e | ||||||
|  | 
 | ||||||
|  | 						> i:nth-of-type(1) | ||||||
|  | 							margin-right 4px | ||||||
|  | 
 | ||||||
|  | 						> i:nth-of-type(2) | ||||||
|  | 							display block | ||||||
|  | 							position absolute | ||||||
|  | 							top 0 | ||||||
|  | 							right 8px | ||||||
|  | 							z-index 1 | ||||||
|  | 							padding 0 20px | ||||||
|  | 							font-size 1.2em | ||||||
|  | 							line-height $height | ||||||
|  | 
 | ||||||
|  | 	</style> | ||||||
|  | 	<script> | ||||||
|  | 		import signout from '../../../common/scripts/signout'; | ||||||
|  | 		this.signout = signout; | ||||||
|  | 
 | ||||||
|  | 		this.mixin('i'); | ||||||
|  | 	</script> | ||||||
|  | </mk-settings> | ||||||
|  |  | ||||||
							
								
								
									
										106
									
								
								src/web/app/mobile/tags/page/settings/profile.tag
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								src/web/app/mobile/tags/page/settings/profile.tag
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,106 @@ | ||||||
|  | <mk-profile-setting-page> | ||||||
|  | 	<mk-ui ref="ui"> | ||||||
|  | 		<mk-profile-setting/> | ||||||
|  | 	</mk-ui> | ||||||
|  | 	<style> | ||||||
|  | 		:scope | ||||||
|  | 			display block | ||||||
|  | 	</style> | ||||||
|  | 	<script> | ||||||
|  | 		import ui from '../../../scripts/ui-event'; | ||||||
|  | 
 | ||||||
|  | 		this.on('mount', () => { | ||||||
|  | 			document.title = 'Misskey | %i18n:mobile.tags.mk-profile-setting-page.title%'; | ||||||
|  | 			ui.trigger('title', '<i class="fa fa-user"></i>%i18n:mobile.tags.mk-profile-setting-page.title%'); | ||||||
|  | 			document.documentElement.style.background = '#eee'; | ||||||
|  | 		}); | ||||||
|  | 	</script> | ||||||
|  | </mk-profile-setting-page> | ||||||
|  | 
 | ||||||
|  | <mk-profile-setting> | ||||||
|  | 	<label> | ||||||
|  | 		<p>%i18n:mobile.tags.mk-profile-setting.name%</p> | ||||||
|  | 		<input ref="name" type="text" value={ I.name }/> | ||||||
|  | 	</label> | ||||||
|  | 	<label> | ||||||
|  | 		<p>%i18n:mobile.tags.mk-profile-setting.location%</p> | ||||||
|  | 		<input ref="location" type="text" value={ I.profile.location }/> | ||||||
|  | 	</label> | ||||||
|  | 	<label> | ||||||
|  | 		<p>%i18n:mobile.tags.mk-profile-setting.description%</p> | ||||||
|  | 		<textarea ref="description">{ I.description }</textarea> | ||||||
|  | 	</label> | ||||||
|  | 	<label> | ||||||
|  | 		<p>%i18n:mobile.tags.mk-profile-setting.birthday%</p> | ||||||
|  | 		<input ref="birthday" type="date" value={ I.profile.birthday }/> | ||||||
|  | 	</label> | ||||||
|  | 	<button class="save" onclick={ save } disabled={ saving }><i class="fa fa-check"></i>%i18n:mobile.tags.mk-profile-setting.save%</button> | ||||||
|  | 	<style> | ||||||
|  | 		:scope | ||||||
|  | 			display block | ||||||
|  | 
 | ||||||
|  | 			> label | ||||||
|  | 				display block | ||||||
|  | 				margin 0 | ||||||
|  | 				padding 16px 0 | ||||||
|  | 
 | ||||||
|  | 				> p:first-child | ||||||
|  | 					display block | ||||||
|  | 					margin 0 | ||||||
|  | 					padding 0 0 4px 8px | ||||||
|  | 					font-weight bold | ||||||
|  | 					color #333 | ||||||
|  | 
 | ||||||
|  | 				> input[type="text"] | ||||||
|  | 				> textarea | ||||||
|  | 					display block | ||||||
|  | 					width 100% | ||||||
|  | 					padding 12px | ||||||
|  | 					font-size 16px | ||||||
|  | 					border none | ||||||
|  | 					border-radius none | ||||||
|  | 
 | ||||||
|  | 				> textarea | ||||||
|  | 					min-height 80px | ||||||
|  | 
 | ||||||
|  | 			> .save | ||||||
|  | 				display block | ||||||
|  | 				margin 8px | ||||||
|  | 				padding 16px | ||||||
|  | 				width calc(100% - 16px) | ||||||
|  | 				font-size 16px | ||||||
|  | 				color $theme-color-foreground | ||||||
|  | 				background $theme-color | ||||||
|  | 				border-radius 4px | ||||||
|  | 
 | ||||||
|  | 				&:disabled | ||||||
|  | 					opacity 0.7 | ||||||
|  | 
 | ||||||
|  | 				> i | ||||||
|  | 					margin-right 4px | ||||||
|  | 
 | ||||||
|  | 	</style> | ||||||
|  | 	<script> | ||||||
|  | 		this.mixin('i'); | ||||||
|  | 		this.mixin('api'); | ||||||
|  | 
 | ||||||
|  | 		this.save = () => { | ||||||
|  | 			this.update({ | ||||||
|  | 				saving: true | ||||||
|  | 			}); | ||||||
|  | 
 | ||||||
|  | 			this.api('i/update', { | ||||||
|  | 				name: this.refs.name.value, | ||||||
|  | 				location: this.refs.location.value || null, | ||||||
|  | 				description: this.refs.description.value || null, | ||||||
|  | 				birthday: this.refs.birthday.value || null | ||||||
|  | 			}).then(() => { | ||||||
|  | 				this.update({ | ||||||
|  | 					saving: false | ||||||
|  | 				}); | ||||||
|  | 
 | ||||||
|  | 				alert('%i18n:mobile.tags.mk-profile-setting.saved%'); | ||||||
|  | 			}); | ||||||
|  | 		}; | ||||||
|  | 	</script> | ||||||
|  | </mk-profile-setting> | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue