tweak ui
This commit is contained in:
		
							parent
							
								
									5e4877b8a4
								
							
						
					
					
						commit
						533955f928
					
				
					 6 changed files with 77 additions and 112 deletions
				
			
		|  | @ -171,11 +171,6 @@ export default defineComponent({ | ||||||
| 				text: i18n.locale.security, | 				text: i18n.locale.security, | ||||||
| 				to: '/admin/security', | 				to: '/admin/security', | ||||||
| 				active: page.value === 'security', | 				active: page.value === 'security', | ||||||
| 			}, { |  | ||||||
| 				icon: 'fas fa-bolt', |  | ||||||
| 				text: 'ServiceWorker', |  | ||||||
| 				to: '/admin/service-worker', |  | ||||||
| 				active: page.value === 'service-worker', |  | ||||||
| 			}, { | 			}, { | ||||||
| 				icon: 'fas fa-globe', | 				icon: 'fas fa-globe', | ||||||
| 				text: i18n.locale.relays, | 				text: i18n.locale.relays, | ||||||
|  | @ -228,7 +223,6 @@ export default defineComponent({ | ||||||
| 				case 'email-settings': return defineAsyncComponent(() => import('./email-settings.vue')); | 				case 'email-settings': return defineAsyncComponent(() => import('./email-settings.vue')); | ||||||
| 				case 'object-storage': return defineAsyncComponent(() => import('./object-storage.vue')); | 				case 'object-storage': return defineAsyncComponent(() => import('./object-storage.vue')); | ||||||
| 				case 'security': return defineAsyncComponent(() => import('./security.vue')); | 				case 'security': return defineAsyncComponent(() => import('./security.vue')); | ||||||
| 				case 'service-worker': return defineAsyncComponent(() => import('./service-worker.vue')); |  | ||||||
| 				case 'relays': return defineAsyncComponent(() => import('./relays.vue')); | 				case 'relays': return defineAsyncComponent(() => import('./relays.vue')); | ||||||
| 				case 'integrations': return defineAsyncComponent(() => import('./integrations.vue')); | 				case 'integrations': return defineAsyncComponent(() => import('./integrations.vue')); | ||||||
| 				case 'instance-block': return defineAsyncComponent(() => import('./instance-block.vue')); | 				case 'instance-block': return defineAsyncComponent(() => import('./instance-block.vue')); | ||||||
|  |  | ||||||
|  | @ -1,21 +1,7 @@ | ||||||
| <template> | <template> | ||||||
| <MkSpacer :content-max="700" :margin-min="16" :margin-max="32"> | <MkSpacer :content-max="700" :margin-min="16" :margin-max="32"> | ||||||
| 	<FormSuspense :p="init"> | 	<FormSuspense :p="init"> | ||||||
| 		<FormSection> | 		none | ||||||
| 			<FormInput v-model="summalyProxy" class="_formBlock"> |  | ||||||
| 				<template #prefix><i class="fas fa-link"></i></template> |  | ||||||
| 				<template #label>Summaly Proxy URL</template> |  | ||||||
| 			</FormInput> |  | ||||||
| 		</FormSection> |  | ||||||
| 		<FormSection> |  | ||||||
| 			<FormInput v-model="deeplAuthKey" class="_formBlock"> |  | ||||||
| 				<template #prefix><i class="fas fa-key"></i></template> |  | ||||||
| 				<template #label>DeepL Auth Key</template> |  | ||||||
| 			</FormInput> |  | ||||||
| 			<FormSwitch v-model="deeplIsPro" class="_formBlock"> |  | ||||||
| 				<template #label>Pro account</template> |  | ||||||
| 			</FormSwitch> |  | ||||||
| 		</FormSection> |  | ||||||
| 	</FormSuspense> | 	</FormSuspense> | ||||||
| </MkSpacer> | </MkSpacer> | ||||||
| </template> | </template> | ||||||
|  | @ -53,9 +39,6 @@ export default defineComponent({ | ||||||
| 					handler: this.save, | 					handler: this.save, | ||||||
| 				}], | 				}], | ||||||
| 			}, | 			}, | ||||||
| 			summalyProxy: '', |  | ||||||
| 			deeplAuthKey: '', |  | ||||||
| 			deeplIsPro: false, |  | ||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
| 
 | 
 | ||||||
