From ba0644b850476236c9537d2373ef3fa8be670b58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Thu, 23 Jan 2025 11:03:44 +0100 Subject: [PATCH] Initialize branding --- backend/src/config/emails.ts | 8 +- backend/src/constants/groups.ts | 5 +- webapp/constants/emails.js | 8 +- webapp/constants/groups.js | 1 + webapp/constants/headerMenu.js | 18 ++-- webapp/constants/links.js | 55 ++++++------ webapp/locales/de.json | 6 ++ webapp/locales/en.json | 6 ++ webapp/locales/html/de/faq.html | 21 +++-- webapp/locales/html/en/faq.html | 21 +++-- webapp/static/favicon.ico | Bin 5558 -> 5558 bytes webapp/static/icon.png | Bin 19173 -> 8594 bytes webapp/static/img/custom/logo-horizontal.svg | 85 +++++++++--------- webapp/static/img/custom/logo-squared.svg | 87 +++++++++---------- 14 files changed, 170 insertions(+), 151 deletions(-) diff --git a/backend/src/config/emails.ts b/backend/src/config/emails.ts index 34daaecb0..7d03d01ab 100644 --- a/backend/src/config/emails.ts +++ b/backend/src/config/emails.ts @@ -1,8 +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', + SUPPORT_EMAIL: 'support@changemedia.at', + MODERATION_EMAIL: 'support@changemedia.at', // 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', + ORGANIZATION_LINK: 'https://changemedia.club', + SUPPORT_LINK: 'https://changemedia.club/impressum', } diff --git a/backend/src/constants/groups.ts b/backend/src/constants/groups.ts index 6300afa35..14089f4d4 100644 --- a/backend/src/constants/groups.ts +++ b/backend/src/constants/groups.ts @@ -1,3 +1,6 @@ -// this file is duplicated in `backend/src/constants/group` and `webapp/constants/group.js` +// this file is duplicated in `backend/src/constants/group.js` and `webapp/constants/group.js` +export const NAME_LENGTH_MIN = 3 +export const NAME_LENGTH_MAX = 50 export const DESCRIPTION_WITHOUT_HTML_LENGTH_MIN = 3 // with removed HTML tags export const DESCRIPTION_EXCERPT_HTML_LENGTH = 250 // with removed HTML tags +export const SHOW_GROUP_BUTTON_IN_HEADER = true diff --git a/webapp/constants/emails.js b/webapp/constants/emails.js index 34daaecb0..7d03d01ab 100644 --- a/webapp/constants/emails.js +++ b/webapp/constants/emails.js @@ -1,8 +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', + SUPPORT_EMAIL: 'support@changemedia.at', + MODERATION_EMAIL: 'support@changemedia.at', // 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', + ORGANIZATION_LINK: 'https://changemedia.club', + SUPPORT_LINK: 'https://changemedia.club/impressum', } diff --git a/webapp/constants/groups.js b/webapp/constants/groups.js index 029f492e0..14089f4d4 100644 --- a/webapp/constants/groups.js +++ b/webapp/constants/groups.js @@ -2,4 +2,5 @@ export const NAME_LENGTH_MIN = 3 export const NAME_LENGTH_MAX = 50 export const DESCRIPTION_WITHOUT_HTML_LENGTH_MIN = 3 // with removed HTML tags +export const DESCRIPTION_EXCERPT_HTML_LENGTH = 250 // with removed HTML tags export const SHOW_GROUP_BUTTON_IN_HEADER = true diff --git a/webapp/constants/headerMenu.js b/webapp/constants/headerMenu.js index aa87a598c..8ff29ea9b 100644 --- a/webapp/constants/headerMenu.js +++ b/webapp/constants/headerMenu.js @@ -1,13 +1,13 @@ export default { MENU: [ - // { - // nameIdent: 'nameIdent', - // path: '/', - // }, - // { - // nameIdent: 'nameIdent', - // url: 'https://ocelot.social', - // target: '_blank', - // }, + { + nameIdent: 'changemediaRebranding.header.newsFeed', + path: '/', + }, + { + nameIdent: 'changemediaRebranding.header.about', + url: 'https://changemedia.club', + // target: '_blank', + }, ], } diff --git a/webapp/constants/links.js b/webapp/constants/links.js index a252b98cd..893ad37b8 100644 --- a/webapp/constants/links.js +++ b/webapp/constants/links.js @@ -3,26 +3,26 @@ import { defaultPageParamsPages } from '~/components/utils/InternalPages.js' const ORGANIZATION = defaultPageParamsPages.ORGANIZATION.overwrite({ - // if defined it's dominating + // externalLink: null, // if string is defined and not empty it's dominating externalLink: { - url: 'https://ocelot.social', - target: '_blank', + url: 'https://changemedia.club', + target: '', }, internalPage: { // footerIdent: 'site.made', // localized string identifier, if undefined default is used // headTitleIdent: 'site.made', // localized string identifier, if undefined 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, if undefined default is used hasContainer: true, hasBaseCard: true, hasLoginInHeader: true, - // in case internal page content is here 'webapp/locales/html/' + // in case internal page content is here 'branding/locales/html/' }, }) const DONATE = defaultPageParamsPages.DONATE.overwrite({ - // if defined it's dominating + // externalLink: null, // if string is defined and not empty it's dominating externalLink: { - url: 'https://busfaktor.org/en/spenden', + url: 'https://ko-fi.com/changemedia', target: '_blank', }, @@ -33,13 +33,14 @@ const DONATE = defaultPageParamsPages.DONATE.overwrite({ hasContainer: true, hasBaseCard: true, hasLoginInHeader: true, - // in case internal page content is here 'webapp/locales/html/' + // in case internal page content is here 'branding/locales/html/' }, }) const IMPRINT = defaultPageParamsPages.IMPRINT.overwrite({ + // externalLink: null, // if string is defined and not empty it's dominating externalLink: { - url: 'http://ocelot.social/en/impressum', - target: '_blank', + url: 'https://changemedia.club/impressum', + target: '', }, internalPage: { @@ -49,11 +50,11 @@ const IMPRINT = defaultPageParamsPages.IMPRINT.overwrite({ hasContainer: true, hasBaseCard: true, hasLoginInHeader: true, - // in case internal page content is here 'webapp/locales/html/' + // in case internal page content is here 'branding/locales/html/' }, }) const TERMS_AND_CONDITIONS = defaultPageParamsPages.TERMS_AND_CONDITIONS.overwrite({ - // externalLink: null, // if defined it's dominating + // externalLink: null, // if string is defined and not empty it's dominating internalPage: { // footerIdent: 'site.termsAndConditions', // localized string identifier, if undefined default is used @@ -62,11 +63,11 @@ const TERMS_AND_CONDITIONS = defaultPageParamsPages.TERMS_AND_CONDITIONS.overwri hasContainer: true, hasBaseCard: true, hasLoginInHeader: true, - // in case internal page content is here 'webapp/locales/html/' + // in case internal page content is here 'branding/locales/html/' }, }) const CODE_OF_CONDUCT = defaultPageParamsPages.CODE_OF_CONDUCT.overwrite({ - // externalLink: null, // if defined it's dominating + // externalLink: null, // if string is defined and not empty it's dominating internalPage: { // footerIdent: 'site.code-of-conduct', // localized string identifier, if undefined default is used @@ -75,11 +76,11 @@ const CODE_OF_CONDUCT = defaultPageParamsPages.CODE_OF_CONDUCT.overwrite({ hasContainer: true, hasBaseCard: true, hasLoginInHeader: true, - // in case internal page content is here 'webapp/locales/html/' + // in case internal page content is here 'branding/locales/html/' }, }) const DATA_PRIVACY = defaultPageParamsPages.DATA_PRIVACY.overwrite({ - // externalLink: null, // if defined it's dominating + // externalLink: null, // if string is defined and not empty it's dominating internalPage: { // footerIdent: 'site.data-privacy', // localized string identifier, if undefined default is used @@ -88,11 +89,11 @@ const DATA_PRIVACY = defaultPageParamsPages.DATA_PRIVACY.overwrite({ hasContainer: true, hasBaseCard: true, hasLoginInHeader: true, - // in case internal page content is here 'webapp/locales/html/' + // in case internal page content is here 'branding/locales/html/' }, }) const FAQ = defaultPageParamsPages.FAQ.overwrite({ - // externalLink: null, // if defined it's dominating + // externalLink: null, // if string is defined and not empty it's dominating internalPage: { // footerIdent: 'site.faq', // localized string identifier, if undefined default is used @@ -101,14 +102,14 @@ const FAQ = defaultPageParamsPages.FAQ.overwrite({ hasContainer: true, hasBaseCard: true, hasLoginInHeader: true, - // in case internal page content is here 'webapp/locales/html/' + // in case internal page content is here 'branding/locales/html/' }, }) const SUPPORT = defaultPageParamsPages.SUPPORT.overwrite({ - // if defined it's dominating + // externalLink: null, // if string is defined and not empty it's dominating externalLink: { - url: 'https://ocelot.social', - target: '_blank', + url: 'https://changemedia.club/impressum', + target: '', }, internalPage: { @@ -118,7 +119,7 @@ const SUPPORT = defaultPageParamsPages.SUPPORT.overwrite({ hasContainer: true, hasBaseCard: true, hasLoginInHeader: true, - // in case internal page content is here 'webapp/locales/html/' + // in case internal page content is here 'branding/locales/html/' }, }) @@ -138,12 +139,12 @@ export default { FOOTER_LINK_LIST: [ ORGANIZATION, - TERMS_AND_CONDITIONS, - CODE_OF_CONDUCT, - DATA_PRIVACY, + // TERMS_AND_CONDITIONS, + // CODE_OF_CONDUCT, + // DATA_PRIVACY, FAQ, DONATE, - SUPPORT, IMPRINT, + SUPPORT, ], } diff --git a/webapp/locales/de.json b/webapp/locales/de.json index 4e5d42ac4..37b7fd5f6 100644 --- a/webapp/locales/de.json +++ b/webapp/locales/de.json @@ -78,6 +78,12 @@ } } }, + "changemediaRebranding": { + "header": { + "about": "Club", + "newsFeed": "Beiträge" + } + }, "chat": { "addRoomHeadline": "Suche Nutzer für neuen Chat", "cancelSelectMessage": "Abbrechen", diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 534a376cf..a4751353d 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -78,6 +78,12 @@ } } }, + "changemediaRebranding": { + "header": { + "about": "Club", + "newsFeed": "News Feed" + } + }, "chat": { "addRoomHeadline": "Search User for new Chat", "cancelSelectMessage": "Cancel", diff --git a/webapp/locales/html/de/faq.html b/webapp/locales/html/de/faq.html index aab0205a1..ef8a70a10 100644 --- a/webapp/locales/html/de/faq.html +++ b/webapp/locales/html/de/faq.html @@ -3,24 +3,29 @@

