diff --git a/Changelog b/Changelog index 3d6e1589..efd6190f 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,16 @@ 1.2.1: 2017-09-06 * #3757: [datacenterlight] Added /l route for linkedin +1.2: 2017-09-01 + * #3703: [hosting] Added a new dashboard + * #3717: [datacenterlight, hosting] Changed warning color for box + * #3748: [datacenterlight] Changed order msg position for mobile + * #3762: [hosting] Text fix View details to See Invoice + * #3765: [hosting] Text fix Your SSH Keys to My SSH Keys + * #3639: [datacenterlight] Added navbar menu after payment page on landing + * #3735: [hosting] Increased modal width and modal button width + * #3709: Activated Text Plugin by default for the Page Title Text, enabled tag text management + * #3768: [datacenterlight, hosting] Fixed missing DE translation + * #3678: [datacenterlight, hosting] Removed Lato font files 1.1.1: 2017-08-29 * #3709: [datacenterlight] Added faq tos cms template * #3657: [datacenterlight] Added a new contact section at landing diff --git a/datacenterlight/locale/de/LC_MESSAGES/django.po b/datacenterlight/locale/de/LC_MESSAGES/django.po index c0dc55ca..80d88c04 100644 --- a/datacenterlight/locale/de/LC_MESSAGES/django.po +++ b/datacenterlight/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-24 11:28+0000\n" +"POT-Creation-Date: 2017-09-02 03:08+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" @@ -95,7 +95,9 @@ msgid "Message" msgstr "Nachricht" msgid "Sorry, there was an unexpected error. Kindly retry." -msgstr "Bitte entschuldige, es scheint ein unerwarteter Fehler aufgetreten zu sein. Versuche es doch bitte noch einmal." +msgstr "" +"Bitte entschuldige, es scheint ein unerwarteter Fehler aufgetreten zu sein. " +"Versuche es doch bitte noch einmal." msgid "SUBMIT" msgstr "ABSENDEN" @@ -166,6 +168,9 @@ msgstr "" "Du kannst deinen %(dcl_text)s Account aktivieren, indem du hier klickst " "%(base_url)s%(activation_link)s\n" +msgid "Home" +msgstr "Home" + msgid "Highlights" msgstr "" @@ -175,18 +180,15 @@ msgstr "Skalierung" msgid "Reliable and light" msgstr "Zuverlässig und leicht" +msgid "Pricing" +msgstr "Preise" + msgid "Order VM" msgstr "VM bestellen" msgid "Contact" msgstr "Kontakt" -msgid "Home" -msgstr "Home" - -msgid "Pricing" -msgstr "Preise" - msgid "All Rights Reserved" msgstr "Alle Rechte vorbehalten" @@ -256,25 +258,10 @@ msgid "Contact us" msgstr "Kontaktiere uns" msgid "Switzerland " -msgstr "Schweiz" +msgstr "Schweiz " -msgid "Confirm Order" -msgstr "Bestellung Bestätigen" - -msgid "Date" -msgstr "Datum" - -msgid "Billed To:" -msgstr "Rechnungsadresse" - -msgid "Payment Method:" -msgstr "Bezahlmethode" - -msgid "ending" -msgstr "endend in" - -msgid "Order summary" -msgstr "Bestellungsübersicht" +msgid "Your Order" +msgstr "Deine Bestellung" msgid "Cores" msgstr "Prozessorkerne" @@ -289,13 +276,80 @@ msgid "Configuration" msgstr "Konfiguration" msgid "Total" -msgstr "" +msgstr "Gesamt" + +msgid "including VAT" +msgstr "inkl. Mehrwertsteuer" -#, fuzzy -#| msgid "month" msgid "Month" msgstr "Monat" +msgid "Billing Address" +msgstr "Rechnungsadresse" + +msgid "Credit Card" +msgstr "Kreditkarte" + +msgid "" +"\n" +" Please fill in your credit card information " +"below. We are using <a\n" +" href=\"https://stripe.com\" target=" +"\"_blank\">Stripe</a> for payment and do not store\n" +" your information in our database.\n" +" " +msgstr "" +"\n" +"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." + +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. Die Bezahlung wird erst ausgelöst, " +"nachdem Du die Bestellung auf der nächsten Seite bestätigt hast." + +msgid "Submit" +msgstr "Absenden" + +msgid "Card Number" +msgstr "Kreditkartennummer" + +msgid "Expiry Date" +msgstr "Ablaufdatum" + +msgid "CVC" +msgstr "" + +msgid "Card Type" +msgstr "Kartentyp" + +msgid "Processing" +msgstr "Weiter" + +msgid "Enter your credit card number" +msgstr "Deine Kreditkartennummer" + +msgid "Confirm Order" +msgstr "Bestellung Bestätigen" + +msgid "Date" +msgstr "Datum" + +msgid "Billed To:" +msgstr "Rechnungsadresse" + +msgid "Payment Method:" +msgstr "Bezahlmethode" + +msgid "ending" +msgstr "endend" + +msgid "Order summary" +msgstr "Bestellungsübersicht" + #, python-format msgid "" "By clicking \"Place order\" this plan will charge your credit card account " @@ -331,7 +385,7 @@ msgstr "" msgid "Thank you for order! Our team will contact you via email" msgstr "" "Vielen Dank für die Bestellung. Unser Team setzt sich sobald wie möglich mit " -"Ihnen via E-Mail in Verbindung." +"Dir via E-Mail in Verbindung." msgid "as soon as possible!" msgstr "" @@ -495,9 +549,6 @@ msgstr "ist keine gültige E-Mailadresse" #~ msgid "Buy Now!" #~ msgstr "Kaufe jetzt!" -#~ msgid "Email address" -#~ msgstr "E-Mail Adresse" - #~ msgid "Our promise" #~ msgstr "Unser Versprechen" diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css index 9d83a88f..9025473e 100755 --- a/datacenterlight/static/datacenterlight/css/landing-page.css +++ b/datacenterlight/static/datacenterlight/css/landing-page.css @@ -4,11 +4,6 @@ * For details, see http://www.apache.org/licenses/LICENSE-2.0. */ -/*@font-face { - font-family: 'Lato-Light'; - src: url('../fonts/Lato/Lato-Light.ttf'); -}*/ - body, html { width: 100%; @@ -972,6 +967,10 @@ tech-sub-sec h2 { .navbar-default .navbar-nav>.open>a:focus, .navbar-default .navbar-nav>.open>a:hover { background: transparent; +} +.navbar-transparent .navbar-nav>.open>a, +.navbar-transparent .navbar-nav>.open>a:focus, +.navbar-transparent .navbar-nav>.open>a:hover { color: #fff; } diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Black.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Black.ttf deleted file mode 100755 index 6848db0d..00000000 Binary files a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Black.ttf and /dev/null differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BlackItalic.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BlackItalic.ttf deleted file mode 100755 index 5decf129..00000000 Binary files a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BlackItalic.ttf and /dev/null differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Bold.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Bold.ttf deleted file mode 100755 index 74343694..00000000 Binary files a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Bold.ttf and /dev/null differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BoldItalic.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BoldItalic.ttf deleted file mode 100755 index 684aacf5..00000000 Binary files a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BoldItalic.ttf and /dev/null differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Hairline.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Hairline.ttf deleted file mode 100755 index 288be295..00000000 Binary files a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Hairline.ttf and /dev/null differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-HairlineItalic.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-HairlineItalic.ttf deleted file mode 100755 index c2bfd335..00000000 Binary files a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-HairlineItalic.ttf and /dev/null differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Italic.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Italic.ttf deleted file mode 100755 index 3d3b7a29..00000000 Binary files a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Italic.ttf and /dev/null differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Light.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Light.ttf deleted file mode 100755 index a958067a..00000000 Binary files a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Light.ttf and /dev/null differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-LightItalic.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-LightItalic.ttf deleted file mode 100755 index 5e45ad9a..00000000 Binary files a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-LightItalic.ttf and /dev/null differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Regular.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Regular.ttf deleted file mode 100755 index 04ea8efb..00000000 Binary files a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Regular.ttf and /dev/null differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/OFL.txt b/datacenterlight/static/datacenterlight/fonts/Lato/OFL.txt deleted file mode 100755 index f8ca7bc3..00000000 --- a/datacenterlight/static/datacenterlight/fonts/Lato/OFL.txt +++ /dev/null @@ -1,92 +0,0 @@ -Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/datacenterlight/static/datacenterlight/js/main.js b/datacenterlight/static/datacenterlight/js/main.js index 2e928955..c508d76d 100644 --- a/datacenterlight/static/datacenterlight/js/main.js +++ b/datacenterlight/static/datacenterlight/js/main.js @@ -86,17 +86,29 @@ } function _initNavUrl() { + $('.url-init').each(function(idx, el) { + var $this = $(el); + var currentPath = window.location.pathname; + var thisPaths = $this.attr('href').split('#') + if ($this.hasClass('dropdown-toggle') && window.matchMedia("(max-width: 767px)").matches) { + $this.removeClass('url-init'); + $this.attr('href', ''); + } else if ($('#'+thisPaths[1]).length) { + $this.removeClass('url-init').addClass('url'); + $this.attr('href', '#' + thisPaths[1]); + } else { + $this.removeClass('url-init'); + } + }); $('.url').click(function(event) { event.preventDefault(); - var href = $(this).attr('data-url'); + var href = $(this).attr('href'); $('.navbar-collapse').removeClass('in'); $('.navbar-collapse').addClass('collapsing'); if ($(href).length) { $('html, body').animate({ scrollTop: $(href).offset().top }, 1000); - } else { - window.location.href = '/datacenterlight' + href; } }); } diff --git a/datacenterlight/templates/datacenterlight/base.html b/datacenterlight/templates/datacenterlight/base.html index 671d894e..45b30cad 100644 --- a/datacenterlight/templates/datacenterlight/base.html +++ b/datacenterlight/templates/datacenterlight/base.html @@ -10,7 +10,7 @@ <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"> - + {% cms_toolbar %} <title>Data Center Light - {% block title %}VM hosting made in Switzerland{% endblock %} @@ -41,7 +41,6 @@ - {% cms_toolbar %} {% include "datacenterlight/includes/_navbar.html" %} diff --git a/datacenterlight/templates/datacenterlight/cms_page.html b/datacenterlight/templates/datacenterlight/cms_page.html index f42528e4..3e3b038a 100644 --- a/datacenterlight/templates/datacenterlight/cms_page.html +++ b/datacenterlight/templates/datacenterlight/cms_page.html @@ -1,17 +1,19 @@ {% extends "datacenterlight/base.html" %} {% load staticfiles cms_tags sekizai_tags %} +{% block title %} +{% page_attribute page_title %} +{% endblock %} {% block content %} {% addtoblock "css" %} {% endaddtoblock %} -
-

