diff --git a/.gitignore b/.gitignore index 6e6250b1..2bfa8cdf 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ secret-key .idea/ .env +*.mo diff --git a/Changelog b/Changelog index fe281422..db5482c8 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,10 @@ +1.0.15: 2017-06-14 + * [datacenterlight] Fixed error trying to delete ssh key + * [datacenterlight] Fixed footer links + * [datacenterlight] Fixed some styles on landing +1.0.14: 2017-06-14 + * [all] Added deploy.sh + * [all] Removed .mo files and updated .gitignore 1.0.13: 2017-06-13 * [datacenterlight] Added translations for email and name placeholders fields 1.0.12: 2017-06-13 @@ -38,3 +45,7 @@ * [datacenterlight] Fix initially shown price 1.0.0: 2017-05-25 * Initial stable release + + Next: + [datacenterlight] Fixed error trying to delete ssh key + [datacenterlight] Fixed footer links diff --git a/alplora/locale/de/LC_MESSAGES/django.mo b/alplora/locale/de/LC_MESSAGES/django.mo deleted file mode 100644 index c69bd979..00000000 Binary files a/alplora/locale/de/LC_MESSAGES/django.mo and /dev/null differ diff --git a/datacenterlight/locale/de/LC_MESSAGES/django.mo b/datacenterlight/locale/de/LC_MESSAGES/django.mo index b35db4f4..c34cf654 100644 Binary files a/datacenterlight/locale/de/LC_MESSAGES/django.mo and b/datacenterlight/locale/de/LC_MESSAGES/django.mo differ diff --git a/datacenterlight/locale/de/LC_MESSAGES/django.po b/datacenterlight/locale/de/LC_MESSAGES/django.po index 299163f9..9bb441a8 100644 --- a/datacenterlight/locale/de/LC_MESSAGES/django.po +++ b/datacenterlight/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-06-13 01:16-0500\n" +"POT-Creation-Date: 2017-06-13 13:41-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,11 +30,11 @@ msgstr "E-Mail-Adresse" msgid "Request Beta Access" msgstr "Beantrage Beta-Zugang" -#: templates/datacenterlight/beta_success.html:9 +#: templates/datacenterlight/beta_success.html:10 msgid "Request Sent" msgstr "Anfrage verschickt" -#: templates/datacenterlight/beta_success.html:12 +#: templates/datacenterlight/beta_success.html:13 msgid "" "Thank you for your subscription! You will receive a confirmation mail from " "our team" @@ -75,6 +75,7 @@ msgstr "" msgid "Thank you!" msgstr "Vielen Dank!" +#: templates/datacenterlight/home.html:15 #: templates/datacenterlight/index.html:62 #: templates/datacenterlight/index.html:160 #: templates/datacenterlight/index.html:383 @@ -126,33 +127,64 @@ msgstr "Kontakt" msgid "Finally, an affordable VM hosting in Switzerland!" msgstr "Endlich: bezahlbares VM Hosting in der Schweiz" -#: templates/datacenterlight/index.html:131 +#: templates/datacenterlight/home.html:19 msgid "What is it?" msgstr "Was ist es?" -#: templates/datacenterlight/index.html:134 +#: templates/datacenterlight/home.html:22 msgid "I want it!" msgstr "Das will ich haben!" -#: templates/datacenterlight/index.html:165 -msgid "Reuse existing factory halls intead of building an expensive building." -msgstr "" -"Nachhaltigkeit: Wiederverwendung ehemaliger Fabrikhallen an Stelle der " -"Errichtung eines neuen Gebäudes" +#: templates/datacenterlight/home.html:46 +#: templates/datacenterlight/includes/_footer.html:11 +#: templates/datacenterlight/includes/_footer.html:31 +#: templates/datacenterlight/includes/_navbar.html:26 +msgid "What is it" +msgstr "Was ist es?" -#: templates/datacenterlight/index.html:168 -msgid "Being creative, using modern and alternative design for a datacenter." -msgstr "" -"Kreativität: Verwendung eines modernen und alternativen Designs für unser " -"Datencenter" +#: templates/datacenterlight/home.html:49 +msgid "Our data center" +msgstr "Unser Datacenter" -#: templates/datacenterlight/index.html:170 -msgid "Being open: Using FOSS exclusively, we can save money for licenses." +#: templates/datacenterlight/home.html:56 +msgid "" +"Reuses existing factory halls instead of building a new expensive building." msgstr "" -"Offene Verfahrensweise: Die Benutzung eines eigenen Frameworks, FOSS, " -"erspart Lizenzgebühren" +"Verwendet ehemalige Fabrikhallen anstatt ein neues, teures Gebäude zu " +"errichten.
" -#: templates/datacenterlight/index.html:192 +#: templates/datacenterlight/home.html:61 +msgid "Only wants you to pay for what you actually need." +msgstr "" +"Möchte, dass du nur bezahlst, was du auch wirklich brauchst: Wähle deine " +"Ressourcen individuell aus!
" + +#: templates/datacenterlight/home.html:65 +msgid "" +"Is creative, using a modern and alternative design for a data center in " +"order to make it more sustainable and affordable at the same time." +msgstr "" +"Ist kreativ, indem es sich ein modernes und alternatives Layout zu Nutze " +"macht um Nachhaltigkeit zu fördern und somit erschwingliche Preise bieten zu " +"können.
" + +#: templates/datacenterlight/home.html:69 +msgid "" +"Cuts down the costs for you by using FOSS (Free Open Source Software) " +"exclusively, wherefore we can save money from paying licenses." +msgstr "" +"Sorgt dafür, dass unnötige Kosten erspart werden, indem es ausschliesslich " +"mit FOSS (Free Open Source Software) arbeitet und wir daher auf " +"Lizenzgebühren verzichten können.
" + +#: templates/datacenterlight/home.html:89 +#: templates/datacenterlight/includes/_footer.html:14 +#: templates/datacenterlight/includes/_footer.html:34 +#: templates/datacenterlight/includes/_navbar.html:29 +msgid "Scale out" +msgstr "Skalierung" + +#: templates/datacenterlight/home.html:92 msgid "" "We don't use special hardware. We use commodity hardware: we buy computers " "that you buy. Just many more and put them in a cozy home for computers " @@ -162,7 +194,14 @@ msgstr "" "erschwingliche Systeme. Bei grösserer Auslastung werden mehr Standard " "komponenten hinzugekauft und skalieren so das Datencenter." -#: templates/datacenterlight/index.html:218 +#: templates/datacenterlight/home.html:115 +#: templates/datacenterlight/includes/_footer.html:17 +#: templates/datacenterlight/includes/_footer.html:37 +#: templates/datacenterlight/includes/_navbar.html:32 +msgid "Reliable and light" +msgstr "Zuverlässig und leicht" + +#: templates/datacenterlight/home.html:118 msgid "" "Our VMs are located in Switzerland, with reliable power supply and fast " "internet connection. Our VM costs less thanks to our featherlight " @@ -172,6 +211,12 @@ msgstr "" "Energieversorgung sowie schneller Internetverbindung ausgestattet. Unser " "Angebot ist aufgrund unserer leichten Infrastruktur überaus kostengünstig." +#: templates/datacenterlight/home.html:136 +#: templates/datacenterlight/order.html:9 +#: templates/datacenterlight/pricing.html:9 +msgid "We are cutting down the costs significantly!" +msgstr "Wir sorgen dafür, dass die Kosten für Sie signifikant abnehmen" + #: templates/datacenterlight/index.html:236 #: templates/datacenterlight/order.html:143 #: templates/datacenterlight/pricing.html:168 @@ -180,31 +225,23 @@ msgstr "" "Einfach und bezahlbar: Teste nun unsere virtuellen Maschinen mit " "federleichten Preisen." -#: templates/datacenterlight/index.html:237 +#: templates/datacenterlight/home.html:137 msgid "Affordable VM hosting based in Switzerland" msgstr "Bezahlbares VM Hosting in der Schweiz" -#: templates/datacenterlight/index.html:248 -#: templates/datacenterlight/order.html:81 -#: templates/datacenterlight/pricing.html:119 +#: templates/datacenterlight/home.html:144 +#: templates/datacenterlight/order.html:22 +#: templates/datacenterlight/pricing.html:22 msgid "VM hosting" msgstr "VM Hosting" -#: templates/datacenterlight/index.html:252 -msgid "month" -msgstr "Monat" - -#: templates/datacenterlight/index.html:256 -#: templates/datacenterlight/order.html:89 -#: templates/datacenterlight/pricing.html:127 -msgid "Hosted in Switzerland" +#: templates/datacenterlight/home.html:151 +msgid "Based in Switzerland" msgstr "Standort des Datacenters ist in der Schweiz" -#: templates/datacenterlight/index.html:273 -#: templates/datacenterlight/order.html:106 -#: templates/datacenterlight/pricing.html:144 -msgid "GB Storage (SSD)" -msgstr "GB Storage (SSD)" +#: templates/datacenterlight/home.html:160 +msgid "10 GB Storage (SSD)" +msgstr "10 GB Storage (SSD)" #: templates/datacenterlight/index.html:289 msgid "Name" @@ -228,6 +265,91 @@ msgstr "Deine E-Mail" msgid "Order Now!" msgstr "Bestelle jetzt!" +#: templates/datacenterlight/home.html:186 +msgid "Switzerland " +msgstr "Schweiz" + +#: templates/datacenterlight/home.html:203 +msgid "Questions?" +msgstr "Fragen?" + +#: templates/datacenterlight/home.html:203 +msgid "Contact us!" +msgstr "Kontaktiere uns!" + +#: templates/datacenterlight/includes/_footer.html:20 +#: templates/datacenterlight/includes/_navbar.html:35 +msgid "Order VM" +msgstr "VM bestellen" + +#: templates/datacenterlight/includes/_footer.html:23 +#: templates/datacenterlight/includes/_footer.html:44 +#: templates/datacenterlight/includes/_navbar.html:38 +msgid "Contact" +msgstr "Kontakt" + +#: templates/datacenterlight/includes/_footer.html:27 +msgid "Home" +msgstr "Home" + +#: templates/datacenterlight/includes/_footer.html:40 +msgid "Pricing" +msgstr "Preise" + +#: templates/datacenterlight/order.html:30 +#: templates/datacenterlight/pricing.html:30 +msgid "Hosted in Switzerland" +msgstr "Standort des Datacenters ist in der Schweiz" + +#: templates/datacenterlight/order.html:47 +#: templates/datacenterlight/pricing.html:47 +msgid "GB Storage (SSD)" +msgstr "GB Storage (SSD)" + +#: templates/datacenterlight/order.html:84 +#: templates/datacenterlight/pricing.html:83 +msgid "Simple and affordable: Try our virtual machine with featherlight price." +msgstr "" +"Einfach und bezahlbar: Testen Sie unsere virtuellen Maschinen mit " +"federleichten Preisen" + +#: templates/datacenterlight/order.html:87 +#: templates/datacenterlight/pricing.html:86 +#: templates/datacenterlight/index.html:248 +#: templates/datacenterlight/order.html:81 +#: templates/datacenterlight/pricing.html:119 +msgid "VM hosting" +msgstr "VM Hosting" + + +#: templates/datacenterlight/index.html:252 +msgid "month" +msgstr "Monat" + +#: templates/datacenterlight/index.html:256 +#: templates/datacenterlight/order.html:89 +#: templates/datacenterlight/pricing.html:127 +msgid "Hosted in Switzerland" +msgstr "Standort des Datacenters ist in der Schweiz" + +#: templates/datacenterlight/index.html:273 +#: templates/datacenterlight/order.html:106 +#: templates/datacenterlight/pricing.html:144 +msgid "GB Storage (SSD)" +msgstr "GB Storage (SSD)" + +#: templates/datacenterlight/index.html:297 +#: templates/datacenterlight/order.html:133 +#: templates/datacenterlight/pricing.html:161 +msgid "Order Now!" +msgstr "Bestelle jetzt!" + +#: templates/datacenterlight/index.html:302 +msgid "Want to know more? Subscribe to our newsletter!" +msgstr "Willst du mehr wissen? Abonniere unseren Newsletter!" + +#: templates/datacenterlight/index.html:364 +#: templates/datacenterlight/index.html:279 #: templates/datacenterlight/index.html:317 msgid "I want to have it!" msgstr "Das möchte ich haben!" @@ -250,6 +372,10 @@ msgstr "Kontaktiere uns!" msgid "Home" msgstr "Home" +#: templates/datacenterlight/index.html:377 +#: templates/datacenterlight/index.html:354 +#: templates/datacenterlight/new-order.html:212 +#: templates/datacenterlight/order.html:212 #: templates/datacenterlight/index.html:392 #: templates/datacenterlight/order.html:174 #: templates/datacenterlight/pricing.html:199 @@ -284,12 +410,57 @@ msgstr "" "uns unter support@datacenterlight.ch. Unser Team wird sich umgehend um dein " "Anliegen kümmern!" +#: templates/datacenterlight/success.html:8 #: templates/datacenterlight/success.html:62 msgid "Thank you for order! Our team will contact you via email" msgstr "" "Vielen Dank für die Bestellung. Unser Team setzt sich sobald wie möglich mit " "Ihnen via E-Mail in Verbindung." +#: templates/datacenterlight/success.html:10 +msgid "as soon as possible!" +msgstr "" + +#~ msgid "month" +#~ msgstr "Monat" + +#~ msgid "Want to know more? Subscribe to our newsletter!" +#~ msgstr "Willst du mehr wissen? Abonniere unseren Newsletter!" + +#~ msgid "I want to have it!" +#~ msgstr "Das möchte ich haben!" + +#~ msgid "Buy VM" +#~ msgstr "VM Kaufen" + +#~ msgid "" +#~ "Reuse existing factory halls intead of building an expensive building." +#~ msgstr "" +#~ "Nachhaltigkeit: Wiederverwendung ehemaliger Fabrikhallen an Stelle der " +#~ "Errichtung eines neuen Gebäudes" + +#~ msgid "" +#~ "Being creative, using modern and alternative design for a datacenter." +#~ msgstr "" +#~ "Kreativität: Verwendung eines modernen und alternativen Designs für unser " +#~ "Datencenter" + +#~ msgid "Being open: Using FOSS exclusively, we can save money for licenses." +#~ msgstr "" +#~ "Offene Verfahrensweise: Die Benutzung eines eigenen Frameworks, FOSS, " +#~ "erspart Lizenzgebühren" + +#~ msgid "More Info" +#~ msgstr "Weitere Informationen" + +#~ msgid "Want to know more? Subscribe to our newsletter!" +#~ msgstr "Willst du mehr wissen? Abonniere unseren Newsletter!" + +#~ msgid "I want to have it!" +#~ msgstr "Das möchte ich haben!" + +#~ msgid "Buy VM" +#~ msgstr "VM Kaufen" #: templates/datacenterlight/success.html:64 msgid "as soon as possible!" msgstr "" @@ -306,12 +477,6 @@ msgstr "" #~ msgid "How it works" #~ msgstr "Wie es funktioniert" -#~ msgid "More Info" -#~ msgstr "Weitere Informationen" - -#~ msgid "Want to know more? Subscribe to our newsletter!" -#~ msgstr "Willst du mehr wissen? Abonniere unseren Newsletter!" - #~ msgid "Our VMs are hosted in Glarus, Switzerland." #~ msgstr "Standort des Datacenters ist in der Schweiz" diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css index ab601052..350d54e1 100755 --- a/datacenterlight/static/datacenterlight/css/landing-page.css +++ b/datacenterlight/static/datacenterlight/css/landing-page.css @@ -4,20 +4,8 @@ * For details, see http://www.apache.org/licenses/LICENSE-2.0. */ @font-face { - font-family: 'Montserrat-Regular'; - src: url('../fonts/Montserrat/Montserrat-Regular.ttf'); -} -@font-face { - font-family: 'Montserrat-Bold'; - src: url('../fonts/Montserrat/Montserrat-Bold.ttf'); -} -@font-face { - font-family: 'Montserrat-Medium'; - src: url('../fonts/Montserrat/Montserrat-Medium.ttf'); -} -@font-face { - font-family: 'Montserrat-Light'; - src: url('../fonts/Montserrat/Montserrat-Light.ttf'); + font-family: 'Lato-Regular'; + src: url('../fonts/Lato/Lato-Regular.ttf'); } body, html { @@ -32,8 +20,8 @@ h3, h4, h5, h6 { - font-family: 'Montserrat-Regular', sans-serif; - font-weight: 700; + font-family: 'Lato-Regular', sans-serif; + font-weight: 300; } /*blue light #5A74AF*/ /*blue dark #29427A*/ @@ -128,6 +116,10 @@ h6 { .navbar-transparent .navbar-nav>li>a:hover { color: #fff; } +.navbar-transparent .navbar-nav>li>a:focus, .navbar-transparent .navbar-nav>li>a:hover { + color: #fff; + background-color: transparent; +} .navbar-default .btn-link { box-shadow: none; } @@ -263,7 +255,6 @@ h6 { margin: 0; font-weight: 400; font-size: 6em; - font-family: 'Montserrat-Medium'; } .intro-divider { @@ -274,7 +265,7 @@ h6 { .intro-message > h3 { font-weight: 300; - font-family: 'Montserrat-Light'; + } .intro-pricing{ @@ -331,7 +322,6 @@ h6 { margin-bottom: 25px; } .split-section .split-text .split-title h2{ - font-family: 'Montserrat-Bold'; font-size: 50px; line-height: 50px; padding-bottom: 25px; @@ -352,6 +342,12 @@ h6 { width: 90%; margin-left: auto; } +.split-section.right .split-description.title p{ + font-size: 27px; + margin-bottom: 10px; + text-align: left; + +} .split-section.right .split-text { text-align: right; } @@ -386,6 +382,20 @@ h6 { width: 70px; left: 0; } + +.split-section.what .icon-section{ + position: relative; + min-height: 500px; +} +.split-section.what .split-text .lead { + font-size: 19px; + color: #3a3a3a; + margin-bottom: 5px; + line-height: 29px; +} +.split-section.what .fa-li.fa-lg{ + font-size: 17px; +} .pricing-section{ padding: 80px 0 !important; background: -webkit-linear-gradient(top, #f0f4f7, #fff) no-repeat; @@ -409,10 +419,8 @@ h6 { } .pricing-section .card .title{ padding: 15px 40px; - font-family: 'Montserrat-Medium'; } .pricing-section .card .title h3{ - font-family: 'Montserrat-Medium'; } .pricing-section .card .price{ background: #5A74AF; @@ -437,7 +445,6 @@ h6 { text-align: left; } .pricing-section .text .section-heading{ - font-family: 'Montserrat-Bold'; font-size: 50px; line-height: 50px; padding-bottom: 25px; @@ -464,7 +471,6 @@ h6 { padding: 70px 0; } .request-section .title h2{ - font-family: 'Montserrat-Bold'; font-size: 45px; margin: 0; color: #fff; @@ -505,7 +511,6 @@ h6 { position: relative; } .full-contact-section{ - padding-top: 90px; background-image: -ms-linear-gradient(right, #29427A 50%, #4F6699 100%); background-image: -moz-linear-gradient(right, #29427A 50%, #4F6699 100%); background-image: -o-linear-gradient(right, #29427A 50%, #4F6699 100%); @@ -540,7 +545,6 @@ h6 { .contact-section .card .subtitle h3{ font-size: 30px; margin-bottom: 23px; - font-family: 'Montserrat-Medium'; } .contact-section .card .social a:hover{ text-decoration: none; @@ -551,7 +555,6 @@ h6 { max-width: 468px; } .contact-section .title h2{ - font-family: 'Montserrat-Bold'; font-size: 65px; margin: 0; color: #fff; @@ -581,10 +584,9 @@ h6 { width: 50%; } .price-calc-section .text .section-heading{ - font-family: 'Montserrat-Bold'; - font-size: 50px; - line-height: 50px; - padding-bottom: 25px; + font-size: 48px; + line-height: 48px; + padding-bottom: 27px; color: #3a3a3a; letter-spacing: 1px; position: relative; @@ -630,10 +632,8 @@ h6 { } .price-calc-section .card .title{ padding: 15px 40px; - font-family: 'Montserrat-Medium'; } .price-calc-section .card .title h3{ - font-family: 'Montserrat-Medium'; } .price-calc-section .card .price{ background: #5A74AF; @@ -704,7 +704,7 @@ h6 { .price-calc-section .card .description.input label{ font-size: 15px; font-weight: 800; - font-family: 'Montserrat-Regular'; + font-family: 'Lato-Regular'; margin-bottom: 0; width: 40px; } @@ -718,6 +718,7 @@ h6 { background: #fff; margin-left: 10px; } + .price-calc-section .card .check-ip input[type=checkbox]{ font-size: 17px; margin: 0 8px; @@ -799,9 +800,38 @@ h6 { border: 1px solid rgba(119, 119, 119, 0.4); box-shadow: none; } + + .navbar-default .nav-language .drop-language { + background: #fff; + /* border: 1px solid #fff; */ + z-index: 100000; + left: 9px; + border: 1px solid rgba(119, 119, 119, 0.4); + box-shadow: none; + } + .navbar-default .nav-language .select-language { + color: #777; + } + .navbar-default .nav-language .drop-language a { + color: #777; + } + .navbar-transparent .navbar-nav>li>a:focus, .navbar-transparent .navbar-nav>li>a:hover { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav>li>a:focus, .navbar-default .navbar-nav>li>a:hover { + color: #333; + background-color: transparent; + } .split-section { padding: 10px 0; } + .split-section .icon-section { + min-height: 160px; + } + .split-section.what .icon-section{ + min-height: 160px; + } .split-section .icon-section i{ font-size: 120px; } @@ -841,6 +871,10 @@ h6 { left: 50%; transform: translate(-50%, 0); } + .contact-section .card .social a { + color: #29427A; + font-size: 30px; + } .intro-pricing .intro-message .section-heading { font-size: 30px; @@ -860,8 +894,7 @@ h6 { margin-top: 20px; } .price-calc-section .text .section-heading { - font-family: 'Montserrat-Bold'; - font-size: 35px; + font-size: 35px; line-height: 35px; padding-bottom: 15px; text-align: center; @@ -881,7 +914,6 @@ h6 { width: 60px; } - } @media(max-width:540px) { @@ -927,7 +959,6 @@ h6 { .section-heading { margin-bottom: 30px; - font-family: 'Montserrat-Medium'; } .section-heading-spacer { diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Black.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Black.ttf new file mode 100755 index 00000000..6848db0d Binary files /dev/null and b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Black.ttf differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BlackItalic.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BlackItalic.ttf new file mode 100755 index 00000000..5decf129 Binary files /dev/null and b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BlackItalic.ttf differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Bold.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Bold.ttf new file mode 100755 index 00000000..74343694 Binary files /dev/null and b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Bold.ttf differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BoldItalic.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BoldItalic.ttf new file mode 100755 index 00000000..684aacf5 Binary files /dev/null and b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-BoldItalic.ttf differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Hairline.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Hairline.ttf new file mode 100755 index 00000000..288be295 Binary files /dev/null and b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Hairline.ttf differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-HairlineItalic.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-HairlineItalic.ttf new file mode 100755 index 00000000..c2bfd335 Binary files /dev/null and b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-HairlineItalic.ttf differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Italic.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Italic.ttf new file mode 100755 index 00000000..3d3b7a29 Binary files /dev/null and b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Italic.ttf differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Light.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Light.ttf new file mode 100755 index 00000000..a958067a Binary files /dev/null and b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Light.ttf differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-LightItalic.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-LightItalic.ttf new file mode 100755 index 00000000..5e45ad9a Binary files /dev/null and b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-LightItalic.ttf differ diff --git a/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Regular.ttf b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Regular.ttf new file mode 100755 index 00000000..04ea8efb Binary files /dev/null and b/datacenterlight/static/datacenterlight/fonts/Lato/Lato-Regular.ttf differ diff --git a/hosting/static/hosting/fonts/Montserrat/OFL.txt b/datacenterlight/static/datacenterlight/fonts/Lato/OFL.txt similarity index 95% rename from hosting/static/hosting/fonts/Montserrat/OFL.txt rename to datacenterlight/static/datacenterlight/fonts/Lato/OFL.txt index 90ed8151..f8ca7bc3 100755 --- a/hosting/static/hosting/fonts/Montserrat/OFL.txt +++ b/datacenterlight/static/datacenterlight/fonts/Lato/OFL.txt @@ -1,4 +1,4 @@ -Copyright 2011 The Montserrat Project Authors (julieta.ulanovsky@gmail.com) +Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL diff --git a/datacenterlight/static/datacenterlight/js/main.js b/datacenterlight/static/datacenterlight/js/main.js index 7761b248..26688e8e 100644 --- a/datacenterlight/static/datacenterlight/js/main.js +++ b/datacenterlight/static/datacenterlight/js/main.js @@ -74,7 +74,8 @@ function _initNavUrl(){ $('.url').click(function(){ var href = $(this).attr('data-url'); - console.log(href); + $('.navbar-collapse').removeClass('in'); + $('.navbar-collapse').addClass('collapsing'); $('html, body').animate({ scrollTop: $(href).offset().top }, 1000); @@ -121,8 +122,7 @@ } function _calcPricing(){ - var total = (cardPricing['cpu'].value * 5) + (2* cardPricing['ram'].value) + (0.6* cardPricing['storage'].value) - console.log(total); + var total = (cardPricing['cpu'].value * 5) + (2* cardPricing['ram'].value) + (0.6* cardPricing['storage'].value); total = parseFloat(total.toFixed(2)); $("#total").text(total); @@ -138,59 +138,3 @@ })(jQuery); -// (function($){ -// 'use strict'; // Start of use strict - - - -// $(document).ready(function(){ -// verifiedUrl(); -// init_options_interested(); -// init_nav(); -// change_values(); -// }); - -// function verifiedUrl(){ -// if(window.location.href.indexOf('#success') > -1){ -// form_success(); -// } -// } - -// function init_options_interested(){ -// $('.row-vms').click(function(){ -// $('.row-vms').removeClass('row-vms__active'); -// $(this).addClass('row-vms__active'); -// var number = $('.row-vms__active input').val(); -// var price = $('.row-vms__active input').data('price'); -// _calculate(number, price); -// }); -// } - -// function init_nav(){ - -// $('.nav-local').click(function(){ -// $('html, body').animate({ -// scrollTop: $('#'+$(this).data('href')).offset().top -// }); -// }); - -// } - -// function change_values(){ -// $('.number-vms').keyup(function () { -// var number = $(this).val(); -// var price = $(this).data('price'); -// _calculate(number, price); -// }); - -// } -// function form_success(){ -// $('#sucessModal').modal('show'); -// } -// function _calculate(numbers, price){ -// $('#valueTotal').text(numbers*price*31); -// } - - -// })(jQuery); // End of use strict - diff --git a/datacenterlight/templates/datacenterlight/base.html b/datacenterlight/templates/datacenterlight/base.html index 3b43ff9c..06fcd804 100644 --- a/datacenterlight/templates/datacenterlight/base.html +++ b/datacenterlight/templates/datacenterlight/base.html @@ -13,7 +13,6 @@ Data Center Light - {% block title %}VM hosting made in Switzerland{% endblock %} - @@ -35,9 +34,77 @@ - - {% block body %} - {% endblock %} - + + + + {% include "datacenterlight/includes/_navbar.html" %} + + + {% block content %} + {% endblock %} + + {% include "datacenterlight/includes/_footer.html" %} + + + + + + + + + + + + + + + + + + + + diff --git a/datacenterlight/templates/datacenterlight/beta.html b/datacenterlight/templates/datacenterlight/beta.html deleted file mode 100644 index 0de80cd2..00000000 --- a/datacenterlight/templates/datacenterlight/beta.html +++ /dev/null @@ -1,107 +0,0 @@ -{% load staticfiles i18n%} - - - - - - - - landings - - - - - - - - - -
-
-
-