- Für das soziale Netzwerk Ocelot.Social für Entwickler + Wie bediene ich unser Netzwerk?

-

+

Hier findest Du die - Bedienungsanleitung.
+ Bedienungsanleitung.

-

+

+ \ No newline at end of file diff --git a/webapp/locales/html/en/faq.html b/webapp/locales/html/en/faq.html index 1356622aa..b0e848192 100644 --- a/webapp/locales/html/en/faq.html +++ b/webapp/locales/html/en/faq.html @@ -3,24 +3,29 @@

- For the social network Ocelot.Social for Developers + How do I operate our network?

-

+

Here you can find the - user manual.
+ user manual.

-

+

+ \ No newline at end of file diff --git a/webapp/static/favicon.ico b/webapp/static/favicon.ico index b535a3db8c4f259b421d370c3b319d43ed2130b7..ca86154c0f063e2b56d8f0b3025e726b4d925727 100644 GIT binary patch literal 5558 zcmeHLX-ri|6uxb2|C9!sm{3a3=(#QH(WZw}ft01y|opUJuAk~DFA8q<3xo_^=IWuSGJKw$U zJ0nTYNzY6A`jV*iCF55l$xxD{ty@>yZd)YjQ}N7LJQF6;L2;2C7h$u$KvOgbXb{jK zph4iN2#k%5VS0L+`-g@GF)%QIs;VmV_V%K#t`6<(?O0x3=5~L7Kil>6^zgH%PP%~( zrBZ>57cM{^7l$7L198UB4^B=_NJ~qDgM&SMe7;9~yd1$nL2!3-gR`?UPM-W`)BG0} z7Q)KX0!NP=fxZ3b2ng^OKE6V3ZY~1PokLbuCcHd75gK|C`T6<6))J+qB^%h`vrW~F zjbeZC7#bQvOms99>FMwj7!(u~z}LqIA;H0DZf-_;dKw--evI=WAy`;gc=n|Kvfjzb zNi;PzVQOlMS4RAqo15c%;v4aAe0&`A{NBBLTvMC&NjxNMR#sNHe)Q-O1_uW)KR?go z$H&JoF)@MJ*;(c;ag?sL{_N~*7#hBbT?Pg)HZnq4SsC11U4@@k9)IeTFG@;&L1tzq zwr_tGzP>(OQ=9m&t*wouq$IJHd06kZ68E>U+sYCTA3ns5>(`;HtIIJ;ymbpYIyx{l zF@~9`3DoLFjE;^%Z|4rg#>Vjeii(POZyz5zgocKC_Wy;WBa{jSW@ct!Zf1%L=g*7U zjOTA{ZH1?Y2bPwWnD5_tdxPe9O{}w}r3HO`eZ20jt}a}@dl)3Qp1ftE;QA zbI0pXupozopT3?R?%u6p|F$;oAzJW`N=QgBgoa{{QMRT3L13pwhEj>Vyj=EAaiBfF_`(*{)TnqpH>09pXJ?1-urTJ*rO;5` zze=SN*fwBsagpsZGL#&9TCb6zp@@Ge_E=jZBH{{ia&oYDuMBc|96tK+1Gu`lAYLwq zi;FYfKX?G;<>j!jFcMNIwr$%u_QaEJ z5tFqtHueWE#GPVJ z?+|fdWMqW-(%s#S&dyHm`>%Z?7!1vi1_2EM8U!{8f%WGB|F<@slhCnyTE5Q*jXf?_YH07Tmu>O0n(e|H628nn8 literal 5558 zcmeHLc~F$+8UOZV?}NQpj%9&miQoZ2KoJxH6%Z6}$Ail&DxwmMQ9wkDS0ruIWa^}i zO>=aNGfne{b=qi~w3#*?8+F>;X;Q0+F(e+b$=G%>zdp~qEH1d9v8I3Zoq1-z{odz& z?(6*|NhZl9pHHG+pA@u8Qb3X?I(`(gN8td!P($b2hwRKolSBFiT zTCu#b5w!O;@h|$8WQZfW$715LVNA?{QZ8X!au#w^?u9~HhHKU5|Uu5 zJ_v8e7earIL-qs5oae!dA}+lhS7Dy}3`Qg*W81cNah7Q?Eu#58@ps>b40ZYWAvk57F zKki8hAh1abM}Y=u%_i7#B$&z$g#6y;1C9f8)st`*NC>Po!Z9HRsq3{!OY|c>m=3*8 zgVK`HaK5Y^hJTsLok{h}E%Mh?{R8N;8(~PX!W58TPM4rb84uTncSO8}^=DtW@BbTg zqbgwvN-(BM(EF`aGgiPn=P4*D7v*{f)Nwg1L(?$)gE2`(*X@nRMSbJgX0X@)nsnX^ zbH!t@Ejt>D|3UG`Ibg4UiG1@U;XNwOgwJ!nI##?4O|X*rR}8~HN#)J@Qp7ja*na)! zc|_+|h+Xg;>5@VHOE+W-#{khcjBkQmV}`5wje-6l9F7r7MGw^`#R=j=)6z|= zQe{3I(K{gEgiE4D84ca64x0y=2Zo&T& zV&^>#xi;sN7 z*0*1GibtlYFnS2@y}tMxLVv22+L1LJ1D$=$X?&BOF;3bNHD;KHcPqtK?Jq=cx6V04 zwaE*2%U^{IoC_R#Dpv+fr8{A*c|zoAv>qjBZKGN_eJ>=r;%VY5CkQGX>Hl(5>?L@P;4s0FzUPPNcZMWW9=B9~fA|<^ zyDVlG!k?CKf>(*lt-j!CIwdon{u(#tH_1WjCC(~VoW+O3Q(l-(7Y`PoKp11Q$m@9ieqw`^Z z%C#A@4)Zq*?z7(ZP;Iv@eNpspp4S{S_nS&OMco&@m}XwxsCmbThLYtlm33XXQKLT< z_igjkU48s{201{p=L;cvJU39^G?#T>rL){SQtA0h|Ljclo&BvFvsm;9qrM*K*)a?hQijfa;>FDlTvzE6PR|GX0rn{AATfe zBf=4L^L?+;yb`xqQff-XT+Fi>(J+^Got3o4e3EP6Qfej|C%2vBe$2YsYmY*TF_#jO zUYA{e(z*6eFicqgI{hCx@Zf-dnfm-Sr<`j}(zlpZC;4pOZZdtBSwheD0oc+1*cEyw M<0ePn{$_9g14$7TjsO4v diff --git a/webapp/static/icon.png b/webapp/static/icon.png index eca54133226e089f7f8ac6d4344fdd39f2012094..9128d4326e3f97a8d6f7c7695611ee66411d520f 100644 GIT binary patch delta 7353 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 delta 18029 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 - - - - - - + + + - - - - - - - + + - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + diff --git a/webapp/static/img/custom/logo-squared.svg b/webapp/static/img/custom/logo-squared.svg index 2a926f0a9..f6caf67d4 100644 --- a/webapp/static/img/custom/logo-squared.svg +++ b/webapp/static/img/custom/logo-squared.svg @@ -1,65 +1,60 @@ - - - - - - - - - - - - - - - - + + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + +