forked from FoundKeyGang/FoundKey
wip
This commit is contained in:
parent
c2fc637575
commit
2afcdda058
5 changed files with 65 additions and 8 deletions
|
@ -460,6 +460,8 @@ common/views/components/connect-failed.troubleshooter.vue:
|
||||||
flush: "キャッシュの削除"
|
flush: "キャッシュの削除"
|
||||||
set-version: "バージョン指定"
|
set-version: "バージョン指定"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
common/views/components/media-banner.vue:
|
common/views/components/media-banner.vue:
|
||||||
sensitive: "閲覧注意"
|
sensitive: "閲覧注意"
|
||||||
click-to-show: "クリックして表示"
|
click-to-show: "クリックして表示"
|
||||||
|
@ -637,6 +639,17 @@ common/views/components/emoji-picker.vue:
|
||||||
symbols: "記号"
|
symbols: "記号"
|
||||||
flags: "旗"
|
flags: "旗"
|
||||||
|
|
||||||
|
common/views/components/settings/client-mode.vue:
|
||||||
|
title: "クライアント"
|
||||||
|
select-app-type: "利用するクライアントのモード"
|
||||||
|
choices:
|
||||||
|
auto: "自動で選択"
|
||||||
|
desktop: "デスクトップ版に固定"
|
||||||
|
mobile: "モバイル版に固定"
|
||||||
|
desktop: "デスクトップ"
|
||||||
|
mobile: "モバイル"
|
||||||
|
info: "変更はページの再度読み込み後に反映されます。"
|
||||||
|
|
||||||
common/views/components/signin.vue:
|
common/views/components/signin.vue:
|
||||||
username: "ユーザー名"
|
username: "ユーザー名"
|
||||||
password: "パスワード"
|
password: "パスワード"
|
||||||
|
|
|
@ -35,12 +35,12 @@
|
||||||
const url = new URL(location.href);
|
const url = new URL(location.href);
|
||||||
|
|
||||||
//#region Detect app name
|
//#region Detect app name
|
||||||
let app = null;
|
var appType = null;
|
||||||
|
|
||||||
if (`${url.pathname}/`.startsWith('/docs/')) app = 'docs';
|
if (`${url.pathname}/`.startsWith('/docs/')) appType = 'docs';
|
||||||
if (`${url.pathname}/`.startsWith('/dev/')) app = 'dev';
|
if (`${url.pathname}/`.startsWith('/dev/')) appType = 'dev';
|
||||||
if (`${url.pathname}/`.startsWith('/auth/')) app = 'auth';
|
if (`${url.pathname}/`.startsWith('/auth/')) appType = 'auth';
|
||||||
if (`${url.pathname}/`.startsWith('/admin/')) app = 'admin';
|
if (`${url.pathname}/`.startsWith('/admin/')) appType = 'admin';
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
// Script version
|
// Script version
|
||||||
|
@ -103,15 +103,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// Switch desktop or mobile version
|
// Switch desktop or mobile version
|
||||||
if (app == null) {
|
if (appType == null) {
|
||||||
app = isMobile ? 'mobile' : 'desktop';
|
appType = isMobile ? 'mobile' : 'desktop';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load an app script
|
// Load an app script
|
||||||
// Note: 'async' make it possible to load the script asyncly.
|
// Note: 'async' make it possible to load the script asyncly.
|
||||||
// 'defer' make it possible to run the script when the dom loaded.
|
// 'defer' make it possible to run the script when the dom loaded.
|
||||||
const script = document.createElement('script');
|
const script = document.createElement('script');
|
||||||
script.setAttribute('src', `/assets/${app}.${ver}.js`);
|
script.setAttribute('src', `/assets/${appType}.${ver}.js`);
|
||||||
script.setAttribute('async', 'true');
|
script.setAttribute('async', 'true');
|
||||||
script.setAttribute('defer', 'true');
|
script.setAttribute('defer', 'true');
|
||||||
head.appendChild(script);
|
head.appendChild(script);
|
||||||
|
|
40
src/client/app/common/views/components/settings/app-type.vue
Normal file
40
src/client/app/common/views/components/settings/app-type.vue
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
<template>
|
||||||
|
<ui-card>
|
||||||
|
<template #title><fa :icon="faMobile"/> {{ $t('title') }}</template>
|
||||||
|
|
||||||
|
<section class="fit-top">
|
||||||
|
<ui-select v-model="lang" :placeholder="$t('select-app-type')">
|
||||||
|
<option v-for="x in ['auto', 'desktop', 'mobile']" :value="x" :key="x">{{ $t(`choices.${x}`) }}</option>
|
||||||
|
</ui-select>
|
||||||
|
<ui-info>Current: <i>{{ $t(currentAppType) }}</i></ui-info>
|
||||||
|
<ui-info warn>{{ $t('info') }}</ui-info>
|
||||||
|
</section>
|
||||||
|
</ui-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import Vue from 'vue';
|
||||||
|
import i18n from '../../../../i18n';
|
||||||
|
import { langs } from '../../../../config';
|
||||||
|
import { faMobile } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
|
||||||
|
export default Vue.extend({
|
||||||
|
i18n: i18n('common/views/components/settings/client-mode.vue'),
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
langs,
|
||||||
|
currentAppType: (window as any).appType,
|
||||||
|
|
||||||
|
faMobile
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
appTypeForce: {
|
||||||
|
get() { return this.$store.state.device.appTypeForce; },
|
||||||
|
set(value) { this.$store.commit('device/set', { key: 'appTypeForce', value }); }
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -163,6 +163,7 @@
|
||||||
</ui-card>
|
</ui-card>
|
||||||
|
|
||||||
<x-language/>
|
<x-language/>
|
||||||
|
<x-app-type/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="page == null || page == 'notification'">
|
<template v-if="page == null || page == 'notification'">
|
||||||
|
@ -271,6 +272,7 @@ import XPassword from './password.vue';
|
||||||
import XProfile from './profile.vue';
|
import XProfile from './profile.vue';
|
||||||
import XApi from './api.vue';
|
import XApi from './api.vue';
|
||||||
import XLanguage from './language.vue';
|
import XLanguage from './language.vue';
|
||||||
|
import XAppType from './app-type.vue';
|
||||||
import XNotification from './notification.vue';
|
import XNotification from './notification.vue';
|
||||||
|
|
||||||
import { url, version } from '../../../../config';
|
import { url, version } from '../../../../config';
|
||||||
|
@ -291,6 +293,7 @@ export default Vue.extend({
|
||||||
XProfile,
|
XProfile,
|
||||||
XApi,
|
XApi,
|
||||||
XLanguage,
|
XLanguage,
|
||||||
|
XAppType,
|
||||||
XNotification,
|
XNotification,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
|
|
@ -60,6 +60,7 @@ const defaultDeviceSettings = {
|
||||||
soundVolume: 0.5,
|
soundVolume: 0.5,
|
||||||
mediaVolume: 0.5,
|
mediaVolume: 0.5,
|
||||||
lang: null,
|
lang: null,
|
||||||
|
appTypeForce: 'auto',
|
||||||
debug: false,
|
debug: false,
|
||||||
lightmode: false,
|
lightmode: false,
|
||||||
loadRawImages: false,
|
loadRawImages: false,
|
||||||
|
|
Loading…
Reference in a new issue