summaryrefslogtreecommitdiff
path: root/src/server/web/app/common/views/components/connect-failed.vue
diff options
context:
space:
mode:
authorAkihiko Odaki <nekomanma@pixiv.co.jp>2018-03-29 01:20:40 +0900
committerAkihiko Odaki <nekomanma@pixiv.co.jp>2018-03-29 01:54:41 +0900
commit90f8fe7e538bb7e52d2558152a0390e693f39b11 (patch)
tree0f830887053c8f352b1cd0c13ca715fd14c1f030 /src/server/web/app/common/views/components/connect-failed.vue
parentImplement remote account resolution (diff)
downloadmisskey-90f8fe7e538bb7e52d2558152a0390e693f39b11.tar.gz
misskey-90f8fe7e538bb7e52d2558152a0390e693f39b11.tar.bz2
misskey-90f8fe7e538bb7e52d2558152a0390e693f39b11.zip
Introduce processor
Diffstat (limited to 'src/server/web/app/common/views/components/connect-failed.vue')
-rw-r--r--src/server/web/app/common/views/components/connect-failed.vue106
1 files changed, 106 insertions, 0 deletions
diff --git a/src/server/web/app/common/views/components/connect-failed.vue b/src/server/web/app/common/views/components/connect-failed.vue
new file mode 100644
index 0000000000..185250dbd8
--- /dev/null
+++ b/src/server/web/app/common/views/components/connect-failed.vue
@@ -0,0 +1,106 @@
+<template>
+<div class="mk-connect-failed">
+ <img src="data:image/jpeg;base64,%base64:/assets/error.jpg%" alt=""/>
+ <h1>%i18n:common.tags.mk-error.title%</h1>
+ <p class="text">
+ {{ '%i18n:common.tags.mk-error.description%'.substr(0, '%i18n:common.tags.mk-error.description%'.indexOf('{')) }}
+ <a @click="reload">{{ '%i18n:common.tags.mk-error.description%'.match(/\{(.+?)\}/)[1] }}</a>
+ {{ '%i18n:common.tags.mk-error.description%'.substr('%i18n:common.tags.mk-error.description%'.indexOf('}') + 1) }}
+ </p>
+ <button v-if="!troubleshooting" @click="troubleshooting = true">%i18n:common.tags.mk-error.troubleshoot%</button>
+ <x-troubleshooter v-if="troubleshooting"/>
+ <p class="thanks">%i18n:common.tags.mk-error.thanks%</p>
+</div>
+</template>
+
+<script lang="ts">
+import Vue from 'vue';
+import XTroubleshooter from './connect-failed.troubleshooter.vue';
+
+export default Vue.extend({
+ components: {
+ XTroubleshooter
+ },
+ data() {
+ return {
+ troubleshooting: false
+ };
+ },
+ mounted() {
+ document.title = 'Oops!';
+ document.documentElement.style.background = '#f8f8f8';
+ },
+ methods: {
+ reload() {
+ location.reload();
+ }
+ }
+});
+</script>
+
+<style lang="stylus" scoped>
+@import '~const.styl'
+
+.mk-connect-failed
+ width 100%
+ padding 32px 18px
+ text-align center
+
+ > img
+ display block
+ height 200px
+ margin 0 auto
+ pointer-events none
+ user-select none
+
+ > h1
+ display block
+ margin 1.25em auto 0.65em auto
+ font-size 1.5em
+ color #555
+
+ > .text
+ display block
+ margin 0 auto
+ max-width 600px
+ font-size 1em
+ color #666
+
+ > button
+ display block
+ margin 1em auto 0 auto
+ padding 8px 10px
+ color $theme-color-foreground
+ background $theme-color
+
+ &:focus
+ outline solid 3px rgba($theme-color, 0.3)
+
+ &:hover
+ background lighten($theme-color, 10%)
+
+ &:active
+ background darken($theme-color, 10%)
+
+ > .troubleshooter
+ margin 1em auto 0 auto
+
+ > .thanks
+ display block
+ margin 2em auto 0 auto
+ padding 2em 0 0 0
+ max-width 600px
+ font-size 0.9em
+ font-style oblique
+ color #aaa
+ border-top solid 1px #eee
+
+ @media (max-width 500px)
+ padding 24px 18px
+ font-size 80%
+
+ > img
+ height 150px
+
+</style>
+