templates/donation/index.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}Donation{% endblock %}
  3. {% block body %}
  4. <div class="container overflow-hidden">
  5.     <div class="row align-items-center justify-content-center min-vh-100 my-5 py-5">
  6.         <div class="col-sm-12 align-items-center d-block">
  7.             {{ form_start(form, {'attr': {'id': 'donation_form'}}) }}
  8.                 <div class="tab">
  9.                     <div class="row">
  10.                         <div class="col-sm-12">
  11.                             <a href="/">
  12.                                 <img src="/build/images/logo.png" class="logo mb-3"/>
  13.                             </a>
  14.                             <h1 class="h3 mb-2 fw-bold">Checkout</h1>
  15.                             
  16.                         </div>
  17.                     </div>
  18.                     
  19.                     {% for message in app.flashes('notice') %}
  20.                         <div class="alert alert-danger mb-5" role="alert">{{ message }}</div>
  21.                     {% endfor %}
  22.                     <ul class="error-msg alert alert-danger error-msgs mb-4 ps-5 fw-bold" style="display: none;">
  23.                     </ul>
  24.                     {#
  25.                     {% if supportdaf > 0 %}
  26.                         <div class="row mb-4">
  27.                             <div class="col-sm-12 form-group">
  28.                                 <h5 class="fw-bold">You are currently donating {{ (amount) | format_currency('AUD') }} to {{ project.title }} and {{ (supportdaf) | format_currency('AUD') }} to Documentary Australia.</h5>
  29.                                 <h5 class="fw-bold">Click <a href="/donation?wpId={{ wordpressId }}&amount={{ amount }}">here</a> if you only want to donate to {{ project.title }}.</h5>
  30.                             </div>
  31.                         </div>
  32.                     {% endif %}
  33.                     #}
  34.                     {% if not user %}
  35.                     <div class="row mb-3">
  36.                         <div class="col-sm-12 form-group">
  37.                             <h5 class="fw-bold">Create your account <a href="/registration?returnUrl={{ app.request.requesturi | url_encode }}">here</a> to access your benefits.</h5>
  38.                         </div>
  39.                     </div>
  40.                     {% endif %}
  41.                     <div class="row mb-3 mt-4">
  42.                         <div class="col-sm-6">
  43.                             <h5 class="fw-bold">Account Information</h5>
  44.                         </div>
  45.                         <div class="col-sm-6">
  46.                             {% if not user %}
  47.                             <h5 class="fw-bold text-end">Already have an account? <a href="/?returnUrl={{ app.request.requesturi | url_encode }}">Log in</a></h5>
  48.                             {% endif %}
  49.                         </div>
  50.                     </div>
  51.                     <div class="row mb-4">
  52.                         <div class="col-sm-6 form-group">
  53.                             <label for="firstName" class="fw-bold text-uppercase">First Name <span class="text-danger">*</span></label>
  54.                             {{ form_widget(form.firstName, {'attr': {'class': 'form-control'}}) }}
  55.                             <p class="fw-bold messages"></p>
  56.                         </div>
  57.                         <div class="col-sm-6 form-group">
  58.                             <label for="lastName" class="fw-bold text-uppercase">Last Name <span class="text-danger">*</span></label>
  59.                             {{ form_widget(form.lastName, {'attr': {'class': 'form-control'}}) }}
  60.                             <p class="fw-bold messages"></p>
  61.                         </div>
  62.                     </div>
  63.                     <div class="row mb-4">
  64.                         <div class="col-sm-12 form-group display-organisation-tickbox">
  65.                             {{ form_widget(form.isDisplayOrganisation) }}
  66.                             <p class="fw-bold messages"></p>
  67.                         </div>
  68.                         <div class="col-sm-12 form-group display-organisation-input">
  69.                             <label for="organisation" class="fw-bold text-uppercase">Organisation / Company</label>
  70.                             {{ form_widget(form.organisation, {'attr': {'class': 'form-control'}}) }}
  71.                             <p class="my-2 fw-bold">Leave blank if no organisation/company applicable</p>
  72.                             <p class="fw-bold messages"></p>
  73.                         </div>                        
  74.                     </div>
  75.                     <div class="row mb-4">
  76.                         <div class="col-sm-12 form-group">
  77.                             <label for="street" class="fw-bold text-uppercase">Number and Street <span class="text-danger">*</span></label>
  78.                             {{ form_widget(form.street, {'attr': {'class': 'form-control'}}) }}
  79.                             <p class="fw-bold messages"></p>
  80.                         </div>
  81.                     </div>
  82.                     <div class="row mb-4">
  83.                         <div class="col-sm-3 form-group">
  84.                             <label for="lastName" class="fw-bold text-uppercase">Suburb <span class="text-danger">*</span></label>
  85.                             {{ form_widget(form.suburb, {'attr': {'class': 'form-control'}}) }}
  86.                             <p class="fw-bold messages"></p>
  87.                         </div>
  88.                         <div class="col-sm-5 form-group">
  89.                             <label for="state" class="fw-bold text-uppercase">State <span class="text-danger">*</span></label>
  90.                             {{ form_widget(form.state, {'attr': {'class': 'form-control'}}) }}
  91.                             <p class="fw-bold messages"></p>
  92.                         </div>
  93.                         <div class="col-sm-4 form-group">
  94.                             <label for="country" class="fw-bold text-uppercase">Country <span class="text-danger">*</span></label>
  95.                             {{ form_widget(form.country, {'attr': {'class': 'form-control'}}) }}
  96.                             <p class="fw-bold messages"></p>
  97.                         </div>
  98.                     </div>
  99.                     <div class="row mb-4">
  100.                         <div class="col-sm-4 form-group">
  101.                             <label for="postcode" class="fw-bold text-uppercase">Postcode <span class="text-danger">*</span></label>
  102.                             {{ form_widget(form.postcode, {'attr': {'class': 'form-control'}}) }}
  103.                             <p class="fw-bold messages"></p>
  104.                         </div>
  105.                         <div class="col-sm-4 form-group">
  106.                             <label for="phoneNumber" class="fw-bold text-uppercase">Phone <span class="text-danger">*</span></label>
  107.                             {{ form_widget(form.phoneNumber, {'attr': {'class': 'form-control'}}) }}
  108.                             <p class="fw-bold messages"></p>
  109.                         </div>
  110.                         <div class="col-sm-4 form-group">
  111.                             <label for="email" class="fw-bold text-uppercase">Email Address <span class="text-danger">*</span></label>
  112.                             {{ form_widget(form.email, {'attr': {'class': 'form-control'}}) }}
  113.                             <p class="fw-bold messages"></p>
  114.                         </div>
  115.                     </div>
  116.                     <div class="row mb-3">
  117.                         <div class="col-sm-12">
  118.                             <h5 class="fw-bold">Additional Information</h5>
  119.                         </div>
  120.                     </div>
  121.                     <div class="row mb-4">
  122.                         <div class="col-sm-12 form-group">
  123.                             <label for="isOrganisationConsent" class="fw-bold text-uppercase mb-2">Consent to having my name or organisation listed on the project page or any public list of donations for this project <span class="text-danger">*</span></label>
  124.                             {{ form_widget(form.isOrganisationConsent) }}
  125.                             <p class="fw-bold messages"></p>
  126.                         </div>
  127.                     </div>
  128.                     <div class="row mb-4">
  129.                         <div class="col-sm-12 form-group">
  130.                             <label for="isContactShared" class="fw-bold text-uppercase mb-2">Consent to having my name and contact details shared with the filmmaker for the purpose of receiving communications from the filmmaker. <span class="text-danger">*</span></label>
  131.                             {{ form_widget(form.isContactShared) }}
  132.                             <p class="fw-bold messages"></p>
  133.                         </div>
  134.                     </div>
  135.                     <div class="row mb-4">
  136.                         <div class="col-sm-12 form-group">
  137.                             <label for="isNameApproved" class="fw-bold text-uppercase mb-2">Consent for my name as above to be listed in relevant project credits and/or organisational reporting as appropriate. <span class="text-danger">*</span></label>
  138.                             {{ form_widget(form.isNameApproved) }}
  139.                             <p class="fw-bold messages"></p>
  140.                         </div>
  141.                     </div>
  142.                     <!-- donation product row -->
  143.                     <div class="row mb-4">
  144.                         <div class="col-sm-12">
  145.                             <h4 class="fw-bold mb-4">Your Donation</h4>
  146.                             <table class="table table-responsive">
  147.                                 <thead class="text-uppercase">
  148.                                     <tr class="fw-bold">
  149.                                         <th class="py-3">Product</th>
  150.                                         <th class="py-3">Subtotal</th>
  151.                                         <th class="py-3"></th>
  152.                                     </tr>
  153.                                 </thead>
  154.                                 <tbody>
  155.                                     {#
  156.                                     {% if project %}
  157.                                         {% for percentageSplit in product.percentageSplits %}
  158.                                         <tr>
  159.                                             {% set productName = percentageSplit.name %}
  160.                                             {% if loop.index0 == 0 %}
  161.                                                 {% set productName = project.title %}
  162.                                             {% endif %}
  163.                                             <td class="py-2 border-0">{{ productName }}</td>
  164.                                             <td class="py-2 border-0">{{ (amount * percentageSplit.percentage / 100) | format_currency('AUD') }}</td>
  165.                                         </tr>
  166.                                         {% endfor %}
  167.                                     {% endif %}
  168.                                     {% if supportdaf > 0 %}
  169.                                     <tr>
  170.                                         <td class="py-2 border-0">DAF Donation</td>
  171.                                         <td class="py-2 border-0">{{ (supportdaf) | format_currency('AUD') }}</td>
  172.                                     </tr>
  173.                                     {% endif %}
  174.                                     #}
  175.                                     {% if project %}
  176.                                         <tr>
  177.                                             <td class="py-2 border-0">{{ project.title }}</td>
  178.                                             <td class="py-2 border-0">{{ (amount) | format_currency('AUD') }}</td>
  179.                                             <td class="py-2 border-0"></td>
  180.                                         </tr>
  181.                                     {% endif %}
  182.                                     {% if supportdaf > 0 %}
  183.                                     <tr>
  184.                                         <td class="py-2 border-0">Documentary Australia Donation</td>
  185.                                         <td class="py-2 border-0">{{ (supportdaf) | format_currency('AUD') }}</td>
  186.                                         {% if wordpressId is defined %}
  187.                                         <td class="py-2 border-0 text-center">
  188.                                             <a href="/donation?wpId={{ wordpressId }}&amount={{ amount }}" id="remove-daf">
  189.                                                 <i class="fa-solid fa-trash color-danger delete-icon"></i>
  190.                                             </a>
  191.                                         </td>
  192.                                         {% endif %}
  193.                                     </tr>
  194.                                     {% endif %}
  195.                                 </tbody>
  196.                                 <tfoot class="text-uppercase border-0">
  197.                                     <tr>
  198.                                         <td class="pb-4 border-0"><span class="fw-bold">Total</span></td>
  199.                                         <td class="pb-4 border-0"><span class="fw-bold">{{ total | format_currency('AUD') }}</span></td>
  200.                                         <td class="pb-4 border-0"></td>
  201.                                     </tr>
  202.                                 </tfoot>
  203.                             </table>
  204.                         </div>
  205.                     </div>
  206.                     <div class="row mb-2">
  207.                         <div class="col-sm-12 form-group">
  208.                             {{ form_widget(form.isTermsCondition) }}
  209.                             <p class="fw-bold messages"></p>
  210.                         </div>
  211.                     </div>
  212.                     <div class="row mb-4">
  213.                         <div class="col-sm-12 form-group">
  214.                             {{ form_widget(form.isNonFamily) }}
  215.                             <p class="fw-bold messages"></p>
  216.                         </div>
  217.                     </div>
  218.                 </div>
  219.                 <div class="tab" style="visibility: hidden; max-height: 0;">
  220.                     <div class="row">
  221.                         <div class="col-md-12">
  222.                             <div class="p-4 px-5 mb-3 fw-bold" style="background:#f1f1f1;">
  223.                                 <div class="col-12">
  224.                                     <p>Date: {{ "now"|date("F d, Y") }}</p>
  225.                                     <p>Total: {{ total | format_currency('AUD') }}</p>
  226.                                     <p>Payment method: Merchant Warrior Credit Card</p>
  227.                                 </div>
  228.                             </div>
  229.                         </div>
  230.                     </div>
  231.                     <div class="row">
  232.                         <div class="col-md-12">
  233.                             <div class="p-4 px-5 pb-5 mb-4" style="background:#f1f1f1;">
  234.                                 <div class="col-12">
  235.                                     <p>Credit Cards Accepted: Visa, Mastercard, American Express</p>
  236.                                 </div>
  237.                                 <div>
  238.                                     <div class="pb-3">
  239.                                         <div class="form-check">
  240.                                             <input type="radio" name="card_payment" id="cardPayment-0" class="form-check-input" value="" checked>
  241.                                             <label class="form-check-label fw-bold" for="cardPayment-0">New payment</label>
  242.                                         </div>
  243.                                         <div id="creditCardForm">
  244.                                             <div id="cardData" class="d-flex"></div>
  245.                                             {% if user %}
  246.                                             <div class="form-check">
  247.                                                 <input type="checkbox" name="add_card" class="form-check-input" value="1">
  248.                                                 <label class="form-check-label fw-bold" for="add_card">Save credit card payment for future checkout</label>
  249.                                             </div>
  250.                                             {% endif %}
  251.                                         </div>
  252.                                     </div>
  253.                                     {% for card in cards %}
  254.                                         <div class="form-check py-3 custom-border-1">
  255.                                             <input type="radio" name="card_payment" id="cardPayment-{{ loop.index }}" class="form-check-input" 
  256.                                                 value="{{ card.cardID }}">
  257.                                             <label class="form-check-label fw-bold" for="cardPayment-{{ loop.index }}"> 
  258.                                                 Card {{' ending in ' ~ card.cardNumberLast ~ ' (expires ' ~ card.cardExpiryMonth ~ '/' ~ card.cardExpiryYear ~ ')'  }}
  259.                                             </label>
  260.                                         </div>
  261.                                     {% endfor %}
  262.                                     <input type="hidden" id="is_success" />
  263.                                     
  264.                                 </div>
  265.                                 <div class="col-12">
  266.                                     <p>Documentary Australia Pty Ltd Limited (ABN 12 119 563 941) as trustee for the Documentary Australia Trust (ABN 11 227 328 793) collects personal information about you when processing donations and transactions and communicating with our donors and supporters, volunteers, and our employees and the purposes otherwise set in our Privacy Policy.</p>
  267.                                 </div>
  268.                             </div>
  269.                         </div>
  270.                     </div>
  271.                 </div>
  272.                 <div class="row pt-4 mb-4">
  273.                     <div class="col-sm-12">
  274.                         <div class="d-flex justify-content-between">
  275.                             <button type="button" class="rounded-pill gap-2 btn btn-lg btn-primary text-uppercase" id="prevDonationBtn" style="display: none;">Previous</button>
  276.                             <button type="button" class="ms-auto rounded-pill gap-2 btn btn-lg btn-primary text-uppercase" id="nextDonationBtn">Next</button>
  277.                             <button id="submit_donation" class="rounded-pill gap-2 btn btn-lg btn-primary text-uppercase" type="submit"  style="display: none;">
  278.                                 Confirm and pay
  279.                             </button>
  280.                         </div>
  281.                     </div>
  282.                 </div>
  283.             {{ form_end(form) }}
  284.         </div>
  285.     </div>
  286. </div>
  287. <style>
  288.     .loadingoverlay {
  289.             justify-content: center !important;
  290.             gap: 30px;
  291.     }
  292.     .loadingoverlay_element.loadingoverlay_text {
  293.             max-width: 28em;
  294.             text-align: center;
  295.     }
  296. </style>
  297. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/fontawesome.min.css" />
  298. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/solid.min.css" />
  299. <script src='https://securetest.merchantwarrior.com/payframe/payframe.js'></script>
  300. <script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
  301. <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/loadingoverlay.min.js"></script>
  302. <script>
  303.     const removeDafEl = document.querySelector('#remove-daf')
  304.     if (removeDafEl != undefined) {
  305.         removeDafEl.addEventListener('click', () => {
  306.             const donationForm = {
  307.                 firstName: document.getElementById('donation_form_firstName').value,
  308.                 lastName:document.getElementById('donation_form_lastName').value,
  309.                 organisation:document.getElementById('donation_form_organisation').value,
  310.                 street:document.getElementById('donation_form_street').value,
  311.                 suburb:document.getElementById('donation_form_suburb').value,
  312.                 state:document.getElementById('donation_form_state').value,
  313.                 country:document.getElementById('donation_form_country').value,
  314.                 postcode:document.getElementById('donation_form_postcode').value,
  315.                 phoneNumber:document.getElementById('donation_form_phoneNumber').value,
  316.                 email:document.getElementById('donation_form_email').value,
  317.             }
  318.             localStorage.setItem('donationForm', JSON.stringify(donationForm))
  319.         })
  320.     }
  321.     let donationFormInputs = localStorage.getItem('donationForm')
  322.     if (donationFormInputs != undefined) {
  323.         donationFormInputs = JSON.parse(donationFormInputs)
  324.         document.getElementById('donation_form_firstName').value = donationFormInputs.firstName
  325.         document.getElementById('donation_form_lastName').value = donationFormInputs.lastName
  326.         document.getElementById('donation_form_organisation').value = donationFormInputs.organisation
  327.         document.getElementById('donation_form_street').value = donationFormInputs.street
  328.         document.getElementById('donation_form_suburb').value = donationFormInputs.suburb
  329.         document.getElementById('donation_form_state').value = donationFormInputs.state
  330.         document.getElementById('donation_form_country').value = donationFormInputs.country
  331.         document.getElementById('donation_form_postcode').value = donationFormInputs.postcode
  332.         document.getElementById('donation_form_phoneNumber').value = donationFormInputs.phoneNumber
  333.         document.getElementById('donation_form_email').value = donationFormInputs.email
  334.     }
  335. </script>
  336. {% endblock %}