From 93d25a2a34df72fd8ce62cce33fa098cf11d5eb1 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 17 Feb 2020 03:10:51 +0900 Subject: ユーザー設定とクライアント設定を分離 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/app.vue | 16 ++ src/client/pages/my-settings/2fa.vue | 253 +++++++++++++++++++++++++ src/client/pages/my-settings/api.vue | 46 +++++ src/client/pages/my-settings/drive.vue | 212 +++++++++++++++++++++ src/client/pages/my-settings/import-export.vue | 121 ++++++++++++ src/client/pages/my-settings/index.vue | 100 ++++++++++ src/client/pages/my-settings/integration.vue | 131 +++++++++++++ src/client/pages/my-settings/mute-block.vue | 76 ++++++++ src/client/pages/my-settings/privacy.vue | 76 ++++++++ src/client/pages/my-settings/profile.vue | 223 ++++++++++++++++++++++ src/client/pages/my-settings/reaction.vue | 62 ++++++ src/client/pages/my-settings/security.vue | 87 +++++++++ src/client/pages/settings/2fa.vue | 253 ------------------------- src/client/pages/settings/api.vue | 46 ----- src/client/pages/settings/drive.vue | 212 --------------------- src/client/pages/settings/general.vue | 159 ---------------- src/client/pages/settings/import-export.vue | 121 ------------ src/client/pages/settings/index.vue | 146 +++++++++----- src/client/pages/settings/integration.vue | 131 ------------- src/client/pages/settings/mute-block.vue | 76 -------- src/client/pages/settings/privacy.vue | 76 -------- src/client/pages/settings/profile.vue | 223 ---------------------- src/client/pages/settings/reaction.vue | 62 ------ src/client/pages/settings/security.vue | 87 --------- src/client/pages/settings/theme.vue | 22 ++- src/client/router.ts | 3 +- 26 files changed, 1523 insertions(+), 1497 deletions(-) create mode 100644 src/client/pages/my-settings/2fa.vue create mode 100644 src/client/pages/my-settings/api.vue create mode 100644 src/client/pages/my-settings/drive.vue create mode 100644 src/client/pages/my-settings/import-export.vue create mode 100644 src/client/pages/my-settings/index.vue create mode 100644 src/client/pages/my-settings/integration.vue create mode 100644 src/client/pages/my-settings/mute-block.vue create mode 100644 src/client/pages/my-settings/privacy.vue create mode 100644 src/client/pages/my-settings/profile.vue create mode 100644 src/client/pages/my-settings/reaction.vue create mode 100644 src/client/pages/my-settings/security.vue delete mode 100644 src/client/pages/settings/2fa.vue delete mode 100644 src/client/pages/settings/api.vue delete mode 100644 src/client/pages/settings/drive.vue delete mode 100644 src/client/pages/settings/general.vue delete mode 100644 src/client/pages/settings/import-export.vue delete mode 100644 src/client/pages/settings/integration.vue delete mode 100644 src/client/pages/settings/mute-block.vue delete mode 100644 src/client/pages/settings/privacy.vue delete mode 100644 src/client/pages/settings/profile.vue delete mode 100644 src/client/pages/settings/reaction.vue delete mode 100644 src/client/pages/settings/security.vue (limited to 'src') diff --git a/src/client/app.vue b/src/client/app.vue index ecf437cacb..82e118a8b6 100644 --- a/src/client/app.vue +++ b/src/client/app.vue @@ -87,6 +87,9 @@ {{ $t('more') }} + + {{ $t('settings') }} + @@ -881,6 +884,7 @@ export default Vue.extend({ width: $nav-width; height: 100vh; padding: 16px 0; + padding-bottom: calc(3.7rem + 24px); box-sizing: border-box; overflow: auto; background: var(--navBg); @@ -894,6 +898,7 @@ export default Vue.extend({ @media (max-width: $nav-icon-only-threshold) and (min-width: $nav-hide-threshold + 1px) { width: $nav-icon-only-width; padding: 8px 0; + padding-bottom: calc(3.7rem + 24px); > .divider { margin: 8px auto; @@ -948,6 +953,17 @@ export default Vue.extend({ color: var(--navActive); } + &:last-child { + position: fixed; + bottom: 0; + width: inherit; + padding-top: 8px; + padding-bottom: 8px; + background: var(--navBg); + border-top: solid 1px var(--divider); + border-right: solid 1px var(--divider); + } + @media (max-width: $nav-icon-only-threshold) and (min-width: $nav-hide-threshold + 1px) { padding-left: 0; width: 100%; diff --git a/src/client/pages/my-settings/2fa.vue b/src/client/pages/my-settings/2fa.vue new file mode 100644 index 0000000000..8432bdb32d --- /dev/null +++ b/src/client/pages/my-settings/2fa.vue @@ -0,0 +1,253 @@ + + + diff --git a/src/client/pages/my-settings/api.vue b/src/client/pages/my-settings/api.vue new file mode 100644 index 0000000000..f394c826de --- /dev/null +++ b/src/client/pages/my-settings/api.vue @@ -0,0 +1,46 @@ + + + diff --git a/src/client/pages/my-settings/drive.vue b/src/client/pages/my-settings/drive.vue new file mode 100644 index 0000000000..55372687fc --- /dev/null +++ b/src/client/pages/my-settings/drive.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/client/pages/my-settings/import-export.vue b/src/client/pages/my-settings/import-export.vue new file mode 100644 index 0000000000..4795741189 --- /dev/null +++ b/src/client/pages/my-settings/import-export.vue @@ -0,0 +1,121 @@ + + + diff --git a/src/client/pages/my-settings/index.vue b/src/client/pages/my-settings/index.vue new file mode 100644 index 0000000000..53f08785f2 --- /dev/null +++ b/src/client/pages/my-settings/index.vue @@ -0,0 +1,100 @@ + + + diff --git a/src/client/pages/my-settings/integration.vue b/src/client/pages/my-settings/integration.vue new file mode 100644 index 0000000000..742d432018 --- /dev/null +++ b/src/client/pages/my-settings/integration.vue @@ -0,0 +1,131 @@ + + + diff --git a/src/client/pages/my-settings/mute-block.vue b/src/client/pages/my-settings/mute-block.vue new file mode 100644 index 0000000000..03cf4aacc8 --- /dev/null +++ b/src/client/pages/my-settings/mute-block.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/client/pages/my-settings/privacy.vue b/src/client/pages/my-settings/privacy.vue new file mode 100644 index 0000000000..7ac9062d88 --- /dev/null +++ b/src/client/pages/my-settings/privacy.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/client/pages/my-settings/profile.vue b/src/client/pages/my-settings/profile.vue new file mode 100644 index 0000000000..b168c89ec0 --- /dev/null +++ b/src/client/pages/my-settings/profile.vue @@ -0,0 +1,223 @@ + + + + + diff --git a/src/client/pages/my-settings/reaction.vue b/src/client/pages/my-settings/reaction.vue new file mode 100644 index 0000000000..250769ec9e --- /dev/null +++ b/src/client/pages/my-settings/reaction.vue @@ -0,0 +1,62 @@ + + + diff --git a/src/client/pages/my-settings/security.vue b/src/client/pages/my-settings/security.vue new file mode 100644 index 0000000000..ba670b2f68 --- /dev/null +++ b/src/client/pages/my-settings/security.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/client/pages/settings/2fa.vue b/src/client/pages/settings/2fa.vue deleted file mode 100644 index 8432bdb32d..0000000000 --- a/src/client/pages/settings/2fa.vue +++ /dev/null @@ -1,253 +0,0 @@ - - - diff --git a/src/client/pages/settings/api.vue b/src/client/pages/settings/api.vue deleted file mode 100644 index f394c826de..0000000000 --- a/src/client/pages/settings/api.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - diff --git a/src/client/pages/settings/drive.vue b/src/client/pages/settings/drive.vue deleted file mode 100644 index 55372687fc..0000000000 --- a/src/client/pages/settings/drive.vue +++ /dev/null @@ -1,212 +0,0 @@ - - - - - diff --git a/src/client/pages/settings/general.vue b/src/client/pages/settings/general.vue deleted file mode 100644 index 5a176c0226..0000000000 --- a/src/client/pages/settings/general.vue +++ /dev/null @@ -1,159 +0,0 @@ - - - diff --git a/src/client/pages/settings/import-export.vue b/src/client/pages/settings/import-export.vue deleted file mode 100644 index 4795741189..0000000000 --- a/src/client/pages/settings/import-export.vue +++ /dev/null @@ -1,121 +0,0 @@ - - - diff --git a/src/client/pages/settings/index.vue b/src/client/pages/settings/index.vue index aa827aa949..977a59bd8b 100644 --- a/src/client/pages/settings/index.vue +++ b/src/client/pages/settings/index.vue @@ -1,44 +1,61 @@ - - diff --git a/src/client/pages/settings/integration.vue b/src/client/pages/settings/integration.vue deleted file mode 100644 index 742d432018..0000000000 --- a/src/client/pages/settings/integration.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - diff --git a/src/client/pages/settings/mute-block.vue b/src/client/pages/settings/mute-block.vue deleted file mode 100644 index 03cf4aacc8..0000000000 --- a/src/client/pages/settings/mute-block.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - - diff --git a/src/client/pages/settings/privacy.vue b/src/client/pages/settings/privacy.vue deleted file mode 100644 index 7ac9062d88..0000000000 --- a/src/client/pages/settings/privacy.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - diff --git a/src/client/pages/settings/profile.vue b/src/client/pages/settings/profile.vue deleted file mode 100644 index b168c89ec0..0000000000 --- a/src/client/pages/settings/profile.vue +++ /dev/null @@ -1,223 +0,0 @@ - - - - - diff --git a/src/client/pages/settings/reaction.vue b/src/client/pages/settings/reaction.vue deleted file mode 100644 index 250769ec9e..0000000000 --- a/src/client/pages/settings/reaction.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/src/client/pages/settings/security.vue b/src/client/pages/settings/security.vue deleted file mode 100644 index ba670b2f68..0000000000 --- a/src/client/pages/settings/security.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/src/client/pages/settings/theme.vue b/src/client/pages/settings/theme.vue index e8f11fb03c..e284c8c6f5 100644 --- a/src/client/pages/settings/theme.vue +++ b/src/client/pages/settings/theme.vue @@ -12,6 +12,10 @@ +
+ {{ $t('setWallpaper') }} + {{ $t('removeWallpaper') }} +
@@ -23,6 +27,7 @@ import MkButton from '../../components/ui/button.vue'; import MkSelect from '../../components/ui/select.vue'; import i18n from '../../i18n'; import { Theme, builtinThemes, applyTheme } from '../../theme'; +import { selectFile } from '../../scripts/select-file'; export default Vue.extend({ i18n, @@ -35,6 +40,7 @@ export default Vue.extend({ data() { return { + wallpaper: localStorage.getItem('wallpaper'), faPalette } }, @@ -65,11 +71,25 @@ export default Vue.extend({ watch: { theme() { applyTheme(this.themes.find(x => x.id === this.theme)); + }, + + + wallpaper() { + if (this.wallpaper == null) { + localStorage.removeItem('wallpaper'); + } else { + localStorage.setItem('wallpaper', this.wallpaper); + } + location.reload(); } }, methods: { - + setWallpaper(e) { + selectFile(this, e.currentTarget || e.target, null, false).then(file => { + this.wallpaper = file.url; + }); + }, } }); diff --git a/src/client/router.ts b/src/client/router.ts index fe3de70a05..0a856d580d 100644 --- a/src/client/router.ts +++ b/src/client/router.ts @@ -38,13 +38,14 @@ export const router = new VueRouter({ { path: '/my/pages', name: 'pages', component: page('pages') }, { path: '/my/pages/new', component: page('page-editor/page-editor') }, { path: '/my/pages/edit/:pageId', component: page('page-editor/page-editor'), props: route => ({ initPageId: route.params.pageId }) }, - { path: '/my/settings', component: page('settings/index') }, + { path: '/my/settings', component: page('my-settings/index') }, { path: '/my/follow-requests', component: page('follow-requests') }, { path: '/my/lists', component: page('my-lists/index') }, { path: '/my/lists/:list', component: page('my-lists/list') }, { path: '/my/groups', component: page('my-groups/index') }, { path: '/my/groups/:group', component: page('my-groups/group') }, { path: '/my/antennas', component: page('my-antennas/index') }, + { path: '/settings', component: page('settings/index') }, { path: '/instance', component: page('instance/index') }, { path: '/instance/emojis', component: page('instance/emojis') }, { path: '/instance/users', component: page('instance/users') }, -- cgit v1.2.3-freya