]> git.ipfire.org Git - ipfire.org.git/blame - src/templates/donate.html
donate: Remove PayPal logo
[ipfire.org.git] / src / templates / donate.html
CommitLineData
081800ca 1{% extends "base.html" %}
95b30f84 2
9b5ac075 3{% block title %}{{ _("Donate") }}{% end block %}
95b30f84 4
60b0917c 5{% block container %}
95b30f84
MT
6 {% set amounts = (10, 25, 50, 75, 100, 250) %}
7
8 <h1 class="text-center mt-5 mb-5">{{ _("Donate") }}</h1>
9
a41e6d77
MT
10 <div class="container">
11 <div class="card mb-5">
12 <div class="card-body">
13 <div class="row flex-lg-row-reverse">
14 <div class="col-12 col-lg-8">
15 <form action="" method="POST">
16 {% raw xsrf_form_html() %}
17
18 <div class="row justify-content-center">
19 <div class="col-12 col-sm-11 col-xl-12 p-4 p-sm-6 p-md-4 pt-6">
20 <div class="row">
21 <div class="col-12 col-lg-6 mb-3 mb-md-0">
22 <h6>Choose a currency</h6>
23
24 <div class="form-check form-check-inline">
bd2723d4
MT
25 <input class="form-check-input" type="radio" name="currency" id="EUR" value="EUR"
26 {% if currency == "EUR" %}checked{% end %}>
a41e6d77
MT
27 <label class="form-check-label" for="EUR">{{ _("Euro") }}</label>
28 </div>
95b30f84 29
a41e6d77 30 <div class="form-check form-check-inline">
bd2723d4
MT
31 <input class="form-check-input" type="radio" name="currency" id="USD" value="USD"
32 {% if currency == "USD" %}checked{% end %}>
a41e6d77
MT
33 <label class="form-check-label" for="USD">{{ _("US Dollar") }}</label>
34 </div>
35 </div>
95b30f84 36
a41e6d77
MT
37 <div class="col-12 col-lg-6">
38 <h6>Frequency</h6>
39
40 <div class="form-check form-check-inline">
bd2723d4
MT
41 <input class="form-check-input" type="radio" name="frequency" id="frequency-one-time"
42 value="one-time" {% if frequency == "one-time" %}checked{% end %}>
43 <label class="form-check-label" for="frequency-one-time">{{ _("One Time") }}</label>
a41e6d77
MT
44 </div>
45
46 <div class="form-check form-check-inline">
bd2723d4
MT
47 <input class="form-check-input" type="radio" name="frequency" id="frequency-monthly"
48 value="monthly" {% if frequency == "monthly" %}checked{% end %}>
a41e6d77
MT
49 <label class="form-check-label" for="frequency-monthly">{{ _("Monthly") }}</label>
50 </div>
51 </div>
52 </div>
53
54 <div class="my-5 p-5 bg-light">
55 <h6>{{ _("Choose an amount") }}</h6>
56
bd2723d4 57 <input type="hidden" name="amount" {% if amount %}value="{{ amount }}"{% end %} required>
6d151de3 58
a41e6d77 59 <div class="btn-group-toggle flex-wrap mb-3" data-toggle="buttons">
bd2723d4 60 {% for a in amounts %}
a41e6d77 61 <label class="btn btn-secondary btn-lg mb-2">
bd2723d4
MT
62 <input type="radio" name="amount-selector" value="{{ a }}" {% if amount == a %}checked{% end %}
63 autocomplete="off"> <span class="USD">$</span>{{ a }} <span class="EUR">€</span>
a41e6d77
MT
64 </label>
65 {% end %}
66 </div>
67
68 <div class="form-group row mb-5">
69 <label class="col-sm-5 col-form-label col-form-label-lg">
70 or enter your own
71 </label>
72
73 <div class="col-sm-5">
bd2723d4
MT
74 <input type="number" class="form-control form-control-lg" name="amount-input" min="1"
75 {% if not amount in amounts %}value="{{ amount }}"{% end %}>
a41e6d77
MT
76 </div>
77 </div>
78
79 <div class="row mb-5">
a41e6d77
MT
80 <div class="col d-flex flex-column">
81 <div class="form-row">
82 <div class="col">
83 <div class="form-check form-check-inline mb-3">
ebe19f8e
MT
84 <input class="form-check-input" type="radio" name="title" id="mr" value="Mr." checked>
85 <label class="form-check-label" for="mr">{{ _("Mr.") }}</label>
a41e6d77
MT
86 </div>
87 <div class="form-check form-check-inline mb-3">
ebe19f8e
MT
88 <input class="form-check-input" type="radio" name="title" id="mrs" value="Mrs.">
89 <label class="form-check-label" for="mrs">{{ _("Mrs.") }}</label>
a41e6d77
MT
90 </div>
91 </div>
92 </div>
93
94 <div class="form-row">
95 <div class="col-sm-6">
96 <div class="form-group">
450af3dc
MT
97 <input type="text" class="form-control" name="first_name"
98 placeholder="{{ _("First Name" )}}" required>
a41e6d77
MT
99 </div>
100 </div>
101
102 <div class="col-sm-6">
103 <div class="form-group">
450af3dc 104 <input type="text" class="form-control" name="last_name"
a41e6d77
MT
105 placeholder="{{ _("Last Name" )}}" required>
106 </div>
107 </div>
108 </div>
109
110 <div class="form-group">
450af3dc 111 <input type="email" class="form-control" name="email"
a41e6d77
MT
112 placeholder="{{ _("Email Address") }}" required>
113 </div>
114
115 <div class="form-group">
450af3dc 116 <input type="text" class="form-control" name="company_name"
a41e6d77
MT
117 placeholder="{{ _("Company Name (optional)") }}">
118 </div>
119
120 <div class="form-group">
450af3dc 121 <input type="text" class="form-control" name="street1"
a41e6d77
MT
122 placeholder="{{ _("Address Line 1") }}" required>
123 </div>
95b30f84 124
a41e6d77 125 <div class="form-group">
450af3dc 126 <input type="text" class="form-control" name="street2"
a41e6d77
MT
127 placeholder="{{ _("Address Line 2") }}">
128 </div>
129
130 <div class="form-row">
131 <div class="col-sm-6">
132 <div class="form-group">
450af3dc 133 <input type="text" class="form-control" name="city"
a41e6d77 134 placeholder="{{ _("City") }}" required>
2c361abc 135 </div>
be02b78f 136 </div>
a41e6d77
MT
137
138 <div class="col-sm-6">
139 <div class="form-group">
450af3dc 140 <input type="text" class="form-control" name="post_code"
a41e6d77
MT
141 placeholder="{{ _("Post Code") }}" required>
142 </div>
143 </div>
144 </div>
145
146 <div class="form-row">
147 <div class="col-sm-6">
148 <div class="form-group">
450af3dc 149 <select class="form-control" name="country_code" required>
a41e6d77 150 <option value="">- {{ _("Country") }} -</option>
47113f9e
MT
151
152 {% for c in countries %}
153 <option value="{{ c.alpha2 }}" {% if country == c.alpha2 %}selected{% end %}>{{ c.name }}</option>
154 {% end %}
a41e6d77
MT
155 </select>
156 </div>
157 </div>
158
159 <div class="col-sm-6">
160 <div class="form-group">
450af3dc 161 <input type="text" class="form-control" name="state"
a41e6d77
MT
162 placeholder="{{ _("State (optional)") }}">
163 </div>
164 </div>
165 </div>
d9d6d3c3
MT
166 </div>
167 </div>
a41e6d77 168
d9d6d3c3
MT
169 <div class="row mb-5">
170 <div class="col text-center">
171 <input type="submit" class="btn btn-primary btn-lg"
a41e6d77
MT
172 id="donate" value="{{ _("Donate Now") }}">
173 </div>
174 </div>
175
176 <div class="row">
d9d6d3c3
MT
177 <div class="col d-flex justify-content-center">
178 <picture>
179 <source srcset="{{ static_url("img/amex.png") }},
180 {{ static_url("img/amex@2x.png") }} 2x,
181 {{ static_url("img/amex@3x.png") }} 3x">
182 <img src="{{ static_url("img/amex.png") }}"
183 srcset="{{ static_url("img/amex.png") }},
184 {{ static_url("img/amex@2x.png") }} 2x,
185 {{ static_url("img/amex@3x.png") }} 3x"
186 alt="Amex" class="m-xl-2">
187 </picture>
188
189 <picture>
190 <source srcset="{{ static_url("img/mastercard.png") }},
191 {{ static_url("img/mastercard@2x.png") }} 2x,
192 {{ static_url("img/mastercard@3x.png") }} 3x">
193 <img src="{{ static_url("img/mastercard.png") }}"
194 srcset="{{ static_url("img/mastercard.png") }},
195 {{ static_url("img/mastercard@2x.png") }} 2x,
196 {{ static_url("img/mastercard@3x.png") }} 3x"
197 alt="Mastercard" class="m-xl-2">
198 </picture>
199
200 <picture>
201 <source srcset="{{ static_url("img/visa.png") }},
202 {{ static_url("img/visa@2x.png") }} 2x,
203 {{ static_url("img/visa@3x.png") }} 3x">
204 <img src="{{ static_url("img/visa.png") }}"
205 srcset="{{ static_url("img/visa.png") }},
206 {{ static_url("img/visa@2x.png") }} 2x,
207 {{ static_url("img/visa@3x.png") }} 3x"
208 alt="Visa" class="m-xl-2">
209 </picture>
210
211 <!-- XXX insert SEPA logo -->
a41e6d77
MT
212 </div>
213 </div>
214
215 <div class="modal fade" tabindex="-1" role="dialog" id="modal-upsell" aria-hidden="true">
216 <div class="modal-dialog modal-dialog-centered" role="document">
217 <div class="modal-content">
218 <div class="modal-header">
219 <h5 class="modal-title">Modal title</h5>
220 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
221 <span aria-hidden="true">&times;</span>
222 </button>
223 </div>
224
225 <div class="modal-body">
226 <p>Modal body text goes here.</p>
227 </div>
228
229 <div class="modal-footer">
760295a7 230 <input type="submit" class="btn btn-primary" value="Donate Now">
a41e6d77
MT
231 <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
232 </div>
fed291df
SH
233 </div>
234 </div>
be02b78f 235 </div>
a41e6d77
MT
236 </div>
237
238 <p class="small text-muted">
239 There should also be some area for the small-print since we need to tell people who they are donating to and that we don't do any refunds, etc.
240 </p>
ef0d3151
SH
241 </div>
242 </div>
a41e6d77 243 </form>
95b30f84 244 </div>
a41e6d77
MT
245
246 <div class="col col-lg-4">
247 <h5>IP<strong>Fire</strong> is an Open Source software project.</h5>
248
249 <p>
250 IPFire is an Open Source software project.
251 </p>
252
253 <p>
254 Development and keeping the project healthy is carried out by a
255 group of volunteers who have built a very successful product,
256 which hundreds of thousands of people use every day.
257 </p>
258
259 <p>
260 Your donation helps us to make IPFire even better...
261 </p>
262 </div>
263 </div>
be02b78f
SH
264 </div>
265 </div>
a41e6d77 266 </div>
95b30f84 267
be02b78f 268 <section>
95b30f84 269 <div class="container">
a41e6d77
MT
270 <div class="row text-left">
271 <div class="col-10 col-md-5 offset-sm-1 offset-xl-0">
272 <div class="mb-6" id="whydonate">
273 <h3>Why should I donate?</h3>
274
275 <p class="copy">We are proud of what we are doing here at IPFire. We create a free firewall
276 distribution that is free to use for everyone anywhere in the world. To do that,
277 we need to provide the infrastructure to distribute it to our users and provide
278 the right tools for our developers to help them to make IPFire better every day.
279 </p>
280
281 <p class="copy">Donations from individuals and corporations are the only way to keep all of our
282 services free for everyone. They pay for hosting, advertising, purchase
283 equipment and to fund the work of the people behind it.
284 </p>
285
286 <p class="copy">Our ambition is to compete with projects backed by large corporations and
287 proprietary solutions and we cannot do that without you. Become a supporter
288 today!
289 </p>
fed291df 290 </div>
95b30f84 291
a41e6d77
MT
292 <div class="mb-6" id="howmuch">
293 <h3>How much should I give?</h3>
294
295 <p class="copy">Donations range from single digits donations to hundreds. For us it is important
296 to give something back to help this project to succeed. If you want to help,
297 please do so and encourage others to do so, too.
298 </p>
fed291df
SH
299 </div>
300 </div>
a41e6d77
MT
301
302 <div class="col-10 col-md-4 offset-sm-1 offset-xl-2">
303 <h3>Frequently Asked Questions</h3>
304 <p class="copy">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.</p>
305 </div>
306 </div>
7771acea 307 </div>
be02b78f 308 </section>
95b30f84
MT
309{% end block %}
310
311{% block javascript %}
312 <script type="text/javascript">
313 $(document).ready(function() {
6d151de3
MT
314 var amount = $("input[name='amount']");
315
bd2723d4
MT
316 // Adjust form to default currency
317 var currency = $("input[name='currency']:checked").val();
318 if (currency == "EUR") {
319 $(".USD").hide();
320 } else if (currency == "USD") {
321 $(".EUR").hide();
322 }
95b30f84
MT
323
324 $("input[name='currency']").on("change", function() {
325 var currency = $(this).val();
326
327 if (currency == "EUR") {
328 $(".EUR").show();
329 $(".USD").hide();
330 } else if (currency == "USD") {
331 $(".EUR").hide();
332 $(".USD").show();
333 }
334 });
335
6d151de3
MT
336 // Copy amount when clicking on a radio button
337 $("input[name='amount-selector']").on("change", function() {
338 var value = $(this).val();
339 if (value) {
340 amount.val(value);
341
342 // Clear input field
343 $("input[name='amount-input']").val("");
344 }
345 });
346
347 $("input[name='amount-input']").on("change", function() {
348 var value = $(this).val();
349 if (value) {
350 amount.val(value);
351
352 // Uncheck all radio buttons
353 $("input[name='amount-selector']").removeAttr("checked");
354 $("input[name='amount-selector']").prop("checked", false);
355 }
356 });
357
95b30f84 358 $("#donate").click(function (event) {
91e53e2b 359 var frequency = $("input[name='frequency']").val();
95b30f84 360
bd2723d4 361 if (frequency == "one-time") {
95b30f84 362 event.preventDefault();
fedb34bf 363
95b30f84
MT
364 $("#modal-upsell").modal("show");
365 }
366 });
367 });
368 </script>
f5b55ea7 369{% end block %}