+
+
-
-
-
-
-
-
-
+ size="small"
+ >
+ {{ $t('filter-menu.all') }}
+
+
-
-
+
import { mapGetters, mapMutations } from 'vuex'
import CategoryQuery from '~/graphql/CategoryQuery.js'
-import SaveCategories from '~/graphql/SaveCategories.js'
import FilterMenuSection from '~/components/FilterMenu/FilterMenuSection'
-import LabeledButton from '~/components/_new/generic/LabeledButton/LabeledButton'
import SortCategories from '~/mixins/sortCategoriesMixin.js'
export default {
components: {
FilterMenuSection,
- LabeledButton,
},
mixins: [SortCategories],
data() {
@@ -70,19 +63,9 @@ export default {
this.resetCategories()
this.$emit('showFilterMenu')
},
- saveCategories() {
- this.$apollo
- .mutate({
- mutation: SaveCategories(),
- variables: { activeCategories: this.filteredCategoryIds },
- })
- .then(() => {
- this.$emit('showFilterMenu')
- this.$toast.success(this.$t('filter-menu.save.success'))
- })
- .catch(() => {
- this.$toast.error(this.$t('filter-menu.save.error'))
- })
+ saveCategories(categoryId) {
+ this.toggleCategory(categoryId)
+ this.$emit('updateCategories', categoryId)
},
},
apollo: {
@@ -101,7 +84,7 @@ export default {
diff --git a/webapp/components/FilterMenu/OrderByFilter.spec.js b/webapp/components/FilterMenu/OrderByFilter.spec.js
index 10b52449a..46cffe5f0 100644
--- a/webapp/components/FilterMenu/OrderByFilter.spec.js
+++ b/webapp/components/FilterMenu/OrderByFilter.spec.js
@@ -35,7 +35,7 @@ describe('OrderByFilter', () => {
it('sets "newest-button" attribute `filled`', () => {
expect(
wrapper
- .find('.order-by-filter .filter-list [data-test="newest-button"] .base-button')
+ .find('.order-by-filter .filter-list .base-button[data-test="newest-button"]')
.classes('--filled'),
).toBe(true)
})
@@ -43,7 +43,7 @@ describe('OrderByFilter', () => {
it('don\'t sets "oldest-button" attribute `filled`', () => {
expect(
wrapper
- .find('.order-by-filter .filter-list [data-test="oldest-button"] .base-button')
+ .find('.order-by-filter .filter-list .base-button[data-test="oldest-button"]')
.classes('--filled'),
).toBe(false)
})
@@ -58,7 +58,7 @@ describe('OrderByFilter', () => {
it('don\'t sets "newest-button" attribute `filled`', () => {
expect(
wrapper
- .find('.order-by-filter .filter-list [data-test="newest-button"] .base-button')
+ .find('.order-by-filter .filter-list .base-button[data-test="newest-button"]')
.classes('--filled'),
).toBe(false)
})
@@ -66,7 +66,7 @@ describe('OrderByFilter', () => {
it('sets "oldest-button" attribute `filled`', () => {
expect(
wrapper
- .find('.order-by-filter .filter-list [data-test="oldest-button"] .base-button')
+ .find('.order-by-filter .filter-list .base-button[data-test="oldest-button"]')
.classes('--filled'),
).toBe(true)
})
@@ -75,7 +75,7 @@ describe('OrderByFilter', () => {
describe('click "newest-button"', () => {
it('calls TOGGLE_ORDER with "createdAt_desc"', () => {
wrapper
- .find('.order-by-filter .filter-list [data-test="newest-button"] .base-button')
+ .find('.order-by-filter .filter-list .base-button[data-test="newest-button"]')
.trigger('click')
expect(mutations['posts/TOGGLE_ORDER']).toHaveBeenCalledWith({}, 'createdAt_desc')
})
@@ -84,7 +84,7 @@ describe('OrderByFilter', () => {
describe('click "oldest-button"', () => {
it('calls TOGGLE_ORDER with "createdAt_asc"', () => {
wrapper
- .find('.order-by-filter .filter-list [data-test="oldest-button"] .base-button')
+ .find('.order-by-filter .filter-list .base-button[data-test="oldest-button"]')
.trigger('click')
expect(mutations['posts/TOGGLE_ORDER']).toHaveBeenCalledWith({}, 'createdAt_asc')
})
diff --git a/webapp/components/FilterMenu/OrderByFilter.vue b/webapp/components/FilterMenu/OrderByFilter.vue
index 8ef248f6d..57c173152 100644
--- a/webapp/components/FilterMenu/OrderByFilter.vue
+++ b/webapp/components/FilterMenu/OrderByFilter.vue
@@ -2,24 +2,30 @@
-
+ size="small"
+ >
+ {{ buttonLabel('desc') }}
+
-
+ size="small"
+ >
+ {{ buttonTitle('asc') }}
+
@@ -28,13 +34,11 @@
+
+
diff --git a/webapp/locales/de.json b/webapp/locales/de.json
index 6b7fd906a..d621ea735 100644
--- a/webapp/locales/de.json
+++ b/webapp/locales/de.json
@@ -6,7 +6,8 @@
"edit": "Bearbeiten",
"loading": "wird geladen",
"loadMore": "mehr laden",
- "save": "Speichern"
+ "save": "Speichern",
+ "saveCategories": "Themen speichern"
},
"admin": {
"categories": {
@@ -298,16 +299,16 @@
"happy": "Glücklich",
"surprised": "Erstaunt"
},
- "filterFollow": "Beiträge von Nutzern filtern, denen ich folge",
+ "filterFollow": "Nutzern, denen ich folge",
"filterMasonryGrid": {
"myFriends": "Nutzer denen ich folge",
"myGroups": "Aus meinen Gruppen",
"myTopics": "Meine Themen",
- "noFilter": "Inhalt filtern",
- "onlyArticles": "Nur Beiträge",
- "onlyEvents": "Nur Veranstaltungen"
+ "noFilter": "Inhalte filtern",
+ "onlyArticles": "Beiträge",
+ "onlyEvents": "Veranstaltungen"
},
- "filterMyGroups": "Beiträge in meinen Gruppen",
+ "filterMyGroups": "Meine Gruppen",
"inappropriatePicture": "Dieses Bild kann für einige Menschen unangemessen sein.",
"languageSelectLabel": "Sprache Deines Beitrags",
"languageSelectText": "Sprache wählen",
@@ -418,21 +419,22 @@
"emotions": "Emotionen",
"ended": {
"all": {
- "hint": "Zeige alle, auch beendete",
+ "hint": "Zeige alle, auch zukünftige",
"label": "Alle"
},
"onlyEnded": {
- "hint": "Zeige nur noch nicht beendete",
- "label": "Nicht beendete"
+ "hint": "Zeige nur noch zukünftige",
+ "label": "Zukünftige"
}
},
"event": "Veranstaltung",
"eventsBy": "Veranstaltungen – zeige ...",
"eventsEnded": "Beendet",
"filter-by": "Filtern nach ...",
- "following": "Nutzer denen ich folge",
+ "following": "Nutzer, denen ich folge",
+ "following-title": "Quellen",
"languages": "Sprachen",
- "my-groups": "Meinen Gruppen",
+ "my-groups": "Meine Gruppen",
"order": {
"last": {
"hint": "Sortiere die Letzten nach vorn",
diff --git a/webapp/locales/en.json b/webapp/locales/en.json
index b5bcef3bb..0d576834e 100644
--- a/webapp/locales/en.json
+++ b/webapp/locales/en.json
@@ -6,7 +6,8 @@
"edit": "Edit",
"loading": "loading",
"loadMore": "load more",
- "save": "Save"
+ "save": "Save",
+ "saveCategories": "Save topics"
},
"admin": {
"categories": {
@@ -298,16 +299,16 @@
"happy": "Happy",
"surprised": "Surprised"
},
- "filterFollow": "Filter contributions from users I follow",
+ "filterFollow": "Users I follow",
"filterMasonryGrid": {
"myFriends": "Users I follow",
"myGroups": "By my groups",
"myTopics": "My topics",
"noFilter": "Filter content",
- "onlyArticles": "Only articles",
- "onlyEvents": "Only events"
+ "onlyArticles": "Articles",
+ "onlyEvents": "Events"
},
- "filterMyGroups": "Contributions in my groups",
+ "filterMyGroups": "My groups",
"inappropriatePicture": "This image may be inappropriate for some people.",
"languageSelectLabel": "Language of your contribution",
"languageSelectText": "Select Language",
@@ -431,6 +432,7 @@
"eventsEnded": "Ended",
"filter-by": "Filter by ...",
"following": "Users I follow",
+ "following-title": "Sources",
"languages": "Languages",
"my-groups": "My groups",
"order": {
diff --git a/webapp/store/posts.js b/webapp/store/posts.js
index 95113ab6b..51e34f6c5 100644
--- a/webapp/store/posts.js
+++ b/webapp/store/posts.js
@@ -47,6 +47,16 @@ export const mutations = {
delete filter.categories_some
state.filter = filter
},
+ RESET_FOLLOWERS_FILTER(state) {
+ const filter = clone(state.filter)
+ if (get(filter, 'postsInMyGroups')) {
+ delete filter.postsInMyGroups
+ }
+ if (get(filter, 'author.followedBy_some.id')) {
+ delete filter.author
+ }
+ state.filter = filter
+ },
RESET_EMOTIONS(state) {
const filter = clone(state.filter)
delete filter.emotions_some
diff --git a/webapp/store/posts.spec.js b/webapp/store/posts.spec.js
index 4efb55491..b3c73e124 100644
--- a/webapp/store/posts.spec.js
+++ b/webapp/store/posts.spec.js
@@ -146,6 +146,25 @@ describe('mutations', () => {
})
})
+ describe('RESET_FOLLOWERS_FILTER', () => {
+ beforeEach(() => {
+ testMutation = () => {
+ mutations.RESET_FOLLOWERS_FILTER(state)
+ return getters.filter(state)
+ }
+ })
+
+ it('resets the categories filter', () => {
+ state = {
+ filter: {
+ author: { followedBy_some: { id: 4711 } },
+ postsInMyGroups: true,
+ },
+ }
+ expect(testMutation()).toEqual({})
+ })
+ })
+
describe('TOGGLE_LANGUAGE', () => {
beforeEach(() => {
testMutation = (languageCode) => {