Ability to set custom s3 compatible service in administration settings and setup wizard

This commit is contained in:
Čarodej
2022-04-01 11:26:59 +02:00
parent 40b13acbb9
commit e4d44fc5eb
4 changed files with 68 additions and 11 deletions
+1
View File
@@ -1,6 +1,7 @@
## Version 2.0.11 ## Version 2.0.11
#### Release date: 1. April 2022 #### Release date: 1. April 2022
- Improved email setup in administration settings and setup wizard - Improved email setup in administration settings and setup wizard
- Ability to set custom s3 compatible service in administration settings and setup wizard
## Version 2.0.0 - 2.0.10 ## Version 2.0.0 - 2.0.10
#### Release date: 31. March 2022 #### Release date: 31. March 2022
+2 -2
View File
@@ -42,7 +42,7 @@
"/chunks/app-settings.js": "/chunks/app-settings.js?id=55da23af2b076069", "/chunks/app-settings.js": "/chunks/app-settings.js?id=55da23af2b076069",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=a694a01f3641712c", "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=a694a01f3641712c",
"/chunks/app-index.js": "/chunks/app-index.js?id=efdbfa062749ca00", "/chunks/app-index.js": "/chunks/app-index.js?id=efdbfa062749ca00",
"/chunks/app-environment.js": "/chunks/app-environment.js?id=7008cbc674035319", "/chunks/app-environment.js": "/chunks/app-environment.js?id=1f5458233a20b263",
"/chunks/app-others.js": "/chunks/app-others.js?id=16dc948aa2205189", "/chunks/app-others.js": "/chunks/app-others.js?id=16dc948aa2205189",
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=1cfffc99465b9a7a", "/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=1cfffc99465b9a7a",
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=a5dc9e715f8561bd", "/chunks/app-adsense.js": "/chunks/app-adsense.js?id=a5dc9e715f8561bd",
@@ -72,5 +72,5 @@
"/chunks/invitation.js": "/chunks/invitation.js?id=9ed8456c9d6d5ce1", "/chunks/invitation.js": "/chunks/invitation.js?id=9ed8456c9d6d5ce1",
"/css/tailwind.css": "/css/tailwind.css", "/css/tailwind.css": "/css/tailwind.css",
"/css/app.css": "/css/app.css", "/css/app.css": "/css/app.css",
"/chunks/environment.js": "/chunks/environment.js?id=50e798871582c3fa" "/chunks/environment.js": "/chunks/environment.js?id=cef6ee74e56cb0d0"
} }
@@ -164,10 +164,11 @@
</AppInputText> </AppInputText>
</ValidationProvider> </ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="Region" rules="required" v-slot="{ errors }"> <!--List Region-->
<ValidationProvider v-if="storage.driver !== 'other'" tag="div" mode="passive" name="Region" rules="required" v-slot="{ errors }">
<AppInputText <AppInputText
title="Region" title="Region"
description="Select your region where is your bucket/space created." description="Select your region where is your bucket created."
:error="errors[0]" :error="errors[0]"
> >
<SelectInput <SelectInput
@@ -180,6 +181,24 @@
</AppInputText> </AppInputText>
</ValidationProvider> </ValidationProvider>
<!--Input Region-->
<ValidationProvider v-if="storage.driver === 'other'" tag="div" mode="passive" name="Region" rules="required" v-slot="{ errors }">
<AppInputText
title="Region"
description="Type your region where is your bucket created."
:error="errors[0]"
>
<input
class="focus-border-theme input-dark"
v-model="storage.region"
placeholder="Type your region"
type="text"
:class="{ '!border-rose-600': errors[0] }"
:readonly="storage.driver !== 'other'"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider <ValidationProvider
tag="div" tag="div"
mode="passive" mode="passive"
@@ -187,14 +206,14 @@
rules="required" rules="required"
v-slot="{ errors }" v-slot="{ errors }"
> >
<AppInputText title="Endpoint URL" :error="errors[0]"> <AppInputText title="Endpoint URL" :description="endpointUrlDescription" :error="errors[0]">
<input <input
class="focus-border-theme input-dark" class="focus-border-theme input-dark"
v-model="storage.endpoint" v-model="storage.endpoint"
placeholder="Type your endpoint" placeholder="Type your endpoint"
type="text" type="text"
:class="{ '!border-rose-600': errors[0] }" :class="{ '!border-rose-600': errors[0] }"
readonly :readonly="storage.driver !== 'other'"
/> />
</AppInputText> </AppInputText>
</ValidationProvider> </ValidationProvider>
@@ -202,7 +221,7 @@
<ValidationProvider tag="div" mode="passive" name="Bucket" rules="required" v-slot="{ errors }"> <ValidationProvider tag="div" mode="passive" name="Bucket" rules="required" v-slot="{ errors }">
<AppInputText <AppInputText
title="Bucket" title="Bucket"
description="Provide your created unique bucket name" description="Type your created unique bucket name"
:error="errors[0]" :error="errors[0]"
> >
<input <input
@@ -501,6 +520,7 @@ export default {
backblaze: 'https://s3.' + val + '.backblazeb2.com', backblaze: 'https://s3.' + val + '.backblazeb2.com',
oss: 'https://' + val + '.aliyuncs.com', oss: 'https://' + val + '.aliyuncs.com',
s3: 'https://s3.amazonaws.com', s3: 'https://s3.amazonaws.com',
other: undefined,
}[this.storage.driver] }[this.storage.driver]
}, },
}, },
@@ -514,8 +534,12 @@ export default {
wasabi: this.wasabiRegions, wasabi: this.wasabiRegions,
backblaze: this.backblazeRegions, backblaze: this.backblazeRegions,
oss: this.ossRegions, oss: this.ossRegions,
other: undefined,
}[this.storage.driver] }[this.storage.driver]
}, },
endpointUrlDescription() {
return this.storage.driver === 'other' ? this.$t('The endpoint url should start with https://') : ''
}
}, },
data() { data() {
return { return {
@@ -810,6 +834,10 @@ export default {
label: 'Alibaba Cloud OSS', label: 'Alibaba Cloud OSS',
value: 'oss', value: 'oss',
}, },
{
label: 'Other S3 Compatible Service',
value: 'other',
},
], ],
storage: { storage: {
driver: undefined, driver: undefined,
@@ -65,7 +65,8 @@
</AppInputText> </AppInputText>
</ValidationProvider> </ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="Region" rules="required" v-slot="{ errors }"> <!--List Region-->
<ValidationProvider v-if="storage.driver !== 'other'" tag="div" mode="passive" name="Region" rules="required" v-slot="{ errors }">
<AppInputText <AppInputText
title="Region" title="Region"
description="Select your region where is your bucket/space created." description="Select your region where is your bucket/space created."
@@ -81,6 +82,24 @@
</AppInputText> </AppInputText>
</ValidationProvider> </ValidationProvider>
<!--Input Region-->
<ValidationProvider v-if="storage.driver === 'other'" tag="div" mode="passive" name="Region" rules="required" v-slot="{ errors }">
<AppInputText
title="Region"
description="Type your region where is your bucket created."
:error="errors[0]"
>
<input
class="focus-border-theme input-dark"
v-model="storage.region"
placeholder="Type your region"
type="text"
:class="{ '!border-rose-600': errors[0] }"
:readonly="storage.driver !== 'other'"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider <ValidationProvider
tag="div" tag="div"
mode="passive" mode="passive"
@@ -88,14 +107,14 @@
rules="required" rules="required"
v-slot="{ errors }" v-slot="{ errors }"
> >
<AppInputText title="Endpoint URL" :error="errors[0]"> <AppInputText title="Endpoint URL" :description="endpointUrlDescription" :error="errors[0]">
<input <input
class="focus-border-theme input-dark" class="focus-border-theme input-dark"
v-model="storage.endpoint" v-model="storage.endpoint"
placeholder="Type your endpoint" placeholder="Type your endpoint"
type="text" type="text"
:class="{ '!border-rose-600': errors[0] }" :class="{ '!border-rose-600': errors[0] }"
readonly :readonly="storage.driver !== 'other'"
/> />
</AppInputText> </AppInputText>
</ValidationProvider> </ValidationProvider>
@@ -103,7 +122,7 @@
<ValidationProvider tag="div" mode="passive" name="Bucket" rules="required" v-slot="{ errors }"> <ValidationProvider tag="div" mode="passive" name="Bucket" rules="required" v-slot="{ errors }">
<AppInputText <AppInputText
title="Bucket" title="Bucket"
description="Provide your created unique bucket name" description="Type your created unique bucket name"
:error="errors[0]" :error="errors[0]"
:is-last="true" :is-last="true"
> >
@@ -562,6 +581,7 @@ export default {
backblaze: 'https://s3.' + val + '.backblazeb2.com', backblaze: 'https://s3.' + val + '.backblazeb2.com',
oss: 'https://' + val + '.aliyuncs.com', oss: 'https://' + val + '.aliyuncs.com',
s3: 'https://s3.amazonaws.com', s3: 'https://s3.amazonaws.com',
other: undefined,
}[this.storage.driver] }[this.storage.driver]
}, },
}, },
@@ -575,8 +595,12 @@ export default {
wasabi: this.wasabiRegions, wasabi: this.wasabiRegions,
backblaze: this.backblazeRegions, backblaze: this.backblazeRegions,
oss: this.ossRegions, oss: this.ossRegions,
other: undefined,
}[this.storage.driver] }[this.storage.driver]
}, },
endpointUrlDescription() {
return this.storage.driver === 'other' ? this.$t('The endpoint url should start with https://') : ''
}
}, },
data() { data() {
return { return {
@@ -827,6 +851,10 @@ export default {
label: 'Alibaba Cloud OSS', label: 'Alibaba Cloud OSS',
value: 'oss', value: 'oss',
}, },
{
label: 'Other S3 Compatible Service',
value: 'other',
},
], ],
storage: { storage: {
driver: 'local', driver: 'local',