Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Siarhei Puhach 2017-07-13 11:28:29 +03:00
commit 82ad7db0f7
16 changed files with 670 additions and 656 deletions

View file

@ -1,3 +1,14 @@
1.0.19: 2017-07-09
* [blog] Added a space between "Posted on" and the "Date"
* [datacenterlight, digitalglarus] Introduced Google Analytics for DCL and digitalglarus.ch
* [datacenterlight] Fixed calculator error message positioning
* [digitalglarus] Fixed favicon for digitalglarus
* [all] Introduced PEP8 code standards using flake8
* [all] DEBUG is set to False on production
* [all] Using memcached as cache provider on production
* [datacenterlight] Removed Order Now button outline in the order form
* [datacenterlight] Refactored html pages, fixed missing body tag, removed some duplicate script imports
* [datacenterlight] Introduced Why Data Center Light page
1.0.18: 2017-07-02
* [datacenterlight] Introduced the new flow. Landing page -> Payment -> Order confirmation -> Success
* [datacenterlight] Fixed issue showing local time to the user in order confirmation page, vm pages (like ssh keys)

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-02 23:08+0530\n"
"POT-Creation-Date: 2017-07-09 15:21+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -42,6 +42,71 @@ msgstr ""
"Vielen dank für Ihre Anmeldung. Sie erhalten in kürze eine Bestätigungsmail "
"von unserem Team"
#: templates/datacenterlight/calculator_form.html:5
#: templates/datacenterlight/pricing.html:22
msgid "VM hosting"
msgstr ""
#: templates/datacenterlight/calculator_form.html:9
msgid "month"
msgstr "Monat"
#: templates/datacenterlight/calculator_form.html:11
#: templates/datacenterlight/pricing.html:28
msgid "VAT included"
msgstr "MwSt. inklusive"
#: templates/datacenterlight/calculator_form.html:16
#: templates/datacenterlight/pricing.html:33
msgid "Hosted in Switzerland"
msgstr "Standort: Schweiz"
#: templates/datacenterlight/calculator_form.html:21
msgid "Please enter a value greater than or equal to 1."
msgstr "Bitte gib einen Wert größer oder gleich 1 ein."
#: templates/datacenterlight/calculator_form.html:30
msgid "Please enter a value greater than or equal to 2."
msgstr "Bitte gib einen Wert größer oder gleich 2 ein."
#: templates/datacenterlight/calculator_form.html:39
msgid "Please enter a value greater than or equal to 10."
msgstr "Bitte gib einen Wert größer oder gleich 10 ein"
#: templates/datacenterlight/calculator_form.html:40
#: templates/datacenterlight/pricing.html:50
msgid "GB Storage (SSD)"
msgstr "GB Storage (SSD)"
#: templates/datacenterlight/calculator_form.html:59
msgid "Name"
msgstr ""
#: templates/datacenterlight/calculator_form.html:60
msgid "Your Name"
msgstr "Dein Name"
#: templates/datacenterlight/calculator_form.html:60
msgid "Please enter your name"
msgstr "Bitte gib Deinen Namen ein"
#: templates/datacenterlight/calculator_form.html:74
msgid "Email"
msgstr "E-Mail-Adresse"
#: templates/datacenterlight/calculator_form.html:75
msgid "Your Email"
msgstr "Deine E-Mail"
#: templates/datacenterlight/calculator_form.html:75
msgid "Please enter a valid email address"
msgstr "Bitte gib eine gültige E-Mailadresse ein"
#: templates/datacenterlight/calculator_form.html:88
#: templates/datacenterlight/pricing.html:79
msgid "Order Now!"
msgstr "Bestelle jetzt!"
#: templates/datacenterlight/emails/request_access_confirmation.html:99
#: templates/datacenterlight/emails/request_access_confirmation.txt:99
msgid "Thank you for your request."
@ -129,27 +194,28 @@ msgstr ""
#: templates/datacenterlight/includes/_footer.html:11
#: templates/datacenterlight/includes/_footer.html:31
#: templates/datacenterlight/includes/_navbar.html:27
#: templates/datacenterlight/index.html:20
#: templates/datacenterlight/index.html:47
#: templates/datacenterlight/includes/_navbar.html:28
#: templates/datacenterlight/index.html:19
#: templates/datacenterlight/index.html:46
msgid "Highlights"
msgstr ""
#: templates/datacenterlight/includes/_footer.html:14
#: templates/datacenterlight/includes/_footer.html:34
#: templates/datacenterlight/includes/_navbar.html:30
#: templates/datacenterlight/index.html:86
#: templates/datacenterlight/index.html:85
msgid "Scale out"
msgstr "Skalierung"
#: templates/datacenterlight/includes/_footer.html:17
#: templates/datacenterlight/includes/_footer.html:37
#: templates/datacenterlight/includes/_navbar.html:33
#: templates/datacenterlight/index.html:112
#: templates/datacenterlight/includes/_navbar.html:31
#: templates/datacenterlight/index.html:111
msgid "Reliable and light"
msgstr "Zuverlässig und leicht"
#: templates/datacenterlight/includes/_footer.html:20
#: templates/datacenterlight/includes/_navbar.html:36
#: templates/datacenterlight/includes/_navbar.html:32
msgid "Order VM"
msgstr "VM bestellen"
@ -167,28 +233,33 @@ msgstr "Home"
msgid "Pricing"
msgstr "Preise"
#: templates/datacenterlight/index.html:16
#: templates/datacenterlight/includes/_navbar.html:36
#: templates/datacenterlight/whydatacenterlight.html:12
msgid "Why Data Center Light?"
msgstr "Warum Data Center Light?"
#: templates/datacenterlight/index.html:15
msgid "Finally, an affordable VM hosting in Switzerland!"
msgstr "Endlich: bezahlbares VM Hosting in der Schweiz"
#: templates/datacenterlight/index.html:23
#: templates/datacenterlight/index.html:22
msgid "I want it!"
msgstr "Das will ich haben!"
#: templates/datacenterlight/index.html:53
#: templates/datacenterlight/index.html:52
msgid ""
"Reuses existing factory halls instead of building a new expensive building."
msgstr ""
"Verwendet ehemalige Fabrikhallen anstatt ein neues, teures Gebäude zu "
"errichten."
#: templates/datacenterlight/index.html:58
#: templates/datacenterlight/index.html:57
msgid "Only wants you to pay for what you actually need."
msgstr ""
"Möchte, dass du nur bezahlst, was du auch wirklich brauchst: Wähle deine "
"Ressourcen individuell aus!"
#: templates/datacenterlight/index.html:62
#: templates/datacenterlight/index.html:61
msgid ""
"Is creative, using a modern and alternative design for a data center in "
"order to make it more sustainable and affordable at the same time."
@ -197,7 +268,7 @@ msgstr ""
"macht um Nachhaltigkeit zu fördern und somit erschwingliche Preise bieten zu "
"können."
#: templates/datacenterlight/index.html:66
#: templates/datacenterlight/index.html:65
msgid ""
"Cuts down the costs for you by using FOSS (Free Open Source Software) "
"exclusively, wherefore we can save money from paying licenses."
@ -206,7 +277,7 @@ msgstr ""
"mit FOSS (Free Open Source Software) arbeitet und wir daher auf "
"Lizenzgebühren verzichten können."
#: templates/datacenterlight/index.html:89
#: templates/datacenterlight/index.html:88
msgid ""
"We don't use special hardware. We use commodity hardware: we buy computers "
"that you buy. Just many more and put them in a cozy home for computers "
@ -216,7 +287,7 @@ msgstr ""
"erschwingliche Systeme. Bei grösserer Auslastung werden mehr "
"Standardkomponenten hinzugekauft und skalieren so das Datencenter."
#: templates/datacenterlight/index.html:115
#: templates/datacenterlight/index.html:114
msgid ""
"Our VMs are located in Switzerland, with reliable power supply and fast "
"internet connection. Our VM costs less thanks to our featherlight "
@ -226,91 +297,26 @@ msgstr ""
"Energieversorgung, sowie schneller Internetverbindung ausgestattet. Unser "
"Angebot ist aufgrund unserer leichten Infrastruktur überaus kostengünstig."
#: templates/datacenterlight/index.html:133
#: templates/datacenterlight/index.html:132
#: templates/datacenterlight/pricing.html:86
msgid "Simple and affordable: Try our virtual machine with featherlight price."
msgstr ""
"Einfach und bezahlbar: Teste nun unsere virtuellen Maschinen mit "
"federleichten Preisen."
#: templates/datacenterlight/index.html:134
#: templates/datacenterlight/index.html:133
msgid "Affordable VM hosting based in Switzerland"
msgstr "Bezahlbares VM Hosting in der Schweiz"
#: templates/datacenterlight/index.html:145
#: templates/datacenterlight/pricing.html:22
msgid "VM hosting"
msgstr ""
#: templates/datacenterlight/index.html:149
msgid "month"
msgstr "Monat"
#: templates/datacenterlight/index.html:151
#: templates/datacenterlight/pricing.html:28
msgid "VAT included"
msgstr "MwSt. inklusive"
#: templates/datacenterlight/index.html:156
#: templates/datacenterlight/pricing.html:33
msgid "Hosted in Switzerland"
msgstr "Standort: Schweiz"
#: templates/datacenterlight/index.html:161
msgid "Please enter a value greater than or equal to 1."
msgstr "Bitte gib einen Wert größer oder gleich 1 ein."
#: templates/datacenterlight/index.html:170
msgid "Please enter a value greater than or equal to 2."
msgstr "Bitte gib einen Wert größer oder gleich 2 ein."
#: templates/datacenterlight/index.html:179
msgid "Please enter a value greater than or equal to 10."
msgstr "Bitte gib einen Wert größer oder gleich 10 ein"
#: templates/datacenterlight/index.html:180
#: templates/datacenterlight/pricing.html:50
msgid "GB Storage (SSD)"
msgstr "GB Storage (SSD)"
#: templates/datacenterlight/index.html:199
msgid "Name"
msgstr ""
#: templates/datacenterlight/index.html:200
msgid "Your Name"
msgstr "Dein Name"
#: templates/datacenterlight/index.html:200
msgid "Please enter your name"
msgstr "Bitte gib Deinen Namen ein"
#: templates/datacenterlight/index.html:214
msgid "Email"
msgstr "E-Mail-Adresse"
#: templates/datacenterlight/index.html:215
msgid "Your Email"
msgstr "Deine E-Mail"
#: templates/datacenterlight/index.html:215
msgid "Please enter a valid email address"
msgstr "Bitte gib eine gültige E-Mailadresse ein"
#: templates/datacenterlight/index.html:228
#: templates/datacenterlight/pricing.html:79
msgid "Order Now!"
msgstr "Bestelle jetzt!"
#: templates/datacenterlight/index.html:254
#: templates/datacenterlight/index.html:166
msgid "Switzerland "
msgstr "Schweiz"
#: templates/datacenterlight/index.html:271
#: templates/datacenterlight/index.html:183
msgid "Questions?"
msgstr "Fragen?"
#: templates/datacenterlight/index.html:271
#: templates/datacenterlight/index.html:183
msgid "Contact us!"
msgstr "Kontaktiere uns!"
@ -392,11 +398,106 @@ msgstr ""
msgid "as soon as possible!"
msgstr ""
#: views.py:234
#: templates/datacenterlight/whydatacenterlight.html:26
msgid "Tech Stack"
msgstr "Tech Stack"
#: templates/datacenterlight/whydatacenterlight.html:29
msgid "We are seriously open source."
msgstr "Wir sind vollends opensource."
#: templates/datacenterlight/whydatacenterlight.html:30
msgid ""
" Our full software stack is open source We don't use anything that isn't "
"open source. <br>Yes, we are that cool. "
msgstr ""
"Unser gesamter Softwaresstack ist Open-Source Wir verwenden nichts, das "
"nicht Open-Source ist.<br/>Yep, so cool sind wir."
#: templates/datacenterlight/whydatacenterlight.html:37
msgid "Our services run on"
msgstr "Unsere Dienste läuft auf"
#: templates/datacenterlight/whydatacenterlight.html:41
msgid "Our monitoring"
msgstr "Unser Monitoring"
#: templates/datacenterlight/whydatacenterlight.html:45
msgid "Our storage layer"
msgstr "Unser Storage-Layer"
#: templates/datacenterlight/whydatacenterlight.html:49
msgid "Our web frontend"
msgstr "Unser Web-Frontend"
#: templates/datacenterlight/whydatacenterlight.html:53
msgid "Our cloud"
msgstr "Unsere Cloud"
#: templates/datacenterlight/whydatacenterlight.html:57
msgid "Our configuration management system"
msgstr "Unser Konfigurationsmanagementsystem"
#: templates/datacenterlight/whydatacenterlight.html:61
msgid "Our awesome juice"
msgstr "Unser Treibstoff"
#: templates/datacenterlight/whydatacenterlight.html:65
msgid "Our NAT64 gateway"
msgstr "Unser NAT64 Gateway"
#: templates/datacenterlight/whydatacenterlight.html:90
msgid "We believe in giving back to the FOSS community."
msgstr "Wir unterstützen die FOSS Community."
#: templates/datacenterlight/whydatacenterlight.html:91
msgid ""
"Data Center Light is the child of free and open source software (FOSS) "
"movement. <br>We grew up with it, live by it, and believe in it.<br> The "
"more we work on our data center,<br> the more we contribute back to the FOSS "
"community."
msgstr ""
"Data Center Light ist ein Teil der Free und Opens Source Software (FOSS) "
"Bewegung.<br/> Wir sind damit gross geworden, leben damit und glauben daran."
"<br/> Je weiter wir mit unserem Data Center Light vorankommen, desto mehr "
"können wir etwas an die FOSS Community zurückgeben."
#: templates/datacenterlight/whydatacenterlight.html:104
msgid "We bring the future to you."
msgstr "Wir bringen die Zukunft zu dir."
#: templates/datacenterlight/whydatacenterlight.html:107
msgid ""
" Data Center Light uses the most modern technologies out there.<br>\n"
" Your VM needs only IPv6. Data Center Light "
"provides<br> transparent two-way IPv6/IPv4 translation.\n"
" "
msgstr ""
"Data Center Light verwendet die zur Zeit modernsten Technologien.<br/>Deine "
"VM läuft mit IPv6. Data Center Light bietet eine transparente IPv6/IPv4-"
"Zweiweglösung."
#: templates/datacenterlight/whydatacenterlight.html:122
msgid ""
" No more spinning metal plates! Data Center Light uses only SSDs. We keep "
"things faster and lighter. "
msgstr ""
"Keine drehenden Metallplatten mehr! Data Center Light verwendet "
"ausschliesslich SSDs. Wir halten die Dinge schnell, leicht und effizient."
#: templates/datacenterlight/whydatacenterlight.html:138
msgid "Starting from only 15CHF per month. Try now."
msgstr "Unser Angebot beginnt bei 15 CHF pro Monat. Probier's jetzt aus!"
#: templates/datacenterlight/whydatacenterlight.html:139
msgid "Actions speak louder than words. Let's do it, try our VM now."
msgstr "Tagen sagen mehr als Worte Teste jetzt unsere VM!"
#: views.py:235
msgid "is not a proper name"
msgstr "ist kein gültiger Name"
#: views.py:241
#: views.py:242
msgid "is not a proper email"
msgstr "ist keine gültige E-Mailadresse"