{% placeholder 'datacenterlight_cms_page_title' %}

+

{% page_attribute page_title %}

diff --git a/datacenterlight/templates/datacenterlight/includes/_footer.html b/datacenterlight/templates/datacenterlight/includes/_footer.html index f77c3385..76c2c16e 100644 --- a/datacenterlight/templates/datacenterlight/includes/_footer.html +++ b/datacenterlight/templates/datacenterlight/includes/_footer.html @@ -2,52 +2,37 @@ {% get_current_language as LANGUAGE_CODE %} diff --git a/datacenterlight/templates/datacenterlight/includes/_navbar.html b/datacenterlight/templates/datacenterlight/includes/_navbar.html index 9df9e227..ee791648 100644 --- a/datacenterlight/templates/datacenterlight/includes/_navbar.html +++ b/datacenterlight/templates/datacenterlight/includes/_navbar.html @@ -1,99 +1,47 @@ -{% load staticfiles i18n%} {% get_current_language as LANGUAGE_CODE %} {% load custom_tags %} +{% load staticfiles i18n%} {% load custom_tags %} {% get_current_language as LANGUAGE_CODE %} diff --git a/datacenterlight/templates/datacenterlight/index.html b/datacenterlight/templates/datacenterlight/index.html index 3f89055c..cde420dd 100755 --- a/datacenterlight/templates/datacenterlight/index.html +++ b/datacenterlight/templates/datacenterlight/index.html @@ -16,10 +16,10 @@
diff --git a/datacenterlight/templates/datacenterlight/landing_payment.html b/datacenterlight/templates/datacenterlight/landing_payment.html new file mode 100644 index 00000000..f4974a56 --- /dev/null +++ b/datacenterlight/templates/datacenterlight/landing_payment.html @@ -0,0 +1,217 @@ +{% extends "hosting/base_short.html" %} +{% load staticfiles bootstrap3 i18n %} + +{% block navbar %} + {% include "datacenterlight/includes/_navbar.html" %} +{% endblock navbar %} + +{% block content %} + + +
+
+
+
+

