wip
This commit is contained in:
		
							parent
							
								
									7664354187
								
							
						
					
					
						commit
						92826c406a
					
				
					 12 changed files with 113 additions and 74 deletions
				
			
		|  | @ -11,7 +11,7 @@ const loadLang = lang => yaml.safeLoad( | ||||||
| const native = loadLang('ja'); | const native = loadLang('ja'); | ||||||
| 
 | 
 | ||||||
| const langs = { | const langs = { | ||||||
| 	'en': loadLang('en'), | 	//'en': loadLang('en'),
 | ||||||
| 	'ja': native | 	'ja': native | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,40 +0,0 @@ | ||||||
| <mk-forkit><a href="https://github.com/syuilo/misskey" target="_blank" title="%i18n:common.tags.mk-forkit.open-github-link%" aria-label="%i18n:common.tags.mk-forkit.open-github-link%"> |  | ||||||
| 		<svg width="80" height="80" viewBox="0 0 250 250" aria-hidden="aria-hidden"> |  | ||||||
| 			<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path> |  | ||||||
| 			<path class="octo-arm" d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor"></path> |  | ||||||
| 			<path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor"></path> |  | ||||||
| 		</svg></a> |  | ||||||
| 	<style lang="stylus" scoped> |  | ||||||
| 		:scope |  | ||||||
| 			display block |  | ||||||
| 			position absolute |  | ||||||
| 			top 0 |  | ||||||
| 			right 0 |  | ||||||
| 
 |  | ||||||
| 			> a |  | ||||||
| 				display block |  | ||||||
| 
 |  | ||||||
| 				> svg |  | ||||||
| 					display block |  | ||||||
| 					//fill #151513 |  | ||||||
| 					//color #fff |  | ||||||
| 					fill $theme-color |  | ||||||
| 					color $theme-color-foreground |  | ||||||
| 
 |  | ||||||
| 			.octo-arm |  | ||||||
| 				transform-origin 130px 106px |  | ||||||
| 
 |  | ||||||
| 			&:hover |  | ||||||
| 				.octo-arm |  | ||||||
| 					animation octocat-wave 560ms ease-in-out |  | ||||||
| 
 |  | ||||||
| 			@keyframes octocat-wave |  | ||||||
| 				0%, 100% |  | ||||||
| 					transform rotate(0) |  | ||||||
| 				20%, 60% |  | ||||||
| 					transform rotate(-25deg) |  | ||||||
| 				40%, 80% |  | ||||||
| 					transform rotate(10deg) |  | ||||||
| 
 |  | ||||||
| 	</style> |  | ||||||
| </mk-forkit> |  | ||||||
							
								
								
									
										40
									
								
								src/web/app/common/views/components/forkit.vue
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/web/app/common/views/components/forkit.vue
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | ||||||
|  | <template> | ||||||
|  | <a class="a" href="https://github.com/syuilo/misskey" target="_blank" title="%i18n:common.tags.mk-forkit.open-github-link%" aria-label="%i18n:common.tags.mk-forkit.open-github-link%"> | ||||||
|  | 	<svg width="80" height="80" viewBox="0 0 250 250" aria-hidden="aria-hidden"> | ||||||
|  | 		<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path> | ||||||
|  | 		<path class="octo-arm" d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor"></path> | ||||||
|  | 		<path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor"></path> | ||||||
|  | 	</svg> | ||||||
|  | </a> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <style lang="stylus" scoped> | ||||||
|  | 	.a | ||||||
|  | 		display block | ||||||
|  | 		position absolute | ||||||
|  | 		top 0 | ||||||
|  | 		right 0 | ||||||
|  | 
 | ||||||
|  | 		> svg | ||||||
|  | 			display block | ||||||
|  | 			//fill #151513 | ||||||
|  | 			//color #fff | ||||||
|  | 			fill $theme-color | ||||||
|  | 			color $theme-color-foreground | ||||||
|  | 
 | ||||||
|  | 			.octo-arm | ||||||
|  | 				transform-origin 130px 106px | ||||||
|  | 
 | ||||||
|  | 		&:hover | ||||||
|  | 			.octo-arm | ||||||
|  | 				animation octocat-wave 560ms ease-in-out | ||||||
|  | 
 | ||||||
|  | 		@keyframes octocat-wave | ||||||
|  | 			0%, 100% | ||||||
|  | 				transform rotate(0) | ||||||
|  | 			20%, 60% | ||||||
|  | 				transform rotate(-25deg) | ||||||
|  | 			40%, 80% | ||||||
|  | 				transform rotate(10deg) | ||||||
|  | 
 | ||||||
|  | </style> | ||||||
|  | @ -2,6 +2,8 @@ import Vue from 'vue'; | ||||||
| 
 | 
 | ||||||
| import signin from './signin.vue'; | import signin from './signin.vue'; | ||||||
| import signup from './signup.vue'; | import signup from './signup.vue'; | ||||||
|  | import forkit from './forkit.vue'; | ||||||
| 
 | 
 | ||||||
| Vue.component('mk-signin', signin); | Vue.component('mk-signin', signin); | ||||||
| Vue.component('mk-signup', signup); | Vue.component('mk-signup', signup); | ||||||
|  | Vue.component('mk-forkit', forkit); | ||||||
|  |  | ||||||
|  | @ -13,20 +13,22 @@ | ||||||
| </form> | </form> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script> | <script lang="ts"> | ||||||
| import Vue from 'vue'; | import Vue from 'vue'; | ||||||
| 
 | 
 | ||||||
| export default Vue.extend({ | export default Vue.extend({ | ||||||
| 	props: ['os'], |  | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			signing: false, | 			signing: false, | ||||||
| 			user: null | 			user: null, | ||||||
|  | 			username: '', | ||||||
|  | 			password: '', | ||||||
|  | 			token: '' | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		onUsernameChange() { | 		onUsernameChange() { | ||||||
| 			this.os.api('users/show', { | 			this.$root.$data.os.api('users/show', { | ||||||
| 				username: this.username | 				username: this.username | ||||||
| 			}).then(user => { | 			}).then(user => { | ||||||
| 				this.user = user; | 				this.user = user; | ||||||
|  | @ -35,7 +37,7 @@ export default Vue.extend({ | ||||||
| 		onSubmit() { | 		onSubmit() { | ||||||
| 			this.signing = true; | 			this.signing = true; | ||||||
| 
 | 
 | ||||||
| 			this.os.api('signin', { | 			this.$root.$data.os.api('signin', { | ||||||
| 				username: this.username, | 				username: this.username, | ||||||
| 				password: this.password, | 				password: this.password, | ||||||
| 				token: this.user && this.user.two_factor_enabled ? this.token : undefined | 				token: this.user && this.user.two_factor_enabled ? this.token : undefined | ||||||
|  |  | ||||||
|  | @ -2,8 +2,8 @@ | ||||||
| <form class="mk-signup" @submit.prevent="onSubmit" autocomplete="off"> | <form class="mk-signup" @submit.prevent="onSubmit" autocomplete="off"> | ||||||
| 	<label class="username"> | 	<label class="username"> | ||||||
| 		<p class="caption">%fa:at%%i18n:common.tags.mk-signup.username%</p> | 		<p class="caption">%fa:at%%i18n:common.tags.mk-signup.username%</p> | ||||||
| 		<input v-model="username" type="text" pattern="^[a-zA-Z0-9-]{3,20}$" placeholder="a~z、A~Z、0~9、-" autocomplete="off" required @keyup="onChangeUsername"/> | 		<input v-model="username" type="text" pattern="^[a-zA-Z0-9-]{3,20}$" placeholder="a~z、A~Z、0~9、-" autocomplete="off" required @input="onChangeUsername"/> | ||||||
| 		<p class="profile-page-url-preview" v-if="username != '' && username-state != 'invalidFormat' && username-state != 'minRange' && username-state != 'maxRange'">{ _URL_ + '/' + refs.username.value }</p> | 		<p class="profile-page-url-preview" v-if="shouldShowProfileUrl">{{ `${url}/${username}` }}</p> | ||||||
| 		<p class="info" v-if="usernameState == 'wait'" style="color:#999">%fa:spinner .pulse .fw%%i18n:common.tags.mk-signup.checking%</p> | 		<p class="info" v-if="usernameState == 'wait'" style="color:#999">%fa:spinner .pulse .fw%%i18n:common.tags.mk-signup.checking%</p> | ||||||
| 		<p class="info" v-if="usernameState == 'ok'" style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.available%</p> | 		<p class="info" v-if="usernameState == 'ok'" style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.available%</p> | ||||||
| 		<p class="info" v-if="usernameState == 'unavailable'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.unavailable%</p> | 		<p class="info" v-if="usernameState == 'unavailable'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.unavailable%</p> | ||||||
|  | @ -14,8 +14,8 @@ | ||||||
| 	</label> | 	</label> | ||||||
| 	<label class="password"> | 	<label class="password"> | ||||||
| 		<p class="caption">%fa:lock%%i18n:common.tags.mk-signup.password%</p> | 		<p class="caption">%fa:lock%%i18n:common.tags.mk-signup.password%</p> | ||||||
| 		<input v-model="password" type="password" placeholder="%i18n:common.tags.mk-signup.password-placeholder%" autocomplete="off" required @keyup="onChangePassword"/> | 		<input v-model="password" type="password" placeholder="%i18n:common.tags.mk-signup.password-placeholder%" autocomplete="off" required @input="onChangePassword"/> | ||||||
| 		<div class="meter" v-if="passwordStrength != ''" :data-strength="passwordStrength"> | 		<div class="meter" v-show="passwordStrength != ''" :data-strength="passwordStrength"> | ||||||
| 			<div class="value" ref="passwordMetar"></div> | 			<div class="value" ref="passwordMetar"></div> | ||||||
| 		</div> | 		</div> | ||||||
| 		<p class="info" v-if="passwordStrength == 'low'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.weak-password%</p> | 		<p class="info" v-if="passwordStrength == 'low'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.weak-password%</p> | ||||||
|  | @ -24,13 +24,13 @@ | ||||||
| 	</label> | 	</label> | ||||||
| 	<label class="retype-password"> | 	<label class="retype-password"> | ||||||
| 		<p class="caption">%fa:lock%%i18n:common.tags.mk-signup.password%(%i18n:common.tags.mk-signup.retype%)</p> | 		<p class="caption">%fa:lock%%i18n:common.tags.mk-signup.password%(%i18n:common.tags.mk-signup.retype%)</p> | ||||||
| 		<input v-model="retypedPassword" type="password" placeholder="%i18n:common.tags.mk-signup.retype-placeholder%" autocomplete="off" required @keyup="onChangePasswordRetype"/> | 		<input v-model="retypedPassword" type="password" placeholder="%i18n:common.tags.mk-signup.retype-placeholder%" autocomplete="off" required @input="onChangePasswordRetype"/> | ||||||
| 		<p class="info" v-if="passwordRetypeState == 'match'" style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.password-matched%</p> | 		<p class="info" v-if="passwordRetypeState == 'match'" style="color:#3CB7B5">%fa:check .fw%%i18n:common.tags.mk-signup.password-matched%</p> | ||||||
| 		<p class="info" v-if="passwordRetypeState == 'not-match'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.password-not-matched%</p> | 		<p class="info" v-if="passwordRetypeState == 'not-match'" style="color:#FF1161">%fa:exclamation-triangle .fw%%i18n:common.tags.mk-signup.password-not-matched%</p> | ||||||
| 	</label> | 	</label> | ||||||
| 	<label class="recaptcha"> | 	<label class="recaptcha"> | ||||||
| 		<p class="caption"><template v-if="recaptchaed">%fa:toggle-on%</template><template v-if="!recaptchaed">%fa:toggle-off%</template>%i18n:common.tags.mk-signup.recaptcha%</p> | 		<p class="caption"><template v-if="recaptchaed">%fa:toggle-on%</template><template v-if="!recaptchaed">%fa:toggle-off%</template>%i18n:common.tags.mk-signup.recaptcha%</p> | ||||||
| 		<div v-if="recaptcha" class="g-recaptcha" data-callback="onRecaptchaed" data-expired-callback="onRecaptchaExpired" :data-sitekey="recaptchaSitekey"></div> | 		<div class="g-recaptcha" data-callback="onRecaptchaed" data-expired-callback="onRecaptchaExpired" :data-sitekey="recaptchaSitekey"></div> | ||||||
| 	</label> | 	</label> | ||||||
| 	<label class="agree-tou"> | 	<label class="agree-tou"> | ||||||
| 		<input name="agree-tou" type="checkbox" autocomplete="off" required/> | 		<input name="agree-tou" type="checkbox" autocomplete="off" required/> | ||||||
|  | @ -43,15 +43,15 @@ | ||||||
| <script lang="ts"> | <script lang="ts"> | ||||||
| import Vue from 'vue'; | import Vue from 'vue'; | ||||||
| const getPasswordStrength = require('syuilo-password-strength'); | const getPasswordStrength = require('syuilo-password-strength'); | ||||||
| import { docsUrl, lang, recaptchaSitekey } from '../../../config'; | import { url, docsUrl, lang, recaptchaSitekey } from '../../../config'; | ||||||
| 
 | 
 | ||||||
| export default Vue.extend({ | export default Vue.extend({ | ||||||
| 	props: ['os'], |  | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			username: '', | 			username: '', | ||||||
| 			password: '', | 			password: '', | ||||||
| 			retypedPassword: '', | 			retypedPassword: '', | ||||||
|  | 			url, | ||||||
| 			touUrl: `${docsUrl}/${lang}/tou`, | 			touUrl: `${docsUrl}/${lang}/tou`, | ||||||
| 			recaptchaSitekey, | 			recaptchaSitekey, | ||||||
| 			recaptchaed: false, | 			recaptchaed: false, | ||||||
|  | @ -60,6 +60,14 @@ export default Vue.extend({ | ||||||
| 			passwordRetypeState: null | 			passwordRetypeState: null | ||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
|  | 	computed: { | ||||||
|  | 		shouldShowProfileUrl(): boolean { | ||||||
|  | 			return (this.username != '' && | ||||||
|  | 				this.usernameState != 'invalid-format' && | ||||||
|  | 				this.usernameState != 'min-range' && | ||||||
|  | 				this.usernameState != 'max-range'); | ||||||
|  | 		} | ||||||
|  | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		onChangeUsername() { | 		onChangeUsername() { | ||||||
| 			if (this.username == '') { | 			if (this.username == '') { | ||||||
|  | @ -80,7 +88,7 @@ export default Vue.extend({ | ||||||
| 
 | 
 | ||||||
| 			this.usernameState = 'wait'; | 			this.usernameState = 'wait'; | ||||||
| 
 | 
 | ||||||
| 			this.os.api('username/available', { | 			this.$root.$data.os.api('username/available', { | ||||||
| 				username: this.username | 				username: this.username | ||||||
| 			}).then(result => { | 			}).then(result => { | ||||||
| 				this.usernameState = result.available ? 'ok' : 'unavailable'; | 				this.usernameState = result.available ? 'ok' : 'unavailable'; | ||||||
|  | @ -107,12 +115,12 @@ export default Vue.extend({ | ||||||
| 			this.passwordRetypeState = this.password == this.retypedPassword ? 'match' : 'not-match'; | 			this.passwordRetypeState = this.password == this.retypedPassword ? 'match' : 'not-match'; | ||||||
| 		}, | 		}, | ||||||
| 		onSubmit() { | 		onSubmit() { | ||||||
| 			this.os.api('signup', { | 			this.$root.$data.os.api('signup', { | ||||||
| 				username: this.username, | 				username: this.username, | ||||||
| 				password: this.password, | 				password: this.password, | ||||||
| 				'g-recaptcha-response': (window as any).grecaptcha.getResponse() | 				'g-recaptcha-response': (window as any).grecaptcha.getResponse() | ||||||
| 			}).then(() => { | 			}).then(() => { | ||||||
| 				this.os.api('signin', { | 				this.$root.$data.os.api('signin', { | ||||||
| 					username: this.username, | 					username: this.username, | ||||||
| 					password: this.password | 					password: this.password | ||||||
| 				}).then(() => { | 				}).then(() => { | ||||||
|  |  | ||||||
|  | @ -1,11 +1,21 @@ | ||||||
| declare const _HOST_: string; | declare const _HOST_: string; | ||||||
| declare const _URL_: string; | declare const _URL_: string; | ||||||
|  | declare const _API_URL_: string; | ||||||
| declare const _DOCS_URL_: string; | declare const _DOCS_URL_: string; | ||||||
| declare const _LANG_: string; | declare const _LANG_: string; | ||||||
| declare const _RECAPTCHA_SITEKEY_: string; | declare const _RECAPTCHA_SITEKEY_: string; | ||||||
|  | declare const _SW_PUBLICKEY_: string; | ||||||
|  | declare const _THEME_COLOR_: string; | ||||||
|  | declare const _COPYRIGHT_: string; | ||||||
|  | declare const _VERSION_: string; | ||||||
| 
 | 
 | ||||||
| export const host = _HOST_; | export const host = _HOST_; | ||||||
| export const url = _URL_; | export const url = _URL_; | ||||||
|  | export const apiUrl = _API_URL_; | ||||||
| export const docsUrl = _DOCS_URL_; | export const docsUrl = _DOCS_URL_; | ||||||
| export const lang = _LANG_; | export const lang = _LANG_; | ||||||
| export const recaptchaSitekey = _RECAPTCHA_SITEKEY_; | export const recaptchaSitekey = _RECAPTCHA_SITEKEY_; | ||||||
|  | export const swPublickey = _SW_PUBLICKEY_; | ||||||
|  | export const themeColor = _THEME_COLOR_; | ||||||
|  | export const copyright = _COPYRIGHT_; | ||||||
|  | export const version = _VERSION_; | ||||||
|  |  | ||||||
|  | @ -15,12 +15,17 @@ import MkIndex from './views/pages/index.vue'; | ||||||
| /** | /** | ||||||
|  * init |  * init | ||||||
|  */ |  */ | ||||||
| init(async (os, launch) => { | init(async (launch) => { | ||||||
| 	/** | 	/** | ||||||
| 	 * Fuck AD Block | 	 * Fuck AD Block | ||||||
| 	 */ | 	 */ | ||||||
| 	fuckAdBlock(); | 	fuckAdBlock(); | ||||||
| 
 | 
 | ||||||
|  | 	// Register components
 | ||||||
|  | 	require('./views/components'); | ||||||
|  | 
 | ||||||
|  | 	const app = launch(); | ||||||
|  | 
 | ||||||
| 	/** | 	/** | ||||||
| 	 * Init Notification | 	 * Init Notification | ||||||
| 	 */ | 	 */ | ||||||
|  | @ -31,17 +36,12 @@ init(async (os, launch) => { | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if ((Notification as any).permission == 'granted') { | 		if ((Notification as any).permission == 'granted') { | ||||||
| 			registerNotifications(os.stream); | 			registerNotifications(app.$data.os.stream); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Register components
 |  | ||||||
| 	require('./views/components'); |  | ||||||
| 
 |  | ||||||
| 	const app = launch(); |  | ||||||
| 
 |  | ||||||
| 	app.$router.addRoutes([{ | 	app.$router.addRoutes([{ | ||||||
| 		path: '/', component: MkIndex, props: { os } | 		path: '/', component: MkIndex | ||||||
| 	}]); | 	}]); | ||||||
| }, true); | }, true); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| <template> | <template> | ||||||
| 	<component v-bind:is="os.isSignedIn ? 'home' : 'welcome'"></component> | 	<component v-bind:is="$root.$data.os.isSignedIn ? 'home' : 'welcome'"></component> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script lang="ts"> | <script lang="ts"> | ||||||
|  | @ -8,7 +8,6 @@ import HomeView from './home.vue'; | ||||||
| import WelcomeView from './welcome.vue'; | import WelcomeView from './welcome.vue'; | ||||||
| 
 | 
 | ||||||
| export default Vue.extend({ | export default Vue.extend({ | ||||||
| 	props: ['os'], |  | ||||||
| 	components: { | 	components: { | ||||||
| 		home: HomeView, | 		home: HomeView, | ||||||
| 		welcome: WelcomeView | 		welcome: WelcomeView | ||||||
|  |  | ||||||
|  | @ -19,7 +19,11 @@ | ||||||
| 	</footer> | 	</footer> | ||||||
| 	<modal name="signup" width="500px" height="auto" scrollable> | 	<modal name="signup" width="500px" height="auto" scrollable> | ||||||
| 		<header :class="$style.signupFormHeader">新規登録</header> | 		<header :class="$style.signupFormHeader">新規登録</header> | ||||||
| 		<mk-signup :class="$style.signupForm"></mk-signup> | 		<mk-signup :class="$style.signupForm"/> | ||||||
|  | 	</modal> | ||||||
|  | 	<modal name="signin" width="500px" height="auto" scrollable> | ||||||
|  | 		<header :class="$style.signinFormHeader">ログイン</header> | ||||||
|  | 		<mk-signin :class="$style.signinForm"/> | ||||||
| 	</modal> | 	</modal> | ||||||
| </div> | </div> | ||||||
| </template> | </template> | ||||||
|  | @ -31,6 +35,9 @@ export default Vue.extend({ | ||||||
| 	methods: { | 	methods: { | ||||||
| 		signup() { | 		signup() { | ||||||
| 			this.$modal.show('signup'); | 			this.$modal.show('signup'); | ||||||
|  | 		}, | ||||||
|  | 		signin() { | ||||||
|  | 			this.$modal.show('signin'); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| }); | }); | ||||||
|  | @ -139,4 +146,14 @@ export default Vue.extend({ | ||||||
| 	font-size 1.5em | 	font-size 1.5em | ||||||
| 	color #777 | 	color #777 | ||||||
| 	border-bottom solid 1px #eee | 	border-bottom solid 1px #eee | ||||||
|  | 
 | ||||||
|  | .signinForm | ||||||
|  | 	padding 24px 48px 48px 48px | ||||||
|  | 
 | ||||||
|  | .signinFormHeader | ||||||
|  | 	padding 48px 0 12px 0 | ||||||
|  | 	margin: 0 48px | ||||||
|  | 	font-size 1.5em | ||||||
|  | 	color #777 | ||||||
|  | 	border-bottom solid 1px #eee | ||||||
| </style> | </style> | ||||||
|  |  | ||||||
|  | @ -63,7 +63,7 @@ if (localStorage.getItem('should-refresh') == 'true') { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // MiOSを初期化してコールバックする
 | // MiOSを初期化してコールバックする
 | ||||||
| export default (callback: (os: MiOS, launch: () => Vue) => void, sw = false) => { | export default (callback: (launch: () => Vue) => void, sw = false) => { | ||||||
| 	const mios = new MiOS(sw); | 	const mios = new MiOS(sw); | ||||||
| 
 | 
 | ||||||
| 	mios.init(() => { | 	mios.init(() => { | ||||||
|  | @ -75,6 +75,9 @@ export default (callback: (os: MiOS, launch: () => Vue) => void, sw = false) => | ||||||
| 
 | 
 | ||||||
| 		const launch = () => { | 		const launch = () => { | ||||||
| 			return new Vue({ | 			return new Vue({ | ||||||
|  | 				data: { | ||||||
|  | 					os: mios | ||||||
|  | 				}, | ||||||
| 				router: new VueRouter({ | 				router: new VueRouter({ | ||||||
| 					mode: 'history' | 					mode: 'history' | ||||||
| 				}), | 				}), | ||||||
|  | @ -83,7 +86,7 @@ export default (callback: (os: MiOS, launch: () => Vue) => void, sw = false) => | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		try { | 		try { | ||||||
| 			callback(mios, launch); | 			callback(launch); | ||||||
| 		} catch (e) { | 		} catch (e) { | ||||||
| 			panic(e); | 			panic(e); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -7,16 +7,14 @@ import './style.styl'; | ||||||
| 
 | 
 | ||||||
| require('./tags'); | require('./tags'); | ||||||
| import init from '../init'; | import init from '../init'; | ||||||
| import route from './router'; |  | ||||||
| import MiOS from '../common/mios'; |  | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * init |  * init | ||||||
|  */ |  */ | ||||||
| init((mios: MiOS) => { | init((launch) => { | ||||||
| 	// http://qiita.com/junya/items/3ff380878f26ca447f85
 | 	// http://qiita.com/junya/items/3ff380878f26ca447f85
 | ||||||
| 	document.body.setAttribute('ontouchstart', ''); | 	document.body.setAttribute('ontouchstart', ''); | ||||||
| 
 | 
 | ||||||
| 	// Start routing
 | 	// Start routing
 | ||||||
| 	route(mios); | 	//route(mios);
 | ||||||
| }, true); | }, true); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue