Merge branch 'master' into 5344-add-group-members-management

This commit is contained in:
ogerly 2022-09-23 10:47:08 +02:00
commit beebcdbee7
26 changed files with 222 additions and 49 deletions

View File

@ -4,11 +4,50 @@ All notable changes to this project will be documented in this file. Dates are d
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
#### [1.1.0](https://github.com/Ocelot-Social-Community/Ocelot-Social/compare/1.0.8...1.1.0) #### [1.1.1](https://github.com/Ocelot-Social-Community/Ocelot-Social/compare/1.1.0...1.1.1)
- chore: 🍰 Refactor Rebranding [`#5390`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5390)
- feat: 🍰 Tooltips For Topics [`#5350`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5350)
- feat: 🍰 Save Categories In Frontend [`#5284`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5284)
- feat: 🍰 Add New Yunite Icons [`#5319`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5319)
- chore: 🍰 Update Neode From v^0.4.7 To v^0.4.8 In Backend [`#5334`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5334)
- fix: Category Filter Menu Client Only [`#5301`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5301)
- feat: Save Category Settings [`#5261`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5261)
- feat: Topics Menu [`#5248`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5248)
- docs: 🍰 Document GraqhQL Playground [`#5253`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5253)
- feat: Categories Filter Menu [`#5198`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5198)
- fix: 🍰 Fix Test Description From `enter-nonce.vue` To `change-password` [`#5217`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5217)
- Bump cookie-universal-nuxt from 2.1.5 to 2.2.2 in /webapp [`#5218`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5218)
- Bump prettier from 2.2.1 to 2.7.1 in /webapp [`#5170`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5170)
- Bump eslint-plugin-prettier from 3.1.2 to 3.4.1 in /backend [`#5211`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5211)
- Bump slug from 4.0.2 to 6.0.0 in /backend [`#5193`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5193)
- chore: 🍰 Fix typo in PULL_REQUEST_TEMPLATE.md file [`#5208`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5208)
- Bump slug from 5.1.0 to 6.0.0 [`#5191`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5191)
- Bump vue-sweetalert-icons from 4.3.0 to 4.3.1 in /webapp [`#5174`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5174)
- feat: 🍰 Change Error Message With `Authorised` To `Authorized` All Over The Place To Have American English [`#5206`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5206)
- Bump cross-env from 7.0.2 to 7.0.3 in /webapp [`#5168`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5168)
- chore: 🍰 Add `--logHeapUsage` To Jest Test Call [`#5182`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5182)
- refactor: 🍰 Rename `UserGroup` To `UserRole` [`#5143`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5143)
- add new yunite icons [`bb0d632`](https://github.com/Ocelot-Social-Community/Ocelot-Social/commit/bb0d6329e7e36ea03671318ea8dd128a6d5a5a7a)
- cleanup refactor rebranding [`5f5c0fa`](https://github.com/Ocelot-Social-Community/Ocelot-Social/commit/5f5c0faa1f28cd4df7681eba335ae5998b2d9cca)
- change color and scss in branding [`52070b8`](https://github.com/Ocelot-Social-Community/Ocelot-Social/commit/52070b8c570970bf48df561134bf67cb4111b640)
#### [1.1.0](https://github.com/Ocelot-Social-Community/Ocelot-Social/compare/1.0.9...1.1.0)
> 4 August 2022
- chore: 🍰 Release v1.1.0 - Implement Categories Again [`#5145`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5145)
- feat: Make Categories Optional [`#5102`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5102) - feat: Make Categories Optional [`#5102`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5102)
- Update issue templates [`#5101`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5101) - Update issue templates [`#5101`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5101)
- chore: 🍰 Betters Automatic Deployment To `stage.ocelot.social` On Push To `master` Branch [`#5097`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5097) - chore: 🍰 Betters Automatic Deployment To `stage.ocelot.social` On Push To `master` Branch [`#5097`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5097)
- add optional categories to teaser and post [`bc95500`](https://github.com/Ocelot-Social-Community/Ocelot-Social/commit/bc955003f7c33aabe592bee782aca973b4f00cba)
- env vatiable for CATEGORIES_ACTIVE and switch for categories in contribution form [`e31f250`](https://github.com/Ocelot-Social-Community/Ocelot-Social/commit/e31f250ea5e1949f4f08e72fe82622d41ecd85f1)
- fix some tests [`5393c2a`](https://github.com/Ocelot-Social-Community/Ocelot-Social/commit/5393c2aeaaf070a637390c430d5f03057030ff52)
#### [1.0.9](https://github.com/Ocelot-Social-Community/Ocelot-Social/compare/1.0.8...1.0.9)
> 20 July 2022
- chore: 🍰 Release v1.0.9 [`#5095`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5095) - chore: 🍰 Release v1.0.9 [`#5095`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5095)
- chore: 🍰 Automatic Deployment To `stage.ocelot.social` On Push To `master` Branch [`#5080`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5080) - chore: 🍰 Automatic Deployment To `stage.ocelot.social` On Push To `master` Branch [`#5080`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5080)
- change footer version-link [`#5091`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5091) - change footer version-link [`#5091`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/5091)

View File

@ -1,6 +1,6 @@
{ {
"name": "ocelot-social-backend", "name": "ocelot-social-backend",
"version": "1.1.0", "version": "1.1.1",
"description": "GraphQL Backend for ocelot.social", "description": "GraphQL Backend for ocelot.social",
"repository": "https://github.com/Ocelot-Social-Community/Ocelot-Social", "repository": "https://github.com/Ocelot-Social-Community/Ocelot-Social",
"author": "ocelot.social Community", "author": "ocelot.social Community",

View File

@ -121,7 +121,7 @@ describe('Location Service', () => {
const result = await query({ query: queryLocations, variables }) const result = await query({ query: queryLocations, variables })
expect(result.data.queryLocations).toEqual( expect(result.data.queryLocations).toEqual(
expect.arrayContaining([ expect.arrayContaining([
{ id: 'place.14094307404564380', place_name: 'Berlin, Germany' }, { id: expect.stringMatching(/^place\.[0-9]+$/), place_name: 'Berlin, Germany' },
{ {
id: expect.stringMatching(/^place\.[0-9]+$/), id: expect.stringMatching(/^place\.[0-9]+$/),
place_name: 'Berlin, Maryland, United States', place_name: 'Berlin, Maryland, United States',

View File

@ -1,6 +1,6 @@
{ {
"name": "ocelot-social", "name": "ocelot-social",
"version": "1.1.0", "version": "1.1.1",
"description": "Free and open source software program code available to run social networks.", "description": "Free and open source software program code available to run social networks.",
"author": "ocelot.social Community", "author": "ocelot.social Community",
"license": "MIT", "license": "MIT",

View File

@ -357,3 +357,22 @@ $media-query-x-large: (min-width: 1200px);
/** /**
* @tokens Background Images * @tokens Background Images
*/ */
/**
* @tokens Header Color
*/
$color-header-background: $color-neutral-100;
/**
* @tokens Footer Color
*/
$color-footer-background: $color-neutral-100;
$color-footer-link: $color-primary;
/**
* @tokens Locale Menu Color
*/
$color-locale-menu: $text-color-soft;

View File

@ -0,0 +1,5 @@
/*
*
* Here, all SCSS variables and classes can be adapted to your custom design.
*
*/

View File

@ -179,4 +179,4 @@ hr {
.dropdown-arrow { .dropdown-arrow {
font-size: $font-size-xx-small; font-size: $font-size-xx-small;
} }

View File

@ -9,6 +9,11 @@
:disabled="isDisabled(category.id)" :disabled="isDisabled(category.id)"
:icon="category.icon" :icon="category.icon"
size="small" size="small"
v-tooltip="{
content: $t(`contribution.category.description.${category.slug}`),
placement: 'bottom-start',
delay: { show: 1500 },
}"
> >
{{ $t(`contribution.category.name.${category.slug}`) }} {{ $t(`contribution.category.name.${category.slug}`) }}
</base-button> </base-button>

View File

@ -8,7 +8,7 @@
:offset="offset" :offset="offset"
> >
<slot :toggleMenu="toggleMenu" :openMenu="openMenu" :closeMenu="closeMenu" :isOpen="isOpen" /> <slot :toggleMenu="toggleMenu" :openMenu="openMenu" :closeMenu="closeMenu" :isOpen="isOpen" />
<div slot="popover" @mouseover="popoverMouseEnter" @mouseleave="popoveMouseLeave"> <div slot="popover" @mouseover="popoverMouseEnter" @mouseleave="popoverMouseLeave">
<slot <slot
name="popover" name="popover"
:toggleMenu="toggleMenu" :toggleMenu="toggleMenu"
@ -97,7 +97,7 @@ export default {
} }
this.clearTimeouts() this.clearTimeouts()
if (useTimeout === true) { if (useTimeout === true) {
this.popoveMouseLeave() this.popoverMouseLeave()
} else { } else {
this.isPopoverOpen = false this.isPopoverOpen = false
} }
@ -113,7 +113,7 @@ export default {
}, 500) }, 500)
} }
}, },
popoveMouseLeave() { popoverMouseLeave() {
if (this.developerNoAutoClosing) return if (this.developerNoAutoClosing) return
if (this.disabled) { if (this.disabled) {
return return

View File

@ -17,6 +17,11 @@
:filled="filteredCategoryIds.includes(category.id)" :filled="filteredCategoryIds.includes(category.id)"
:label="$t(`contribution.category.name.${category.slug}`)" :label="$t(`contribution.category.name.${category.slug}`)"
@click="toggleCategory(category.id)" @click="toggleCategory(category.id)"
v-tooltip="{
content: $t(`contribution.category.description.${category.slug}`),
placement: 'bottom-start',
delay: { show: 1500 },
}"
/> />
</li> </li>
</template> </template>

View File

@ -1,14 +1,8 @@
<template> <template>
<dropdown ref="category-menu" placement="top-start" :offset="8" class="category-menu"> <dropdown ref="category-menu" placement="top-start" :offset="8" class="category-menu">
<base-button <a href="#" slot="default" slot-scope="{ toggleMenu }" @click.prevent="toggleMenu()">
slot="default" <ds-text bold size="large">{{ $t('admin.categories.name') }}</ds-text>
:filled="filterActive" </a>
:ghost="!filterActive"
slot-scope="{ toggleMenu }"
@click.prevent="toggleMenu()"
>
<ds-text uppercase>{{ $t('admin.categories.name') }}</ds-text>
</base-button>
<template slot="popover"> <template slot="popover">
<div class="category-menu-options"> <div class="category-menu-options">
<h2 class="title">{{ $t('filter-menu.filter-by') }}</h2> <h2 class="title">{{ $t('filter-menu.filter-by') }}</h2>
@ -40,6 +34,7 @@ export default {
}, },
computed: { computed: {
...mapGetters({ ...mapGetters({
// TODO: implement visibility of active filter later on
filterActive: 'posts/isActive', filterActive: 'posts/isActive',
}), }),
}, },

View File

@ -117,7 +117,7 @@ export default {
align-items: center; align-items: center;
height: 100%; height: 100%;
padding: $space-xx-small; padding: $space-xx-small;
color: $text-color-soft; color: $color-locale-menu;
> .label { > .label {
margin: 0 $space-xx-small; margin: 0 $space-xx-small;

View File

@ -59,7 +59,11 @@ export default {
}, },
data() { data() {
const logosObject = { const logosObject = {
header: { path: logos.LOGO_HEADER_PATH, alt: 'Header', widthDefault: '130px' }, header: {
path: logos.LOGO_HEADER_PATH,
alt: 'Header',
widthDefault: logos.LOGO_HEADER_WIDTH,
},
welcome: { path: logos.LOGO_WELCOME_PATH, alt: 'Welcome', widthDefault: '200px' }, welcome: { path: logos.LOGO_WELCOME_PATH, alt: 'Welcome', widthDefault: '200px' },
signup: { path: logos.LOGO_SIGNUP_PATH, alt: 'Sign Up', widthDefault: '200px' }, signup: { path: logos.LOGO_SIGNUP_PATH, alt: 'Sign Up', widthDefault: '200px' },
logout: { path: logos.LOGO_LOGOUT_PATH, alt: 'Logging Out', widthDefault: '200px' }, logout: { path: logos.LOGO_LOGOUT_PATH, alt: 'Logging Out', widthDefault: '200px' },
@ -107,7 +111,6 @@ export default {
} }
.ds-logo-svg { .ds-logo-svg {
width: 130px;
height: auto; height: auto;
fill: #000000; fill: #000000;
} }

View File

@ -8,10 +8,4 @@
.ds-logo-inverse { .ds-logo-inverse {
color: $text-color-primary-inverse; color: $text-color-primary-inverse;
}
.ds-logo-svg {
width: 130px;
height: auto;
fill: currentColor;
} }

View File

@ -38,11 +38,14 @@ export default {
position: fixed; position: fixed;
bottom: 0px; bottom: 0px;
z-index: 10; z-index: 10;
background-color: white; background-color: $color-footer-background;
width: 100%; width: 100%;
padding: 10px 10px; padding: 10px 10px;
box-shadow: 0px -6px 12px -4px rgba(0, 0, 0, 0.1); box-shadow: 0px -6px 12px -4px rgba(0, 0, 0, 0.1);
} }
.ds-footer a {
color: $color-footer-link;
}
.division-line { .division-line {
margin-left: 0.2rem; margin-left: 0.2rem;
margin-right: 0.2rem; margin-right: 0.2rem;

View File

@ -33,7 +33,7 @@
v-tooltip="{ v-tooltip="{
content: $t(`contribution.category.name.${category.slug}`), content: $t(`contribution.category.name.${category.slug}`),
placement: 'bottom-start', placement: 'bottom-start',
delay: { show: 500 }, delay: { show: 1500 },
}" }"
:icon="category.icon" :icon="category.icon"
/> />

View File

@ -0,0 +1,13 @@
export default {
MENU: [
// {
// name: 'Beiträge',
// path: '/#',
// },
// {
// name: 'Über Yunite',
// path: '/#',
// url: 'https://yunite.org',
// },
],
}

View File

@ -2,6 +2,7 @@
// this are the paths in the webapp // this are the paths in the webapp
export default { export default {
LOGO_HEADER_PATH: '/img/custom/logo-horizontal.svg', LOGO_HEADER_PATH: '/img/custom/logo-horizontal.svg',
LOGO_HEADER_WIDTH: '130px',
LOGO_SIGNUP_PATH: '/img/custom/logo-squared.svg', LOGO_SIGNUP_PATH: '/img/custom/logo-squared.svg',
LOGO_WELCOME_PATH: '/img/custom/logo-squared.svg', LOGO_WELCOME_PATH: '/img/custom/logo-squared.svg',
LOGO_LOGOUT_PATH: '/img/custom/logo-squared.svg', LOGO_LOGOUT_PATH: '/img/custom/logo-squared.svg',

View File

@ -4,11 +4,39 @@
<ds-container class="main-navigation-container" style="padding: 10px 10px"> <ds-container class="main-navigation-container" style="padding: 10px 10px">
<div> <div>
<ds-flex class="main-navigation-flex"> <ds-flex class="main-navigation-flex">
<ds-flex-item :width="{ base: '142px' }"> <ds-flex-item :width="{ base: LOGOS.LOGO_HEADER_WIDTH }" style="margin-right: 20px">
<nuxt-link :to="{ name: 'index' }" v-scroll-to="'.main-navigation'"> <nuxt-link :to="{ name: 'index' }" v-scroll-to="'.main-navigation'">
<logo logoType="header" /> <logo logoType="header" />
</nuxt-link> </nuxt-link>
</ds-flex-item> </ds-flex-item>
<ds-flex-item
v-for="item in menu"
:key="item.name"
:class="{ 'hide-mobile-menu': !toggleMobileMenu }"
:width="{ base: 'auto' }"
style="margin-right: 20px"
>
<a v-if="item.url" :href="item.url" target="_blank">
<ds-text size="large" bold>
{{ item.name }}
</ds-text>
</a>
<nuxt-link v-else :to="item.path">
<ds-text size="large" bold>
{{ item.name }}
</ds-text>
</nuxt-link>
</ds-flex-item>
<ds-flex-item
v-if="categoriesActive && isLoggedIn"
:class="{ 'hide-mobile-menu': !toggleMobileMenu }"
style="flex-grow: 0; flex-basis: auto; margin-right: 20px"
>
<client-only>
<categories-menu></categories-menu>
</client-only>
</ds-flex-item>
<ds-flex-item <ds-flex-item
:width="{ base: '40%', sm: '40%', md: '40%', lg: '0%' }" :width="{ base: '40%', sm: '40%', md: '40%', lg: '0%' }"
class="mobile-hamburger-menu" class="mobile-hamburger-menu"
@ -16,16 +44,12 @@
<base-button icon="bars" @click="toggleMobileMenuView" circle /> <base-button icon="bars" @click="toggleMobileMenuView" circle />
</ds-flex-item> </ds-flex-item>
<ds-flex-item <ds-flex-item
v-if="categoriesActive && isLoggedIn" :width="{
:class="{ 'hide-mobile-menu': !toggleMobileMenu }" base: '45%',
style="flex-grow: 0; flex-basis: auto" sm: '45%',
> md: isHeaderMenu ? 'auto' : '45%',
<client-only> lg: isHeaderMenu ? 'auto' : '50%',
<categories-menu></categories-menu> }"
</client-only>
</ds-flex-item>
<ds-flex-item
:width="{ base: '45%', sm: '45%', md: '45%', lg: '50%' }"
:class="{ 'hide-mobile-menu': !toggleMobileMenu }" :class="{ 'hide-mobile-menu': !toggleMobileMenu }"
style="flex-shrink: 0; flex-grow: 1" style="flex-shrink: 0; flex-grow: 1"
id="nav-search-box" id="nav-search-box"
@ -43,7 +67,7 @@
</client-only> </client-only>
</ds-flex-item> </ds-flex-item>
<ds-flex-item <ds-flex-item
style="background-color: white; flex-basis: auto" style="flex-basis: auto"
:class="{ 'hide-mobile-menu': !toggleMobileMenu }" :class="{ 'hide-mobile-menu': !toggleMobileMenu }"
> >
<div <div
@ -92,6 +116,8 @@
<script> <script>
import Logo from '~/components/Logo/Logo' import Logo from '~/components/Logo/Logo'
import LOGOS from '../constants/logos.js'
import headerMenu from '../constants/headerMenu.js'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import LocaleSwitch from '~/components/LocaleSwitch/LocaleSwitch' import LocaleSwitch from '~/components/LocaleSwitch/LocaleSwitch'
import SearchField from '~/components/features/SearchField/SearchField.vue' import SearchField from '~/components/features/SearchField/SearchField.vue'
@ -122,6 +148,9 @@ export default {
mixins: [seo], mixins: [seo],
data() { data() {
return { return {
LOGOS,
isHeaderMenu: headerMenu.MENU.length > 0,
menu: headerMenu.MENU,
mobileSearchVisible: false, mobileSearchVisible: false,
toggleMobileMenu: false, toggleMobileMenu: false,
inviteRegistration: this.$env.INVITE_REGISTRATION === true, // for 'false' in .env INVITE_REGISTRATION is of type undefined and not(!) boolean false, because of internal handling, inviteRegistration: this.$env.INVITE_REGISTRATION === true, // for 'false' in .env INVITE_REGISTRATION is of type undefined and not(!) boolean false, because of internal handling,
@ -146,6 +175,17 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
.main-navigation {
background-color: $color-header-background;
}
.margin-right-20 {
margin-right: 20px;
}
.margin-x {
margin-left: 20px;
margin-right: 20px;
white-space: nowrap;
}
.topbar-locale-switch { .topbar-locale-switch {
display: flex; display: flex;
margin-right: $space-xx-small; margin-right: $space-xx-small;
@ -161,11 +201,6 @@ export default {
align-items: center; align-items: center;
} }
.main-navigation {
a {
color: $text-color-soft;
}
}
.main-navigation-right { .main-navigation-right {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;

View File

@ -217,6 +217,27 @@
"infoSelectedNoOfMaxCategories": "{chosen} von {max} Themen ausgewählt" "infoSelectedNoOfMaxCategories": "{chosen} von {max} Themen ausgewählt"
}, },
"category": { "category": {
"description": {
"body-and-excercise": "Sport, Yoga, Massage, Tanzen, Entspannung",
"children": "Familie, Pädagogik, Schule, Prägung",
"culture": "Kunst, Theater, Musik, Fotografie, Film",
"economy": "Handel, Konsum, Marketing, Lieferketten",
"energy": "Öl, Gas, Kohle, Wind, Wasserkraft, Biogas, Atomenergie",
"finance": "Geld, Finanzsystem, Alternativwährungen",
"health": "Medizin, Ernährung, WHO, Impfungen, Schadstoffe",
"home": "Bauen, Lebensgemeinschaften, Tiny Houses, Gemüsegarten",
"it-and-media": "Nachrichten, Manipulation, Datenschutz, Überwachung, Datenkraken, KI, Software, Apps",
"law": "Menschenrechte, Gesetze, Verordnungen",
"miscellaneous": "Sonstiges",
"mobility": "Reise, Verkehr, Elektromobilität",
"nature": "Tiere, Pflanzen, Landwirtschaft, Ökologie, Artenvielfalt",
"networking": "Kooperation, Aktionsbündnisse, Solidarität, Hilfe",
"peace": "Krieg, Militär, soziale Verteidigung, Waffen, Cyberattacken",
"politics": "Demokratie, Mitbestimmung, Wahlen, Korruption, Parteien",
"psyche": "Seele, Gefühle, Glück",
"science": "Bildung, Hochschule, Publikationen",
"spirituality": "Religion, Werte, Ethik"
},
"name": { "name": {
"body-and-excercise": "Körper & Bewegung", "body-and-excercise": "Körper & Bewegung",
"children": "Kinder", "children": "Kinder",

View File

@ -217,6 +217,27 @@
"infoSelectedNoOfMaxCategories": "{chosen} of {max} topics selected" "infoSelectedNoOfMaxCategories": "{chosen} of {max} topics selected"
}, },
"category": { "category": {
"description": {
"body-and-excercise": "Sports, yoga, massage, relaxation",
"children": "Family, education, school, imprinting",
"culture": "Art, theatre, music, photography, film",
"economy": "Trade, consumption, marketing, supply chains",
"energy": "Oil, gas, coal, wind, hydrodynamic power, biogas, atomic energy",
"finance": "Money, financial system, alternative currencies",
"health": "Medicine, nutrition, WHO, vaccination, harmful substances",
"home": "Construction, communities, tiny houses, kitchen garden",
"it-and-media": "News, manipulation, privacy, control, data leeches, AI, software, apps",
"law": "Human rights, laws, decrees",
"miscellaneous": "Miscellaneous",
"mobility": "Travel, traffic, electric mobility",
"nature": "Animals, plants, agriculture, ecologu, biodiversity",
"networking": "Cooperation, action alliances, solidarity, help",
"peace": "War, military, social defence, arms, cyber attacks",
"politics": "Democracy, participation, elections, corruption, parties",
"psyche": "Soul, feelings, happiness",
"science": "Education, university, publications",
"spirituality": "Religion, values, ethics"
},
"name": { "name": {
"body-and-excercise": "Body & Excercise", "body-and-excercise": "Body & Excercise",
"children": "Children", "children": "Children",

View File

@ -1,6 +1,6 @@
{ {
"name": "@ocelot-social/maintenance", "name": "@ocelot-social/maintenance",
"version": "1.1.0", "version": "1.1.1",
"description": "Maintenance page for ocelot.social", "description": "Maintenance page for ocelot.social",
"repository": "https://github.com/Ocelot-Social-Community/Ocelot-Social", "repository": "https://github.com/Ocelot-Social-Community/Ocelot-Social",
"author": "ocelot.social Community", "author": "ocelot.social Community",

View File

@ -91,13 +91,21 @@ export default {
/* /*
** Global CSS ** Global CSS
*/ */
css: ['~assets/_new/styles/resets.scss', '~assets/styles/main.scss'], css: [
'~assets/_new/styles/resets.scss',
'~assets/styles/main.scss',
'~assets/styles/imports/_branding.scss',
],
/* /*
** Global processed styles ** Global processed styles
*/ */
styleResources: { styleResources: {
scss: [styleguideStyles, '~assets/_new/styles/tokens.scss'], scss: [
styleguideStyles,
'~assets/_new/styles/tokens.scss',
'~assets/styles/imports/_branding.scss',
],
}, },
/* /*

View File

@ -1,6 +1,6 @@
{ {
"name": "ocelot-social-webapp", "name": "ocelot-social-webapp",
"version": "1.1.0", "version": "1.1.1",
"description": "ocelot.social Frontend", "description": "ocelot.social Frontend",
"repository": "https://github.com/Ocelot-Social-Community/Ocelot-Social", "repository": "https://github.com/Ocelot-Social-Community/Ocelot-Social",
"author": "ocelot.social Community", "author": "ocelot.social Community",

View File

@ -54,6 +54,11 @@
:key="category.id" :key="category.id"
:icon="category.icon" :icon="category.icon"
:name="$t(`contribution.category.name.${category.slug}`)" :name="$t(`contribution.category.name.${category.slug}`)"
v-tooltip="{
content: $t(`contribution.category.description.${category.slug}`),
placement: 'bottom-start',
delay: { show: 1500 },
}"
/> />
</div> </div>
<ds-space margin-bottom="small" /> <ds-space margin-bottom="small" />

View File

@ -48,6 +48,7 @@ import { queryLocations } from '~/graphql/location'
let timeout let timeout
export default { export default {
name: 'NewsFeed',
data() { data() {
return { return {
cities: [], cities: [],