Merge branch 'master' into task/3354/modal_restyling
This commit is contained in:
commit
8aac161196
14 changed files with 170 additions and 109 deletions
20
Changelog
20
Changelog
|
@ -1,20 +1,24 @@
|
|||
1.0.22: 2017-07-30
|
||||
* #3593: [datacenterlight] Removed underbars between social icons in index
|
||||
* #3509: [datacenterlight, hosting] Made navbar transparent and removed mobile navbar bug in login/signup/reset-password
|
||||
* #3592: [datacenterlight] Changed “Order Now” button text to “Continue/weiter”
|
||||
* #3579: [datacenterlight] Removed “blinks” on click on navbar menus
|
||||
* #3577: [datacenterlight] Added backend CPU, RAM, SSD fields validation
|
||||
* #3615: [datacenterlight] Decoupled landing VM templates from OpenNebula
|
||||
* #3604: [datacenterlight, hosting] Font colour change for better visibility in signup/login/password request footer links
|
||||
[all] Introduced ENABLE_DEBUG_LOGGING
|
||||
* #3542: [datacenterlight, hosting] Fixed warning messages and deprecated url
|
||||
* #3603: [datacenterlight] Removed navbar language option dropdown
|
||||
* #3629: [datacenterlight] Fixed navbar language switching bug
|
||||
1.0.21: 2017-07-21
|
||||
* #3591: [datacenterlight, payment] Fixed card holder name to appear on Confirm Order page
|
||||
* #3558: [datacenterlight] Changed font family and background color for header
|
||||
* #3581: [datacenterlight] Lead font weight change
|
||||
* #3584: [all] Add flag is_superuser=True in MyUserManager
|
||||
1.0.20: 2017-07-18
|
||||
* #3590: [digitalglarus] Added impact hub partner logo and text in digitalglarus
|
||||
[datacenterlight, hosting] Fixed overlapping of date and billing address in the mobile view
|
||||
* #3580: [datacenterlight, hosting] Introduced newly designed payment page. Cust1.0.20: 2017-07-18
|
||||
* #3590: [digitalglarus] Added impact hub partner logo and text in digitalglarus
|
||||
[datacenterlight, hosting] Fixed overlapping of date and billing address in the mobile view
|
||||
* #3580: [datacenterlight, hosting] Introduced newly designed payment page. Customized Stripe credit card input fields
|
||||
* #3568: [all] Improved the way of adding Google analytics (ga) code. We now have ga code for ungleich, digitalglarus, blog, hosting
|
||||
and datacenterlight
|
||||
* #3564: [datacenterlight] Improved calculator form validations, both client side and server side
|
||||
[datacenterlight] Changed "Place order" button to "Submit" in the payment page
|
||||
* #3540: [datacenterlight] Improved credit card section with Stripe clarification texts and corresponding DE translationsomized Stripe credit card input fields
|
||||
* #3568: [all] Improved the way of adding Google analytics (ga) code. We now have ga code for ungleich, digitalglarus, blog, hosting
|
||||
and datacenterlight
|
||||
* #3564: [datacenterlight] Improved calculator form validations, both client side and server side
|
||||
|
|
|
@ -4,9 +4,9 @@ from .views import IndexView, LoginView, ContactView
|
|||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^/?$', IndexView.as_view(), name='index'),
|
||||
url(r'/login/', LoginView.as_view(), name='login'),
|
||||
url(r'/contact', ContactView.as_view(), name='contact'),
|
||||
url(r'^$', IndexView.as_view(), name='index'),
|
||||
url(r'login/', LoginView.as_view(), name='login'),
|
||||
url(r'contact', ContactView.as_view(), name='contact'),
|
||||
# url(r'^/beta-program/?$', BetaProgramView.as_view(), name='beta'),
|
||||
# url(r'^/landing/?$', LandingProgramView.as_view(), name='landing'),
|
||||
]
|
||||
|
|
|
@ -156,6 +156,14 @@ h6 {
|
|||
background-color: transparent;
|
||||
}
|
||||
|
||||
.navbar-transparent .navbar-nav>li>.on-hover-border {
|
||||
transition: all 0.3s linear;
|
||||
box-shadow: none;
|
||||
}
|
||||
.navbar-transparent .navbar-nav>li>.on-hover-border:hover {
|
||||
box-shadow: 0 0 0 1px #eee;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.navbar-default .btn-link {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
@ -196,44 +204,61 @@ h6 {
|
|||
margin-right: 5px;
|
||||
font-family: 'Lato', sans-serif;
|
||||
}
|
||||
|
||||
.nav-language .drop-language {
|
||||
position: absolute;
|
||||
.nav-language .drop-language{
|
||||
/*position: absolute;*/
|
||||
top: 45px;
|
||||
left: -8px;
|
||||
background: #fff;
|
||||
left: auto !important;
|
||||
/* background: #fff; */
|
||||
width: 100px;
|
||||
min-width: 100px;
|
||||
height: 40px;
|
||||
padding: 9px 10px;
|
||||
-webkit-box-shadow: -8px 13px 31px -8px rgba(77, 77, 77, 1);
|
||||
-moz-box-shadow: -8px 13px 31px -8px rgba(77, 77, 77, 1);
|
||||
box-shadow: -8px 13px 31px -8px rgba(77, 77, 77, 1);
|
||||
display: none;
|
||||
-webkit-box-shadow: -8px 13px 31px -8px rgba(77,77,77,1);
|
||||
-moz-box-shadow: -8px 13px 31px -8px rgba(77,77,77,1);
|
||||
box-shadow: -8px 13px 31px -8px rgba(77,77,77,1);
|
||||
/*display: none;*/
|
||||
z-index: 100;
|
||||
/* margin-left: 10px; */
|
||||
text-align: center;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.nav-language .drop-language a {
|
||||
cursor: pointer;
|
||||
font-family: 'Lato', sans-serif;
|
||||
.nav-language .open .drop-language{
|
||||
width: 100px;
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
.navbar-transparent .nav-language .drop-language {
|
||||
.nav-language .drop-language a{
|
||||
cursor: pointer;
|
||||
padding: 5px 10px !important;
|
||||
font-family: 'Lato-Light', sans-serif;
|
||||
}
|
||||
|
||||
/* Show the dropdown menu on hover */
|
||||
@media (min-width: 769px) {
|
||||
.nav-language .dropdown:hover .dropdown-menu {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
@media (max-width: 767px){
|
||||
.nav-language .open .dropdown-menu>li>a {
|
||||
line-height: 1.42857143;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-transparent .nav-language .drop-language{
|
||||
background: transparent;
|
||||
border: 1px solid #fff;
|
||||
}
|
||||
|
||||
.navbar-transparent .nav-language .drop-language a {
|
||||
color: #fff;
|
||||
padding: 5px 10px !important;
|
||||
font-family: 'Lato-Light', sans-serif;
|
||||
}
|
||||
|
||||
.nav-language:hover .drop-language {
|
||||
/* .nav-language:hover .drop-language{
|
||||
display: block;
|
||||
}
|
||||
|
||||
} */
|
||||
.intro-header {
|
||||
height: 100vh;
|
||||
text-align: center;
|
||||
|
@ -1188,8 +1213,8 @@ tech-sub-sec h2 {
|
|||
font-size: 14px;
|
||||
color: #777;
|
||||
}
|
||||
.nav-language:hover {
|
||||
height: 80px;
|
||||
.nav-language:hover{
|
||||
/*height: 80px;*/
|
||||
}
|
||||
.navbar-transparent .nav-language .select-language {
|
||||
color: #777;
|
||||
|
|
|
@ -91,16 +91,12 @@
|
|||
var href = $(this).attr('data-url');
|
||||
$('.navbar-collapse').removeClass('in');
|
||||
$('.navbar-collapse').addClass('collapsing');
|
||||
var url = window.location.pathname;
|
||||
var urlSplit = url.split('/');
|
||||
if (urlSplit.length === 3 && urlSplit[2] === 'datacenterlight') {
|
||||
if ($(href).length) {
|
||||
$('html, body').animate({
|
||||
scrollTop: $(href).offset().top
|
||||
}, 1000);
|
||||
} else {
|
||||
var allUrl = window.location.href;
|
||||
var redirect = allUrl.split('whydatacenterlight')
|
||||
window.location.href = '/en-us/datacenterlight' + href;
|
||||
window.location.href = '/datacenterlight' + href;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{% load staticfiles i18n%}
|
||||
{% get_current_language as LANGUAGE_CODE %}
|
||||
{% load custom_tags %}
|
||||
{% load staticfiles i18n%} {% get_current_language as LANGUAGE_CODE %} {% load custom_tags %}
|
||||
<nav class="navbar navbar-default navbar-fixed-top topnav">
|
||||
<div class="topnav">
|
||||
<div class="topnav">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
|
||||
|
@ -33,14 +31,25 @@
|
|||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{% url 'datacenterlight:index' %}/whydatacenterlight" >{% trans "Why Data Center Light?" %}</a>
|
||||
<a href="{% url 'datacenterlight:whydatacenterlight' %}" >{% trans "Why Data Center Light?" %}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="url" href="{% url 'datacenterlight:index' %}#contact" data-url="#contact" >{% trans "Contact" %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<li>
|
||||
{% if LANGUAGE_CODE == 'en-us'%}
|
||||
<a class="on-hover-border" href="{% change_lang 'de' %}">Deutsch <i class="fa fa-globe" aria-hidden="true"></i></a>
|
||||
{% else %}
|
||||
<a class="on-hover-border" href="{% change_lang 'en-us' %}">English <i class="fa fa-globe" aria-hidden="true"></i></a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% comment %}
|
||||
<!-- to be used when more than one option for language -->
|
||||
<li class="nav-language">
|
||||
<div class="select-language">
|
||||
<div class="dropdown">
|
||||
<div class="dropdown-toggle select-language" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
|
||||
{% if LANGUAGE_CODE == 'en-us'%}
|
||||
<span>English</span>
|
||||
{% else %}
|
||||
|
@ -48,18 +57,18 @@
|
|||
{% endif %}
|
||||
<i class="fa fa-globe" aria-hidden="true"></i>
|
||||
</div>
|
||||
|
||||
<div class="drop-language">
|
||||
<ul class="dropdown-menu drop-language dropdown-menu-right">
|
||||
{% if LANGUAGE_CODE == 'en-us'%}
|
||||
<a href="{% change_lang 'de' %}">Deutsch</a>
|
||||
<li><a class="url" href="{% change_lang 'de' %}">Deutsch</a></li>
|
||||
{% else %}
|
||||
<a href="{% change_lang 'en-us' %}" >English</a>
|
||||
<li><a class="url" href="{% change_lang 'en-us' %}">English</a></li>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- /.navbar-collapse -->
|
||||
</div>
|
||||
</li>
|
||||
{% endcomment %}
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
||||
</div>
|
||||
</nav>
|
|
@ -5,13 +5,13 @@ from .views import IndexView, BetaProgramView, LandingProgramView, BetaAccessVie
|
|||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^/?$', IndexView.as_view(), name='index'),
|
||||
url(r'^/whydatacenterlight/?$', WhyDataCenterLightView.as_view(), name='whydatacenterlight'),
|
||||
url(r'^/beta-program/?$', BetaProgramView.as_view(), name='beta'),
|
||||
url(r'^/landing/?$', LandingProgramView.as_view(), name='landing'),
|
||||
url(r'^/pricing/?$', PricingView.as_view(), name='pricing'),
|
||||
url(r'^/payment/?$', PaymentOrderView.as_view(), name='payment'),
|
||||
url(r'^/order-confirmation/?$', OrderConfirmationView.as_view(), name='order_confirmation'),
|
||||
url(r'^/order-success/?$', SuccessView.as_view(), name='order_success'),
|
||||
url(r'^/beta_access?$', BetaAccessView.as_view(), name='beta_access'),
|
||||
url(r'^$', IndexView.as_view(), name='index'),
|
||||
url(r'^whydatacenterlight/?$', WhyDataCenterLightView.as_view(), name='whydatacenterlight'),
|
||||
url(r'^beta-program/?$', BetaProgramView.as_view(), name='beta'),
|
||||
url(r'^landing/?$', LandingProgramView.as_view(), name='landing'),
|
||||
url(r'^pricing/?$', PricingView.as_view(), name='pricing'),
|
||||
url(r'^payment/?$', PaymentOrderView.as_view(), name='payment'),
|
||||
url(r'^order-confirmation/?$', OrderConfirmationView.as_view(), name='order_confirmation'),
|
||||
url(r'^order-success/?$', SuccessView.as_view(), name='order_success'),
|
||||
url(r'^beta_access?$', BetaAccessView.as_view(), name='beta_access'),
|
||||
]
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from django.conf.urls import url
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.contrib.auth import views as auth_views
|
||||
|
||||
from . import views
|
||||
from .views import ContactView, IndexView, HistoryView, LoginView, SignupView,\
|
||||
|
@ -20,7 +21,7 @@ urlpatterns = [
|
|||
url(_(r'contact/?$'), ContactView.as_view(), name='contact'),
|
||||
url(_(r'login/?$'), LoginView.as_view(), name='login'),
|
||||
url(_(r'signup/?$'), SignupView.as_view(), name='signup'),
|
||||
url(r'^logout/?$', 'django.contrib.auth.views.logout',
|
||||
url(r'^logout/?$', auth_views.logout,
|
||||
{'next_page': '/digitalglarus/login?logged_out=true'}, name='logout'),
|
||||
url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'),
|
||||
url(r'reset-password-confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$',
|
||||
|
|
|
@ -199,13 +199,11 @@ DATABASES = {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
AUTHENTICATION_BACKENDS = (
|
||||
'guardian.backends.ObjectPermissionBackend',
|
||||
'django.contrib.auth.backends.ModelBackend',
|
||||
)
|
||||
|
||||
|
||||
# Internationalization
|
||||
# https://docs.djangoproject.com/en/1.7/topics/i18n/
|
||||
|
||||
|
@ -464,7 +462,6 @@ META_USE_SITES = True
|
|||
PARLER_LANGUAGES = {1: ({'code': 'en-us'}, {'code': 'de'},)}
|
||||
AUTH_USER_MODEL = 'membership.CustomUser'
|
||||
|
||||
|
||||
# PAYMENT
|
||||
|
||||
STRIPE_DESCRIPTION_ON_PAYMENT = "Payment for ungleich GmbH services"
|
||||
|
@ -481,7 +478,6 @@ STRIPE_API_PUBLIC_KEY = env('STRIPE_API_PUBLIC_KEY')
|
|||
ANONYMOUS_USER_NAME = 'anonymous@ungleich.ch'
|
||||
GUARDIAN_GET_INIT_ANONYMOUS_USER = 'membership.models.get_anonymous_user_instance'
|
||||
|
||||
|
||||
#############################################
|
||||
# configurations for opennebula-integration #
|
||||
#############################################
|
||||
|
@ -508,7 +504,6 @@ OPENNEBULA_PORT = env('OPENNEBULA_PORT')
|
|||
# default value is /RPC2
|
||||
OPENNEBULA_ENDPOINT = env('OPENNEBULA_ENDPOINT')
|
||||
|
||||
|
||||
# dcl email configurations
|
||||
DCL_TEXT = env('DCL_TEXT')
|
||||
DCL_SUPPORT_FROM_ADDRESS = env('DCL_SUPPORT_FROM_ADDRESS')
|
||||
|
@ -526,6 +521,28 @@ GOOGLE_ANALYTICS_PROPERTY_IDS = {
|
|||
'dynamicweb-staging.ungleich.ch': 'staging'
|
||||
}
|
||||
|
||||
ENABLE_DEBUG_LOGGING = bool_env('ENABLE_DEBUG_LOGGING')
|
||||
|
||||
if ENABLE_DEBUG_LOGGING:
|
||||
LOGGING = {
|
||||
'version': 1,
|
||||
'disable_existing_loggers': False,
|
||||
'handlers': {
|
||||
'file': {
|
||||
'level': 'DEBUG',
|
||||
'class': 'logging.FileHandler',
|
||||
'filename': "{PROJECT_DIR}/debug.log".format(PROJECT_DIR=PROJECT_DIR),
|
||||
},
|
||||
},
|
||||
'loggers': {
|
||||
'django': {
|
||||
'handlers': ['file'],
|
||||
'level': 'DEBUG',
|
||||
'propagate': True,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
DEBUG = bool_env('DEBUG')
|
||||
|
||||
if DEBUG:
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
from django.conf.urls import patterns, include, url
|
||||
from django.conf.urls import include, url
|
||||
from django.contrib import admin
|
||||
# deprecated in version 1.8
|
||||
from django.conf.urls.i18n import i18n_patterns
|
||||
from django.conf.urls.static import static
|
||||
from django.views import i18n, static as static_view
|
||||
|
||||
from django.conf import settings
|
||||
from hosting.views import RailsHostingView, DjangoHostingView, NodeJSHostingView
|
||||
|
@ -22,17 +22,17 @@ urlpatterns = [url(r'^index.html$', LandingView.as_view()),
|
|||
url(r'^nosystemd/', include('nosystemd.urls', namespace="nosystemd")),
|
||||
url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
|
||||
url(r'^jsi18n/(?P<packages>\S+?)/$',
|
||||
'django.views.i18n.javascript_catalog'),
|
||||
i18n.javascript_catalog),
|
||||
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
|
||||
# note the django CMS URLs included via i18n_patterns
|
||||
urlpatterns += i18n_patterns('',
|
||||
url(r'^/?$', LandingView.as_view()),
|
||||
urlpatterns += i18n_patterns(
|
||||
url(r'^$', LandingView.as_view()),
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
url(r'^datacenterlight', include('datacenterlight.urls', namespace="datacenterlight")),
|
||||
url(r'^datacenterlight/', include('datacenterlight.urls', namespace="datacenterlight")),
|
||||
url(r'^hosting/', RedirectView.as_view(
|
||||
url=reverse_lazy('hosting:login')), name='redirect_hosting_login'),
|
||||
url(r'^alplora', include('alplora.urls', namespace="alplora")),
|
||||
url(r'^alplora/', include('alplora.urls', namespace="alplora")),
|
||||
url(r'^membership/', include(membership_urls)),
|
||||
url(r'^digitalglarus/', include('digitalglarus.urls',
|
||||
namespace="digitalglarus")),
|
||||
|
@ -43,11 +43,11 @@ urlpatterns += i18n_patterns('',
|
|||
url(r'^blog/', include('ungleich.urls', namespace='ungleich')),
|
||||
url(r'^', include('cms.urls'))
|
||||
)
|
||||
urlpatterns += patterns('',
|
||||
urlpatterns += [
|
||||
url(r'^media/(?P<path>.*)$',
|
||||
'django.views.static.serve', {
|
||||
static_view.serve, {
|
||||
'document_root': settings.MEDIA_ROOT,
|
||||
}),
|
||||
)
|
||||
]
|
||||
if settings.DEBUG:
|
||||
urlpatterns += patterns('', url(r'^__debug__/', include(debug_toolbar.urls)))
|
||||
urlpatterns += [url(r'^__debug__/', include(debug_toolbar.urls))]
|
||||
|
|
|
@ -714,3 +714,8 @@ a.unlink:hover {
|
|||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.footer-light a:hover, .footer-light a:focus, .footer-light a:active {
|
||||
color: #ddd;
|
||||
}
|
|
@ -119,7 +119,9 @@
|
|||
</div>
|
||||
</footer>
|
||||
{% else %}
|
||||
<div class="footer-light">
|
||||
{% include "datacenterlight/includes/_footer.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<!-- jQuery -->
|
||||
<script src="{% static 'hosting/js/jquery.js' %}"></script>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.conf.urls import url
|
||||
from django.contrib.auth import views as auth_views
|
||||
|
||||
from .views import DjangoHostingView, RailsHostingView, PaymentVMView,\
|
||||
NodeJSHostingView, LoginView, SignupView, SignupValidateView, SignupValidatedView, IndexView, \
|
||||
|
@ -39,7 +40,7 @@ urlpatterns = [
|
|||
url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'),
|
||||
url(r'reset-password-confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$',
|
||||
PasswordResetConfirmView.as_view(), name='reset_password_confirm'),
|
||||
url(r'^logout/?$', 'django.contrib.auth.views.logout',
|
||||
url(r'^logout/?$', auth_views.logout,
|
||||
{'next_page': '/hosting/login?logged_out=true'}, name='logout'),
|
||||
url(r'^validate/(?P<validate_slug>.*)/$', SignupValidatedView.as_view(), name='validate')
|
||||
]
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.conf.urls import url
|
||||
from django.contrib.auth import views as auth_views
|
||||
|
||||
from .views import LandingView, LoginView, SignupView, PasswordResetView,\
|
||||
PasswordResetConfirmView, DonationView, DonationDetailView, ChangeDonatorStatusDetailView,\
|
||||
|
@ -8,7 +9,7 @@ urlpatterns = [
|
|||
url(r'^$', LandingView.as_view(), name='landing'),
|
||||
url(r'^login/?$', LoginView.as_view(), name='login'),
|
||||
url(r'^signup/?$', SignupView.as_view(), name='signup'),
|
||||
url(r'^logout/?$', 'django.contrib.auth.views.logout',
|
||||
url(r'^logout/?$', auth_views.logout,
|
||||
{'next_page': '/nosystemd/login?logged_out=true'}, name='logout'),
|
||||
url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'),
|
||||
url(r'reset-password-confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$',
|
||||
|
|
Loading…
Reference in a new issue