Implement internal page component, first step

This commit is contained in:
Wolfgang Huß 2021-08-02 13:48:57 +02:00
parent 59dd7ba104
commit df1e622094
8 changed files with 160 additions and 39 deletions

View File

@ -26,12 +26,12 @@
</template>
<script>
import { isInternalPage } from '~/components/utils/InternalPages.js'
import links from '~/constants/links.js'
import { isInternalPage } from '~/components/utils/InternalPages.js'
export default {
data() {
return { isInternalPage, links, version: `v${this.$env.VERSION}` }
return { links, isInternalPage, version: `v${this.$env.VERSION}` }
},
}
</script>

View File

@ -2,7 +2,7 @@
<section class="login-form">
<base-card>
<template #imageColumn>
<a :href="links.ORGANIZATION" :title="$t('login.moreInfo', metadata)" target="_blank">
<a :href="pageLink(links.ORGANIZATION)" :title="$t('login.moreInfo', metadata)" target="_blank">
<logo logoType="signup" />
</a>
</template>
@ -45,6 +45,7 @@
<script>
import links from '~/constants/links.js'
import metadata from '~/constants/metadata.js'
import { pageLink } from '~/components/utils/InternalPages.js'
import ComponentSlider from '~/components/ComponentSlider/ComponentSlider'
import LocaleSwitch from '~/components/LocaleSwitch/LocaleSwitch'
import Logo from '~/components/Logo/Logo'
@ -161,6 +162,7 @@ export default {
}
return {
pageLink,
links,
metadata,
sliderData: {

View File

@ -0,0 +1,84 @@
<template>
<div>
<ds-space margin="small">
<ds-heading v-if="pageParams.internalPage.headlineIdent !== null" tag="h2">{{ $t(pageParams.internalPage.headlineIdent === '' ? pageValues.defaultHeadlineIdent : pageParams.internalPage.headlineIdent) }}</ds-heading>
</ds-space>
<ds-container v-if="pageParams.internalPage.hasContainer">
<div v-if="!pageParams.internalPage.hasBaseCard">
<br>
<div v-html="$t(pageValues.htmlIdent)" />
</div>
<base-card v-else>
<div v-html="$t(pageValues.htmlIdent)" />
</base-card>
</ds-container>
<div v-else-if="!pageParams.internalPage.hasBaseCard">
<br>
<div v-html="$t(pageValues.htmlIdent)" />
</div>
<base-card v-else>
<div v-html="$t(pageValues.htmlIdent)" />
</base-card>
</div>
</template>
<script>
// import links from '~/constants/links.js'
// import { pageLink } from '~/components/utils/InternalPages.js'
// import Logo from '~/components/Logo/Logo'
export default {
name: 'InternalPage',
head() {
return {
title: this.$t(this.pageParams.internalPage.headTitleIdent),
}
},
// layout: 'basic',
// components: {
// Logo,
// },
props: {
pageParams: { type: Object, required: true },
},
// data() {
// return { links, pageLink }
// },
computed: {
pageValues() {
let values = {}
switch (this.pageParams.name) {
case 'organization':
values.defaultHeadlineIdent = 'site.made'
values.htmlIdent = 'html.organization'
break;
case 'donate':
values.defaultHeadlineIdent = 'site.donate'
values.htmlIdent = 'html.donate'
break;
case 'imprint':
values.defaultHeadlineIdent = 'site.imprint'
values.htmlIdent = 'html.imprint'
break;
case 'terms-and-conditions':
values.defaultHeadlineIdent = 'site.termsAndConditions'
values.htmlIdent = 'html.termsAndConditions'
break;
case 'code-of-conduct':
values.defaultHeadlineIdent = 'site.code-of-conduct'
values.htmlIdent = 'html.codeOfConduct'
break;
case 'data-privacy':
values.defaultHeadlineIdent = 'site.data-privacy'
values.htmlIdent = 'html.dataPrivacy'
break;
case 'faq':
values.defaultHeadlineIdent = 'site.faq'
values.htmlIdent = 'html.faq'
break;
}
return values
},
},
}
</script>

View File

@ -5,3 +5,7 @@ export function isInternalPage(pageParams) {
export function noStringDefined(string) {
return !string || string === 0
}
export function pageLink(pageParams) {
return isInternalPage(pageParams) ? pageParams.internalLink : pageParams.externalLink
}

View File

@ -10,9 +10,11 @@ const ORGANIZATION = {
internalLink: '/organization', // static, don't change! internal page in case no external is defined
internalPage: {
footerIdent: 'site.made', // localized string identifier
// Wolle headlineIdent: null, // on null default is used, on empty string it's hidden
headlineIdent: '', // localized string identifier. on null default is used, on empty string it's hidden
hasBaseCard: true,
headTitleIdent: 'site.made', // localized string identifier
// Wolle headlineIdent: 'site.made', // localized string identifier. on null it's hidden, on empty string default is used
headlineIdent: null, // localized string identifier. on null it's hidden, on empty string default is used
hasContainer: true,
hasBaseCard: true, // no baseCard without a container
hasLoginInHeader: true,
},
}
@ -26,7 +28,8 @@ const DONATE = {
internalLink: '/donate', // static, don't change! internal page in case no external is defined
internalPage: {
footerIdent: 'site.donate', // localized string identifier
headlineIdent: null, // localized string identifier. on null default is used, on empty string it's hidden
headTitleIdent: 'site.donate', // localized string identifier
headlineIdent: null, // localized string identifier. on null it's hidden, on empty string default is used
hasBaseCard: true,
hasLoginInHeader: true,
},
@ -41,7 +44,8 @@ const IMPRINT = {
internalLink: '/imprint', // static, don't change! internal page in case no external is defined
internalPage: {
footerIdent: 'site.imprint', // localized string identifier
headlineIdent: null, // localized string identifier. on null default is used, on empty string it's hidden
headTitleIdent: 'site.imprint', // localized string identifier
headlineIdent: null, // localized string identifier. on null it's hidden, on empty string default is used
hasBaseCard: true,
hasLoginInHeader: true,
},
@ -55,7 +59,8 @@ const TERMS_AND_CONDITIONS = {
internalLink: '/terms-and-conditions', // static, don't change! internal page in case no external is defined
internalPage: {
footerIdent: 'site.termsAndConditions', // localized string identifier
headlineIdent: null, // localized string identifier. on null default is used, on empty string it's hidden
headTitleIdent: 'site.termsAndConditions', // localized string identifier
headlineIdent: null, // localized string identifier. on null it's hidden, on empty string default is used
hasBaseCard: true,
hasLoginInHeader: true,
},
@ -69,7 +74,8 @@ const CODE_OF_CONDUCT = {
internalLink: '/code-of-conduct', // static, don't change! internal page in case no external is defined
internalPage: {
footerIdent: 'site.code-of-conduct', // localized string identifier
headlineIdent: null, // localized string identifier. on null default is used, on empty string it's hidden
headTitleIdent: 'site.code-of-conduct', // localized string identifier
headlineIdent: null, // localized string identifier. on null it's hidden, on empty string default is used
hasBaseCard: true,
hasLoginInHeader: true,
},
@ -83,7 +89,8 @@ const DATA_PRIVACY = {
internalLink: '/data-privacy', // static, don't change! internal page in case no external is defined
internalPage: {
footerIdent: 'site.data-privacy', // localized string identifier
headlineIdent: null, // localized string identifier. on null default is used, on empty string it's hidden
headTitleIdent: 'site.data-privacy', // localized string identifier
headlineIdent: null, // localized string identifier. on null it's hidden, on empty string default is used
hasBaseCard: true,
hasLoginInHeader: true,
},
@ -98,8 +105,9 @@ const FAQ = {
internalLink: '/faq', // static, don't change! internal page in case no external is defined
internalPage: {
footerIdent: 'site.faq', // localized string identifier
headTitleIdent: 'site.faq', // localized string identifier
// Wolle headlineIdent: null, // on null default is used, on empty string it's hidden
headlineIdent: null, // localized string identifier. on null default is used, on empty string it's hidden
headlineIdent: null, // localized string identifier. on null it's hidden, on empty string default is used
hasBaseCard: true,
hasLoginInHeader: true,
},

View File

@ -1,31 +1,31 @@
<!-- this file is replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/locales/html/ -->
<!-- you can find and store templates at https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/templates/ -->
<br>
<h1 class="h3-headline-big">
<!-- <br> -->
<!-- <h1 class="h3-headline-big">
sender.fm
</h1>
</h1> -->
<!-- <img class="logo" alt="ocelot.social Header" src="/img/custom/logo-horizontal.svg" style="width: 360px;"><br> -->
<p class="paragraph">
<!-- <p class="paragraph">
Hier wird sender.fm in Zukunft vorgestellt …
</p>
<p class="link">
</p> -->
<!-- <p class="link">
<a href="/login" target="_blank">
Zum Login …
</a><br>
</p>
<br>
<h3 class="h3-headline">
<br> -->
<h1 class="h1-headline">
Unser Radio-Stream
</h3>
</h1>
<br>
<!-- <iframe id="embed_player" frameborder="0" width="280" height="216" src="https://senderfm.airtime.pro/embed/player?stream=s1&skin=1"></iframe> -->
<iframe class="player" id="embed_player" frameborder="0" width="350" height="396" src="https://senderfm.airtime.pro/embed/player?stream=s1&skin=2"></iframe>
<iframe class="player" id="embed_player" frameborder="0" width="510px" height="396px" src="https://senderfm.airtime.pro/embed/player?stream=s1&skin=2"></iframe>
<br>
<h4 class="h4-headline">
<h3 class="h3-headline">
Sende-Wochenplan
</h4>
<iframe class="weekly-plan" height="400px" width="550px" scrolling="yes" frameborder="0" src=https://senderfm.airtime.pro/embed/weekly-program></iframe>
<iframe class="weekly-plan" height="802px" width="550px" scrolling="yes" frameborder="0" src=https://senderfm.airtime.pro/embed/weekly-program></iframe>
<br>
<br>
@ -38,6 +38,12 @@ https://senderfm.out.airtime.pro/senderfm_a -->
margin-bottom: 48px;
}
.h1-headline {
font-size: 48px;
margin-top: 12px;
margin-bottom: 8px;
}
.h3-headline-big {
font-size: 64px;
margin-top: 12px;
@ -45,7 +51,7 @@ https://senderfm.out.airtime.pro/senderfm_a -->
}
.h3-headline {
font-size: 24px;
font-size: 32px;
margin-top: 12px;
margin-bottom: 8px;
}
@ -77,4 +83,7 @@ https://senderfm.out.airtime.pro/senderfm_a -->
margin-bottom: 0px;
margin-left: -20px;
}
.schedule.current, .schedule_content {
max-height: 900px;
}
</style>

View File

@ -1,20 +1,20 @@
<!-- this file is replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/locales/html/ -->
<!-- you can find and store templates at https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/templates/ -->
<br>
<h1 class="h3-headline-big">
<!-- <br> -->
<!-- <h1 class="h3-headline-big">
sender.fm
</h1>
</h1> -->
<!-- <img class="logo" alt="ocelot.social Header" src="/img/custom/logo-horizontal.svg" style="width: 360px;"><br> -->
<p class="paragraph">
<!-- <p class="paragraph">
Here sender.fm will be described in the future …
</p>
<p class="link">
</p> -->
<!-- <p class="link">
<a href="/login" target="_blank">
Login …
</a><br>
</p>
<br>
<br> -->
<h3 class="h3-headline">
Our Radio Stream
</h3>

View File

@ -1,21 +1,35 @@
<template>
<div>
<internal-page
:pageParams="links.ORGANIZATION"
/>
<!-- Wolle <div>
<ds-space margin="small">
<ds-heading tag="h2">{{ $t('site.made') }}</ds-heading>
</ds-space>
<ds-container>
<div v-html="$t('html.organization')" />
</ds-container>
</div>
</div> -->
</template>
<script>
import links from '~/constants/links.js'
import InternalPage from '~/components/_new/features/InternalPage/InternalPage.vue'
export default {
layout: 'basic',
head() {
return {
title: this.$t('site.made'),
}
components: {
InternalPage,
},
// Wolle
layout: 'basic',
data() {
// Wolle console.log(links.ORGANIZATION)
return { links }
},
// Wolle head() {
// return {
// title: this.$t('site.made'),
// }
// },
}
</script>