Your affordable Swiss VM

-
-
-
-
-

Are you looking for a secure and affordable VM in the midst of the Swiss mountains?

-

While there are many offers in Switzerland for secure hosting, we haven't found any that is affordable. So we decided we will built one in the Glarus mountains.

-

Right now we are in a preparing the tech stack and talking to infrastructure providers to find the optimal location.

-

Our objective is to launch this offer starting in 2017. Are you curious how it works? Be one of the first to try it and request access to our beta program.

-
-
-
-
-
-

Beta Program

-
-

I am interested in running

-
- {% for vm in vms %} -
-
- -
-
number of VMs ({{vm.ssd}} GB SSD, {{vm.ram}} GB RAM, {{vm.cpu}} CPU) - {{vm.price}}chf / day
-
- {% endfor %} -

At a monthly total of 0chf per day

-
- -
- - -
-
- - -
-
-
-

Notice: this is no an order - you don't have to pay anything, it just helps us to setup the right infrastructure

-
- {% csrf_token %} -
- -
-
-
-
- -
- - - - - - - - \ No newline at end of file diff --git a/datacenterlight/templates/datacenterlight/beta_access.html b/datacenterlight/templates/datacenterlight/beta_access.html index c7a2f14e..7a694611 100644 --- a/datacenterlight/templates/datacenterlight/beta_access.html +++ b/datacenterlight/templates/datacenterlight/beta_access.html @@ -24,4 +24,4 @@ $('#beta_access').ajaxForm({ target: '#beta_access_form', success: function(response) { } }); - + \ No newline at end of file diff --git a/datacenterlight/templates/datacenterlight/beta_success.html b/datacenterlight/templates/datacenterlight/beta_success.html index 70695d07..327198e7 100644 --- a/datacenterlight/templates/datacenterlight/beta_success.html +++ b/datacenterlight/templates/datacenterlight/beta_success.html @@ -1,3 +1,4 @@ + {% load i18n %} - - - - - - - - - - - - - - - - - diff --git a/datacenterlight/templates/datacenterlight/error404.html b/datacenterlight/templates/datacenterlight/error404.html deleted file mode 100644 index dc819a9d..00000000 --- a/datacenterlight/templates/datacenterlight/error404.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - Rails Hosting.ch - Ruby on Rails as easy as possible | Page not found - - - - - - - - - - - - - - - - - - - - - -
-
-
-

 

