conflicts resolved

This commit is contained in:
Arvind Tiwari 2017-10-17 00:27:50 +05:30
commit 2a71be354b
68 changed files with 2255 additions and 2302 deletions

View file

@ -1,7 +1,19 @@
Next Release Next release:
* Bugfix: [dcl, hosting] Fix Stripe js error in confirm payment page
* #3847: [ungleich] change text 'hosting products' -> 'our products'
* #3829: [dcl] Handle landing login fail in payment page itself
* #3794: [dcl, hosting] Update email styles
* #3828: [dcl, hosting] invoice period set to show monthly subscription
* #3838: [hosting] restyle signup/login/password reset/password pages
1.2.6: 2017-10-10
* Bugfix: [dcl] Refactor and optimize images, links in glasfaser page
* Bugfix: [dcl] Fix email not being sent issue
1.2.5: 2017-10-10
* #3785: [hosting] update 'my bills' page design * #3785: [hosting] update 'my bills' page design
* Bugfix: [hosting] card details input form alignment fix * Bugfix: [hosting] card details input form alignment fix
* #3823: [hosting] favicon link fixed * #3823: [hosting] favicon link fixed
* #3844: [dcl] Add Glasfaser page for advertisement
1.2.4: 2017-10-02 1.2.4: 2017-10-02
* #3780: [hosting] Store VM details locally * #3780: [hosting] Store VM details locally
* #3764: [hosting] Show cancelled VMs' invoices * #3764: [hosting] Show cancelled VMs' invoices
@ -195,6 +207,3 @@ Next Release
* [datacenterlight] Fix initially shown price * [datacenterlight] Fix initially shown price
1.0.0: 2017-05-25 1.0.0: 2017-05-25
* Initial stable release * Initial stable release
Next:
[datacenterlight] Fixed credit card input issue

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-30 13:47+0000\n" "POT-Creation-Date: 2017-10-10 21:35+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,137 +18,99 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: alplora/templates/alplora/contact.html:6
msgid "New message" msgid "New message"
msgstr "Neue Nachricht" msgstr "Neue Nachricht"
#: alplora/templates/alplora/contact.html:13
msgid "Name:" msgid "Name:"
msgstr "Name:" msgstr "Name:"
#: alplora/templates/alplora/contact.html:15
msgid "What is your name ?" msgid "What is your name ?"
msgstr "Was ist Dein Name?" msgstr "Was ist Dein Name?"
#: alplora/templates/alplora/contact.html:19
msgid "From:" msgid "From:"
msgstr "Von:" msgstr "Von:"
#: alplora/templates/alplora/contact.html:21
msgid "You email" msgid "You email"
msgstr "Deine Email" msgstr "Deine Email"
#: alplora/templates/alplora/contact.html:25
msgid "Message:" msgid "Message:"
msgstr "Nachricht:" msgstr "Nachricht:"
#: alplora/templates/alplora/contact.html:27
msgid "Leave us your message" msgid "Leave us your message"
msgstr "Schreibe hier Deine Nachricht" msgstr "Schreibe hier Deine Nachricht"
#: alplora/templates/alplora/contact.html:32
msgid "Close" msgid "Close"
msgstr "schliessen" msgstr "schliessen"
#: alplora/templates/alplora/contact.html:33
msgid "Send message" msgid "Send message"
msgstr "Nachricht senden" msgstr "Nachricht senden"
#: alplora/templates/alplora/contact_success.html:6
msgid "Message Sent" msgid "Message Sent"
msgstr "Nachricht gesendet" msgstr "Nachricht gesendet"
#: alplora/templates/alplora/contact_success.html:9
msgid "Thank you, we will contact you as soon as possible" msgid "Thank you, we will contact you as soon as possible"
msgstr "Dankeschön! Wir melden uns sobald wie möglich!" msgstr "Dankeschön! Wir melden uns sobald wie möglich!"
#: alplora/templates/alplora/index.html:13
msgid "Find your animal anywhere, anytime" msgid "Find your animal anywhere, anytime"
msgstr "Finde deine Tiere" msgstr "Finde deine Tiere"
#: alplora/templates/alplora/index.html:99
#: alplora/templates/alplora/index.html:463
msgid "About" msgid "About"
msgstr "Über" msgstr "Über"
#: alplora/templates/alplora/index.html:102
#: alplora/templates/alplora/index.html:248
#: alplora/templates/alplora/index.html:469
msgid "Why Alplora?" msgid "Why Alplora?"
msgstr "Warum Alplora?" msgstr "Warum Alplora?"
#: alplora/templates/alplora/index.html:105
#: alplora/templates/alplora/index.html:466
msgid "Usecase" msgid "Usecase"
msgstr "" msgstr ""
#: alplora/templates/alplora/index.html:108
#: alplora/templates/alplora/index.html:358
msgid "Testimonials" msgid "Testimonials"
msgstr "Referenzen" msgstr "Referenzen"
#: alplora/templates/alplora/index.html:111
#: alplora/templates/alplora/index.html:423
#: alplora/templates/alplora/index.html:477
msgid "Contact" msgid "Contact"
msgstr "Kontakt" msgstr "Kontakt"
#: alplora/templates/alplora/index.html:114
msgid "Login" msgid "Login"
msgstr "Login" msgstr "Login"
#: alplora/templates/alplora/index.html:137
msgid "Find your herd anytime, anywhere" msgid "Find your herd anytime, anywhere"
msgstr "Finde deine Herde jederzeit und überall" msgstr "Finde deine Herde jederzeit und überall"
#: alplora/templates/alplora/index.html:138
msgid "Perfect fit for Swiss Alps" msgid "Perfect fit for Swiss Alps"
msgstr "Perfekt für die Schweizer Alpen" msgstr "Perfekt für die Schweizer Alpen"
#: alplora/templates/alplora/index.html:163
msgid "What is Alplora?" msgid "What is Alplora?"
msgstr "Was ist Alplora?" msgstr "Was ist Alplora?"
#: alplora/templates/alplora/index.html:164
msgid "" msgid ""
"Alplora is an animal tracker made for outdoor grazing animals in Swiss Alps." "Alplora is an animal tracker made for outdoor grazing animals in Swiss Alps."
msgstr "" msgstr ""
"Alplora ist ein Sender, der speziell für Weidetiere in den Schweizer Alpen " "Alplora ist ein Sender, der speziell für Weidetiere in den Schweizer Alpen "
"entwickelt wurde." "entwickelt wurde."
#: alplora/templates/alplora/index.html:165
msgid "Alplora is just like a cattle bell, but much better." msgid "Alplora is just like a cattle bell, but much better."
msgstr "Alplora ist wie eine Kuhglocke, nur viel besser." msgstr "Alplora ist wie eine Kuhglocke, nur viel besser."
#: alplora/templates/alplora/index.html:174
msgid "LOST" msgid "LOST"
msgstr "VERLOREN" msgstr "VERLOREN"
#: alplora/templates/alplora/index.html:176
msgid "When an animal gets separated from the herd and is lost." msgid "When an animal gets separated from the herd and is lost."
msgstr "Wenn ein Tier sich von der Herde absondert und verloren geht." msgstr "Wenn ein Tier sich von der Herde absondert und verloren geht."
#: alplora/templates/alplora/index.html:184
msgid "WOLF" msgid "WOLF"
msgstr "WOLF" msgstr "WOLF"
#: alplora/templates/alplora/index.html:186
msgid "When a wolf gets close to the herd." msgid "When a wolf gets close to the herd."
msgstr "Wenn ein Wolf sich der Herde nähert." msgstr "Wenn ein Wolf sich der Herde nähert."
#: alplora/templates/alplora/index.html:193
msgid "INJURED" msgid "INJURED"
msgstr "VERLETZT" msgstr "VERLETZT"
#: alplora/templates/alplora/index.html:195
msgid "When one of the animals is hurt." msgid "When one of the animals is hurt."
msgstr "Wenn eins der Tiere verletzt ist." msgstr "Wenn eins der Tiere verletzt ist."
#: alplora/templates/alplora/index.html:205
msgid "How does Alplora track my animals?" msgid "How does Alplora track my animals?"
msgstr "Wie kann Alplora meine Tiere verfolgen und ausfindig machen ?" msgstr "Wie kann Alplora meine Tiere verfolgen und ausfindig machen ?"
#: alplora/templates/alplora/index.html:206
msgid "" msgid ""
"Each animal will be wearing a small tracker,<P></P>and the tracker will be " "Each animal will be wearing a small tracker,<P></P>and the tracker will be "
"sending a signal every 30 to 60 minutes." "sending a signal every 30 to 60 minutes."
@ -156,33 +118,27 @@ msgstr ""
"Jedes Tier wird einen kleinen Sender tragen, <P></P> welcher alle 30 bis 60 " "Jedes Tier wird einen kleinen Sender tragen, <P></P> welcher alle 30 bis 60 "
"Minuten ein Signal senden wird." "Minuten ein Signal senden wird."
#: alplora/templates/alplora/index.html:215
msgid "Access app" msgid "Access app"
msgstr "Zugang zur App" msgstr "Zugang zur App"
#: alplora/templates/alplora/index.html:217
msgid "" msgid ""
"You can see the animal locations on a map by logging into our Alplora app." "You can see the animal locations on a map by logging into our Alplora app."
msgstr "" msgstr ""
"Du kannst den Standort deiner Tiere jederzeit auf einer Karte verfolgen, " "Du kannst den Standort deiner Tiere jederzeit auf einer Karte verfolgen, "
"indem du dich in unsere Alplora App einloggst." "indem du dich in unsere Alplora App einloggst."
#: alplora/templates/alplora/index.html:225
msgid "Get an alarm" msgid "Get an alarm"
msgstr "Erhalte ein Warnsignal" msgstr "Erhalte ein Warnsignal"
#: alplora/templates/alplora/index.html:227
msgid "" msgid ""
"When certain signals for danger are detected, Alplora sends an alarm to you." "When certain signals for danger are detected, Alplora sends an alarm to you."
msgstr "" msgstr ""
"Wenn Anzeichen von Gefahr bestehen, sendet dir die Alplora App einen " "Wenn Anzeichen von Gefahr bestehen, sendet dir die Alplora App einen "
"Warnsignal." "Warnsignal."
#: alplora/templates/alplora/index.html:235
msgid "Find your animal" msgid "Find your animal"
msgstr "Finde deine Tiere" msgstr "Finde deine Tiere"
#: alplora/templates/alplora/index.html:238
msgid "" msgid ""
"You can locate the animal in trouble on the realtime map and can take " "You can locate the animal in trouble on the realtime map and can take "
"actions for keeping the animal safe." "actions for keeping the animal safe."
@ -190,11 +146,9 @@ msgstr ""
"Du kannst dein Tier in Notsituationen auf einer Echtzeit-Karte lokalisieren " "Du kannst dein Tier in Notsituationen auf einer Echtzeit-Karte lokalisieren "
"und hast die Möglichkeit es in Sicherheit zu bringen." "und hast die Möglichkeit es in Sicherheit zu bringen."
#: alplora/templates/alplora/index.html:255
msgid "Perfect fit for Swiss mountains" msgid "Perfect fit for Swiss mountains"
msgstr "Perfekt für die Schweizer Alpen" msgstr "Perfekt für die Schweizer Alpen"
#: alplora/templates/alplora/index.html:257
msgid "" msgid ""
"Alplora is made and tested for Swiss Alps. It is a perfect fit for Swiss " "Alplora is made and tested for Swiss Alps. It is a perfect fit for Swiss "
"environment." "environment."
@ -202,11 +156,9 @@ msgstr ""
"Alplora wurde speziell für die Schweizer Alpen entwickelt und vor Ort " "Alplora wurde speziell für die Schweizer Alpen entwickelt und vor Ort "
"getestet. Das Produkt passt perfekt in die Schweiz!" "getestet. Das Produkt passt perfekt in die Schweiz!"
#: alplora/templates/alplora/index.html:263
msgid "Energy efficient" msgid "Energy efficient"
msgstr "Energieeffizient" msgstr "Energieeffizient"
#: alplora/templates/alplora/index.html:265
msgid "" msgid ""
"Alplora uses the latest wireless technology, our batteries last the whole " "Alplora uses the latest wireless technology, our batteries last the whole "
"alp season." "alp season."
@ -214,11 +166,9 @@ msgstr ""
"Alplora arbeitet mit den neuesten Technologien, so dass der Akku die gesamte " "Alplora arbeitet mit den neuesten Technologien, so dass der Akku die gesamte "
"Alpsaison überdauert." "Alpsaison überdauert."
#: alplora/templates/alplora/index.html:271
msgid "Made with love" msgid "Made with love"
msgstr "Mit Liebe gemacht" msgstr "Mit Liebe gemacht"
#: alplora/templates/alplora/index.html:273
msgid "" msgid ""
"With a lot of love and respect for Swiss agriculture and nature, Alplora is " "With a lot of love and respect for Swiss agriculture and nature, Alplora is "
"made by a Swiss company." "made by a Swiss company."
@ -226,61 +176,49 @@ msgstr ""
"Alplora wurde mit viel Liebe und Respekt für die Schweizer Natur und " "Alplora wurde mit viel Liebe und Respekt für die Schweizer Natur und "
"Landwirtschaft von einer Schweizer Firma entwickelt." "Landwirtschaft von einer Schweizer Firma entwickelt."
#: alplora/templates/alplora/index.html:285
msgid "Who needs Alplora?" msgid "Who needs Alplora?"
msgstr "Wer benötigt Alplora?" msgstr "Wer benötigt Alplora?"
#: alplora/templates/alplora/index.html:301
msgid " Are your animals..." msgid " Are your animals..."
msgstr "Sind deine Tiere..." msgstr "Sind deine Tiere..."
#: alplora/templates/alplora/index.html:304
msgid "sheep, goats, cows or llamas living freely in the Alps?" msgid "sheep, goats, cows or llamas living freely in the Alps?"
msgstr "Schafe, Ziegen, Kühe oder Lamas, die frei in den Alpen leben?" msgstr "Schafe, Ziegen, Kühe oder Lamas, die frei in den Alpen leben?"
#: alplora/templates/alplora/index.html:306
msgid "wearing bells?" msgid "wearing bells?"
msgstr "solche, die Glocken tragen?" msgstr "solche, die Glocken tragen?"
#: alplora/templates/alplora/index.html:308
msgid "" msgid ""
"sometimes getting confused and going too far away from where they are " "sometimes getting confused and going too far away from where they are "
"supposed to be?" "supposed to be?"
msgstr "" msgstr ""
"manchmal verwirrt und entfernen sich zu weit von ihrem vorgesehenen Standort?" "manchmal verwirrt und entfernen sich zu weit von ihrem vorgesehenen Standort?"
#: alplora/templates/alplora/index.html:332
msgid "Do you..." msgid "Do you..."
msgstr "Möchtest du..." msgstr "Möchtest du..."
#: alplora/templates/alplora/index.html:335
msgid "have animals which are staying outdoor during some time of the year?" msgid "have animals which are staying outdoor during some time of the year?"
msgstr "" msgstr ""
"deine Tiere, die eine längere Zeit im Jahr unbeobachtet Draussen verbringen, " "deine Tiere, die eine längere Zeit im Jahr unbeobachtet Draussen verbringen, "
"schützen und überwachen können?" "schützen und überwachen können?"
#: alplora/templates/alplora/index.html:337
msgid "want to get an alarm when your animal is hurt, or in danger?" msgid "want to get an alarm when your animal is hurt, or in danger?"
msgstr "" msgstr ""
"alarmiert werden, wenn sich eines deiner Tiere verletzt oder in Gefahr " "alarmiert werden, wenn sich eines deiner Tiere verletzt oder in Gefahr "
"befindet ?" "befindet ?"
#: alplora/templates/alplora/index.html:339
msgid "want to see where your animals are on your cell phone map?" msgid "want to see where your animals are on your cell phone map?"
msgstr "" msgstr ""
"mit deinem Smartphone auf einer Karte sehen können, wo sich deine Tiere " "mit deinem Smartphone auf einer Karte sehen können, wo sich deine Tiere "
"befinden? " "befinden? "
#: alplora/templates/alplora/index.html:341
msgid "want to make sure 24/7 that your animals are safe?" msgid "want to make sure 24/7 that your animals are safe?"
msgstr "" msgstr ""
"sicherstellen, dass sich deine Tiere rund um die Uhr in Sicherheit befinden?" "sicherstellen, dass sich deine Tiere rund um die Uhr in Sicherheit befinden?"
#: alplora/templates/alplora/index.html:359
msgid "What our customers say" msgid "What our customers say"
msgstr "" msgstr ""
#: alplora/templates/alplora/index.html:379
msgid "" msgid ""
"“Alplora is an innovation in looking after my cows. I can check where my " "“Alplora is an innovation in looking after my cows. I can check where my "
"cows have been in the higher mountain all day while doing other works at the " "cows have been in the higher mountain all day while doing other works at the "
@ -292,11 +230,9 @@ msgstr ""
"selben Zeit andereDinge auf dem Hof unten im Dorf erledigen. Dank Alplora " "selben Zeit andereDinge auf dem Hof unten im Dorf erledigen. Dank Alplora "
"kann ich meinen Kühenmehr Sicherheit gewährleisten." "kann ich meinen Kühenmehr Sicherheit gewährleisten."
#: alplora/templates/alplora/index.html:382
msgid "Farmer in canton Glarus" msgid "Farmer in canton Glarus"
msgstr "Bauern im Kanton Glarus" msgstr "Bauern im Kanton Glarus"
#: alplora/templates/alplora/index.html:388
msgid "" msgid ""
"\"Alplora is exactly what I was waiting for. I have lost my sheep almost " "\"Alplora is exactly what I was waiting for. I have lost my sheep almost "
"every year. Finally I have a way when I want to locate them.\"" "every year. Finally I have a way when I want to locate them.\""
@ -305,11 +241,9 @@ msgstr ""
"Schafe fastjedes Jahr aus den Augen verloren. Nun habe ich endlich die " "Schafe fastjedes Jahr aus den Augen verloren. Nun habe ich endlich die "
"Möglichkeit, sie zulokalisieren.\"" "Möglichkeit, sie zulokalisieren.\""
#: alplora/templates/alplora/index.html:391
msgid "Owner of 50 sheep " msgid "Owner of 50 sheep "
msgstr "Besitzerin von 50 Schafen" msgstr "Besitzerin von 50 Schafen"
#: alplora/templates/alplora/index.html:397
msgid "" msgid ""
"\"I have a farm down all the way down in the village and y goats are always " "\"I have a farm down all the way down in the village and y goats are always "
"freely grazing in the Alps. There are times that I am worried about them but " "freely grazing in the Alps. There are times that I am worried about them but "
@ -323,30 +257,23 @@ msgstr ""
"noch um meineanderen Tiere kümmern muss. Mit Alplora kann ich nun ohne " "noch um meineanderen Tiere kümmern muss. Mit Alplora kann ich nun ohne "
"Probleme beides tun.\"" "Probleme beides tun.\""
#: alplora/templates/alplora/index.html:401
msgid "Farmer at Berner Oberland" msgid "Farmer at Berner Oberland"
msgstr "Bauer aus dem Berner Oberland" msgstr "Bauer aus dem Berner Oberland"
#: alplora/templates/alplora/index.html:418
msgid "How do I get Alplora?" msgid "How do I get Alplora?"
msgstr "Wie kriege ich Zugriff zu Alplora?" msgstr "Wie kriege ich Zugriff zu Alplora?"
#: alplora/templates/alplora/index.html:419
msgid "Click the button below and leave us your contact." msgid "Click the button below and leave us your contact."
msgstr "Klicke unten auf Kontakt und hinterlasse uns deine Angaben." msgstr "Klicke unten auf Kontakt und hinterlasse uns deine Angaben."
#: alplora/templates/alplora/index.html:419
msgid "Team Alplora will contact you and visit you with a tracking device." msgid "Team Alplora will contact you and visit you with a tracking device."
msgstr "Das Alpora Team wird sich mit Dir schnellstens in Verbindung setzen." msgstr "Das Alpora Team wird sich mit Dir schnellstens in Verbindung setzen."
#: alplora/templates/alplora/index.html:459
msgid "Home" msgid "Home"
msgstr "Startseite" msgstr "Startseite"
#: alplora/templates/alplora/index.html:472
msgid "Testimonials " msgid "Testimonials "
msgstr "Referenzen" msgstr "Referenzen"
#: alplora/views.py:24
msgid "Message Successfully Sent" msgid "Message Successfully Sent"
msgstr "" msgstr ""

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-06 01:59+0530\n" "POT-Creation-Date: 2017-10-16 00:57+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -126,56 +126,57 @@ msgstr ""
msgid "Thank you!" msgid "Thank you!"
msgstr "Vielen Dank!" msgstr "Vielen Dank!"
msgid "Account Activation" msgid "Data Center Light Account Activation"
msgstr "Account Aktivierung" msgstr "Data Center Light Account Aktivierung"
#, python-format #, python-format
msgid "" msgid ""
"\n" "You can activate your Data Center Light account by clicking <a href="
"You can activate your Data Center Light account by <a href=\"%(base_url)s" "\"%(base_url)s%(activation_link)s\" style=\"text-decoration: none; color: "
"%(activation_link)s\">clicking here</a>.<br/>\n" "#4382c8; font-weight: 400;\">here</a>."
msgstr ""
"Klicke <a href=\"%(base_url)s%(activation_link)s\"style=\"text-decoration: "
"none; color: #4382c8; font-weight: 400;\">here</a> um deinen Data Center "
"Light Account zu aktivieren."
msgid ""
"You can also copy and paste the following link into the address bar of your " "You can also copy and paste the following link into the address bar of your "
"browser<br/>\n" "browser to activate your Data Center Light account."
"to activate your Data Center Light account.<br/>\n" msgstr "Kopiere den folgenden Link in die Adressleiste deines Browsers."
"%(base_url)s%(activation_link)s\n"
msgstr ""
"\n"
"<a href=\"%(base_url)s%(activation_link)s\">Klicke hier</a> um deinen Data "
"Center Light Account zu aktivieren oder kopiere den folgenden Link in die "
"Adressleiste deines Browsers.<br/>\n"
"%(base_url)s%(activation_link)s\n"
#, python-format msgid "Your account details are as follows"
msgid "" msgstr "Deine Account Details sind unten aufgelistet"
"Your account details are as follows:<br/><br/>\n"
"Username : Your email address<br/>\n"
"Password : %(account_details)s<br/><br/>\n"
"You can reset your password here:\n"
"%(base_url)s%(reset_password_url)s\n"
msgstr ""
#, python-format msgid "Username"
msgid "" msgstr "Username"
"You can activate your Data Center Light account by clicking here.\n"
"You can also copy and paste the following link into the address bar of your " msgid "Your email address"
"browser\n" msgstr "Deine E-Mail-Adresse"
"to activate your Data Center Light account.\n"
"%(base_url)s%(activation_link)s\n" msgid "Password"
msgstr "" msgstr "Passwort"
"Klicke hier, um deinen Data Center Light Account zu aktivieren oder kopiere "
"den folgenden Link in die Adressleiste deines Browsers.\n" msgid "You can reset your password here"
"%(base_url)s%(activation_link)s\n" msgstr "Du kannst dein Passwort hier zurück setzen"
#, python-format
msgid "" msgid ""
"Your account details are as follows:\n" "You can copy and paste the following link into the address bar of your "
"\n" "browser to activate your Data Center Light account."
"Username : Your email address\n" msgstr "Kopiere den folgenden Link in die Adressleiste deines Browsers."
"Password : %(account_details)s\n"
"\n" msgid "Welcome to Data Center Light!"
"You can reset your password here:\n" msgstr "Willkommen beim Data Center Light!"
"%(base_url)s%(reset_password_url)s\n"
msgstr "" msgid ""
"Thanks for joining us! We provide the most affordable virtual machines from "
"the heart of Switzerland."
msgstr "Bei uns findest Du die günstiges VMs aus der Schweiz."
msgid "Try now, order a VM. VM price starts from only 15CHF per month."
msgstr "Unser Angebot beginnt bei 15 CHF pro Monat. Probier's jetzt aus!"
msgid "ORDER VM"
msgstr "VM BESTELLEN"
msgid "Home" msgid "Home"
msgstr "Home" msgstr "Home"
@ -510,6 +511,15 @@ msgstr ""
#~ "ausgelöst, nachdem Du die Bestellung auf der nächsten Seite bestätigt " #~ "ausgelöst, nachdem Du die Bestellung auf der nächsten Seite bestätigt "
#~ "hast." #~ "hast."
#~ msgid "Processing..."
#~ msgstr "Abarbeitung..."
#~ msgid "Hold tight, we are processing your request"
#~ msgstr "Bitte warten - wir verbeiten Deine Anfrage gerade"
#~ msgid "Some problem encountered. Please try again later."
#~ msgstr "Ein Problem ist aufgetreten. Bitte versuche es später noch einmal."
#~ msgid "Submit" #~ msgid "Submit"
#~ msgstr "Absenden" #~ msgstr "Absenden"
@ -528,15 +538,6 @@ msgstr ""
#~ msgid "Order summary" #~ msgid "Order summary"
#~ msgstr "Bestellungsübersicht" #~ msgstr "Bestellungsübersicht"
#~ msgid "Processing..."
#~ msgstr "Abarbeitung..."
#~ msgid "Hold tight, we are processing your request"
#~ msgstr "Bitte warten - wir verbeiten Deine Anfrage gerade"
#~ msgid "Some problem encountered. Please try again later."
#~ msgstr "Ein Problem ist aufgetreten. Bitte versuche es später noch einmal."
#~ msgid "We are cutting down the costs significantly!" #~ msgid "We are cutting down the costs significantly!"
#~ msgstr "Wir sorgen dafür, dass die Kosten für Dich signifikant abnehmen" #~ msgstr "Wir sorgen dafür, dass die Kosten für Dich signifikant abnehmen"
@ -558,9 +559,6 @@ msgstr ""
#~ "kontaktiere uns unter support@datacenterlight.ch. Unser Team wird sich " #~ "kontaktiere uns unter support@datacenterlight.ch. Unser Team wird sich "
#~ "umgehend um dein Anliegen kümmern!" #~ "umgehend um dein Anliegen kümmern!"
#~ msgid "Email Address"
#~ msgstr "E-Mail-Adresse"
#~ msgid "is not a proper name" #~ msgid "is not a proper name"
#~ msgstr "ist kein gültiger Name" #~ msgstr "ist kein gültiger Name"