|  | @ -66,15 +49,9 @@ export default defineComponent({ | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('meta', { detail: true }); | ||||||
| 			this.summalyProxy = meta.summalyProxy; |  | ||||||
| 			this.deeplAuthKey = meta.deeplAuthKey; |  | ||||||
| 			this.deeplIsPro = meta.deeplIsPro; |  | ||||||
| 		}, | 		}, | ||||||
| 		save() { | 		save() { | ||||||
| 			os.apiWithDialog('admin/update-meta', { | 			os.apiWithDialog('admin/update-meta', { | ||||||
| 				summalyProxy: this.summalyProxy, |  | ||||||
| 				deeplAuthKey: this.deeplAuthKey, |  | ||||||
| 				deeplIsPro: this.deeplIsPro, |  | ||||||
| 			}).then(() => { | 			}).then(() => { | ||||||
| 				fetchInstance(); | 				fetchInstance(); | ||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
|  | @ -11,6 +11,19 @@ | ||||||
| 
 | 
 | ||||||
| 				<XBotProtection/> | 				<XBotProtection/> | ||||||
| 			</FormFolder> | 			</FormFolder> | ||||||
|  | 
 | ||||||
|  | 			<FormFolder class="_formBlock"> | ||||||
|  | 				<template #label>Summaly Proxy</template> | ||||||
|  | 
 | ||||||
|  | 				<div class="_formRoot"> | ||||||
|  | 					<FormInput v-model="summalyProxy" class="_formBlock"> | ||||||
|  | 						<template #prefix><i class="fas fa-link"></i></template> | ||||||
|  | 						<template #label>Summaly Proxy URL</template> | ||||||
|  | 					</FormInput> | ||||||
|  | 
 | ||||||
|  | 					<FormButton primary class="_formBlock" @click="save"><i class="fas fa-save"></i> {{ $ts.save }}</FormButton> | ||||||
|  | 				</div> | ||||||
|  | 			</FormFolder> | ||||||
| 		</div> | 		</div> | ||||||
| 	</FormSuspense> | 	</FormSuspense> | ||||||
| </MkSpacer> | </MkSpacer> | ||||||
|  | @ -23,6 +36,8 @@ import FormSwitch from '@/components/form/switch.vue'; | ||||||
| import FormInfo from '@/components/ui/info.vue'; | import FormInfo from '@/components/ui/info.vue'; | ||||||
| import FormSuspense from '@/components/form/suspense.vue'; | import FormSuspense from '@/components/form/suspense.vue'; | ||||||
| import FormSection from '@/components/form/section.vue'; | import FormSection from '@/components/form/section.vue'; | ||||||
|  | import FormInput from '@/components/form/input.vue'; | ||||||
|  | import FormButton from '@/components/ui/button.vue'; | ||||||
| import XBotProtection from './bot-protection.vue'; | import XBotProtection from './bot-protection.vue'; | ||||||
| import * as os from '@/os'; | import * as os from '@/os'; | ||||||
| import * as symbols from '@/symbols'; | import * as symbols from '@/symbols'; | ||||||
|  | @ -35,6 +50,8 @@ export default defineComponent({ | ||||||
| 		FormInfo, | 		FormInfo, | ||||||
| 		FormSection, | 		FormSection, | ||||||
| 		FormSuspense, | 		FormSuspense, | ||||||
|  | 		FormButton, | ||||||
|  | 		FormInput, | ||||||
| 		XBotProtection, | 		XBotProtection, | ||||||
| 	}, | 	}, | ||||||
| 
 | 
 | ||||||
|  | @ -47,6 +64,7 @@ export default defineComponent({ | ||||||
| 				icon: 'fas fa-lock', | 				icon: 'fas fa-lock', | ||||||
| 				bg: 'var(--bg)', | 				bg: 'var(--bg)', | ||||||
| 			}, | 			}, | ||||||
|  | 			summalyProxy: '', | ||||||
| 			enableHcaptcha: false, | 			enableHcaptcha: false, | ||||||
| 			enableRecaptcha: false, | 			enableRecaptcha: false, | ||||||
| 		} | 		} | ||||||
|  | @ -59,9 +77,18 @@ export default defineComponent({ | ||||||
| 	methods: { | 	methods: { | ||||||
| 		async init() { | 		async init() { | ||||||
| 			const meta = await os.api('meta', { detail: true }); | 			const meta = await os.api('meta', { detail: true }); | ||||||
|  | 			this.summalyProxy = meta.summalyProxy; | ||||||
| 			this.enableHcaptcha = meta.enableHcaptcha; | 			this.enableHcaptcha = meta.enableHcaptcha; | ||||||
| 			this.enableRecaptcha = meta.enableRecaptcha; | 			this.enableRecaptcha = meta.enableRecaptcha; | ||||||
| 		}, | 		}, | ||||||
|  | 
 | ||||||
|  | 		save() { | ||||||
|  | 			os.apiWithDialog('admin/update-meta', { | ||||||
|  | 				summalyProxy: this.summalyProxy, | ||||||
|  | 			}).then(() => { | ||||||
|  | 				fetchInstance(); | ||||||
|  | 			}); | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| }); | }); | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | @ -1,81 +0,0 @@ | ||||||
| <template> |  | ||||||
| <MkSpacer :content-max="700" :margin-min="16" :margin-max="32"> |  | ||||||
| 	<FormSuspense :p="init"> |  | ||||||
| 		<FormSwitch v-model="enableServiceWorker" class="_formBlock"> |  | ||||||
| 			<template #label>{{ $ts.enableServiceworker }}</template> |  | ||||||
| 			<template #caption>{{ $ts.serviceworkerInfo }}</template> |  | ||||||
| 		</FormSwitch> |  | ||||||
| 
 |  | ||||||
| 		<template v-if="enableServiceWorker"> |  | ||||||
| 			<FormInput v-model="swPublicKey" class="_formBlock"> |  | ||||||
| 				<template #prefix><i class="fas fa-key"></i></template> |  | ||||||
| 				<template #label>Public key</template> |  | ||||||
| 			</FormInput> |  | ||||||
| 
 |  | ||||||
| 			<FormInput v-model="swPrivateKey" class="_formBlock"> |  | ||||||
| 				<template #prefix><i class="fas fa-key"></i></template> |  | ||||||
| 				<template #label>Private key</template> |  | ||||||
| 			</FormInput> |  | ||||||
| 		</template> |  | ||||||
| 
 |  | ||||||
| 		<FormButton primary class="_formBlock" @click="save"><i class="fas fa-save"></i> {{ $ts.save }}</FormButton> |  | ||||||
| 	</FormSuspense> |  | ||||||
| </MkSpacer> |  | ||||||
| </template> |  | ||||||
| 
 |  | ||||||
| <script lang="ts"> |  | ||||||
| import { defineComponent } from 'vue'; |  | ||||||
| import FormSwitch from '@/components/form/switch.vue'; |  | ||||||
| import FormInput from '@/components/form/input.vue'; |  | ||||||
| import FormButton from '@/components/ui/button.vue'; |  | ||||||
| import FormSuspense from '@/components/form/suspense.vue'; |  | ||||||
| import * as os from '@/os'; |  | ||||||
| import * as symbols from '@/symbols'; |  | ||||||
| import { fetchInstance } from '@/instance'; |  | ||||||
| 
 |  | ||||||
| export default defineComponent({ |  | ||||||
| 	components: { |  | ||||||
| 		FormSwitch, |  | ||||||
| 		FormInput, |  | ||||||
| 		FormButton, |  | ||||||
| 		FormSuspense, |  | ||||||
| 	}, |  | ||||||
| 
 |  | ||||||
| 	emits: ['info'], |  | ||||||
| 
 |  | ||||||
| 	data() { |  | ||||||
| 		return { |  | ||||||
| 			[symbols.PAGE_INFO]: { |  | ||||||
| 				title: 'ServiceWorker', |  | ||||||
| 				icon: 'fas fa-bolt', |  | ||||||
| 				bg: 'var(--bg)', |  | ||||||
| 			}, |  | ||||||
| 			enableServiceWorker: false, |  | ||||||
| 			swPublicKey: null, |  | ||||||
| 			swPrivateKey: null, |  | ||||||
| 		} |  | ||||||
| 	}, |  | ||||||
| 
 |  | ||||||
| 	async mounted() { |  | ||||||
| 		this.$emit('info', this[symbols.PAGE_INFO]); |  | ||||||
| 	}, |  | ||||||
| 
 |  | ||||||
| 	methods: { |  | ||||||
| 		async init() { |  | ||||||
| 			const meta = await os.api('meta', { detail: true }); |  | ||||||
| 			this.enableServiceWorker = meta.enableServiceWorker; |  | ||||||
| 			this.swPublicKey = meta.swPublickey; |  | ||||||
| 			this.swPrivateKey = meta.swPrivateKey; |  | ||||||
| 		}, |  | ||||||
| 		save() { |  | ||||||
| 			os.apiWithDialog('admin/update-meta', { |  | ||||||
| 				enableServiceWorker: this.enableServiceWorker, |  | ||||||
| 				swPublicKey: this.swPublicKey, |  | ||||||
| 				swPrivateKey: this.swPrivateKey, |  | ||||||
| 			}).then(() => { |  | ||||||
| 				fetchInstance(); |  | ||||||
| 			}); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
| </script> |  | ||||||
|  | @ -94,6 +94,39 @@ | ||||||
| 					</FormInput> | 					</FormInput> | ||||||
| 				</FormSplit> | 				</FormSplit> | ||||||
| 			</FormSection> | 			</FormSection> | ||||||
|  | 
 | ||||||
|  | 			<FormSection> | ||||||
|  | 				<template #label>ServiceWorker</template> | ||||||
|  | 
 | ||||||
|  | 				<FormSwitch v-model="enableServiceWorker" class="_formBlock"> | ||||||
|  | 					<template #label>{{ $ts.enableServiceworker }}</template> | ||||||
|  | 					<template #caption>{{ $ts.serviceworkerInfo }}</template> | ||||||
|  | 				</FormSwitch> | ||||||
|  | 
 | ||||||
|  | 				<template v-if="enableServiceWorker"> | ||||||
|  | 					<FormInput v-model="swPublicKey" class="_formBlock"> | ||||||
|  | 						<template #prefix><i class="fas fa-key"></i></template> | ||||||
|  | 						<template #label>Public key</template> | ||||||
|  | 					</FormInput> | ||||||
|  | 
 | ||||||
|  | 					<FormInput v-model="swPrivateKey" class="_formBlock"> | ||||||
|  | 						<template #prefix><i class="fas fa-key"></i></template> | ||||||
|  | 						<template #label>Private key</template> | ||||||
|  | 					</FormInput> | ||||||
|  | 				</template> | ||||||
|  | 			</FormSection> | ||||||
|  | 
 | ||||||
|  | 			<FormSection> | ||||||
|  | 				<template #label>DeepL Translation</template> | ||||||
|  | 
 | ||||||
|  | 				<FormInput v-model="deeplAuthKey" class="_formBlock"> | ||||||
|  | 					<template #prefix><i class="fas fa-key"></i></template> | ||||||
|  | 					<template #label>DeepL Auth Key</template> | ||||||
|  | 				</FormInput> | ||||||
|  | 				<FormSwitch v-model="deeplIsPro" class="_formBlock"> | ||||||
|  | 					<template #label>Pro account</template> | ||||||
|  | 				</FormSwitch> | ||||||
|  | 			</FormSection> | ||||||
| 		</div> | 		</div> | ||||||
| 	</FormSuspense> | 	</FormSuspense> | ||||||
| </MkSpacer> | </MkSpacer> | ||||||
|  | @ -156,6 +189,11 @@ export default defineComponent({ | ||||||
| 			remoteDriveCapacityMb: 0, | 			remoteDriveCapacityMb: 0, | ||||||
| 			enableRegistration: false, | 			enableRegistration: false, | ||||||
| 			emailRequiredForSignup: false, | 			emailRequiredForSignup: false, | ||||||
|  | 			enableServiceWorker: false, | ||||||
|  | 			swPublicKey: null, | ||||||
|  | 			swPrivateKey: null, | ||||||
|  | 			deeplAuthKey: '', | ||||||
|  | 			deeplIsPro: false, | ||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
| 
 | 
 | ||||||
|  | @ -184,6 +222,11 @@ export default defineComponent({ | ||||||
| 			this.remoteDriveCapacityMb = meta.driveCapacityPerRemoteUserMb; | 			this.remoteDriveCapacityMb = meta.driveCapacityPerRemoteUserMb; | ||||||
| 			this.enableRegistration = !meta.disableRegistration; | 			this.enableRegistration = !meta.disableRegistration; | ||||||
| 			this.emailRequiredForSignup = meta.emailRequiredForSignup; | 			this.emailRequiredForSignup = meta.emailRequiredForSignup; | ||||||
|  | 			this.enableServiceWorker = meta.enableServiceWorker; | ||||||
|  | 			this.swPublicKey = meta.swPublickey; | ||||||
|  | 			this.swPrivateKey = meta.swPrivateKey; | ||||||
|  | 			this.deeplAuthKey = meta.deeplAuthKey; | ||||||
|  | 			this.deeplIsPro = meta.deeplIsPro; | ||||||
| 		}, | 		}, | ||||||
| 
 | 
 | ||||||
| 		save() { | 		save() { | ||||||
|  | @ -206,6 +249,11 @@ export default defineComponent({ | ||||||
| 				remoteDriveCapacityMb: parseInt(this.remoteDriveCapacityMb, 10), | 				remoteDriveCapacityMb: parseInt(this.remoteDriveCapacityMb, 10), | ||||||
| 				disableRegistration: !this.enableRegistration, | 				disableRegistration: !this.enableRegistration, | ||||||
| 				emailRequiredForSignup: this.emailRequiredForSignup, | 				emailRequiredForSignup: this.emailRequiredForSignup, | ||||||
|  | 				enableServiceWorker: this.enableServiceWorker, | ||||||
|  | 				swPublicKey: this.swPublicKey, | ||||||
|  | 				swPrivateKey: this.swPrivateKey, | ||||||
|  | 				deeplAuthKey: this.deeplAuthKey, | ||||||
|  | 				deeplIsPro: this.deeplIsPro, | ||||||
| 			}).then(() => { | 			}).then(() => { | ||||||
| 				fetchInstance(); | 				fetchInstance(); | ||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ | ||||||
| 		</FormTextarea> | 		</FormTextarea> | ||||||
| 
 | 
 | ||||||
| 		<FormGroup> | 		<FormGroup> | ||||||
| 			<div v-for="file in files" :key="file.id" class="_debobigegoItem _debobigegoPanel wqugxsfx" :style="{ backgroundImage: file ? `url(${ file.thumbnailUrl })` : null }"> | 			<div v-for="file in files" :key="file.id" class="_formGroup wqugxsfx" :style="{ backgroundImage: file ? `url(${ file.thumbnailUrl })` : null }"> | ||||||
| 				<div class="name">{{ file.name }}</div> | 				<div class="name">{{ file.name }}</div> | ||||||
| 				<button v-tooltip="$ts.remove" class="remove _button" @click="remove(file)"><i class="fas fa-times"></i></button> | 				<button v-tooltip="$ts.remove" class="remove _button" @click="remove(file)"><i class="fas fa-times"></i></button> | ||||||
| 			</div> | 			</div> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue