mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 23:35:58 +00:00
Refactor pageParams, third step
- Implement emails.js in backend as well. - Move backend links.js into emails.js, because code is not a duplicate of webapp anymore.
This commit is contained in:
parent
e8a0a5d13c
commit
aa454893ce
8
backend/src/config/emails.js
Normal file
8
backend/src/config/emails.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
// this file is duplicated in `backend/src/config/` and `webapp/constants/` and replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/constants/
|
||||||
|
export default {
|
||||||
|
SUPPORT_EMAIL: 'devops@ocelot.social',
|
||||||
|
MODERATION_EMAIL: 'devops@ocelot.social',
|
||||||
|
// ATTENTION: the following links have to be defined even for internal pages with full URLs as example like 'https://staging.ocelot.social/support', because they are used in e-mails!
|
||||||
|
ORGANIZATION_LINK: 'https://ocelot.social',
|
||||||
|
SUPPORT_LINK: 'https://ocelot.social',
|
||||||
|
}
|
||||||
@ -1,5 +1,5 @@
|
|||||||
import dotenv from 'dotenv'
|
import dotenv from 'dotenv'
|
||||||
import links from './links.js'
|
import emails from './emails.js'
|
||||||
import metadata from './metadata.js'
|
import metadata from './metadata.js'
|
||||||
|
|
||||||
// Load env file
|
// Load env file
|
||||||
@ -79,9 +79,9 @@ const s3 = {
|
|||||||
|
|
||||||
const options = {
|
const options = {
|
||||||
EMAIL_DEFAULT_SENDER: env.EMAIL_DEFAULT_SENDER,
|
EMAIL_DEFAULT_SENDER: env.EMAIL_DEFAULT_SENDER,
|
||||||
SUPPORT_URL: links.SUPPORT,
|
SUPPORT_URL: emails.SUPPORT_LINK,
|
||||||
APPLICATION_NAME: metadata.APPLICATION_NAME,
|
APPLICATION_NAME: metadata.APPLICATION_NAME,
|
||||||
ORGANIZATION_URL: links.ORGANIZATION,
|
ORGANIZATION_URL: emails.ORGANIZATION_LINK,
|
||||||
PUBLIC_REGISTRATION: env.PUBLIC_REGISTRATION === 'true' || false,
|
PUBLIC_REGISTRATION: env.PUBLIC_REGISTRATION === 'true' || false,
|
||||||
INVITE_REGISTRATION: env.INVITE_REGISTRATION !== 'false', // default = true
|
INVITE_REGISTRATION: env.INVITE_REGISTRATION !== 'false', // default = true
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,18 +0,0 @@
|
|||||||
// this file is duplicated in `backend/src/config/links.js` and `webapp/constants/links.js` and replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/constants/
|
|
||||||
export default {
|
|
||||||
// Wolle LANDING_PAGE: '/login', // examples: '/login', '/registration', '/organization', or external 'https://ocelot.social'
|
|
||||||
LANDING_PAGE: '/organization', // examples: '/login', '/registration', '/organization', or external 'https://ocelot.social'
|
|
||||||
|
|
||||||
// you can find and store templates at https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/templates/
|
|
||||||
|
|
||||||
SUPPORT: 'https://ocelot.social', // example for internal support page: 'https://staging.ocelot.social/support'. set a full URL please, because it is used in e-mails as well!
|
|
||||||
|
|
||||||
// on null or empty strings internal pages are used, see 'webapp/locales/html/'
|
|
||||||
ORGANIZATION: 'https://ocelot.social',
|
|
||||||
DONATE: 'https://ocelot-social.herokuapp.com/donations', // we use 'ocelot-social.herokuapp.com' at the moment, because redirections of 'ocelot.social' subpages are not working correctly
|
|
||||||
IMPRINT: 'https://ocelot-social.herokuapp.com/imprint', // we use 'ocelot-social.herokuapp.com' at the moment, because redirections of 'ocelot.social' subpages are not working correctly
|
|
||||||
TERMS_AND_CONDITIONS: null,
|
|
||||||
CODE_OF_CONDUCT: null,
|
|
||||||
DATA_PRIVACY: null,
|
|
||||||
FAQ: 'https://ocelot.social',
|
|
||||||
}
|
|
||||||
@ -25,10 +25,10 @@
|
|||||||
<div v-if="formData.image" class="blur-toggle">
|
<div v-if="formData.image" class="blur-toggle">
|
||||||
<label for="blur-img">{{ $t('contribution.inappropriatePicture') }}</label>
|
<label for="blur-img">{{ $t('contribution.inappropriatePicture') }}</label>
|
||||||
<input type="checkbox" id="blur-img" v-model="formData.imageBlurred" />
|
<input type="checkbox" id="blur-img" v-model="formData.imageBlurred" />
|
||||||
<a :href="links.FAQ" target="_blank" class="link">
|
<page-params-link class="link" :pageParams="links.FAQ">
|
||||||
{{ $t('contribution.inappropriatePictureText') }}
|
{{ $t('contribution.inappropriatePicture') }}
|
||||||
<base-icon name="question-circle" />
|
<base-icon name="question-circle" />
|
||||||
</a>
|
</page-params-link>
|
||||||
</div>
|
</div>
|
||||||
<ds-input
|
<ds-input
|
||||||
model="title"
|
model="title"
|
||||||
@ -71,11 +71,13 @@ import HcEditor from '~/components/Editor/Editor'
|
|||||||
import PostMutations from '~/graphql/PostMutations.js'
|
import PostMutations from '~/graphql/PostMutations.js'
|
||||||
import ImageUploader from '~/components/ImageUploader/ImageUploader'
|
import ImageUploader from '~/components/ImageUploader/ImageUploader'
|
||||||
import links from '~/constants/links.js'
|
import links from '~/constants/links.js'
|
||||||
|
import PageParamsLink from '~/components/_new/features/PageParamsLink/PageParamsLink.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
HcEditor,
|
HcEditor,
|
||||||
ImageUploader,
|
ImageUploader,
|
||||||
|
PageParamsLink,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
contribution: {
|
contribution: {
|
||||||
|
|||||||
@ -1,9 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="donation-info">
|
<div class="donation-info">
|
||||||
<progress-bar :title="title" :label="label" :goal="goal" :progress="progress" />
|
<progress-bar :title="title" :label="label" :goal="goal" :progress="progress" />
|
||||||
<a target="_blank" :href="links.DONATE">
|
<base-button filled @click="redirectToPage(links.DONATE)">{{ $t('donations.donate-now') }}</base-button>
|
||||||
<base-button filled>{{ $t('donations.donate-now') }}</base-button>
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -36,6 +34,11 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
methods: {
|
||||||
|
redirectToPage(pageParams) {
|
||||||
|
pageParams.redirectToPage(this)
|
||||||
|
},
|
||||||
|
},
|
||||||
apollo: {
|
apollo: {
|
||||||
Donations: {
|
Donations: {
|
||||||
query() {
|
query() {
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
</blockquote>
|
</blockquote>
|
||||||
<base-card>
|
<base-card>
|
||||||
<template #imageColumn>
|
<template #imageColumn>
|
||||||
<a :href="links.ORGANIZATION.link" :title="$t('login.moreInfo', metadata)" target="_blank">
|
<page-params-link :pageParams="links.ORGANIZATION" :title="$t('login.moreInfo', metadata)">
|
||||||
<logo logoType="welcome" />
|
<logo logoType="welcome" />
|
||||||
</a>
|
</page-params-link>
|
||||||
</template>
|
</template>
|
||||||
<h2 class="title">{{ $t('login.login') }}</h2>
|
<h2 class="title">{{ $t('login.login') }}</h2>
|
||||||
<form :disabled="pending" @submit.prevent="onSubmit">
|
<form :disabled="pending" @submit.prevent="onSubmit">
|
||||||
@ -54,6 +54,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import links from '~/constants/links.js'
|
import links from '~/constants/links.js'
|
||||||
import metadata from '~/constants/metadata.js'
|
import metadata from '~/constants/metadata.js'
|
||||||
|
import PageParamsLink from '~/components/_new/features/PageParamsLink/PageParamsLink.vue'
|
||||||
import LocaleSwitch from '~/components/LocaleSwitch/LocaleSwitch'
|
import LocaleSwitch from '~/components/LocaleSwitch/LocaleSwitch'
|
||||||
import Logo from '~/components/Logo/Logo'
|
import Logo from '~/components/Logo/Logo'
|
||||||
import ShowPassword from '../ShowPassword/ShowPassword.vue'
|
import ShowPassword from '../ShowPassword/ShowPassword.vue'
|
||||||
@ -62,6 +63,7 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
LocaleSwitch,
|
LocaleSwitch,
|
||||||
Logo,
|
Logo,
|
||||||
|
PageParamsLink,
|
||||||
ShowPassword,
|
ShowPassword,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@ -2,21 +2,9 @@
|
|||||||
<div id="footer" class="ds-footer">
|
<div id="footer" class="ds-footer">
|
||||||
<!-- links to internal or external pages -->
|
<!-- links to internal or external pages -->
|
||||||
<span v-for="pageParams in links.FOOTER_LINK_LIST" :key="pageParams.name">
|
<span v-for="pageParams in links.FOOTER_LINK_LIST" :key="pageParams.name">
|
||||||
<nuxt-link
|
<page-params-link :pageParams="pageParams">
|
||||||
v-if="isInternalPage(pageParams)"
|
|
||||||
:to="pageParams.internalLink"
|
|
||||||
:data-test="pageParams.name + '-nuxt-link'"
|
|
||||||
>
|
|
||||||
{{ $t(pageParams.internalPage.footerIdent) }}
|
{{ $t(pageParams.internalPage.footerIdent) }}
|
||||||
</nuxt-link>
|
</page-params-link>
|
||||||
<a
|
|
||||||
v-else
|
|
||||||
:href="pageParams.externalLink"
|
|
||||||
target="_blank"
|
|
||||||
:data-test="pageParams.name + '-link'"
|
|
||||||
>
|
|
||||||
{{ $t(pageParams.internalPage.footerIdent) }}
|
|
||||||
</a>
|
|
||||||
<span class="division-line">-</span>
|
<span class="division-line">-</span>
|
||||||
</span>
|
</span>
|
||||||
<!-- version -->
|
<!-- version -->
|
||||||
@ -32,11 +20,14 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import links from '~/constants/links.js'
|
import links from '~/constants/links.js'
|
||||||
import { isInternalPage } from '~/components/utils/InternalPages.js'
|
import PageParamsLink from '~/components/_new/features/PageParamsLink/PageParamsLink.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
components: {
|
||||||
|
PageParamsLink,
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return { links, isInternalPage, version: `v${this.$env.VERSION}` }
|
return { links, version: `v${this.$env.VERSION}` }
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -79,7 +79,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
const passwordForm = PasswordForm({ translate: this.$t })
|
const passwordForm = PasswordForm({ translate: this.$t })
|
||||||
return {
|
return {
|
||||||
supportEmail: emails.SUPPORT,
|
supportEmail: emails.SUPPORT_EMAIL,
|
||||||
formData: {
|
formData: {
|
||||||
...passwordForm.formData,
|
...passwordForm.formData,
|
||||||
},
|
},
|
||||||
|
|||||||
@ -142,7 +142,7 @@ export default {
|
|||||||
const passwordForm = PasswordForm({ translate: this.$t })
|
const passwordForm = PasswordForm({ translate: this.$t })
|
||||||
return {
|
return {
|
||||||
links,
|
links,
|
||||||
supportEmail: emails.SUPPORT,
|
supportEmail: emails.SUPPORT_EMAIL,
|
||||||
formData: {
|
formData: {
|
||||||
name: '',
|
name: '',
|
||||||
...passwordForm.formData,
|
...passwordForm.formData,
|
||||||
|
|||||||
@ -2,9 +2,9 @@
|
|||||||
<section class="login-form">
|
<section class="login-form">
|
||||||
<base-card>
|
<base-card>
|
||||||
<template #imageColumn>
|
<template #imageColumn>
|
||||||
<a :href="links.ORGANIZATION.link" :title="$t('login.moreInfo', metadata)" target="_blank">
|
<page-params-link :pageParams="links.ORGANIZATION" :title="$t('login.moreInfo', metadata)">
|
||||||
<logo logoType="signup" />
|
<logo logoType="signup" />
|
||||||
</a>
|
</page-params-link>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<component-slider :sliderData="sliderData">
|
<component-slider :sliderData="sliderData">
|
||||||
@ -48,6 +48,7 @@ import metadata from '~/constants/metadata.js'
|
|||||||
import ComponentSlider from '~/components/ComponentSlider/ComponentSlider'
|
import ComponentSlider from '~/components/ComponentSlider/ComponentSlider'
|
||||||
import LocaleSwitch from '~/components/LocaleSwitch/LocaleSwitch'
|
import LocaleSwitch from '~/components/LocaleSwitch/LocaleSwitch'
|
||||||
import Logo from '~/components/Logo/Logo'
|
import Logo from '~/components/Logo/Logo'
|
||||||
|
import PageParamsLink from '~/components/_new/features/PageParamsLink/PageParamsLink.vue'
|
||||||
import RegistrationSlideCreate from './RegistrationSlideCreate'
|
import RegistrationSlideCreate from './RegistrationSlideCreate'
|
||||||
import RegistrationSlideEmail from './RegistrationSlideEmail'
|
import RegistrationSlideEmail from './RegistrationSlideEmail'
|
||||||
import RegistrationSlideInvite from './RegistrationSlideInvite'
|
import RegistrationSlideInvite from './RegistrationSlideInvite'
|
||||||
@ -60,6 +61,7 @@ export default {
|
|||||||
ComponentSlider,
|
ComponentSlider,
|
||||||
LocaleSwitch,
|
LocaleSwitch,
|
||||||
Logo,
|
Logo,
|
||||||
|
PageParamsLink,
|
||||||
RegistrationSlideCreate,
|
RegistrationSlideCreate,
|
||||||
RegistrationSlideEmail,
|
RegistrationSlideEmail,
|
||||||
RegistrationSlideInvite,
|
RegistrationSlideInvite,
|
||||||
|
|||||||
@ -4,9 +4,7 @@
|
|||||||
<ds-heading v-if="pageParams.internalPage.headlineIdent !== null" tag="h2">
|
<ds-heading v-if="pageParams.internalPage.headlineIdent !== null" tag="h2">
|
||||||
{{
|
{{
|
||||||
$t(
|
$t(
|
||||||
pageParams.internalPage.headlineIdent === ''
|
pageParams.internalPage.headlineIdent,
|
||||||
? pageParams.internalPage.defaultHeadlineIdent
|
|
||||||
: pageParams.internalPage.headlineIdent,
|
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
</ds-heading>
|
</ds-heading>
|
||||||
|
|||||||
@ -0,0 +1,26 @@
|
|||||||
|
<template>
|
||||||
|
<nuxt-link
|
||||||
|
v-if="pageParams.isInternalPage"
|
||||||
|
:to="pageParams.internalPage.pageRoute"
|
||||||
|
:data-test="pageParams.name + '-nuxt-link'"
|
||||||
|
>
|
||||||
|
<slot />
|
||||||
|
</nuxt-link>
|
||||||
|
<a
|
||||||
|
v-else
|
||||||
|
:href="pageParams.externalLink"
|
||||||
|
target="_blank"
|
||||||
|
:data-test="pageParams.name + '-link'"
|
||||||
|
>
|
||||||
|
<slot />
|
||||||
|
</a>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'PageParamsLink',
|
||||||
|
props: {
|
||||||
|
pageParams: { type: Object, required: true },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@ -1,35 +1,42 @@
|
|||||||
export function isInternalPage(pageParams) {
|
|
||||||
return noStringDefined(pageParams.externalLink)
|
|
||||||
}
|
|
||||||
|
|
||||||
function noStringDefined(string) {
|
function noStringDefined(string) {
|
||||||
return !string || string === 0
|
return !string || string === 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function pageLink(pageParams) {
|
|
||||||
return isInternalPage(pageParams) ? pageParams.internalLink : pageParams.externalLink
|
|
||||||
}
|
|
||||||
|
|
||||||
class PageParams {
|
class PageParams {
|
||||||
constructor(pageParams) {
|
constructor(pageParams) {
|
||||||
this.name = pageParams.name
|
this.name = pageParams.name
|
||||||
this.externalLink = pageParams.externalLink
|
this.externalLink = pageParams.externalLink
|
||||||
this.internalLink = pageParams.internalLink
|
|
||||||
this.internalPage = pageParams.internalPage
|
this.internalPage = pageParams.internalPage
|
||||||
}
|
}
|
||||||
|
|
||||||
assign(assignPageParams) {
|
overwrite(assignPageParams) {
|
||||||
let pageParams = this
|
let pageParams = this
|
||||||
pageParams = {
|
if (assignPageParams.name !== undefined) {
|
||||||
...pageParams,
|
pageParams.name = assignPageParams.name
|
||||||
...assignPageParams,
|
}
|
||||||
internalPage: { ...pageParams.internalPage, ...assignPageParams.internalPage },
|
if (assignPageParams.externalLink !== undefined) {
|
||||||
|
pageParams.externalLink = assignPageParams.externalLink
|
||||||
|
}
|
||||||
|
if (assignPageParams.internalPage !== undefined) {
|
||||||
|
pageParams.internalPage = { ...pageParams.internalPage, ...assignPageParams.internalPage }
|
||||||
}
|
}
|
||||||
return pageParams
|
return pageParams
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get isInternalPage() {
|
||||||
|
return noStringDefined(this.externalLink)
|
||||||
|
}
|
||||||
|
|
||||||
get link() {
|
get link() {
|
||||||
return pageLink(this)
|
return this.isInternalPage ? this.internalPage.pageRoute : this.externalLink
|
||||||
|
}
|
||||||
|
|
||||||
|
redirectToPage(thisComponent) {
|
||||||
|
if (this.isInternalPage) {
|
||||||
|
thisComponent.$router.push(this.internalPage.pageRoute)
|
||||||
|
} else {
|
||||||
|
window.location.href = this.externalLink
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,17 +46,15 @@ export const defaultPageParamsPages = {
|
|||||||
|
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
externalLink: null, // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalLink: '/organization', // static, don't change! internal page in case no external is defined
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
|
pageRoute: '/organization', // static, don't change! internal page in case no external is defined
|
||||||
footerIdent: 'site.made', // localized string identifier
|
footerIdent: 'site.made', // localized string identifier
|
||||||
headTitleIdent: 'site.made', // localized string identifier
|
headTitleIdent: 'site.made', // localized string identifier
|
||||||
headlineIdent: 'site.made', // localized string identifier. on null it's hidden, on empty string default is used
|
headlineIdent: 'site.made', // localized string identifier. on null it's hidden, on empty string default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
defaultHeadlineIdent: 'site.made',
|
|
||||||
htmlIdent: 'html.organization',
|
htmlIdent: 'html.organization',
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
@ -58,17 +63,15 @@ export const defaultPageParamsPages = {
|
|||||||
|
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
externalLink: null, // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalLink: '/donate', // static, don't change! internal page in case no external is defined
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
|
pageRoute: '/donate', // static, don't change! internal page in case no external is defined
|
||||||
footerIdent: 'site.donate', // localized string identifier
|
footerIdent: 'site.donate', // localized string identifier
|
||||||
headTitleIdent: 'site.donate', // localized string identifier
|
headTitleIdent: 'site.donate', // localized string identifier
|
||||||
headlineIdent: 'site.donate', // localized string identifier. on null it's hidden, on empty string default is used
|
headlineIdent: 'site.donate', // localized string identifier. on null it's hidden, on empty string default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
defaultHeadlineIdent: 'site.donate',
|
|
||||||
htmlIdent: 'html.donate',
|
htmlIdent: 'html.donate',
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
@ -77,17 +80,15 @@ export const defaultPageParamsPages = {
|
|||||||
|
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
externalLink: null, // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalLink: '/imprint', // static, don't change! internal page in case no external is defined
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
|
pageRoute: '/imprint', // static, don't change! internal page in case no external is defined
|
||||||
footerIdent: 'site.imprint', // localized string identifier
|
footerIdent: 'site.imprint', // localized string identifier
|
||||||
headTitleIdent: 'site.imprint', // localized string identifier
|
headTitleIdent: 'site.imprint', // localized string identifier
|
||||||
headlineIdent: 'site.imprint', // localized string identifier. on null it's hidden, on empty string default is used
|
headlineIdent: 'site.imprint', // localized string identifier. on null it's hidden, on empty string default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
defaultHeadlineIdent: 'site.imprint',
|
|
||||||
htmlIdent: 'html.imprint',
|
htmlIdent: 'html.imprint',
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
@ -96,17 +97,15 @@ export const defaultPageParamsPages = {
|
|||||||
|
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
externalLink: null, // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalLink: '/terms-and-conditions', // static, don't change! internal page in case no external is defined
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
|
pageRoute: '/terms-and-conditions', // static, don't change! internal page in case no external is defined
|
||||||
footerIdent: 'site.termsAndConditions', // localized string identifier
|
footerIdent: 'site.termsAndConditions', // localized string identifier
|
||||||
headTitleIdent: 'site.termsAndConditions', // localized string identifier
|
headTitleIdent: 'site.termsAndConditions', // localized string identifier
|
||||||
headlineIdent: 'site.termsAndConditions', // localized string identifier. on null it's hidden, on empty string default is used
|
headlineIdent: 'site.termsAndConditions', // localized string identifier. on null it's hidden, on empty string default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
defaultHeadlineIdent: 'site.termsAndConditions',
|
|
||||||
htmlIdent: 'html.termsAndConditions',
|
htmlIdent: 'html.termsAndConditions',
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
@ -115,17 +114,15 @@ export const defaultPageParamsPages = {
|
|||||||
|
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
externalLink: null, // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalLink: '/code-of-conduct', // static, don't change! internal page in case no external is defined
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
|
pageRoute: '/code-of-conduct', // static, don't change! internal page in case no external is defined
|
||||||
footerIdent: 'site.code-of-conduct', // localized string identifier
|
footerIdent: 'site.code-of-conduct', // localized string identifier
|
||||||
headTitleIdent: 'site.code-of-conduct', // localized string identifier
|
headTitleIdent: 'site.code-of-conduct', // localized string identifier
|
||||||
headlineIdent: 'site.code-of-conduct', // localized string identifier. on null it's hidden, on empty string default is used
|
headlineIdent: 'site.code-of-conduct', // localized string identifier. on null it's hidden, on empty string default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
defaultHeadlineIdent: 'site.code-of-conduct',
|
|
||||||
htmlIdent: 'html.codeOfConduct',
|
htmlIdent: 'html.codeOfConduct',
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
@ -134,17 +131,15 @@ export const defaultPageParamsPages = {
|
|||||||
|
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
externalLink: null, // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalLink: '/data-privacy', // static, don't change! internal page in case no external is defined
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
|
pageRoute: '/data-privacy', // static, don't change! internal page in case no external is defined
|
||||||
footerIdent: 'site.data-privacy', // localized string identifier
|
footerIdent: 'site.data-privacy', // localized string identifier
|
||||||
headTitleIdent: 'site.data-privacy', // localized string identifier
|
headTitleIdent: 'site.data-privacy', // localized string identifier
|
||||||
headlineIdent: 'site.data-privacy', // localized string identifier. on null it's hidden, on empty string default is used
|
headlineIdent: 'site.data-privacy', // localized string identifier. on null it's hidden, on empty string default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
defaultHeadlineIdent: 'site.data-privacy',
|
|
||||||
htmlIdent: 'html.dataPrivacy',
|
htmlIdent: 'html.dataPrivacy',
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
@ -153,38 +148,32 @@ export const defaultPageParamsPages = {
|
|||||||
|
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
externalLink: null, // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalLink: '/faq', // static, don't change! internal page in case no external is defined
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
|
pageRoute: '/faq', // static, don't change! internal page in case no external is defined
|
||||||
footerIdent: 'site.faq', // localized string identifier
|
footerIdent: 'site.faq', // localized string identifier
|
||||||
headTitleIdent: 'site.faq', // localized string identifier
|
headTitleIdent: 'site.faq', // localized string identifier
|
||||||
headlineIdent: 'site.faq', // localized string identifier. on null it's hidden, on empty string default is used
|
headlineIdent: 'site.faq', // localized string identifier. on null it's hidden, on empty string default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
defaultHeadlineIdent: 'site.faq',
|
|
||||||
htmlIdent: 'html.faq',
|
htmlIdent: 'html.faq',
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
SUPPORT: new PageParams({
|
SUPPORT: new PageParams({
|
||||||
name: 'support',
|
name: 'support',
|
||||||
|
|
||||||
// ATTENTION: has to be defined even for internal page with full URL as example like 'https://staging.ocelot.social/support', because it is used in e-mails as well!
|
externalLink: null,
|
||||||
externalLink: 'https://ocelot.social',
|
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
// ATTENTION: example for internal support page: 'https://staging.ocelot.social/support'. set a full URL please, because it is used in e-mails as well!
|
|
||||||
internalLink: '/support', // static, don't change '*/support'! internal page in case no external is defined
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
|
pageRoute: '/support', // static, don't change '*/support'! internal page in case no external is defined
|
||||||
footerIdent: 'site.support', // localized string identifier
|
footerIdent: 'site.support', // localized string identifier
|
||||||
headTitleIdent: 'site.support', // localized string identifier
|
headTitleIdent: 'site.support', // localized string identifier
|
||||||
headlineIdent: 'site.support', // localized string identifier. on null it's hidden, on empty string default is used
|
headlineIdent: 'site.support', // localized string identifier. on null it's hidden, on empty string default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
defaultHeadlineIdent: 'site.support',
|
|
||||||
htmlIdent: 'html.support',
|
htmlIdent: 'html.support',
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|||||||
@ -1,4 +1,8 @@
|
|||||||
|
// this file is duplicated in `backend/src/config/` and `webapp/constants/` and replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/constants/
|
||||||
export default {
|
export default {
|
||||||
SUPPORT: 'devops@ocelot.social',
|
SUPPORT_EMAIL: 'devops@ocelot.social',
|
||||||
MODERATION: 'devops@ocelot.social',
|
MODERATION_EMAIL: 'devops@ocelot.social',
|
||||||
|
// ATTENTION: the following links have to be defined even for internal pages with full URLs as example like 'https://staging.ocelot.social/support', because they are used in e-mails!
|
||||||
|
ORGANIZATION_LINK: 'https://ocelot.social',
|
||||||
|
SUPPORT_LINK: 'https://ocelot.social',
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,119 +1,113 @@
|
|||||||
// this file is duplicated in `backend/src/config/links.js` and `webapp/constants/links.js` and replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/constants/
|
// this file is replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/constants/
|
||||||
|
|
||||||
import { defaultPageParamsPages } from '~/components/utils/InternalPages.js'
|
import { defaultPageParamsPages } from '~/components/utils/InternalPages.js'
|
||||||
|
|
||||||
const ORGANIZATION = defaultPageParamsPages.ORGANIZATION.assign({
|
const ORGANIZATION = defaultPageParamsPages.ORGANIZATION.overwrite({
|
||||||
// Wolle externalLink: 'https://ocelot.social',
|
// Wolle externalLink: 'https://ocelot.social', // if string is defined and not empty it's dominating
|
||||||
//
|
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
footerIdent: 'site.made', // localized string identifier
|
// footerIdent: 'site.made', // localized string identifier, if undefined default is used
|
||||||
headTitleIdent: 'site.made', // localized string identifier
|
// headTitleIdent: 'site.made', // localized string identifier, if undefined default is used
|
||||||
// Wolle headlineIdent: '', // localized string identifier. on null it's hidden, on empty string default is used
|
// headlineIdent: 'site.made', // localized string identifier, on null it's hidden, if undefined default is used
|
||||||
headlineIdent: null, // localized string identifier. on null it's hidden, on empty string default is used
|
// Wolle
|
||||||
|
headlineIdent: null, // localized string identifier, on null it's hidden, if undefined default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const DONATE = defaultPageParamsPages.DONATE.assign({
|
const DONATE = defaultPageParamsPages.DONATE.overwrite({
|
||||||
// Wolle externalLink: 'https://ocelot-social.herokuapp.com/donations', // we use 'ocelot-social.herokuapp.com' at the moment, because redirections of 'ocelot.social' subpages are not working correctly
|
// we use 'ocelot-social.herokuapp.com' at the moment, because redirections of 'ocelot.social' subpages are not working correctly
|
||||||
externalLink: '', // if string is defined and not empty it's dominating
|
// Wolle externalLink: 'https://ocelot-social.herokuapp.com/donations', // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
footerIdent: 'site.donate', // localized string identifier
|
// footerIdent: 'site.donate', // localized string identifier, if undefined default is used
|
||||||
headTitleIdent: 'site.donate', // localized string identifier
|
// headTitleIdent: 'site.donate', // localized string identifier, if undefined default is used
|
||||||
headlineIdent: '', // localized string identifier. on null it's hidden, on empty string default is used
|
// headlineIdent: 'site.donate', // localized string identifier, on null it's hidden, if undefined default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const IMPRINT = defaultPageParamsPages.IMPRINT.assign({
|
const IMPRINT = defaultPageParamsPages.IMPRINT.overwrite({
|
||||||
// Wolle externalLink: 'https://ocelot-social.herokuapp.com/imprint', // we use 'ocelot-social.herokuapp.com' at the moment, because redirections of 'ocelot.social' subpages are not working correctly
|
// we use 'ocelot-social.herokuapp.com' at the moment, because redirections of 'ocelot.social' subpages are not working correctly
|
||||||
externalLink: '', // if string is defined and not empty it's dominating
|
// Wolle externalLink: 'https://ocelot-social.herokuapp.com/imprint', // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
footerIdent: 'site.imprint', // localized string identifier
|
// footerIdent: 'site.imprint', // localized string identifier, if undefined default is used
|
||||||
headTitleIdent: 'site.imprint', // localized string identifier
|
// headTitleIdent: 'site.imprint', // localized string identifier, if undefined default is used
|
||||||
headlineIdent: '', // localized string identifier. on null it's hidden, on empty string default is used
|
// headlineIdent: 'site.imprint', // localized string identifier, on null it's hidden, if undefined default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const TERMS_AND_CONDITIONS = defaultPageParamsPages.TERMS_AND_CONDITIONS.assign({
|
const TERMS_AND_CONDITIONS = defaultPageParamsPages.TERMS_AND_CONDITIONS.overwrite({
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
// externalLink: null, // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
footerIdent: 'site.termsAndConditions', // localized string identifier
|
// footerIdent: 'site.termsAndConditions', // localized string identifier, if undefined default is used
|
||||||
headTitleIdent: 'site.termsAndConditions', // localized string identifier
|
// headTitleIdent: 'site.termsAndConditions', // localized string identifier, if undefined default is used
|
||||||
headlineIdent: '', // localized string identifier. on null it's hidden, on empty string default is used
|
// headlineIdent: 'site.termsAndConditions', // localized string identifier, on null it's hidden, if undefined default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const CODE_OF_CONDUCT = defaultPageParamsPages.CODE_OF_CONDUCT.assign({
|
const CODE_OF_CONDUCT = defaultPageParamsPages.CODE_OF_CONDUCT.overwrite({
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
// externalLink: null, // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
footerIdent: 'site.code-of-conduct', // localized string identifier
|
// footerIdent: 'site.code-of-conduct', // localized string identifier, if undefined default is used
|
||||||
headTitleIdent: 'site.code-of-conduct', // localized string identifier
|
// headTitleIdent: 'site.code-of-conduct', // localized string identifier, if undefined default is used
|
||||||
headlineIdent: '', // localized string identifier. on null it's hidden, on empty string default is used
|
// headlineIdent: 'site.code-of-conduct', // localized string identifier, on null it's hidden, if undefined default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const DATA_PRIVACY = defaultPageParamsPages.DATA_PRIVACY.assign({
|
const DATA_PRIVACY = defaultPageParamsPages.DATA_PRIVACY.overwrite({
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
// externalLink: null, // if string is defined and not empty it's dominating
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
footerIdent: 'site.data-privacy', // localized string identifier
|
// footerIdent: 'site.data-privacy', // localized string identifier, if undefined default is used
|
||||||
headTitleIdent: 'site.data-privacy', // localized string identifier
|
// headTitleIdent: 'site.data-privacy', // localized string identifier, if undefined default is used
|
||||||
headlineIdent: '', // localized string identifier. on null it's hidden, on empty string default is used
|
// headlineIdent: 'site.data-privacy', // localized string identifier, on null it's hidden, if undefined default is used
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const FAQ = defaultPageParamsPages.FAQ.assign({
|
const FAQ = defaultPageParamsPages.FAQ.overwrite({
|
||||||
// Wolle externalLink: 'https://ocelot.social',
|
// Wolle externalLink: 'https://ocelot.social', // if string is defined and not empty it's dominating
|
||||||
externalLink: null, // if string is defined and not empty it's dominating
|
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
footerIdent: 'site.faq', // localized string identifier
|
// footerIdent: 'site.faq', // localized string identifier, if undefined default is used
|
||||||
headTitleIdent: 'site.faq', // localized string identifier
|
// headTitleIdent: 'site.faq', // localized string identifier, if undefined default is used
|
||||||
// Wolle headlineIdent: '', // on null default is used, on empty string it's hidden
|
// headlineIdent: 'site.faq', // on null default is used, on empty string it's hidden
|
||||||
headlineIdent: '', // localized string identifier. on null it's hidden, on empty string default is used
|
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const SUPPORT = defaultPageParamsPages.SUPPORT.assign({
|
const SUPPORT = defaultPageParamsPages.SUPPORT.overwrite({
|
||||||
// ATTENTION: has to be defined even for internal page with full URL as example like 'https://staging.ocelot.social/support', because it is used in e-mails as well!
|
// Wolle externalLink: 'https://ocelot.social', // if string is defined and not empty it's dominating
|
||||||
// Wolle externalLink: 'https://ocelot.social',
|
|
||||||
externalLink: 'http://localhost:3000/support', // if string is defined and not empty it's dominating
|
|
||||||
|
|
||||||
// in case internal page content is here 'webapp/locales/html/'
|
|
||||||
internalPage: {
|
internalPage: {
|
||||||
footerIdent: 'site.support', // localized string identifier
|
// footerIdent: 'site.support', // localized string identifier, if undefined default is used
|
||||||
headTitleIdent: 'site.support', // localized string identifier
|
// headTitleIdent: 'site.support', // localized string identifier, if undefined default is used
|
||||||
// Wolle headlineIdent: '', // on null default is used, on empty string it's hidden
|
// headlineIdent: 'site.support', // on null default is used, on empty string it's hidden
|
||||||
headlineIdent: '', // localized string identifier. on null it's hidden, on empty string default is used
|
|
||||||
hasContainer: true,
|
hasContainer: true,
|
||||||
hasBaseCard: true,
|
hasBaseCard: true,
|
||||||
hasLoginInHeader: true,
|
hasLoginInHeader: true,
|
||||||
|
// in case internal page content is here 'webapp/locales/html/'
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -1,29 +1,15 @@
|
|||||||
<!-- this file is replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/locales/html/ -->
|
<!-- 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/ -->
|
<!-- 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">
|
|
||||||
sender.fm
|
|
||||||
</h1> -->
|
|
||||||
<!-- <img class="logo" alt="ocelot.social Header" src="/img/custom/logo-horizontal.svg" style="width: 360px;"><br> -->
|
|
||||||
<!-- <p class="paragraph">
|
|
||||||
Hier wird sender.fm in Zukunft vorgestellt …
|
|
||||||
</p> -->
|
|
||||||
<!-- <p class="link">
|
|
||||||
<a href="/login" target="_blank">
|
|
||||||
Zum Login …
|
|
||||||
</a><br>
|
|
||||||
</p>
|
|
||||||
<br> -->
|
|
||||||
<h1 class="h1-headline">
|
<h1 class="h1-headline">
|
||||||
Unser Radio-Stream
|
Press Play
|
||||||
</h1>
|
</h1>
|
||||||
<br>
|
<br>
|
||||||
<!-- <iframe id="embed_player" frameborder="0" width="280" height="216" src="https://senderfm.airtime.pro/embed/player?stream=s1&skin=1"></iframe> -->
|
<!-- <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="510px" height="396px" 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>
|
<br>
|
||||||
<h3 class="h3-headline">
|
<h3 class="h3-headline">
|
||||||
Sende-Wochenplan
|
Sendeplan
|
||||||
</h3>
|
</h3>
|
||||||
<iframe class="weekly-plan" height="802px" 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>
|
||||||
|
|||||||
@ -1,29 +1,15 @@
|
|||||||
<!-- this file is replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/locales/html/ -->
|
<!-- 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/ -->
|
<!-- 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">
|
|
||||||
sender.fm
|
|
||||||
</h1> -->
|
|
||||||
<!-- <img class="logo" alt="ocelot.social Header" src="/img/custom/logo-horizontal.svg" style="width: 360px;"><br> -->
|
|
||||||
<!-- <p class="paragraph">
|
|
||||||
Here sender.fm will be described in the future …
|
|
||||||
</p> -->
|
|
||||||
<!-- <p class="link">
|
|
||||||
<a href="/login" target="_blank">
|
|
||||||
Login …
|
|
||||||
</a><br>
|
|
||||||
</p>
|
|
||||||
<br> -->
|
|
||||||
<h1 class="h1-headline">
|
<h1 class="h1-headline">
|
||||||
Our Radio Stream
|
Press Play
|
||||||
</h1>
|
</h1>
|
||||||
<br>
|
<br>
|
||||||
<!-- <iframe id="embed_player" frameborder="0" width="280" height="216" src="https://senderfm.airtime.pro/embed/player?stream=s1&skin=1"></iframe> -->
|
<!-- <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="510px" height="396px" 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>
|
<br>
|
||||||
<h3 class="h3-headline">
|
<h3 class="h3-headline">
|
||||||
Radio Weekly Plan
|
Broadcast Schedule
|
||||||
</h3>
|
</h3>
|
||||||
<iframe class="weekly-plan" height="802px" 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>
|
||||||
|
|||||||
@ -8,9 +8,11 @@
|
|||||||
<ds-flex>
|
<ds-flex>
|
||||||
<ds-flex-item :width="{ base: '100%', sm: 1, md: 1 }">
|
<ds-flex-item :width="{ base: '100%', sm: 1, md: 1 }">
|
||||||
<ds-space>
|
<ds-space>
|
||||||
<a :href="links.ORGANIZATION" :title="$t('login.moreInfo', metadata)" target="_blank">
|
<!-- Wolle -->
|
||||||
|
<a v-if="!links.ORGANIZATION.isInternalPage" :href="links.ORGANIZATION.link" :title="$t('login.moreInfo', metadata)" target="_blank">
|
||||||
<img class="image" alt="Under maintenance" src="/img/custom/logo-squared.svg" />
|
<img class="image" alt="Under maintenance" src="/img/custom/logo-squared.svg" />
|
||||||
</a>
|
</a>
|
||||||
|
<img v-else class="image" alt="Under maintenance" src="/img/custom/logo-squared.svg" :title="$t('login.moreInfo', metadata)" />
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{ base: '100%', sm: 1, md: 1 }">
|
<ds-flex-item :width="{ base: '100%', sm: 1, md: 1 }">
|
||||||
@ -45,7 +47,7 @@ export default {
|
|||||||
LocaleSwitch,
|
LocaleSwitch,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return { links, metadata, supportEmail: emails.SUPPORT }
|
return { links, metadata, supportEmail: emails.SUPPORT_EMAIL }
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -14,5 +14,10 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return { links }
|
return { links }
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
|
if (!this.links.DONATE.isInternalPage) {
|
||||||
|
window.location.href = this.links.DONATE.externalLink
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -5,11 +5,9 @@
|
|||||||
<hashtags-filter :hashtag="hashtag" @clearSearch="clearSearch" />
|
<hashtags-filter :hashtag="hashtag" @clearSearch="clearSearch" />
|
||||||
</ds-grid-item>
|
</ds-grid-item>
|
||||||
<ds-grid-item :row-span="2" column-span="fullWidth" class="top-info-bar">
|
<ds-grid-item :row-span="2" column-span="fullWidth" class="top-info-bar">
|
||||||
<!--<donation-info /> -->
|
<!-- <donation-info /> -->
|
||||||
<div>
|
<div>
|
||||||
<a target="_blank" :href="links.DONATE">
|
<base-button filled @click="redirectToPage(links.DONATE)">{{ $t('donations.donate-now') }}</base-button>
|
||||||
<base-button filled>{{ $t('donations.donate-now') }}</base-button>
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="sorting-dropdown">
|
<div class="sorting-dropdown">
|
||||||
<ds-select
|
<ds-select
|
||||||
@ -172,6 +170,9 @@ export default {
|
|||||||
this.resetPostList()
|
this.resetPostList()
|
||||||
this.$apollo.queries.Post.refetch()
|
this.$apollo.queries.Post.refetch()
|
||||||
},
|
},
|
||||||
|
redirectToPage(pageParams) {
|
||||||
|
pageParams.redirectToPage(this)
|
||||||
|
},
|
||||||
},
|
},
|
||||||
apollo: {
|
apollo: {
|
||||||
Post: {
|
Post: {
|
||||||
|
|||||||
@ -2,9 +2,9 @@
|
|||||||
<ds-container width="small" class="password-reset">
|
<ds-container width="small" class="password-reset">
|
||||||
<base-card>
|
<base-card>
|
||||||
<template #imageColumn>
|
<template #imageColumn>
|
||||||
<a :href="links.ORGANIZATION" :title="$t('login.moreInfo', metadata)" target="_blank">
|
<page-params-link :pageParams="links.ORGANIZATION" :title="$t('login.moreInfo', metadata)">
|
||||||
<logo logoType="passwordReset" />
|
<logo logoType="passwordReset" />
|
||||||
</a>
|
</page-params-link>
|
||||||
</template>
|
</template>
|
||||||
<nuxt-child />
|
<nuxt-child />
|
||||||
<template #topMenu>
|
<template #topMenu>
|
||||||
@ -19,11 +19,13 @@ import links from '~/constants/links.js'
|
|||||||
import metadata from '~/constants/metadata.js'
|
import metadata from '~/constants/metadata.js'
|
||||||
import LocaleSwitch from '~/components/LocaleSwitch/LocaleSwitch'
|
import LocaleSwitch from '~/components/LocaleSwitch/LocaleSwitch'
|
||||||
import Logo from '~/components/Logo/Logo'
|
import Logo from '~/components/Logo/Logo'
|
||||||
|
import PageParamsLink from '~/components/_new/features/PageParamsLink/PageParamsLink.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
LocaleSwitch,
|
LocaleSwitch,
|
||||||
Logo,
|
Logo,
|
||||||
|
PageParamsLink,
|
||||||
},
|
},
|
||||||
layout: 'no-header',
|
layout: 'no-header',
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@ -80,7 +80,9 @@
|
|||||||
{{ $t('settings.blocked-users.explanation.commenting-disabled') }}
|
{{ $t('settings.blocked-users.explanation.commenting-disabled') }}
|
||||||
<br />
|
<br />
|
||||||
{{ $t('settings.blocked-users.explanation.commenting-explanation') }}
|
{{ $t('settings.blocked-users.explanation.commenting-explanation') }}
|
||||||
<a :href="links.FAQ" target="_blank">FAQ</a>
|
<page-params-link :pageParams="links.FAQ">
|
||||||
|
{{ $t('site.faq') }}
|
||||||
|
</page-params-link>
|
||||||
</ds-placeholder>
|
</ds-placeholder>
|
||||||
</ds-section>
|
</ds-section>
|
||||||
</base-card>
|
</base-card>
|
||||||
@ -95,6 +97,7 @@ import UserTeaser from '~/components/UserTeaser/UserTeaser'
|
|||||||
import HcShoutButton from '~/components/ShoutButton.vue'
|
import HcShoutButton from '~/components/ShoutButton.vue'
|
||||||
import CommentForm from '~/components/CommentForm/CommentForm'
|
import CommentForm from '~/components/CommentForm/CommentForm'
|
||||||
import CommentList from '~/components/CommentList/CommentList'
|
import CommentList from '~/components/CommentList/CommentList'
|
||||||
|
import PageParamsLink from '~/components/_new/features/PageParamsLink/PageParamsLink.vue'
|
||||||
import {
|
import {
|
||||||
postMenuModalsData,
|
postMenuModalsData,
|
||||||
deletePostMutation,
|
deletePostMutation,
|
||||||
@ -111,13 +114,14 @@ export default {
|
|||||||
mode: 'out-in',
|
mode: 'out-in',
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
HcHashtag,
|
|
||||||
UserTeaser,
|
|
||||||
HcShoutButton,
|
|
||||||
ContentMenu,
|
ContentMenu,
|
||||||
CommentForm,
|
CommentForm,
|
||||||
CommentList,
|
CommentList,
|
||||||
ContentViewer,
|
ContentViewer,
|
||||||
|
HcHashtag,
|
||||||
|
HcShoutButton,
|
||||||
|
PageParamsLink,
|
||||||
|
UserTeaser,
|
||||||
},
|
},
|
||||||
head() {
|
head() {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -60,7 +60,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
supportEmail: emails.SUPPORT,
|
supportEmail: emails.SUPPORT_EMAIL,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async asyncData(context) {
|
async asyncData(context) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user