diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-18 21:12:05 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-18 21:12:05 +0900 |
| commit | e2ff408f2f232d99dce30f064c063afadf155926 (patch) | |
| tree | ac9f64324fe67efd80082206f5ee57fdea934108 /src/client | |
| parent | 12.13.0 (diff) | |
| download | sharkey-e2ff408f2f232d99dce30f064c063afadf155926.tar.gz sharkey-e2ff408f2f232d99dce30f064c063afadf155926.tar.bz2 sharkey-e2ff408f2f232d99dce30f064c063afadf155926.zip | |
Implement object storage settings
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/pages/instance/settings.vue | 61 | ||||
| -rw-r--r-- | src/client/style.scss | 26 |
2 files changed, 85 insertions, 2 deletions
diff --git a/src/client/pages/instance/settings.vue b/src/client/pages/instance/settings.vue index 93b9f665e6..7572108718 100644 --- a/src/client/pages/instance/settings.vue +++ b/src/client/pages/instance/settings.vue @@ -61,10 +61,10 @@ <div class="_content"> <mk-switch v-model="enableServiceWorker">{{ $t('enableServiceworker') }}<template #desc>{{ $t('serviceworkerInfo') }}</template></mk-switch> <template v-if="enableServiceWorker"> - <mk-horizon-group inputs class="fit-bottom"> + <div class="_inputs"> <mk-input v-model="swPublicKey" :disabled="!enableServiceWorker"><template #icon><fa :icon="faKey"/></template>Public key</mk-input> <mk-input v-model="swPrivateKey" :disabled="!enableServiceWorker"><template #icon><fa :icon="faKey"/></template>Private key</mk-input> - </mk-horizon-group> + </div> </template> </div> <div class="_footer"> @@ -98,6 +98,33 @@ </section> <section class="_card"> + <div class="_title"><fa :icon="faCloud"/> {{ $t('objectStorage') }}</div> + <div class="_content"> + <mk-switch v-model="useObjectStorage">{{ $t('useObjectStorage') }}</mk-switch> + <template v-if="useObjectStorage"> + <mk-input v-model="objectStorageBaseUrl" :disabled="!useObjectStorage">URL</mk-input> + <div class="_inputs"> + <mk-input v-model="objectStorageBucket" :disabled="!useObjectStorage">Bucket</mk-input> + <mk-input v-model="objectStoragePrefix" :disabled="!useObjectStorage">Prefix</mk-input> + </div> + <mk-input v-model="objectStorageEndpoint" :disabled="!useObjectStorage">Endpoint</mk-input> + <div class="_inputs"> + <mk-input v-model="objectStorageRegion" :disabled="!useObjectStorage">Region</mk-input> + <mk-input v-model="objectStoragePort" type="number" :disabled="!useObjectStorage">Port</mk-input> + </div> + <div class="_inputs"> + <mk-input v-model="objectStorageAccessKey" :disabled="!useObjectStorage"><template #icon><fa :icon="faKey"/></template>Access key</mk-input> + <mk-input v-model="objectStorageSecretKey" :disabled="!useObjectStorage"><template #icon><fa :icon="faKey"/></template>Secret key</mk-input> + </div> + <mk-switch v-model="objectStorageUseSSL" :disabled="!useObjectStorage">SSL</mk-switch> + </template> + </div> + <div class="_footer"> + <mk-button primary @click="save(true)"><fa :icon="faSave"/> {{ $t('save') }}</mk-button> + </div> + </section> + + <section class="_card"> <div class="_title"><fa :icon="faGhost"/> {{ $t('proxyAccount') }}</div> <div class="_content"> <mk-input :value="proxyAccount ? proxyAccount.username : null" style="margin: 0;" disabled><template #prefix>@</template>{{ $t('proxyAccount') }}<template #desc>{{ $t('proxyAccountDescription') }}</template></mk-input> @@ -213,6 +240,16 @@ export default Vue.extend({ enableServiceWorker: false, swPublicKey: null, swPrivateKey: null, + useObjectStorage: false, + objectStorageBaseUrl: null, + objectStorageBucket: null, + objectStoragePrefix: null, + objectStorageEndpoint: null, + objectStorageRegion: null, + objectStoragePort: null, + objectStorageAccessKey: null, + objectStorageSecretKey: null, + objectStorageUseSSL: false, enableTwitterIntegration: false, twitterConsumerKey: null, twitterConsumerSecret: null, @@ -257,6 +294,16 @@ export default Vue.extend({ this.enableServiceWorker = this.meta.enableServiceWorker; this.swPublicKey = this.meta.swPublickey; this.swPrivateKey = this.meta.swPrivateKey; + this.useObjectStorage = this.meta.useObjectStorage; + this.objectStorageBaseUrl = this.meta.objectStorageBaseUrl; + this.objectStorageBucket = this.meta.objectStorageBucket; + this.objectStoragePrefix = this.meta.objectStoragePrefix; + this.objectStorageEndpoint = this.meta.objectStorageEndpoint; + this.objectStorageRegion = this.meta.objectStorageRegion; + this.objectStoragePort = this.meta.objectStoragePort; + this.objectStorageAccessKey = this.meta.objectStorageAccessKey; + this.objectStorageSecretKey = this.meta.objectStorageSecretKey; + this.objectStorageUseSSL = this.meta.objectStorageUseSSL; this.enableTwitterIntegration = this.meta.enableTwitterIntegration; this.twitterConsumerKey = this.meta.twitterConsumerKey; this.twitterConsumerSecret = this.meta.twitterConsumerSecret; @@ -341,6 +388,16 @@ export default Vue.extend({ enableServiceWorker: this.enableServiceWorker, swPublicKey: this.swPublicKey, swPrivateKey: this.swPrivateKey, + useObjectStorage: this.useObjectStorage, + objectStorageBaseUrl: this.objectStorageBaseUrl ? this.objectStorageBaseUrl : null, + objectStorageBucket: this.objectStorageBucket ? this.objectStorageBucket : null, + objectStoragePrefix: this.objectStoragePrefix ? this.objectStoragePrefix : null, + objectStorageEndpoint: this.objectStorageEndpoint ? this.objectStorageEndpoint : null, + objectStorageRegion: this.objectStorageRegion ? this.objectStorageRegion : null, + objectStoragePort: this.objectStoragePort ? this.objectStoragePort : null, + objectStorageAccessKey: this.objectStorageAccessKey ? this.objectStorageAccessKey : null, + objectStorageSecretKey: this.objectStorageSecretKey ? this.objectStorageSecretKey : null, + objectStorageUseSSL: this.objectStorageUseSSL, enableTwitterIntegration: this.enableTwitterIntegration, twitterConsumerKey: this.twitterConsumerKey, twitterConsumerSecret: this.twitterConsumerSecret, diff --git a/src/client/style.scss b/src/client/style.scss index a9868a9491..bdbd9a143d 100644 --- a/src/client/style.scss +++ b/src/client/style.scss @@ -248,6 +248,32 @@ hr { } } +._inputs { + display: flex; + margin: 32px 0; + + &:first-child { + margin-top: 8px; + } + + &:last-child { + margin-bottom: 8px; + } + + > * { + flex: 1; + margin: 0 !important; + + &:not(:first-child) { + margin-left: 8px !important; + } + + &:not(:last-child) { + margin-right: 8px !important; + } + } +} + ._shadow { box-shadow: 0 8px 32px var(--shadow); |