From 43cb0efe7e31bbd30f317115067e57813de19784 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 2 Oct 2017 01:03:20 -0300 Subject: [PATCH 1/5] bug: usertags --- .../coral-embed-stream/src/graphql/index.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/client/coral-embed-stream/src/graphql/index.js b/client/coral-embed-stream/src/graphql/index.js index 20ed8a1d6..228efb25b 100644 --- a/client/coral-embed-stream/src/graphql/index.js +++ b/client/coral-embed-stream/src/graphql/index.js @@ -96,6 +96,11 @@ export default { user { id username + tags { + tag { + name + } + } } action_summaries { count @@ -129,7 +134,19 @@ export default { user: { __typename: 'User', id: auth.user.id, - username: auth.user.username + username: auth.user.username, + tags: tags.map((tag) => ({ + tag: { + name: tag, + created_at: new Date().toISOString(), + __typename: 'Tag' + }, + assigned_by: { + id: auth.user.id, + __typename: 'User' + }, + __typename: 'TagLink' + })), }, created_at: new Date().toISOString(), body, From 7aaad6ccd9078443fed94312ddedecc8a32b4e3f Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 2 Oct 2017 01:06:08 -0300 Subject: [PATCH 2/5] Adds subscriber plugin --- .eslintignore | 1 + .gitignore | 1 + .../talk-plugin-subscriber/client/.babelrc | 14 +++++++++++ .../client/.eslintrc.json | 23 ++++++++++++++++++ .../client/components/SubscriberBadge.css | 12 ++++++++++ .../client/components/SubscriberBadge.js | 9 +++++++ .../client/containers/SubscriberBadge.js | 24 +++++++++++++++++++ .../talk-plugin-subscriber/client/index.js | 10 ++++++++ .../client/translations.yml | 6 +++++ plugins/talk-plugin-subscriber/index.js | 14 +++++++++++ plugins/talk-plugin-subscriber/package.json | 11 +++++++++ plugins/talk-plugin-subscriber/yarn.lock | 11 +++++++++ 12 files changed, 136 insertions(+) create mode 100644 plugins/talk-plugin-subscriber/client/.babelrc create mode 100644 plugins/talk-plugin-subscriber/client/.eslintrc.json create mode 100644 plugins/talk-plugin-subscriber/client/components/SubscriberBadge.css create mode 100644 plugins/talk-plugin-subscriber/client/components/SubscriberBadge.js create mode 100644 plugins/talk-plugin-subscriber/client/containers/SubscriberBadge.js create mode 100644 plugins/talk-plugin-subscriber/client/index.js create mode 100644 plugins/talk-plugin-subscriber/client/translations.yml create mode 100644 plugins/talk-plugin-subscriber/index.js create mode 100644 plugins/talk-plugin-subscriber/package.json create mode 100644 plugins/talk-plugin-subscriber/yarn.lock diff --git a/.eslintignore b/.eslintignore index fc0214dd2..a5f6aa1a2 100644 --- a/.eslintignore +++ b/.eslintignore @@ -26,5 +26,6 @@ plugins/* !plugins/talk-plugin-toxic-comments !plugins/talk-plugin-remember-sort !plugins/talk-plugin-deep-reply-count +!plugins/talk-plugin-subscriber node_modules diff --git a/.gitignore b/.gitignore index bcc7c89b1..7ccad87c4 100644 --- a/.gitignore +++ b/.gitignore @@ -43,5 +43,6 @@ plugins/* !plugins/talk-plugin-toxic-comments !plugins/talk-plugin-remember-sort !plugins/talk-plugin-deep-reply-count +!plugins/talk-plugin-subscriber **/node_modules/* diff --git a/plugins/talk-plugin-subscriber/client/.babelrc b/plugins/talk-plugin-subscriber/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-subscriber/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-subscriber/client/.eslintrc.json b/plugins/talk-plugin-subscriber/client/.eslintrc.json new file mode 100644 index 000000000..9fe56bd14 --- /dev/null +++ b/plugins/talk-plugin-subscriber/client/.eslintrc.json @@ -0,0 +1,23 @@ +{ + "env": { + "browser": true, + "es6": true, + "mocha": true + }, + "parserOptions": { + "sourceType": "module", + "ecmaFeatures": { + "experimentalObjectRestSpread": true, + "jsx": true + } + }, + "parser": "babel-eslint", + "plugins": [ + "react" + ], + "rules": { + "react/jsx-uses-react": "error", + "react/jsx-uses-vars": "error", + "no-console": ["warn", { "allow": ["warn", "error"] }] + } +} diff --git a/plugins/talk-plugin-subscriber/client/components/SubscriberBadge.css b/plugins/talk-plugin-subscriber/client/components/SubscriberBadge.css new file mode 100644 index 000000000..42edfd8ff --- /dev/null +++ b/plugins/talk-plugin-subscriber/client/components/SubscriberBadge.css @@ -0,0 +1,12 @@ +.badge { + background-color: #616161; + color: white; + display: inline-block; + margin: 0px 5px; + padding: 5px 5px; + border-radius: 2px; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.6px; + font-weight: bold; +} \ No newline at end of file diff --git a/plugins/talk-plugin-subscriber/client/components/SubscriberBadge.js b/plugins/talk-plugin-subscriber/client/components/SubscriberBadge.js new file mode 100644 index 000000000..60fe19dc9 --- /dev/null +++ b/plugins/talk-plugin-subscriber/client/components/SubscriberBadge.js @@ -0,0 +1,9 @@ +import React from 'react'; +import styles from './SubscriberBadge.css'; +import {t} from 'plugin-api/beta/client/services'; + +export default () =>( + + {t('talk-plugin-subscriber.subscriber')} + +); diff --git a/plugins/talk-plugin-subscriber/client/containers/SubscriberBadge.js b/plugins/talk-plugin-subscriber/client/containers/SubscriberBadge.js new file mode 100644 index 000000000..a0789cf04 --- /dev/null +++ b/plugins/talk-plugin-subscriber/client/containers/SubscriberBadge.js @@ -0,0 +1,24 @@ +import React from 'react'; +import SubscriberBadge from '../components/SubscriberBadge'; +import {compose, gql} from 'react-apollo'; +import {withFragments, excludeIf} from 'plugin-api/beta/client/hocs'; + +const isSubscriber = (tags = []) => tags.some((t) => t.tag.name === 'SUBSCRIBER'); + +const enhance = compose( + withFragments({ + comment: gql` + fragment TalkSubscriberBadge_SubscriberBadge_comment on Comment { + user { + tags { + tag { + name + } + } + } + }` + }), + excludeIf(({comment}) => !isSubscriber(comment.user.tags)) +); + +export default enhance(SubscriberBadge); diff --git a/plugins/talk-plugin-subscriber/client/index.js b/plugins/talk-plugin-subscriber/client/index.js new file mode 100644 index 000000000..c01d84620 --- /dev/null +++ b/plugins/talk-plugin-subscriber/client/index.js @@ -0,0 +1,10 @@ +import SubscriberBadge from './containers/SubscriberBadge'; +import translations from './translations.yml'; +import {gql} from 'react-apollo'; + +export default { + translations, + slots: { + commentAuthorTags: [SubscriberBadge] + } +}; \ No newline at end of file diff --git a/plugins/talk-plugin-subscriber/client/translations.yml b/plugins/talk-plugin-subscriber/client/translations.yml new file mode 100644 index 000000000..851f818b7 --- /dev/null +++ b/plugins/talk-plugin-subscriber/client/translations.yml @@ -0,0 +1,6 @@ +en: + talk-plugin-subscriber: + subscriber: "Subscriber" +es: + talk-plugin-subscriber: + subscriber: "Subscriptor" diff --git a/plugins/talk-plugin-subscriber/index.js b/plugins/talk-plugin-subscriber/index.js new file mode 100644 index 000000000..ad47ef264 --- /dev/null +++ b/plugins/talk-plugin-subscriber/index.js @@ -0,0 +1,14 @@ +module.exports = { + tags: [ + { + name: 'SUBSCRIBER', + permissions: { + public: true, + self: false, + roles: [] + }, + models: ['USERS'], + created_at: new Date() + } + ] +}; diff --git a/plugins/talk-plugin-subscriber/package.json b/plugins/talk-plugin-subscriber/package.json new file mode 100644 index 000000000..4725abb9e --- /dev/null +++ b/plugins/talk-plugin-subscriber/package.json @@ -0,0 +1,11 @@ +{ + "name": "@coralproject/talk-plugin-subscriber", + "version": "0.1.0", + "description": "A Recipe to display a user badge", + "main": "index.js", + "author": "The Coral Project Team ", + "license": "Apache-2.0", + "dependencies": { + "moment": "^2.18.1" + } +} \ No newline at end of file diff --git a/plugins/talk-plugin-subscriber/yarn.lock b/plugins/talk-plugin-subscriber/yarn.lock new file mode 100644 index 000000000..60fdd97df --- /dev/null +++ b/plugins/talk-plugin-subscriber/yarn.lock @@ -0,0 +1,11 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +moment@^2.18.1: + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + +momentjs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/momentjs/-/momentjs-2.0.0.tgz#73df904b4fa418f6e3c605e831cef6ed5518ebd4" From 02dff0c7263701811529f321685f4669fe888059 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 2 Oct 2017 01:32:36 -0300 Subject: [PATCH 3/5] linting --- .../client/containers/SubscriberBadge.js | 1 - plugins/talk-plugin-subscriber/client/index.js | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/talk-plugin-subscriber/client/containers/SubscriberBadge.js b/plugins/talk-plugin-subscriber/client/containers/SubscriberBadge.js index a0789cf04..d00e5fc05 100644 --- a/plugins/talk-plugin-subscriber/client/containers/SubscriberBadge.js +++ b/plugins/talk-plugin-subscriber/client/containers/SubscriberBadge.js @@ -1,4 +1,3 @@ -import React from 'react'; import SubscriberBadge from '../components/SubscriberBadge'; import {compose, gql} from 'react-apollo'; import {withFragments, excludeIf} from 'plugin-api/beta/client/hocs'; diff --git a/plugins/talk-plugin-subscriber/client/index.js b/plugins/talk-plugin-subscriber/client/index.js index c01d84620..937191d41 100644 --- a/plugins/talk-plugin-subscriber/client/index.js +++ b/plugins/talk-plugin-subscriber/client/index.js @@ -1,10 +1,9 @@ import SubscriberBadge from './containers/SubscriberBadge'; import translations from './translations.yml'; -import {gql} from 'react-apollo'; export default { translations, slots: { commentAuthorTags: [SubscriberBadge] } -}; \ No newline at end of file +}; From 343d4418b073ce2876799a8a841e0d306441c42e Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 2 Oct 2017 16:23:56 -0300 Subject: [PATCH 4/5] eslint updated --- plugins/talk-plugin-subscriber/.eslintrc.json | 4 ++++ .../client/.eslintrc.json | 22 +------------------ 2 files changed, 5 insertions(+), 21 deletions(-) create mode 100644 plugins/talk-plugin-subscriber/.eslintrc.json diff --git a/plugins/talk-plugin-subscriber/.eslintrc.json b/plugins/talk-plugin-subscriber/.eslintrc.json new file mode 100644 index 000000000..d7d291614 --- /dev/null +++ b/plugins/talk-plugin-subscriber/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "@coralproject/eslint-config-talk" + } + \ No newline at end of file diff --git a/plugins/talk-plugin-subscriber/client/.eslintrc.json b/plugins/talk-plugin-subscriber/client/.eslintrc.json index 9fe56bd14..c8a6db18a 100644 --- a/plugins/talk-plugin-subscriber/client/.eslintrc.json +++ b/plugins/talk-plugin-subscriber/client/.eslintrc.json @@ -1,23 +1,3 @@ { - "env": { - "browser": true, - "es6": true, - "mocha": true - }, - "parserOptions": { - "sourceType": "module", - "ecmaFeatures": { - "experimentalObjectRestSpread": true, - "jsx": true - } - }, - "parser": "babel-eslint", - "plugins": [ - "react" - ], - "rules": { - "react/jsx-uses-react": "error", - "react/jsx-uses-vars": "error", - "no-console": ["warn", { "allow": ["warn", "error"] }] - } + "extends": "@coralproject/eslint-config-talk/client" } From dde1f7b5be42bc548e762113c4eca9a98dd33248 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 2 Oct 2017 16:26:21 -0300 Subject: [PATCH 5/5] Assigned by removed --- client/coral-embed-stream/src/graphql/index.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/client/coral-embed-stream/src/graphql/index.js b/client/coral-embed-stream/src/graphql/index.js index 228efb25b..3f6fd4832 100644 --- a/client/coral-embed-stream/src/graphql/index.js +++ b/client/coral-embed-stream/src/graphql/index.js @@ -157,10 +157,6 @@ export default { created_at: new Date().toISOString(), __typename: 'Tag' }, - assigned_by: { - id: auth.user.id, - __typename: 'User' - }, __typename: 'TagLink' })), status: 'NONE',