-

404

-

- "Sorry, we could not find the page you are looking for!" -

-
-
-
- - - - - - - - - - diff --git a/datacenterlight/templates/datacenterlight/home.html b/datacenterlight/templates/datacenterlight/home.html new file mode 100755 index 00000000..84785b05 --- /dev/null +++ b/datacenterlight/templates/datacenterlight/home.html @@ -0,0 +1,212 @@ +{% extends "datacenterlight/base.html" %} +{% load staticfiles i18n%} +{% get_current_language as LANGUAGE_CODE %} + +{% block content %} + +
+
+ +
+
+ +
+

DataCenterLight

+

{% trans "Finally, an affordable VM hosting in Switzerland!" %}

+
+ +
+
+
+ +
+ + +
+ + + +
+ +
+
+
+ +
+
+
+
+

{% trans "What is it" %}

+
+
+

{% trans "Our data center" %}

+ +
+
+
    +
  • + +

    {% trans "Reuses existing factory halls instead of building a new expensive building." %} +

    +
  • +
  • + +

    {% trans "Only wants you to pay for what you actually need." %}

    +
  • +
  • + +

    {% trans "Is creative, using a modern and alternative design for a data center in order to make it more sustainable and affordable at the same time." %}

    +
  • +
  • + +

    {% trans "Cuts down the costs for you by using FOSS (Free Open Source Software) exclusively, wherefore we can save money from paying licenses." %}

    +
  • +