View file

@ -182,7 +182,11 @@ button, input, optgroup, select, textarea {
.navbar-brand { .navbar-brand {
padding: 10px 15px; padding: 10px 15px;
cursor: pointer; }
@media (max-width: 767px) {
.navbar-brand {
padding: 10px 10px;
}
} }
.navbar-right { .navbar-right {
@ -276,7 +280,7 @@ button, input, optgroup, select, textarea {
display: block; display: block;
} */ } */
.intro-header { .intro-header {
height: 100vh; min-height: 100vh;
text-align: center; text-align: center;
color: #fff; color: #fff;
background: url(../img/configure.jpg) no-repeat center center; background: url(../img/configure.jpg) no-repeat center center;
@ -718,6 +722,7 @@ button, input, optgroup, select, textarea {
/* color: #eee; /* color: #eee;
padding-bottom: 25px; padding-bottom: 25px;
text-align: right; */ text-align: right; */
/* color: #fff; */
} }
.contact-form .form-group { .contact-form .form-group {
@ -1543,7 +1548,7 @@ tech-sub-sec h2 {
} }
footer { footer {
padding: 50px 0; padding: 50px 20px;
background-color: #f8f8f8; background-color: #f8f8f8;
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View file

@ -5,6 +5,7 @@ from celery.utils.log import get_task_logger
from celery import current_task from celery import current_task
from django.conf import settings from django.conf import settings
from django.core.mail import EmailMessage from django.core.mail import EmailMessage
from django.core.urlresolvers import reverse
from django.utils import translation from django.utils import translation
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@ -131,9 +132,9 @@ def create_vm_task(self, vm_template_id, user, specs, template,
'storage': specs.get('disk_size'), 'storage': specs.get('disk_size'),
'price': specs.get('price'), 'price': specs.get('price'),
'template': template.get('name'), 'template': template.get('name'),
'vm.name': vm['name'], 'vm_name': vm.get('name'),
'vm.id': vm['vm_id'], 'vm_id': vm['vm_id'],
'order.id': order.id 'order_id': order.id
} }
email_data = { email_data = {
'subject': settings.DCL_TEXT + " Order from %s" % context['email'], 'subject': settings.DCL_TEXT + " Order from %s" % context['email'],
@ -155,13 +156,14 @@ def create_vm_task(self, vm_template_id, user, specs, template,
translation.activate(lang) translation.activate(lang)
# Send notification to the user as soon as VM has been booked # Send notification to the user as soon as VM has been booked
context = { context = {
'vm': vm,
'order': order,
'base_url': "{0}://{1}".format(user.get('request_scheme'), 'base_url': "{0}://{1}".format(user.get('request_scheme'),
user.get('request_host')), user.get('request_host')),
'order_url': reverse('hosting:orders',
kwargs={'pk': order.id}),
'page_header': _( 'page_header': _(
'Your New VM %(vm_name)s at Data Center Light') % { 'Your New VM %(vm_name)s at Data Center Light') % {
'vm_name': vm.get('name')} 'vm_name': vm.get('name')},
'vm_name': vm.get('name')
} }
email_data = { email_data = {
'subject': context.get('page_header'), 'subject': context.get('page_header'),

View file

@ -26,6 +26,8 @@
<!-- Custom CSS --> <!-- Custom CSS -->
<link href="{% static 'datacenterlight/css/landing-page.css' %}" rel="stylesheet"> <link href="{% static 'datacenterlight/css/landing-page.css' %}" rel="stylesheet">
{% block css_extra %}
{% endblock css_extra %}
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- 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:// --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
@ -42,7 +44,9 @@
<body> <body>
<!-- Navigation --> <!-- Navigation -->
{% block navbar %}
{% include "datacenterlight/includes/_navbar.html" %} {% include "datacenterlight/includes/_navbar.html" %}
{% endblock navbar %}
{% block content %} {% block content %}

View file

@ -1,24 +1,58 @@
{% extends "datacenterlight/emails/base_email_datacenterlight.html" %} {% load static i18n %}
{% load static from staticfiles %} <!DOCTYPE html>
{% load i18n %} <html>
{% block email_head %}
{{dcl_text}} {% trans 'Account Activation' %} <head>
{% endblock %} <meta charset="UTF-8">
{% block email_body %} <meta name="viewport" content="width=device-width, initial-scale=1">
{% blocktrans %} <title>{% trans "Data Center Light Account Activation" %}</title>
You can activate your Data Center Light account by <a href="{{base_url}}{{activation_link}}">clicking here</a>.<br/> <link rel="shortcut icon" href="{{ base_url }}{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon">
You can also copy and paste the following link into the address bar of your browser<br/> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400">
to activate your Data Center Light account.<br/> </head>
<body style="margin: 0; padding: 20px 0;">
<table style="width: 100%; border-spacing: 0; border-collapse: collapse; max-width: 560px;">
<tr>
<td>
<img src="{{ base_url }}{% static 'datacenterlight/img/logo_black.png' %}" style="width: 200px; height: 50px;">
</td>
</tr>
<tr>
<td style="padding-top: 15px;">
<h1 style="font-family: Lato, Arial, sans-serif; font-size: 25px; font-weight: 400; margin: 0;">{% trans "Data Center Light Account Activation" %}</h1>
</td>
</tr>
<tr>
<td style="padding-top: 25px; font-size: 16px;">
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin-bottom: 10px; margin-top: 0;">
{% blocktrans %}You can activate your Data Center Light account by clicking <a href="{{base_url}}{{activation_link}}" style="text-decoration: none; color: #4382c8; font-weight: 400;">here</a>.{% endblocktrans %}
</p>
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin-bottom: 10px; margin-top: 0;">
{% blocktrans %}You can also copy and paste the following link into the address bar of your browser to activate your Data Center Light account.{% endblocktrans %}
</p>
<p style="color: #4382c8; line-height: 1.4; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{{base_url}}{{activation_link}} {{base_url}}{{activation_link}}
{% endblocktrans %} </p>
<p>
{% if account_details %} {% if account_details %}
{% url 'hosting:reset_password' as reset_password_url %} {% url 'hosting:reset_password' as reset_password_url %}
<br/><br/> {% trans "Your account details are as follows" %}:
{% blocktrans %}Your account details are as follows:<br/><br/>
Username : Your email address<br/> {% trans "Username" %} : {% trans "Your email address" %}
Password : {{account_details}}<br/><br/> {% trans "Password" %} : {{account_details}}
You can reset your password here:
{% trans "You can reset your password here" %}:
{{base_url}}{{reset_password_url}} {{base_url}}{{reset_password_url}}
{% endblocktrans %}
{% endif %} {% endif %}
{% endblock %} </p>
</td>
</tr>
<tr>
<td style="padding-top: 40px; padding-bottom: 25px;">
<h3 style="font-family: Lato, Arial, sans-serif; margin: 0; font-weight: 400; font-size: 15px;">{% trans "Your Data Center Light Team" %}</h3>
</td>
</tr>
</table>
</body>
</html>

View file

@ -1,21 +1,20 @@
{% extends "datacenterlight/emails/base_email_datacenterlight.txt" %}
{% load i18n %} {% load i18n %}
{% block email_head %}{{dcl_text}} {% trans 'Account Activation' %}{% endblock %}
{% block email_body %} {% trans "Data Center Light Account Activation" %}
{% blocktrans %}You can activate your Data Center Light account by clicking here.
You can also copy and paste the following link into the address bar of your browser {% blocktrans %}You can copy and paste the following link into the address bar of your browser to activate your Data Center Light account.{% endblocktrans %}
to activate your Data Center Light account.
{{base_url}}{{activation_link}} {{base_url}}{{activation_link}}
{% endblocktrans %}
{% if account_details %} {% if account_details %}
{% url 'hosting:reset_password' as reset_password_url %} {% url 'hosting:reset_password' as reset_password_url %}
{% blocktrans %}Your account details are as follows: {% trans "Your account details are as follows" %}:
Username : Your email address {% trans "Username" %} : {% trans "Your email address" %}
Password : {{account_details}} {% trans "Password" %} : {{account_details}}
You can reset your password here: {% trans "You can reset your password here" %}:
{{base_url}}{{reset_password_url}} {{base_url}}{{reset_password_url}}
{% endblocktrans %}
{% endif %} {% endif %}
{% endblock %}
{% trans "Your Data Center Light Team" %}

View file

@ -0,0 +1,48 @@
{% load static i18n %}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% trans "Welcome to Data Center Light!" %}</title>
<link rel="shortcut icon" href="{{ base_url }}{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400">
</head>
<body style="margin: 0; padding: 20px 0;">
<table style="width: 100%; border-spacing: 0; border-collapse: collapse; max-width: 560px;">
<tr>
<td>
<img src="{{ base_url }}{% static 'datacenterlight/img/logo_black.png' %}" style="width: 200px; height: 50px;">
</td>
</tr>
<tr>
<td style="padding-top: 15px;">
<h1 style="font-family: Lato, Arial, sans-serif; font-size: 25px; font-weight: 400; margin: 0;">{% trans "Welcome to Data Center Light!" %}</h1>
</td>
</tr>
<tr>
<td style="padding-top: 25px; font-size: 16px;">
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{% blocktrans %}Thanks for joining us! We provide the most affordable virtual machines from the heart of Switzerland.{% endblocktrans %}
</p>
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{% blocktrans %}Try now, order a VM. VM price starts from only 15CHF per month.{% endblocktrans %}
</p>
</td>
</tr>
<tr>
<td style="padding-top: 30px;">
<a class="btn" href="{{ base_url }}{% url 'hosting:create_virtual_machine' %}" style="font-family: Lato, Arial, sans-serif; text-decoration: none; background-color: #1596da; color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 30px; padding-right: 30px; letter-spacing: 0.5px; border-radius: 3px; display: inline-block;">{% trans "ORDER VM" %}</a>
</td>
</tr>
<tr>
<td style="padding-top: 40px; padding-bottom: 25px;">
<h3 style="font-family: Lato, Arial, sans-serif; margin: 0; font-weight: 400; font-size: 15px;">{% trans "Your Data Center Light Team" %}</h3>
</td>
</tr>
</table>
</body>
</html>

View file

@ -0,0 +1,10 @@
{% load i18n %}
{% trans "Welcome to Data Center Light!" %}
{% blocktrans %}Thanks for joining us! We provide the most affordable virtual machines from the heart of Switzerland.{% endblocktrans %}
{% blocktrans %}Try now, order a VM. VM price starts from only 15CHF per month.{% endblocktrans %}
{{ base_url }}{% url 'hosting:create_virtual_machine' %}
{% trans "Your Data Center Light Team" %}

View file

@ -1,5 +1,6 @@
{% load staticfiles i18n%} {% load staticfiles i18n%}
{% get_current_language as LANGUAGE_CODE %} {% get_current_language as LANGUAGE_CODE %}
<footer> <footer>
<div class="container"> <div class="container">
<ul class="list-inline"> <ul class="list-inline">

View file

@ -25,14 +25,15 @@
<h3>{%trans "Log in" %}</h3> <h3>{%trans "Log in" %}</h3>
<hr class="top-hr"> <hr class="top-hr">
<p style="margin-bottom: 20px;">{% blocktrans %}Already signed up?<br>By logging in you can retrieve saved billing information.{% endblocktrans %}</p> <p style="margin-bottom: 20px;">{% blocktrans %}Already signed up?<br>By logging in you can retrieve saved billing information.{% endblocktrans %}</p>
<form role="form" id="login-form" method="post" action="{% url 'hosting:login' %}" novalidate> <form role="form" id="login-form" method="post" action="" novalidate>
{% for field in login_form %} {% for field in login_form %}
{% csrf_token %} {% csrf_token %}
{% bootstrap_field field show_label=False type='fields'%} {% bootstrap_field field show_label=False type='fields'%}
{% endfor %} {% endfor %}
<p class="text-danger">{{login_form.non_field_errors|striptags}}</p>
<input type='hidden' name='next' value='{{request.path}}'/> <input type='hidden' name='next' value='{{request.path}}'/>
<div class="form-group text-right"> <div class="form-group text-right">
<button type="submit" class="btn btn-wide btn-vm-contact">{% trans "LOGIN" %}</button> <button type="submit" class="btn btn-wide btn-vm-contact" name="login_form">{% trans "LOGIN" %}</button>
</div> </div>
</form> </form>
<p> <p>
@ -58,7 +59,7 @@
{% endfor %} {% endfor %}
<form role="form" id="billing-form" method="post" action="" novalidate> <form role="form" id="billing-form" method="post" action="" novalidate>
{% csrf_token %} {% csrf_token %}
{% for field in form %} {% for field in billing_address_form %}
{% bootstrap_field field show_label=False type='fields'%} {% bootstrap_field field show_label=False type='fields'%}
{% endfor %} {% endfor %}
</form> </form>

View file

@ -1,9 +1,13 @@
from django.conf.urls import url from django.conf.urls import url
from .views import IndexView, BetaProgramView, LandingProgramView, \ from .views import (
BetaAccessView, SuccessView, \ IndexView, BetaProgramView, LandingProgramView, BetaAccessView,
PaymentOrderView, OrderConfirmationView, \ SuccessView, PaymentOrderView, OrderConfirmationView,
WhyDataCenterLightView, ContactUsView WhyDataCenterLightView, ContactUsView
)
from django.views.generic import TemplateView
urlpatterns = [ urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'), url(r'^$', IndexView.as_view(), name='index'),
@ -21,4 +25,8 @@ urlpatterns = [
url(r'^order-success/?$', SuccessView.as_view(), name='order_success'), url(r'^order-success/?$', SuccessView.as_view(), name='order_success'),
url(r'^beta_access?$', BetaAccessView.as_view(), name='beta_access'), url(r'^beta_access?$', BetaAccessView.as_view(), name='beta_access'),
url(r'^contact/?$', ContactUsView.as_view(), name='contact_us'), url(r'^contact/?$', ContactUsView.as_view(), name='contact_us'),
url(r'glasfaser/?$',
TemplateView.as_view(template_name='ungleich_page/glasfaser.html'),
name='glasfaser'),
] ]

View file

@ -49,13 +49,17 @@ class ContactUsView(FormView):
def form_valid(self, form): def form_valid(self, form):
form.save() form.save()
from_emails = {
'glasfaser': 'glasfaser@ungleich.ch'
}
from_page = self.request.POST.get('from_page')
email_data = { email_data = {
'subject': "{dcl_text} Message from {sender}".format( 'subject': "{dcl_text} Message from {sender}".format(
dcl_text=settings.DCL_TEXT, dcl_text=settings.DCL_TEXT,
sender=form.cleaned_data.get('email') sender=form.cleaned_data.get('email')
), ),
'from_email': settings.DCL_SUPPORT_FROM_ADDRESS, 'from_email': settings.DCL_SUPPORT_FROM_ADDRESS,
'to': ['info@ungleich.ch'], 'to': [from_emails.get(from_page, 'info@ungleich.ch')],
'body': "\n".join( 'body': "\n".join(
["%s=%s" % (k, v) for (k, v) in form.cleaned_data.items()]), ["%s=%s" % (k, v) for (k, v) in form.cleaned_data.items()]),
'reply_to': [form.cleaned_data.get('email')], 'reply_to': [form.cleaned_data.get('email')],
@ -341,26 +345,45 @@ class PaymentOrderView(FormView):
else: else:
return BillingAddressFormSignup return BillingAddressFormSignup
def get_form_kwargs(self):
form_kwargs = super(PaymentOrderView, self).get_form_kwargs()
# if user is signed in, get billing address
if self.request.user.is_authenticated():
form_kwargs.update({
'instance': self.request.user.billing_addresses.first()
})
if 'billing_address_data' in self.request.session:
billing_address_data = self.request.session['billing_address_data']
form_kwargs.update({
'initial': billing_address_data
})
return form_kwargs
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(PaymentOrderView, self).get_context_data(**kwargs) context = super(PaymentOrderView, self).get_context_data(**kwargs)
if 'billing_address_data' in self.request.session:
billing_address_data = self.request.session['billing_address_data']
else:
billing_address_data = {}
if self.request.user.is_authenticated():
if billing_address_data:
billing_address_form = BillingAddressForm(
initial=billing_address_data
)
else:
billing_address_form = BillingAddressForm(
instance=self.request.user.billing_addresses.first()
)
# Get user last order
last_hosting_order = HostingOrder.objects.filter(
customer__user=self.request.user
).last()
# If user has already an hosting order, get the credit card
# data from it
if last_hosting_order:
credit_card_data = last_hosting_order.get_cc_data()
if credit_card_data:
context['credit_card_data'] = credit_card_data
else:
context['credit_card_data'] = None
else:
billing_address_form = BillingAddressFormSignup(
initial=billing_address_data
)
context.update({ context.update({
'stripe_key': settings.STRIPE_API_PUBLIC_KEY, 'stripe_key': settings.STRIPE_API_PUBLIC_KEY,
'site_url': reverse('datacenterlight:index'), 'site_url': reverse('datacenterlight:index'),
'login_form': HostingUserLoginForm() 'login_form': HostingUserLoginForm(prefix='login_form'),
'billing_address_form': billing_address_form
}) })
return context return context
@ -372,9 +395,32 @@ class PaymentOrderView(FormView):
return self.render_to_response(self.get_context_data()) return self.render_to_response(self.get_context_data())
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
form = self.get_form() if 'login_form' in request.POST:
if form.is_valid(): login_form = HostingUserLoginForm(data=request.POST,
token = form.cleaned_data.get('token') prefix='login_form')
if login_form.is_valid():
email = login_form.cleaned_data.get('email')
password = login_form.cleaned_data.get('password')
auth_user = authenticate(email=email, password=password)
if auth_user:
login(self.request, auth_user)
return HttpResponseRedirect(
reverse('datacenterlight:payment')
)
else:
context = self.get_context_data()
context['login_form'] = login_form
return self.render_to_response(context)
if request.user.is_authenticated():
address_form = BillingAddressForm(
data=request.POST,
)
else:
address_form = BillingAddressFormSignup(
data=request.POST,
)
if address_form.is_valid():
token = address_form.cleaned_data.get('token')
if request.user.is_authenticated(): if request.user.is_authenticated():
this_user = { this_user = {
'email': request.user.email, 'email': request.user.email,
@ -384,8 +430,8 @@ class PaymentOrderView(FormView):
email=this_user.get('email'), email=this_user.get('email'),
token=token) token=token)
else: else:
user_email = form.cleaned_data.get('email') user_email = address_form.cleaned_data.get('email')
user_name = form.cleaned_data.get('name') user_name = address_form.cleaned_data.get('name')
this_user = { this_user = {
'email': user_email, 'email': user_email,
'name': user_name 'name': user_name
@ -418,13 +464,18 @@ class PaymentOrderView(FormView):
token=token, token=token,
customer_name=user_name) customer_name=user_name)
request.session['billing_address_data'] = form.cleaned_data request.session['billing_address_data'] = address_form.cleaned_data
request.session['user'] = this_user request.session['user'] = this_user
# Get or create stripe customer # Get or create stripe customer
if not customer: if not customer:
form.add_error("__all__", "Invalid credit card") address_form.add_error(
"__all__", "Invalid credit card"
)
return self.render_to_response( return self.render_to_response(
self.get_context_data(form=form)) self.get_context_data(
billing_address_form=address_form
)
)
request.session['token'] = token request.session['token'] = token
if type(customer) is StripeCustomer: if type(customer) is StripeCustomer:
request.session['customer'] = customer.stripe_id request.session['customer'] = customer.stripe_id
@ -433,7 +484,9 @@ class PaymentOrderView(FormView):
return HttpResponseRedirect( return HttpResponseRedirect(
reverse('datacenterlight:order_confirmation')) reverse('datacenterlight:order_confirmation'))
else: else:
return self.form_invalid(form) context = self.get_context_data()
context['billing_address_form'] = address_form
return self.render_to_response(context)
class OrderConfirmationView(DetailView): class OrderConfirmationView(DetailView):
@ -544,9 +597,13 @@ class OrderConfirmationView(DetailView):
try: try:
custom_user = CustomUser.objects.get( custom_user = CustomUser.objects.get(
email=user.get('email')) email=user.get('email'))
customer = StripeCustomer.objects.filter( stripe_customer = StripeCustomer.objects.filter(
user_id=custom_user.id).first() user_id=custom_user.id).first()
stripe_customer_id = customer.id if stripe_customer is None:
stripe_customer = StripeCustomer.objects.create(
user=custom_user, stripe_id=stripe_api_cus_id
)
stripe_customer_id = stripe_customer.id
except CustomUser.DoesNotExist: except CustomUser.DoesNotExist:
logger.debug( logger.debug(
"Customer {} does not exist.".format(user.get('email'))) "Customer {} does not exist.".format(user.get('email')))

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,9 @@ from django.conf.urls.static import static
from django.views import i18n, static as static_view from django.views import i18n, static as static_view
from django.conf import settings from django.conf import settings
from hosting.views import RailsHostingView, DjangoHostingView, NodeJSHostingView from hosting.views import (
RailsHostingView, DjangoHostingView, NodeJSHostingView
)
from membership import urls as membership_urls from membership import urls as membership_urls
from ungleich_page.views import LandingView from ungleich_page.views import LandingView
from django.views.generic import RedirectView from django.views.generic import RedirectView

View file

@ -29,6 +29,8 @@ class HostingUserLoginForm(forms.Form):
def clean(self): def clean(self):
email = self.cleaned_data.get('email') email = self.cleaned_data.get('email')
password = self.cleaned_data.get('password') password = self.cleaned_data.get('password')
if self.errors:
return self.cleaned_data
is_auth = authenticate(email=email, password=password) is_auth = authenticate(email=email, password=password)
if not is_auth: if not is_auth:
raise forms.ValidationError( raise forms.ValidationError(

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-06 01:59+0530\n" "POT-Creation-Date: 2017-10-16 01:06+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -155,9 +155,6 @@ msgstr "Ich möchte einen existierenden SSH-Key nutzen"
msgid "Upload" msgid "Upload"
msgstr "Hochladen" msgstr "Hochladen"
msgid "Your VM hosted in Switzerland"
msgstr "Deine VM in der Schweiz"
msgid "Set your new password" msgid "Set your new password"
msgstr "Setze Dein neues Passwort" msgstr "Setze Dein neues Passwort"
@ -195,101 +192,78 @@ msgid "Support / Contact"
msgstr "Support / Kontakt" msgstr "Support / Kontakt"
#, python-format #, python-format
msgid "" msgid "Your New VM %(vm_name)s"
"You have ordered a new virtual machine!\n" msgstr "Deine Neue VM %(vm_name)s"
"<br/>\n"
"Your order of [%(vm_name)s] has been charged.<br/><br/>\n"
"You can view your invoice by clicking the button below.<br/><br/>\n"
msgstr ""
"Du hast eine neue virtuelle Maschine bestellt!<br/>\n"
"Deine Bestellung von [%(vm_name)s] wurde erhoben.<br/><br/>\n"
"Um die Rechnung zu sehen, klicke auf den Button unten.<br/><br/>\n"
msgid "View Invoice" msgid "You have ordered a new virtual machine!"
msgstr "Zur Rechnung" msgstr "Du hast eine neue virtuelle Maschine bestellt!"
#, python-format #, python-format
msgid "" msgid "Your order of <strong>%(vm_name)s</strong> has been charged."
"You have ordered a new virtual machine!\n" msgstr "Deine Bestellung von <strong>%(vm_name)s</strong> wurde erhoben."
"Your order of [%(vm_name)s] has been charged.\n"
"You can view your invoice here.\n" msgid "You can view your VM detail by clicking the button below."
msgstr "" msgstr "Um die Rechnung zu sehen, klicke auf den Button unten."
"Du hast eine neue virtuelle Maschine bestellt!\n"
"Deine Bestellung von [%(vm_name)s] wurde erhoben.\n" msgid "View Detail"
"Um die Rechnung zu sehen, klicke hier.\n" msgstr "Details anzeigen"
msgid "Your Data Center Light Team"
msgstr "Dein Data Center Light Team"
#, python-format
msgid "Your order of %(vm_name)s has been charged."
msgstr "Deine Bestellung von %(vm_name)s wurde erhoben."
msgid "You can view your VM detail by following the link below."
msgstr "Um die Rechnung zu sehen, klicke auf den Link unten."
msgid "Password Reset" msgid "Password Reset"
msgstr "Passwort zurücksetzen" msgstr "Passwort zurücksetzen"
#, python-format msgid "We received a request to reset your password."
msgid "" msgstr "Wir haben eine Anfrage erhalten, um Dein Passwort zurückzusetzen."
"\n"
"You're receiving this email because you requested a password reset for your " msgid "If you didn't make this request you can safely ignore this email."
"user account at %(site_name)s.<br/>\n"
"Please go to the following page and choose a new password: %(base_url)s"
"%(password_reset_url)s<br/>\n"
"If you didn't request a new password, ignore this e-mail.<br/>\n"
"Thank you!\n"
msgstr "" msgstr ""
"\n" "Falls Du kein neues Passwort angefragt hast, kannst Du diese E-mail "
"Du erhälst diese E-Mail da Du Dein Passwort für Deinen Account bei " "ignorieren."
"%(site_name)s zurücksetzen möchtest.<br/>\n"
"Bitte folge diesem Link und wähle ein neues Passwort: %(base_url)s" msgid "Otherwise, click here to reset your password."
"%(password_reset_url)s Solltest Du kein neues Passwort angefordert haben, " msgstr "Andernfalls klicke hier, um Dein Passwort zurückzusetzen."
"dann ignoriere diese E-Mail.<br/>\n"
"Dankeschön!\n" msgid "Thank you!"
msgstr "Dankeschön!"
msgid "Virtual Machine Cancellation"
msgstr "VM Kündigung"
#, python-format #, python-format
msgid "" msgid ""
"You're receiving this email because you requested a password reset for your " "You are receiving this email because your virutal machine <strong>"
"user account at %(site_name)s.\n" "%(vm_name)s</strong> has been cancelled."
"Please go to the following page and choose a new password: %(base_url)s"
"%(password_reset_url)s\n"
"If you didn't request a new password, ignore this e-mail.\n"
"Thank you!\n"
msgstr "" msgstr ""
"Du erhälst diese E-Mail da Du Dein Passwort für Deinen Account bei " "Du erhälst diese E-Mail, da deine virtuelle Maschine <strong>%(vm_name)s</"
"%(site_name)s zurücksetzen möchtest.\n" "strong> gekündigt wurde."
"Bitte folge diesem Link und wähle ein neues Passwort: %(base_url)s"
"%(password_reset_url)s Solltest Du kein neues Passwort angefordert haben, " msgid "You can always order a new VM by clicking the button below."
"dann ignoriere diese E-Mail.\n" msgstr ""
"Dankeschön!\n" "Du kannst einfach eine neue VM bestellen, indem Du den Knopf weiter unten "
"drückst."
msgid "CREATE VM"
msgstr "NEUE VM"
#, python-format #, python-format
msgid "" msgid ""
"You're receiving this mail because your virtual machine [%(vm_name)s] has " "You are receiving this email because your virutal machine %(vm_name)s has "
"been cancelled.<br/>\n" "been cancelled."
"You can see your order status by clicking [my VM page] below.<br/>\n"
"If you want to order a new virtual machine, you can do it by clicking <a "
"href=\"%(base_url)s%(my_virtual_machines_url)s\">this link</a>.<br/>\n"
msgstr "" msgstr ""
"Du erhälst diese E-Mail, Da Deine virtuelle Maschine [%(vm_name)s] gekündigt " "Du erhälst diese E-Mail, da deine virtuelle Maschine %(vm_name)s gekündigt "
"wurde.<br/>\n" "wurde."
"Um Deinen Auftragsstatus zu sehen, klicke auf die [my VM page] unten.<br/>\n"
"Falls Du eine neue virtuelle Maschine bestellen möchtest, kannst Du dies "
"tun, indem Du <a href=\"%(base_url)s%(my_virtual_machines_url)s\">diesen "
"Link klickst</a>.<br/>\n"
msgid "My VM page" msgid "You can always order a new VM by following the link below."
msgstr "Meine VM page"
#, python-format
msgid ""
"You're receiving this mail because your virtual machine [%(vm_name)s] has "
"been cancelled.\n"
"You can see your order status by clicking here\n"
"%(base_url)s%(vm_order_url)s\n"
"If you want to order a new virtual machine, you can do it by clicking this "
"link.\n"
"%(base_url)s%(my_virtual_machines_url)s\n"
msgstr "" msgstr ""
"Du erhälst diese E-Mail, da Deine virtuelle Maschine [%(vm_name)s] gekündigt "
"wurde.\n"
"Um Deinen Auftragsstatus zu sehen, klicke hier.\n"
"%(base_url)s%(vm_order_url)s\n"
"Falls Du eine neue virtuelle Maschine bestellen möchtest, kannst Du dies "
"tun, indem Du diesen Link klickst.\n"
"%(base_url)s%(my_virtual_machines_url)s\n"
msgid "Card Number" msgid "Card Number"
msgstr "Kreditkartennummer" msgstr "Kreditkartennummer"
@ -322,6 +296,9 @@ msgstr "Dashboard"
msgid "Logout" msgid "Logout"
msgstr "Abmelden" msgstr "Abmelden"
msgid "Log in"
msgstr "Anmelden"
msgid "Don't have an account yet ?" msgid "Don't have an account yet ?"
msgstr "Besitzt du kein Benutzerkonto?" msgstr "Besitzt du kein Benutzerkonto?"
@ -485,7 +462,7 @@ msgstr "Deine Kreditkartennummer"
msgid "Submit" msgid "Submit"
msgstr "Absenden" msgstr "Absenden"
msgid "Reset your password" msgid "Password reset"
msgstr "Passwort zurücksetzen" msgstr "Passwort zurücksetzen"
msgid "UPDATE" msgid "UPDATE"
@ -652,12 +629,6 @@ msgstr ""
"Um auf Deine VM zuzugreifen, <a href=\"%(create_ssh_url)s\">füge Deinen SSH-" "Um auf Deine VM zuzugreifen, <a href=\"%(create_ssh_url)s\">füge Deinen SSH-"
"Key hinzu</a>" "Key hinzu</a>"
msgid "CREATE VM"
msgstr "NEUE VM"
msgid "View Detail"
msgstr "Details anzeigen"
msgid "login" msgid "login"
msgstr "anmelden" msgstr "anmelden"
@ -682,6 +653,9 @@ msgstr "Dein Account wurde aktiviert."
msgid "You can now" msgid "You can now"
msgstr "Du kannst dich nun" msgstr "Du kannst dich nun"
msgid "Welcome to Data Center Light!"
msgstr "Willkommen beim Data Center Light!"
msgid "Sorry. Your request is invalid." msgid "Sorry. Your request is invalid."
msgstr "Entschuldigung, deine Anfrage ist ungültig." msgstr "Entschuldigung, deine Anfrage ist ungültig."
@ -752,14 +726,21 @@ msgstr ""
msgid "Error terminating VM" msgid "Error terminating VM"
msgstr "Fehler beenden VM" msgstr "Fehler beenden VM"
msgid "Virtual Machine Cancellation" #, python-format
msgstr "VM Kündigung" msgid "Virtual Machine %(vm_name)s Cancelled"
msgstr "Virtuelle Maschine %(vm_name)s Kündigung"
msgid "There was an error processing your request. Please try again." msgid "There was an error processing your request. Please try again."
msgstr "" msgstr ""
"Es gab einen Fehler bei der Bearbeitung Deine Anfrage. Bitte versuche es " "Es gab einen Fehler bei der Bearbeitung Deine Anfrage. Bitte versuche es "
"noch einmal." "noch einmal."
#~ msgid "Reset your password"
#~ msgstr "Passwort zurücksetzen"
#~ msgid "My VM page"
#~ msgstr "Meine VM page"
#~ msgid "Invoice Date" #~ msgid "Invoice Date"
#~ msgstr "Rechnung Datum" #~ msgstr "Rechnung Datum"
@ -787,12 +768,27 @@ msgstr ""
#~ msgid "Start VM" #~ msgid "Start VM"
#~ msgstr "VM jetzt starten" #~ msgstr "VM jetzt starten"
#~ msgid "View Invoice"
#~ msgstr "Zur Rechnung"
#~ msgid ""
#~ "You're receiving this mail because your virtual machine [%(vm_name)s] has "
#~ "been cancelled.<br/>\n"
#~ "You can see your order status by clicking [my VM page] below.<br/>\n"
#~ "If you want to order a new virtual machine, you can do it by clicking <a "
#~ "href=\"%(base_url)s%(my_virtual_machines_url)s\">this link</a>.<br/>\n"
#~ msgstr ""
#~ "Du erhälst diese E-Mail, da deine virtuelle Maschine [%(vm_name)s] "
#~ "gekündigt wurde.<br/>\n"
#~ "Um deinen Auftragsstatus zu sehen, klicke auf die [my VM page] unten.<br/"
#~ ">\n"
#~ "Falls du eine neue virtuelle Maschine bestellen möchtest, kannst du dies "
#~ "tun, indem du <a href=\"%(base_url)s%(my_virtual_machines_url)s\">diesen "
#~ "Link klickst</a>.<br/>\n"
#~ msgid "Finish Configuration" #~ msgid "Finish Configuration"
#~ msgstr "Konfiguration beenden" #~ msgstr "Konfiguration beenden"
#~ msgid "Your New VM %(vm_name)s at Data Center Light"
#~ msgstr "Deine neue VM %(vm_name)s bei Data Center Light"
#~ msgid "My Virtual Machines" #~ msgid "My Virtual Machines"
#~ msgstr "Meine virtuellen Maschinen" #~ msgstr "Meine virtuellen Maschinen"
@ -841,9 +837,6 @@ msgstr ""
#~ msgid "Keys" #~ msgid "Keys"
#~ msgstr "Keys" #~ msgstr "Keys"
#~ msgid "Log in"
#~ msgstr "Anmelden"
#~ msgid "You haven been logged out" #~ msgid "You haven been logged out"
#~ msgstr "Du wurdest abgemeldet" #~ msgstr "Du wurdest abgemeldet"

View file

@ -1,7 +1,9 @@
import os import os
import logging import logging
from dateutil.relativedelta import relativedelta
from django.db import models from django.db import models
from django.utils import timezone
from django.utils.functional import cached_property from django.utils.functional import cached_property
from Crypto.PublicKey import RSA from Crypto.PublicKey import RSA
from membership.models import StripeCustomer, CustomUser from membership.models import StripeCustomer, CustomUser
@ -172,3 +174,9 @@ class VMDetail(models.Model):
ipv6 = models.TextField(default='') ipv6 = models.TextField(default='')
created_at = models.DateTimeField(auto_now_add=True) created_at = models.DateTimeField(auto_now_add=True)
terminated_at = models.DateTimeField(null=True) terminated_at = models.DateTimeField(null=True)
def end_date(self):
end_date = self.terminated_at if self.terminated_at else timezone.now()
months = relativedelta(end_date, self.created_at).months or 1
end_date = self.created_at + relativedelta(months=months, days=-1)
return end_date

View file

@ -18,7 +18,7 @@
} }
.content-dashboard{ .content-dashboard{
min-height: calc(100vh - 70px); min-height: calc(100vh - 60px);
width: 80%; width: 80%;
margin: 0 auto; margin: 0 auto;
max-width: 1120px; max-width: 1120px;
@ -66,7 +66,9 @@
width: 280px; width: 280px;
} }
.content-dashboard { .content-dashboard {
width: 90%; padding-left: 15px;
padding-right: 15px;
width: 100%;
} }
} }
.btn:focus, .btn:active:focus { .btn:focus, .btn:active:focus {
@ -296,10 +298,6 @@
max-width: 360px; max-width: 360px;
} }
.btn-wide {
min-width: 100px;
}
.caps-link { .caps-link {
font-weight: 600; font-weight: 600;
color: #8da4c0; color: #8da4c0;
@ -396,3 +394,11 @@
.thick-hr { .thick-hr {
border-top: 5px solid #eee; border-top: 5px solid #eee;
} }
.locale_date {
opacity: 0;
}
.locale_date.done{
opacity: 1;
}

View file

@ -17,9 +17,11 @@ h3,
h4, h4,
h5, h5,
h6 { h6 {
/*font-family: 'Lato-Regular', sans-serif;*/
font-family: 'Lato', sans-serif; font-family: 'Lato', sans-serif;
/*font-weight: 300;*/ }
.allcaps {
text-transform: uppercase;
} }
.topnav { .topnav {
@ -31,6 +33,11 @@ h6 {
.navbar-brand { .navbar-brand {
padding: 10px 15px; padding: 10px 15px;
} }
@media (max-width: 767px) {
.navbar-brand {
padding: 10px 0;
}
}
.navbar-default { .navbar-default {
background: #fff; background: #fff;
@ -46,7 +53,7 @@ h6 {
.navbar-transparent { .navbar-transparent {
background: transparent; background: transparent;
border: none; border: none;
padding: 20px; padding: 20px 0;
box-shadow: none; box-shadow: none;
} }
@ -72,7 +79,6 @@ h6 {
.navbar-transparent #logoWhite{ .navbar-transparent #logoWhite{
display: block; display: block;
width: 220px; width: 220px;
/* color: #fff; */
} }
.navbar-right .highlights-dropdown .dropdown-menu { .navbar-right .highlights-dropdown .dropdown-menu {
@ -92,16 +98,6 @@ h6 {
border-color: #e7e7e7; border-color: #e7e7e7;
box-shadow: -8px 14px 20px -5px rgba(77, 77, 77, 0.5); box-shadow: -8px 14px 20px -5px rgba(77, 77, 77, 0.5);
} }
/* .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{ .navbar-right .highlights-dropdown .dropdown-menu > li > a{
font-size: 13px; font-size: 13px;
@ -274,16 +270,15 @@ h6 {
/*------Auth section---------*/ /*------Auth section---------*/
.auth-container { .auth-container {
min-height: calc(100vh - 120px); min-height: calc(100vh - 180px);
position: relative; position: relative;
/* flex-grow: 1; */
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
} }
.auth-bg { .auth-bg {
background: url(../img/auth-bg-sm.jpg); background: url(../img/pattern.jpg) no-repeat center center;
position: fixed; position: fixed;
left: 0; left: 0;
top: 0; top: 0;
@ -293,7 +288,6 @@ h6 {
background-position: center center; background-position: center center;
background-size: cover; background-size: cover;
background-attachment: fixed; background-attachment: fixed;
} }
.auth-bg::before { .auth-bg::before {
@ -303,7 +297,7 @@ h6 {
bottom: 0; bottom: 0;
left: 0; left: 0;
right: 0; right: 0;
background: rgba(75, 75, 101, 0.55); background: rgba(90, 116, 175, 0.7);
z-index: 1; z-index: 1;
} }
@ -313,69 +307,38 @@ h6 {
.auth-container .auth-content { .auth-container .auth-content {
width: 100%; width: 100%;
margin: 0 auto; margin: 0 auto 15px;
max-width: 390px; max-width: 400px;
padding: 0 15px;
} }
.auth-container .auth-center { .auth-container .auth-content.wide {
/* position: absolute; */ max-width: 480px;
/* left: 50%; */
/* top: 50%; */
/* transform: translate(-50%, -50%); */
/* width: 100%; */
}
.auth-container .auth-title {
margin-bottom: 50px;
}
.auth-container .auth-title h2 {
color: #fff;
font-size: 44px;
text-align: center;
width: 425px;
margin: 0 auto;
margin-bottom: 30px;
position: relative;
}
.auth-container .auth-title h2::after {
content: "";
position: absolute;
bottom: -20px;
background: #fff;
height: 7px;
width: 70px;
left: 50%;
transform: translate(-50%, 0);
} }
.auth-box { .auth-box {
position: relative;
background: #fff; background: #fff;
padding: 0; padding: 40px 20px 20px;
padding-bottom: 30px;
box-sizing: border-box; box-sizing: border-box;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.09), 0 5px 5px rgba(0, 0, 0, 0.23);
border-radius: 4px;
z-index: 10; z-index: 10;
} }
.auth-box .section-heading { .auth-box .section-heading {
color: #5a5a5a; color: #5a5a5a;
padding-top: 30px; font-weight: 300;
padding-bottom: 5px;
text-align: center; text-align: center;
text-transform: uppercase; letter-spacing: 1px;
letter-spacing: 3px; font-size: 36px;
font-size: 20px;
border-radius: 3px 3px 0px 0px; border-radius: 3px 3px 0px 0px;
margin: 0 auto; margin: 0 auto 10px;
} }
.auth-box .form { .auth-box .form {
padding: 20px; padding: 20px;
width: 80%;
margin: 0 auto; margin: 0 auto;
max-width: 360px;
} }
.auth-box .form .red { .auth-box .form .red {
@ -383,27 +346,56 @@ h6 {
} }
.auth-box .form .btn { .auth-box .form .btn {
box-shadow: 0 0px 9px rgba(0, 0, 0, 0.19), 0 3px 5px rgba(0, 0, 0, 0.23); letter-spacing: 2px;
letter-spacing: 3px; font-size: 16px;
font-size: 17px; padding: 6px 12px;
min-width: 140px;
margin-top: 15px;
text-transform: uppercase; text-transform: uppercase;
} }
.auth-box .form .form-control { .auth-box .form .form-control {
height: 44px; height: 48px;
font-size: 16px; font-size: 14px;
padding: 10px 17px;
line-height: 30px;
border-color: #aaa;
}
.auth-box .form .form-control:focus,
.auth-box .form .form-control:active {
box-shadow: none;
border-radius: 0;
}
.auth-box .form-control::-webkit-input-placeholder {
color: #aaa;
}
.auth-box .form-control:-moz-placeholder{
/* Firefox 18- */
color: #aaa;
}
.auth-box .form-control::-moz-placeholder{
/* Firefox 19+ */
color: #aaa;
}
.auth-box .form-control:-ms-input-placeholder {
color: #aaa;
} }
.auth-box .auth-footer { .auth-box .auth-footer {
text-align: center; text-align: center;
padding: 10px; padding: 5px;
} }
.auth-box .auth-footer .text { .auth-box .auth-footer {
color: #777; color: #777;
} }
.auth-box .auth-footer .links a { .auth-box .auth-footer a {
color: #1e94cc; color: #1e94cc;
} }
@ -411,20 +403,11 @@ h6 {
color: #1e94cc; color: #1e94cc;
} }
.auth-box.sign-up {
padding-bottom: 5px;
}
.auth-box.sign-up .form {
padding: 15px 20px 0 20px;
}
.sign-up-message { .sign-up-message {
padding: 25px 30px 25px 30px; padding: 25px 30px 25px 30px;
text-align: center; text-align: center;
font-size: 18px; font-size: 18px;
line-height: 30px; line-height: 30px;
/*font-family: 'Lato' !important;*/
font-weight: 300 !important; font-weight: 300 !important;
} }
@ -458,16 +441,7 @@ h6 {
} }
.auth-box .form { .auth-box .form {
padding: 15px 0px 0 0; padding: 15px 0 15px 0;
}
.auth-box.sign-up .form {
padding: 15px 0px 0 0;
}
.auth-box .form .form-control {
height: 44px;
font-size: 13px;
} }
.auth-container .auth-title { .auth-container .auth-title {
@ -476,7 +450,7 @@ h6 {
} }
.auth-box .msg-list { .auth-box .msg-list {
padding: 15px 25px 5px; padding: 20px 25px 0;
text-align: center; text-align: center;
} }
@ -493,19 +467,14 @@ h6 {
margin-bottom: 50px; margin-bottom: 50px;
} }
.auth-box .form {
width: 90%;
}
.auth-box .section-heading { .auth-box .section-heading {
font-size: 15px; font-size: 32px;
} }
} }
footer { footer {
padding: 20px; padding: 20px 0;
background-color: #f8f8f8; background-color: #f8f8f8;
/* position: absolute */
right: 0; right: 0;
bottom: 0; bottom: 0;
left: 0; left: 0;
@ -537,7 +506,6 @@ a.unlink:hover {
/***** DCL payment page **********/ /***** DCL payment page **********/
.dcl-order-container { .dcl-order-container {
/*font-family: Lato;*/
font-weight: 300; font-weight: 300;
} }
@ -580,9 +548,7 @@ a.unlink:hover {
} }
.dcl-place-order-text{ .dcl-place-order-text{
/* font-size: 13px; */
color: #808080; color: #808080;
/* margin-bottom: 15px; */
} }
.dcl-order-table-total .tbl-total { .dcl-order-table-total .tbl-total {
@ -610,7 +576,6 @@ a.unlink:hover {
} }
.card-warning-content { .card-warning-content {
/*font-family: Lato;*/
font-weight: 300; font-weight: 300;
border: 1px solid #a1a1a1; border: 1px solid #a1a1a1;
border-radius: 3px; border-radius: 3px;
@ -638,18 +603,6 @@ a.unlink:hover {
right: 0; right: 0;
} }
.brand {
}
.brand #brand-icon {
}
.card-number-element {
}
.card-expiry-element {
}
.card-cvc-element label { .card-cvc-element label {
padding-left: 10px; padding-left: 10px;
} }
@ -735,9 +688,6 @@ a.unlink:hover {
margin-bottom: 30px; margin-bottom: 30px;
} }
.brand {
}
.card-expiry-element { .card-expiry-element {
padding-right: 10px; padding-right: 10px;
} }
@ -802,10 +752,23 @@ a.unlink:hover {
} }
} }
.footer-light {
.footer-light a:hover, .footer-light a:focus, .footer-light a:active { position: relative;
}
.footer-light footer {
background: transparent;
color: #eee;
}
.footer-light a,
.footer-light .text-muted {
color: #ddd; color: #ddd;
} }
.footer-light a:hover, .footer-light a:focus, .footer-light a:active {
color: #fff;
}
.footer-vm p.copyright {
margin-top: 4px;
}
.visible-mobile { .visible-mobile {
display: none !important; display: none !important;

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

View file

@ -49,7 +49,7 @@ $(document).ready(function () {
var hasCreditcard = window.hasCreditcard || false; var hasCreditcard = window.hasCreditcard || false;
if (!hasCreditcard) { if (!hasCreditcard && window.stripeKey) {
var stripe = Stripe(window.stripeKey); var stripe = Stripe(window.stripeKey);
var element_style = { var element_style = {
fonts: [{ fonts: [{
@ -88,31 +88,6 @@ $(document).ready(function () {
} }
} }
}; };
var credit_card_cvv_style = {
base: {
iconColor: '#666EE8',
color: '#31325F',
lineHeight: '25px',
fontWeight: 300,
fontFamily: "'lato-regular', sans-serif",
fontSize: '14px',
'::placeholder': {
color: '#555'
}
},
invalid: {
iconColor: '#eb4d5c',
color: '#eb4d5c',
lineHeight: '25px',
fontWeight: 300,
fontFamily: "'lato-regular', sans-serif",
fontSize: '14px',
'::placeholder': {
color: '#eb4d5c',
fontWeight: 600
}
}
};
var enter_ccard_text = "Enter your credit card number"; var enter_ccard_text = "Enter your credit card number";
if (typeof window.enter_your_card_text !== 'undefined') { if (typeof window.enter_your_card_text !== 'undefined') {
@ -139,8 +114,6 @@ $(document).ready(function () {
} }
}); });
} }
console.log("has creditcard", hasCreditcard);
// hasCreditcard= true;
var submit_form_btn = $('#payment_button_with_creditcard'); var submit_form_btn = $('#payment_button_with_creditcard');
submit_form_btn.on('click', submit_payment); submit_form_btn.on('click', submit_payment);
@ -148,11 +121,7 @@ $(document).ready(function () {
function submit_payment(e) { function submit_payment(e) {
e.preventDefault(); e.preventDefault();
console.log("creditcard sdasd");
// if (hasCreditcard) {
$('#billing-form').submit(); $('#billing-form').submit();
// }
} }
@ -164,7 +133,6 @@ $(document).ready(function () {
function stripeTokenHandler(token) { function stripeTokenHandler(token) {
// Insert the token ID into the form so it gets submitted to the server // Insert the token ID into the form so it gets submitted to the server
var form = document.getElementById('payment-form-new');
$('#id_token').val(token.id); $('#id_token').val(token.id);
$('#billing-form').submit(); $('#billing-form').submit();
} }
@ -227,13 +195,5 @@ $(document).ready(function () {
$(element).closest('.form-group').append(error); $(element).closest('.form-group').append(error);
} }
}); });
// $form.find('[type=submit]').prop('disabled', true);
// var readyInterval = setInterval(function() {
// if (paymentFormReady()) {
// $form.find('[type=submit]').prop('disabled', false);
// clearInterval(readyInterval);
// }
// }, 250);
}); });

View file

@ -33,7 +33,7 @@
<link href='//fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'> <link href='//fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<link href="//fonts.googleapis.com/css?family=Lato:300,400,500,700,300italic,400italic,700italic" rel="stylesheet" type="text/css"> <link href="//fonts.googleapis.com/css?family=Lato:300,400,500,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="{% static 'hosting/img/favicon.ico' %}" type="image/x-icon" /> <link rel="shortcut icon" href="{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon" />
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- 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:// --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
@ -54,8 +54,7 @@
{% include "hosting/includes/_navbar_user.html" %} {% include "hosting/includes/_navbar_user.html" %}
{% endblock navbar %} {% endblock navbar %}
<div class="{% if request.user.is_authenticated %}content-dashboard{% endif %}">
<div class="content-dashboard">
{% block content %} {% block content %}
{% endblock %} {% endblock %}
</div> </div>

View file

@ -1,6 +1,5 @@
{% extends "hosting/base_short.html" %} {% extends "hosting/base_short.html" %}
{% load staticfiles bootstrap3%} {% load staticfiles bootstrap3 i18n %}
{% load i18n %}
{% block navbar %} {% block navbar %}
{% include 'hosting/includes/_navbar_transparent.html' %} {% include 'hosting/includes/_navbar_transparent.html' %}
@ -10,12 +9,9 @@
<div class="auth-container"> <div class="auth-container">
<div class="auth-bg"></div> <div class="auth-bg"></div>
<div class="auth-center"> <div class="auth-center">
<div class="auth-title">
<h2>{% trans "Your VM hosted in Switzerland"%}</h2>
</div>
<div class="auth-content"> <div class="auth-content">
<div class="intro-message auth-box sign-up"> <div class="auth-box sign-up">
<h2 class="section-heading">{% trans "Set your new password"%}</h2> <h1 class="section-heading">{% trans "Set your new password" %}</h1>
{% if messages %} {% if messages %}
<ul class="list-unstyled msg-list"> <ul class="list-unstyled msg-list">
{% for message in messages %} {% for message in messages %}
@ -28,23 +24,18 @@
{% for field in form %} {% for field in form %}
{% bootstrap_field field show_label=False %} {% bootstrap_field field show_label=False %}
{% endfor %} {% endfor %}
{% buttons %} <div class="text-center">
<button type="submit" class="btn btn-block btn-success"> <button type="submit" class="btn choice-btn">
{% trans "Reset" %} {% trans "Reset" %}
</button> </button>
{% endbuttons %} </div>
</form> </form>
<div class="auth-footer"> <div class="auth-footer">
<div class="text"> <span>{% trans "Already have an account ?" %}</span>&nbsp;
<span>{% trans "Already have an account ?"%}</span>
</div>
<div class="links">
<a class="unlink" href="{% url 'hosting:login' %}">{% trans "Login" %}</a> <a class="unlink" href="{% url 'hosting:login' %}">{% trans "Login" %}</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,14 +1,51 @@
{% extends "datacenterlight/emails/base_email_datacenterlight.html" %} {% load static i18n %}
{% load i18n %} <!DOCTYPE html>
{% block email_head %}{{page_header}}{% endblock %} <html>
{% block email_body %}
{% url 'hosting:orders' order.id as order_url %} <head>
{% blocktrans with vm.name as vm_name %}You have ordered a new virtual machine! <meta charset="UTF-8">
<br/> <meta name="viewport" content="width=device-width, initial-scale=1">
Your order of [{{vm_name}}] has been charged.<br/><br/> <title>{% blocktrans %}Your New VM {{vm_name}}{% endblocktrans %}</title>
You can view your invoice by clicking the button below.<br/><br/> <link rel="shortcut icon" href="{{ base_url }}{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon">
{% endblocktrans %} <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400">
<div class="button" style="border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 30px 0;" align="center"> </head>
<a href="{{ base_url }}{{order_url}}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">{% trans 'View Invoice' %}</a>
</div> <body style="margin: 0; padding: 20px 0;">
{% endblock %} <table style="width: 100%; border-spacing: 0; border-collapse: collapse; max-width: 560px;">
<tr>
<td>
<img src="{{ base_url }}{% static 'datacenterlight/img/logo_black.png' %}" style="width: 200px; height: 50px;">
</td>
</tr>
<tr>
<td style="padding-top: 15px;">
<h1 style="font-family: Lato, Arial, sans-serif; font-size: 25px; font-weight: 400; margin: 0;">{% blocktrans %}Your New VM {{ vm_name }}{% endblocktrans %}</h1>
</td>
</tr>
<tr>
<td style="padding-top: 25px; font-size: 16px;">
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{% blocktrans %}You have ordered a new virtual machine!{% endblocktrans %}
</p>
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{% blocktrans %}Your order of <strong>{{ vm_name }}</strong> has been charged.{% endblocktrans %}
</p>
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{% blocktrans %}You can view your VM detail by clicking the button below.{% endblocktrans %}
</p>
</td>
</tr>
<tr>
<td style="padding-top: 30px;">
<a class="btn" href="{{ base_url }}{{ order_url }}" style="font-family: Lato, Arial, sans-serif; text-decoration: none; background-color: #1596da; color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 30px; padding-right: 30px; letter-spacing: 0.5px; border-radius: 3px; display: inline-block; position: relative;">{% trans "View Detail" %}</a>
</td>
</tr>
<tr>
<td style="padding-top: 40px; padding-bottom: 25px;">
<h3 style="font-family: Lato, Arial, sans-serif; margin: 0; font-weight: 400; font-size: 15px;">{% trans "Your Data Center Light Team" %}</h3>
</td>
</tr>
</table>
</body>
</html>

View file

@ -1,11 +1,11 @@
{% extends "datacenterlight/emails/base_email_datacenterlight.txt" %}
{% load i18n %} {% load i18n %}
{% block email_head %}{{page_header}}{% endblock %}
{% block email_body %} {% blocktrans %}Your New VM {{vm_name}}{% endblocktrans %}
{% url 'hosting:orders' order.id as order_url %}
{% blocktrans with vm.name as vm_name %}You have ordered a new virtual machine! {% blocktrans %}You have ordered a new virtual machine!{% endblocktrans %}
Your order of [{{vm_name}}] has been charged. {% blocktrans %}Your order of {{vm_name}} has been charged.{% endblocktrans %}
You can view your invoice here. {% blocktrans %}You can view your VM detail by following the link below.{% endblocktrans %}
{% endblocktrans %}
{{ base_url }}{{ order_url }} {{ base_url }}{{ order_url }}
{% endblock %}
{% trans "Your Data Center Light Team" %}

View file

@ -1,14 +1,52 @@
{% extends "datacenterlight/emails/base_email_datacenterlight.html" %} {% load static i18n %}
{% load i18n %} <!DOCTYPE html>
{% block email_head %} <html>
{% trans 'Password Reset' %}
{% endblock %} <head>
{% block email_body %} <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% trans "Password Reset" %}</title>
<link rel="shortcut icon" href="{{ base_url }}{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400">
</head>
<body style="margin: 0; padding: 20px 0;">
<table style="width: 100%; border-spacing: 0; border-collapse: collapse; max-width: 560px;">
<tr>
<td>
<img src="{{base_url}}{% static 'datacenterlight/img/logo_black.png' %}" style="width: 200px; height: 50px;">
</td>
</tr>
<tr>
<td style="padding-top: 15px;">
<h1 style="font-family: Lato, Arial, sans-serif; font-size: 25px; font-weight: 400; margin: 0;">{% trans "Password Reset" %}</h1>
</td>
</tr>
<tr>
<td style="padding-top: 25px; font-size: 16px;">
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin-bottom: 10px; margin-top: 0;">
{% trans "We received a request to reset your password." %}
</p>
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin-bottom: 10px; margin-top: 0;">
{% trans "If you didn't make this request you can safely ignore this email." %}
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin-bottom: 10px; margin-top: 0;">
{% trans "Otherwise, click here to reset your password." %}
</p>
<p style="color: #4382c8; line-height: 1.4; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{% url 'hosting:reset_password_confirm' uidb64=uid token=token as password_reset_url %} {% url 'hosting:reset_password_confirm' uidb64=uid token=token as password_reset_url %}
{% blocktrans %} {{base_url}}{{ password_reset_url }}
You're receiving this email because you requested a password reset for your user account at {{site_name}}.<br/> </p>
Please go to the following page and choose a new password: {{base_url}}{{ password_reset_url }}<br/> <p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin-bottom: 0; margin-top: 10px;">
If you didn't request a new password, ignore this e-mail.<br/> {% trans "Thank you!" %}
Thank you! </p>
{% endblocktrans %} </td>
{% endblock %} </tr>
<tr>
<td style="padding-top: 40px; padding-bottom: 25px;">
<h3 style="font-family: Lato, Arial, sans-serif; margin: 0; font-weight: 400; font-size: 15px;">{% trans "Your Data Center Light Team" %}</h3>
</td>
</tr>
</table>
</body>
</html>

View file

@ -1,11 +1,14 @@
{% extends "datacenterlight/emails/base_email_datacenterlight.txt" %}
{% load i18n %} {% load i18n %}
{% block email_head %}{% trans 'Password Reset' %}{% endblock %}
{% block email_body %} {% trans "Password Reset" %}
{% trans "We received a request to reset your password." %}
{% trans "If you didn't make this request you can safely ignore this email." %}
{% trans "Otherwise, click here to reset your password." %}
{% url 'hosting:reset_password_confirm' uidb64=uid token=token as password_reset_url %} {% url 'hosting:reset_password_confirm' uidb64=uid token=token as password_reset_url %}
{% blocktrans %}You're receiving this email because you requested a password reset for your user account at {{site_name}}. {{base_url}}{{ password_reset_url }}
Please go to the following page and choose a new password: {{base_url}}{{ password_reset_url }}
If you didn't request a new password, ignore this e-mail. {% trans "Thank you!" %}
Thank you!
{% endblocktrans %} {% trans "Your Data Center Light Team" %}
{% endblock %}

View file

@ -1,15 +1,49 @@
{% extends "datacenterlight/emails/base_email_datacenterlight.html" %} {% load static i18n %}
{% load i18n %} <!DOCTYPE html>
{% block email_head %}{{page_header}}{% endblock %} <html>
{% block email_body %}
{% url 'hosting:virtual_machines' as my_virtual_machines_url %} <head>
{% url 'hosting:orders' as vm_orders_url %} <meta charset="UTF-8">
{% blocktrans with vm.name as vm_name %}You're receiving this mail because your virtual machine [{{vm_name}}] has been cancelled.<br/> <meta name="viewport" content="width=device-width, initial-scale=1">
You can see your order status by clicking [my VM page] below.<br/> <title>{% trans "Virtual Machine Cancellation" %}</title>
If you want to order a new virtual machine, you can do it by clicking <a href="{{base_url}}{{my_virtual_machines_url}}">this link</a>.<br/> <link rel="shortcut icon" href="{{ base_url }}{% static 'datacenterlight/img/favicon.ico' %}" type="image/x-icon">
{% endblocktrans %} <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400">
<div class="button" style="border-collapse: collapse; font-family: 'Lato', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; padding: 30px 0;" align="center"> </head>
<a href="{{ base_url }}{{vm_orders_url}}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">{% trans 'My VM page' %}</a>
</div> <body style="margin: 0; padding: 20px 0;">
{% endblock %} <table style="width: 100%; border-spacing: 0; border-collapse: collapse; max-width: 560px;">
<tr>
<td>
<img src="{{ base_url }}{% static 'datacenterlight/img/logo_black.png' %}" style="width: 200px; height: 50px;">
</td>
</tr>
<tr>
<td style="padding-top: 15px;">
<h1 style="font-family: Lato, Arial, sans-serif; font-size: 25px; font-weight: 400; margin: 0;">{% trans "Virtual Machine Cancellation" %}</h1>
</td>
</tr>
<tr>
<td style="padding-top: 25px; font-size: 16px;">
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{% blocktrans %}You are receiving this email because your virutal machine <strong>{{ vm_name }}</strong> has been cancelled.{% endblocktrans %}
</p>
<p style="line-height: 1.75; font-family: Lato, Arial, sans-serif; font-weight: 300; margin: 0;">
{% blocktrans %}You can always order a new VM by clicking the button below.{% endblocktrans %}
</p>
</td>
</tr>
<tr>
<td style="padding-top: 30px;">
<a class="btn" href="{{ base_url }}{% url 'hosting:create_virtual_machine' %}" style="font-family: Lato, Arial, sans-serif; text-decoration: none; background-color: #1596da; color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 30px; padding-right: 30px; letter-spacing: 0.5px; border-radius: 3px; display: inline-block; position: relative;">{% trans "CREATE VM" %}</a>
</td>
</tr>
<tr>
<td style="padding-top: 40px; padding-bottom: 25px;">
<h3 style="font-family: Lato, Arial, sans-serif; margin: 0; font-weight: 400; font-size: 15px;">{% trans "Your Data Center Light Team" %}</h3>
</td>
</tr>
</table>
</body>
</html>

View file

@ -1,13 +1,10 @@
{% extends "datacenterlight/emails/base_email_datacenterlight.txt" %}
{% load i18n %} {% load i18n %}
{% block email_head %}{{page_header}}{% endblock %}
{% block email_body %} {% trans "Virtual Machine Cancellation" %}
{% url 'hosting:virtual_machines' as my_virtual_machines_url %}
{% url 'hosting:orders' order.id as vm_order_url %} {% blocktrans %}You are receiving this email because your virutal machine {{vm_name}} has been cancelled.{% endblocktrans %}
{% blocktrans with vm.name as vm_name %}You're receiving this mail because your virtual machine [{{vm_name}}] has been cancelled. {% blocktrans %}You can always order a new VM by following the link below.{% endblocktrans %}
You can see your order status by clicking here
{{base_url}}{{vm_order_url}} {{ base_url }}{% url 'hosting:create_virtual_machine' %}
If you want to order a new virtual machine, you can do it by clicking this link.
{{base_url}}{{my_virtual_machines_url}} {% trans "Your Data Center Light Team" %}
{% endblocktrans %}
{% endblock %}

View file

@ -32,22 +32,12 @@
{% endif %} {% endif %}
<div id='payment_error'> <div id='payment_error'>
{% for message in messages %} {% for message in messages %}
{% if 'failed_payment' in message.tags or 'make_charge_error' in message.tags %} {% if 'failed_payment' in message.tags or 'make_charge_error' in message.tags or 'error' in message.tags %}
<ul class="list-unstyled"> <ul class="list-unstyled">
<li><p class="card-warning-content card-warning-error">{{ message|safe }}</p></li> <li><p class="card-warning-content card-warning-error">{{ message|safe }}</p></li>
</ul> </ul>
{% elif not form.non_field_errors %}
<p class="card-warning-content">
{% trans "You are not making any payment yet. After placing your order, you will be taken to the Submit Payment Page." %}
</p>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% for error in form.non_field_errors %}
<p class="card-warning-content card-warning-error">
{{ error|escape }}
</p>
{% endfor %}
</div> </div>
<div class="text-right"> <div class="text-right">
<button class="btn btn-vm-contact btn-wide" type="submit">{%trans "SUBMIT" %}</button> <button class="btn btn-vm-contact btn-wide" type="submit">{%trans "SUBMIT" %}</button>

View file

@ -1,8 +1,7 @@
{% if messages %} {% if messages %}
<ul class="list-unstyled msg-list"> <ul class="list-unstyled msg-list">
{% for message in messages %} {% for message in messages %}
<div <div class="alert {% if message.tags and message.tags == 'error' %} alert-danger {% else %} alert-{{message.tags}} {% endif %}">{{ message|safe }}</div>
class="alert {% if message.tags and message.tags == 'error' %} alert-danger {% else %} alert-{{message.tags}} {% endif %}">{{ message|safe }}</div>
{% endfor %} {% endfor %}
</ul> </ul>
{% endif %} {% endif %}

View file

@ -1,6 +1,7 @@
{% load static i18n %} {% load static i18n %}
<nav class="navbar navbar-default topnav navbar-transparent" role="navigation"> <nav class="navbar navbar-default topnav navbar-transparent" role="navigation">
<div class="container">
<div class="topnav"> <div class="topnav">
<!-- Brand and toggle get grouped for better mobile display --> <!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header"> <div class="navbar-header">
@ -8,4 +9,5 @@
</div> </div>
</div> </div>
<!-- /.container --> <!-- /.container -->
</div>
</nav> </nav>

View file

@ -1,6 +1,5 @@
{% extends "hosting/base_short.html" %} {% extends "hosting/base_short.html" %}
{% load i18n %} {% load i18n staticfiles bootstrap3%}
{% load staticfiles bootstrap3%}
{% block navbar %} {% block navbar %}
{% include 'hosting/includes/_navbar_transparent.html' %} {% include 'hosting/includes/_navbar_transparent.html' %}
@ -10,12 +9,9 @@
<div class="auth-container"> <div class="auth-container">
<div class="auth-bg"></div> <div class="auth-bg"></div>
<div class="auth-center"> <div class="auth-center">
<div class="auth-title">
<h2>{% trans "Your VM hosted in Switzerland"%}</h2>
</div>
<div class="auth-content"> <div class="auth-content">
<div class="intro-message auth-box"> <div class="auth-box">
<h2 class="section-heading">{% trans "Login"%}</h2> <h1 class="section-heading allcaps">{% trans "Log in" %}</h1>
{% include 'hosting/includes/_messages.html' %} {% include 'hosting/includes/_messages.html' %}
<form action="{% url 'hosting:login' %}" method="post" class="form" novalidated> <form action="{% url 'hosting:login' %}" method="post" class="form" novalidated>
{% csrf_token %} {% csrf_token %}
@ -23,23 +19,21 @@
{% bootstrap_field field show_label=False type='fields'%} {% bootstrap_field field show_label=False type='fields'%}
{% endfor %} {% endfor %}
<p class="red">{{form.non_field_errors|striptags}}</p> <p class="red">{{form.non_field_errors|striptags}}</p>
{% buttons %} <div class="text-center">
<button type="submit" class="btn btn-block btn-success"> <button type="submit" class="btn choice-btn">
{% trans "Log in" %} {% trans "Log in" %}
</button> </button>
{% endbuttons %} </div>
<input type='hidden' name='next' value='{{request.GET.next}}'/> <input type='hidden' name='next' value='{{request.GET.next}}'/>
</form> </form>
<div class="auth-footer"> <div class="auth-footer">
<div class="text"> <div>
<span>{% trans "Don't have an account yet ? "%}</span> {% trans "Don't have an account yet ?" %}&nbsp;
<a class="" href="{% url 'hosting:signup' %}">{% trans "Sign up" %}</a>
</div> </div>
<div class="links"> <div>
<a class="unlink" href="{% url 'hosting:signup' %}">{% trans "Sign up"%}</a> or <a href="{% url 'hosting:reset_password' %}">{% trans "Forgot your password ?" %}</a><br>
<span class="text"> or </span> or <a href="{% url 'hosting:resend_activation_link' %}">{% trans "Resend activation link" %}</a>
<a class="unlink" href="{% url 'hosting:reset_password' %}">{% trans "Forgot your password ? "%}</a>
<span class="text"> or </span><br/>
<a class="unlink" href="{% url 'hosting:resend_activation_link' %}">{% trans "Resend activation link"%}</a>
</div> </div>
</div> </div>
</div> </div>

View file

@ -32,11 +32,11 @@
{% endif %} {% endif %}
<p> <p>
<strong>{% trans "Date" %}:</strong> <strong>{% trans "Date" %}:</strong>
<span id="order-created_at"> <span class="locale_date">
{% if order %} {% if order %}
{{order.created_at|date:'Y-m-d H:i'}} {{order.created_at|date:'Y-m-d h:i a'}}
{% else %} {% else %}
{% now "Y-m-d H:i" %} {% now "Y-m-d h:i a" %}
{% endif %} {% endif %}
</span> </span>
</p> </p>
@ -107,7 +107,9 @@
{% if vm.created_at %} {% if vm.created_at %}
<p> <p>
<span>{% trans "Period" %}: </span> <span>{% trans "Period" %}: </span>
<span>{{ vm.created_at|date:'Y/m/d' }} - {% if vm.terminated_at %}{{ vm.terminated_at|date:'Y/m/d' }}{% else %}{% now 'Y/m/d' %}{% endif %}</span> <span>
<span class="locale_date" data-format="YYYY/MM/DD">{{ vm.created_at|date:'Y-m-d h:i a' }}</span> - <span class="locale_date" data-format="YYYY/MM/DD">{{ subscription_end_date|date:'Y-m-d h:i a' }}</span>
</span>
</p> </p>
{% endif %} {% endif %}
<p> <p>
@ -194,12 +196,16 @@
<script type="text/javascript"> <script type="text/javascript">
{% trans "Some problem encountered. Please try again later." as err_msg %} {% trans "Some problem encountered. Please try again later." as err_msg %}
var create_vm_error_message = '{{err_msg|safe}}'; var create_vm_error_message = '{{err_msg|safe}}';
window.onload = function () { window.onload = function () {
var locale_date = moment.utc(document.getElementById("order-created_at").textContent, 'YYYY-MM-DD HH:mm').toDate(); var locale_dates = document.getElementsByClassName("locale_date");
locale_date = moment(locale_date).format("YYYY-MM-DD h:mm:ss a"); var formats = ['YYYY-MM-DD hh:mm a']
document.getElementById('order-created_at').innerHTML = locale_date; var i;
for (i = 0; i < locale_dates.length; i++) {
var oldDate = moment.utc(locale_dates[i].textContent, formats);
var outputFormat = locale_dates[i].getAttribute('data-format') || oldDate._f;
locale_dates[i].innerHTML = oldDate.local().format(outputFormat);
locale_dates[i].className += ' done';
}
}; };
</script> </script>
{%endblock%} {%endblock%}

View file

@ -1,35 +1,38 @@
{% extends "hosting/base_short.html" %} {% extends "hosting/base_short.html" %}
{% load staticfiles bootstrap3%} {% load staticfiles bootstrap3 i18n %}
{% load i18n %}
{% block navbar %} {% block navbar %}
{% include 'hosting/includes/_navbar_transparent.html' %} {% include 'hosting/includes/_navbar_transparent.html' %}
{% endblock navbar %} {% endblock navbar %}
{% block content %} {% block content %}
<div class="auth-container"> <div class="auth-container">
<div class="auth-bg"></div> <div class="auth-bg"></div>
<div class="auth-center"> <div class="auth-center">
<div class="auth-title"> <div class="auth-content wide">
<h2>{% trans "Your VM hosted in Switzerland"%}</h2> <div class="auth-box sign-up">
</div> <h1 class="section-heading">{% trans "Resend activation link" %}</h1>
<div class="auth-content">
<div class="intro-message auth-box sign-up">
<h2 class="section-heading">{% trans "Resend activation link"%}</h2>
{% include 'hosting/includes/_messages.html' %} {% include 'hosting/includes/_messages.html' %}
<form action="{% url 'hosting:resend_activation_link' %}" method="post" class="form" novalidate> <form action="{% url 'hosting:resend_activation_link' %}" method="post" class="form" novalidate>
{% csrf_token %} {% csrf_token %}
{% for field in form %} {% for field in form %}
{% bootstrap_field field show_label=False %} {% bootstrap_field field show_label=False %}
{% endfor %} {% endfor %}
{% buttons %} <div class="text-center">
<button type="submit" class="btn btn-block btn-success"> <button type="submit" class="btn choice-btn">
{% trans "Submit"%} {% trans "Submit"%}
</button> </button>
{% endbuttons %} </div>
</form> </form>
<div class="auth-footer">
<div>
{% trans "Don't have an account yet ?" %}&nbsp;
<a class="" href="{% url 'hosting:signup' %}">{% trans "Sign up" %}</a>
</div>
<div>
or <a href="{% url 'hosting:reset_password' %}">{% trans "Forgot your password ?" %}</a>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,40 +1,33 @@
{% extends "hosting/base_short.html" %} {% extends "hosting/base_short.html" %}
{% load staticfiles bootstrap3%} {% load i18n staticfiles bootstrap3%}
{% load i18n %}
{% block navbar %} {% block navbar %}
{% include 'hosting/includes/_navbar_transparent.html' %} {% include 'hosting/includes/_navbar_transparent.html' %}
{% endblock navbar %} {% endblock navbar %}
{% block content %} {% block content %}
<div class="auth-container"> <div class="auth-container">
<div class="auth-bg"></div> <div class="auth-bg"></div>
<div class="auth-center"> <div class="auth-center">
<div class="auth-title">
<h2>{% trans "Your VM hosted in Switzerland"%}</h2>
</div>
<div class="auth-content"> <div class="auth-content">
<div class="intro-message auth-box sign-up"> <div class="auth-box sign-up">
<h2 class="section-heading">{% trans "Reset your password"%}</h2> <h1 class="section-heading">{% trans "Password reset" %}</h1>
{% include 'hosting/includes/_messages.html' %} {% include 'hosting/includes/_messages.html' %}
<form action="{% url 'hosting:reset_password' %}" method="post" class="form" novalidate> <form action="{% url 'hosting:reset_password' %}" method="post" class="form" novalidate>
{% csrf_token %} {% csrf_token %}
{% for field in form %} {% for field in form %}
{% bootstrap_field field show_label=False %} {% bootstrap_field field show_label=False %}
{% endfor %} {% endfor %}
{% buttons %} <div class="text-center">
<button type="submit" class="btn btn-block btn-success"> <button type="submit" class="btn choice-btn">
{% trans "Reset" %} {% trans "Reset" %}
</button> </button>
{% endbuttons %} </div>
</form> </form>
<div class="auth-footer"> <div class="auth-footer">
<div class="text"> <div>
<span>{% trans "Already have an account ?"%}</span> <span>{% trans "Already have an account ?" %}</span>&nbsp;
</div> <a href="{% url 'hosting:login' %}">{% trans "Login" %}</a>
<div class="links">
<a class="unlink" href="{% url 'hosting:login' %}">{% trans "Login"%}</a>
</div> </div>
</div> </div>
</div> </div>

View file

@ -9,30 +9,25 @@
<div class="auth-container auth-signup"> <div class="auth-container auth-signup">
<div class="auth-bg"></div> <div class="auth-bg"></div>
<div class="auth-center "> <div class="auth-center ">
<div class="auth-title">
<h2>{% trans "Your VM hosted in Switzerland"%}</h2>
</div>
<div class="auth-content"> <div class="auth-content">
<div class="intro-message auth-box sign-up"> <div class="auth-box sign-up">
<h2 class="section-heading">{% trans "Sign up"%}</h2> <h1 class="section-heading allcaps">{% trans "Sign up" %}</h1>
{% include 'hosting/includes/_messages.html' %} {% include 'hosting/includes/_messages.html' %}
<form action="{% url 'hosting:signup' %}" method="post" class="form" novalidate> <form action="{% url 'hosting:signup' %}" method="post" class="form" novalidate>
{% csrf_token %} {% csrf_token %}
{% for field in form %} {% for field in form %}
{% bootstrap_field field show_label=False %} {% bootstrap_field field show_label=False %}
{% endfor %} {% endfor %}
{% buttons %} <div class="text-center">
<button type="submit" class="btn btn-block btn-info"> <button type="submit" class="btn choice-btn">
{% trans "Sign up" %} {% trans "Sign up" %}
</button> </button>
{% endbuttons %} </div>
</form> </form>
<div class="auth-footer"> <div class="auth-footer">
<div class="text"> <div>
<span>{% trans "Already have an account ?"%}</span> <span>{% trans "Already have an account ?" %}</span>&nbsp;
</div> <a href="{% url 'hosting:login' %}">{% trans "Login" %}</a>
<div class="links">
<a class="unlink" href="{% url 'hosting:login' %}">{% trans "Login"%}</a>
</div> </div>
</div> </div>
</div> </div>

View file

@ -9,11 +9,7 @@
<div class="auth-container"> <div class="auth-container">
<div class="auth-bg"></div> <div class="auth-bg"></div>
<div class="auth-center"> <div class="auth-center">
<div class="auth-title"> <div class="auth-content wide">
<h2>{% trans "Your VM hosted in Switzerland"%}</h2>
{% include 'hosting/includes/_messages.html' %}
</div>
<div class="auth-content">
<div class="intro-message auth-box sign-up"> <div class="intro-message auth-box sign-up">
<h2 class="section-heading">{{section_title}}</h2> <h2 class="section-heading">{{section_title}}</h2>
<div class="sign-up-message"> <div class="sign-up-message">

View file

@ -267,6 +267,8 @@ class SignupValidatedView(SignupValidateView):
login_url = '<a href="' + \ login_url = '<a href="' + \
reverse('hosting:login') + '">' + str(_('login')) + '</a>' reverse('hosting:login') + '">' + str(_('login')) + '</a>'
section_title = _('Account activation') section_title = _('Account activation')
user = CustomUser.objects.filter(
validation_slug=self.kwargs['validate_slug']).first()
if validated: if validated:
message = ('{account_activation_string} <br />' message = ('{account_activation_string} <br />'
' {login_string} {lurl}.').format( ' {login_string} {lurl}.').format(
@ -274,6 +276,21 @@ class SignupValidatedView(SignupValidateView):
"Your account has been activated."), "Your account has been activated."),
login_string=_("You can now"), login_string=_("You can now"),
lurl=login_url) lurl=login_url)
email_data = {
'subject': _('Welcome to Data Center Light!'),
'to': user.email,
'context': {
'base_url': "{0}://{1}".format(
self.request.scheme,
self.request.get_host()
)
},
'template_name': 'welcome_user',
'template_path': 'datacenterlight/emails/',
'from_address': settings.DCL_SUPPORT_FROM_ADDRESS,
}
email = BaseEmail(**email_data)
email.send()
else: else:
home_url = '<a href="' + \ home_url = '<a href="' + \
reverse('datacenterlight:index') + \ reverse('datacenterlight:index') + \
@ -685,6 +702,7 @@ class OrdersHostingDetailView(LoginRequiredMixin,
disk_size=context['vm']['disk_size'], disk_size=context['vm']['disk_size'],
memory=context['vm']['memory'] memory=context['vm']['memory']
) )
context['subscription_end_date'] = vm_detail.end_date()
except VMDetail.DoesNotExist: except VMDetail.DoesNotExist:
try: try:
manager = OpenNebulaManager( manager = OpenNebulaManager(
@ -1047,6 +1065,7 @@ class VirtualMachineView(LoginRequiredMixin, View):
try: try:
vm_data = VirtualMachineSerializer(manager.get_vm(vm.id)).data vm_data = VirtualMachineSerializer(manager.get_vm(vm.id)).data
vm_name = vm_data.get('name')
except WrongIdError: except WrongIdError:
return redirect(reverse('hosting:virtual_machines')) return redirect(reverse('hosting:virtual_machines'))
@ -1072,10 +1091,11 @@ class VirtualMachineView(LoginRequiredMixin, View):
else: else:
sleep(2) sleep(2)
context = { context = {
'vm': vm_data, 'vm_name': vm_name,
'base_url': "{0}://{1}".format(self.request.scheme, 'base_url': "{0}://{1}".format(self.request.scheme,
self.request.get_host()), self.request.get_host()),
'page_header': _('Virtual Machine Cancellation') 'page_header': _('Virtual Machine %(vm_name)s Cancelled') % {
'vm_name': vm_name}
} }
email_data = { email_data = {
'subject': context['page_header'], 'subject': context['page_header'],

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 02:05+0530\n" "POT-Creation-Date: 2017-10-10 21:35+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,42 +18,35 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: forms.py:43
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: forms.py:43
msgid "Card number" msgid "Card number"
msgstr "" msgstr ""
#: forms.py:43
msgid "Expiry date" msgid "Expiry date"
msgstr "" msgstr ""
#: forms.py:44
msgid "CCV" msgid "CCV"
msgstr "" msgstr ""
#: models.py:66
msgid "staff status" msgid "staff status"
msgstr "" msgstr ""
#: models.py:68
msgid "Designates whether the user can log into this admin site." msgid "Designates whether the user can log into this admin site."
msgstr "" msgstr ""
#: models.py:90 msgid "Account Activation"
msgid "Activate your " msgstr ""
msgstr "Aktiviere deinen "
#: models.py:90
msgid " account"
msgstr " Account"
#: models.py:198
msgid "Use this pattern(MM/YYYY)." msgid "Use this pattern(MM/YYYY)."
msgstr "" msgstr ""
#: models.py:199
msgid "Wrong CCV number." msgid "Wrong CCV number."
msgstr "" msgstr ""
#~ msgid "Activate your "
#~ msgstr "Aktiviere deinen "
#~ msgid " account"
#~ msgstr " Account"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-30 13:47+0000\n" "POT-Creation-Date: 2017-10-13 02:21+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,165 +18,192 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ungleich_page/templates/ungleich_page/includes/_about.html:8 msgid "Toggle navigation"
msgstr "Umschalten"
msgid "CONTACT"
msgstr "KONTAKT"
msgid "HIGH SPEED INTERNET"
msgstr ""
msgid "Thank you for contacting us."
msgstr "Nachricht gesendet."
msgid "Your message was successfully sent to our team."
msgstr "Vielen Dank für Deine Nachricht."
msgid "Name"
msgstr ""
msgid "Please enter your name."
msgstr "Bitte gib Deinen Namen ein."
msgid "Email"
msgstr "E-Mail-Adresse"
msgid "Please enter a valid email address."
msgstr "Bitte gib eine gültige E-Mailadresse ein."
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."
msgid "SUBMIT"
msgstr "ABSENDEN"
msgid "ABOUT" msgid "ABOUT"
msgstr "Über ungleich" msgstr "Über ungleich"
#: ungleich_page/templates/ungleich_page/includes/_about.html:9
msgid "The timeline of ungleich" msgid "The timeline of ungleich"
msgstr "Die Chronik von ungleich" msgstr "Die Chronik von ungleich"
#: ungleich_page/templates/ungleich_page/includes/_about.html:24
msgid "The first incarnation of ungleich" msgid "The first incarnation of ungleich"
msgstr "Die erste Inkarnation von ungleich" msgstr "Die erste Inkarnation von ungleich"
#: ungleich_page/templates/ungleich_page/includes/_about.html:25
msgid "in Germany" msgid "in Germany"
msgstr "in Deutschland" msgstr "in Deutschland"
#: ungleich_page/templates/ungleich_page/includes/_about.html:37
msgid "ungleich founded" msgid "ungleich founded"
msgstr "ungleich gegründet" msgstr "ungleich gegründet"
#: ungleich_page/templates/ungleich_page/includes/_about.html:38
msgid "in Switzerland" msgid "in Switzerland"
msgstr "in der Schweiz" msgstr "in der Schweiz"
#: ungleich_page/templates/ungleich_page/includes/_about.html:51
msgid "ungleich present at various conferences" msgid "ungleich present at various conferences"
msgstr "ungleich präsent an mehreren Konferenzen" msgstr "ungleich präsent an mehreren Konferenzen"
#: ungleich_page/templates/ungleich_page/includes/_about.html:65
msgid "ungleich introduces HA-Hosting" msgid "ungleich introduces HA-Hosting"
msgstr "ungleich führt HA-Hosting ein" msgstr "ungleich führt HA-Hosting ein"
#: ungleich_page/templates/ungleich_page/includes/_about.html:66
msgid "and introduces affordable 24X7 support." msgid "and introduces affordable 24X7 support."
msgstr "und führt kostengünstigen 24X7 Support ein." msgstr "und führt kostengünstigen 24X7 Support ein."
#: ungleich_page/templates/ungleich_page/includes/_about.html:67
msgid "ungleich launches" msgid "ungleich launches"
msgstr "ungleich lanciert" msgstr "ungleich lanciert"
#: ungleich_page/templates/ungleich_page/includes/_about.html:68
msgid "Digital Glarus project" msgid "Digital Glarus project"
msgstr "Digital Glarus Projekt" msgstr "Digital Glarus Projekt"
#: ungleich_page/templates/ungleich_page/includes/_about.html:74 msgid ""
"ungleich launches <a href=\"https://www.alplora.ch/de/\">Alplora</a>, an "
"animal tracking service with LoraWAN technology."
msgstr ""
"ungleich startet das Projekt <a href=\"https://www.alplora.ch/de/\">AlpLora</"
"a>, mit dem Tiere via LoRaWAN geortet werden können"
msgid ""
"ungleich sells <a href=\"https://www.alplora.ch/de/\">Alplora</a> to an IoT "
"startup in canton Zürich."
msgstr ""
"ungleich verkauft das Projekt <a href=\"https://www.alplora.ch/de/"
"\">AlpLora</a> an ein IoT-Startup aus dem Kanton Zürich"
msgid ""
"ungleich showcases the most affordable Swiss VM hosting, Data Center Light."
msgstr ""
"ungleich stellt der Öffentlichkeit das modernste Schweizer Hosting vor, das "
"Data Center Light."
msgid "and" msgid "and"
msgstr "und" msgstr "und"
#: ungleich_page/templates/ungleich_page/includes/_about.html:74
msgid "the story continues!" msgid "the story continues!"
msgstr "Die Geschichte geht weiter!" msgstr "Die Geschichte geht weiter!"
#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:15
#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:28
#: ungleich_page/views.py:36
msgid "Contact Us" msgid "Contact Us"
msgstr "Kontaktieren Sie uns" msgstr "Kontaktieren Sie uns"
#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:18
msgid "Join us at" msgid "Join us at"
msgstr "Schliessen Sie sich uns an" msgstr "Schliessen Sie sich uns an"
#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:19
msgid "Digital Glarus" msgid "Digital Glarus"
msgstr "Digital Glarus" msgstr "Digital Glarus"
#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:20
msgid "a great co-working space in the middle of Alps!" msgid "a great co-working space in the middle of Alps!"
msgstr "ein wunderschöner Co-Working Space mitten in den Alpen" msgstr "ein wunderschöner Co-Working Space mitten in den Alpen"
#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:21
msgid "You can contact us at" msgid "You can contact us at"
msgstr "Sie können uns kontaktieren unter" msgstr "Sie können uns kontaktieren unter"
#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:26
msgid "or" msgid "or"
msgstr "oder" msgstr "oder"
#: ungleich_page/templates/ungleich_page/includes/_contact_us.html:60
msgid "Submit" msgid "Submit"
msgstr "Absenden" msgstr "Absenden"
#: ungleich_page/templates/ungleich_page/includes/_footer.html:8
msgid "Copyright © ungleich GmbH " msgid "Copyright © ungleich GmbH "
msgstr "Copyright © ungleich GmbH" msgstr "Copyright © ungleich GmbH"
#: ungleich_page/templates/ungleich_page/includes/_footer.html:22
msgid "ungleich Home" msgid "ungleich Home"
msgstr "ungleich Home" msgstr "ungleich Home"
#: ungleich_page/templates/ungleich_page/includes/_header.html:11
msgid "We Design, Configure &amp; Maintain <br> Your Linux Infrastructure " msgid "We Design, Configure &amp; Maintain <br> Your Linux Infrastructure "
msgstr "Wir designen, erstellen und warten Ihre Linux-Infrastruktur" msgstr "Wir designen, erstellen und warten Ihre Linux-Infrastruktur"
#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:8 msgid "Our Products"
#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:9 msgstr "Unsere Produkte"
msgid "Hosting Products "
msgstr "Hosting Produkte"
#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:16
msgid "HA Hosting"
msgstr "HA Hosting"
#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:18
msgid "" msgid ""
"We offer high availablity hosting (HA) in Germany and in Switzerland. Our " "Our products include an innovative datacenter,<br>affordable VM hosting, and "
"infrastructure is powered by Free and Open Source Software like OpenNebula, " "high speed fiber internet for canton Glarus."
"Qemu and GlusterFS."
msgstr "" msgstr ""
"Wir offerieren hohe Verfügbarkeit für das Hosting in Deutschland und in der " "Zu unseren Produkten gehört ein innovatives Rechenzentrum,<br>modernes VM-"
"Schweiz. Unsere Infrastruktur ist unterstützt durch Free and Open Source " "Hosting und Glasfaser-Internet für den Kanton Glarus."
"Software wie OpenNebula."
msgid "Data Center Light"
msgstr ""
#, python-format
msgid ""
"We offer the most affordable hosting in Switzerland. Data Center Light has "
"full FOSS stack, 100%% IPv6 and 100%% SSD. Choose any configuration among "
"CentOS, Debian, Ubuntu, Devuan, and FreeBSD."
msgstr ""
"Wir bieten Ihnen ein erschwingliches Hosting in der Schweiz. Data Center "
"Light basiert auf FOSS Software, 100%% IPv6 und 100%% SSD. Wählen Sie eine "
"beliebige Konfiguration unter CentOS, Debian, Ubuntu, Devuan oder FreeBSD."
#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:24
msgid "Rails Hosting" msgid "Rails Hosting"
msgstr "Rails Hosting" msgstr "Rails Hosting"
#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:26
msgid "" msgid ""
"Ready to go live with your Ruby on Rails application? We offer you ready-to-" "Ready to go live with your Ruby on Rails application? We offer you ready-to-"
"deploy virtual machines or configure your existing infrastructure for Ruby " "deploy virtual machines or configure your existing infrastructure for Ruby "
"on Rails." "on Rails."
msgstr "Sind bereit mit ihrem Ruby on Rails Applikation live zu gehen?" msgstr "Sind bereit mit ihrem Ruby on Rails Applikation live zu gehen?"
#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:32 msgid "High Speed Internet"
msgid " Configuration as a Service"
msgstr "Konfiguration als Service"
#: ungleich_page/templates/ungleich_page/includes/_portfolio.html:34
msgid ""
"You are in need for a configuration?<br>With ungleich you have found an "
"experienced team that configure your systems to provide service like DNS, E-"
"Mail, Databases or Webservers."
msgstr "" msgstr ""
"Sie brauchen eine Konfiguration? Mit ungleich haben sie ein erfahrenes Team "
"gefunden, dass ihnen die Konfiguration von DNS, E-Mail, Datenbanken oder "
"Webservern für ihr System anbietet"
#: ungleich_page/templates/ungleich_page/includes/_services.html:8 msgid ""
"We offer high speed fiber internet in Glarus Süd, Glarus and Glarus Nord. "
"Experience 100 Mbit/s and see how speed can change everything."
msgstr ""
"Wir bieten außerdem Hochgeschwindigkeitsfaser Internet in Glarus Süd, Glarus "
"und Glarus Nord. Surfen Sie mit 100 Mbit/s und erleben Sie, wie "
"Geschwindigkeit alles ändern kann."
msgid "our services" msgid "our services"
msgstr "Unsere Dienstleistungen" msgstr "Unsere Dienstleistungen"
#: ungleich_page/templates/ungleich_page/includes/_services.html:10
msgid "We support our clients in all areas of Unix infrastructure." msgid "We support our clients in all areas of Unix infrastructure."
msgstr "" msgstr ""
"Wir unterstützen unsere Klienten in allen Bereichen der Unix Infrastruktur." "Wir unterstützen unsere Klienten in allen Bereichen der Unix Infrastruktur."
#: ungleich_page/templates/ungleich_page/includes/_services.html:11
msgid "" msgid ""
"Our top notch configuration management is refreshingly simple and reliable." "Our top notch configuration management is refreshingly simple and reliable."
msgstr "" msgstr ""
"Unser erstklassiges Konfigurationsmanagement ist erfrischend einfach und " "Unser erstklassiges Konfigurationsmanagement ist erfrischend einfach und "
"zuverlässig." "zuverlässig."
#: ungleich_page/templates/ungleich_page/includes/_services.html:20
msgid "Hosting" msgid "Hosting"
msgstr "Hosting" msgstr "Hosting"
#: ungleich_page/templates/ungleich_page/includes/_services.html:22
msgid "" msgid ""
"Ruby on Rails. Java hosting, Django hosting, we make it everything run " "Ruby on Rails. Java hosting, Django hosting, we make it everything run "
"smooth and safe." "smooth and safe."
@ -184,11 +211,9 @@ msgstr ""
"Ruby on Rails. Java hosting, Django hosting, wir garantieren einen " "Ruby on Rails. Java hosting, Django hosting, wir garantieren einen "
"reibungslosen Ablauf" "reibungslosen Ablauf"
#: ungleich_page/templates/ungleich_page/includes/_services.html:30
msgid "Configuration as a Service" msgid "Configuration as a Service"
msgstr "Konfiguration als Service" msgstr "Konfiguration als Service"
#: ungleich_page/templates/ungleich_page/includes/_services.html:32
msgid "" msgid ""
"Ruby on Rails, Django, Java, Webserver, Mailserver, any infrastructure that " "Ruby on Rails, Django, Java, Webserver, Mailserver, any infrastructure that "
"needs to configured, we provide comprehensive solutions. Amazon, rackspace " "needs to configured, we provide comprehensive solutions. Amazon, rackspace "
@ -198,11 +223,9 @@ msgstr ""
"welche eine Konfiguration braucht, wir offerieren umfassende Lösungen, " "welche eine Konfiguration braucht, wir offerieren umfassende Lösungen, "
"Amazon, Rackspace oder Bare Metal Servers, wir konfigurieren alles." "Amazon, Rackspace oder Bare Metal Servers, wir konfigurieren alles."
#: ungleich_page/templates/ungleich_page/includes/_services.html:40
msgid "Linux System Engineering" msgid "Linux System Engineering"
msgstr "Linux System Engineering" msgstr "Linux System Engineering"
#: ungleich_page/templates/ungleich_page/includes/_services.html:43
msgid "" msgid ""
"Let your developers develop! We take care of your system administration. " "Let your developers develop! We take care of your system administration. "
"Gentoo, Archlinux, Debian, Ubuntu, and many more." "Gentoo, Archlinux, Debian, Ubuntu, and many more."
@ -210,15 +233,12 @@ msgstr ""
"Lassen sie ihre Entwickler entwickeln! Wir kümmern uns um ihre " "Lassen sie ihre Entwickler entwickeln! Wir kümmern uns um ihre "
"Systemadministration. Gentoo, Archlinux, Debian, Ubuntu und viele mehr." "Systemadministration. Gentoo, Archlinux, Debian, Ubuntu und viele mehr."
#: ungleich_page/templates/ungleich_page/includes/_team.html:8
msgid "Why ungleich?*" msgid "Why ungleich?*"
msgstr "Warum ungleich?" msgstr "Warum ungleich?"
#: ungleich_page/templates/ungleich_page/includes/_team.html:9
msgid "What our customers say" msgid "What our customers say"
msgstr "Was unsere Kunden sagen" msgstr "Was unsere Kunden sagen"
#: ungleich_page/templates/ungleich_page/includes/_team.html:29
msgid "" msgid ""
"\n" "\n"
"\t\t\t \"ungleich helped us getting started with our internal\n" "\t\t\t \"ungleich helped us getting started with our internal\n"
@ -247,7 +267,6 @@ msgstr ""
"Infrastruktur-Einrichtung erhalten, welche es unseren Technikern ermöglicht " "Infrastruktur-Einrichtung erhalten, welche es unseren Technikern ermöglicht "
"effizienter und bequemer zu arbeiten als zuvor." "effizienter und bequemer zu arbeiten als zuvor."
#: ungleich_page/templates/ungleich_page/includes/_team.html:51
msgid "" msgid ""
"\n" "\n"
"\t\t\t \"Thanks to ungleich team, who has designed and\n" "\t\t\t \"Thanks to ungleich team, who has designed and\n"
@ -265,7 +284,6 @@ msgstr ""
"nur in der Kosteneinsparung aber auch zur Zeiteinsparung, was für IT-Firmen " "nur in der Kosteneinsparung aber auch zur Zeiteinsparung, was für IT-Firmen "
"sehr wichtig ist." "sehr wichtig ist."
#: ungleich_page/templates/ungleich_page/includes/_team.html:67
msgid "" msgid ""
"\n" "\n"
"\t\t\t \"ungleich provided an excellent service in designing\n" "\t\t\t \"ungleich provided an excellent service in designing\n"
@ -292,7 +310,6 @@ msgstr ""
"allen Firmen empfehlen, bei denen eine solide Infrastruktur stark gefragt " "allen Firmen empfehlen, bei denen eine solide Infrastruktur stark gefragt "
"ist." "ist."
#: ungleich_page/templates/ungleich_page/includes/_team.html:82
msgid "" msgid ""
"\n" "\n"
"\t\t\t <strong>- Sebastian Plattner,</strong>\n" "\t\t\t <strong>- Sebastian Plattner,</strong>\n"
@ -300,52 +317,60 @@ msgid ""
"\t\t\t " "\t\t\t "
msgstr "" msgstr ""
#: ungleich_page/templates/ungleich_page/includes/_team.html:95
msgid "*ungleich means not equal to (≠) U+2260." msgid "*ungleich means not equal to (≠) U+2260."
msgstr "*ungleich bedeutet nicht gleich wie (≠) U+2260." msgstr "*ungleich bedeutet nicht gleich wie (≠) U+2260."
#: ungleich_page/templates/ungleich_page/landing.html:85
#, fuzzy
#| msgid "our services"
msgid "Services" msgid "Services"
msgstr "Unsere Dienstleistungen" msgstr "Dienstleistungen"
#: ungleich_page/templates/ungleich_page/landing.html:90
msgid "products" msgid "products"
msgstr "PRODUKTE" msgstr "PRODUKTE"
#: ungleich_page/templates/ungleich_page/landing.html:93
msgid "About" msgid "About"
msgstr "Über" msgstr "Über"
#: ungleich_page/templates/ungleich_page/landing.html:96
msgid "WHY UNGLEICH?" msgid "WHY UNGLEICH?"
msgstr "WARUM UNGLEICH?" msgstr "WARUM UNGLEICH?"
#: ungleich_page/templates/ungleich_page/landing.html:99
msgid "BLOG" msgid "BLOG"
msgstr "BLOG" msgstr "BLOG"
#: ungleich_page/templates/ungleich_page/landing.html:102
msgid "CONTACT"
msgstr "KONTAKT"
#: ungleich_page/urls.py:8
#, fuzzy
#| msgid "Contact Us"
msgid "contact/$" msgid "contact/$"
msgstr "Kontaktieren Sie uns" msgstr "kontakt/$"
#: ungleich_page/views.py:26
msgid "Message Successfully Sent" msgid "Message Successfully Sent"
msgstr "Nachricht erfolgreich versendet" msgstr "Nachricht erfolgreich versendet"
#: ungleich_page/views.py:37
msgid "If you have any question, just send us an email." msgid "If you have any question, just send us an email."
msgstr "" msgstr ""
"Wenn Sie irgendwelche Fragen haben, schicken Sie uns einfach eine E-Mail." "Wenn Sie irgendwelche Fragen haben, schicken Sie uns einfach eine E-Mail."
#, fuzzy #~ msgid "Hosting Products "
#~| msgid "Contact Us" #~ msgstr "Hosting Produkte"
#~ msgid "HA Hosting"
#~ msgstr "HA Hosting"
#~ msgid ""
#~ "We offer high availablity hosting (HA) in Germany and in Switzerland. Our "
#~ "infrastructure is powered by Free and Open Source Software like "
#~ "OpenNebula, Qemu and GlusterFS."
#~ msgstr ""
#~ "Wir offerieren hohe Verfügbarkeit für das Hosting in Deutschland und in "
#~ "der Schweiz. Unsere Infrastruktur ist unterstützt durch Free and Open "
#~ "Source Software wie OpenNebula."
#~ msgid " Configuration as a Service"
#~ msgstr "Konfiguration als Service"
#~ msgid ""
#~ "You are in need for a configuration?<br>With ungleich you have found an "
#~ "experienced team that configure your systems to provide service like DNS, "
#~ "E-Mail, Databases or Webservers."
#~ msgstr ""
#~ "Sie brauchen eine Konfiguration? Mit ungleich haben sie ein erfahrenes "
#~ "Team gefunden, dass ihnen die Konfiguration von DNS, E-Mail, Datenbanken "
#~ "oder Webservern für ihr System anbietet"
#~ msgid "Contact" #~ msgid "Contact"
#~ msgstr "Kontaktieren Sie uns" #~ msgstr "Kontaktieren Sie uns"

View file

@ -418,7 +418,6 @@ section h3.section-subheading {
#portfolio .portfolio-item .portfolio-caption h4 { #portfolio .portfolio-item .portfolio-caption h4 {
margin: 0; margin: 0;
font-size: bold;
text-transform: none; text-transform: none;
color: #494949; color: #494949;
} }

View file

@ -0,0 +1,224 @@
.topnav img {
height: 100%;
}
.navbar-transparent #logoWhite {
width: 140px;
}
.navbar-default {
border-bottom: 1px solid #e7e7e7;
}
.navbar-default .navbar-nav>li>a {
text-transform: uppercase;
font-weight: 400;
letter-spacing: 1px;
color: #777;
}
.navbar-transparent .navbar-nav>li>a {
color: #fff;
}
.navbar-transparent .navbar-nav>li>a:hover,
.navbar-transparent .navbar-nav>li>a:focus,
.navbar-transparent .navbar-nav>li>a:focus:active {
color: #fed136;
}
@media (min-width: 768px) {
.navbar-transparent {
border-color: transparent;
}
.navbar-transparent {
background: rgba(0,0,0,0.05);
box-shadow: 0 0 55px rgba(0,0,0,0.09);
}
}
.intro-header {
background: url(../img/glasfaser/header-nico-sans.jpg) no-repeat center center;
background-size: cover;
background-position: left;
background-color: rgb(118, 140, 163);
background-attachment: fixed;
flex-direction: column;
align-items: flex-start;
justify-content: space-between;
padding-top: 70px;
}
.intro-header:before {
background: transparent;
background: rgba(0,0,0,0.2);
}
.price-tag-container {
flex-grow: 1;
display: flex;
flex-direction: column;
margin-right: 8%;
margin-left: 10px;
margin-bottom: 20px;
justify-content: center;
position: relative;
}
.price-tag {
background: url(../img/glasfaser/header-pricetag.png) no-repeat center center;
height: 225px;
width: 225px;
background-size: cover;
}
.high-speed {
width: 100%;
text-align: right;
margin-bottom: 25px;
position: relative;
}
.high-speed h1 {
font-size: 32px;
font-weight: 700;
font-family: 'Open Sans Condensed';
padding: 10px 15px 10px 0;
text-shadow: 0px 2px 2px rgba(0,0,0,0.52);
color: #fff;
}
.high-speed-border {
background: #fff;
height: 3px;
position: absolute;
right: 10px;
left: 20px;
}
.high-speed-border:first-of-type {
width: 40%;
left: initial;
}
.high-speed-border:before {
content: ' ';
display: inline-block;
height: 23px;
width: 23px;
border-radius: 100%;
background: #fff;
position: absolute;
left: -5px;
top: -10px;
}
.split-section .container {
max-width: 1120px;
}
.split-section.right .container {
max-width: 840px;
}
.split-section {
padding: 90px 0;
overflow: hidden;
}
.split-section.right {
padding: 100px 0;
background: rgba(0,0,0,0.03);
}
.split-section.right .split-description {
width: 100%;
}
.split-section .split-text .split-title h2,
.split-section.left .split-text .split-title h2 {
font-size: 40px;
letter-spacing: 0.5px;
}
.split-section.left .split-text .split-title::before,
.split-section.right .split-text .split-title::before {
width: 90%;
max-width: 420px;
}
.team-member h4 {
font-family: 'Raleway', Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
font-weight: 700;
margin-bottom: 20px;
}
.timeline>li .timeline-panel {
display: flex;
min-height: 80px;
align-items: center;
padding-bottom: 15px;
}
.timeline>li.timeline-inverted>.timeline-panel {
padding-bottom: 0;
}
.contact-section h2,
.contact-section h3,
.contact-section p {
color: rgba(255,255,255,0.9);
text-transform: initial;
font-weight: 300;
font-family: 'Lato';
}
.contact-section p {
font-size: 20px;
}
footer {
padding: 20px;
}
@media(max-width: 767px) {
.split-section .split-text .split-title h2,
.split-section.left .split-text .split-title h2 {
font-size: 32px;
line-height: 40px;
}
}
@media(min-width: 768px) {
section {
padding: 90px 0;
}
}
@media (min-width: 768px) {
.intro-header {
align-items: flex-end;
}
.high-speed h1 {
font-size: 88px;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.intro-header {
background-position: -100px;
background-size: auto 110%;
}
.price-tag {
height: 240px;
width: 240px;
}
.timeline>li .timeline-panel {
min-height: 100px;
}
}
@media (min-width: 992px) {
.price-tag {
min-height: 320px;
width: 320px;
}
.timeline>li .timeline-panel {
min-height: 170px;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="196px"
height="196px" viewBox="0 0 196 196" enable-background="new 0 0 196 196" xml:space="preserve">
<g id="Layer_1">
<g>
<ellipse fill="#0D2849" cx="96.871" cy="97.632" rx="68.442" ry="67.431"/>
<ellipse opacity="0.57" fill="none" stroke="#47B9E8" stroke-width="2" stroke-miterlimit="10" cx="96.719" cy="97.321" rx="62.32" ry="61.179"/>
</g>
<g>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#47B9E8" d="M57.043,130.8c0-20.398,0-40.777,0-61.19
c9.176,0,18.341,0,27.533,0c0-0.142-0.001-0.25,0-0.36c0.021-1.162,0.002-2.325,0.069-3.485c0.066-1.101,0.483-2.09,1.144-2.978
c0.923-1.239,2.173-1.945,3.664-2.244c0.416-0.082,0.85-0.11,1.275-0.112c4.061-0.007,8.123-0.007,12.179-0.002
c1.668,0.002,3.154,0.521,4.364,1.683c0.668,0.641,1.144,1.424,1.442,2.312c0.28,0.833,0.355,1.69,0.351,2.561
c-0.007,0.865-0.003,1.73-0.003,2.616c9.187,0,18.341,0,27.523,0c0,20.406,0,40.794,0,61.201
C110.086,130.8,83.578,130.8,57.043,130.8z M130.484,75.751c-22.465,0-44.889,0-67.331,0c0,0.123,0,0.224,0,0.325
c0,5.925,0,11.853,0,17.78c0,0.212,0.001,0.428,0.019,0.641c0.138,1.929,0.936,3.506,2.536,4.634
c1.15,0.811,2.456,1.086,3.846,1.086c18.178-0.003,36.358-0.002,54.534-0.003c0.225,0,0.449-0.002,0.672-0.018
c1.933-0.139,3.509-0.933,4.638-2.529c0.8-1.132,1.091-2.417,1.091-3.785c-0.004-5.937-0.004-11.873-0.004-17.81
C130.484,75.971,130.484,75.87,130.484,75.751z M130.469,104.805c-0.041,0.003-0.063,0-0.078,0.007
c-1.979,1.076-4.105,1.528-6.347,1.528c-18.199-0.007-36.398-0.003-54.597-0.003c-1.986,0-3.885-0.378-5.675-1.264
c-0.196-0.098-0.396-0.186-0.594-0.28c0,6.646,0,13.271,0,19.892c22.442,0,44.859,0,67.291,0
C130.469,118.053,130.469,111.436,130.469,104.805z M90.708,69.586c4.091,0,8.154,0,12.215,0c0-1.017,0-2.012,0-3.011
c-4.083,0-8.145,0-12.215,0C90.708,67.589,90.708,68.575,90.708,69.586z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#0D2849" d="M130.484,75.751c0,0.119,0,0.22,0,0.321
c0,5.937,0,11.873,0.004,17.81c0,1.369-0.291,2.653-1.091,3.785c-1.129,1.597-2.705,2.391-4.638,2.529
c-0.223,0.016-0.447,0.018-0.672,0.018c-18.176,0.001-36.356,0-54.534,0.003c-1.39,0-2.695-0.275-3.846-1.086
c-1.6-1.128-2.397-2.705-2.536-4.634c-0.017-0.213-0.019-0.428-0.019-0.641c0-5.928,0-11.855,0-17.78c0-0.101,0-0.202,0-0.325
C85.595,75.751,108.02,75.751,130.484,75.751z M81.511,87.99c-2.049,0-4.07,0-6.093,0c0,3.061,0,6.104,0,9.138
c2.043,0,4.064,0,6.093,0C81.511,94.078,81.511,91.05,81.511,87.99z M112.144,87.984c0,3.069,0,6.112,0,9.144
c2.048,0,4.068,0,6.083,0c0-3.06,0-6.095,0-9.144C116.194,87.984,114.18,87.984,112.144,87.984z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#0D2849" d="M130.469,104.805c0,6.631,0,13.248,0,19.88
c-22.432,0-44.848,0-67.291,0c0-6.621,0-13.245,0-19.892c0.198,0.095,0.398,0.183,0.594,0.28c1.79,0.886,3.689,1.264,5.675,1.264
c18.199,0,36.397-0.004,54.597,0.003c2.241,0,4.367-0.452,6.347-1.528C130.405,104.805,130.428,104.808,130.469,104.805z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#0D2849" d="M90.708,69.586c0-1.011,0-1.997,0-3.011c4.07,0,8.132,0,12.215,0
c0,1,0,1.995,0,3.011C98.862,69.586,94.799,69.586,90.708,69.586z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#47B9E8" d="M81.511,87.99c0,3.06,0,6.088,0,9.138c-2.029,0-4.05,0-6.093,0
c0-3.034,0-6.077,0-9.138C77.441,87.99,79.462,87.99,81.511,87.99z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#47B9E8" d="M112.144,87.984c2.036,0,4.051,0,6.083,0
c0,3.049,0,6.084,0,9.144c-2.015,0-4.035,0-6.083,0C112.144,94.097,112.144,91.054,112.144,87.984z"/>
</g>
<image display="none" overflow="visible" width="170" height="166" id="Layer_4_xA0_Image_1_" xlink:href="3DFCBC34760ACD66.png" transform="matrix(1 0 0 1 12.8145 16.6162)">
</image>
<rect x="61.251" y="73.602" display="none" fill="none" stroke="#FFFFFF" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/>
<rect x="103.226" y="74.338" display="none" fill="none" stroke="#FFFFFF" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/>
<rect x="72.665" y="85.384" display="none" fill="#FFFFFF" width="5.155" height="6.996"/>
<rect x="72.665" y="107.477" display="none" fill="#FFFFFF" width="5.155" height="6.995"/>
<rect x="103.226" y="97.321" display="none" fill="#FFFFFF" width="28.351" height="5"/>
</g>
<g id="Layer_2" display="none">
<g display="inline">
<text transform="matrix(1 0 0 1 54.2861 73.6836)" fill="#FFFFFF" font-family="'HelveticaNeue-CondensedBold'" font-size="17.6318">IP-Adressen</text>
<line fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="46.373" y1="116.581" x2="147.75" y2="116.581"/>
<text transform="matrix(1 0 0 1 67.772 108.3828)" fill="#FFFFFF" font-family="'HelveticaNeue-Bold'" font-size="26.4477">IPv6</text>
<line fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="46.373" y1="81.142" x2="147.75" y2="81.142"/>
</g>
<text transform="matrix(1 0 0 1 67.772 141.3809)" display="inline" fill="#FFFFFF" font-family="'HelveticaNeue-Bold'" font-size="26.4477">IPv4</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

View file

@ -0,0 +1,168 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="196px" height="196px" viewBox="0 0 196 196" enable-background="new 0 0 196 196" xml:space="preserve">
<g id="Layer_1_1_">
<g>
<ellipse fill="#0D2849" cx="96.871" cy="97.632" rx="68.441" ry="67.431"/>
<ellipse opacity="0.57" fill="none" stroke="#47B9E8" stroke-width="2" stroke-miterlimit="10" enable-background="new " cx="96.719" cy="97.321" rx="62.32" ry="61.179"/>
</g>
<g display="none">
<path display="inline" fill="#FFFFFF" d="M57.043,130.8c0-20.397,0-40.777,0-61.19c9.176,0,18.341,0,27.533,0
c0-0.142-0.001-0.25,0-0.36c0.021-1.162,0.002-2.325,0.069-3.485c0.066-1.101,0.483-2.09,1.144-2.978
c0.923-1.239,2.173-1.945,3.664-2.244c0.416-0.082,0.85-0.11,1.275-0.112c4.061-0.007,8.124-0.007,12.179-0.002
c1.668,0.002,3.153,0.521,4.364,1.683c0.668,0.641,1.144,1.424,1.441,2.312c0.28,0.833,0.355,1.69,0.352,2.561
c-0.008,0.865-0.004,1.73-0.004,2.616c9.188,0,18.342,0,27.523,0c0,20.406,0,40.793,0,61.201
C110.086,130.8,83.578,130.8,57.043,130.8z M130.484,75.751c-22.465,0-44.889,0-67.332,0c0,0.123,0,0.224,0,0.325
c0,5.925,0,11.853,0,17.78c0,0.212,0.001,0.428,0.019,0.641c0.138,1.929,0.936,3.506,2.536,4.634
c1.15,0.811,2.456,1.086,3.846,1.086c18.178-0.003,36.358-0.002,54.534-0.003c0.225,0,0.449-0.002,0.672-0.019
c1.934-0.139,3.51-0.932,4.639-2.528c0.8-1.132,1.09-2.417,1.09-3.785c-0.004-5.937-0.004-11.873-0.004-17.81
C130.484,75.971,130.484,75.87,130.484,75.751z M130.469,104.805c-0.041,0.004-0.062,0-0.078,0.008
c-1.979,1.076-4.104,1.527-6.347,1.527c-18.198-0.007-36.398-0.003-54.597-0.003c-1.986,0-3.885-0.378-5.675-1.264
c-0.196-0.099-0.396-0.187-0.594-0.28c0,6.646,0,13.271,0,19.893c22.442,0,44.859,0,67.291,0
C130.469,118.053,130.469,111.436,130.469,104.805z M90.708,69.586c4.091,0,8.153,0,12.215,0c0-1.017,0-2.012,0-3.011
c-4.083,0-8.145,0-12.215,0C90.708,67.589,90.708,68.575,90.708,69.586z"/>
<path display="inline" fill="#3077A3" d="M130.484,75.751c0,0.119,0,0.22,0,0.321c0,5.937,0,11.873,0.004,17.81
c0,1.369-0.291,2.653-1.092,3.785c-1.129,1.597-2.705,2.392-4.638,2.528c-0.223,0.017-0.446,0.019-0.672,0.019
c-18.176,0.001-36.356,0-54.534,0.003c-1.39,0-2.695-0.275-3.846-1.086c-1.6-1.128-2.397-2.705-2.536-4.634
c-0.017-0.213-0.019-0.428-0.019-0.641c0-5.928,0-11.855,0-17.78c0-0.101,0-0.202,0-0.325
C85.595,75.751,108.02,75.751,130.484,75.751z M81.511,87.99c-2.049,0-4.07,0-6.093,0c0,3.061,0,6.104,0,9.138
c2.043,0,4.064,0,6.093,0C81.511,94.078,81.511,91.05,81.511,87.99z M112.145,87.984c0,3.069,0,6.112,0,9.144
c2.047,0,4.067,0,6.082,0c0-3.06,0-6.095,0-9.144C116.193,87.984,114.18,87.984,112.145,87.984z"/>
<path display="inline" fill="#3077A3" d="M130.469,104.805c0,6.631,0,13.248,0,19.881c-22.432,0-44.848,0-67.291,0
c0-6.621,0-13.246,0-19.893c0.198,0.096,0.398,0.184,0.594,0.28c1.79,0.886,3.689,1.264,5.675,1.264
c18.199,0,36.397-0.004,54.597,0.003c2.241,0,4.367-0.451,6.347-1.527C130.404,104.805,130.428,104.809,130.469,104.805z"/>
<path display="inline" fill="#3077A3" d="M90.708,69.586c0-1.011,0-1.997,0-3.011c4.07,0,8.132,0,12.215,0c0,1,0,1.995,0,3.011
C98.861,69.586,94.799,69.586,90.708,69.586z"/>
<path display="inline" fill="#FFFFFF" d="M81.511,87.99c0,3.06,0,6.088,0,9.138c-2.029,0-4.05,0-6.093,0c0-3.034,0-6.077,0-9.138
C77.441,87.99,79.462,87.99,81.511,87.99z"/>
<path display="inline" fill="#FFFFFF" d="M112.145,87.984c2.035,0,4.051,0,6.082,0c0,3.049,0,6.084,0,9.144
c-2.015,0-4.035,0-6.082,0C112.145,94.097,112.145,91.054,112.145,87.984z"/>
</g>
<image display="none" overflow="visible" enable-background="new " width="171" height="167" id="Layer_4_xA0_Image_2_" xlink:href="B1D654609C24A42D.png" transform="matrix(0.9941 0 0 0.9941 12.8198 16.6104)">
</image>
<rect x="61.251" y="73.602" display="none" fill="none" stroke="#FFFFFF" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/>
<rect x="103.227" y="74.338" display="none" fill="none" stroke="#FFFFFF" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/>
<rect x="72.665" y="85.384" display="none" fill="#FFFFFF" width="5.155" height="6.996"/>
<rect x="72.665" y="107.477" display="none" fill="#FFFFFF" width="5.155" height="6.996"/>
<rect x="103.227" y="97.321" display="none" fill="#FFFFFF" width="28.351" height="5"/>
</g>
<g id="Layer_2">
<g>
<g enable-background="new ">
<path fill="#47B9E8" d="M55.291,61.095h2.539v12.589h-2.539V61.095z"/>
<path fill="#47B9E8" d="M64.16,61.095c0.646,0,1.19,0.108,1.631,0.326c0.441,0.218,0.796,0.502,1.067,0.854
c0.271,0.354,0.464,0.756,0.582,1.208c0.117,0.453,0.176,0.914,0.176,1.385c0,0.646-0.097,1.21-0.291,1.692
c-0.194,0.481-0.464,0.876-0.811,1.181c-0.347,0.307-0.767,0.535-1.261,0.688c-0.494,0.152-1.04,0.229-1.64,0.229h-1.358v5.025
h-2.539V61.095H64.16z M63.384,66.79c0.505,0,0.914-0.153,1.226-0.459s0.467-0.781,0.467-1.428c0-0.635-0.135-1.117-0.406-1.446
s-0.723-0.493-1.357-0.493h-1.058v3.826H63.384z"/>
<path fill="#47B9E8" d="M73.734,69.628h-4.972v-2.08h4.972V69.628z"/>
<path fill="#47B9E8" d="M80.98,61.095l3.333,12.589h-2.645l-0.582-2.662h-3.35l-0.582,2.662H74.51l3.333-12.589H80.98z
M80.646,68.94l-1.216-5.659h-0.036l-1.216,5.659H80.646z"/>
<path fill="#47B9E8" d="M89.955,72.679c-0.271,0.446-0.573,0.758-0.908,0.935c-0.335,0.176-0.75,0.265-1.243,0.265
c-1,0-1.734-0.382-2.204-1.146c-0.47-0.764-0.705-2.027-0.705-3.791c0-1.763,0.235-3.035,0.705-3.817
c0.47-0.781,1.205-1.172,2.204-1.172c0.458,0,0.849,0.094,1.172,0.282c0.323,0.188,0.614,0.47,0.873,0.846h0.035v-3.984h2.433
v12.589H89.99v-1.005H89.955z M87.566,71.276c0.159,0.523,0.502,0.785,1.032,0.785c0.541,0,0.89-0.262,1.049-0.785
c0.159-0.522,0.238-1.301,0.238-2.336c0-1.034-0.08-1.812-0.238-2.336s-0.508-0.785-1.049-0.785
c-0.529,0-0.873,0.262-1.032,0.785s-0.238,1.302-0.238,2.336C87.328,69.976,87.407,70.754,87.566,71.276z"/>
<path fill="#47B9E8" d="M96.268,64.197v1.27h0.035c0.247-0.458,0.546-0.825,0.899-1.102c0.353-0.276,0.782-0.414,1.287-0.414
c0.071,0,0.144,0.003,0.22,0.009s0.15,0.015,0.221,0.026v2.327c-0.129-0.012-0.256-0.021-0.379-0.026
c-0.124-0.006-0.25-0.009-0.379-0.009c-0.211,0-0.423,0.029-0.635,0.088c-0.211,0.06-0.405,0.156-0.582,0.291
c-0.176,0.136-0.317,0.312-0.423,0.529c-0.105,0.218-0.159,0.484-0.159,0.802v5.695H93.94v-9.486H96.268z"/>
<path fill="#47B9E8" d="M101.892,70.069c0,0.282,0.021,0.555,0.062,0.819s0.109,0.5,0.203,0.705
c0.094,0.206,0.217,0.371,0.37,0.494s0.341,0.186,0.564,0.186c0.411,0,0.711-0.147,0.899-0.441
c0.188-0.293,0.316-0.74,0.388-1.34h2.187c-0.047,1.105-0.342,1.945-0.882,2.521c-0.541,0.576-1.394,0.864-2.557,0.864
c-0.882,0-1.569-0.147-2.063-0.441c-0.493-0.293-0.857-0.682-1.093-1.163c-0.235-0.482-0.379-1.023-0.433-1.622
c-0.053-0.6-0.078-1.199-0.078-1.799c0-0.635,0.043-1.246,0.132-1.834c0.088-0.588,0.265-1.11,0.528-1.569
c0.266-0.458,0.645-0.822,1.138-1.093s1.151-0.405,1.975-0.405c0.706,0,1.284,0.114,1.737,0.344
c0.452,0.229,0.808,0.553,1.066,0.97c0.258,0.417,0.435,0.923,0.529,1.516c0.094,0.594,0.141,1.255,0.141,1.984v0.546h-4.813
V70.069z M104.307,66.904c-0.035-0.276-0.097-0.512-0.185-0.705c-0.089-0.194-0.212-0.341-0.37-0.441
c-0.158-0.1-0.361-0.149-0.608-0.149s-0.45,0.056-0.608,0.167c-0.158,0.112-0.285,0.259-0.379,0.441
c-0.094,0.182-0.162,0.385-0.203,0.608c-0.041,0.223-0.062,0.446-0.062,0.67v0.37h2.486
C104.365,67.501,104.342,67.181,104.307,66.904z"/>
<path fill="#47B9E8" d="M109.756,70.897c0,0.412,0.107,0.744,0.326,0.996c0.217,0.253,0.531,0.38,0.943,0.38
c0.375,0,0.676-0.095,0.898-0.282c0.224-0.188,0.336-0.471,0.336-0.847c0-0.306-0.089-0.538-0.266-0.696
c-0.176-0.159-0.381-0.285-0.617-0.379l-1.709-0.617c-0.671-0.235-1.176-0.567-1.518-0.996c-0.34-0.43-0.511-0.979-0.511-1.648
c0-0.389,0.064-0.756,0.194-1.103c0.129-0.347,0.334-0.649,0.617-0.908c0.281-0.258,0.643-0.464,1.084-0.617
c0.441-0.152,0.973-0.229,1.596-0.229c1.104,0,1.922,0.235,2.451,0.705c0.528,0.47,0.793,1.135,0.793,1.992v0.388h-2.187
c0-0.493-0.079-0.854-0.237-1.084c-0.159-0.229-0.438-0.344-0.838-0.344c-0.307,0-0.573,0.085-0.803,0.256
c-0.229,0.17-0.344,0.426-0.344,0.767c0,0.235,0.074,0.447,0.221,0.635c0.146,0.188,0.426,0.347,0.838,0.476l1.463,0.494
c0.764,0.259,1.305,0.597,1.622,1.014c0.317,0.418,0.476,0.984,0.476,1.701c0,0.506-0.088,0.943-0.264,1.314
c-0.176,0.37-0.42,0.679-0.732,0.925c-0.311,0.247-0.682,0.424-1.11,0.529s-0.902,0.159-1.419,0.159
c-0.682,0-1.25-0.065-1.701-0.194c-0.453-0.129-0.812-0.323-1.076-0.582c-0.265-0.258-0.449-0.573-0.555-0.943
c-0.106-0.37-0.159-0.784-0.159-1.243V70.58h2.187V70.897z"/>
<path fill="#47B9E8" d="M117.584,70.897c0,0.412,0.107,0.744,0.326,0.996c0.217,0.253,0.531,0.38,0.943,0.38
c0.375,0,0.676-0.095,0.898-0.282c0.224-0.188,0.336-0.471,0.336-0.847c0-0.306-0.089-0.538-0.266-0.696
c-0.176-0.159-0.381-0.285-0.617-0.379l-1.709-0.617c-0.671-0.235-1.176-0.567-1.518-0.996c-0.34-0.43-0.511-0.979-0.511-1.648
c0-0.389,0.064-0.756,0.194-1.103c0.129-0.347,0.334-0.649,0.617-0.908c0.281-0.258,0.643-0.464,1.084-0.617
c0.441-0.152,0.973-0.229,1.596-0.229c1.104,0,1.922,0.235,2.451,0.705c0.528,0.47,0.793,1.135,0.793,1.992v0.388h-2.187
c0-0.493-0.079-0.854-0.237-1.084c-0.159-0.229-0.438-0.344-0.838-0.344c-0.307,0-0.573,0.085-0.803,0.256
c-0.229,0.17-0.344,0.426-0.344,0.767c0,0.235,0.074,0.447,0.221,0.635c0.146,0.188,0.426,0.347,0.838,0.476l1.463,0.494
c0.764,0.259,1.305,0.597,1.622,1.014c0.317,0.418,0.476,0.984,0.476,1.701c0,0.506-0.088,0.943-0.264,1.314
c-0.176,0.37-0.42,0.679-0.732,0.925c-0.311,0.247-0.682,0.424-1.11,0.529s-0.902,0.159-1.419,0.159
c-0.682,0-1.25-0.065-1.701-0.194c-0.453-0.129-0.812-0.323-1.076-0.582c-0.265-0.258-0.449-0.573-0.555-0.943
c-0.106-0.37-0.159-0.784-0.159-1.243V70.58h2.187V70.897z"/>
<path fill="#47B9E8" d="M125.711,70.069c0,0.282,0.021,0.555,0.062,0.819s0.108,0.5,0.203,0.705
c0.094,0.206,0.217,0.371,0.369,0.494c0.153,0.123,0.342,0.186,0.564,0.186c0.412,0,0.711-0.147,0.899-0.441
c0.188-0.293,0.317-0.74,0.388-1.34h2.187c-0.047,1.105-0.341,1.945-0.882,2.521s-1.393,0.864-2.557,0.864
c-0.881,0-1.568-0.147-2.062-0.441c-0.494-0.293-0.858-0.682-1.094-1.163c-0.234-0.482-0.379-1.023-0.432-1.622
c-0.053-0.6-0.079-1.199-0.079-1.799c0-0.635,0.044-1.246,0.132-1.834s0.265-1.11,0.529-1.569
c0.265-0.458,0.644-0.822,1.137-1.093c0.494-0.271,1.152-0.405,1.975-0.405c0.706,0,1.285,0.114,1.737,0.344
c0.452,0.229,0.808,0.553,1.067,0.97c0.258,0.417,0.434,0.923,0.528,1.516c0.095,0.594,0.142,1.255,0.142,1.984v0.546h-4.814
V70.069z M128.127,66.904c-0.035-0.276-0.098-0.512-0.186-0.705c-0.088-0.194-0.211-0.341-0.369-0.441
c-0.159-0.1-0.362-0.149-0.609-0.149c-0.246,0-0.449,0.056-0.607,0.167c-0.159,0.112-0.285,0.259-0.379,0.441
c-0.095,0.182-0.162,0.385-0.203,0.608c-0.041,0.223-0.062,0.446-0.062,0.67v0.37h2.486
C128.186,67.501,128.162,67.181,128.127,66.904z"/>
<path fill="#47B9E8" d="M134.122,64.197v1.111h0.035c0.259-0.47,0.593-0.813,1.005-1.031c0.411-0.218,0.882-0.326,1.41-0.326
c0.776,0,1.373,0.211,1.79,0.635c0.417,0.423,0.626,1.11,0.626,2.062v7.035h-2.434v-6.541c0-0.494-0.082-0.838-0.246-1.032
c-0.165-0.193-0.43-0.291-0.794-0.291c-0.858,0-1.287,0.523-1.287,1.569v6.295h-2.433v-9.486H134.122z"/>
</g>
<line fill="none" stroke="#47B9E8" stroke-width="2" stroke-miterlimit="10" x1="46.373" y1="116.581" x2="147.75" y2="116.581"/>
<g enable-background="new ">
<path fill="#47B9E8" d="M76.196,90.247v17.136h-3.768V90.247H76.196z"/>
<path fill="#47B9E8" d="M87.236,90.247c1.072,0,1.984,0.155,2.736,0.468c0.752,0.312,1.364,0.724,1.836,1.236
c0.472,0.512,0.816,1.096,1.032,1.752c0.216,0.656,0.324,1.336,0.324,2.04c0,0.688-0.108,1.364-0.324,2.027
c-0.216,0.664-0.56,1.252-1.032,1.765c-0.472,0.512-1.084,0.924-1.836,1.235c-0.752,0.312-1.665,0.469-2.736,0.469h-3.96v6.144
h-3.768V90.247H87.236z M86.205,98.311c0.432,0,0.848-0.031,1.248-0.096c0.399-0.063,0.752-0.188,1.056-0.372
c0.304-0.184,0.548-0.444,0.732-0.78c0.184-0.336,0.276-0.775,0.276-1.319s-0.092-0.984-0.276-1.32
c-0.184-0.336-0.428-0.596-0.732-0.78c-0.304-0.184-0.656-0.308-1.056-0.372c-0.4-0.063-0.816-0.096-1.248-0.096h-2.928v5.136
H86.205z"/>
<path fill="#47B9E8" d="M98.229,107.383L93.98,94.975h3.576l2.616,8.473h0.049l2.615-8.473h3.385l-4.2,12.408H98.229z"/>
<path fill="#47B9E8" d="M114.884,93.438c-0.399-0.416-0.896-0.624-1.487-0.624c-0.609,0-1.117,0.181-1.524,0.54
c-0.408,0.36-0.732,0.801-0.972,1.32c-0.24,0.521-0.417,1.076-0.528,1.668c-0.112,0.592-0.177,1.12-0.192,1.584l0.049,0.048
c0.463-0.672,1.008-1.151,1.631-1.439c0.625-0.288,1.344-0.433,2.16-0.433c0.721,0,1.424,0.156,2.112,0.469
c0.688,0.312,1.272,0.731,1.752,1.26c0.448,0.512,0.776,1.096,0.983,1.752c0.209,0.656,0.312,1.319,0.312,1.992
c0,0.863-0.141,1.668-0.42,2.411c-0.28,0.744-0.68,1.393-1.199,1.944c-0.521,0.552-1.141,0.984-1.861,1.296
c-0.719,0.312-1.52,0.468-2.399,0.468c-1.265,0-2.312-0.252-3.144-0.756s-1.496-1.164-1.992-1.979
c-0.496-0.816-0.84-1.74-1.032-2.772c-0.192-1.031-0.288-2.084-0.288-3.155c0-1.04,0.12-2.08,0.359-3.12
c0.24-1.04,0.625-1.98,1.152-2.82c0.528-0.84,1.208-1.524,2.041-2.052c0.831-0.528,1.848-0.792,3.047-0.792
c0.721,0,1.393,0.104,2.017,0.312s1.176,0.509,1.655,0.9c0.48,0.392,0.873,0.876,1.177,1.452c0.304,0.575,0.504,1.24,0.6,1.991
h-3.239C115.539,94.343,115.283,93.855,114.884,93.438z M112.016,98.923c-0.344,0.168-0.628,0.396-0.852,0.684
c-0.225,0.288-0.393,0.621-0.504,0.996c-0.112,0.376-0.168,0.772-0.168,1.188c0,0.384,0.06,0.764,0.18,1.14
s0.296,0.712,0.527,1.008c0.232,0.297,0.517,0.532,0.853,0.708c0.336,0.177,0.72,0.265,1.151,0.265
c0.416,0,0.781-0.088,1.093-0.265c0.312-0.176,0.579-0.407,0.804-0.695s0.393-0.616,0.504-0.984
c0.112-0.368,0.168-0.744,0.168-1.128c0-0.399-0.052-0.788-0.156-1.164c-0.104-0.376-0.26-0.712-0.467-1.008
c-0.209-0.296-0.477-0.536-0.805-0.72c-0.328-0.185-0.708-0.276-1.141-0.276C112.756,98.671,112.359,98.755,112.016,98.923z"/>
</g>
<line fill="none" stroke="#47B9E8" stroke-width="2" stroke-miterlimit="10" x1="46.373" y1="81.142" x2="147.75" y2="81.142"/>
</g>
<g enable-background="new ">
<path fill="#47B9E8" d="M76.196,123.245v17.136h-3.768v-17.136H76.196z"/>
<path fill="#47B9E8" d="M87.236,123.245c1.072,0,1.984,0.155,2.736,0.468c0.752,0.312,1.364,0.724,1.836,1.236
c0.472,0.512,0.816,1.096,1.032,1.752c0.216,0.656,0.324,1.336,0.324,2.04c0,0.688-0.108,1.364-0.324,2.027
c-0.216,0.664-0.56,1.252-1.032,1.765c-0.472,0.512-1.084,0.924-1.836,1.235c-0.752,0.312-1.665,0.469-2.736,0.469h-3.96v6.144
h-3.768v-17.136H87.236z M86.205,131.309c0.432,0,0.848-0.031,1.248-0.096c0.399-0.063,0.752-0.188,1.056-0.372
c0.304-0.184,0.548-0.444,0.732-0.78c0.184-0.336,0.276-0.775,0.276-1.319s-0.092-0.984-0.276-1.32
c-0.184-0.336-0.428-0.596-0.732-0.78c-0.304-0.184-0.656-0.308-1.056-0.372c-0.4-0.063-0.816-0.096-1.248-0.096h-2.928v5.136
H86.205z"/>
<path fill="#47B9E8" d="M98.229,140.381l-4.248-12.408h3.576l2.616,8.473h0.049l2.615-8.473h3.385l-4.2,12.408H98.229z"/>
<path fill="#47B9E8" d="M106.724,136.493v-3.12l7.296-9.792h3.049v10.104h2.231v2.809h-2.231v3.888h-3.24v-3.888H106.724z
M113.756,127.853l-4.344,5.832h4.416v-5.832H113.756z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="196px" height="196px" viewBox="0 0 196 196" enable-background="new 0 0 196 196" xml:space="preserve">
<g>
<ellipse fill="#0D2849" cx="96.871" cy="97.632" rx="68.441" ry="67.431"/>
<ellipse opacity="0.57" fill="none" stroke="#47B9E8" stroke-width="2" stroke-miterlimit="10" enable-background="new " cx="96.719" cy="97.321" rx="62.32" ry="61.179"/>
</g>
<g display="none">
<path display="inline" opacity="0.84" fill="#FFFFFF" enable-background="new " d="M40.517,144.309c0-29.391,0-58.75,0-88.158
c13.22,0,26.423,0,39.667,0c0-0.204-0.002-0.36,0-0.519c0.03-1.674,0.003-3.351,0.1-5.022c0.094-1.585,0.694-3.012,1.647-4.29
c1.329-1.784,3.13-2.802,5.277-3.232c0.6-0.118,1.225-0.159,1.838-0.161c5.851-0.011,11.702-0.011,17.547-0.003
c2.4,0.003,4.544,0.751,6.286,2.425c0.964,0.923,1.646,2.051,2.078,3.329c0.402,1.201,0.512,2.436,0.506,3.69
c-0.011,1.246-0.005,2.492-0.005,3.768c13.235,0,26.423,0,39.653,0c0,29.4,0,58.772,0,88.173
C116.934,144.309,78.744,144.309,40.517,144.309z M146.322,64.998c-32.365,0-64.672,0-97.002,0c0,0.177,0,0.323,0,0.468
c0,8.537,0,17.076,0,25.616c0,0.307,0.003,0.616,0.027,0.923c0.199,2.78,1.349,5.052,3.652,6.677
c1.658,1.168,3.539,1.563,5.542,1.563c26.189-0.005,52.38-0.003,78.566-0.005c0.324,0,0.646-0.004,0.97-0.024
c2.782-0.198,5.055-1.343,6.68-3.644c1.152-1.631,1.572-3.48,1.572-5.453c-0.006-8.553-0.006-17.106-0.006-25.659
C146.322,65.315,146.322,65.169,146.322,64.998z M146.301,106.855c-0.06,0.004-0.092,0-0.113,0.011
c-2.853,1.55-5.914,2.2-9.145,2.2c-26.219-0.01-52.438-0.004-78.656-0.004c-2.861,0-5.598-0.545-8.176-1.819
c-0.283-0.142-0.571-0.271-0.856-0.404c0,9.576,0,19.119,0,28.657c32.333,0,64.627,0,96.946,0
C146.301,125.941,146.301,116.409,146.301,106.855z M89.017,56.116c5.894,0,11.747,0,17.599,0c0-1.464,0-2.898,0-4.338
c-5.884,0-11.734,0-17.599,0C89.017,53.239,89.017,54.66,89.017,56.116z"/>
<path display="inline" fill="#3077A3" d="M146.322,64.998c0,0.172,0,0.317,0,0.463c0,8.553,0,17.106,0.006,25.659
c0,1.973-0.42,3.822-1.572,5.453c-1.625,2.301-3.896,3.444-6.68,3.644c-0.323,0.021-0.646,0.024-0.969,0.024
c-26.188,0.002-52.378,0-78.567,0.005c-2.002,0-3.884-0.396-5.542-1.562c-2.304-1.625-3.453-3.897-3.652-6.678
c-0.024-0.307-0.027-0.616-0.027-0.923c0-8.54,0-17.079,0-25.616c0-0.146,0-0.291,0-0.468
C81.65,64.998,113.957,64.998,146.322,64.998z M75.768,82.631c-2.953,0-5.865,0-8.779,0c0,4.411,0,8.795,0,13.166
c2.944,0,5.856,0,8.779,0C75.768,91.402,75.768,87.039,75.768,82.631z M119.898,82.623c0,4.422,0,8.806,0,13.174
c2.949,0,5.861,0,8.764,0c0-4.408,0-8.781,0-13.174C125.734,82.623,122.833,82.623,119.898,82.623z"/>
<path display="inline" fill="#3077A3" d="M146.301,106.855c0,9.554,0,19.086,0,28.641c-32.316,0-64.613,0-96.946,0
c0-9.538,0-19.081,0-28.657c0.285,0.136,0.573,0.265,0.856,0.404c2.578,1.274,5.315,1.819,8.176,1.819
c26.219,0,52.438-0.006,78.656,0.004c3.229,0,6.292-0.65,9.145-2.2C146.209,106.855,146.241,106.859,146.301,106.855z"/>
<path display="inline" fill="#3077A3" d="M89.017,56.116c0-1.456,0-2.877,0-4.338c5.864,0,11.715,0,17.599,0
c0,1.44,0,2.874,0,4.338C100.764,56.116,94.911,56.116,89.017,56.116z"/>
<path display="inline" opacity="0.84" fill="#FFFFFF" enable-background="new " d="M75.768,82.631c0,4.408,0,8.771,0,13.166
c-2.923,0-5.835,0-8.779,0c0-4.371,0-8.754,0-13.166C69.903,82.631,72.815,82.631,75.768,82.631z"/>
<path display="inline" opacity="0.84" fill="#FFFFFF" enable-background="new " d="M119.898,82.623c2.935,0,5.836,0,8.764,0
c0,4.393,0,8.766,0,13.174c-2.9,0-5.812,0-8.764,0C119.898,91.429,119.898,87.044,119.898,82.623z"/>
</g>
<image display="none" overflow="visible" enable-background="new " width="171" height="167" id="Layer_4_xA0_Image_2_" xlink:href="C949B290C0D038A2.png" transform="matrix(0.9941 0 0 0.9941 12.8198 16.6104)">
</image>
<rect x="61.251" y="73.602" fill="none" stroke="#47B9E8" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/>
<rect x="103.227" y="74.338" fill="none" stroke="#47B9E8" stroke-width="5.5" stroke-miterlimit="10" width="28.351" height="52.284"/>
<rect x="72.665" y="85.384" fill="#47B9E8" width="5.155" height="6.996"/>
<rect x="72.665" y="107.477" fill="#47B9E8" width="5.155" height="6.996"/>
<rect x="103.227" y="97.321" fill="#47B9E8" width="28.351" height="5"/>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="448px" height="125px" viewBox="-32.5 -87.5 448 125" enable-background="new -32.5 -87.5 448 125" xml:space="preserve">
<g>
<path fill="#050505" d="M93.06,20.975c0-1.765,0.621-3.482,1.869-5.161c1.247-1.674,3.027-3.184,5.338-4.517v-0.375
c-1.208-0.664-2.28-1.59-3.198-2.779c-0.906-1.189-1.364-2.725-1.364-4.609c0-1.462,0.473-2.938,1.419-4.432
c0.935-1.49,2.265-2.816,3.974-3.967v-0.368c-1.589-1.154-2.929-2.695-4.025-4.613c-1.089-1.916-1.636-4.212-1.636-6.887
c0-2.498,0.482-4.735,1.456-6.716c0.975-1.978,2.286-3.66,3.932-5.065c1.64-1.401,3.54-2.464,5.703-3.198
c2.158-0.729,4.455-1.091,6.893-1.091c2.492,0,4.745,0.363,6.759,1.091h18.348v6.85h-11.139c0.918,0.975,1.737,2.18,2.466,3.604
c0.733,1.438,1.096,3.037,1.096,4.799c0,2.44-0.455,4.607-1.366,6.481c-0.913,1.894-2.164,3.486-3.747,4.796
c-1.588,1.307-3.438,2.294-5.564,2.961c-2.131,0.668-4.416,1.013-6.852,1.013c-1.092,0-2.265-0.123-3.52-0.371
c-1.241-0.236-2.473-0.61-3.693-1.097c-2.071,1.345-3.104,2.891-3.104,4.66c0,1.641,0.762,2.834,2.279,3.562
c1.519,0.735,3.715,1.096,6.576,1.096h9.494c5.854,0,10.179,0.843,13.018,2.509c2.828,1.674,4.242,4.438,4.242,8.267
c0,2.136-0.597,4.139-1.779,6.025c-1.193,1.889-2.879,3.544-5.072,4.983c-2.188,1.423-4.838,2.552-7.947,3.374
c-3.098,0.827-6.571,1.234-10.407,1.234c-6.333,0-11.318-1.02-14.969-3.066C94.887,27.934,93.06,24.928,93.06,20.975z
M100.719,19.882c0,2.127,1.174,3.84,3.522,5.155c2.345,1.31,5.737,1.964,10.179,1.964c2.373,0,4.518-0.229,6.438-0.683
c1.919-0.453,3.562-1.059,4.932-1.824c1.373-0.762,2.412-1.633,3.15-2.601c0.727-0.971,1.091-2.005,1.091-3.106
c0-1.943-0.809-3.235-2.415-3.875c-1.615-0.644-4.036-0.962-7.26-0.962h-7.853c-1.398,0-2.644-0.042-3.737-0.137
c-1.1-0.091-2.136-0.285-3.106-0.592c-1.832,1.035-3.105,2.104-3.843,3.196C101.095,17.505,100.719,18.657,100.719,19.882z
M113.416-7.059c2.559,0,4.743-0.848,6.581-2.552c1.822-1.708,2.737-4.077,2.737-7.118c0-2.929-0.918-5.271-2.737-7.033
c-1.837-1.767-4.021-2.651-6.581-2.651c-2.561,0-4.748,0.885-6.575,2.651c-1.821,1.762-2.739,4.104-2.739,7.033
c0,3.041,0.92,5.413,2.739,7.118C108.668-7.906,110.855-7.059,113.416-7.059z"/>
</g>
<path fill="#050505" d="M24.585,14.149h-7.651l-0.751-7.646h-0.379c-2.271,2.645-4.743,4.768-7.414,6.378
c-2.679,1.597-5.777,2.401-9.304,2.401c-5.476,0-9.478-1.585-11.995-4.767c-2.521-3.181-3.776-7.825-3.776-13.932v-23.191
l-12.225-0.238l21.669-8.342l-0.094,6.301v24.242c0,4.096,0.725,7.102,2.175,9.021C-3.712,6.299-1.229,7.262,2.3,7.262
c2.394,0,4.579-0.584,6.564-1.752c1.981-1.164,4.112-3.135,6.378-5.898v-31.645h9.352L24.585,14.149L24.585,14.149z"/>
<path fill="#050505" d="M40.078-32.037h7.649l0.755,7.465h0.372c2.333-2.398,4.851-4.427,7.562-6.093
c2.7-1.67,5.857-2.503,9.445-2.503c5.412,0,9.386,1.608,11.902,4.814c2.517,3.208,3.778,7.845,3.778,13.888v28.613h-9.353v-27.386
c0-4.027-0.722-7.008-2.167-8.922c-1.447-1.924-3.936-2.889-7.464-2.889c-2.46,0-4.659,0.624-6.616,1.845
c-1.948,1.229-4.129,3.065-6.518,5.529v31.824h-9.346v-46.184H40.078z"/>
<path fill="#050505" d="M185.909-8.892c0-3.78,0.661-7.167,1.982-10.157c1.32-2.989,3.079-5.543,5.291-7.649
c2.201-2.109,4.717-3.719,7.562-4.819c2.83-1.101,5.762-1.651,8.772-1.651c3.405,0,6.406,0.535,9.034,1.608
c2.602,1.07,4.827,2.56,6.65,4.475c1.83,1.931,3.218,4.225,4.156,6.907c0.945,2.673,1.423,5.616,1.423,8.825
c0,0.955-0.05,1.841-0.147,2.692c-0.094,0.856-0.199,1.56-0.33,2.123h-34.762c0.316,4.537,2,8.081,5.06,10.631
c3.055,2.549,6.903,3.822,11.566,3.822c2.522,0,4.862-0.346,7.038-1.042c2.176-0.686,4.302-1.661,6.372-2.916L228.88,9.9
c-2.383,1.514-5.083,2.786-8.069,3.829c-2.991,1.038-6.288,1.554-9.877,1.554c-3.465,0-6.715-0.545-9.768-1.65
c-3.063-1.102-5.713-2.684-7.983-4.767c-2.271-2.077-4.051-4.615-5.338-7.606C186.555-1.734,185.909-5.119,185.909-8.892z
M222.084-12.952c0-4.161-1.078-7.341-3.215-9.548c-2.142-2.202-5.196-3.3-9.162-3.3c-3.462,0-6.551,1.098-9.259,3.3
c-2.71,2.209-4.381,5.388-5.002,9.548H222.084z"/>
<path fill="#050505" d="M261.514-33.498l0.027,48.596h-9.352v-35.481h-17.538L261.514-33.498z M256.061-43.024
c-2.021,0-3.685-0.602-5.008-1.792c-1.315-1.198-1.978-2.806-1.978-4.819c0-2.014,0.657-3.633,1.978-4.862
c1.324-1.23,2.987-1.84,5.008-1.84c2.011,0,3.685,0.61,5.008,1.84c1.32,1.229,1.985,2.848,1.985,4.862
c0,2.014-0.665,3.624-1.985,4.819C259.745-43.626,258.071-43.024,256.061-43.024z"/>
<path fill="#050505" d="M274.5-7.952c0-3.839,0.694-7.275,2.081-10.291c1.386-3.027,3.278-5.571,5.672-7.658
c2.388-2.072,5.143-3.642,8.265-4.717c3.121-1.069,6.438-1.603,9.965-1.603c3.777,0,7.085,0.644,9.918,1.931
c2.834,1.291,5.199,2.857,7.088,4.678l-4.535,5.95c-1.829-1.513-3.72-2.69-5.676-3.541c-1.943-0.853-4.059-1.276-6.326-1.276
c-2.446,0-4.715,0.393-6.796,1.185c-2.07,0.786-3.857,1.9-5.331,3.35c-1.478,1.448-2.628,3.197-3.452,5.244
c-0.814,2.044-1.225,4.305-1.225,6.75c0,2.456,0.394,4.711,1.185,6.758c0.785,2.047,1.913,3.791,3.396,5.238
c1.48,1.44,3.226,2.572,5.242,3.356c2.015,0.781,4.245,1.174,6.708,1.174c2.832,0,5.386-0.531,7.646-1.597
c2.267-1.074,4.306-2.361,6.142-3.875l3.969,6.047c-2.645,2.267-5.545,4.013-8.691,5.238c-3.145,1.224-6.426,1.838-9.821,1.838
c-3.59,0-6.942-0.533-10.058-1.602c-3.118-1.065-5.807-2.644-8.081-4.726c-2.263-2.082-4.041-4.613-5.333-7.606
C275.146-0.69,274.5-4.107,274.5-7.952z"/>
<path fill="#050505" d="M318.894-51.604l19.584-9.712v27.204l-0.569,10.388c2.332-2.388,4.849-4.407,7.562-6.045
c2.706-1.632,5.855-2.45,9.443-2.45c5.411,0,9.38,1.603,11.899,4.814c2.517,3.212,3.774,7.841,3.774,13.89v28.615h-9.351v-27.398
c0-4.029-0.728-7.004-2.178-8.921c-1.441-1.919-3.923-2.885-7.454-2.885c-2.455,0-4.665,0.615-6.612,1.844
c-1.955,1.228-4.131,3.067-6.521,5.529v31.827h-9.354l-0.193-67.096L318.894-51.604z"/>
<g>
<polygon fill="#050505" points="372.346,-72.483 369.194,-65.904 408.349,-65.739 411.5,-72.447 "/>
<polygon fill="#050505" points="369.249,-58.129 365.997,-51.223 405.206,-51.144 408.349,-57.973 "/>
<polygon fill="#050505" points="376.891,-43.389 394.854,-81.627 401.77,-81.529 384.02,-43.38 "/>
</g>
<g>
<path fill="#050505" d="M162.481-0.869c0,3.097,0.775,5.34,2.332,6.713c1.552,1.364,3.569,2.056,6.069,2.056
c1.214,0,2.468-0.155,3.748-0.461c1.277-0.306,2.711-0.792,4.293-1.463l2.19,6.765c-1.039,0.358-2.028,0.691-2.968,1.003
c-0.954,0.302-1.902,0.556-2.877,0.768c-0.973,0.219-1.991,0.4-3.058,0.55c-1.068,0.149-2.239,0.232-3.518,0.232
c-4.993,0-8.783-1.43-11.37-4.297c-2.588-2.859-3.877-6.994-3.877-12.416v-60.796H138.84l23.641-16.66"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

View file

@ -0,0 +1,323 @@
{% load static bootstrap3 i18n %}
{% get_current_language as LANGUAGE_CODE %}
<!DOCTYPE html>
<html lang="de">
<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="">
<meta name="author" content="">
<title>ungleich GmbH</title>
<!-- Bootstrap Core CSS -->
<link href="{% static 'ungleich_page/css/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'ungleich_page/css/lib/animate.min.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]-->
<link href="//fonts.googleapis.com/css?family=Open+Sans+Condensed:700|Lato:300,400,700|Montserrat:400,700" rel="stylesheet" type="text/css">
<!-- Custom CSS -->
<link href="{% static 'ungleich_page/css/agency.css' %}" rel="stylesheet">
<link href="{% static 'ungleich_page/css/ungleich.css' %}" rel="stylesheet">
<link href="{% static 'datacenterlight/css/landing-page.css' %}" rel="stylesheet">
<link href="{% static 'ungleich_page/css/glasfaser.css' %}" rel="stylesheet">
<!-- Google analytics -->
{% include "google_analytics.html" %}
<!-- End Google Analytics -->
<link rel="shortcut icon" href="{% static 'ungleich_page/img/favicon.ico' %}" type="image/x-icon">
</head>
<body id="page-top" class="index">
<nav class="navbar navbar-default navbar-fixed-top topnav navbar-transparent">
<div class="topnav">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">{% trans "Toggle navigation" %}</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="{% url 'ungleich_page:landing' %}" id="logoBlack" class="navbar-brand topnav"><img src="{% static 'ungleich_page/img/logo_black.svg' %}"></a>
<a href="{% url 'ungleich_page:landing' %}" id="logoWhite" class="navbar-brand topnav"><img src="{% static 'ungleich_page/img/logo_white.svg' %}"></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<!-- Start Navbar collapse-->
<ul class="nav navbar-nav navbar-right">
<li>
<a class="page-scroll" href="#services">Technische Details</a>
</li>
<li>
<a class="page-scroll" href="#about">Wie funktioniert es?</a>
</li>
<li>
<a class="page-scroll" href="#contact">{% trans "CONTACT" %}</a>
</li>
</ul>
<!-- /.navbar-collapse -->
</div>
</div>
</nav>
<!-- Header -->
<div class="intro-header" id="home">
<div class="price-tag-container">
<div class="price-tag"></div>
</div>
<div class="high-speed">
<div class="high-speed-border"></div>
<h1>{% trans "HIGH SPEED INTERNET" %}</h1>
<div class="high-speed-border"></div>
</div>
</div>
<div class="split-section left" id="your">
<div class="container">
<div class="split-text">
<div class="split-title">
<h2>Unser Glasfaser-Angebot für Glarus Nord, Glarus und Glarus Süd</h2>
</div>
<div class="split-description wow fadeInUp">
<p class="lead"><strong>Surfen Sie mit 100 Mbit/s im Internet!</strong></p>
<p class="lead">Mit dem neuen Glasfaser-Angebot der ungleich macht das Arbeiten im Internet richtig Spass. Das beste daran: die Geschwindigkeit symmetrisch in beide Richtungen verfügbar. Damit kann ihr Firmennetzwerk auch Dienste bereitstellen.</p>
<p class="lead">Dieses Angebot ist im Moment ausschliesslich für Firmenkunden verfügbar. Die Aufschaltkosten der Glasfaserleitung sind von der Entfernung zum nächsten Anschlusspunkt abhängig. Fragen Sie noch heute nach einem individuellem Angebot.</p>
</div>
</div>
</div>
</div>
<section class="split-section right" id="our">
<div class="container">
<div class="split-text text-center">
<div class="wow fadeInDown">
<h2 class="section-heading text-center">Was ist es?</h2>
<h3 class="section-subheading text-muted"></h3>
</div>
<div class="split-description text-center wow fadeInUp">
<p class="lead">Bei diesem Angebot handelt es sich um einen Internetzugang für Firmenkunden.</p>
<p class="lead">Sie erhalten in Zusammenarbeit mit unseren Partnern einen Glasfaseranschluss und eine Internetverbindung.</p>
</div>
</div>
</div>
</section>
<section id="services">
<div class="container">
<div class="text-center wow fadeInDown">
<h2 class="section-heading">Technische Details</h2>
<h3 class="section-subheading text-muted">Im Angebot enthalten sind</h3>
</div>
<div class="row text-center">
<div class="col-sm-4">
<div class="team-member wow fadeInUp" data-wow-delay="0.25s">
<img src="{% static 'ungleich_page/img/glasfaser/business.svg' %}" class="img-responsive img-circle" alt="">
<div class="team-member-caption inline-block">
<h4 class="portfolio-caption">Business-Internet</h4>
<p class="text-muted">Symmetrische Internetleitung 100 Mbit/s upload und 100 Mbit/s download</p>
<p class="text-muted">Glasfaser-Installation bis ins Haus (keine Hausverkabelung)</p>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="team-member wow fadeInUp" data-wow-delay="0.5s">
<img src="{% static 'ungleich_page/img/glasfaser/ip.svg' %}" class="img-responsive img-circle" alt="">
<div class="team-member-caption inline-block">
<h4 class="portfolio-caption">Erreichbarkeit im Internet</h4>
<p class="text-muted">1 öffentliches IPv6-Netzwerk (/64)</p>
<p class="text-muted">1 öffentliche IPv4-Adresse</p>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="team-member wow fadeInUp" data-wow-delay="0.75s">
<img src="{% static 'ungleich_page/img/glasfaser/switch.svg' %}" class="img-responsive img-circle" alt="">
<div class="team-member-caption inline-block">
<h4 class="portfolio-caption">Einfach zu nutzen</h4>
<p class="text-muted">2 vorkonfigurierte Endgeräte (benötigt zwei Steckdosen auf Ihrer Seite)</p>
<p class="text-muted">Einfach einstecken und los!</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- About Section -->
<section id="about">
<div class="container">
<div class="text-center wow fadeInDown">
<h2 class="section-heading">Wie funktioniert es?</h2>
<h3 class="section-subheading text-muted">So kommen Sie in wenigen einfachen Schritten zu Ihrem High-Speed-Internet</h3>
</div>
<div class="row">
<div class="col-lg-12">
<ul class="timeline">
<li>
<div class="timeline-image">
<img class="img-circle img-responsive" src="{% static 'ungleich_page/img/glasfaser/a.jpg' %}" alt="">
</div>
<div class="timeline-panel wow slideInLeft">
<div class="timeline-body">
<p>Senden Sie uns via E-Mail Ihren Firmennamen und Ihre Anschrift zu.</p>
</div>
</div>
</li>
<li class="timeline-inverted">
<div class="timeline-image">
<img class="img-circle img-responsive" src="{% static 'ungleich_page/img/glasfaser/b.jpg' %}" alt="">
</div>
<div class="timeline-panel wow slideInRight">
<div class="timeline-body">
<p>Wir prüfen dann die Entfernung zum nächsten Anschlusspunkt und schicken Ihnen eine Offerte zu.</p>
</div>
</div>
</li>
<li>
<div class="timeline-image">
<img class="img-circle img-responsive" src="{% static 'ungleich_page/img/glasfaser/c.jpg' %}" alt="">
</div>
<div class="timeline-panel wow slideInLeft">
<div class="timeline-body">
<p>Sollten Sie dem Angebot zustimmen, wird die Glasfaser zu Ihrem Standort verlegt und die Endgeräte installiert.</p>
</div>
</div>
</li>
<li class="timeline-inverted" style="background: #fff;">
<div class="timeline-image">
<img class="img-circle img-responsive" src="{% static 'ungleich_page/img/glasfaser/d.jpg' %}" alt="">
</div>
<div class="timeline-panel wow slideInDown">
<div class="timeline-body">
<p>Sie müssen dann nur noch Ihre Geräte anschliessen und schon surfen Sie bllitzschnell im Internet!</p>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</section>
<!-- / contact section -->
<div id="contact" class="full-contact-section">
<div class="intro-header-2 contact-section" id="contact">
<div class="container">
<div class="row">
<div class="col-sm-6">
<div class="title">
<h2>Kontakt</h2>
</div>
<div class="contact-details">
<div class="subtitle">
<h3>ungleich GmbH</h3>
</div>
<div class="description">
<p>glasfaser@ungleich.ch</p>
<p>In der Au 7, Schwanden 8762</p>
<p>Switzerland</p>
</div>
</div>
<div class="social">
<a target="_blank" class="" href="https://twitter.com/datacenterlight"><i class="fa fa-twitter fa-fw"></i></a>
<a target="_blank" class="" href="https://github.com/ungleich"><i class="fa fa-github fa-fw"></i></a>
<a target="_blank" class="" href="https://www.facebook.com/ungleich.ch/"><i class="fa fa-facebook"></i></a>
</div>
</div>
<div class="col-sm-6">
<div id="contact-form" class="contact-form">
{% if success %}
<div class="contact-form-success">
<div class="subtitle text-center">
<h3>{% trans "Thank you for contacting us." %}</h3>
</div>
<p>
{% trans "Your message was successfully sent to our team." %}
</p>
</div>
{% else %}
<div class="row">
<div class="col-sm-offset-2 col-sm-10">
<div class="subtitle">
<h3>Senden Sie uns eine Nachricht.</h3>
</div>
</div>
</div>
<form class="form-horizontal ajax-form" method="POST" action="{% url 'datacenterlight:contact_us' %}" data-toggle="validator" data-response="#contact-form">
{% csrf_token %}
<input type="hidden" value="glasfaser" name="from_page">
<div class="form-group">
<label class="control-label col-sm-2" for="name">{% trans "Name" %}</label>
<div class="col-sm-10">
<input type="text" name="name" class="form-control" data-minlength="3" data-error="{% trans 'Please enter your name.' %}" required>
{{contact_form.name.errors}}
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="email">{% trans "Email" %}</label>
<div class="col-sm-10">
<input name="email" type="email" pattern="^[^@\s]+@([^@\s]+\.)+[^@\s]+$" class="form-control" data-error="{% trans 'Please enter a valid email address.' %}" required>
{{contact_form.email.errors}}
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="message">{% trans "Message" %}</label>
<div class="col-sm-10">
<textarea class="form-control" name="message" id="message" rows="6" required></textarea>
{{contact_form.message.errors}}
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10 text-right">
<div class="form-error hide">{% trans "Sorry, there was an unexpected error. Kindly retry." %}</div>
<button type="submit" class="btn btn-default">{% trans "SUBMIT" %}</button>
</div>
</div>
</form>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /.banner -->
<!-- Footer -->
{% include "ungleich_page/includes/_footer.html" %}
<!-- jQuery -->
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
if ($(".has-error").length != 0) {
window.location = window.location.pathname + "#contact"
}
});
</script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" type="text/javascript"></script>
<!-- Plugin JavaScript -->
<script src="//cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/classie/1.0.1/classie.min.js" type="text/javascript"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js" type="text/javascript"></script>
<!-- Custom Theme JavaScript -->
<script src="{% static 'ungleich_page/js/ungleich.js' %}" type="text/javascript"></script>
<script src="{% static 'datacenterlight/js/main.js' %}"></script>
<!-- Custom Fonts -->
<link href="//fonts.googleapis.com/css?family=Raleway" rel="stylesheet" type="text/css">
<link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
</body>
</html>

View file

@ -3,14 +3,10 @@
<section id="about"> <section id="about">
<div class="container"> <div class="container">
<div class="row"> <div class="text-center wow fadeInDown">
<div class="col-lg-12 text-center wow fadeInDown">
<h2 class="section-heading">{% trans "ABOUT" %}</h2> <h2 class="section-heading">{% trans "ABOUT" %}</h2>
<h3 class="section-subheading text-muted">{% trans "The timeline of ungleich" %}</h3> <h3 class="section-subheading text-muted">{% trans "The timeline of ungleich" %}</h3>
</div> </div>
</div>
<div class="row">
<div class="col-lg-12">
<ul class="timeline"> <ul class="timeline">
<li> <li>
<div class="timeline-image"> <div class="timeline-image">
@ -24,7 +20,8 @@
<p>{% trans "The first incarnation of ungleich" %}</p> <p>{% trans "The first incarnation of ungleich" %}</p>
<p>{% trans "in Germany" %}</p> <p>{% trans "in Germany" %}</p>
</div> </div>
</div></li> </div>
</li>
<li class="timeline-inverted"> <li class="timeline-inverted">
<div class="timeline-image"> <div class="timeline-image">
<img class="img-circle img-responsive" src="{% static 'ungleich_page/img/about/2.jpg' %}" alt=""> <img class="img-circle img-responsive" src="{% static 'ungleich_page/img/about/2.jpg' %}" alt="">
@ -69,7 +66,34 @@
</div> </div>
</div> </div>
</li> </li>
<li>
<div class="timeline-image">
<img class="img-circle img-responsive" src="{% static 'ungleich_page/img/about/7.png' %}" alt="">
</div>
<div class="timeline-panel wow slideInLeft">
<div class="timeline-heading">
<h4> 2016</h4>
</div>
<div class="timeline-body">
<p>{% blocktrans %}ungleich launches <a href="https://www.alplora.ch/de/">Alplora</a>, an animal tracking service with LoraWAN technology.{% endblocktrans %}</p>
</div>
</div>
</li>
<li class="timeline-inverted"> <li class="timeline-inverted">
<div class="timeline-image">
<img class="img-circle img-responsive" src="{% static 'ungleich_page/img/about/8.png' %}" alt="">
</div>
<div class="timeline-panel wow slideInRight">
<div class="timeline-heading">
<h4> 2017</h4>
</div>
<div class="timeline-body">
<p>{% blocktrans %}ungleich sells <a href="https://www.alplora.ch/de/">Alplora</a> to an IoT startup in canton Zürich.{% endblocktrans %}</p>
<p>{% trans "ungleich showcases the most affordable Swiss VM hosting, Data Center Light." %}</p>
</div>
</div>
</li>
<li>
<div class="timeline-image wow slideInDown"> <div class="timeline-image wow slideInDown">
<h4>{% trans "and" %}<br>{% trans "the story continues!" %}</h4> <h4>{% trans "and" %}<br>{% trans "the story continues!" %}</h4>
<p>&nbsp;</p> <p>&nbsp;</p>
@ -77,6 +101,4 @@
</li> </li>
</ul> </ul>
</div> </div>
</div>
</div>
</section> </section>

View file

@ -5,33 +5,33 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-12 text-center wow fadeInDown"> <div class="col-lg-12 text-center wow fadeInDown">
<h2 class="section-heading">{% trans "Hosting Products " %}</h2> <h2 class="section-heading">{% trans "Our Products" %}</h2>
<h3 class="section-subheading text-muted">{% trans "Hosting Products " %} </h3> <h3 class="section-subheading text-muted" style="line-height: 1.8;">{% blocktrans %}Our products include an innovative datacenter,<br>affordable VM hosting, and high speed fiber internet for canton Glarus.{% endblocktrans %}</h3>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-4 col-sm-6 portfolio-item wow fadeInDown" data-wow-delay="0.5s"> <div class="col-md-4 col-sm-6 portfolio-item wow fadeInDown" data-wow-delay="0.5s">
<img src="{% static 'ungleich_page/img/portfolio/roundicons.png' %}" class="img-responsive inline-block" alt=""> <a href="{% url 'datacenterlight:index' %}"><img src="{% static 'ungleich_page/img/portfolio/datacenterlight.png' %}" class="img-responsive inline-block" alt=""></a>
<div class="portfolio-caption inline-block"> <div class="portfolio-caption inline-block">
<h4> {% trans "HA Hosting" %} </h4> <h4>{% trans "Data Center Light" %}</h4>
<p class="text-muted">&nbsp;</p> <p>&nbsp;</p>
<p class="text-muted">{% trans "We offer high availablity hosting (HA) in Germany and in Switzerland. Our infrastructure is powered by Free and Open Source Software like OpenNebula, Qemu and GlusterFS." %} </p> <p class="text-muted">{% trans "We offer the most affordable hosting in Switzerland. Data Center Light has full FOSS stack, 100% IPv6 and 100% SSD. Choose any configuration among CentOS, Debian, Ubuntu, Devuan, and FreeBSD." %} </p>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6 portfolio-item wow fadeInDown" data-wow-delay="1s"> <div class="col-md-4 col-sm-6 portfolio-item wow fadeInDown" data-wow-delay="1s">
<img src="{% static 'ungleich_page/img/portfolio/startup-framework.png' %}" class="img-responsive inline-block" alt=""> <a href="{% url 'rails.hosting' %}"><img src="{% static 'ungleich_page/img/portfolio/startup-framework.png' %}" class="img-responsive inline-block" alt=""></a>
<div class="portfolio-caption inline-block"> <div class="portfolio-caption inline-block">
<h4>{% trans "Rails Hosting" %} </h4> <h4>{% trans "Rails Hosting" %} </h4>
<p class="text-muted">&nbsp;</p> <p>&nbsp;</p>
<p class="text-muted">{% trans "Ready to go live with your Ruby on Rails application? We offer you ready-to-deploy virtual machines or configure your existing infrastructure for Ruby on Rails." %}</p> <p class="text-muted">{% trans "Ready to go live with your Ruby on Rails application? We offer you ready-to-deploy virtual machines or configure your existing infrastructure for Ruby on Rails." %}</p>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6 portfolio-item wow fadeInDown" data-wow-delay="1.5s"> <div class="col-md-4 col-sm-6 portfolio-item wow fadeInDown" data-wow-delay="1.5s">
<img src="{% static 'ungleich_page/img/portfolio/treehouse.png' %}" class="img-responsive inline-block" alt=""> <a href="{% url 'datacenterlight:glasfaser' %}"><img src="{% static 'ungleich_page/img/portfolio/glasfaser.png' %}" class="img-responsive inline-block" alt=""></a>
<div class="portfolio-caption inline-block"> <div class="portfolio-caption inline-block">
<h4>{% trans " Configuration as a Service" %}</h4> <h4>{% trans "High Speed Internet" %}</h4>
<p class="text-muted">&nbsp;</p> <p>&nbsp;</p>
<p class="text-muted">{% trans "You are in need for a configuration?<br>With ungleich you have found an experienced team that configure your systems to provide service like DNS, E-Mail, Databases or Webservers." %}</p> <p class="text-muted">{% trans "We offer high speed fiber internet in Glarus Süd, Glarus and Glarus Nord. Experience 100 Mbit/s and see how speed can change everything." %}</p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -18,10 +18,6 @@
<link href="{% static 'ungleich_page/css/bootstrap.min.css' %}" rel="stylesheet"> <link href="{% static 'ungleich_page/css/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'ungleich_page/css/lib/animate.min.css' %}" rel="stylesheet"> <link href="{% static 'ungleich_page/css/lib/animate.min.css' %}" rel="stylesheet">
<!-- Custom CSS -->
<link href="{% static 'ungleich_page/css/agency.css' %}" rel="stylesheet">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- 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:// --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]> <!--[if lt IE 9]>
@ -29,12 +25,15 @@
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]--> <![endif]-->
<!-- Custom CSS -->
<link href="{% static 'ungleich_page/css/agency.css' %}" rel="stylesheet">
<link href="{% static 'ungleich_page/css/ungleich.css' %}" rel="stylesheet"> <link href="{% static 'ungleich_page/css/ungleich.css' %}" rel="stylesheet">
<!-- Google analytics --> <!-- Google analytics -->
{% include "google_analytics.html" %} {% include "google_analytics.html" %}
<!-- End Google Analytics --> <!-- End Google Analytics -->
<link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="{% static 'ungleich_page/img/favicon.ico' %}" type="image/x-icon">
<style id="igtranslator-color" type="text/css"></style> <style id="igtranslator-color" type="text/css"></style>
</head> </head>
@ -94,16 +93,14 @@
<!-- Header --> <!-- Header -->
{% include "ungleich_page/includes/_header.html" %} {% include "ungleich_page/includes/_header.html" %}
<!-- Services Section --> <!-- Services Section -->
{% include "ungleich_page/includes/_services.html" %} {% include "ungleich_page/includes/_services.html" %}
<!-- Portfolio Grid Section --> <!-- Portfolio Grid Section -->
{% include "ungleich_page/includes/_portfolio.html" %} {% include "ungleich_page/includes/_portfolio.html" %}
<!-- About Section --> <!-- About Section -->
{% include "ungleich_page/includes/_about.html" %}$ {% include "ungleich_page/includes/_about.html" %}
<!-- Team Section --> <!-- Team Section -->
{% include "ungleich_page/includes/_team.html" %} {% include "ungleich_page/includes/_team.html" %}
@ -129,9 +126,6 @@
<!-- Portfolio Modal 4 --> <!-- Portfolio Modal 4 -->
<!-- Portfolio Modal 6 --> <!-- Portfolio Modal 6 -->
</div>
</div>
<!-- jQuery --> <!-- jQuery -->
<script src="{% static 'ungleich_page/js/jquery.js' %}" type="text/javascript"></script> <script src="{% static 'ungleich_page/js/jquery.js' %}" type="text/javascript"></script>
@ -171,4 +165,5 @@
<link href="//fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic,700italic" rel="stylesheet" <link href="//fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic,700italic" rel="stylesheet"
type="text/css"> type="text/css">
<link href="//fonts.googleapis.com/css?family=Roboto+Slab:400,100,300,700" rel="stylesheet" type="text/css"> <link href="//fonts.googleapis.com/css?family=Roboto+Slab:400,100,300,700" rel="stylesheet" type="text/css">
</body>
</html> </html>

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-29 20:33+0000\n" "POT-Creation-Date: 2017-10-10 21:35+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -790,13 +790,12 @@ msgid "Message"
msgstr "Nachricht" msgstr "Nachricht"
msgid "An email with the activation link has been sent to you" msgid "An email with the activation link has been sent to you"
msgstr "" msgstr "Es wurde eine E-Mail mit dem Aktivierungslink an Dich gesendet."
"Es wurde eine E-Mail mit dem Aktivierungslink an Dich gesendet."
msgid "Account Activation" msgid "Account Activation"
msgstr "Accountaktivierung" msgstr "Accountaktivierung"
msgid "The link to reset your email has been sent to your email" msgid "The link to reset your password has been sent to your email"
msgstr "" msgstr ""
"Der Link zum Zurücksetzen deines Passwortes wurde an deine E-Mail gesendet" "Der Link zum Zurücksetzen deines Passwortes wurde an deine E-Mail gesendet"

View file

@ -104,7 +104,7 @@ class ResendActivationLinkViewMixin(FormView):
class PasswordResetViewMixin(FormView): class PasswordResetViewMixin(FormView):
success_message = _( success_message = _(
"The link to reset your email has been sent to your email") "The link to reset your password has been sent to your email")
site = '' site = ''
def test_generate_email_context(self, user): def test_generate_email_context(self, user):