summaryrefslogtreecommitdiff
path: root/addons/website_form/static/src/xml
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_form/static/src/xml')
-rw-r--r--addons/website_form/static/src/xml/website_form.xml18
-rw-r--r--addons/website_form/static/src/xml/website_form_editor.xml363
2 files changed, 381 insertions, 0 deletions
diff --git a/addons/website_form/static/src/xml/website_form.xml b/addons/website_form/static/src/xml/website_form.xml
new file mode 100644
index 00000000..9c1390c7
--- /dev/null
+++ b/addons/website_form/static/src/xml/website_form.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+
+ <!-- Success status -->
+ <t t-name="website_form.status_success">
+ <span id="s_website_form_result" class="text-success ml8">
+ <i class="fa fa-check mr4" role="img" aria-label="Success" title="Success"/>The form has been sent successfully.
+ </span>
+ </t>
+
+ <!-- Error status -->
+ <t t-name="website_form.status_error">
+ <span id="s_website_form_result" class="text-danger ml8">
+ <i class="fa fa-close mr4" role="img" aria-label="Error" title="Error"/>
+ <t t-esc="message"/>
+ </span>
+ </t>
+</templates>
diff --git a/addons/website_form/static/src/xml/website_form_editor.xml b/addons/website_form/static/src/xml/website_form_editor.xml
new file mode 100644
index 00000000..1450fb8c
--- /dev/null
+++ b/addons/website_form/static/src/xml/website_form_editor.xml
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+
+ <!-- End Message -->
+ <t t-name="website_form.s_website_form_end_message">
+ <div class="s_website_form_end_message d-none">
+ <div class="oe_structure">
+ <section class="s_text_block pt64 pb64 o_colored_level o_cc o_cc2" data-snippet="s_text_block">
+ <div class="container">
+ <h2 class="text-center">
+ <span class="fa fa-check-circle"/>
+ Thank You For Your Feedback
+ </h2>
+ <p class="text-center">
+ Our team will message you back as soon as possible.<br/>
+ In the meantime we invite you to visit our <a href="/">website</a>.<br/>
+ </p>
+ </div>
+ </section>
+ </div>
+ </div>
+ </t>
+
+ <t t-name="webite_form.s_website_form_recaptcha_legal">
+ <div class="col-12 s_website_form_recaptcha" data-name="Recaptcha Legal">
+ <div t-attf-style="width: #{labelWidth or '200px'}" class="s_website_form_label"/>
+ <div class="col-sm">
+ <t t-call="google_recaptcha.recaptcha_legal_terms"/>
+ </div>
+ </div>
+ </t>
+
+ <!-- Generic Field Layout -->
+ <!-- Changes made here needs to be reflected in the different Form view (Contact Us, Jobs, ...) -->
+ <t t-name="website_form.field">
+ <div t-attf-class="form-group s_website_form_field #{field.formatInfo.col or 'col-12'} #{field.custom and 's_website_form_custom' or ''} #{(field.required and 's_website_form_required' or '') or (field.modelRequired and 's_website_form_model_required' or '')} #{field.hidden and 's_website_form_field_hidden' or ''} #{field.dnone and 's_website_form_dnone' or ''}"
+ t-att-data-type="field.type"
+ data-name="Field">
+ <div t-if="field.formatInfo.labelPosition != 'none' and field.formatInfo.labelPosition != 'top'" class="row s_col_no_resize s_col_no_bgcolor">
+ <label t-attf-class="#{!field.isCheck and 'col-form-label' or ''} col-sm-auto s_website_form_label #{field.formatInfo.labelPosition == 'right' and 'text-right' or ''}" t-attf-style="width: #{field.formatInfo.labelWidth or '200px'}" t-att-for="field.id">
+ <t t-call="website_form.label_content"/>
+ </label>
+ <div class="col-sm">
+ <t t-raw="0"/>
+ </div>
+ </div>
+ <t t-else="">
+ <label t-attf-class="s_website_form_label #{field.formatInfo.labelPosition == 'none' and 'd-none' or ''}" t-attf-style="width: #{field.formatInfo.labelWidth or '200px'}" t-att-for="field.id">
+ <t t-call="website_form.label_content"/>
+ </label>
+ <t t-raw="0"/>
+ </t>
+ </div>
+ </t>
+
+ <t t-name="website_form.label_content">
+ <t t-if="field.custom" t-set="field.string" t-value="field.name"/>
+ <span class="s_website_form_label_content" t-esc="field.string"/>
+ <t t-if="field.required or field.modelRequired">
+ <span class="s_website_form_mark" t-if="field.formatInfo.requiredMark" t-esc="' ' + field.formatInfo.mark"/>
+ </t>
+ <t t-else="">
+ <span class="s_website_form_mark" t-if="field.formatInfo.optionalMark" t-esc="' ' + field.formatInfo.mark"/>
+ </t>
+ <span t-if="['email_cc', 'email_to'].includes(field.name)" title="Separate email addresses with a comma.">
+ <i class="fa fa-info-circle"/>
+ </span>
+ </t>
+
+ <!-- Hidden Field -->
+ <t t-name="website_form.field_hidden">
+ <t t-set="field.dnone" t-value="true"/>
+ <t t-set="field.formatInfo" t-value="{}"/>
+ <t t-call="website_form.field">
+ <input
+ type="hidden"
+ class="form-control s_website_form_input"
+ t-att-name="field.name"
+ t-att-value="field.value"
+ t-att-id="field.id"
+ />
+ </t>
+ </t>
+
+ <!-- Char Field -->
+ <t t-name="website_form.field_char">
+ <t t-call="website_form.field">
+ <input
+ t-att-type="field.inputType || 'text'"
+ class="form-control s_website_form_input"
+ t-att-name="field.name"
+ t-att-required="field.required || field.modelRequired || None"
+ t-att-value="field.value"
+ t-att-placeholder="field.placeholder"
+ t-att-id="field.id"
+ />
+ </t>
+ </t>
+
+ <!-- Email Field -->
+ <t t-name="website_form.field_email">
+ <t t-set="field.inputType" t-value="'email'"/>
+ <t t-call="website_form.field_char"/>
+ </t>
+
+ <!-- Telephone Field -->
+ <t t-name="website_form.field_tel">
+ <t t-set="field.inputType" t-value="'tel'"/>
+ <t t-call="website_form.field_char"/>
+ </t>
+
+ <!-- Url Field -->
+ <t t-name="website_form.field_url">
+ <t t-set="field.inputType" t-value="'url'"/>
+ <t t-call="website_form.field_char"/>
+ </t>
+
+ <!-- Text Field -->
+ <t t-name="website_form.field_text">
+ <t t-call="website_form.field">
+ <textarea
+ class="form-control s_website_form_input"
+ t-att-name="field.name"
+ t-att-required="field.required || field.modelRequired || None"
+ t-att-placeholder="field.placeholder"
+ t-att-id="field.id"
+ t-att-rows="field.rows || 3"
+ />
+ </t>
+ </t>
+
+ <!-- HTML Field -->
+ <t t-name="website_form.field_html">
+ <!--
+ Maybe use web_editor ? Not sure it actually makes
+ sense to have random people editing html in a form...
+ -->
+ <t t-call="website_form.field_text"/>
+ </t>
+
+ <!-- Integer Field -->
+ <t t-name="website_form.field_integer">
+ <t t-call="website_form.field">
+ <input
+ type="number"
+ class="form-control s_website_form_input"
+ t-att-name="field.name"
+ step="1"
+ t-att-required="field.required || field.modelRequired || None"
+ t-att-placeholder="field.placeholder"
+ t-att-id="field.id"
+ />
+ </t>
+ </t>
+
+ <!-- Float Field -->
+ <t t-name="website_form.field_float">
+ <t t-call="website_form.field">
+ <input
+ type="number"
+ class="form-control s_website_form_input"
+ t-att-name="field.name"
+ step="any"
+ t-att-required="field.required || field.modelRequired || None"
+ t-att-placeholder="field.placeholder"
+ t-att-id="field.id"
+ />
+ </t>
+ </t>
+
+ <!-- Date Field -->
+ <t t-name="website_form.field_date">
+ <t t-call="website_form.field">
+ <t t-set="datepickerID" t-value="'datepicker' + Math.random().toString().substring(2)"/>
+ <div class="s_website_form_date input-group date" t-att-id="datepickerID" data-target-input="nearest">
+ <input
+ type="text"
+ class="form-control datetimepicker-input s_website_form_input"
+ t-attf-data-target="##{datepickerID}"
+ t-att-name="field.name"
+ t-att-required="field.required || field.modelRequired || None"
+ t-att-placeholder="field.placeholder"
+ t-att-id="field.id"
+ />
+ <div class="input-group-append" t-attf-data-target="##{datepickerID}" data-toggle="datetimepicker">
+ <div class="input-group-text"><i class="fa fa-calendar"></i></div>
+ </div>
+ </div>
+ </t>
+ </t>
+
+ <!-- Datetime Field -->
+ <t t-name="website_form.field_datetime">
+ <t t-call="website_form.field">
+ <t t-set="datetimepickerID" t-value="'datetimepicker' + Math.random().toString().substring(2)"/>
+ <div class="s_website_form_datetime input-group date" t-att-id="datetimepickerID" data-target-input="nearest">
+ <input
+ type="text"
+ class="form-control datetimepicker-input s_website_form_input"
+ t-attf-data-target="##{datetimepickerID}"
+ t-att-name="field.name"
+ t-att-required="field.required || field.modelRequired || None"
+ t-att-placeholder="field.placeholder"
+ t-att-id="field.id"
+ />
+ <div class="input-group-append" t-attf-data-target="##{datetimepickerID}" data-toggle="datetimepicker">
+ <div class="input-group-text"><i class="fa fa-calendar"></i></div>
+ </div>
+ </div>
+ </t>
+ </t>
+
+ <!-- Boolean Field -->
+ <t t-name="website_form.field_boolean">
+ <t t-set="field.isCheck" t-value="true"/>
+ <t t-call="website_form.field">
+ <input
+ type="checkbox"
+ value="Yes"
+ class="s_website_form_input"
+ t-att-name="field.name"
+ t-att-required="field.required || field.modelRequired || None"
+ t-att-id="field.id"
+ />
+ </t>
+ </t>
+
+ <!-- Selection Field -->
+ <t t-name="website_form.field_selection">
+ <t t-set="field.isCheck" t-value="true"/>
+ <t t-call="website_form.field">
+ <div class="row s_col_no_resize s_col_no_bgcolor s_website_form_multiple" t-att-data-name="field.name" t-att-data-display="field.formatInfo.multiPosition">
+ <t t-if="!field.records">
+ <input
+ class="s_website_form_input"
+ t-att-name="field.name"
+ t-att-value="record.id"
+ t-att-required="field.required || field.modelRequired || None"
+ placeholder="No matching record !"
+ />
+ </t>
+ <t t-foreach="field.records" t-as="record">
+ <t t-call="website_form.radio"/>
+ </t>
+ </div>
+ </t>
+ </t>
+
+ <!-- Radio -->
+ <t t-name="website_form.radio">
+ <t t-set="recordId" t-value="field.id + record_index"/>
+ <div t-attf-class="radio col-12 #{field.formatInfo.multiPosition === 'horizontal' and 'col-lg-4 col-md-6' or ''}">
+ <div class="form-check">
+ <input
+ type="radio"
+ class="s_website_form_input form-check-input"
+ t-att-id="recordId"
+ t-att-name="field.name"
+ t-att-value="record.id"
+ t-att-required="field.required || field.modelRequired || None"
+ />
+ <label class="form-check-label s_website_form_check_label" t-att-for="recordId">
+ <t t-esc="record.display_name"/>
+ </label>
+ </div>
+ </div>
+ </t>
+
+ <!-- Many2One Field -->
+ <t t-name="website_form.field_many2one">
+ <!-- Binary one2many -->
+ <t t-if="field.relation == 'ir.attachment'">
+ <t t-call="website_form.field_binary"/>
+ </t>
+ <!-- Generic one2many -->
+ <t t-if="field.relation != 'ir.attachment'">
+ <t t-call="website_form.field">
+ <select class="form-control s_website_form_input" t-att-name="field.name" t-att-required="field.required || field.modelRequired || None" t-att-id="field.id">
+ <t t-foreach="field.records" t-as="record">
+ <option t-att-value="record.id" t-att-selected="record.selected">
+ <t t-esc="record.display_name"/>
+ </option>
+ </t>
+ </select>
+ </t>
+ </t>
+ </t>
+
+ <!-- One2Many Field -->
+ <t t-name="website_form.field_one2many">
+ <!-- Binary one2many -->
+ <t t-if="field.relation == 'ir.attachment'">
+ <t t-call="website_form.field_binary">
+ <t t-set="multiple" t-value="1"/>
+ </t>
+ </t>
+ <!-- Generic one2many -->
+ <t t-if="field.relation != 'ir.attachment'">
+ <t t-set="field.isCheck" t-value="true"/>
+ <t t-call="website_form.field">
+ <div class="row s_col_no_resize s_col_no_bgcolor s_website_form_multiple" t-att-data-name="field.name" t-att-data-display="field.formatInfo.multiPosition">
+ <t t-if="!field.records">
+ <input
+ class="s_website_form_input"
+ t-att-name="field.name"
+ t-att-value="record.id"
+ t-att-required="field.required || field.modelRequired || None"
+ placeholder="No matching record !"
+ />
+ </t>
+ <t t-foreach="field.records" t-as="record">
+ <t t-call="website_form.checkbox"/>
+ </t>
+ </div>
+ </t>
+ </t>
+ </t>
+
+ <!-- Checkbox -->
+ <t t-name="website_form.checkbox">
+ <t t-set="recordId" t-value="field.id + record_index"/>
+ <div t-attf-class="checkbox col-12 #{field.formatInfo.multiPosition === 'horizontal' and 'col-lg-4 col-md-6' or ''}">
+ <div class="form-check">
+ <input
+ type="checkbox"
+ class="s_website_form_input form-check-input"
+ t-att-id="recordId"
+ t-att-name="field.name"
+ t-att-value="record.id"
+ t-att-required="field.required || field.modelRequired || None"
+ />
+ <label class="form-check-label s_website_form_check_label" t-att-for="recordId">
+ <t t-esc="record.display_name"/>
+ </label>
+ </div>
+ </div>
+ </t>
+
+ <!-- Many2Many Field -->
+ <t t-name="website_form.field_many2many">
+ <t t-call="website_form.field_one2many"/>
+ </t>
+
+ <!-- Binary Field -->
+ <t t-name="website_form.field_binary">
+ <t t-set="field.isCheck" t-value="true"/>
+ <t t-call="website_form.field">
+ <input
+ type="file"
+ class="form-control-file s_website_form_input"
+ t-att-name="field.name"
+ t-att-required="field.required || field.modelRequired || None"
+ t-att-multiple="multiple"
+ t-att-id="field.id"
+ />
+ </t>
+ </t>
+
+ <!-- Monetary Field -->
+ <t t-name="website_form.field_monetary">
+ <t t-call="website_form.field_float" />
+ </t>
+</templates>