+ +
+
+
+
+
+ + +
+ +
+ +
+
+
+
+
+

{% trans "Scale out" %}

+
+
+

{% trans "We don't use special hardware. We use commodity hardware: we buy computers that you buy. Just many more and put them in a cozy home for computers called data center." %}

+ +
+
+
+
+ +
+
+
+ + +
+
+ +
+
+
+ +
+
+
+
+

{% trans "Reliable and light" %}

+
+
+

{% trans "Our VMs are located in Switzerland, with reliable power supply and fast internet connection. Our VM costs less thanks to our featherlight infrastructure." %}

+ +
+
+
+
+
+ + +
+ + +
+ +
+ +
+
+

{% trans "We are cutting down the costs significantly!" %}

+

{% trans "Affordable VM hosting based in Switzerland" %}

+
+ +
+
+
+
+

{% trans "VM hosting" %}

+
+
+ 15 CHF/month +
+
+
+

{% trans "Based in Switzerland" %}

+
+
+

1 Core,

+
+
+

2 GB RAM,

+
+
+

{% trans "10 GB Storage (SSD)" %}

+
+
+ {% trans "Order Now!" %} +
+ +
+ +
+
+
+ +
+
+
+
+
+ +
+
+
+

ungleich GmbH

+
+
+

info@datacenterlight.ch

+

In der Au 7, Schwanden 8762

+

{% trans "Switzerland " %}

+
+ +
+
+
+
+

{% trans "Questions?" %} {% trans "Contact us!" %}

+
+
+
+ +
+
+ +
+{% endblock %} diff --git a/datacenterlight/templates/datacenterlight/includes/_footer.html b/datacenterlight/templates/datacenterlight/includes/_footer.html new file mode 100644 index 00000000..5d94624d --- /dev/null +++ b/datacenterlight/templates/datacenterlight/includes/_footer.html @@ -0,0 +1,53 @@ + {% load staticfiles i18n%} +{% get_current_language as LANGUAGE_CODE %} + diff --git a/datacenterlight/templates/datacenterlight/includes/_head.html b/datacenterlight/templates/datacenterlight/includes/_head.html new file mode 100644 index 00000000..e69de29b diff --git a/datacenterlight/templates/datacenterlight/includes/_navbar.html b/datacenterlight/templates/datacenterlight/includes/_navbar.html new file mode 100644 index 00000000..e30654cb --- /dev/null +++ b/datacenterlight/templates/datacenterlight/includes/_navbar.html @@ -0,0 +1,67 @@ +{% load staticfiles i18n%} +{% get_current_language as LANGUAGE_CODE %} +{% load custom_tags %} + \ No newline at end of file diff --git a/datacenterlight/templates/datacenterlight/index.html b/datacenterlight/templates/datacenterlight/index.html index 91772785..00e121d2 100755 --- a/datacenterlight/templates/datacenterlight/index.html +++ b/datacenterlight/templates/datacenterlight/index.html @@ -1,119 +1,8 @@ +{% extends "datacenterlight/base.html" %} {% load staticfiles i18n%} {% get_current_language as LANGUAGE_CODE %} - - - - - - - - - - - - datacenterlight.ch - Featherlight Swiss VM - - - - - - - - - - - - - - - - - - - - - - - - - - - - +{% block content %} @@ -161,13 +50,23 @@
    -
  • -

    {% trans "Reuse existing factory halls intead of building an expensive building." %}

    +
  • + +

    {% trans "Reuses existing factory halls instead of building a new expensive building." %} +

  • -
  • -

    {% trans "Being creative, using modern and alternative design for a datacenter." %}

  • -
  • -

    {% trans "Being open: Using FOSS exclusively, we can save money for licenses." %}

  • +
  • + +

    {% trans "Only wants you to pay for what you actually need." %}

    +
  • +
  • + +

    {% trans "Is creative, using a modern and alternative design for a data center in order to make it more sustainable and affordable at the same time." %}

    +
  • +
  • + +

    {% trans "Cuts down the costs for you by using FOSS (Free Open Source Software) exclusively, wherefore we can save money from paying licenses." %}

    +
@@ -309,7 +208,7 @@ -
+ +
@@ -368,93 +267,4 @@
- - - - - - - - - - - - - - - - - - - - + {% endblock %} \ No newline at end of file diff --git a/datacenterlight/templates/datacenterlight/landing.html b/datacenterlight/templates/datacenterlight/landing.html deleted file mode 100644 index 0a23be9e..00000000 --- a/datacenterlight/templates/datacenterlight/landing.html +++ /dev/null @@ -1,86 +0,0 @@ -{% load staticfiles i18n%} - - - - - - - - landings - - - - - - - - - -
-
-
-

Swiss 2 GB VM for 0.5 CHF per day

-
-
-
-
-
-

Details about the offer..
  • 2 GB RAM
  • 1 CPU
  • 10 GB Dus

I am interested in running

-
-
-
- - -
-
- number of VMs -
- -
- -
-
-

Interested in other offers? Checkout our beta program offers!

-
- -
-
-
- - - - - - - - \ No newline at end of file diff --git a/datacenterlight/templates/datacenterlight/login.html b/datacenterlight/templates/datacenterlight/login.html deleted file mode 100755 index 3a00b83e..00000000 --- a/datacenterlight/templates/datacenterlight/login.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - Rails Hosting.ch - Ruby on Rails as easy as possible - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
 
- -
-

Log In

-
-
- - -
-
- - -
- - -

-
    - -
 
-
-
-
- -
- - - - - - - - - - - - - - - - - diff --git a/datacenterlight/templates/datacenterlight/order.html b/datacenterlight/templates/datacenterlight/order.html index 50e6edd2..f6caff6a 100644 --- a/datacenterlight/templates/datacenterlight/order.html +++ b/datacenterlight/templates/datacenterlight/order.html @@ -1,67 +1,8 @@ {% extends "datacenterlight/base.html" %} {% load staticfiles i18n %} -{% block body %} +{% block content %} - -
@@ -149,94 +90,6 @@
- - - - - - - - - - - - - - - - {% endblock %} diff --git a/datacenterlight/templates/datacenterlight/pricing.html b/datacenterlight/templates/datacenterlight/pricing.html index 7c8e66a6..3016dc3a 100644 --- a/datacenterlight/templates/datacenterlight/pricing.html +++ b/datacenterlight/templates/datacenterlight/pricing.html @@ -1,105 +1,8 @@ +{% extends "datacenterlight/base.html" %} {% load staticfiles i18n%} {% get_current_language as LANGUAGE_CODE %} - - - - - - - - - - - datacenterlight.ch - Featherlight Swiss VM - - - - - - - - - - - - - - - - - - - - - - - - - - - - +{% block content %}
@@ -144,9 +47,11 @@ {% trans "GB Storage (SSD)" %}
- -
+ + +
+
+ + + @@ -172,68 +87,7 @@
+{% endblock %} - - - - - - - - - - - - - - - - - - - + diff --git a/datacenterlight/templates/datacenterlight/signup.html b/datacenterlight/templates/datacenterlight/signup.html deleted file mode 100755 index b7dc3239..00000000 --- a/datacenterlight/templates/datacenterlight/signup.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - Rails Hosting.ch - Ruby on Rails as easy as possible - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
 
-
-

Sign up

-
-
- -
-
- -
-
- -
-
- -
 
-
-

 

-
- - -

-
    - -