{%trans "Your Order" %}

+
+
+ {%trans "Cores" %} +
+
+ {%trans "Memory" %} +
+
+ {%trans "Disk space" %} +
+
+ {%trans "Configuration" %} +
+
+
+
+ {{request.session.specs.cpu|floatformat}} +
+
+ {{request.session.specs.memory|floatformat}} GB +
+
+ {{request.session.specs.disk_size|floatformat}} GB +
+
+ {{request.session.template.name}} +
+
+
+
+ {%trans "Total" %} {%trans "including VAT" %} +
+
+
+
{{request.session.specs.price}} + CHF/{% trans "Month" %} +
+
+
+
+
+
+
+
+

{%trans "Billing Address"%}

+
+
+ {% for field in form %} + {% csrf_token %} + {% bootstrap_field field show_label=False type='fields'%} + {% endfor %} +
+
+
+

{%trans "Credit Card"%}

+
+
+
+

+ {% blocktrans %} + Please fill in your credit card information below. We are using Stripe for payment and do not store + your information in our database. + {% endblocktrans %} +

+
+
+
+ {% if credit_card_data.last4 %} +
+
Credit Card
+
Last 4: *****{{credit_card_data.last4}}
+
Type: {{credit_card_data.cc_brand}}
+ +
+
+
+ {% if not messages and not form.non_field_errors %} +

+ {% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %} +

+ {% endif %} +
+ {% for message in messages %} + {% if 'failed_payment' or 'make_charge_error' in message.tags %} +
  • +

    {{ message|safe }}

    +
+ {% endif %} + {% endfor %} + {% for error in form.non_field_errors %} +

+ {{ error|escape }} +

+ {% endfor %} +
+
+
+
+ +
+
+
+ + {% else %} +
+ +
+
+
+ +
+
+
+ +
+
+
+
+ +
+
+
+ + +
+
+
+ +
+
+ {% if not messages and not form.non_field_errors %} +

+ {% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %} +

+ {% endif %} +
+ {% for message in messages %} + {% if 'failed_payment' or 'make_charge_error' in message.tags %} +
  • +

    {{ message|safe }}

    +
+ {% endif %} + {% endfor %} + + {% for error in form.non_field_errors %} +

+ {{ error|escape }} +

+ {% endfor %} +
+
+
+
+ +
+
+
+ + +
+ + {% endif %} +
+
+
+
+
+
+
+ + +{% if stripe_key %} +{% get_current_language as LANGUAGE_CODE %} + +{%endif%} + +{% if credit_card_data.last4 and credit_card_data.cc_brand %} + +{%endif%} + +{%endblock%} diff --git a/datacenterlight/templates/datacenterlight/order_detail.html b/datacenterlight/templates/datacenterlight/order_detail.html index 7a882236..b55953bf 100644 --- a/datacenterlight/templates/datacenterlight/order_detail.html +++ b/datacenterlight/templates/datacenterlight/order_detail.html @@ -2,6 +2,11 @@ {% load staticfiles bootstrap3 %} {% load i18n %} {% load custom_tags %} + +{% block navbar %} + {% include "datacenterlight/includes/_navbar.html" %} +{% endblock navbar %} + {% block content %}
@@ -72,13 +77,15 @@

- {% csrf_token %} -
-

{% blocktrans with vm_price=request.session.specs.price %}By clicking "Place order" this plan will charge your credit card account with the fee of {{ vm_price }}CHF/month{% endblocktrans %}.

-
- + {% csrf_token %} +
+
+

{% blocktrans with vm_price=request.session.specs.price %}By clicking "Place order" this plan will charge your credit card account with the fee of {{ vm_price }}CHF/month{% endblocktrans %}.

