🔧 Adds imprint page to CMS

This commit is contained in:
Moritz Kröger 2019-04-13 17:39:34 +02:00
parent 9b07778a12
commit 3ccd9beba1
6 changed files with 216 additions and 215 deletions

View file

@ -146,6 +146,42 @@ const configTree = {
pageUrl(),
siteName(),
stringField('headline', 'Headline'),
objectField('polis180', 'Legal notice for Polis180', {
list: [
stringField('addressLabel', 'Headline for address'),
markdownField('address', 'Address'),
stringField('representedLabel', 'Headline for represented by'),
markdownField('represented', 'Represented by'),
stringField('emailLabel', 'Headline for email'),
stringField('email', 'Email address'),
stringField('phoneLabel', 'Headline for phone'),
stringField('phone', 'Phone number'),
stringField('registerLabel', 'Headline for register entry'),
markdownField('register', 'Register entry')
]
}),
objectField('poe', 'Legal notice for Pulse of Europe', {
list: [
stringField('addressLabel', 'Headline for address'),
markdownField('address', 'Address'),
stringField('representedLabel', 'Headline for represented by'),
markdownField('represented', 'Represented by'),
stringField('emailLabel', 'Headline for email'),
stringField('email', 'Email address'),
stringField('phoneLabel', 'Headline for phone'),
stringField('phone', 'Phone number'),
stringField('registerLabel', 'Headline for register entry'),
markdownField('register', 'Register entry')
]
}),
objectField('responsible', 'Responsible for website content', {
hint: 'A short description who is responsible for the website content',
list: [
stringField('headline', 'Headline'),
markdownField('text', 'Content'),
stringField('mail', '[Label] Contact')
]
}),
listField('content', 'Content', {
list: [
stringField('title', 'Title'),
@ -176,6 +212,7 @@ const configTree = {
folder: 'src/data/meta'
},
fields: [
siteName(),
objectField('topMenu', 'Top Navigation', {
hint: 'The main navigation for the website.',
list: [

View file

@ -320,6 +320,88 @@ collections:
- label: Headline
name: headline
widget: string
- label: Legal notice for Polis180
name: polis180
widget: object
fields:
- label: Headline for address
name: addressLabel
widget: string
- label: Address
name: address
widget: markdown
- label: Headline for represented by
name: representedLabel
widget: string
- label: Represented by
name: represented
widget: markdown
- label: Headline for email
name: emailLabel
widget: string
- label: Email address
name: email
widget: string
- label: Headline for phone
name: phoneLabel
widget: string
- label: Phone number
name: phone
widget: string
- label: Headline for register entry
name: registerLabel
widget: string
- label: Register entry
name: register
widget: markdown
- label: Legal notice for Pulse of Europe
name: poe
widget: object
fields:
- label: Headline for address
name: addressLabel
widget: string
- label: Address
name: address
widget: markdown
- label: Headline for represented by
name: representedLabel
widget: string
- label: Represented by
name: represented
widget: markdown
- label: Headline for email
name: emailLabel
widget: string
- label: Email address
name: email
widget: string
- label: Headline for phone
name: phoneLabel
widget: string
- label: Phone number
name: phone
widget: string
- label: Headline for register entry
name: registerLabel
widget: string
- label: Register entry
name: register
widget: markdown
- label: Responsible for website content
name: responsible
widget: object
hint: A short description who is responsible for the website content
fields:
- label: Headline
name: headline
widget: string
- label: Content
name: text
widget: markdown
- label: '[Label] Contact'
name: mail
widget: string
- label: Content
name: content
widget: list
@ -385,6 +467,10 @@ collections:
value: fr
- label: Polski
value: pl
- label: '[Meta] Site Name'
name: title
widget: string
hint: The name for the page that will appear in the browser tab.
- label: Top Navigation
name: topMenu
widget: object

View file

@ -5,75 +5,67 @@
<div class="imprint-basic">
<div class="imprint-address">
<div class="imprint-group">
<h3>{{ $t('imprint.address.label') }}</h3>
<h3>{{ $t('imprint.poe.addressLabel') }}</h3>
<address>
<span v-for="txt of $t('imprint.address.poe')" :key="txt">
<span>{{ txt }}</span><br>
</span>
<v-markdown :source="$t('imprint.poe.address')" />
</address>
</div>
<div class="imprint-group">
<h3>{{ $t('imprint.represented.poe.label') }}</h3>
<p>{{ $t('imprint.represented.poe.text') }}</p>
<h3>{{ $t('imprint.poe.representedLabel') }}</h3>
<p>{{ $t('imprint.poe.represented') }}</p>
</div>
<div class="imprint-group inline">
<h3>{{ $t('imprint.email.label') }}</h3>
<a class="btn btn-dark btn-small" :href="`mailto:${$t('imprint.email.poe')}`">
{{ $t('imprint.email.poe') }} <feather-mail />
<h3>{{ $t('imprint.poe.emailLabel') }}</h3>
<a class="btn btn-dark btn-small" :href="`mailto:${$t('imprint.poe.email')}`">
{{ $t('imprint.poe.email') }} <feather-mail />
</a>
</div>
<div class="imprint-group inline">
<h3>{{ $t('imprint.phone.label') }}</h3>
<a class="btn btn-dark btn-small" :href="`tel:${$t('imprint.phone.poe')}`">
{{ $t('imprint.phone.poe') }} <feather-phone />
<h3>{{ $t('imprint.poe.phoneLabel') }}</h3>
<a class="btn btn-dark btn-small" :href="`tel:${$t('imprint.poe.phone')}`">
{{ $t('imprint.poe.phone') }} <feather-phone />
</a>
</div>
<div class="imprint-group">
<h3>{{ $t('imprint.register.poe.label') }}</h3>
<p v-for="txt of $t('imprint.register.poe.text')" :key="txt">
{{ txt }}
</p>
<h3>{{ $t('imprint.poe.registerLabel') }}</h3>
<v-markdown :source="$t('imprint.poe.register')" />
</div>
</div>
<div class="imprint-address">
<div class="imprint-group">
<h3>{{ $t('imprint.address.label') }}</h3>
<h3>{{ $t('imprint.polis180.addressLabel') }}</h3>
<address>
<span v-for="txt of $t('imprint.address.polis')" :key="txt">
<span>{{ txt }}</span><br>
</span>
<v-markdown :source="$t('imprint.polis180.address')" />
</address>
</div>
<div class="imprint-group">
<h3>{{ $t('imprint.represented.polis.label') }}</h3>
<p>{{ $t('imprint.represented.polis.text') }}</p>
<h3>{{ $t('imprint.polis180.representedLabel') }}</h3>
<p>{{ $t('imprint.polis180.represented') }}</p>
</div>
<div class="imprint-group inline">
<h3>{{ $t('imprint.email.label') }}</h3>
<a class="btn btn-dark btn-small" :href="`mailto:${$t('imprint.email.polis')}`">
{{ $t('imprint.email.polis') }} <feather-mail />
<h3>{{ $t('imprint.polis180.emailLabel') }}</h3>
<a class="btn btn-dark btn-small" :href="`mailto:${$t('imprint.polis180.email')}`">
{{ $t('imprint.polis180.email') }} <feather-mail />
</a>
</div>
<div class="imprint-group inline">
<h3>{{ $t('imprint.phone.label') }}</h3>
<a class="btn btn-dark btn-small" :href="`tel:${$t('imprint.phone.polis')}`">
{{ $t('imprint.phone.polis') }} <feather-phone />
<h3>{{ $t('imprint.polis180.phoneLabel') }}</h3>
<a class="btn btn-dark btn-small" :href="`tel:${$t('imprint.polis180.phone')}`">
{{ $t('imprint.polis180.phone') }} <feather-phone />
</a>
</div>
<div class="imprint-group">
<h3>{{ $t('imprint.register.polis.label') }}</h3>
<p v-for="txt of $t('imprint.register.polis.text')" :key="txt">
{{ txt }}
</p>
<h3>{{ $t('imprint.polis180.registerLabel') }}</h3>
<v-markdown :source="$t('imprint.polis180.register')" />
</div>
</div>
</div>
@ -82,16 +74,14 @@
<div class="imprint-responsibility">
<div class="imprint-group">
<h3>{{ $t('imprint.responsible.label') }}</h3>
<p v-for="txt of $t('imprint.responsible.text')" :key="txt">
{{ txt }}
</p>
<h3>{{ $t('imprint.responsible.headline') }}</h3>
<v-markdown :source="$t('imprint.responsible.text')" />
</div>
<div class="imprint-group inline">
<h3>{{ $t('imprint.responsible.mail.label') }}</h3>
<a class="btn btn-dark btn-small" :href="`mailto:${$t('imprint.responsible.mail.mail')}`">
{{ $t('imprint.responsible.mail.mail') }} <feather-mail />
<h3>{{ $t('imprint.responsible.mail') }}</h3>
<a class="btn btn-dark btn-small" href="mailto:hello@euromat.info">
hello@euromat.info <feather-mail />
</a>
</div>
</div>

View file

@ -3,6 +3,35 @@
"url": "impressum",
"title": "Impressum",
"headline": "Impressum",
"polis180": {
"addressLabel": "Adresse",
"address": "Polis180 e.V.\nSolmsstraße 18\n10961 Berlin",
"representedLabel": "Vertretungsberechtigte Personen:",
"represented": "Christian Freudlsperger, Co-Vorsitzender Sonja Schiffers, Co-Vorsitzende Julian Zuber, Schatzmeister.",
"emailLabel": "Email",
"email": "info@polis180.org",
"phoneLabel": "Telefon",
"phone": "+49 (0)176 301 912 30",
"registerLabel": "Vereinsregister:",
"register": "Registergericht: Amtsgericht\nCharlottenburg Registernummer: VR 34523"
},
"poe": {
"addressLabel": "Adresse",
"address": "Pulse of Europe e. V.\nWolfsgangstraße 63\n60322 Frankfurt\nDeutschland",
"representedLabel": "Vertreten durch:",
"represented": "Der Verein wird vertreten durch seinen Vorstand, dieser wiederum durch seinen Vorsitzenden Dr. Daniel Röder.",
"emailLabel": "Email",
"email": "info@pulseofeurope.eu",
"phoneLabel": "Telefon",
"phone": "+49 (0)157 721 209 88",
"registerLabel": "Registereintrag:",
"register": "Eintragung im Vereinsregister.\nRegistergericht: Frankfurt am Main\nRegisternummer: VR 16000"
},
"responsible": {
"headline": "Inhalte der Webseite (nach § 55 Abs. 2 RStV)",
"text": "Eva Podgoršek und Peter Funk für Pulse of Europe (Berlin)\n\nSusanne Zels für Polis180",
"mail": "Kontakt"
},
"content": [
{
"title": "Haftungsausschluss",

View file

@ -3,6 +3,35 @@
"url": "imprint",
"title": "Imprint",
"headline": "Imprint",
"polis180": {
"addressLabel": "Adress",
"address": "Polis180 e.V.\nSolmsstraße 18\n10961 Berlin",
"representedLabel": "Represented by:",
"represented": "Christian Freudlsperger, Co-Chair Sonja Schiffers, Co-Chair Julian Zuber, Treasurer",
"emailLabel": "Email",
"email": "info@polis180.org",
"phoneLabel": "Phone",
"phone": "+49 (0)176 301 912 30",
"registerLabel": "Entry in the register of associations:",
"register": "Register court: Amtsgericht\nCharlottenburg Registernummer: VR 34523"
},
"poe": {
"addressLabel": "Adress",
"address": "Pulse of Europe e. V.\nWolfsgangstraße 63\n60322 Frankfurt\nDeutschland",
"representedLabel": "Represented by:",
"represented": "The public charity is represented by the Managing Board, which in turn is represented by the Chair Dr. Daniel Röder.",
"emailLabel": "Email",
"email": "info@pulseofeurope.eu",
"phoneLabel": "Phone",
"phone": "+49 (0)157 721 209 88",
"registerLabel": "Register entry:",
"register": "Entry in the register of associations.\nRegister court: Frankfurt am Main\nRegisternummer: VR 16000"
},
"responsible": {
"headline": "Responsible for website content (according to § 55 Abs. 2 RStV)",
"text": "Eva Podgoršek and Peter Funk für Pulse of Europe (Berlin)\n\nSusanne Zels for Polis180",
"mail": "Contact"
},
"content": [
{
"title": "§ 1 Warnings regarding content",

View file

@ -1,176 +1,6 @@
export default {
de: {
imprint: {
title: 'Impressum',
headline: 'Impressum',
url: 'impressum',
address: {
label: 'Adresse',
polis: [
'Polis180 e.V.',
'Solmsstraße 18',
'10961 Berlin'
],
poe: [
'Pulse of Europe e. V.',
'Wolfsgangstraße 63',
'60322 Frankfurt',
'Deutschland'
]
},
email: {
label: 'Email',
polis: 'info@polis180.org',
poe: 'info@pulseofeurope.eu'
},
phone: {
label: 'Telefon',
polis: '+49 (0)176 301 912 30',
poe: '+49 (0)157 721 209 88'
},
represented: {
polis: {
label: 'Vertretungsberechtigte Personen:',
text: ' Christian Freudlsperger, Co-Vorsitzender Sonja Schiffers, Co-Vorsitzende Julian Zuber, Schatzmeister.'
},
poe: {
label: 'Vertreten durch:',
text: 'Der Verein wird vertreten durch seinen Vorstand, dieser wiederum durch seinen Vorsitzenden Dr. Daniel Röder.'
}
},
register: {
polis: {
label: 'Vereinsregister:',
text: [
'Registergericht: Amtsgericht',
'Charlottenburg Registernummer: VR 34523'
]
},
poe: {
label: 'Registereintrag:',
text: [
'Eintragung im Vereinsregister.',
'Registergericht: Frankfurt am Main',
'Registernummer: VR 16000'
]
}
},
responsible: {
label: 'Inhalte der Webseite (nach § 55 Abs. 2 RStV)',
text: [
'Eva Podgoršek und Peter Funk für Pulse of Europe (Berlin)',
'Susanne Zels für Polis180'
],
mail: {
label: 'Kontakt',
mail: 'hello@euromat.info'
}
},
content: [
{
title: 'Haftungsausschluss',
text: 'Inhaltlich verantwortlich gemäß § 55 Abs. 2 RStV ist der jeweilige Autor eines Textes.'
},
{
title: 'Haftung für Inhalte',
text: 'Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.'
},
{
title: 'Haftung für Links',
text: 'Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.'
},
{
title: 'Urheberrecht',
text: 'Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Sie sind mit einer Creative Commons Lizenz urheberrechtlich geschützt. Sofern nicht anders angegeben, stehen die Inhalte dieser Seite unter der Creative Commons Namensnennung-Keine Bearbeitung 3.0 Deutschland (CC BY-ND 3.0 DE) Lizenz. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.'
}
]
}
},
en: {
imprint: {
title: 'Imprint',
headline: 'Imprint',
url: 'imprint',
address: {
label: 'Address',
polis: [
'Polis180 e.V.',
'Solmsstraße 18',
'10961 Berlin'
],
poe: [
'Pulse of Europe e. V.',
'Wolfsgangstraße 63',
'60322 Frankfurt',
'Germany'
]
},
email: {
label: 'Email',
polis: 'info@polis180.org',
poe: 'info@pulseofeurope.eu'
},
phone: {
label: 'Phone',
polis: '+49 (0)176 301 912 30',
poe: '+49 (0)157 721 209 88'
},
represented: {
polis: {
label: 'Represented by:',
text: 'Christian Freudlsperger, Co-Chair Sonja Schiffers, Co-Chair Julian Zuber, Treasurer'
},
poe: {
label: 'Represented by:',
text: 'The public charity is represented by the Managing Board, which in turn is represented by the Chair Dr. Daniel Röder.'
}
},
register: {
polis: {
label: 'Entry in the register of associations:',
text: [
'Register court: Amtsgericht Charlottenburg',
'Registernumber: VR 34523'
]
},
poe: {
label: 'Register entry:',
text: [
'Entry in the register of associations.',
'Register court: Frankfurt am Main',
'Register number: VR 16000'
]
}
},
responsible: {
label: 'Responsible for website content (according to § 55 Abs. 2 RStV)',
text: [
'Eva Podgoršek and Peter Funk for Pulse of Europe (Berlin)',
'Susanne Zels for Polis180'
],
mail: {
label: 'Contact',
mail: 'hello@euromat.info'
}
},
content: [
{
title: '§ 1 Warnings regarding content',
text: 'The free and accessible content of this website has been created with the greatest possible care. However, the provider of this website does not guarantee the correctness and up-to-dateness of the free and freely available journalistic guides and messages. Contributions identified by name give the opinion of the author and not always the opinion of the provider. By calling the free and freely accessible content, there is no contractual relationship between the user and the provider, in this respect there is a lack of the providers legal commitment.'
},
{
title: '§ 2 External links',
text: 'This website contains links to websites of third parties (“external links”). These websites are the responsibility of the respective operators. When the external links were linked for the first time, the provider checked the contents of third parties to ascertain whether there were any legal violations. At that time no legal violations were apparent. The provider has no influence on the current and future design and content of the linked pages. The setting of external links does not mean that the provider owns the content behind the link or link. A constant control of the external links is unreasonable for the offerer without concrete indications of legal violations. In case of knowledge of legal violations, however, such external links are immediately deleted.'
},
{
title: '§ 3 Copyright and performance rights',
text: 'The contents published on this website are subject to the German copyright and the right to protection of intellectual property. Any use not permitted by the German Copyright and Performance Protection Law requires the prior written consent of the provider or respective copyright owner. This applies particularly to the reproduction, processing, translation, storage of content in databases or other electronic media and systems. Contents and rights of third parties are marked as such. The unauthorized duplication or dissemination of individual contents or complete pages is not permitted and punishable. Only the production of copies and downloads for personal, private and non-commercial use is permitted. The presentation of this website in foreign frames is only permitted with written permission.'
},
{
title: '§ 4 Special Conditions of Use',
text: 'Insofar as special conditions for individual uses of this website deviate from the abovementioned paragraphs, this is expressly pointed out at the appropriate place. The special conditions of use apply in the particular case only.'
}
]
}
}
}
import { loadContent } from '@/helper/content'
export default loadContent(
'imprint',
require.context('./content', false, /\.json$/)
)