diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index 74561c5fe..4710942b6 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -151,7 +151,6 @@ export default { friendsCount: '<-[:FRIENDS]->(related:User)', followingCount: '-[:FOLLOWS]->(related:User)', followedByCount: '<-[:FOLLOWS]-(related:User)', - commentsCount: '-[:WROTE]->(r:Comment)', commentedCount: '-[:WROTE]->(:Comment)-[:COMMENTS]->(related:Post)', shoutedCount: '-[:SHOUTED]->(related:Post)', badgesCount: '<-[:REWARDED]-(related:Badge)', diff --git a/backend/src/schema/types/type/Post.gql b/backend/src/schema/types/type/Post.gql index 519af14ae..cbbcddfc9 100644 --- a/backend/src/schema/types/type/Post.gql +++ b/backend/src/schema/types/type/Post.gql @@ -29,11 +29,6 @@ type Post { categories: [Category]! @relation(name: "CATEGORIZED", direction: "OUT") comments: [Comment]! @relation(name: "COMMENTS", direction: "IN") - commentsCount: Int! - @cypher( - statement: "MATCH (this)<-[:COMMENTS]-(r:Comment) WHERE NOT r.deleted = true AND NOT r.disabled = true RETURN COUNT(r)" - ) - shoutedBy: [User]! @relation(name: "SHOUTED", direction: "IN") shoutedCount: Int! @cypher( diff --git a/backend/src/schema/types/type/User.gql b/backend/src/schema/types/type/User.gql index e3e8f8450..46e699410 100644 --- a/backend/src/schema/types/type/User.gql +++ b/backend/src/schema/types/type/User.gql @@ -64,7 +64,6 @@ type User { ) comments: [Comment]! @relation(name: "WROTE", direction: "OUT") - commentsCount: Int! @cypher(statement: "MATCH (this)-[:WROTE]->(r:Comment) WHERE NOT r.deleted = true AND NOT r.disabled = true RETURN COUNT(r)") commentedCount: Int! @cypher(statement: "MATCH (this)-[:WROTE]->(r:Comment)-[:COMMENTS]->(p:Post) WHERE NOT r.deleted = true AND NOT r.disabled = true AND NOT p.deleted = true AND NOT p.disabled = true RETURN COUNT(DISTINCT(p))") shouted: [Post]! @relation(name: "SHOUTED", direction: "OUT") @@ -143,7 +142,6 @@ type Query { followedByCount: Int followedByCurrentUser: Boolean contributionsCount: Int - commentsCount: Int commentedCount: Int shoutedCount: Int badgesCount: Int diff --git a/webapp/components/Comment.vue b/webapp/components/Comment.vue index 9096fb6e8..c53d0a231 100644 --- a/webapp/components/Comment.vue +++ b/webapp/components/Comment.vue @@ -67,7 +67,7 @@ import { mapGetters, mapMutations } from 'vuex' import HcUser from '~/components/User' import ContentMenu from '~/components/ContentMenu' import ContentViewer from '~/components/Editor/ContentViewer' -import HcEditCommentForm from '~/components/comments/EditCommentForm/EditCommentForm' +import HcEditCommentForm from '~/components/EditCommentForm/EditCommentForm' export default { data: function() { diff --git a/webapp/components/comments/CommentForm/spec.js b/webapp/components/CommentForm/CommentForm.spec.js similarity index 98% rename from webapp/components/comments/CommentForm/spec.js rename to webapp/components/CommentForm/CommentForm.spec.js index 2d212c91d..5e7c952af 100644 --- a/webapp/components/comments/CommentForm/spec.js +++ b/webapp/components/CommentForm/CommentForm.spec.js @@ -1,5 +1,5 @@ import { mount, createLocalVue } from '@vue/test-utils' -import CommentForm from './index.vue' +import CommentForm from './CommentForm' import Styleguide from '@human-connection/styleguide' import Vuex from 'vuex' import MutationObserver from 'mutation-observer' diff --git a/webapp/components/comments/CommentForm/index.vue b/webapp/components/CommentForm/CommentForm.vue similarity index 97% rename from webapp/components/comments/CommentForm/index.vue rename to webapp/components/CommentForm/CommentForm.vue index a04b4f068..795727578 100644 --- a/webapp/components/comments/CommentForm/index.vue +++ b/webapp/components/CommentForm/CommentForm.vue @@ -69,7 +69,7 @@ export default { this.disabled = true this.$apollo .mutate({ - mutation: CommentMutations().CreateComment, + mutation: CommentMutations(this.$i18n).CreateComment, variables: { postId: this.post.id, content: this.form.content, diff --git a/webapp/components/comments/CommentList/CommentList.spec.js b/webapp/components/CommentList/CommentList.spec.js similarity index 68% rename from webapp/components/comments/CommentList/CommentList.spec.js rename to webapp/components/CommentList/CommentList.spec.js index 023974284..e1090475a 100644 --- a/webapp/components/comments/CommentList/CommentList.spec.js +++ b/webapp/components/CommentList/CommentList.spec.js @@ -1,5 +1,5 @@ import { config, mount, createLocalVue } from '@vue/test-utils' -import CommentList from '.' +import CommentList from './CommentList' import Empty from '~/components/Empty' import Vuex from 'vuex' import Styleguide from '@human-connection/styleguide' @@ -21,63 +21,52 @@ describe('CommentList.vue', () => { let store let wrapper let propsData - let data - - propsData = { - post: { - id: 1, - }, - } - store = new Vuex.Store({ - getters: { - 'auth/user': () => { - return {} - }, - }, - }) - mocks = { - $t: jest.fn(), - $filters: { - truncate: a => a, - }, - $apollo: { - queries: { - Post: { - refetch: jest.fn(), - }, - }, - }, - } - data = () => { - return { - comments: [], - } - } describe('shallowMount', () => { + beforeEach(() => { + propsData = { + post: { + id: 1, + comments: [{ id: 'comment134', contentExcerpt: 'this is a comment' }], + }, + } + store = new Vuex.Store({ + getters: { + 'auth/user': () => { + return {} + }, + }, + }) + mocks = { + $t: jest.fn(), + $filters: { + truncate: a => a, + }, + $apollo: { + queries: { + Post: { + refetch: jest.fn(), + }, + }, + }, + } + }) + const Wrapper = () => { return mount(CommentList, { store, mocks, localVue, propsData, - data, }) } beforeEach(() => { wrapper = Wrapper() - wrapper.setData({ - comments: [ - { - id: 'c1', - contentExcerpt: 'this is a comment', - }, - ], - }) }) it('displays a message icon when there are no comments to display', () => { + propsData.post.comments = [] expect(Wrapper().findAll(Empty)).toHaveLength(1) }) diff --git a/webapp/components/comments/CommentList/index.vue b/webapp/components/CommentList/CommentList.vue similarity index 96% rename from webapp/components/comments/CommentList/index.vue rename to webapp/components/CommentList/CommentList.vue index 7e30e2452..2ae670bf4 100644 --- a/webapp/components/comments/CommentList/index.vue +++ b/webapp/components/CommentList/CommentList.vue @@ -4,7 +4,7 @@ { } getters = { 'auth/user': () => { - return { id: 'u343', name: deleteAccountName, contributionsCount: 2, commentsCount: 3 } + return { id: 'u343', name: deleteAccountName, contributionsCount: 2, commentedCount: 3 } }, } actions = { 'auth/logout': jest.fn() } diff --git a/webapp/components/DeleteData/DeleteData.vue b/webapp/components/DeleteData/DeleteData.vue index 293e65221..f6e6d47f0 100644 --- a/webapp/components/DeleteData/DeleteData.vue +++ b/webapp/components/DeleteData/DeleteData.vue @@ -30,12 +30,12 @@ }} -   - + - {{ post.commentsCount }} + {{ post.commentedCount }} { name: 'Trick', slug: 'trick', }, - commentsCount: 0, + commentedCount: 0, createdAt: '2019-03-13T11:00:20.835Z', id: 'p10', label: 'Eos aut illo omnis quis eaque et iure aut.', diff --git a/webapp/components/SearchInput.vue b/webapp/components/SearchInput.vue index 098b30610..c93e65d61 100644 --- a/webapp/components/SearchInput.vue +++ b/webapp/components/SearchInput.vue @@ -46,7 +46,7 @@ - {{ option.commentsCount }} + {{ option.commentedCount }} diff --git a/webapp/components/User/index.vue b/webapp/components/User/index.vue index 7841fe596..b4e8fae66 100644 --- a/webapp/components/User/index.vue +++ b/webapp/components/User/index.vue @@ -64,8 +64,8 @@ diff --git a/webapp/graphql/CommentMutations.js b/webapp/graphql/CommentMutations.js index 6b0f653fc..bf4fc33ea 100644 --- a/webapp/graphql/CommentMutations.js +++ b/webapp/graphql/CommentMutations.js @@ -1,6 +1,6 @@ import gql from 'graphql-tag' -export default () => { +export default i18n => { return { CreateComment: gql` mutation($postId: ID!, $content: String!) { @@ -8,15 +8,26 @@ export default () => { id contentExcerpt content + createdAt + disabled + deleted author { id slug name avatar + disabled + deleted + shoutedCount + contributionsCount + commentedCount + followedByCount + followedByCurrentUser + badges { + id + icon + } } - createdAt - deleted - disabled } } `, @@ -24,8 +35,19 @@ export default () => { mutation($content: String!, $id: ID!) { UpdateComment(content: $content, id: $id) { id - content contentExcerpt + content + createdAt + disabled + deleted + author { + id + slug + name + avatar + disabled + deleted + } } } `, diff --git a/webapp/graphql/CommentQuery.js b/webapp/graphql/CommentQuery.js index 4d82165f0..c2daaa943 100644 --- a/webapp/graphql/CommentQuery.js +++ b/webapp/graphql/CommentQuery.js @@ -17,7 +17,7 @@ export default app => { deleted shoutedCount contributionsCount - commentsCount + commentedCount followedByCount followedByCurrentUser location { diff --git a/webapp/graphql/PostQuery.js b/webapp/graphql/PostQuery.js index 88c32b120..124342dc2 100644 --- a/webapp/graphql/PostQuery.js +++ b/webapp/graphql/PostQuery.js @@ -22,7 +22,7 @@ export default i18n => { deleted shoutedCount contributionsCount - commentsCount + commentedCount followedByCount followedByCurrentUser location { @@ -36,7 +36,6 @@ export default i18n => { tags { name } - commentsCount comments(orderBy: createdAt_asc) { id contentExcerpt @@ -53,7 +52,7 @@ export default i18n => { deleted shoutedCount contributionsCount - commentsCount + commentedCount followedByCount followedByCurrentUser location { @@ -100,7 +99,7 @@ export const filterPosts = i18n => { deleted contributionsCount shoutedCount - commentsCount + commentedCount followedByCount followedByCurrentUser location { @@ -111,7 +110,6 @@ export const filterPosts = i18n => { icon } } - commentsCount categories { id name diff --git a/webapp/graphql/User.js b/webapp/graphql/User.js index 9de986a8a..7771481a6 100644 --- a/webapp/graphql/User.js +++ b/webapp/graphql/User.js @@ -35,7 +35,7 @@ export default i18n => { followedByCount followedByCurrentUser contributionsCount - commentsCount + commentedCount badges { id icon @@ -57,7 +57,7 @@ export default i18n => { followedByCount followedByCurrentUser contributionsCount - commentsCount + commentedCount badges { id icon @@ -66,7 +66,6 @@ export default i18n => { name: name${lang} } } - contributionsCount socialMedia { id url diff --git a/webapp/locales/de.json b/webapp/locales/de.json index 33c8e37c5..14980a112 100644 --- a/webapp/locales/de.json +++ b/webapp/locales/de.json @@ -171,7 +171,7 @@ "deleteUserAccount": { "name": "Daten löschen", "contributionsCount": "Meine {count} Beiträge löschen", - "commentsCount": "Meine {count} Kommentare löschen", + "commentedCount": "Meine {count} Kommentare löschen", "accountDescription": "Sei dir bewusst, dass deine Beiträge und Kommentare für unsere Community wichtig sind. Wenn du sie trotzdem löschen möchtest, musst du sie unten markieren.", "accountWarning": "Dein Konto, deine Beiträge oder Kommentare kannst du nach dem Löschen WEDER VERWALTEN NOCH WIEDERHERSTELLEN!", "success": "Konto erfolgreich gelöscht!", diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 664cbaff2..59323fd5a 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -171,7 +171,7 @@ "deleteUserAccount": { "name": "Delete data", "contributionsCount": "Delete my {count} posts", - "commentsCount": "Delete my {count} comments", + "commentedCount": "Delete my {count} comments", "accountDescription": "Be aware that your Post and Comments are important to our community. If you still choose to delete them, you have to mark them below.", "accountWarning": "You CAN'T MANAGE and CAN'T RECOVER your Account, Posts, or Comments after deleting your account!", "success": "Account successfully deleted!", diff --git a/webapp/locales/pl.json b/webapp/locales/pl.json index 3f6746adf..ed5f049ab 100644 --- a/webapp/locales/pl.json +++ b/webapp/locales/pl.json @@ -121,7 +121,7 @@ "deleteUserAccount": { "name": "Usuń dane", "contributionsCount": "Usuń {count} moich postów", - "commentsCount": "Usuń {count} moich komentarzy", + "commentedCount": "Usuń {count} moich komentarzy", "accountDescription": "Be aware that your Post and Comments are important to our community. If you still choose to delete them, you have to mark them below.", "accountWarning": "Po usunięcie Twojego konta, nie możesz ZARZĄDZAĆ ani ODZYSKAĆ danych, wpisów oraz komentarzy!", "success": "Konto zostało usunięte", diff --git a/webapp/pages/index.vue b/webapp/pages/index.vue index 7566ce791..e8d68a561 100644 --- a/webapp/pages/index.vue +++ b/webapp/pages/index.vue @@ -96,7 +96,7 @@ export default { label: this.$t('sorting.commented'), value: 'Commented', icons: 'comment', - order: 'commentsCount_desc', + order: 'commentedCount_desc', }, ], } diff --git a/webapp/pages/post/_id/_slug/index.vue b/webapp/pages/post/_id/_slug/index.vue index 6125ec51d..29fec1821 100644 --- a/webapp/pages/post/_id/_slug/index.vue +++ b/webapp/pages/post/_id/_slug/index.vue @@ -81,8 +81,8 @@ import HcTag from '~/components/Tag' import ContentMenu from '~/components/ContentMenu' import HcUser from '~/components/User' import HcShoutButton from '~/components/ShoutButton.vue' -import HcCommentForm from '~/components/comments/CommentForm' -import HcCommentList from '~/components/comments/CommentList' +import HcCommentForm from '~/components/CommentForm/CommentForm' +import HcCommentList from '~/components/CommentList/CommentList' import { postMenuModalsData, deletePostMutation } from '~/components/utils/PostHelpers' import PostQuery from '~/graphql/PostQuery' import HcEmotions from '~/components/Emotions/Emotions' diff --git a/webapp/pages/post/_id/_slug/more-info.vue b/webapp/pages/post/_id/_slug/more-info.vue index ef442b7d6..ab711e101 100644 --- a/webapp/pages/post/_id/_slug/more-info.vue +++ b/webapp/pages/post/_id/_slug/more-info.vue @@ -91,7 +91,7 @@ export default { slug contentExcerpt shoutedCount - commentsCount + commentedCount categories { id name @@ -105,7 +105,7 @@ export default { contributionsCount followedByCount followedByCurrentUser - commentsCount + commentedCount location { name: name${this.$i18n.locale().toUpperCase()} } diff --git a/webapp/store/auth.js b/webapp/store/auth.js index 6185a38cf..f756fc2c9 100644 --- a/webapp/store/auth.js +++ b/webapp/store/auth.js @@ -80,7 +80,7 @@ export const actions = { about locationName contributionsCount - commentsCount + commentedCount socialMedia { id url diff --git a/webapp/store/posts.js b/webapp/store/posts.js index 17e764537..2d9e3ffdc 100644 --- a/webapp/store/posts.js +++ b/webapp/store/posts.js @@ -88,7 +88,7 @@ export const actions = { deleted contributionsCount shoutedCount - commentsCount + commentedCount followedByCount followedByCurrentUser location { @@ -99,7 +99,6 @@ export const actions = { icon } } - commentsCount categories { id name diff --git a/webapp/store/search.js b/webapp/store/search.js index c5ed9523a..bae9bc249 100644 --- a/webapp/store/search.js +++ b/webapp/store/search.js @@ -53,7 +53,7 @@ export const actions = { label: title value: title, shoutedCount - commentsCount + commentedCount createdAt author { id