-
-
-
- - - - - - - - - - - - - - - - - - - diff --git a/datacenterlight/templates/datacenterlight/success.html b/datacenterlight/templates/datacenterlight/success.html index aad3936a..4cbee12a 100644 --- a/datacenterlight/templates/datacenterlight/success.html +++ b/datacenterlight/templates/datacenterlight/success.html @@ -1,61 +1,7 @@ {% extends "datacenterlight/base.html" %} {% load staticfiles i18n %} -{% block body %} +{% block content %} - -
@@ -91,5 +37,4 @@ -{% endblock %} - +{% endblock %} \ No newline at end of file diff --git a/datacenterlight/templatetags/__init__.py b/datacenterlight/templatetags/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/datacenterlight/templatetags/custom_tags.py b/datacenterlight/templatetags/custom_tags.py new file mode 100644 index 00000000..915e68fe --- /dev/null +++ b/datacenterlight/templatetags/custom_tags.py @@ -0,0 +1,24 @@ +from django import template +from django.core.urlresolvers import resolve, reverse +from django.utils.translation import activate, get_language + +register = template.Library() + + + +@register.simple_tag(takes_context=True) +def change_lang(context, lang=None, *args, **kwargs): + + path = context['request'].path + url_parts = resolve( path ) + + url = path + cur_language = get_language() + try: + activate(lang) + url = reverse( url_parts.view_name, kwargs=url_parts.kwargs ) + finally: + activate(cur_language) + + + return "%s" % url \ No newline at end of file diff --git a/datacenterlight/views.py b/datacenterlight/views.py index cf3405e4..d23c4231 100644 --- a/datacenterlight/views.py +++ b/datacenterlight/views.py @@ -157,6 +157,7 @@ class BetaAccessView(FormView): 'subject': 'DatacenterLight Beta Access Request', 'from_address': '(datacenterlight) datacenterlight Support ', 'to': form.cleaned_data.get('email'), + 'from': '(datacenterlight) DatacenterLight Support support@datacenterlight.ch', 'context': context, 'template_name': 'request_access_confirmation', 'template_path': 'datacenterlight/emails/' @@ -327,6 +328,7 @@ class IndexView(CreateView): 'subject': 'DatacenterLight Beta Access Request', 'from_address': '(datacenterlight) datacenterlight Support ', 'to': form.cleaned_data.get('email'), + 'from': '(datacenterlight) DatacenterLight Support support@datacenterlight.ch', 'context': context, 'template_name': 'request_access_confirmation', 'template_path': 'datacenterlight/emails/' diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 00000000..f2a1d59e --- /dev/null +++ b/deploy.sh @@ -0,0 +1,74 @@ +#!/bin/bash +# +# deploy.sh +# +# This script made to deploy dynamicweb project. +# Please run this script as app user. +# + +APP_HOME_DIR=~/app + +echo "" > $APP_HOME_DIR/deploy.log +while true; do + case "$1" in + -h | --help ) HELP=true; shift ;; + -v | --verbose ) VERBOSE=true; shift ;; + -d | --dbmigrate ) DB_MIGRATE=true; shift ;; + -n | --nogit ) NO_GIT=true; shift ;; + -b | --branch ) BRANCH="$2"; shift 2 ;; + -- ) shift; break ;; + * ) break ;; + esac +done + +if [ "$BRANCH" == "" ]; then + BRANCH="master" +fi + +if [ "$HELP" == "true" ]; then + echo "./deploy.sh " + echo " " + echo "options are : " + echo " -h, --help: Print this help message" + echo " -v, --verbose: Show verbose output to stdout. Without this a deploy.log is written to ~/app folder" + echo " -d, --dbmigrate: Do DB migrate" + echo " -n, --nogit: Don't execute git commands. With this --branch has no effect." + echo " -b, --branch: The branch to pull from origin repo." + exit +fi + +echo "BRANCH="$BRANCH +echo "DB_MIGRATE="$DB_MIGRATE +echo "NO_GIT="$NO_GIT +echo "VERBOSE="$VERBOSE + +# The project directory exists, we pull the specified branch +cd $APP_HOME_DIR +if [ -z "$NO_GIT" ]; then + echo 'We are executing default git commands. Please -no_git to not use this.' + # Save any modified changes before git pulling + git stash + # Fetch all branches/tags + git fetch -a + git checkout $BRANCH + git pull origin $BRANCH +else + echo 'Not using git commands.' +fi + +source ~/pyvenv/bin/activate +pip install -r requirements.txt > deploy.log 2>&1 +echo "###" >> deploy.log +if [ -z "$DB_MIGRATE" ]; then + echo 'We are not doing DB migration' +else + ./manage.py makemigrations >> deploy.log 2>&1 + echo "###" >> deploy.log + ./manage.py migrate >> deploy.log 2>&1 + echo "###" >> deploy.log +fi +printf 'yes' | ./manage.py collectstatic >> deploy.log 2>&1 +echo "###" >> deploy.log +django-admin compilemessages +sudo systemctl restart uwsgi + diff --git a/digitalglarus/locale/de/LC_MESSAGES/django.mo b/digitalglarus/locale/de/LC_MESSAGES/django.mo deleted file mode 100644 index 77296614..00000000 Binary files a/digitalglarus/locale/de/LC_MESSAGES/django.mo and /dev/null differ diff --git a/dynamicweb/settings/base.py b/dynamicweb/settings/base.py index d9ccd7ac..ec240691 100644 --- a/dynamicweb/settings/base.py +++ b/dynamicweb/settings/base.py @@ -110,6 +110,7 @@ INSTALLED_APPS = ( 'digitalglarus', 'nosystemd', 'datacenterlight', + 'datacenterlight.templatetags', 'alplora', 'rest_framework', 'opennebula_api' diff --git a/hosting/locale/de/LC_MESSAGES/django.mo b/hosting/locale/de/LC_MESSAGES/django.mo index fe1ebe2c..1a9bb493 100644 Binary files a/hosting/locale/de/LC_MESSAGES/django.mo and b/hosting/locale/de/LC_MESSAGES/django.mo differ diff --git a/hosting/locale/de/LC_MESSAGES/django.po b/hosting/locale/de/LC_MESSAGES/django.po index ca06753d..9ee6f63c 100644 --- a/hosting/locale/de/LC_MESSAGES/django.po +++ b/hosting/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-06-01 21:03+0000\n" +"POT-Creation-Date: 2017-05-30 13:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -79,70 +79,68 @@ msgstr "Anmelden" msgid "Home" msgstr "Home" -#: hosting/templates/hosting/bill_detail.html:11 -#: hosting/templates/hosting/order_detail.html:10 +#: templates/hosting/bill_detail.html:11 templates/hosting/order_detail.html:10 msgid "Invoice" msgstr "Rechnung" -#: hosting/templates/hosting/bill_detail.html:11 -#: hosting/templates/hosting/order_detail.html:10 +#: templates/hosting/bill_detail.html:11 templates/hosting/order_detail.html:10 msgid "Order #" msgstr "Rechnung #" -#: hosting/templates/hosting/bill_detail.html:25 +#: templates/hosting/bill_detail.html:25 msgid "ungleich GmbH" msgstr "" -#: hosting/templates/hosting/bill_detail.html:26 +#: templates/hosting/bill_detail.html:26 msgid "buchhaltung@ungleich.ch" msgstr "" -#: hosting/templates/hosting/bill_detail.html:27 +#: templates/hosting/bill_detail.html:27 msgid "Hauptstrasse 14" msgstr "" -#: hosting/templates/hosting/bill_detail.html:28 +#: templates/hosting/bill_detail.html:28 msgid "CH-8775 Luchsingen" msgstr "" -#: hosting/templates/hosting/bill_detail.html:29 +#: templates/hosting/bill_detail.html:29 msgid "Mwst-Nummer: CHE-109.549.333 MWST" msgstr "" -#: hosting/templates/hosting/bill_detail.html:60 +#: templates/hosting/bill_detail.html:60 msgid "Total:" msgstr "" -#: hosting/templates/hosting/bill_detail.html:68 +#: templates/hosting/bill_detail.html:68 #, python-format msgid "Alles Preise in CHF mit 8%% Mehrwertsteuer." msgstr "All prices in CHF including 8%% VAT" -#: hosting/templates/hosting/bill_detail.html:69 +#: templates/hosting/bill_detail.html:69 msgid "Betrag zahlbar innerhalb von 30 Tagen ab Rechnungseingang." msgstr "" -#: hosting/templates/hosting/bill_detail.html:70 +#: templates/hosting/bill_detail.html:70 msgid "Kontoverbindung:" msgstr "" -#: hosting/templates/hosting/bill_detail.html:73 +#: templates/hosting/bill_detail.html:73 msgid "IBAN:" msgstr "" -#: hosting/templates/hosting/bill_detail.html:76 +#: templates/hosting/bill_detail.html:76 msgid "BIC:" msgstr "" -#: hosting/templates/hosting/bill_detail.html:81 +#: templates/hosting/bill_detail.html:81 msgid "CH02 0900 0000 6071 8848 8" msgstr "" -#: hosting/templates/hosting/bill_detail.html:84 +#: templates/hosting/bill_detail.html:84 msgid "POFICHBEXXX" msgstr "" -#: hosting/templates/hosting/bills.html:12 +#: templates/hosting/bills.html:12 msgid "Customers" msgstr "Kunden" @@ -151,27 +149,31 @@ msgstr "Kunden" msgid "Name" msgstr "" -#: hosting/templates/hosting/bills.html:17 +#: templates/hosting/bills.html:17 msgid "Email" msgstr "" -#: hosting/templates/hosting/bills.html:28 +#: templates/hosting/bills.html:28 msgid "View Bill" msgstr "Rechnung anzeigen" -#: hosting/templates/hosting/bills.html:41 -#: hosting/templates/hosting/orders.html:83 -#: hosting/templates/hosting/virtual_machines.html:70 +#: templates/hosting/bills.html:41 templates/hosting/orders.html.py:83 +#: templates/hosting/virtual_machines.html:70 msgid "previous" msgstr "vorherige" -#: hosting/templates/hosting/bills.html:47 -#: hosting/templates/hosting/orders.html:89 -#: hosting/templates/hosting/virtual_machines.html:76 +#: templates/hosting/bills.html:47 templates/hosting/orders.html.py:89 +#: templates/hosting/virtual_machines.html:76 msgid "next" msgstr "nächste" -#: hosting/templates/hosting/confirm_reset_password.html:19 +#: templates/hosting/confirm_reset_password.html:10 +#: templates/hosting/login.html:9 templates/hosting/reset_password.html.py:9 +#: templates/hosting/signup.html:8 +msgid "Your VM hosted in Switzerland" +msgstr "Ihre VM in der Schweiz" + +#: templates/hosting/confirm_reset_password.html:14 msgid "Set your new password" msgstr "Setzen Ihr neues Passwort" @@ -206,40 +208,34 @@ msgstr "Wählen Sie eine Konfiguration" msgid "CHF/Month" msgstr "CHF/Monat" -#: hosting/templates/hosting/create_virtual_machine.html:45 +#: templates/hosting/create_virtual_machine.html:45 msgid "Start VM" msgstr "Start VM" -#: hosting/templates/hosting/emails/password_reset_email.html:2 -#: hosting/templates/hosting/emails/password_reset_email.txt:2 +#: templates/hosting/emails/password_reset_email.html:2 +#: templates/hosting/emails/password_reset_email.txt:2 #, python-format msgid "" "You're receiving this email because you requested a password reset for your " "user account at %(site_name)s." msgstr "" -#: hosting/templates/hosting/emails/password_reset_email.html:4 -#: hosting/templates/hosting/emails/password_reset_email.txt:4 +#: templates/hosting/emails/password_reset_email.html:4 +#: templates/hosting/emails/password_reset_email.txt:4 msgid "Please go to the following page and choose a new password:" msgstr "" -#: hosting/templates/hosting/emails/password_reset_email.html:9 -#: hosting/templates/hosting/emails/password_reset_email.txt:9 +#: templates/hosting/emails/password_reset_email.html:9 +#: templates/hosting/emails/password_reset_email.txt:9 msgid "Thanks for using our site!" msgstr "" -#: hosting/templates/hosting/emails/password_reset_email.html:11 -#: hosting/templates/hosting/emails/password_reset_email.txt:11 +#: templates/hosting/emails/password_reset_email.html:11 +#: templates/hosting/emails/password_reset_email.txt:11 #, python-format msgid "The %(site_name)s team" msgstr "" -#: hosting/templates/hosting/login.html:10 -#: hosting/templates/hosting/reset_password.html:10 -#: hosting/templates/hosting/signup.html:9 -msgid "Your VM hosted in Switzerland" -msgstr "Ihre VM gehostet in der Schweiz" - #: hosting/templates/hosting/login.html:26 msgid "You haven been logged out" msgstr "Sie wurden abgmeldet" @@ -258,44 +254,44 @@ msgstr "Registrieren" msgid "Forgot your password ? " msgstr "Passwort vergessen?" -#: hosting/templates/hosting/notifications.html:9 +#: templates/hosting/notifications.html:9 msgid "Notifications" msgstr "Benachrichtigungen" -#: hosting/templates/hosting/notifications.html:16 +#: templates/hosting/notifications.html:16 msgid "Unread" msgstr "Ungelesen" -#: hosting/templates/hosting/notifications.html:26 +#: templates/hosting/notifications.html:26 msgid "All" msgstr "Alle" -#: hosting/templates/hosting/notifications.html:38 +#: templates/hosting/notifications.html:38 msgid "Unread notifications" msgstr "Ungelesene Benachrichtigungen" -#: hosting/templates/hosting/notifications.html:48 +#: templates/hosting/notifications.html:48 msgid "Mark as read" msgstr "Als gelesen markieren" -#: hosting/templates/hosting/notifications.html:59 +#: templates/hosting/notifications.html:59 msgid "All notifications" msgstr "Alle Benachrichtigungen" -#: hosting/templates/hosting/order_detail.html:16 -#: hosting/templates/hosting/order_detail.html:24 +#: templates/hosting/order_detail.html:16 +#: templates/hosting/order_detail.html:24 msgid "Billed To:" msgstr "" -#: hosting/templates/hosting/order_detail.html:26 +#: templates/hosting/order_detail.html:26 msgid "Status:" msgstr "" -#: hosting/templates/hosting/order_detail.html:38 +#: templates/hosting/order_detail.html:38 msgid "Payment Method:" msgstr "Bezahlmethode" -#: hosting/templates/hosting/order_detail.html:49 +#: templates/hosting/order_detail.html:49 msgid "Order summary" msgstr "Bestellungsübersicht" @@ -308,6 +304,8 @@ msgstr "Prozessorkerne" #: hosting/templates/hosting/order_detail.html:54 #: hosting/templates/hosting/payment.html:20 #: hosting/templates/hosting/virtual_machine_detail.html:81 +#: templates/hosting/order_detail.html:54 +#: templates/hosting/virtual_machine_detail.html:82 msgid "Memory" msgstr "Arbeitsspeicher" @@ -316,19 +314,19 @@ msgstr "Arbeitsspeicher" msgid "Disk space" msgstr "Festplattenkapazität" -#: hosting/templates/hosting/order_detail.html:58 +#: templates/hosting/order_detail.html:58 msgid "Total" msgstr "" -#: hosting/templates/hosting/order_detail.html:64 +#: templates/hosting/order_detail.html:64 msgid "Finish Configuration" msgstr "Konfiguration beenden" -#: hosting/templates/hosting/orders.html:17 +#: templates/hosting/orders.html:17 msgid "Date" msgstr "Datum" -#: hosting/templates/hosting/orders.html:18 +#: templates/hosting/orders.html:18 msgid "Amount" msgstr "Betrag" @@ -339,32 +337,31 @@ msgstr "Betrag" msgid "Status" msgstr "" -#: hosting/templates/hosting/orders.html:30 +#: templates/hosting/orders.html:30 msgid "Approved" msgstr "Akzeptiert" -#: hosting/templates/hosting/orders.html:32 +#: templates/hosting/orders.html:32 msgid "Declined" msgstr "Abgelehnt" -#: hosting/templates/hosting/orders.html:37 -#: hosting/templates/hosting/virtual_machines.html:58 +#: templates/hosting/orders.html:37 templates/hosting/virtual_machines.html:58 msgid "View Detail" msgstr "Details anzeigen" -#: hosting/templates/hosting/orders.html:41 +#: templates/hosting/orders.html:41 msgid "Cancel Order" msgstr "Bestellung stornieren" -#: hosting/templates/hosting/orders.html:56 +#: templates/hosting/orders.html:56 msgid "Do You want do delete your order?" msgstr "Wollen Sie ihre Bestellung löschen?" -#: hosting/templates/hosting/orders.html:64 +#: templates/hosting/orders.html:64 msgid "Close" msgstr "Schliessen" -#: hosting/templates/hosting/orders.html:66 +#: templates/hosting/orders.html:66 msgid "Delete" msgstr "Löschen" @@ -405,51 +402,51 @@ msgstr "CV Code" msgid "Reset your password" msgstr "Passwort zurücksetzen" -#: hosting/templates/hosting/virtual_machine_detail.html:19 +#: templates/hosting/virtual_machine_detail.html:19 msgid "Settings" msgstr "Einstellungen" -#: hosting/templates/hosting/virtual_machine_detail.html:25 +#: templates/hosting/virtual_machine_detail.html:25 msgid "Billing" msgstr "Abrechnungen" -#: hosting/templates/hosting/virtual_machine_detail.html:60 +#: templates/hosting/virtual_machine_detail.html:60 msgid "Ip not assigned yet" msgstr "Ip nicht zugewiesen" -#: hosting/templates/hosting/virtual_machine_detail.html:87 +#: templates/hosting/virtual_machine_detail.html:89 msgid "Disk" msgstr "Festplatte" -#: hosting/templates/hosting/virtual_machine_detail.html:96 +#: templates/hosting/virtual_machine_detail.html:98 msgid "Configuration" msgstr "Konfiguration" -#: hosting/templates/hosting/virtual_machine_detail.html:106 +#: templates/hosting/virtual_machine_detail.html:108 msgid "Current pricing" msgstr "Aktueller Preis" -#: hosting/templates/hosting/virtual_machine_detail.html:115 +#: templates/hosting/virtual_machine_detail.html:117 msgid "Current status" msgstr "Aktueller Status" -#: hosting/templates/hosting/virtual_machine_detail.html:140 +#: templates/hosting/virtual_machine_detail.html:142 msgid "Terminate Virtual Machine" msgstr "Virtuelle Maschine beenden" -#: hosting/templates/hosting/virtual_machine_detail.html:161 +#: templates/hosting/virtual_machine_detail.html:163 msgid "Terminate your Virtual Machine" msgstr "Ihre virtuelle Maschine beenden" -#: hosting/templates/hosting/virtual_machine_detail.html:164 +#: templates/hosting/virtual_machine_detail.html:166 msgid "Are you sure do you want to cancel your Virtual Machine " msgstr "Sind Sie sicher, dass Sie ihre virtuelle Maschine beenden wollen " -#: hosting/templates/hosting/virtual_machine_detail.html:167 +#: templates/hosting/virtual_machine_detail.html:169 msgid "Cancel" msgstr "Beenden" -#: hosting/templates/hosting/virtual_machine_key.html:11 +#: templates/hosting/virtual_machine_key.html:11 msgid "Access Key" msgstr "Zugriffsschlüssel" @@ -511,22 +508,22 @@ msgstr "" msgid "Generate my key" msgstr "Generiere meinen Schlüssel" -#: hosting/templates/hosting/virtual_machines.html:9 +#: templates/hosting/virtual_machines.html:9 msgid "Virtual Machines" msgstr "Virtuelle Maschinen" -#: hosting/templates/hosting/virtual_machines.html:22 +#: templates/hosting/virtual_machines.html:22 msgid "Create VM" msgstr "Neue VM" -#: hosting/templates/hosting/virtual_machines.html:28 +#: templates/hosting/virtual_machines.html:28 msgid "ID" msgstr "" -#: hosting/templates/hosting/virtual_machines.html:29 +#: templates/hosting/virtual_machines.html:29 msgid "Ipv4" msgstr "" -#: hosting/templates/hosting/virtual_machines.html:30 +#: templates/hosting/virtual_machines.html:30 msgid "Ipv6" msgstr "" diff --git a/hosting/static/hosting/css/commons.css b/hosting/static/hosting/css/commons.css index 234b680f..78bfd827 100644 --- a/hosting/static/hosting/css/commons.css +++ b/hosting/static/hosting/css/commons.css @@ -1,7 +1,23 @@ .dashboard-container { - padding-top:70px; padding-bottom: 11%; + padding-top:70px; padding-bottom: 70px; + width: 90%; + margin: 0 auto; + max-width: 768px; } +.content-dashboard{ + min-height: 100vh; + width: 80%; + margin: 0 auto; + max-width: 1120px; +} +.container-table{ + margin-top: 35px; + overflow-y: hidden; +} +.container-table table{ + overflow-y: auto; +} .borderless td { border: none !important; } @@ -26,3 +42,19 @@ .space-above-big { margin-top: 20%; } + +.table>tbody>tr>td{ + vertical-align: middle; +} +.fa-separate{ + margin-right: 15px; +} +@media (max-width: 540px) { + select { + width: 280px; + } + .content-dashboard { + width: 90%; + } +} + diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css index 5d4c6a90..dd25715f 100644 --- a/hosting/static/hosting/css/landing-page.css +++ b/hosting/static/hosting/css/landing-page.css @@ -4,22 +4,19 @@ * For details, see http://www.apache.org/licenses/LICENSE-2.0. */ + @font-face { - font-family: 'Montserrat-Regular'; - src: url('../fonts/Montserrat/Montserrat-Regular.ttf'); + font-family: 'Lato-Regular'; + src: url('../fonts/Lato/Lato-Regular.ttf'); } @font-face { - font-family: 'Montserrat-Bold'; - src: url('../fonts/Montserrat/Montserrat-Bold.ttf'); + src: url('../fonts/Lato/Lato-Black.ttf'); } @font-face { - font-family: 'Montserrat-Medium'; - src: url('../fonts/Montserrat/Montserrat-Medium.ttf'); -} -@font-face { - font-family: 'Montserrat-Light'; - src: url('../fonts/Montserrat/Montserrat-Light.ttf'); + font-family: 'Lato-Light'; + src: url('../fonts/Lato/Lato-Light.ttf'); } + body, html { width: 100%; @@ -33,8 +30,8 @@ h3, h4, h5, h6 { - font-family: 'Montserrat-Regular', sans-serif; - font-weight: 700; + font-family: 'Lato-Regular', sans-serif; + font-weight: 300; } .topnav { font-size: 14px; @@ -226,18 +223,23 @@ h6 { z-index: 1000; } .auth-container .auth-content{ - width: 80%; + width: 100%; margin: 0 auto; max-width: 390px; - margin-top: 60px; - } +.auth-container .auth-center{ + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%,-50%); + width: 100%; +} + .auth-container .auth-title{ - margin-top: 40px; + margin-bottom: 50px; } .auth-container .auth-title h2{ color: #fff; - font-family: 'Montserrat-Bold'; font-size: 44px; text-align: center; width: 425px; @@ -276,7 +278,6 @@ h6 { font-size: 20px; border-radius: 3px 3px 0px 0px; margin: 0 auto; - font-family: 'Montserrat-Medium'; } .auth-box .form{ padding: 20px; @@ -340,6 +341,19 @@ h6 { ul.banner-social-buttons > li:last-child { margin-bottom: 0; } + .auth-box .form { + padding: 15px 0px 0 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 { + display: none; + } } @media (max-width: 540px) { .auth-container .auth-title h2{ @@ -347,9 +361,16 @@ h6 { width: 90%; margin-bottom: 50px; } - .auth-box .form { - padding: 15px; + .auth-container.auth-signup .auth-title h2{ + font-size: 20px; width: 90%; + margin-bottom: 50px; + } + .auth-box .form { + width: 90%; + } + .auth-box .section-heading { + font-size: 15px; } } footer { diff --git a/hosting/static/hosting/css/order.css b/hosting/static/hosting/css/order.css index 2abc47db..e8bc0328 100644 --- a/hosting/static/hosting/css/order.css +++ b/hosting/static/hosting/css/order.css @@ -1,4 +1,4 @@ -.order-detail-container {padding-top: 70px; padding-bottom: 11%;} +.order-detail-container {padding-top: 70px; padding-bottom: 70px; margin-bottom: 70px;} .order-detail-container .invoice-title h2, .invoice-title h3 { display: inline-block; diff --git a/hosting/static/hosting/css/owl.carousel.min.css b/hosting/static/hosting/css/owl.carousel.min.css new file mode 100755 index 00000000..1ece042a --- /dev/null +++ b/hosting/static/hosting/css/owl.carousel.min.css @@ -0,0 +1,6 @@ +/** + * Owl Carousel v2.2.1 + * Copyright 2013-2017 David Deutsch + * Licensed under () + */ +.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%} \ No newline at end of file diff --git a/hosting/static/hosting/css/owl.theme.default.min.css b/hosting/static/hosting/css/owl.theme.default.min.css new file mode 100755 index 00000000..59836030 --- /dev/null +++ b/hosting/static/hosting/css/owl.theme.default.min.css @@ -0,0 +1,6 @@ +/** + * Owl Carousel v2.2.1 + * Copyright 2013-2017 David Deutsch + * Licensed under () + */ +.owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791} \ No newline at end of file diff --git a/hosting/static/hosting/css/virtual-machine.css b/hosting/static/hosting/css/virtual-machine.css index b5cd27f4..e043879d 100644 --- a/hosting/static/hosting/css/virtual-machine.css +++ b/hosting/static/hosting/css/virtual-machine.css @@ -43,4 +43,188 @@ .virtual-machine-container .right-place{ margin-top: 15px; +} +.virtual-machine-container .separate-md{ + margin-top: 35px; +} +.virtual-machine-container .box-setting{ + height: 100px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} +.virtual-machine-container .box-setting .label-success{ + padding-top: 4px; +} +.virtual-machine-container .form-ssh textarea{ + height: 150px !important +} + +/*Create VM Styles*/ +.parent-container{ + overflow-x: hidden; + overflow-y: hidden; +} +.parent-container ::-webkit-scrollbar { + display: none; +} +.container-os{ + overflow: auto; + padding: 0px 0px; + min-width: 300px; + width: auto; + max-width: 800px; + min-height: 150px; +} +.container-os .owl-next{ + position: absolute; + right: -12px; + top: 6px; + color: gray !important; + background: transparent !important; + font-size: 54px !important; +} +.container-os .owl-prev{ + position: absolute; + left: -12px; + top: 6px; + color: gray !important; + background: transparent !important; + font-size: 54px !important; +} +.container-os .owl-dots{ + display: none; +} + +.container-os .os-circle{ + width: 120px; + height: 120px; + display: flex; + margin: 0 auto; + justify-content: center; + align-items: center; + background: #f7f7f7; + border-radius: 50%; + cursor: pointer; + text-align: center; + min-width: 120px; + border: 4px solid #b9b9b9; + transition: all .1s ease-in; +} +.step-title{ + margin-bottom: 25px; +} + +.container-os.config .config-box{ + width: 115px; + height: 115px; + display: flex; + margin: 0 auto; + flex-direction: column; + justify-content: center; + align-items: center; + background: #f7f7f7; + /* border-radius: 50%; */ + cursor: pointer; + text-align: center; + min-width: 115px; + border-radius: 7px; + border: 4px solid #b9b9b9; + transition: all .1s ease-in; +} +.container-os .os-circle.active{ + border: 6px solid #2dc32d; + min-width: 135px; + width: 135px; + height: 135px; +} +.container-os .os-circle.active .text{ + font-size: 20px; + line-height: 20px; +} +.container-os.config .config-box.active{ + border: 6px solid #5cb85c; + min-width: 125px; + width: 125px; + height: 125px; +} +.container-os.config .config-box span{ + font-size: 14px; +} +.container-os.config .config-box.active span{ + font-size: 16px; +} +.container-os .os-circle .text{ + font-size: 16px; + width: 50%; + line-height: 16px; +} + +.container-button{ + text-align: right; + display: none; +} +.container-button .btn{ + font-size: 17px; + width: 150px; + margin-top: 5px; + +} + +.container-button .price{ + font-size: 18px; +} + +@media (max-width: 990px) { + .virtual-machine-container .tabs-left { + border-right: 0; + } + .virtual-machine-container .tabs-left>li.active>a, + .virtual-machine-container .tabs-left>li.active>a:hover, + .virtual-machine-container .tabs-left>li.active>a:focus { + border: 1px solid #ddd; + } + .virtual-machine-container .tabs-left>li>a { + border-radius: 4px; + margin-right: 0; + display:block; + } +} +@media (max-width: 768px) { + .container-button{ + text-align: center; + } + .step-title{ + text-align: center; + } + .dashboard-title{ + text-align: center; + } + .container-os .os-circle{ + width: 105px; + height: 105px; + min-width: 105px; + } + .container-os .os-circle .text{ + font-size: 14px; + line-height: 15px; + } + + .container-os .owl-next { + right: 20px; + top: 20px; + font-size: 40px !important; + } + .container-os .owl-prev{ + position: absolute; + left: 20px; + top: 20px; + font-size: 40px !important; + } +} +@media (max-width: 420px) { + .btn-create-vm { + float: left !important; + } } \ No newline at end of file diff --git a/hosting/static/hosting/fonts/Lato/Lato-Black.ttf b/hosting/static/hosting/fonts/Lato/Lato-Black.ttf new file mode 100755 index 00000000..6848db0d Binary files /dev/null and b/hosting/static/hosting/fonts/Lato/Lato-Black.ttf differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-BlackItalic.ttf b/hosting/static/hosting/fonts/Lato/Lato-BlackItalic.ttf new file mode 100755 index 00000000..5decf129 Binary files /dev/null and b/hosting/static/hosting/fonts/Lato/Lato-BlackItalic.ttf differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-Bold.ttf b/hosting/static/hosting/fonts/Lato/Lato-Bold.ttf new file mode 100755 index 00000000..74343694 Binary files /dev/null and b/hosting/static/hosting/fonts/Lato/Lato-Bold.ttf differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-BoldItalic.ttf b/hosting/static/hosting/fonts/Lato/Lato-BoldItalic.ttf new file mode 100755 index 00000000..684aacf5 Binary files /dev/null and b/hosting/static/hosting/fonts/Lato/Lato-BoldItalic.ttf differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-Hairline.ttf b/hosting/static/hosting/fonts/Lato/Lato-Hairline.ttf new file mode 100755 index 00000000..288be295 Binary files /dev/null and b/hosting/static/hosting/fonts/Lato/Lato-Hairline.ttf differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-HairlineItalic.ttf b/hosting/static/hosting/fonts/Lato/Lato-HairlineItalic.ttf new file mode 100755 index 00000000..c2bfd335 Binary files /dev/null and b/hosting/static/hosting/fonts/Lato/Lato-HairlineItalic.ttf differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-Italic.ttf b/hosting/static/hosting/fonts/Lato/Lato-Italic.ttf new file mode 100755 index 00000000..3d3b7a29 Binary files /dev/null and b/hosting/static/hosting/fonts/Lato/Lato-Italic.ttf differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-Light.ttf b/hosting/static/hosting/fonts/Lato/Lato-Light.ttf new file mode 100755 index 00000000..a958067a Binary files /dev/null and b/hosting/static/hosting/fonts/Lato/Lato-Light.ttf differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-LightItalic.ttf b/hosting/static/hosting/fonts/Lato/Lato-LightItalic.ttf new file mode 100755 index 00000000..5e45ad9a Binary files /dev/null and b/hosting/static/hosting/fonts/Lato/Lato-LightItalic.ttf differ diff --git a/hosting/static/hosting/fonts/Lato/Lato-Regular.ttf b/hosting/static/hosting/fonts/Lato/Lato-Regular.ttf new file mode 100755 index 00000000..04ea8efb Binary files /dev/null and b/hosting/static/hosting/fonts/Lato/Lato-Regular.ttf differ diff --git a/hosting/static/hosting/fonts/Lato/OFL.txt b/hosting/static/hosting/fonts/Lato/OFL.txt new file mode 100755 index 00000000..f8ca7bc3 --- /dev/null +++ b/hosting/static/hosting/fonts/Lato/OFL.txt @@ -0,0 +1,92 @@ +Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato" +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-Black.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-Black.ttf deleted file mode 100755 index bf5443c5..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-Black.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-BlackItalic.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-BlackItalic.ttf deleted file mode 100755 index 3eee3a76..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-BlackItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-Bold.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-Bold.ttf deleted file mode 100755 index 8e9a5f3f..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-Bold.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-BoldItalic.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-BoldItalic.ttf deleted file mode 100755 index 2c336300..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-BoldItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraBold.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraBold.ttf deleted file mode 100755 index 1e3692d6..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraBold.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraBoldItalic.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraBoldItalic.ttf deleted file mode 100755 index 5f6c3824..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraBoldItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraLight.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraLight.ttf deleted file mode 100755 index 7490dc73..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraLight.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraLightItalic.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraLightItalic.ttf deleted file mode 100755 index 24e13547..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-ExtraLightItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-Italic.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-Italic.ttf deleted file mode 100755 index c5a36e58..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-Italic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-Light.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-Light.ttf deleted file mode 100755 index e66dc5bf..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-Light.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-LightItalic.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-LightItalic.ttf deleted file mode 100755 index b78b8b73..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-LightItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-Medium.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-Medium.ttf deleted file mode 100755 index 88d70b89..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-Medium.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-MediumItalic.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-MediumItalic.ttf deleted file mode 100755 index 225fd18f..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-MediumItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-Regular.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-Regular.ttf deleted file mode 100755 index 626355a2..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-Regular.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-SemiBold.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-SemiBold.ttf deleted file mode 100755 index 61570450..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-SemiBold.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-SemiBoldItalic.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-SemiBoldItalic.ttf deleted file mode 100755 index c6dd9773..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-SemiBoldItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-Thin.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-Thin.ttf deleted file mode 100755 index dc16a022..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-Thin.ttf and /dev/null differ diff --git a/hosting/static/hosting/fonts/Montserrat/Montserrat-ThinItalic.ttf b/hosting/static/hosting/fonts/Montserrat/Montserrat-ThinItalic.ttf deleted file mode 100755 index b9e12f4a..00000000 Binary files a/hosting/static/hosting/fonts/Montserrat/Montserrat-ThinItalic.ttf and /dev/null differ diff --git a/hosting/static/hosting/js/createvm.js b/hosting/static/hosting/js/createvm.js new file mode 100644 index 00000000..ca7891ea --- /dev/null +++ b/hosting/static/hosting/js/createvm.js @@ -0,0 +1,89 @@ +(function($){ + "use strict"; // Start of use strict + + + $(window).load(function(){ + + + }); + + $(document).ready(function(){ + _initOs(); + _ifOverflow(); + + }); + + $(window).resize(function(){ + + _ifOverflow(); + + }); + + + + function _initOs(){ + + + $('.os-circle').click(function(event){ + $('.os-circle').removeClass('active'); + $(this).addClass('active'); + + var idTemplate = $(this).data('id'); + $('input[name=vm_template_id]').val(idTemplate); + }); + $('.config-box').click(function(event){ + $('.config-box').removeClass('active'); + $(this).addClass('active'); + var idConfig = $(this).data('id'); + var price = $(this).data('price'); + $('input[name=configuration]').val(idConfig); + $('.container-button').fadeIn(); + $('#priceValue').text(price); + }); + + $('.owl-carousel').owlCarousel({ + items:4, + nav: true, + margin:30, + responsiveClass:true, + navText: ['', ''], + responsive:{ + 0:{ + items:1, + nav:true + }, + 600:{ + items:2, + nav:true + }, + 768:{ + items:3, + nav:true + }, + 990:{ + items:4, + nav:true + } + } + }); + } + function _ifOverflow(){ + + var dcContainer= document.getElementById('dcContainer'); + var containerOs= document.getElementById('containerOs'); + console.log('d-c', dcContainer.offsetWidth-20); + console.log('d-os', containerOs.scrollWidth); + + if(dcContainer.offsetWidth-20 < containerOs.scrollWidth){ + console.log('oooVerrflowwww'); + } + + + + } + + + +})(jQuery); + + diff --git a/hosting/static/hosting/js/vendor/owl.carousel.min.js b/hosting/static/hosting/js/vendor/owl.carousel.min.js new file mode 100755 index 00000000..9b9566f4 --- /dev/null +++ b/hosting/static/hosting/js/vendor/owl.carousel.min.js @@ -0,0 +1,7 @@ +/** + * Owl Carousel v2.2.1 + * Copyright 2013-2017 David Deutsch + * Licensed under () + */ +!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g--;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.settings.center&&(this.$stage.children(".center").removeClass("center"),this.$stage.children().eq(this.current()).addClass("center"))}}],e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var b,c,e;b=this.$element.find("img"),c=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,e=this.$element.children(c).width(),b.length&&e<=0&&this.preloadAutoWidthImages(b)}this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+' class="'+this.settings.stageClass+'"/>').wrap('
'),this.$element.append(this.$stage.parent()),this.replace(this.$element.children().not(this.$stage.parent())),this.$element.is(":visible")?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.$element.is(":visible")&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),this.settings.responsive!==!1&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var d=-1,e=30,f=this.width(),g=this.coordinates();return this.settings.freeDrag||a.each(g,a.proxy(function(a,h){return"left"===c&&b>h-e&&bh-f-e&&b",g[a+1]||h-f)&&(d="left"===c?a+1:a),d===-1},this)),this.settings.loop||(this.op(b,">",g[this.minimum()])?d=b=this.minimum():this.op(b,"<",g[this.maximum()])&&(d=b=this.maximum())),d},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){a=this.normalize(a),a!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){for(b=this._items.length,c=this._items[--b].width(),d=this.$element.width();b--&&(c+=this._items[b].width()+this.settings.margin,!(c>d)););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2===0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=f*-1*g),a=c+e,d=((a-h)%g+g)%g+h,d!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.$element.is(":visible")&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){a=this.normalize(a,!0),a!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),this.settings.responsive!==!1&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a":return d?ac;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&a.namespace.indexOf("owl")!==-1?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.$element.is(":visible"),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.$element.is(":visible")!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type))for(var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&e*-1||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);f++-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"==a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.$stage.children().toArray().slice(b,c),e=[],f=0;a.each(d,function(b,c){e.push(a(c).height())}),f=Math.max.apply(null,e),this._core.$stage.parent().height(f).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?'style="width:'+c.width+"px;height:"+c.height+'px;"':"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(a){e='
',d=k.lazyLoad?'
':'
',b.after(d),b.after(e)};if(b.wrap('
"),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),"youtube"===f.type?c='':"vimeo"===f.type?c='':"vzaar"===f.type&&(c=''),a('
'+c+"
").insertAfter(e.find(".owl-video")),this._playing=e.addClass("owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)}, +a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._timeout=null,this._paused=!1,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._core.settings.autoplay&&this._setAutoPlayInterval()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype.play=function(a,b){this._paused=!1,this._core.is("rotating")||(this._core.enter("rotating"),this._setAutoPlayInterval())},e.prototype._getNextTimeout=function(d,e){return this._timeout&&b.clearTimeout(this._timeout),b.setTimeout(a.proxy(function(){this._paused||this._core.is("busy")||this._core.is("interacting")||c.hidden||this._core.next(e||this._core.settings.autoplaySpeed)},this),d||this._core.settings.autoplayTimeout)},e.prototype._setAutoPlayInterval=function(){this._timeout=this._getNextTimeout()},e.prototype.stop=function(){this._core.is("rotating")&&(b.clearTimeout(this._timeout),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&(this._paused=!0)},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('
'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"
")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:["prev","next"],navSpeed:!1,navElement:"div",navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("
").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a("
").addClass(c.dotClass).append(a("")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("
").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","div",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.owlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+" "+h.join(f+" ")+f).split(" "),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a("").get(0).style,h="Webkit Moz O ms".split(" "),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document); \ No newline at end of file diff --git a/hosting/templates/hosting/base_short.html b/hosting/templates/hosting/base_short.html index fba047c6..e8aacff4 100644 --- a/hosting/templates/hosting/base_short.html +++ b/hosting/templates/hosting/base_short.html @@ -29,6 +29,8 @@ + + @@ -115,58 +117,23 @@ {% endif %} - - - {% block content %} - {% endblock %} +
+ {% block content %} + {% endblock %} +
{% if request.user.is_authenticated %} -