merge master and fixed migration conflict
This commit is contained in:
commit
39d2697e30
17 changed files with 219 additions and 63 deletions
12
Changelog
12
Changelog
|
@ -1,10 +1,16 @@
|
||||||
Next release:
|
Next:
|
||||||
|
* #3911: [dcl] Integrate resend activation link into dcl landing payment page
|
||||||
|
* #3972: [hosting] Add ungleich company info to invoice footer
|
||||||
|
1.2.13: 2017-12-09
|
||||||
|
* [cms] Introduce UngleichHeaderBackgroundImageAndTextSliderPlugin that allows to have scrolling images and texts
|
||||||
|
* [cms] Remove <p> tag for ungleich cms customer item template
|
||||||
|
1.2.12: 2017-12-09
|
||||||
|
* #3594: [digitalglarus] Remove white scroll bar on the right in mobile
|
||||||
* #3905: [ungleich] Update ungleich.ch header into a slider
|
* #3905: [ungleich] Update ungleich.ch header into a slider
|
||||||
* [all] Enable logging custom modules
|
* [all] Enable logging custom modules
|
||||||
1.2.11: 2017-11-30
|
1.2.11: 2017-11-30
|
||||||
* [all] TravisCI: Test against python 3.4.2 only
|
* [all] TravisCI: Test against python 3.4.2 only
|
||||||
* [ungleich] Remove data-replaced image in ungleich CMS services item
|
* [ungleich] Remove data-replaced image in ungleich CMS services item plugin template
|
||||||
plugin template
|
|
||||||
1.2.10: 2017-11-26
|
1.2.10: 2017-11-26
|
||||||
* #3843: [ungleich] Add generic ungleich CMS template
|
* #3843: [ungleich] Add generic ungleich CMS template
|
||||||
* #3672: [all] Clean existing automated tests
|
* #3672: [all] Clean existing automated tests
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
<p>
|
<p>
|
||||||
{% trans "Don't have an account yet?" %}<br>
|
{% trans "Don't have an account yet?" %}<br>
|
||||||
{% trans "You can sign up by filling in the information below." %}<br>
|
{% trans "You can sign up by filling in the information below." %}<br>
|
||||||
<a href="{% url 'hosting:reset_password' %}">{% trans "Forgot password?" %}</a>
|
<a href="{% url 'hosting:reset_password' %}" target="_blank">{% trans "Forgot password?" %}</a> or <a href="{% url 'hosting:resend_activation_link' %}" target="_blank">{% trans "Resend activation link" %}?</a>
|
||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -235,7 +235,7 @@ fieldset[disabled] .btn-xl.active {
|
||||||
.navbar-default .navbar-brand {
|
.navbar-default .navbar-brand {
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, cursive;
|
font-family: "Helvetica Neue", Helvetica, Arial, cursive;
|
||||||
color: #a1cfd7;
|
color: #a1cfd7;
|
||||||
padding-top: 10px;
|
padding-top: 11px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-default .navbar-brand:hover,
|
.navbar-default .navbar-brand:hover,
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
@media(min-width: 768px) {
|
@media(min-width: 768px) {
|
||||||
.order-detail-container {
|
.order-detail-container {
|
||||||
padding: 30px;
|
padding: 30px 30px 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.order-detail-container .order-details {
|
.order-detail-container .order-details {
|
||||||
margin-bottom: 30px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.order-detail-container .order-details strong {
|
.order-detail-container .order-details strong {
|
||||||
|
@ -90,3 +90,18 @@
|
||||||
width: 16px;
|
width: 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.order_detail_footer {
|
||||||
|
font-size: 9px;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.order_detail_footer strong {
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#virtual_machine_create_form {
|
||||||
|
padding: 15px 0;
|
||||||
|
}
|
|
@ -135,9 +135,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% if not order %}
|
<hr>
|
||||||
<hr>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
{% if not order %}
|
{% if not order %}
|
||||||
{% block submit_btn %}
|
{% block submit_btn %}
|
||||||
|
@ -155,6 +153,11 @@
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{% endblock submit_btn %}
|
{% endblock submit_btn %}
|
||||||
|
{% else %}
|
||||||
|
<div class="order_detail_footer">
|
||||||
|
<strong>ungleich glarus ag</strong> Bahnhotstrasse 1, 8783 Linthal, Switzerland<br>
|
||||||
|
www.datacenterlight.ch | info@datacenterlight.ch
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -39,27 +39,25 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for vm in vms %}
|
{% for vm in vms %}
|
||||||
<tr>
|
<tr>
|
||||||
<td data-header="ID">{{vm.vm_id}}</td>
|
<td data-header="ID">{{vm.vm_id}}</td>
|
||||||
{% if vm.ipv6 %}
|
<td data-header="IPv4">{% if vm.ipv4 %}{{vm.ipv4}}{% endif %}</td>
|
||||||
<td data-header="IPv4">{{vm.ipv4}}</td>
|
<td data-header="IPv6">{% if vm.ipv6 %}{{vm.ipv6}}{% endif %}</td>
|
||||||
<td data-header="IPv6">{{vm.ipv6}}</td>
|
<td data-header="{% trans 'Status' %}">
|
||||||
{% endif %}
|
<strong>
|
||||||
<td data-header="{% trans 'Status' %}">
|
{% if vm.state == 'ACTIVE' %}
|
||||||
<strong>
|
<span class="vm-status-active">{{vm.state|title}}</span>
|
||||||
{% if vm.state == 'ACTIVE' %}
|
{% elif vm.state == 'FAILED' %}
|
||||||
<span class="vm-status-active">{{vm.state|title}}</span>
|
<span class="vm-status-failed">{{vm.state|title}}</span>
|
||||||
{% elif vm.state == 'FAILED' %}
|
{% else %}
|
||||||
<span class="vm-status-failed">{{vm.state|title}}</span>
|
<span class="vm-status">{{vm.state|title}}</span>
|
||||||
{% else %}
|
{% endif %}
|
||||||
<span class="vm-status">{{vm.state|title}}</span>
|
</strong>
|
||||||
{% endif %}
|
</td>
|
||||||
</strong>
|
<td class="text-right last-td">
|
||||||
</td>
|
<a class="btn btn-vm-detail" href="{% url 'hosting:virtual_machines' vm.vm_id %}">{% trans "View Detail" %}</a>
|
||||||
<td class="text-right last-td">
|
</td>
|
||||||
<a class="btn btn-vm-detail" href="{% url 'hosting:virtual_machines' vm.vm_id %}">{% trans "View Detail" %}</a>
|
</tr>
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -8,7 +8,8 @@ from .views import (
|
||||||
MarkAsReadNotificationView, PasswordResetView, PasswordResetConfirmView,
|
MarkAsReadNotificationView, PasswordResetView, PasswordResetConfirmView,
|
||||||
HostingPricingView, CreateVirtualMachinesView, HostingBillListView,
|
HostingPricingView, CreateVirtualMachinesView, HostingBillListView,
|
||||||
HostingBillDetailView, SSHKeyDeleteView, SSHKeyCreateView, SSHKeyListView,
|
HostingBillDetailView, SSHKeyDeleteView, SSHKeyCreateView, SSHKeyListView,
|
||||||
SSHKeyChoiceView, DashboardView, SettingsView, ResendActivationEmailView)
|
SSHKeyChoiceView, DashboardView, SettingsView, ResendActivationEmailView
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|
|
@ -6,7 +6,9 @@ from .models import (
|
||||||
About, AboutItem, SectionWithImage, UngleichServiceItem, UngleichHeader,
|
About, AboutItem, SectionWithImage, UngleichServiceItem, UngleichHeader,
|
||||||
UngleichHeaderItem, UngleichProductItem, UngleichProduct, UngleichCustomer,
|
UngleichHeaderItem, UngleichProductItem, UngleichProduct, UngleichCustomer,
|
||||||
UngleichCustomerItem, UngleichHTMLOnly, UngleichSimpleHeader,
|
UngleichCustomerItem, UngleichHTMLOnly, UngleichSimpleHeader,
|
||||||
UngleichHeaderItemWithVideo
|
UngleichHeaderItemWithVideo,
|
||||||
|
UngleichHeaderWithBackgroundImageSlider,
|
||||||
|
UngleichHeaderWithBackgroundImageSliderItem,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -241,6 +243,39 @@ class UngleichHeaderItemWithVideoPlugin(CMSPluginBase):
|
||||||
context = super(UngleichHeaderItemWithVideoPlugin, self).render(
|
context = super(UngleichHeaderItemWithVideoPlugin, self).render(
|
||||||
context, instance, placeholder
|
context, instance, placeholder
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@plugin_pool.register_plugin
|
||||||
|
class UngleichHeaderBackgroundImageAndTextSliderPlugin(CMSPluginBase):
|
||||||
|
name = "ungleich Header with Background and Image Slider Plugin"
|
||||||
|
model = UngleichHeaderWithBackgroundImageSlider
|
||||||
|
render_template = (
|
||||||
|
'ungleich_page/ungleich/header_with_background_image_slider.html'
|
||||||
|
)
|
||||||
|
cache = False
|
||||||
|
allow_children = True
|
||||||
|
child_classes = ['UngleichHeaderBackgroundImageAndTextItemPlugin']
|
||||||
|
|
||||||
|
def render(self, context, instance, placeholder):
|
||||||
|
context['instance'] = instance
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
|
@plugin_pool.register_plugin
|
||||||
|
class UngleichHeaderBackgroundImageAndTextItemPlugin(CMSPluginBase):
|
||||||
|
name = "ungleich Header with Background and Image and Text Item Plugin"
|
||||||
|
model = UngleichHeaderWithBackgroundImageSliderItem
|
||||||
|
render_template = (
|
||||||
|
'ungleich_page/ungleich/_header_with_background_image_slider_item.html'
|
||||||
|
)
|
||||||
|
cache = False
|
||||||
|
require_parent = True
|
||||||
|
parent_classes = ['UngleichHeaderBackgroundImageAndTextSliderPlugin']
|
||||||
|
|
||||||
|
def render(self, context, instance, placeholder):
|
||||||
|
context = super(
|
||||||
|
UngleichHeaderBackgroundImageAndTextItemPlugin, self
|
||||||
|
).render(context, instance, placeholder)
|
||||||
context['instance'] = instance
|
context['instance'] = instance
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.9.4 on 2017-12-02 07:30
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
import djangocms_text_ckeditor.fields
|
||||||
|
import filer.fields.image
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('filer', '0004_auto_20160328_1434'),
|
||||||
|
('cms', '0014_auto_20160404_1908'),
|
||||||
|
('ungleich_page', '0015_ungleichsimpleheader'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='UngleichHeaderWithBackgroundImageSlider',
|
||||||
|
fields=[
|
||||||
|
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
|
||||||
|
('carousel_data_interval', models.IntegerField(default=2000)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'abstract': False,
|
||||||
|
},
|
||||||
|
bases=('cms.cmsplugin',),
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='UngleichHeaderWithBackgroundImageSliderItem',
|
||||||
|
fields=[
|
||||||
|
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
|
||||||
|
('description', djangocms_text_ckeditor.fields.HTMLField(default='<div class="intro-cap">We Design, Configure & Maintain <br>Your Linux Infrastructure</div><p class="intro_lead">Ruby on Rails, Django, Java, Webserver, Mailserver, any infrastructure that needs to configured, we provide comprehensive solutions. Amazon, rackspace or bare metal servers, we configure for you.</p><p style="text-align: right;"><a class="btn btn-trans" href="">Learn More</a></p>')),
|
||||||
|
('background_image', filer.fields.image.FilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ungleich_header_slider_item_image', to='filer.Image')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'abstract': False,
|
||||||
|
},
|
||||||
|
bases=('cms.cmsplugin',),
|
||||||
|
),
|
||||||
|
]
|
|
@ -11,7 +11,7 @@ import filer.fields.image
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('ungleich_page', '0015_ungleichsimpleheader'),
|
('ungleich_page', '0016_ungleichheaderwithbackgroundimageslider_ungleichheaderwithbackgroundimageslideritem'),
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
|
@ -124,6 +124,27 @@ class UngleichHeader(CMSPlugin):
|
||||||
carousel_data_interval = models.IntegerField(default=5000)
|
carousel_data_interval = models.IntegerField(default=5000)
|
||||||
|
|
||||||
|
|
||||||
|
class UngleichHeaderWithBackgroundImageSliderItem(CMSPlugin):
|
||||||
|
background_image = FilerImageField(
|
||||||
|
null=True, blank=True,
|
||||||
|
related_name="ungleich_header_slider_item_image",
|
||||||
|
on_delete=models.SET_NULL
|
||||||
|
)
|
||||||
|
description = HTMLField(
|
||||||
|
default='<div class="intro-cap">We Design, Configure & Maintain '
|
||||||
|
'<br>Your Linux Infrastructure</div><p class="intro_lead">'
|
||||||
|
'Ruby on Rails, Django, Java, Webserver, Mailserver, any '
|
||||||
|
'infrastructure that needs to configured, we provide '
|
||||||
|
'comprehensive solutions. Amazon, rackspace or bare metal '
|
||||||
|
'servers, we configure for you.</p><p style="text-align: '
|
||||||
|
'right;"><a class="btn btn-trans" href="">Learn More</a></p>'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class UngleichHeaderWithBackgroundImageSlider(CMSPlugin):
|
||||||
|
carousel_data_interval = models.IntegerField(default=2000)
|
||||||
|
|
||||||
|
|
||||||
class UngleichHeaderItem(CMSPlugin):
|
class UngleichHeaderItem(CMSPlugin):
|
||||||
image = FilerImageField(
|
image = FilerImageField(
|
||||||
null=True,
|
null=True,
|
||||||
|
|
|
@ -280,7 +280,10 @@ fieldset[disabled] .btn-xl.active {
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-default .navbar-brand {
|
.navbar-default .navbar-brand {
|
||||||
padding: 8px;
|
padding: 4px 8px 12px;
|
||||||
|
}
|
||||||
|
.navbar-default.navbar-shrink .navbar-brand {
|
||||||
|
padding: 6px 8px 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -440,6 +443,7 @@ section h3.section-subheading {
|
||||||
max-width: 400px;
|
max-width: 400px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#portfolio .portfolio-item .portfolio-caption h4 {
|
#portfolio .portfolio-item .portfolio-caption h4 {
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
<a href="{{ instance.url }}"><img class="center-block img-client img-responsive" src="{{ instance.image.url}}"></a>
|
<a href="{{ instance.url }}"><img class="center-block img-client img-responsive" src="{{ instance.image.url}}"></a>
|
||||||
<p class="carousel-text text-muted text-center">{{ instance.description }}</p>
|
{{ instance.description }}
|
|
@ -1,8 +1,14 @@
|
||||||
{% if instance.image %}
|
|
||||||
<div class="bg_img" style="background-image:url({{ instance.image.url }})"></div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="intro-cap-sans-transform">
|
<div>
|
||||||
{{ instance.description }}
|
{% if instance.image %}
|
||||||
</div>
|
<img src="{{ instance.image.url }}" alt=""
|
||||||
|
class="logo-image" img-responsive="" width="300"/>
|
||||||
|
<div class="header-vh"></div>
|
||||||
|
{% endif %}
|
||||||
|
<div>
|
||||||
|
<span class="intro-cap-sans-transform">
|
||||||
|
{{ instance.description }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
<div class="bg_img" style="background-image:url({{ instance.background_image.url }})"></div>
|
||||||
|
<div class="container">
|
||||||
|
{{ instance.description }}
|
||||||
|
</div>
|
|
@ -0,0 +1,31 @@
|
||||||
|
{% load cms_tags %}
|
||||||
|
<header class="header_slider">
|
||||||
|
<div id="carousel-header-ungleich" class="carousel slide" data-interval="{{ instance.carousel_data_interval}}">
|
||||||
|
<!-- Indicators -->
|
||||||
|
{% if instance.child_plugin_instances|length > 1 %}
|
||||||
|
<ol class="carousel-indicators">
|
||||||
|
{% for plugin in instance.child_plugin_instances %}
|
||||||
|
<li data-target="#carousel-header-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active" {% endif %}></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ol>
|
||||||
|
{% endif %}
|
||||||
|
<!-- Wrapper for slides -->
|
||||||
|
<div class="carousel-inner" role="listbox">
|
||||||
|
{% for plugin in instance.child_plugin_instances %}
|
||||||
|
<div class="item {% if forloop.counter0 == 0 %}active{% endif %}">
|
||||||
|
{% render_plugin plugin %}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% if instance.child_plugin_instances|length > 1 %}
|
||||||
|
<a class="left carousel-control" href="#carousel-header-ungleich" role="button" data-slide="prev">
|
||||||
|
<span class="fa fa-angle-left" aria-hidden="true"></span>
|
||||||
|
<span class="sr-only">Previous</span>
|
||||||
|
</a>
|
||||||
|
<a class="right carousel-control" href="#carousel-header-ungleich" role="button" data-slide="next">
|
||||||
|
<span class="fa fa-angle-right" aria-hidden="true"></span>
|
||||||
|
<span class="sr-only">Next</span>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</header>
|
|
@ -2,31 +2,20 @@
|
||||||
<header class="header_slider" style="background-image: url({{ instance.background_image.url }})">
|
<header class="header_slider" style="background-image: url({{ instance.background_image.url }})">
|
||||||
<div id="carousel-header-ungleich" class="carousel slide" data-ride="carousel" data-interval="{{ instance.carousel_data_interval}}">
|
<div id="carousel-header-ungleich" class="carousel slide" data-ride="carousel" data-interval="{{ instance.carousel_data_interval}}">
|
||||||
<!-- Indicators -->
|
<!-- Indicators -->
|
||||||
{% if instance.child_plugin_instances|length > 1 %}
|
{% if instance.child_plugin_instances|length > 1 %}
|
||||||
<ol class="carousel-indicators">
|
<ol class="carousel-indicators">
|
||||||
{% for plugin in instance.child_plugin_instances %}
|
{% for plugin in instance.child_plugin_instances %}
|
||||||
<li data-target="#carousel-header-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active"{% endif %}></li>
|
<li data-target="#carousel-header-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active" {% endif %}></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ol>
|
</ol>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<!-- Wrapper for slides -->
|
<!-- Wrapper for slides -->
|
||||||
<div class="carousel-inner" role="listbox">
|
<div class="carousel-inner" role="listbox">
|
||||||
{% for plugin in instance.child_plugin_instances %}
|
{% for plugin in instance.child_plugin_instances %}
|
||||||
<div class="item {% if forloop.counter0 == 0 %}active{% endif %}">
|
<div class="item {% if forloop.counter0 == 0 %}active{% endif %}">
|
||||||
{% render_plugin plugin %}
|
{% render_plugin plugin %}
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
<!-- Control Arrows -->
|
|
||||||
{% if instance.child_plugin_instances|length > 1 %}
|
|
||||||
<a class="left carousel-control" href="#carousel-header-ungleich" role="button" data-slide="prev">
|
|
||||||
<span class="fa fa-angle-left" aria-hidden="true"></span>
|
|
||||||
<span class="sr-only">Previous</span>
|
|
||||||
</a>
|
|
||||||
<a class="right carousel-control" href="#carousel-header-ungleich" role="button" data-slide="next">
|
|
||||||
<span class="fa fa-angle-right" aria-hidden="true"></span>
|
|
||||||
<span class="sr-only">Next</span>
|
|
||||||
</a>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
Loading…
Reference in a new issue