diff --git a/backend/src/config/links.js b/backend/src/config/links.js index b111726f3..07b97aa60 100644 --- a/backend/src/config/links.js +++ b/backend/src/config/links.js @@ -1,6 +1,7 @@ // 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 { - LANDING_PAGE: '/login', // examples: '/login', '/registration', '/organization', or external 'https://ocelot.social' + // 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/ diff --git a/webapp/constants/links.js b/webapp/constants/links.js index b111726f3..aa96fc2f3 100644 --- a/webapp/constants/links.js +++ b/webapp/constants/links.js @@ -1,17 +1,135 @@ // 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 { - LANDING_PAGE: '/login', // 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/ +const ORGANIZATION = { + name: 'organization', + + // Wolle externalLink: 'https://ocelot.social', + 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: { + 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, + hasLoginInHeader: true, + }, +} +const DONATE = { + name: 'donate', + + // 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 + externalLink: '', // 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: { + footerIdent: 'site.donate', // localized string identifier + headlineIdent: null, // localized string identifier. on null default is used, on empty string it's hidden + hasBaseCard: true, + hasLoginInHeader: true, + }, +} +const IMPRINT = { + name: 'imprint', + + // 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 + externalLink: '', // 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: { + footerIdent: 'site.imprint', // localized string identifier + headlineIdent: null, // localized string identifier. on null default is used, on empty string it's hidden + hasBaseCard: true, + hasLoginInHeader: true, + }, +} +const TERMS_AND_CONDITIONS = { + name: 'terms-and-conditions', + + 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: { + footerIdent: 'site.termsAndConditions', // localized string identifier + headlineIdent: null, // localized string identifier. on null default is used, on empty string it's hidden + hasBaseCard: true, + hasLoginInHeader: true, + }, +} +const CODE_OF_CONDUCT = { + name: 'code-of-conduct', + + 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: { + footerIdent: 'site.code-of-conduct', // localized string identifier + headlineIdent: null, // localized string identifier. on null default is used, on empty string it's hidden + hasBaseCard: true, + hasLoginInHeader: true, + }, +} +const DATA_PRIVACY = { + name: 'data-privacy', + + 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: { + footerIdent: 'site.data-privacy', // localized string identifier + headlineIdent: null, // localized string identifier. on null default is used, on empty string it's hidden + hasBaseCard: true, + hasLoginInHeader: true, + }, +} +const FAQ = { + name: 'faq', + + // Wolle externalLink: 'https://ocelot.social', + 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: { + footerIdent: '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 + hasBaseCard: true, + hasLoginInHeader: true, + }, +} + +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 for 👇🏼 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', + ORGANIZATION, + DONATE, + IMPRINT, + TERMS_AND_CONDITIONS, + CODE_OF_CONDUCT, + DATA_PRIVACY, + FAQ, + + FOOTER_LINK_LIST: [ + ORGANIZATION, + TERMS_AND_CONDITIONS, + CODE_OF_CONDUCT, + DATA_PRIVACY, + FAQ, + // DONATE, + // Wolle + DONATE, + IMPRINT, + ], } diff --git a/webapp/locales/de.json b/webapp/locales/de.json index de8e98888..aa63d455a 100644 --- a/webapp/locales/de.json +++ b/webapp/locales/de.json @@ -781,6 +781,7 @@ "contact": "Kontakt", "data-privacy": "Datenschutzerklärung", "director": "Geschäftsführer", + "donate": "Spenden", "error-occurred": "Ein Fehler ist aufgetreten.", "faq": "FAQ", "germany": "Deutschland", diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 0ad660272..06086f04d 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -781,6 +781,7 @@ "contact": "Contact", "data-privacy": "Data privacy", "director": "Managing Director", + "donate": "Donate", "error-occurred": "An error occurred.", "faq": "FAQ", "germany": "Germany", diff --git a/webapp/locales/html/de/donate.html b/webapp/locales/html/de/donate.html new file mode 100644 index 000000000..773c5db32 --- /dev/null +++ b/webapp/locales/html/de/donate.html @@ -0,0 +1,5 @@ + + + +
+

Hier steht was zu den Spenden.

diff --git a/webapp/locales/html/de/index.js b/webapp/locales/html/de/index.js index 4daae480e..341ab9bdd 100644 --- a/webapp/locales/html/de/index.js +++ b/webapp/locales/html/de/index.js @@ -5,6 +5,7 @@ import codeOfConduct from './code-of-conduct.html' import dataPrivacy from './data-privacy.html' import faq from './faq.html' import imprint from './imprint.html' +import donate from './donate.html' export default { organization, @@ -14,4 +15,5 @@ export default { dataPrivacy, faq, imprint, + donate, } diff --git a/webapp/locales/html/en/donate.html b/webapp/locales/html/en/donate.html new file mode 100644 index 000000000..c82001587 --- /dev/null +++ b/webapp/locales/html/en/donate.html @@ -0,0 +1,5 @@ + + + +
+

Here's what it says about donations.

diff --git a/webapp/locales/html/en/index.js b/webapp/locales/html/en/index.js index 4daae480e..341ab9bdd 100644 --- a/webapp/locales/html/en/index.js +++ b/webapp/locales/html/en/index.js @@ -5,6 +5,7 @@ import codeOfConduct from './code-of-conduct.html' import dataPrivacy from './data-privacy.html' import faq from './faq.html' import imprint from './imprint.html' +import donate from './donate.html' export default { organization, @@ -14,4 +15,5 @@ export default { dataPrivacy, faq, imprint, + donate, } diff --git a/webapp/nuxt.config.js b/webapp/nuxt.config.js index 08eb66989..b4fc3aa7c 100644 --- a/webapp/nuxt.config.js +++ b/webapp/nuxt.config.js @@ -45,6 +45,7 @@ export default { 'imprint', 'data-privacy', 'faq', + 'donate', ], // pages to keep alive keepAlivePages: ['index'], diff --git a/webapp/pages/donate.spec.js b/webapp/pages/donate.spec.js new file mode 100644 index 000000000..2fae9d67a --- /dev/null +++ b/webapp/pages/donate.spec.js @@ -0,0 +1,38 @@ +import { mount } from '@vue/test-utils' +import Donate from './donate.vue' +import VueMeta from 'vue-meta' + +const localVue = global.localVue +localVue.use(VueMeta, { keyName: 'head' }) + +describe('donate.vue', () => { + let wrapper + let mocks + + beforeEach(() => { + mocks = { + $t: (t) => t, + } + }) + + describe('mount', () => { + const Wrapper = () => { + return mount(Donate, { + mocks, + localVue, + }) + } + + beforeEach(() => { + wrapper = Wrapper() + }) + + it('renders', () => { + expect(wrapper.is('div')).toBe(true) + }) + + it('has correct content', () => { + expect(wrapper.vm.$metaInfo.title).toBe('site.donate') + }) + }) +}) diff --git a/webapp/pages/donate.vue b/webapp/pages/donate.vue new file mode 100644 index 000000000..a3e25bb46 --- /dev/null +++ b/webapp/pages/donate.vue @@ -0,0 +1,21 @@ + + +