View file

@ -640,6 +640,9 @@ tech-sub-sec h2 {
.btm-space{
padding-bottom: 8px;
}
.btm-space-tayga{
padding-bottom: 12px;
}
.percent-text {
font-size: 50px;
color: #999;
@ -826,6 +829,7 @@ tech-sub-sec h2 {
margin-top: 20px;
font-size: 20px;
width: 200px;
border: none;
}
.price-calc-section .card .select-configuration select{
outline: none;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 6 KiB

View file

@ -3,65 +3,66 @@
<!DOCTYPE html>
<html lang="{{LANGUAGE_CODE}}">
<head>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Data Center Light by ungleich">
<meta name="author" content="ungleich GmbH">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Data Center Light by ungleich">
<meta name="author" content="ungleich GmbH">
<title>Data Center Light -
{% block title %}VM hosting made in Switzerland{% endblock %}</title>
<!-- Bootstrap Core CSS -->
<link href="{% static 'datacenterlight/css/bootstrap.min.css' %}" rel="stylesheet">
<title>Data Center Light -
{% block title %}VM hosting made in Switzerland{% endblock %}</title>
<!-- Bootstrap Core CSS -->
<link href="{% static 'datacenterlight/css/bootstrap.min.css' %}" rel="stylesheet">
<!-- Custom Fonts -->
<!--Import Google Icon Font-->
<link href="//fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="{% static 'datacenterlight/font-awesome/css/font-awesome.min.css' %}" rel="stylesheet" type="text/css">
<link href="//fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon" />
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.min.css" rel="stylesheet">
<!-- Custom Fonts -->
<!--Import Google Icon Font-->
<link href="//fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="{% static 'datacenterlight/font-awesome/css/font-awesome.min.css' %}" rel="stylesheet" type="text/css">
<link href="//fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon" />
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="{% static 'datacenterlight/css/landing-page.css' %}" rel="stylesheet">
<!-- Custom CSS -->
<link href="{% static 'datacenterlight/css/landing-page.css' %}" rel="stylesheet">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Google analytics -->
{% include "google_analytics.html" %}
<!-- End Google Analytics -->
</head>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Google analytics -->
{% include "google_analytics.html" %}
<!-- End Google Analytics -->
</head>
<body>
<body>
<!-- Navigation -->
{% include "datacenterlight/includes/_navbar.html" %}
<!-- Navigation -->
{% include "datacenterlight/includes/_navbar.html" %}
{% block content %}
{% endblock %}
{% block content %}
{% endblock %}
{% include "datacenterlight/includes/_footer.html" %}
<!-- Footer -->
{% include "datacenterlight/includes/_footer.html" %}
<!-- Footer -->
<!-- jQuery -->
<script src="{% static 'datacenterlight/js/jquery.js' %}"></script>
<!-- jQuery -->
<script src="{% static 'datacenterlight/js/jquery.js' %}"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="{% static 'datacenterlight/js/bootstrap.min.js' %}"></script>
<script src="{% static 'datacenterlight/js/main.js' %}"></script>
<!-- Load form js -->
<script src="{% static 'datacenterlight/js/form.js' %}"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="{% static 'datacenterlight/js/bootstrap.min.js' %}"></script>
<script src="{% static 'datacenterlight/js/main.js' %}"></script>
<!-- Load form js -->
<script src="{% static 'datacenterlight/js/form.js' %}"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,89 @@
{% load staticfiles i18n%}
<form id="order_form" method="POST" action="" data-toggle="validator" role="form">
{% csrf_token %}
<div class="title">
<h3>{% trans "VM hosting" %} </h3>
</div>
<div class="price">
<span id="total">15</span>
<span>CHF/{% trans "month" %}</span>
<div class="price-text">
<p>{% trans "VAT included" %}</p>
</div>
</div>
<div class="descriptions">
<div class="description form-group">
<p>{% trans "Hosted in Switzerland" %}</p>
</div>
<div class="form-group">
<div class="description input">
<i class="fa fa-minus-circle left" data-minus="cpu" aria-hidden="true"></i>
<input class="input-price select-number" type="number" min="1" max="42" id="coreValue" name="cpu" data-error="{% trans 'Please enter a value greater than or equal to 1.' %}" required>
<span> Core</span>
<i class="fa fa-plus-circle right" data-plus="cpu" aria-hidden="true"></i>
</div>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<div class="description input">
<i class="fa fa-minus-circle left" data-minus="ram" aria-hidden="true"></i>
<input id="ramValue" class="input-price select-number" type="number" min="2" max="200" name="ram" data-error="{% trans 'Please enter a value greater than or equal to 2.' %}" required>
<span> GB RAM</span>
<i class="fa fa-plus-circle right" data-plus="ram" aria-hidden="true"></i>
</div>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<div class="description input">
<i class="fa fa-minus-circle left" data-minus="storage" aria-hidden="true"></i>
<input id="storageValue" class="input-price select-number" type="number" min="10" max="500" step="10" name="storage" data-error="{% trans 'Please enter a value greater than or equal to 10.' %}" required>
<span>{% trans "GB Storage (SSD)" %}</span>
<i class="fa fa-plus-circle right" data-plus="storage" aria-hidden="true"></i>
</div>
<div class="help-block with-errors"></div>
</div>
<div class="description select-configuration input form-group justify-center">
<label for="config">OS</label>
<select name="config" id="">
{% for template in templates %}
<option value="{{template.id}}">{{template.name}} </option>
{% endfor %}
</select>
</div>
<input type="hidden" name="total">
<!--<div class="description check-ip">
<input type="checkbox" name="ipv6"> Ipv6 Only<br>
</div>-->
<div class="form-group">
<div class="description input justify-center">
<label for="name" class="control-label">{% trans "Name"%}</label>
<input type="text" name="name" class="form-control" placeholder="{% trans 'Your Name'%}" data-minlength="3" data-error="{% trans 'Please enter your name' %}" required>
</div>
<div class="help-block with-errors">
{% for message in messages %}
{% if 'name' in message.tags %}
<ul class="list-unstyled"><li>
{{ message|safe }}
</li></ul>
{% endif %}
{% endfor %}
</div>
</div>
<div class="form-group">
<div class="description input justify-center">
<label for="email" class="control-label">{% trans "Email"%}</label>
<input name="email" type="email" pattern="^[^@\s]+@([^@\s]+\.)+[^@\s]+$" class="form-control" placeholder="{% trans 'Your Email' %}" data-error="{% trans 'Please enter a valid email address' %}" required>
</div>
<div class="help-block with-errors">
{% for message in messages %}
{% if 'email' in message.tags %}
<ul class="list-unstyled"><li>
{{ message|safe }}
</li></ul>
{% endif %}
{% endfor %}
</div>
</div>
</div>
<input type="submit" class="btn btn-primary disabled" value="{% trans 'Order Now!' %}"></input>
</form>

View file

@ -1,6 +1,5 @@
{% extends "datacenterlight/base.html" %}
{% load staticfiles i18n%}
{% get_current_language as LANGUAGE_CODE %}
{% block content %}
@ -112,7 +111,7 @@
<h2>{% trans "Reliable and light" %}</h2>
</div>
<div class="split-description">
<p class="lead">{% trans "Our VMs are located in Switzerland, with reliable power supply and fast internet connection. Our VM costs less thanks to our featherlight infrastructure." %}</p>
<p class="lead">{% trans "Our VMs are located in Switzerland, with reliable power supply and fast internet connection. Our VM costs less thanks to our featherlight infrastructure." %}</p>
</div>
</div>
@ -139,94 +138,7 @@
<div class="landing card">
<img class="img-beta" src="{% static 'datacenterlight/img/beta-img.png' %}" alt="">
<div class="caption">
<form id="order_form" method="POST" action="" data-toggle="validator" role="form">
{% csrf_token %}
<div class="title">
<h3>{% trans "VM hosting" %} </h3>
</div>
<div class="price">
<span id="total">15</span>
<span>CHF/{% trans "month" %}</span>
<div class="price-text">
<p>{% trans "VAT included" %}</p>
</div>
</div>
<div class="descriptions">
<div class="description form-group">
<p>{% trans "Hosted in Switzerland" %}</p>
</div>
<div class="form-group">
<div class="description input">
<i class="fa fa-minus-circle left" data-minus="cpu" aria-hidden="true"></i>
<input class="input-price select-number" type="number" min="1" max="42" id="coreValue" name="cpu" data-error="{% trans 'Please enter a value greater than or equal to 1.' %}" required>
<span> Core</span>
<i class="fa fa-plus-circle right" data-plus="cpu" aria-hidden="true"></i>
</div>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<div class="description input">
<i class="fa fa-minus-circle left" data-minus="ram" aria-hidden="true"></i>
<input id="ramValue" class="input-price select-number" type="number" min="2" max="200" name="ram" data-error="{% trans 'Please enter a value greater than or equal to 2.' %}" required>
<span> GB RAM</span>
<i class="fa fa-plus-circle right" data-plus="ram" aria-hidden="true"></i>
</div>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<div class="description input">
<i class="fa fa-minus-circle left" data-minus="storage" aria-hidden="true"></i>
<input id="storageValue" class="input-price select-number" type="number" min="10" max="500" step="10" name="storage" data-error="{% trans 'Please enter a value greater than or equal to 10.' %}" required>
<span>{% trans "GB Storage (SSD)" %}</span>
<i class="fa fa-plus-circle right" data-plus="storage" aria-hidden="true"></i>
</div>
<div class="help-block with-errors"></div>
</div>
<div class="description select-configuration input form-group justify-center">
<label for="config">OS</label>
<select name="config" id="">
{% for template in templates %}
<option value="{{template.id}}">{{template.name}} </option>
{% endfor %}
</select>
</div>
<input type="hidden" name="total">
<!--<div class="description check-ip">
<input type="checkbox" name="ipv6"> Ipv6 Only<br>
</div>-->
<div class="form-group">
<div class="description input justify-center">
<label for="name" class="control-label">{% trans "Name"%}</label>
<input type="text" name="name" class="form-control" placeholder="{% trans 'Your Name'%}" data-minlength="3" data-error="{% trans 'Please enter your name' %}" required>
</div>
<div class="help-block with-errors">
{% for message in messages %}
{% if 'name' in message.tags %}
<ul class="list-unstyled"><li>
{{ message|safe }}
</li></ul>
{% endif %}
{% endfor %}
</div>
</div>
<div class="form-group">
<div class="description input justify-center">
<label for="email" class="control-label">{% trans "Email"%}</label>
<input name="email" type="email" pattern="^[^@\s]+@([^@\s]+\.)+[^@\s]+$" class="form-control" placeholder="{% trans 'Your Email' %}" data-error="{% trans 'Please enter a valid email address' %}" required>
</div>
<div class="help-block with-errors">
{% for message in messages %}
{% if 'email' in message.tags %}
<ul class="list-unstyled"><li>
{{ message|safe }}
</li></ul>
{% endif %}
{% endfor %}
</div>
</div>
</div>
<input type="submit" class="btn btn-primary" value="{% trans 'Order Now!' %}"></input>
</form>
{% include "datacenterlight/calculator_form.html" %}
</div>
</div>
</div>
@ -278,4 +190,4 @@
</div>
<!-- /.banner -->
{% endblock %}
{% endblock %}

View file

@ -4,94 +4,94 @@
{% load custom_tags %}
{% block content %}
<div class="order-detail-container">
{% if messages %}
<div class="row">
<div class="col-xs-12 col-md-8 col-md-offset-2">
<br/>
<div class="alert alert-warning">
{% for message in messages %}
<span>{{ message }}</span>
{% endfor %}
</div>
</div>
</div>
{% endif %}
{% if not error %}
<div class="row">
<div class="col-xs-12 col-md-8 col-md-offset-2">
<div class="invoice-title">
<h2>{% trans "Confirm Order"%}</h2>
</div>
<hr>
<div class="order-detail-container">
{% if messages %}
<div class="row">
<div class="col-xs-6">
<address>
<h3><b>{% trans "Billed To:"%}</b></h3>
{% with request.session.billing_address_data as billing_address %}
{{request.session.user.name}}<br> {{billing_address|get_value_from_dict:'street_address'}}, {{billing_address|get_value_from_dict:'postal_code'}}<br>
{{billing_address|get_value_from_dict:'city'}}, {{billing_address|get_value_from_dict:'country'}}.
{% endwith %}
</address>
</div>
<div class="col-xs-6 text-right">
<address>
<strong>{% trans "Date"%}:</strong><br>
<span id="order-created_at">{% now "Y-m-d H:i" %}</span><br><br>
</address>
<div class="col-xs-12 col-md-8 col-md-offset-2">
<br/>
<div class="alert alert-warning">
{% for message in messages %}
<span>{{ message }}</span>
{% endfor %}
</div>
</div>
</div>
{% endif %}
{% if not error %}
<div class="row">
<div class="col-xs-6">
<address>
<strong>{% trans "Payment Method:"%}</strong><br>
{{cc_brand}} {% trans "ending" %} **** {{cc_last4}}<br>
{{request.session.user.email}}
</address>
<div class="col-xs-12 col-md-8 col-md-offset-2">
<div class="invoice-title">
<h2>{% trans "Confirm Order"%}</h2>
</div>
<hr>
<div class="row">
<div class="col-xs-6">
<address>
<h3><b>{% trans "Billed To:"%}</b></h3>
{% with request.session.billing_address_data as billing_address %}
{{request.session.user.name}}<br> {{billing_address|get_value_from_dict:'street_address'}}, {{billing_address|get_value_from_dict:'postal_code'}}<br>
{{billing_address|get_value_from_dict:'city'}}, {{billing_address|get_value_from_dict:'country'}}.
{% endwith %}
</address>
</div>
<div class="col-xs-6 text-right">
<address>
<strong>{% trans "Date"%}:</strong><br>
<span id="order-created_at">{% now "Y-m-d H:i" %}</span><br><br>
</address>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<address>
<strong>{% trans "Payment Method:"%}</strong><br>
{{cc_brand}} {% trans "ending" %} **** {{cc_last4}}<br>
{{request.session.user.email}}
</address>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h3><b>{% trans "Order summary"%}</b></h3>
<hr>
<div class="content">
{% with request.session.specs as vm %}
<p><b>{% trans "Cores"%}</b> <span class="pull-right">{{vm.cpu}}</span></p>
<hr>
<p><b>{% trans "Memory"%}</b> <span class="pull-right">{{vm.memory}} GB</span></p>
<hr>
<p><b>{% trans "Disk space"%}</b> <span class="pull-right">{{vm.disk_size}} GB</span></p>
<hr>
<p><b>{% trans "Configuration"%}</b> <span class="pull-right">{{request.session.template.name}}</span></p>
<hr>
<h4>{% trans "Total"%}<p class="pull-right"><b>{{vm.price}} CHF</b></p></h4>
{% endwith %}
</div>
<br/>
<form method="post">
{% csrf_token %}
<div class=" content pull-right">
<a href="{{next_url}}" ><button class="btn btn-info">{% trans "Place order"%}</button></a>
</div>
</form>
</div>
</div>
{% endif %}
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h3><b>{% trans "Order summary"%}</b></h3>
<hr>
<div class="content">
{% with request.session.specs as vm %}
<p><b>{% trans "Cores"%}</b> <span class="pull-right">{{vm.cpu}}</span></p>
<hr>
<p><b>{% trans "Memory"%}</b> <span class="pull-right">{{vm.memory}} GB</span></p>
<hr>
<p><b>{% trans "Disk space"%}</b> <span class="pull-right">{{vm.disk_size}} GB</span></p>
<hr>
<p><b>{% trans "Configuration"%}</b> <span class="pull-right">{{request.session.template.name}}</span></p>
<hr>
<h4>{% trans "Total"%}<p class="pull-right"><b>{{vm.price}} CHF</b></p></h4>
{% endwith %}
</div>
<br/>
<form method="post">
{% csrf_token %}
<div class=" content pull-right">
<a href="{{next_url}}" ><button class="btn btn-info">{% trans "Place order"%}</button></a>
</div>
</form>
</div>
</div>
{% endif %}
</div>
<script type="text/javascript">
<script type="text/javascript">
window.onload = function () {
var locale_date = moment.utc(document.getElementById("order-created_at").textContent,'YYYY-MM-DD HH:mm').toDate();
locale_date = moment(locale_date).format("YYYY-MM-DD h:mm:ss a");
document.getElementById('order-created_at').innerHTML = locale_date;
window.onload = function () {
var locale_date = moment.utc(document.getElementById("order-created_at").textContent,'YYYY-MM-DD HH:mm').toDate();
locale_date = moment(locale_date).format("YYYY-MM-DD h:mm:ss a");
document.getElementById('order-created_at').innerHTML = locale_date;
};
};
</script>
</script>
{%endblock%}

View file

@ -13,73 +13,73 @@
<div class="price-calc-section">
<div class="card">
<img class="img-beta" src="{% static 'datacenterlight/img/beta-img.png' %}" alt="">
<div class="caption">
<form method="POST" action="">
{% csrf_token %}
<img class="img-beta" src="{% static 'datacenterlight/img/beta-img.png' %}" alt="">
<div class="caption">
<form method="POST" action="">
{% csrf_token %}
<div class="title">
<h3>{% trans "VM hosting" %} </h3>
</div>
<div class="price">
<span id="total">15</span>
<span>CHF</span>
<div class="price-text">
<p>{% trans "VAT included" %}</p>
</div>
</div>
<div class="descriptions">
<div class="description">
<p>{% trans "Hosted in Switzerland" %}</p>
</div>
<div class="description">
<i class="fa fa-minus-circle left" data-minus="cpu" aria-hidden="true"></i>
<input class="input-price" type="number" min="1" max="42" id="coreValue" name="cpu">
<span> Core</span>
<i class="fa fa-plus-circle right" data-plus="cpu" aria-hidden="true"></i>
</div>
<div class="description">
<i class="fa fa-minus-circle left" data-minus="ram" aria-hidden="true"></i>
<input id="ramValue" class="input-price" type="number" min="2" max="200" name="ram">
<span> GB RAM</span>
<i class="fa fa-plus-circle right" data-plus="ram" aria-hidden="true"></i>
</div>
<div class="description">
<i class="fa fa-minus-circle left" data-minus="storage" aria-hidden="true"></i>
<input id="storageValue" class="input-price" type="number" min="10" max="500" step="10" name="storage">
<span>{% trans "GB Storage (SSD)" %}</span>
<i class="fa fa-plus-circle right" data-plus="storage" aria-hidden="true"></i>
<div class="title">
<h3>{% trans "VM hosting" %} </h3>
</div>
<div class="price">
<span id="total">15</span>
<span>CHF</span>
<div class="price-text">
<p>{% trans "VAT included" %}</p>
</div>
</div>
<div class="descriptions">
<div class="description">
<p>{% trans "Hosted in Switzerland" %}</p>
</div>
<div class="description">
<i class="fa fa-minus-circle left" data-minus="cpu" aria-hidden="true"></i>
<input class="input-price" type="number" min="1" max="42" id="coreValue" name="cpu">
<span> Core</span>
<i class="fa fa-plus-circle right" data-plus="cpu" aria-hidden="true"></i>
</div>
<div class="description">
<i class="fa fa-minus-circle left" data-minus="ram" aria-hidden="true"></i>
<input id="ramValue" class="input-price" type="number" min="2" max="200" name="ram">
<span> GB RAM</span>
<i class="fa fa-plus-circle right" data-plus="ram" aria-hidden="true"></i>
</div>
<div class="description">
<i class="fa fa-minus-circle left" data-minus="storage" aria-hidden="true"></i>
<input id="storageValue" class="input-price" type="number" min="10" max="500" step="10" name="storage">
<span>{% trans "GB Storage (SSD)" %}</span>
<i class="fa fa-plus-circle right" data-plus="storage" aria-hidden="true"></i>
</div>
<div class="description select-configuration input">
<label for="name">OS</label>
<select name="config" id="">
{% for template in templates %}
<option value="{{template.id}}">{{template.name}} </option>
{% endfor %}
</select>
<div class="description select-configuration input">
<label for="name">OS</label>
<select name="config" id="">
{% for template in templates %}
<option value="{{template.id}}">{{template.name}} </option>
{% endfor %}
</select>
</div>
<input type="hidden" name="total">
<!-- <div class="description input">
<label for="name">Name</label>
<input type="text" name="name" placeholder="Your Name">
</div>
<div class="description input">
<label for="email">Email</label>
<input type="email" name="email" placeholder="Your Email">
</div> -->
<!--<div class="description check-ip">
<input type="checkbox" name="ipv6"> Ipv6 Only<br>
</div>-->
</div>
<input type="hidden" name="total">
<input type="submit" class="btn btn-primary" value="{% trans 'Order Now!' %}"></input>
<!-- <div class="description input">
<label for="name">Name</label>
<input type="text" name="name" placeholder="Your Name">
</div>
<div class="description input">
<label for="email">Email</label>
<input type="email" name="email" placeholder="Your Email">
</div> -->
<!--<div class="description check-ip">
<input type="checkbox" name="ipv6"> Ipv6 Only<br>
</div>-->
</div>
<input type="submit" class="btn btn-primary" value="{% trans 'Order Now!' %}"></input>
</form>
</div>
</form>
</div>
</div>
<div class="text">

View file

@ -12,29 +12,21 @@
</div>
</div>
<script src="{% static 'datacenterlight/js/jquery.js' %}"></script>
<script type="text/javascript">
window.onload=function(){
$('.selectpicker').selectpicker({
style: 'btn-link',
windowPadding: 10,
});
<script type="text/javascript">
window.onload=function(){
$('.selectpicker').selectpicker({
style: 'btn-link',
windowPadding: 10,
});
var hash = window.location.hash.substr(1);
console.log(hash);
if (hash == 'requestform'){
$('#reques-success-message').modal('show');
}
};
</script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.5.4/bootstrap-select.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="{% static 'datacenterlight/js/bootstrap.min.js' %}"></script>
<script src="{% static 'datacenterlight/js/main.js' %}"></script>
var hash = window.location.hash.substr(1);
console.log(hash);
if (hash == 'requestform'){
$('#reques-success-message').modal('show');
}
};
</script>
{% endblock %}

View file

@ -1,22 +1,19 @@
{% extends "datacenterlight/base.html" %}
{% load staticfiles i18n%}
{% get_current_language as LANGUAGE_CODE %}
{% block content %}
<!-- Why Data Center Light? -->
<div class="full-whydcl-sec">
<div class="whydcl-header whydcl-section" id="why_dcl">
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12">
<div class="single-heading">
<h2>{% trans "Why Data Center Light?" %}</h2>
<div class="whydcl-header whydcl-section" id="why_dcl">
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12">
<div class="single-heading">
<h2>{% trans "Why Data Center Light?" %}</h2>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="split-section left" id="tech_stack">
@ -35,38 +32,38 @@
</div>
</div>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive btm-space" src="{% static 'datacenterlight/img/devuan.png' %}" alt="Devuan">
<span class="logo-caption">{% trans "Our services run on" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive" src="{% static 'datacenterlight/img/prometheus.png' %}" alt="Prometheus">
<span class="logo-caption">{% trans "Our monitoring" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive btm-space" src="{% static 'datacenterlight/img/Ceph_Logo.png' %}" alt="Ceph">
<span class="logo-caption">{% trans "Our storage layer" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive" src="{% static 'datacenterlight/img/django.png' %}" alt="Django">
<span class="logo-caption">{% trans "Our web frontend" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive btm-space" src="{% static 'datacenterlight/img/opennebula.png' %}" alt="Opennebula">
<span class="logo-caption">{% trans "Our cloud" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive" src="{% static 'datacenterlight/img/cdistbyungleich.png' %}" alt="Cdist by ungleich">
<span class="logo-caption">{% trans "Our configuration management system" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive" src="{% static 'datacenterlight/img/python-logo.png' %}" alt="Python">
<span class="logo-caption">{% trans "Our awesome juice" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive" src="{% static 'datacenterlight/img/tayga.png' %}" alt="Tayga">
<span class="logo-caption">{% trans "Our NAT64 gateway" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive btm-space" src="{% static 'datacenterlight/img/devuan.png' %}" alt="Devuan">
<span class="logo-caption">{% trans "Our services run on" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive" src="{% static 'datacenterlight/img/prometheus.png' %}" alt="Prometheus">
<span class="logo-caption">{% trans "Our monitoring" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive btm-space" src="{% static 'datacenterlight/img/Ceph_Logo.png' %}" alt="Ceph">
<span class="logo-caption">{% trans "Our storage layer" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive" src="{% static 'datacenterlight/img/django.png' %}" alt="Django">
<span class="logo-caption">{% trans "Our web frontend" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive btm-space" src="{% static 'datacenterlight/img/opennebula.png' %}" alt="Opennebula">
<span class="logo-caption">{% trans "Our cloud" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive" src="{% static 'datacenterlight/img/cdistbyungleich.png' %}" alt="Cdist by ungleich">
<span class="logo-caption">{% trans "Our configuration management system" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive" src="{% static 'datacenterlight/img/python-logo.png' %}" alt="Python">
<span class="logo-caption">{% trans "Our awesome juice" %}</span>
</div>
<div class="col-xs-12 col-sm-6 col-md-6 col-md-6 logo-wrap">
<img class="img-responsive btm-space-tayga" src="{% static 'datacenterlight/img/tayga.png' %}" alt="Tayga">
<span class="logo-caption">{% trans "Our NAT64 gateway" %}</span>
</div>
</div>
</div>
@ -77,21 +74,21 @@
<div class=" space">
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-4 col-md-5 ">
<div class="col-xs-12 col-sm-12 col-md-6 col-md-6 logo-wrap-1">
<img class="img-responsive" src="{% static 'datacenterlight/img/opennebula.png' %}" alt="Opennebula">
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-md-6 logo-wrap-1">
<img class="img-responsive" src="{% static 'datacenterlight/img/cdistbyungleich.png' %}" alt="Cdist byu ngleich">
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-md-6 logo-wrap-1">
<img class="img-responsive" src="{% static 'datacenterlight/img/prometheus.png' %}" alt="Prometheus">
</div>
<div class="col-xs-12 col-sm-4 col-md-5 ">
<div class="col-xs-12 col-sm-12 col-md-6 col-md-6 logo-wrap-1">
<img class="img-responsive" src="{% static 'datacenterlight/img/opennebula.png' %}" alt="Opennebula">
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-md-6 logo-wrap-1">
<img class="img-responsive" src="{% static 'datacenterlight/img/cdistbyungleich.png' %}" alt="Cdist byu ngleich">
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-md-6 logo-wrap-1">
<img class="img-responsive" src="{% static 'datacenterlight/img/prometheus.png' %}" alt="Prometheus">
</div>
</div>
<div class="col-xs-12 col-sm-8 col-md-7 text-right">
<div class="tech-sub-sec">
<h2>{% trans "We believe in giving back to the FOSS community." %}</h2>
<p class="lead">{% blocktrans %}Data Center Light is the child of free and open source software (FOSS). <br>We grew up with it, live by it, and believe in it.<br> The more we work on our data center,<br> the more we contribute back to the FOSS community.{% endblocktrans %}</p>
<p class="lead">{% blocktrans %}Data Center Light is the child of free and open source software (FOSS) movement. <br>We grew up with it, live by it, and believe in it.<br> The more we work on our data center,<br> the more we contribute back to the FOSS community.{% endblocktrans %}</p>
</div>
</div>
</div>
@ -102,33 +99,30 @@
<div class="space">
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 tech-sub-sec">
<h2>{% trans "We bring the future to you." %}</h2>
</div>
<div class="col-xs-12 col-sm-7 col-md-8 col-lg-8 text-left tech-sub-sec landscape-xs-6">
<p class="lead">{% blocktrans %} Data Center Light uses the most modern technologies out there.<br>
Your VM needs only IPv6. Data Center Light provides<br> transparent two-way IPv6/IPv4 translation.
{% endblocktrans %}</p>
</div>
<div class="col-xs-12 col-sm-5 col-md-4 col-lg-4 percent-text text-right landscape-xs-6">
100% <strong>IPv6</strong>
</div>
</div>
<div class="col-lg-12 space-block"></div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div class="col-xs-12 col-sm-7 col-md-8 col-lg-8 percent-text landscape-xs-8">
<span class="pull-left space-middle"> 100% <strong>SSD</strong></span> <span class="pull-left ssdimg"><img class="img-responsive" src="{% static 'datacenterlight/img/ssd.jpg' %}" alt="SSD"></span>
</div>
<div class="col-xs-12 col-sm-5 col-md-4 col-lg-4 text-right tech-sub-sec padding-vertical landscape-xs-4">
<div>
<p class="lead">{% blocktrans %} No more spinning metal plates! Data Center Light uses only SSDs. We keep things faster and lighter. {% endblocktrans %}</p>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 tech-sub-sec">
<h2>{% trans "We bring the future to you." %}</h2>
</div>
<div class="col-xs-12 col-sm-7 col-md-8 col-lg-8 text-left tech-sub-sec landscape-xs-6">
<p class="lead">{% blocktrans %} Data Center Light uses the most modern technologies out there.<br>
Your VM needs only IPv6. Data Center Light provides<br> transparent two-way IPv6/IPv4 translation.
{% endblocktrans %}</p>
</div>
<div class="col-xs-12 col-sm-5 col-md-4 col-lg-4 percent-text text-right landscape-xs-6">
100% <strong>IPv6</strong>
</div>
</div>
<div class="col-lg-12 space-block"></div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div class="col-xs-12 col-sm-7 col-md-8 col-lg-8 percent-text landscape-xs-8">
<span class="pull-left space-middle"> 100% <strong>SSD</strong></span> <span class="pull-left ssdimg"><img class="img-responsive" src="{% static 'datacenterlight/img/ssd.jpg' %}" alt="SSD"></span>
</div>
<div class="col-xs-12 col-sm-5 col-md-4 col-lg-4 text-right tech-sub-sec padding-vertical landscape-xs-4">
<div>
<p class="lead">{% blocktrans %} No more spinning metal plates! Data Center Light uses only SSDs. We keep things faster and lighter. {% endblocktrans %}</p>
</div>
</div>
</div>
</div>
</div>
</div>
@ -150,94 +144,7 @@
<div class="landing card">
<img class="img-beta" src="{% static 'datacenterlight/img/beta-img.png' %}" alt="">
<div class="caption">
<form id="order_form" method="POST" action="" data-toggle="validator" role="form">
{% csrf_token %}
<div class="title">
<h3>{% trans "VM hosting" %} </h3>
</div>
<div class="price">
<span id="total">15</span>
<span>CHF/{% trans "month" %}</span>
<div class="price-text">
<p>{% trans "VAT included" %}</p>
</div>
</div>
<div class="descriptions">
<div class="description form-group">
<p>{% trans "Hosted in Switzerland" %}</p>
</div>
<div class="form-group">
<div class="description input">
<i class="fa fa-minus-circle left" data-minus="cpu" aria-hidden="true"></i>
<input class="input-price select-number" type="number" min="1" max="42" id="coreValue" name="cpu" data-error="{% trans 'Please enter a value greater than or equal to 1.' %}" required>
<span> Core</span>
<i class="fa fa-plus-circle right" data-plus="cpu" aria-hidden="true"></i>
</div>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<div class="description input">
<i class="fa fa-minus-circle left" data-minus="ram" aria-hidden="true"></i>
<input id="ramValue" class="input-price select-number" type="number" min="2" max="200" name="ram" data-error="{% trans 'Please enter a value greater than or equal to 2.' %}" required>
<span> GB RAM</span>
<i class="fa fa-plus-circle right" data-plus="ram" aria-hidden="true"></i>
</div>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<div class="description input">
<i class="fa fa-minus-circle left" data-minus="storage" aria-hidden="true"></i>
<input id="storageValue" class="input-price select-number" type="number" min="10" max="500" step="10" name="storage" data-error="{% trans 'Please enter a value greater than or equal to 10.' %}" required>
<span>{% trans "GB Storage (SSD)" %}</span>
<i class="fa fa-plus-circle right" data-plus="storage" aria-hidden="true"></i>
</div>
<div class="help-block with-errors"></div>
</div>
<div class="description select-configuration input form-group justify-center">
<label for="config">OS</label>
<select name="config" id="">
{% for template in templates %}
<option value="{{template.id}}">{{template.name}} </option>
{% endfor %}
</select>
</div>
<input type="hidden" name="total">
<!--<div class="description check-ip">
<input type="checkbox" name="ipv6"> Ipv6 Only<br>
</div>-->
<div class="form-group">
<div class="description input justify-center">
<label for="name" class="control-label">{% trans "Name"%}</label>
<input type="text" name="name" class="form-control" placeholder="{% trans 'Your Name'%}" data-minlength="3" data-error="{% trans 'Please enter your name' %}" required>
</div>
<div class="help-block with-errors">
{% for message in messages %}
{% if 'name' in message.tags %}
<ul class="list-unstyled"><li>
{{ message|safe }}
</li></ul>
{% endif %}
{% endfor %}
</div>
</div>
<div class="form-group">
<div class="description input justify-center">
<label for="email" class="control-label">{% trans "Email"%}</label>
<input name="email" type="email" pattern="^[^@\s]+@([^@\s]+\.)+[^@\s]+$" class="form-control" placeholder="{% trans 'Your Email' %}" data-error="{% trans 'Please enter a valid email address' %}" required>
</div>
<div class="help-block with-errors">
{% for message in messages %}
{% if 'email' in message.tags %}
<ul class="list-unstyled"><li>
{{ message|safe }}
</li></ul>
{% endif %}
{% endfor %}
</div>
</div>
</div>
<input type="submit" class="btn btn-primary" value="{% trans 'Order Now!' %}"></input>
</form>
{% include "datacenterlight/calculator_form.html" %}
</div>
</div>
</div>
@ -249,6 +156,4 @@
</div>
<!-- End Why Data Center Light? -->
{% endblock %}
{% endblock %}

View file

@ -146,7 +146,6 @@ TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(PROJECT_DIR, 'cms_templates/'),
os.path.join(PROJECT_DIR, 'templates'),
os.path.join(PROJECT_DIR, 'cms_templates/djangocms_blog/'),
os.path.join(PROJECT_DIR, 'membership'),
os.path.join(PROJECT_DIR, 'hosting/templates/'),
@ -154,8 +153,8 @@ TEMPLATES = [
os.path.join(PROJECT_DIR, 'ungleich/templates/djangocms_blog/'),
os.path.join(PROJECT_DIR, 'ungleich/templates/cms/ungleichch'),
os.path.join(PROJECT_DIR, 'ungleich/templates/ungleich'),
os.path.join(PROJECT_DIR, 'ungleich_page/templates/ungleich_page')
os.path.join(PROJECT_DIR, 'ungleich_page/templates/ungleich_page'),
os.path.join(PROJECT_DIR, 'templates/analytics'),
],
'APP_DIRS': True,
'OPTIONS': {

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-01 02:09+0530\n"
"POT-Creation-Date: 2017-07-11 00:02+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,11 +18,11 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: forms.py:28
#: forms.py:25
msgid "Your account is not activated yet."
msgstr "Dein Account wurde noch nicht aktiviert."
#: forms.py:65
#: forms.py:62
msgid "Paste here your public key"
msgstr "Fügen Sie Ihren public key ein"
@ -185,20 +185,14 @@ msgid "New Virtual Machine"
msgstr "Neue virtuelle Maschine"
#: templates/hosting/create_virtual_machine.html:28
#, fuzzy
#| msgid "Select VM Template:"
msgid "Step 1. Select VM Template:"
msgstr "Wähle eine Vorlage"
#: templates/hosting/create_virtual_machine.html:42
#, fuzzy
#| msgid "Select VM Configuration:"
msgid "Step2. Select VM Configuration"
msgstr "Wähle eine Konfiguration"
#: templates/hosting/create_virtual_machine.html:59
#, fuzzy
#| msgid "Pricing"
msgid "Price "
msgstr "Preis"
@ -239,7 +233,7 @@ msgid "Don't have an account yet ? "
msgstr "Besitzt du kein Benutzerkonto?"
#: templates/hosting/login.html:37 templates/hosting/signup.html.py:13
#: templates/hosting/signup.html:21 views.py:223
#: templates/hosting/signup.html:21 views.py:219
msgid "Sign up"
msgstr "Registrieren"
@ -369,28 +363,31 @@ msgid "Billing Address"
msgstr "Rechnungsadresse"
#: templates/hosting/payment.html:52
msgid "Payment Details"
msgstr "Rechnungsdetails"
msgid "Credit Card"
msgstr "Kreditkarte"
#: templates/hosting/payment.html:65
msgid "Submit Payment"
msgstr "Betrag überweisen"
#: templates/hosting/payment.html:56
msgid ""
"Please fill in your credit card information below. We are using <a href="
"\"https://stripe.com\" target=\"_blank\">Stripe</a> for payment and do not "
"store your information in our database."
msgstr ""
"Bitte füll deine Kreditkarteninformationen unten aus. Wir nutzen <a href="
"\"https://stripe.com\" target=\"_blank\">Stripe</a> für die Bezahlung und "
"speichern keine Informationen in unserer Datenbank."
#: templates/hosting/payment.html:84
msgid "CARD NUMBER"
msgstr "Kreditkartennummer"
#: templates/hosting/payment.html:71 templates/hosting/payment.html.py:96
msgid ""
"You are not making any payment yet. After submitting your card information, "
"you will be taken to the Confirm Order Page."
msgstr ""
"Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe deiner "
"Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
"weitergeleitet."
#: templates/hosting/payment.html:89
msgid "Valid Card Number"
msgstr "Gültige Kreditkartennummer"
#: templates/hosting/payment.html:98
msgid "EXPIRATION DATE"
msgstr "Ablaufdatum"
#: templates/hosting/payment.html:109
msgid "CV CODE"
msgstr "CV Code"
#: templates/hosting/payment.html:76 templates/hosting/payment.html.py:100
msgid "Submit"
msgstr "Absenden"
#: templates/hosting/reset_password.html:15
msgid "Reset your password"
@ -431,14 +428,10 @@ msgid "Created at"
msgstr "Erstellt am"
#: templates/hosting/user_keys.html:43
#, fuzzy
#| msgid "Delete"
msgid "Delete Key"
msgstr "Löschen"
#: templates/hosting/user_keys.html:56
#, fuzzy
#| msgid "Do You want do delete your order?"
msgid "Do You want to delete this key?"
msgstr "Möchtest Du den Schlüssel löschen?"
@ -502,11 +495,11 @@ msgstr "IPv4"
msgid "Ipv6"
msgstr "IPv6"
#: views.py:213 views.py:232
#: views.py:207 views.py:229
msgid "login"
msgstr "einloggen"
#: views.py:217
#: views.py:212
msgid ""
"Thank you for signing up. We have sent an email to you. Please follow the "
"instructions in it to activate your account. Once activated, you can login "
@ -516,32 +509,58 @@ msgstr ""
"den Anweisungen um deinen Account zu aktivieren. Danach kannst du dich über "
"diesen"
#: views.py:218 views.py:243
#: views.py:214 views.py:240
msgid "Go back to"
msgstr "Zurück"
#: views.py:233
#: views.py:230
msgid "Account activation"
msgstr "Accountaktivierung"
#: views.py:236
#: views.py:233
msgid "Your account has been activated."
msgstr "Dein Account wurde aktiviert."
#: views.py:237
#: views.py:234
msgid "You can now"
msgstr "Du kannst dich nun"
#: views.py:242
#: views.py:239
msgid "Sorry. Your request is invalid."
msgstr "Entschuldigung, deine Anfrage ist ungültig."
#: views.py:760
#: views.py:756
msgid ""
"We could not find the requested VM. Please "
"contact Data Center Light Support."
msgstr ""
#~ msgid "Payment Details"
#~ msgstr "Rechnungsdetails"
#~ msgid "Place Order"
#~ msgstr "Bestelle"
#~ msgid ""
#~ "You are not making any payment yet. After placing your order, you will be "
#~ "taken to the Submit Payment Page."
#~ msgstr ""
#~ "Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe deiner "
#~ "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
#~ "weitergeleitet."
#~ msgid "CARD NUMBER"
#~ msgstr "Kreditkartennummer"
#~ msgid "Valid Card Number"
#~ msgstr "Gültige Kreditkartennummer"
#~ msgid "EXPIRATION DATE"
#~ msgstr "Ablaufdatum"
#~ msgid "CV CODE"
#~ msgstr "CV Code"
#~ msgid "Home"
#~ msgstr "Home"

View file

@ -49,9 +49,13 @@
<div class="row">
<div class="col-xs-12 col-md-offset-2 col-md-4 "></div>
<div class="col-xs-12 col-md-4 creditcard-box">
<h3><b>{%trans "Payment Details"%}</b></h3>
<h3><b>{%trans "Credit Card"%}</b></h3>
<hr>
<div>
<div>
<p> {% trans 'Please fill in your credit card information below. We are using <a href="https://stripe.com" target="_blank">Stripe</a> for payment and do not store your information in our database.' %}</p>
</div>
<br>
<div>
{% if credit_card_data.last4 %}
<form role="form" id="payment-form-with-creditcard"novalidate>
@ -60,61 +64,42 @@
<h5 class="membership-lead">Type: {{credit_card_data.cc_brand}}</h5>
<input type="hidden" name="credit_card_needed" value="false"/>
</form>
<div class="col-xs-6">
<button id="payment_button_with_creditcard" class="btn btn-success btn-sm btn-block" type="submit">
{% trans "Submit Payment" %}
</button>
</div>
<div class="row">
<br>
<div class="col-xs-12>
<p style="font-family: Lato;border: 1px solid #a1a1a1;border-radius: 3px; padding: 5px; ">{% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %}</p>
</div>
<div class="col-xs-12">
<div class="col-xs-6 pull-right">
<button style="width: 100px; float: right; font-style: normal; font-weight: bold; position: absolute; right: 0;" id="payment_button_with_creditcard" class="btn btn-success" type="submit">
{% trans "Submit" %}
</button>
</div>
</div>
</div>
{% else %}
<form role="form" id="payment-form" novalidate>
<div class="row">
<div class="form-group">
<div class="form-group col-xs-12">
<div id="card-element">
<!-- a Stripe Element will be inserted here. -->
</div>
</div>
</div>
<div id="card-errors" role="alert"></div>
<!-- <div class="row">
<div class="col-xs-9 col-md-12">
<div class="form-group">
<label class="control-label" for="cardNumber">{%trans "CARD NUMBER"%}</label>
<div class="input-group">
<input type="text"
class="form-control"
name="cardNumber"
placeholder="{%trans "Valid Card Number"%}" required autofocus data-stripe="number" />
<span class="input-group-addon"><i class="fa fa-credit-card"></i></span>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6 col-md-7">
<div class="form-group">
<label for="expMonth">{%trans "EXPIRATION DATE"%}</label><br/>
<div class="col-xs-6 col-lg-6 col-md-6 pl-ziro">
<input type="text" class="form-control" name="expMonth" placeholder="MM" required data-stripe="exp_month" />
</div>
<div class="col-xs-6 col-lg-6 col-md-6 pl-ziro">
<input type="text" class="form-control" name="expYear" placeholder="YY" required data-stripe="exp_year" />
</div>
</div>
</div>
<div class="col-xs-4 col-md-5 pull-right">
<div class="form-group">
<label for="cvCode">{%trans "CV CODE"%}</label>
<input type="password" class="form-control" name="cvCode" placeholder="CV" required data-stripe="cvc" />
</div>
</div>
</div> -->
<div class="row">
<div class="col-xs-6 float-right">
<button class="btn btn-success btn-sm btn-block" type="submit">Submit Payment</button>
</div>
<br>
<div class="col-xs-12">
<p style="font-family: Lato;border: 1px solid #a1a1a1;border-radius: 3px; padding: 5px;"> {% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %}</p>
</div>
<div class="col-xs-12">
<div class="col-xs-6 pull-right">
<button style="width: 100px; float: right; font-style: normal; font-weight: bold; position: absolute; right: 0;" class="btn btn-success" type="submit">{% trans "Submit" %}</button>
</div>
</div>
</div>
<div class="row" style="display:none;">
<div class="col-xs-12">
@ -164,7 +149,3 @@
{%endif%}
{%endblock%}

View file

@ -16,7 +16,7 @@
</h2>
</a>
<p class="post-meta" style="font-size:0.9em;">
{% trans "Posted on" %}{{ post.date_published|date:"DATE_FORMAT" }}
{% trans "Posted on" %} {{ post.date_published|date:"DATE_FORMAT" }}
</p>
<p class="post-subtitle">