opnform/client/composables/forms/initForm.js

81 lines
2.1 KiB
JavaScript
Raw Normal View History

import {generateUUID} from "~/lib/utils.js";
2023-12-20 15:10:32 +00:00
export const initForm = (defaultValue = {}, withDefaultProperties = false) => {
2023-12-20 15:10:32 +00:00
return useForm({
title: 'My Form',
description: null,
visibility: 'public',
workspace_id: null,
properties: withDefaultProperties ? getDefaultProperties() :[],
2023-12-20 15:10:32 +00:00
notifies: false,
slack_notifies: false,
send_submission_confirmation: false,
webhook_url: null,
notification_settings: {},
// Customization
theme: 'default',
width: 'centered',
dark_mode: 'auto',
color: '#3B82F6',
hide_title: false,
no_branding: false,
uppercase_labels: true,
transparent_background: false,
closes_at: null,
closed_text: 'This form has now been closed by its owner and does not accept submissions anymore.',
auto_save: true,
// Submission
submit_button_text: 'Submit',
re_fillable: false,
re_fill_button_text: 'Fill Again',
submitted_text: 'Amazing, we saved your answers. Thank you for your time and have a great day!',
notification_sender: 'OpnForm',
notification_subject: 'We saved your answers',
notification_body: 'Hello there 👋 <br>This is a confirmation that your submission was successfully saved.',
notifications_include_submission: true,
use_captcha: false,
is_rating: false,
rating_max_value: 5,
max_submissions_count: null,
max_submissions_reached_text: 'This form has now reached the maximum number of allowed submissions and is now closed.',
editable_submissions_button_text: 'Edit submission',
confetti_on_submission: false,
// Security & Privacy
can_be_indexed: true,
// Custom SEO
seo_meta: {},
2023-12-24 19:23:01 +00:00
...defaultValue
2023-12-20 15:10:32 +00:00
})
}
function getDefaultProperties () {
return [
{
name: 'Name',
type: 'text',
hidden: false,
required: true,
id: generateUUID()
},
{
name: 'Email',
type: 'email',
hidden: false,
id: generateUUID()
},
{
name: 'Message',
type: 'text',
hidden: false,
multi_lines: true,
id: generateUUID()
}
]
}