Storage support for local disk (#165)

* Storage support for local disk

* UI change ai feature page

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
This commit is contained in:
formsdev
2023-08-16 14:29:07 +05:30
committed by GitHub
parent c42c7ca97c
commit 3c71be5d45
12 changed files with 99 additions and 20 deletions

View File

@@ -62,13 +62,16 @@
</li>
</ul>
<div class="mt-6 sm:mt-8 flex">
<v-button v-if="!authenticated" class="mr-1" :to="{ name: 'forms.create.guest' }" :arrow="true">
<div class="mt-6 sm:mt-8 flex text-center justify-center lg:justify-start">
<v-button v-if="!authenticated" class="mr-2 block" :to="{ name: 'forms.create.guest' }" :arrow="true">
Get started for free
</v-button>
<v-button v-else class="mr-1" :to="{ name: 'forms.create' }" :arrow="true">
<v-button v-else class="mr-2 block" :to="{ name: 'forms.create' }" :arrow="true">
Get started for free
</v-button>
<v-button color="light-gray" class="mr-1 block" :to="{ name: 'aiformbuilder' }">
Learn more
</v-button>
</div>
</div>

View File

@@ -15,6 +15,26 @@ Vue.mixin({
* Store a file in S3 and return its UUID, key, and other information.
*/
async storeFile (file, options = {}) {
if(!window.config.s3_enabled) { // If not s3 then upload to local temp
if (typeof options.progress === 'undefined') {
options.progress = () => {}
}
const cleanAxios = axios.create()
let formData = new FormData();
formData.append('file', file);
const response = await cleanAxios.post('/upload-file', formData, {
headers: {
'Content-Type': 'multipart/form-data'
},
onUploadProgress: (progressEvent) => {
options.progress(progressEvent.loaded / progressEvent.total)
}
})
response.data.extension = file.name.split('.').pop()
return response.data
}
const response = await axios.post(options.signedStorageUrl ? options.signedStorageUrl : '/vapor/signed-storage-url', {
bucket: options.bucket || '',
content_type: options.contentType || file.type,

View File

@@ -13,7 +13,8 @@
'google_analytics_code' => config('services.google_analytics_code'),
'amplitude_code' => config('services.amplitude_code'),
'crisp_website_id' => config('services.crisp_website_id'),
'ai_features_enabled' => !is_null(config('services.openai.api_key'))
'ai_features_enabled' => !is_null(config('services.openai.api_key')),
's3_enabled' => config('filesystems.default') === 's3'
];
@endphp
<!DOCTYPE html>