+
+ +
diff --git a/datacenterlight/urls.py b/datacenterlight/urls.py index 5c9ffcd7..772e691d 100644 --- a/datacenterlight/urls.py +++ b/datacenterlight/urls.py @@ -7,9 +7,10 @@ from .views import IndexView, BetaProgramView, LandingProgramView, \ urlpatterns = [ url(r'^$', IndexView.as_view(), name='index'), - url(r'^t$', IndexView.as_view(), name='index_t'), - url(r'^g$', IndexView.as_view(), name='index_g'), - url(r'^f$', IndexView.as_view(), name='index_f'), + url(r'^t/$', IndexView.as_view(), name='index_t'), + url(r'^g/$', IndexView.as_view(), name='index_g'), + url(r'^f/$', IndexView.as_view(), name='index_f'), + url(r'^l/$', IndexView.as_view(), name='index_l'), url(r'^whydatacenterlight/?$', WhyDataCenterLightView.as_view(), name='whydatacenterlight'), url(r'^beta-program/?$', BetaProgramView.as_view(), name='beta'), diff --git a/datacenterlight/views.py b/datacenterlight/views.py index 25c2b87f..0521ffef 100644 --- a/datacenterlight/views.py +++ b/datacenterlight/views.py @@ -406,7 +406,7 @@ class WhyDataCenterLightView(IndexView): class PaymentOrderView(FormView): - template_name = 'hosting/payment.html' + template_name = 'datacenterlight/landing_payment.html' form_class = BillingAddressForm def get_form_kwargs(self): @@ -478,7 +478,7 @@ class PaymentOrderView(FormView): class OrderConfirmationView(DetailView): template_name = "datacenterlight/order_detail.html" - payment_template_name = 'hosting/payment.html' + payment_template_name = 'datacenterlight/landing_payment.html' context_object_name = "order" model = HostingOrder @@ -554,7 +554,7 @@ class OrderConfirmationView(DetailView): stripe_subscription_obj = subscription_result.get('response_object') # Check if the subscription was approved and is active if stripe_subscription_obj is None or \ - stripe_subscription_obj.status != 'active': + stripe_subscription_obj.status != 'active': msg = subscription_result.get('error') messages.add_message(self.request, messages.ERROR, msg, extra_tags='failed_payment') diff --git a/hosting/locale/de/LC_MESSAGES/django.po b/hosting/locale/de/LC_MESSAGES/django.po index 2887095f..f905d905 100644 --- a/hosting/locale/de/LC_MESSAGES/django.po +++ b/hosting/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-24 11:12+0000\n" +"POT-Creation-Date: 2017-09-02 03:08+0530\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -73,7 +73,7 @@ msgid "Mwst-Nummer: CHE-109.549.333 MWST" msgstr "" msgid "Total:" -msgstr "" +msgstr "Gesamt:" #, python-format msgid "Alles Preise in CHF mit 8%% Mehrwertsteuer." @@ -172,6 +172,27 @@ msgstr "CHF/Monat" msgid "Start VM" msgstr "VM jetzt starten" +msgid "My Dashboard" +msgstr "Mein Dashboard" + +msgid "Create VM" +msgstr "VM erstellen" + +msgid "My VMs" +msgstr "Meine VMs" + +msgid "My SSH Keys" +msgstr "Meine SSH Keys" + +msgid "My Bills" +msgstr "Meine Rechnungen" + +msgid "My Settings" +msgstr "Meine Einstellungen" + +msgid "Support / Contact" +msgstr "Support / Kontakt" + #, python-format msgid "" "You're receiving this email because you requested a password reset for your " @@ -221,12 +242,21 @@ msgstr "Datum" msgid "Status:" msgstr "" +msgid "Approved" +msgstr "Akzeptiert" + +msgid "Declined" +msgstr "Abgelehnt" + msgid "Billed To:" msgstr "Rechnungsadresse" msgid "Payment Method:" msgstr "Bezahlmethode" +msgid "ending in" +msgstr "endend in" + msgid "Order summary" msgstr "Bestellungsübersicht" @@ -257,9 +287,6 @@ msgstr "" msgid "See Invoice" msgstr "Rechnung" -msgid "View Detail" -msgstr "Details anzeigen" - msgid "Page" msgstr "" @@ -302,9 +329,8 @@ 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. Die Bezahlung wird erst " -"ausgelöst, nachdem Du die Bestellung auf der nächsten Seite bestätigt " -"hast." +"Es wird noch keine Bezahlung vorgenommen. Die Bezahlung wird erst ausgelöst, " +"nachdem Du die Bestellung auf der nächsten Seite bestätigt hast." msgid "Submit" msgstr "Absenden" @@ -345,16 +371,11 @@ msgstr "Erstelle dein neues Keypaar" msgid "Warning!" msgstr "Achtung!" -#, fuzzy -#| msgid "You can download your SSH private key once. Don't lost your key" msgid "You can download your SSH private key once. Don't loose your key" msgstr "" "Du kannst deinen privaten SSH Schlüssel nur einmal herunterladen. Beware ihn " "sicher auf." -msgid "Your SSH Keys" -msgstr "Deine SSH Keys" - msgid "" "To generate a new key pair or to upload your existing key, click 'Add Key'" msgstr "" @@ -382,8 +403,6 @@ msgstr "Möchtest Du den Schlüssel löschen?" msgid "Show" msgstr "Anzeigen" -#, fuzzy -#| msgid "Public SSH Key" msgid "Public SSH Key" msgstr "Public SSH Key" @@ -423,9 +442,6 @@ msgstr "Fehlgeschlagen" msgid "Terminate VM" msgstr "VM Beenden" -msgid "Support / Contact" -msgstr "Support / Kontakt" - msgid "Something doesn't work?" msgstr "Etwas funktioniert nicht?" @@ -451,11 +467,14 @@ msgid "Virtual Machines" msgstr "Virtuelle Maschinen" msgid "To create a new virtual machine, click \"Create VM\"" -msgstr "" +msgstr "Um eine neue VM zu erzeugen, klicke \"Neue VM erzeugen\"" msgid "CREATE VM" msgstr "NEUE VM" +msgid "View Detail" +msgstr "Details anzeigen" + msgid "login" msgstr "Einloggen" @@ -492,48 +511,17 @@ msgstr "Bestellung Bestätigen" msgid "" "We could not find the requested VM. Please " "contact Data Center Light Support." -msgstr "" +msgstr "Kontaktiere den Data Center Light Support." -#~ msgid "" -#~ "\n" -#~ " You are not making any " -#~ "payment yet. After submitting your card\n" -#~ " information, you will be " -#~ "taken to the Confirm Order Page.\n" -#~ " " -#~ msgstr "" -#~ "\n" -#~ "Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe Deiner " -#~ "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite " -#~ "weitergeleitet." - -#~ msgid "Approved" -#~ msgstr "Akzeptiert" - -#~ msgid "Declined" -#~ msgstr "Abgelehnt" +#~ msgid "Your SSH Keys" +#~ msgstr "Deine SSH Keys" #~ msgid "Cancel Order" #~ msgstr "Bestellung stornieren" -#, fuzzy -#~| msgid "Do You want to delete your order?" #~ msgid "Do you want to delete your order?" #~ msgstr "Willst du deine Bestellung löschen?" -#~ msgid "" -#~ "\n" -#~ " You are not making any payment " -#~ "yet. After submitting your card\n" -#~ " information, you will be taken to " -#~ "the Confirm Order Page.\n" -#~ " " -#~ msgstr "" -#~ "\n" -#~ "Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe Deiner " -#~ "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite " -#~ "weitergeleitet." - #~ msgid "Ip not assigned yet" #~ msgstr "Ip nicht zugewiesen" @@ -561,82 +549,12 @@ msgstr "" #~ msgid "Keys" #~ msgstr "Schlüssel" -#, fuzzy -#~| msgid "Contact" -#~ msgid "Content" -#~ msgstr "Kontakt" - -#, fuzzy -#~| msgid "Contact" -#~ msgid "DG.Contact" -#~ msgstr "Kontakt" - -#, fuzzy -#~| msgid "Home" -#~ msgid "DG.Home" -#~ msgstr "Home" - -#, fuzzy -#~| msgid "Amount" -#~ msgid "Country" -#~ msgstr "Betrag" - #~ msgid "Log in" #~ msgstr "Anmelden" -#, fuzzy -#~| msgid "Configuration" -#~ msgid "Donation #" -#~ msgstr "Konfiguration" - -#, fuzzy -#~| msgid "Billing Address" -#~ msgid "Billing Address:" -#~ msgstr "Rechnungsadresse" - -#, fuzzy -#~| msgid "Date" -#~ msgid "Date:" -#~ msgstr "Datum" - -#, fuzzy -#~| msgid "Configuration" -#~ msgid "Donation" -#~ msgstr "Konfiguration" - -#, fuzzy -#~| msgid "View Detail" -#~ msgid "View Donations" -#~ msgstr "Details anzeigen" - #~ msgid "You haven been logged out" #~ msgstr "Sie wurden abgmeldet" -#, fuzzy -#~| msgid "Log in" -#~ msgid "Log in " -#~ msgstr "Anmelden" - -#, fuzzy -#~| msgid "View Detail" -#~ msgid "DG.Detail" -#~ msgstr "Details anzeigen" - -#, fuzzy -#~| msgid "Cancel" -#~ msgid "France" -#~ msgstr "Beenden" - -#, fuzzy -#~| msgid "Enter your credit card number" -#~ msgid "Enter your name or company name" -#~ msgstr "Deine Kreditkartennummer" - -#, fuzzy -#~| msgid "Card Number" -#~ msgid "Cardholder Name" -#~ msgstr "Kreditkartennummer" - #~ msgid "How it works" #~ msgstr "So funktioniert es" @@ -658,9 +576,6 @@ msgstr "" #~ msgid "Generate Key Pair" #~ msgstr "Schlüsselpaar generieren" -#~ msgid "Created at" -#~ msgstr "Erstellt am" - #~ msgid "Billing Amount" #~ msgstr "Rechnungsbetrag" diff --git a/hosting/static/hosting/css/commons.css b/hosting/static/hosting/css/commons.css index 1ebae4b4..699f417c 100644 --- a/hosting/static/hosting/css/commons.css +++ b/hosting/static/hosting/css/commons.css @@ -1,3 +1,9 @@ +@media (min-width: 768px) { + .navbar-right { + margin-right: 10px; + } +} + .dashboard-container { padding-top:70px; padding-bottom: 70px; @@ -103,7 +109,7 @@ text-align: center; width: 100%; float: left; - padding: 0px 40px 15px 30px; + padding: 0px 30px 15px 30px; } .modal-body .modal-icon i { font-size: 80px; @@ -111,7 +117,7 @@ color: #999; } .modal-body .modal-icon { - margin-bottom: 10px; + margin-bottom: 15px; } .modal-title { margin: 0; @@ -122,9 +128,12 @@ font-weight: 300; } .modal-text { - padding-top: 15px; + padding-top: 5px; font-size: 16px; } +.modal-text p:not(:last-of-type){ + margin-bottom: 5px; +} .modal-footer { border-top: 0px solid #e5e5e5; width: 100%; @@ -132,11 +141,8 @@ text-align: center; padding: 15px 15px; } -.modal-footer button[type="submit"] { - min-width: 80px; -} @media (min-width: 1300px) { - .modal-dialog {/* top: 30%; */width: 35%;} + .modal-dialog {/* top: 30%; */width: 40%;} } @media (max-width: 1299px) { .modal-dialog { @@ -233,4 +239,8 @@ -webkit-transform: translate(-50%,-50%); -ms-transform: translate(-50%,-50%); transform: translate(-50%,-50%); +} + +.btn-wide { + min-width: 100px; } \ No newline at end of file diff --git a/hosting/static/hosting/css/dashboard.css b/hosting/static/hosting/css/dashboard.css new file mode 100644 index 00000000..c7bbecd9 --- /dev/null +++ b/hosting/static/hosting/css/dashboard.css @@ -0,0 +1,85 @@ +.hosting-dashboard:after { + content: ''; + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background-color: rgba(91, 116, 173, 0.7); + z-index: -1; +} +.hosting-dashboard:before { + content: ''; + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: url(../../datacenterlight/img/pattern.jpg) no-repeat center center; + background-size: cover; + z-index: -2; + height: 100%; +} + +.hosting-dashboard .dashboard-container-head { + color: #fff; + margin-bottom: 60px; +} + +.hosting-dashboard-item { + background: #e9ebee; + box-shadow: 1px 3px 3px rgba(0,0,0,0.4); + padding: 25px; + color: rgba(124, 139, 175, 1); + font-size: 19px; + display: block; + margin-bottom: 20px; +} +.hosting-dashboard-item:hover, +.hosting-dashboard-item:focus, +.hosting-dashboard-item:active { + text-decoration: none; + color: #7c8baf; + background: #fff; +} + +.hosting-dashboard-item h2 { + margin: 0; + font-size: 18px; + padding-bottom: 15px; + border-bottom: 2px solid #acb5cf; + margin-bottom: 10px; +} + +.hosting-dashboard-image { + height: 120px; + fill: #8b9bb7; + display: flex; + align-items: center; +} +.hosting-dashboard-item:hover .hosting-dashboard-image, +.hosting-dashboard-item:focus .hosting-dashboard-image, +.hosting-dashboard-item:active .hosting-dashboard-image { + fill: #6D84AC; + color: #6D84AC; +} +.hosting-dashboard-image img, +.hosting-dashboard-image svg { + width: 100%; + height: 100%; + max-height: 79px; +} +.hosting-dashboard-image img { + opacity: 0.2; +} + +@media (min-width: 768px) { + .hosting-dashboard-content { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + } + .hosting-dashboard-item { + width: 31.5%; + } +} \ No newline at end of file diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css index d1dc657a..b69f1b8f 100644 --- a/hosting/static/hosting/css/landing-page.css +++ b/hosting/static/hosting/css/landing-page.css @@ -4,20 +4,6 @@ * For details, see http://www.apache.org/licenses/LICENSE-2.0. */ -/*@font-face { - font-family: 'Lato-Regular'; - src: url('../fonts/Lato/Lato-Regular.ttf'); -} - -@font-face { - src: url('../fonts/Lato/Lato-Black.ttf'); -} - -@font-face { - font-family: 'Lato-Light'; - src: url('../fonts/Lato/Lato-Light.ttf'); -}*/ - body, html { width: 100%; @@ -39,11 +25,28 @@ h6 { .topnav { font-size: 14px; } +.topnav .navbar-fixed-top .navbar-collapse { + max-height: 740px; +} +.navbar-brand { + padding: 10px 15px; +} + +.navbar-default { + background: #fff; + box-shadow: 0 3px 3px -2px hsla(0,0%,78%,.72); +} + +.navbar-default .navbar-header { + position: relative; + z-index: 1; +} .navbar-transparent { background: transparent; border: none; padding: 20px; + box-shadow: none; } .navbar-transparent.topnav { @@ -71,6 +74,42 @@ h6 { /* color: #fff; */ } +.navbar-right .highlights-dropdown .dropdown-menu { + left: 0 !important; + min-width: 155px; + margin-left: 15px; + padding: 5px !important; +} +@media(min-width: 768px) { + .navbar-right .highlights-dropdown .dropdown-menu { + border: 1px solid #fff; + } + .navbar-right .highlights-dropdown .dropdown-menu:before { + content: ''; + display: block; + height: 1px; + background: #e7e7e7; + position: absolute; + top: -1px; + left: -1px; + right: -1px; + } +} +.navbar-right .highlights-dropdown .dropdown-menu > li > a{ + font-size: 13px; + font-weight: 300; + font-family: 'Lato', sans-serif; + padding: 1px 10px !important; + background: transparent; + color: #333; +} +.navbar-right .highlights-dropdown .dropdown-menu > li > a:hover, +.navbar-right .highlights-dropdown .dropdown-menu > li > a:focus, +.navbar-right .highlights-dropdown .dropdown-menu > li > a:active { + background: transparent; + text-decoration: underline !important; +} + .lead { font-size: 18px; font-weight: 400; @@ -536,6 +575,7 @@ a.unlink:hover { .dcl-place-order-text{ font-size: 13px; color: #808080; + margin-bottom: 15px; } .dcl-order-table-total .tbl-total { @@ -760,6 +800,30 @@ a.unlink:hover { color: #ddd; } +.visible-mobile { + display: none !important; +} + +@media(max-width:767px) { + .visible-mobile { + display: block !important; + } + .visible-desktop { + display: none !important; + } +} + +.navbar-default .navbar-nav>.open>a, .navbar-default .navbar-nav>.open>a:focus, .navbar-default .navbar-nav>.open>a:hover, +.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:focus, .navbar-default .navbar-nav>.active>a:hover { + background-color: transparent; +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu>.active>a, .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus, .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover { + background-color: transparent; + } +} + /* bootstrap danger color override from #a94442 */ .text-danger, .has-error .help-block, @@ -772,7 +836,6 @@ a.unlink:hover { .has-error.checkbox label, .has-error.radio-inline label, .has-error.checkbox-inline label, -.has-error .form-control, .has-error .form-control-feedback, .alert-danger, .list-group-item-danger, @@ -782,6 +845,7 @@ a.list-group-item-danger:focus, .panel-danger > .panel-heading { color: #eb4d5c; } +.has-error .form-control, .has-error .input-group-addon { color: #eb4d5c; border-color: #eb4d5c; diff --git a/hosting/static/hosting/css/user_keys.css b/hosting/static/hosting/css/user_keys.css index 7935344f..6039ae0e 100644 --- a/hosting/static/hosting/css/user_keys.css +++ b/hosting/static/hosting/css/user_keys.css @@ -163,8 +163,8 @@ /* margin-left: 0; */ } .col-md-12, .col-sm-12{ - padding-left: 5px; - padding-right: 5px; + /*padding-left: 5px;*/ + /*padding-right: 5px;*/ } } @media (max-width: 360px){ @@ -172,8 +172,8 @@ /* width: 100% !important; */ } .container { - padding-right: 5px; - padding-left: 5px; + /*padding-right: 5px; + padding-left: 5px;*/ } } .dashboard-choice-container { @@ -299,6 +299,7 @@ } .key_contain { word-break: break-all; + margin-bottom: 15px; } .custom_form_button{ border-radius: 0; diff --git a/hosting/static/hosting/css/virtual-machine.css b/hosting/static/hosting/css/virtual-machine.css index 45aa68ff..806d40c6 100644 --- a/hosting/static/hosting/css/virtual-machine.css +++ b/hosting/static/hosting/css/virtual-machine.css @@ -440,10 +440,11 @@ } .dashboard-title-thin .un-icon { - height: 30px; + height: 34px; margin-right: 5px; - margin-top: -1px; - width: 30px; + margin-top: -2px; + width: 34px; + vertical-align: middle; } .dashboard-subtitle { @@ -528,8 +529,8 @@ font-size: 22px; } .dashboard-title-thin .un-icon { - height: 20px; - width: 18px; + height: 22px; + width: 22px; margin-top: -3px; } .dashboard-subtitle p { diff --git a/hosting/static/hosting/fonts/Lato/Lato-Black.ttf b/hosting/static/hosting/fonts/Lato/Lato-Black.ttf deleted file mode 100755 index 6848db0d..00000000 Binary files a/hosting/static/hosting/fonts/Lato/Lato-Black.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-BlackItalic.ttf b/hosting/static/hosting/fonts/Lato/Lato-BlackItalic.ttf deleted file mode 100755 index 5decf129..00000000 Binary files a/hosting/static/hosting/fonts/Lato/Lato-BlackItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-Bold.ttf b/hosting/static/hosting/fonts/Lato/Lato-Bold.ttf deleted file mode 100755 index 74343694..00000000 Binary files a/hosting/static/hosting/fonts/Lato/Lato-Bold.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-BoldItalic.ttf b/hosting/static/hosting/fonts/Lato/Lato-BoldItalic.ttf deleted file mode 100755 index 684aacf5..00000000 Binary files a/hosting/static/hosting/fonts/Lato/Lato-BoldItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-Hairline.ttf b/hosting/static/hosting/fonts/Lato/Lato-Hairline.ttf deleted file mode 100755 index 288be295..00000000 Binary files a/hosting/static/hosting/fonts/Lato/Lato-Hairline.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-HairlineItalic.ttf b/hosting/static/hosting/fonts/Lato/Lato-HairlineItalic.ttf deleted file mode 100755 index c2bfd335..00000000 Binary files a/hosting/static/hosting/fonts/Lato/Lato-HairlineItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-Italic.ttf b/hosting/static/hosting/fonts/Lato/Lato-Italic.ttf deleted file mode 100755 index 3d3b7a29..00000000 Binary files a/hosting/static/hosting/fonts/Lato/Lato-Italic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-Light.ttf b/hosting/static/hosting/fonts/Lato/Lato-Light.ttf deleted file mode 100755 index a958067a..00000000 Binary files a/hosting/static/hosting/fonts/Lato/Lato-Light.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-LightItalic.ttf b/hosting/static/hosting/fonts/Lato/Lato-LightItalic.ttf deleted file mode 100755 index 5e45ad9a..00000000 Binary files a/hosting/static/hosting/fonts/Lato/Lato-LightItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-Regular.ttf b/hosting/static/hosting/fonts/Lato/Lato-Regular.ttf deleted file mode 100755 index 04ea8efb..00000000 Binary files a/hosting/static/hosting/fonts/Lato/Lato-Regular.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Lato/OFL.txt b/hosting/static/hosting/fonts/Lato/OFL.txt deleted file mode 100755 index f8ca7bc3..00000000 --- a/hosting/static/hosting/fonts/Lato/OFL.txt +++ /dev/null @@ -1,92 +0,0 @@ -Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/hosting/static/hosting/img/24-hours-support.svg b/hosting/static/hosting/img/24-hours-support.svg index 4db05be3..473828a2 100644 --- a/hosting/static/hosting/img/24-hours-support.svg +++ b/hosting/static/hosting/img/24-hours-support.svg @@ -1,61 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Slice 23 + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/hosting/static/hosting/img/billing.svg b/hosting/static/hosting/img/billing.svg index d002fa6c..c382cffa 100644 --- a/hosting/static/hosting/img/billing.svg +++ b/hosting/static/hosting/img/billing.svg @@ -1 +1,13 @@ -billing icon \ No newline at end of file + + + + Slice 23 + Created with Sketch. + + + + + + + + diff --git a/hosting/static/hosting/img/dashboard_settings.svg b/hosting/static/hosting/img/dashboard_settings.svg new file mode 100644 index 00000000..f8d60bf5 --- /dev/null +++ b/hosting/static/hosting/img/dashboard_settings.svg @@ -0,0 +1,14 @@ + + + + Slice 23 + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/hosting/static/hosting/img/key.svg b/hosting/static/hosting/img/key.svg new file mode 100644 index 00000000..42b1e539 --- /dev/null +++ b/hosting/static/hosting/img/key.svg @@ -0,0 +1,12 @@ + + + + Slice 23 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/hosting/static/hosting/img/plusVM.svg b/hosting/static/hosting/img/plusVM.svg new file mode 100644 index 00000000..2bd59e2d --- /dev/null +++ b/hosting/static/hosting/img/plusVM.svg @@ -0,0 +1,14 @@ + + + + Slice 23 + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/hosting/static/hosting/img/vm.svg b/hosting/static/hosting/img/vm.svg index 376e7d0a..061d80ce 100644 --- a/hosting/static/hosting/img/vm.svg +++ b/hosting/static/hosting/img/vm.svg @@ -1,7 +1,12 @@ - - - - - Svg Vector Icons : http://www.onlinewebfonts.com/icon - + + + + Slice 23 + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/hosting/static/hosting/js/initial.js b/hosting/static/hosting/js/initial.js index 50975806..4408a299 100644 --- a/hosting/static/hosting/js/initial.js +++ b/hosting/static/hosting/js/initial.js @@ -1,5 +1,59 @@ -$( document ).ready(function() { +// also declared in datacenterlight/js/main.js +function _initNavUrl() { + // $('.url').click(function(event) { + // event.preventDefault(); + // var href = $(this).attr('href'); + // $('.navbar-collapse').removeClass('in'); + // $('.navbar-collapse').addClass('collapsing'); + // if ($(href).length) { + // $('html, body').animate({ + // scrollTop: $(href).offset().top + // }, 1000); + // } else { + // window.location.href = '/datacenterlight' + href; + // } + // }); + $('.url-init').each(function(idx, el) { + var $this = $(el); + var currentPath = window.location.pathname; + var thisPaths = $this.attr('href').split('#') + if ($this.hasClass('dropdown-toggle') && window.matchMedia("(max-width: 767px)").matches) { + $this.removeClass('url-init'); + $this.attr('href', ''); + } else if ($('#'+thisPaths[1]).length) { + $this.removeClass('url-init').addClass('url'); + $this.attr('href', '#' + thisPaths[1]); + } else { + $this.removeClass('url-init'); + } + }); + $('.url').click(function(event) { + event.preventDefault(); + var href = $(this).attr('href'); + $('.navbar-collapse').removeClass('in'); + $('.navbar-collapse').addClass('collapsing'); + if ($(href).length) { + $('html, body').animate({ + scrollTop: $(href).offset().top + }, 1000); + } + }); +} +/* --------------------------------------------- + Nav panel classic + --------------------------------------------- */ +if (window.matchMedia("(min-width: 767px)").matches) { + $('ul.nav li.dropdown').hover(function() { + $(this).find('.dropdown-menu').stop(true, true).fadeIn(500); + }, function() { + $(this).find('.dropdown-menu').stop(true, true).fadeOut(500); + }); +} else { + /* the viewport is less than 400 pixels wide */ +} + +$( document ).ready(function() { $('[data-toggle="tooltip"]').tooltip(); @@ -13,6 +67,45 @@ $( document ).ready(function() { }, 1000); }); + _initNavUrl(); + + /* + * Replace all SVG images with inline SVG + */ + $('.svg-img').each(function() { + console.log('asa') + var $img = $(this); + var imgID = $img.attr('id'); + var imgClass = $img.attr('class'); + var imgURL = $img.attr('src'); + + jQuery.get(imgURL, function(data) { + // Get the SVG tag, ignore the rest + var $svg = jQuery(data).find('svg'); + + // Add replaced image's ID to the new SVG + if(typeof imgID !== 'undefined') { + $svg = $svg.attr('id', imgID); + } + // Add replaced image's classes to the new SVG + if(typeof imgClass !== 'undefined') { + $svg = $svg.attr('class', imgClass+' replaced-svg'); + } + + // Remove any invalid XML tags as per http://validator.w3.org + $svg = $svg.removeAttr('xmlns:a'); + + // Check if the viewport is set, if the viewport is not set the SVG wont't scale. + if(!$svg.attr('viewBox') && $svg.attr('height') && $svg.attr('width')) { + $svg.attr('viewBox', '0 0 ' + $svg.attr('height') + ' ' + $svg.attr('width')) + } + + // Replace image with new SVG + $img.replaceWith($svg); + + }, 'xml'); + }); + $('.alt-text').on('mouseenter mouseleave', function(e){ var $this = $(this); var txt = $this.text(); diff --git a/hosting/templates/hosting/base_short.html b/hosting/templates/hosting/base_short.html index 847daa37..5030d9ab 100644 --- a/hosting/templates/hosting/base_short.html +++ b/hosting/templates/hosting/base_short.html @@ -24,6 +24,7 @@ + @@ -57,12 +58,14 @@
{% if request.user.is_authenticated %} diff --git a/hosting/templates/hosting/dashboard.html b/hosting/templates/hosting/dashboard.html new file mode 100644 index 00000000..4d41874e --- /dev/null +++ b/hosting/templates/hosting/dashboard.html @@ -0,0 +1,50 @@ +{% extends "hosting/base_short.html" %} +{% load staticfiles bootstrap3 i18n %} + +{% block content %} + +{%endblock%} diff --git a/hosting/templates/hosting/order_detail.html b/hosting/templates/hosting/order_detail.html index 8a5f39f6..64c0b5d3 100644 --- a/hosting/templates/hosting/order_detail.html +++ b/hosting/templates/hosting/order_detail.html @@ -1,7 +1,7 @@ {% extends "hosting/base_short.html" %} {% load staticfiles bootstrap3 %} {% load i18n %} -{% block content %} +{% block content %}
{% if messages %} @@ -17,7 +17,7 @@
{% endif %} {% if not error %} -
+

{{page_header_text}}

{% trans "Order #"%} {{order.id}}

@@ -29,9 +29,11 @@ {% trans "Date"%}:
{{order.created_at|date:'Y-m-d H:i'}}

{% trans "Status:"%}
- {{order.status}} + {% if order.status == 'Approved' %} + {% trans "Approved" %} + {% else %} + {% trans "Declined" %} + {% endif %}

@@ -44,20 +46,20 @@ {{order.billing_address.city}}, {{order.billing_address.country}}.
- +
{% trans "Payment Method:"%}
- {{order.cc_brand}} ending **** {{order.last4}}
+ {{order.cc_brand}} {% trans "ending in" %} **** {{order.last4}}
{{user.email}}
- +

{% trans "Order summary"%}

@@ -83,8 +85,8 @@ {% endif %}
- - - {%endif%} {%endblock%} diff --git a/hosting/templates/hosting/user_keys.html b/hosting/templates/hosting/user_keys.html index fd93b66f..1cfb880c 100644 --- a/hosting/templates/hosting/user_keys.html +++ b/hosting/templates/hosting/user_keys.html @@ -3,7 +3,7 @@ {% block content %}
-

 {% trans "Your SSH Keys" %}

+

 {% trans "My SSH Keys" %}

{% if messages %}
{% for message in messages %} @@ -33,8 +33,7 @@ {{user_key.name}} - @@ -42,20 +41,18 @@ -
diff --git a/hosting/urls.py b/hosting/urls.py index 23709904..e6b6fee3 100644 --- a/hosting/urls.py +++ b/hosting/urls.py @@ -1,17 +1,20 @@ from django.conf.urls import url from django.contrib.auth import views as auth_views -from .views import DjangoHostingView, RailsHostingView, PaymentVMView,\ - NodeJSHostingView, LoginView, SignupView, SignupValidateView, SignupValidatedView, IndexView, \ - OrdersHostingListView, OrdersHostingDetailView, VirtualMachinesPlanListView,\ - VirtualMachineView, OrdersHostingDeleteView, NotificationsView, \ - MarkAsReadNotificationView, PasswordResetView, PasswordResetConfirmView, HostingPricingView,\ - CreateVirtualMachinesView, HostingBillListView, HostingBillDetailView, \ - SSHKeyDeleteView, SSHKeyCreateView, SSHKeyListView, SSHKeyChoiceView +from .views import ( + DjangoHostingView, RailsHostingView, PaymentVMView, NodeJSHostingView, + LoginView, SignupView, SignupValidateView, SignupValidatedView, IndexView, + NotificationsView, OrdersHostingListView, OrdersHostingDetailView, + VirtualMachinesPlanListView, VirtualMachineView, OrdersHostingDeleteView, + MarkAsReadNotificationView, PasswordResetView, PasswordResetConfirmView, + HostingPricingView, CreateVirtualMachinesView, HostingBillListView, + HostingBillDetailView, SSHKeyDeleteView, SSHKeyCreateView, SSHKeyListView, + SSHKeyChoiceView, DashboardView) urlpatterns = [ url(r'index/?$', IndexView.as_view(), name='index'), url(r'django/?$', DjangoHostingView.as_view(), name='djangohosting'), + url(r'dashboard/?$', DashboardView.as_view(), name='dashboard'), url(r'nodejs/?$', NodeJSHostingView.as_view(), name='nodejshosting'), url(r'rails/?$', RailsHostingView.as_view(), name='railshosting'), url(r'pricing/?$', HostingPricingView.as_view(), name='pricing'), diff --git a/hosting/views.py b/hosting/views.py index 0747f134..08f0862e 100644 --- a/hosting/views.py +++ b/hosting/views.py @@ -40,6 +40,18 @@ CONNECTION_ERROR = "Your VMs cannot be displayed at the moment due to a backend connection error. please try again in a few minutes." +class DashboardView(View): + template_name = "hosting/dashboard.html" + + def get_context_data(self, **kwargs): + context = {} + return context + + def get(self, request, *args, **kwargs): + context = self.get_context_data() + return render(request, self.template_name, context) + + class DjangoHostingView(ProcessVMSelectionMixin, View): template_name = "hosting/django.html" @@ -558,7 +570,8 @@ class PaymentVMView(LoginRequiredMixin, FormView): token=token) if not customer: msg = _("Invalid credit card") - messages.add_message(self.request, messages.ERROR, msg, extra_tags='make_charge_error') + messages.add_message( + self.request, messages.ERROR, msg, extra_tags='make_charge_error') return HttpResponseRedirect(reverse('hosting:payment') + '#payment_error') # Create Billing Address @@ -572,7 +585,8 @@ class PaymentVMView(LoginRequiredMixin, FormView): # Check if the payment was approved if not charge_response.get('response_object'): msg = charge_response.get('error') - messages.add_message(self.request, messages.ERROR, msg, extra_tags='make_charge_error') + messages.add_message( + self.request, messages.ERROR, msg, extra_tags='make_charge_error') return HttpResponseRedirect(reverse('hosting:payment') + '#payment_error') charge = charge_response.get('response_object')