diff --git a/.eslintignore b/.eslintignore index afa7bf16d..cd0b1a983 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,15 +3,15 @@ docs client/lib **/*.html plugins/* -!plugins/coral-plugin-facebook-auth -!plugins/coral-plugin-auth -!plugins/coral-plugin-respect -!plugins/coral-plugin-offtopic -!plugins/coral-plugin-like -!plugins/coral-plugin-mod -!plugins/coral-plugin-love -!plugins/coral-plugin-viewing-options -!plugins/coral-plugin-comment-content +!plugins/talk-plugin-facebook-auth +!plugins/talk-plugin-auth +!plugins/talk-plugin-respect +!plugins/talk-plugin-offtopic +!plugins/talk-plugin-like +!plugins/talk-plugin-mod +!plugins/talk-plugin-love +!plugins/talk-plugin-viewing-options +!plugins/talk-plugin-comment-content !plugins/talk-plugin-permalink !plugins/talk-plugin-featured-comments diff --git a/.gitignore b/.gitignore index 767066028..db7732cf5 100644 --- a/.gitignore +++ b/.gitignore @@ -18,15 +18,15 @@ coverage/ plugins.json plugins/* -!plugins/coral-plugin-facebook-auth -!plugins/coral-plugin-auth -!plugins/coral-plugin-respect -!plugins/coral-plugin-offtopic -!plugins/coral-plugin-like -!plugins/coral-plugin-mod -!plugins/coral-plugin-love -!plugins/coral-plugin-viewing-options -!plugins/coral-plugin-comment-content +!plugins/talk-plugin-facebook-auth +!plugins/talk-plugin-auth +!plugins/talk-plugin-respect +!plugins/talk-plugin-offtopic +!plugins/talk-plugin-like +!plugins/talk-plugin-mod +!plugins/talk-plugin-love +!plugins/talk-plugin-viewing-options +!plugins/talk-plugin-comment-content !plugins/talk-plugin-permalink !plugins/talk-plugin-featured-comments diff --git a/app.js b/app.js index a6b669b0e..108ad2e11 100644 --- a/app.js +++ b/app.js @@ -96,12 +96,14 @@ app.use(passport.initialize()); // (if present) the JWT on the request. app.use('/api', authentication); +const pubsubClient = pubsub.createClientFactory(); + // To handle dependancy injection safer, we inject the pubsub handle onto the // request object. app.use('/api', (req, res, next) => { // Attach the pubsub handle to the requests. - req.pubsub = pubsub.createClient(); + req.pubsub = pubsubClient(); // Forward on the request. next(); diff --git a/bin/templates/plugin/client/translations.yml b/bin/templates/plugin/client/translations.yml index d8407b801..8961fd6e7 100644 --- a/bin/templates/plugin/client/translations.yml +++ b/bin/templates/plugin/client/translations.yml @@ -4,11 +4,11 @@ # # ``` # en: -# coral-plugin-respect: +# talk-plugin-respect: # respect: Respect # respected: Respected # es: -# coral-plugin-respect: +# talk-plugin-respect: # respect: Respetar # respected: Respetado # ``` diff --git a/client/coral-admin/src/routes/Community/components/User.js b/client/coral-admin/src/routes/Community/components/User.js index b6a01f016..5aea161b5 100644 --- a/client/coral-admin/src/routes/Community/components/User.js +++ b/client/coral-admin/src/routes/Community/components/User.js @@ -2,7 +2,7 @@ import React from 'react'; import styles from './Community.css'; import ActionButton from './ActionButton'; -import {username} from 'coral-plugin-flags/helpers/flagReasons'; +import {username} from 'talk-plugin-flags/helpers/flagReasons'; import ActionsMenu from 'coral-admin/src/components/ActionsMenu'; import ActionsMenuItem from 'coral-admin/src/components/ActionsMenuItem'; diff --git a/client/coral-embed-stream/src/components/Comment.js b/client/coral-embed-stream/src/components/Comment.js index 8e0539279..54bbfea50 100644 --- a/client/coral-embed-stream/src/components/Comment.js +++ b/client/coral-embed-stream/src/components/Comment.js @@ -1,11 +1,11 @@ import React from 'react'; import PropTypes from 'prop-types'; -import AuthorName from 'coral-plugin-author-name/AuthorName'; -import TagLabel from 'coral-plugin-tag-label/TagLabel'; -import PubDate from 'coral-plugin-pubdate/PubDate'; -import {ReplyBox, ReplyButton} from 'coral-plugin-replies'; -import {FlagComment} from 'coral-plugin-flags'; +import AuthorName from 'talk-plugin-author-name/AuthorName'; +import TagLabel from 'talk-plugin-tag-label/TagLabel'; +import PubDate from 'talk-plugin-pubdate/PubDate'; +import {ReplyBox, ReplyButton} from 'talk-plugin-replies'; +import {FlagComment} from 'talk-plugin-flags'; import {can} from 'coral-framework/services/perms'; import {TransitionGroup} from 'react-transition-group'; import cn from 'classnames'; diff --git a/client/coral-embed-stream/src/components/EditableCommentContent.js b/client/coral-embed-stream/src/components/EditableCommentContent.js index 98be14d13..6512c8cdd 100644 --- a/client/coral-embed-stream/src/components/EditableCommentContent.js +++ b/client/coral-embed-stream/src/components/EditableCommentContent.js @@ -1,6 +1,6 @@ import React, {PropTypes} from 'react'; -import {notifyForNewCommentStatus} from 'coral-plugin-commentbox/CommentBox'; -import {CommentForm} from 'coral-plugin-commentbox/CommentForm'; +import {notifyForNewCommentStatus} from 'talk-plugin-commentbox/CommentBox'; +import {CommentForm} from 'talk-plugin-commentbox/CommentForm'; import styles from './Comment.css'; import {CountdownSeconds} from './CountdownSeconds'; import {getEditableUntilDate} from './util'; diff --git a/client/coral-embed-stream/src/components/Stream.js b/client/coral-embed-stream/src/components/Stream.js index e6e184dfa..8e4e81274 100644 --- a/client/coral-embed-stream/src/components/Stream.js +++ b/client/coral-embed-stream/src/components/Stream.js @@ -4,15 +4,15 @@ import {StreamError} from './StreamError'; import Comment from '../components/Comment'; import SuspendedAccount from './SuspendedAccount'; import Slot from 'coral-framework/components/Slot'; -import InfoBox from 'coral-plugin-infobox/InfoBox'; +import InfoBox from 'talk-plugin-infobox/InfoBox'; import {can} from 'coral-framework/services/perms'; -import {ModerationLink} from 'coral-plugin-moderation'; +import {ModerationLink} from 'talk-plugin-moderation'; import RestrictedMessageBox from 'coral-framework/components/RestrictedMessageBox'; import t, {timeago} from 'coral-framework/services/i18n'; import {getSlotComponents} from 'coral-framework/helpers/plugins'; -import CommentBox from 'coral-plugin-commentbox/CommentBox'; -import QuestionBox from 'coral-plugin-questionbox/QuestionBox'; +import CommentBox from 'talk-plugin-commentbox/CommentBox'; +import QuestionBox from 'talk-plugin-questionbox/QuestionBox'; import {Button, TabBar, Tab, TabCount, TabContent, TabPane} from 'coral-ui'; import cn from 'classnames'; diff --git a/client/coral-embed-stream/style/default.css b/client/coral-embed-stream/style/default.css index 90a6250a3..055107b33 100644 --- a/client/coral-embed-stream/style/default.css +++ b/client/coral-embed-stream/style/default.css @@ -79,7 +79,7 @@ body { } /* Info Box Styles */ -.coral-plugin-infobox-info { +.talk-plugin-infobox-info { top: 0; border: 0; background: #DEEDFF; @@ -94,26 +94,26 @@ body { } -.coral-plugin-infobox-info em{ +.talk-plugin-infobox-info em{ font-style: italic; } -.coral-plugin-infobox-info strong{ +.talk-plugin-infobox-info strong{ font-weight: bold; } -.coral-plugin-infobox-info blockquote{ +.talk-plugin-infobox-info blockquote{ border-left: solid 2px #2a2a2a; padding-left: 10px; } -.coral-plugin-infobox-info a{ +.talk-plugin-infobox-info a{ color: #2a2a2a; } /* Question Box Styles */ -.coral-plugin-questionbox-info { +.talk-plugin-questionbox-info { top: 0; border: 0; background: #F0F0F0; @@ -129,7 +129,7 @@ body { display: flex; } -.coral-plugin-questionbox-icon.bubble{ +.talk-plugin-questionbox-icon.bubble{ position: absolute; top: 8px; left: 10px; @@ -138,7 +138,7 @@ body { z-index: 0; } -.coral-plugin-questionbox-icon.person{ +.talk-plugin-questionbox-icon.person{ z-index: 2; top: 12px; left: 12px; @@ -147,7 +147,7 @@ body { color: #262626; } -.coral-plugin-questionbox-box { +.talk-plugin-questionbox-box { position: relative; border: 0; color: white; @@ -161,7 +161,7 @@ body { vertical-align: middle; } -.coral-plugin-questionbox-content { +.talk-plugin-questionbox-content { padding: 5px; display: flex; align-items: center; @@ -231,26 +231,26 @@ body { position: relative; } -.coral-plugin-commentcontent-text { +.talk-plugin-commentcontent-text { margin-bottom: 7px; font-size: 16px; font-weight: 100; line-height: 1.3; } -.coral-plugin-author-name-text { +.talk-plugin-author-name-text { display: inline-block; margin: 10px 5px 10px 0; font-weight: bold; } -.coral-plugin-author-name-bio-flag { +.talk-plugin-author-name-bio-flag { float: right; } /* Tag Labels */ -.coral-plugin-tag-label { +.talk-plugin-tag-label { background-color: #4C1066; color: white; display: inline-block; @@ -293,44 +293,44 @@ button.comment__action-button[disabled], color: #F00; } -.coral-plugin-pubdate-text { +.talk-plugin-pubdate-text { display: inline-block; } /* Flag Styles */ -.coral-plugin-flags-popup-form { +.talk-plugin-flags-popup-form { margin-bottom: 10px; } -.coral-plugin-flags-popup-header { +.talk-plugin-flags-popup-header { font-weight: bolder; font-size: 1.33rem; margin-bottom: 10px; } -.coral-plugin-flags-popup-radio { +.talk-plugin-flags-popup-radio { margin:5px; } -.coral-plugin-flags-popup-radio-label { +.talk-plugin-flags-popup-radio-label { margin:5px; font-weight: 400; font-size: .9rem; } -.coral-plugin-flags-popup-counter { +.talk-plugin-flags-popup-counter { float: left; margin-top: 21px; color: #999; } -.coral-plugin-flags-popup-button { +.talk-plugin-flags-popup-button { float: right; margin-top: 10px; } -.coral-plugin-flags-reason-text { +.talk-plugin-flags-reason-text { margin-left: 20px; margin-top: 5px; width: 75%; diff --git a/client/coral-framework/reducers/index.js b/client/coral-framework/reducers/index.js index 8928cae93..f1ac580dc 100644 --- a/client/coral-framework/reducers/index.js +++ b/client/coral-framework/reducers/index.js @@ -1,7 +1,7 @@ import auth from './auth'; import user from './user'; import asset from './asset'; -import {reducer as commentBox} from '../../coral-plugin-commentbox'; +import {reducer as commentBox} from '../../talk-plugin-commentbox'; export default { auth, diff --git a/client/coral-settings/containers/ProfileContainer.js b/client/coral-settings/containers/ProfileContainer.js index a4cb9459f..91de923b2 100644 --- a/client/coral-settings/containers/ProfileContainer.js +++ b/client/coral-settings/containers/ProfileContainer.js @@ -9,7 +9,7 @@ import {link} from 'coral-framework/services/pym'; import NotLoggedIn from '../components/NotLoggedIn'; import IgnoredUsers from '../components/IgnoredUsers'; import {Spinner} from 'coral-ui'; -import CommentHistory from 'coral-plugin-history/CommentHistory'; +import CommentHistory from 'talk-plugin-history/CommentHistory'; import {showSignInDialog, checkLogin} from 'coral-framework/actions/auth'; import t from 'coral-framework/services/i18n'; diff --git a/client/coral-plugin-author-name/AuthorName.js b/client/talk-plugin-author-name/AuthorName.js similarity index 91% rename from client/coral-plugin-author-name/AuthorName.js rename to client/talk-plugin-author-name/AuthorName.js index 7d453d96f..89835a742 100644 --- a/client/coral-plugin-author-name/AuthorName.js +++ b/client/talk-plugin-author-name/AuthorName.js @@ -1,5 +1,5 @@ import React, {Component} from 'react'; -const packagename = 'coral-plugin-author-name'; +const packagename = 'talk-plugin-author-name'; export default class AuthorName extends Component { diff --git a/client/coral-plugin-author-name/styles.css b/client/talk-plugin-author-name/styles.css similarity index 100% rename from client/coral-plugin-author-name/styles.css rename to client/talk-plugin-author-name/styles.css diff --git a/client/coral-plugin-commentbox/CommentBox.js b/client/talk-plugin-commentbox/CommentBox.js similarity index 100% rename from client/coral-plugin-commentbox/CommentBox.js rename to client/talk-plugin-commentbox/CommentBox.js diff --git a/client/coral-plugin-commentbox/CommentForm.js b/client/talk-plugin-commentbox/CommentForm.js similarity index 100% rename from client/coral-plugin-commentbox/CommentForm.js rename to client/talk-plugin-commentbox/CommentForm.js diff --git a/client/coral-plugin-commentbox/__tests__/commentBox.spec.js b/client/talk-plugin-commentbox/__tests__/commentBox.spec.js similarity index 100% rename from client/coral-plugin-commentbox/__tests__/commentBox.spec.js rename to client/talk-plugin-commentbox/__tests__/commentBox.spec.js diff --git a/client/coral-plugin-commentbox/actions.js b/client/talk-plugin-commentbox/actions.js similarity index 100% rename from client/coral-plugin-commentbox/actions.js rename to client/talk-plugin-commentbox/actions.js diff --git a/client/coral-plugin-commentbox/constants.js b/client/talk-plugin-commentbox/constants.js similarity index 100% rename from client/coral-plugin-commentbox/constants.js rename to client/talk-plugin-commentbox/constants.js diff --git a/client/coral-plugin-commentbox/index.js b/client/talk-plugin-commentbox/index.js similarity index 100% rename from client/coral-plugin-commentbox/index.js rename to client/talk-plugin-commentbox/index.js diff --git a/client/coral-plugin-commentbox/reducer.js b/client/talk-plugin-commentbox/reducer.js similarity index 100% rename from client/coral-plugin-commentbox/reducer.js rename to client/talk-plugin-commentbox/reducer.js diff --git a/client/coral-plugin-commentbox/styles.css b/client/talk-plugin-commentbox/styles.css similarity index 100% rename from client/coral-plugin-commentbox/styles.css rename to client/talk-plugin-commentbox/styles.css diff --git a/client/coral-plugin-flags/components/FlagButton.js b/client/talk-plugin-flags/components/FlagButton.js similarity index 99% rename from client/coral-plugin-flags/components/FlagButton.js rename to client/talk-plugin-flags/components/FlagButton.js index 51b88391e..6b7e3cc56 100644 --- a/client/coral-plugin-flags/components/FlagButton.js +++ b/client/talk-plugin-flags/components/FlagButton.js @@ -8,7 +8,7 @@ import ClickOutside from 'coral-framework/components/ClickOutside'; import cn from 'classnames'; import styles from './styles.css'; -const name = 'coral-plugin-flags'; +const name = 'talk-plugin-flags'; export default class FlagButton extends Component { diff --git a/client/coral-plugin-flags/components/FlagComment.js b/client/talk-plugin-flags/components/FlagComment.js similarity index 100% rename from client/coral-plugin-flags/components/FlagComment.js rename to client/talk-plugin-flags/components/FlagComment.js diff --git a/client/coral-plugin-flags/components/styles.css b/client/talk-plugin-flags/components/styles.css similarity index 100% rename from client/coral-plugin-flags/components/styles.css rename to client/talk-plugin-flags/components/styles.css diff --git a/client/coral-plugin-flags/helpers/flagReasons.js b/client/talk-plugin-flags/helpers/flagReasons.js similarity index 100% rename from client/coral-plugin-flags/helpers/flagReasons.js rename to client/talk-plugin-flags/helpers/flagReasons.js diff --git a/client/coral-plugin-flags/index.js b/client/talk-plugin-flags/index.js similarity index 100% rename from client/coral-plugin-flags/index.js rename to client/talk-plugin-flags/index.js diff --git a/client/coral-plugin-history/Comment.css b/client/talk-plugin-history/Comment.css similarity index 100% rename from client/coral-plugin-history/Comment.css rename to client/talk-plugin-history/Comment.css diff --git a/client/coral-plugin-history/Comment.js b/client/talk-plugin-history/Comment.js similarity index 96% rename from client/coral-plugin-history/Comment.js rename to client/talk-plugin-history/Comment.js index 78d48c1e6..f90362e2d 100644 --- a/client/coral-plugin-history/Comment.js +++ b/client/talk-plugin-history/Comment.js @@ -2,7 +2,7 @@ import React, {PropTypes} from 'react'; import {Icon} from '../coral-ui'; import styles from './Comment.css'; import Slot from 'coral-framework/components/Slot'; -import PubDate from '../coral-plugin-pubdate/PubDate'; +import PubDate from '../talk-plugin-pubdate/PubDate'; import CommentContent from '../coral-embed-stream/src/components/CommentContent'; import t from 'coral-framework/services/i18n'; diff --git a/client/coral-plugin-history/CommentHistory.css b/client/talk-plugin-history/CommentHistory.css similarity index 100% rename from client/coral-plugin-history/CommentHistory.css rename to client/talk-plugin-history/CommentHistory.css diff --git a/client/coral-plugin-history/CommentHistory.js b/client/talk-plugin-history/CommentHistory.js similarity index 100% rename from client/coral-plugin-history/CommentHistory.js rename to client/talk-plugin-history/CommentHistory.js diff --git a/client/coral-plugin-infobox/InfoBox.js b/client/talk-plugin-infobox/InfoBox.js similarity index 84% rename from client/coral-plugin-infobox/InfoBox.js rename to client/talk-plugin-infobox/InfoBox.js index dd94cfecd..3b9d7da75 100644 --- a/client/coral-plugin-infobox/InfoBox.js +++ b/client/talk-plugin-infobox/InfoBox.js @@ -1,7 +1,7 @@ import React from 'react'; import Markdown from './Markdown'; -const packagename = 'coral-plugin-infobox'; +const packagename = 'talk-plugin-infobox'; const InfoBox = ({enable, content}) =>
{timeago(created_at)} diff --git a/client/coral-plugin-questionbox/QuestionBox.js b/client/talk-plugin-questionbox/QuestionBox.js similarity index 91% rename from client/coral-plugin-questionbox/QuestionBox.js rename to client/talk-plugin-questionbox/QuestionBox.js index 3ad439c2a..d22801bae 100644 --- a/client/coral-plugin-questionbox/QuestionBox.js +++ b/client/talk-plugin-questionbox/QuestionBox.js @@ -1,5 +1,5 @@ import React from 'react'; -const packagename = 'coral-plugin-questionbox'; +const packagename = 'talk-plugin-questionbox'; import Slot from 'coral-framework/components/Slot'; const QuestionBox = ({enable, content}) => diff --git a/client/coral-plugin-replies/ReplyBox.js b/client/talk-plugin-replies/ReplyBox.js similarity index 92% rename from client/coral-plugin-replies/ReplyBox.js rename to client/talk-plugin-replies/ReplyBox.js index 7e0bd04d5..58cb0110d 100644 --- a/client/coral-plugin-replies/ReplyBox.js +++ b/client/talk-plugin-replies/ReplyBox.js @@ -1,7 +1,7 @@ import React, {Component, PropTypes} from 'react'; -import CommentBox from '../coral-plugin-commentbox/CommentBox'; +import CommentBox from '../talk-plugin-commentbox/CommentBox'; -const name = 'coral-plugin-replies'; +const name = 'talk-plugin-replies'; class ReplyBox extends Component { diff --git a/client/coral-plugin-replies/ReplyButton.css b/client/talk-plugin-replies/ReplyButton.css similarity index 100% rename from client/coral-plugin-replies/ReplyButton.css rename to client/talk-plugin-replies/ReplyButton.css diff --git a/client/coral-plugin-replies/ReplyButton.js b/client/talk-plugin-replies/ReplyButton.js similarity index 94% rename from client/coral-plugin-replies/ReplyButton.js rename to client/talk-plugin-replies/ReplyButton.js index b4c1ccfbc..8ea113c97 100644 --- a/client/coral-plugin-replies/ReplyButton.js +++ b/client/talk-plugin-replies/ReplyButton.js @@ -5,7 +5,7 @@ import t from 'coral-framework/services/i18n'; import cn from 'classnames'; import styles from './ReplyButton.css'; -const name = 'coral-plugin-replies'; +const name = 'talk-plugin-replies'; const ReplyButton = ({onClick}) => { return ( diff --git a/client/coral-plugin-replies/index.js b/client/talk-plugin-replies/index.js similarity index 100% rename from client/coral-plugin-replies/index.js rename to client/talk-plugin-replies/index.js diff --git a/client/coral-plugin-tag-label/TagLabel.js b/client/talk-plugin-tag-label/TagLabel.js similarity index 50% rename from client/coral-plugin-tag-label/TagLabel.js rename to client/talk-plugin-tag-label/TagLabel.js index 4a5d3632f..8c6f19a60 100644 --- a/client/coral-plugin-tag-label/TagLabel.js +++ b/client/talk-plugin-tag-label/TagLabel.js @@ -1,6 +1,6 @@ import React from 'react'; -const TagLabel = ({children}) =>
+const TagLabel = ({children}) =>
{children}
; diff --git a/docs/_docs/03-02-architecture-tags.md b/docs/_docs/03-02-architecture-tags.md index 5df977b9b..1b2218cae 100644 --- a/docs/_docs/03-02-architecture-tags.md +++ b/docs/_docs/03-02-architecture-tags.md @@ -26,10 +26,10 @@ Tag Definitions must be created in order for the system to determine what tags a Tag Definitions do not contain any logic themselves but provide information that other parts of the system can use to specify which models a tag can be applied to (models) and perform authorization logic (permissions). -Take the tag created by `coral-plugin-offtopic` as an example. +Take the tag created by `talk-plugin-offtopic` as an example. ``` -// coral-plugin-offtopic/index.js +// talk-plugin-offtopic/index.js module.exports = { tags: [ { diff --git a/docs/_docs/04-03-plugins-client.md b/docs/_docs/04-03-plugins-client.md index 4d2e2aba3..052b90873 100644 --- a/docs/_docs/04-03-plugins-client.md +++ b/docs/_docs/04-03-plugins-client.md @@ -134,7 +134,7 @@ In this example we add our reaction component to the `commentReaction` Slot ```js import React from 'react'; -import {withReaction} from 'coral-plugin-api'; +import {withReaction} from 'talk-plugin-api'; class LoveButton extends React.Component { handleClick = () => { @@ -177,7 +177,7 @@ This feature introduces `withReaction` HOC. `withReaction` takes, as argument, * `count` - The reaction count -For full reference: Please, check `coral-plugin-love`: [LoveButton.js](https://github.com/coralproject/talk/blob/master/plugins/coral-plugin-love/client/LoveButton.js) +For full reference: Please, check `talk-plugin-love`: [LoveButton.js](https://github.com/coralproject/talk/blob/master/plugins/talk-plugin-love/client/LoveButton.js) ### Comment Stream diff --git a/docs/_docs/04-05-plugins-experimental.md b/docs/_docs/04-05-plugins-experimental.md index be872572b..073094008 100644 --- a/docs/_docs/04-05-plugins-experimental.md +++ b/docs/_docs/04-05-plugins-experimental.md @@ -43,7 +43,7 @@ We can easily trigger `Talk` actions in our plugin Components. import React, {Component} from 'react'; import {connect} from 'react-redux'; import {bindActionCreators} from 'redux'; -import {addTag, removeTag} from 'coral-plugin-commentbox/actions'; +import {addTag, removeTag} from 'talk-plugin-commentbox/actions'; class MyButton extends Component { render() { diff --git a/graph/subscriptions.js b/graph/subscriptions.js index b8b4f2c0f..adac849e0 100644 --- a/graph/subscriptions.js +++ b/graph/subscriptions.js @@ -127,13 +127,15 @@ const setupFunctions = plugins.get('server', 'setupFunctions').reduce((acc, {plu }), }); +const pubsubClient = pubsub.createClientFactory(); + /** * This creates a new subscription manager. */ const createSubscriptionManager = (server) => new SubscriptionServer({ subscriptionManager: new SubscriptionManager({ schema, - pubsub: pubsub.createClient(), + pubsub: pubsubClient(), setupFunctions, }), onConnect: ({token}, connection) => { diff --git a/plugin-api/alpha/client/actions/index.js b/plugin-api/alpha/client/actions/index.js index 8e8e11c0a..f6b2427a8 100644 --- a/plugin-api/alpha/client/actions/index.js +++ b/plugin-api/alpha/client/actions/index.js @@ -1,2 +1,2 @@ -export {addTag, removeTag} from 'coral-plugin-commentbox/actions'; +export {addTag, removeTag} from 'talk-plugin-commentbox/actions'; export {addCommentClassName, removeCommentClassName} from 'coral-embed-stream/src/actions/stream'; diff --git a/plugins.default.json b/plugins.default.json index 4a1ea3282..05da159b7 100644 --- a/plugins.default.json +++ b/plugins.default.json @@ -1,17 +1,17 @@ { "server": [ - "coral-plugin-auth", - "coral-plugin-respect", - "coral-plugin-offtopic", - "coral-plugin-facebook-auth", + "talk-plugin-auth", + "talk-plugin-respect", + "talk-plugin-offtopic", + "talk-plugin-facebook-auth", "talk-plugin-featured-comments" ], "client": [ - "coral-plugin-respect", - "coral-plugin-auth", - "coral-plugin-offtopic", - "coral-plugin-viewing-options", - "coral-plugin-comment-content", + "talk-plugin-respect", + "talk-plugin-auth", + "talk-plugin-offtopic", + "talk-plugin-viewing-options", + "talk-plugin-comment-content", "talk-plugin-permalink", "talk-plugin-featured-comments" ] diff --git a/plugins/coral-plugin-mod/client/components/Box.js b/plugins/coral-plugin-mod/client/components/Box.js deleted file mode 100644 index b072c8917..000000000 --- a/plugins/coral-plugin-mod/client/components/Box.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import styles from './styles.css'; - -export default (props) => ( -
- Comment Status: {props.comment.status} -
-); - diff --git a/plugins/coral-plugin-mod/client/components/Container.js b/plugins/coral-plugin-mod/client/components/Container.js deleted file mode 100644 index 9ba88bdde..000000000 --- a/plugins/coral-plugin-mod/client/components/Container.js +++ /dev/null @@ -1,32 +0,0 @@ -import React from 'react'; -import Box from './Box'; -import {Button} from 'plugin-api/beta/client/components/ui'; -import styles from './styles.css'; - -export default class Footer extends React.Component { - constructor() { - super(); - - this.state = { - show: false - }; - } - - handleClick = () => { - this.setState((state) => ({ - show: !state.show - })); - } - - render() { - const {show} = this.state; - return ( -
- - {show ? : null} -
- ); - } -} diff --git a/plugins/coral-plugin-mod/client/components/styles.css b/plugins/coral-plugin-mod/client/components/styles.css deleted file mode 100644 index 59bb63c3d..000000000 --- a/plugins/coral-plugin-mod/client/components/styles.css +++ /dev/null @@ -1,8 +0,0 @@ -.container { - padding: 0 14px 10px; -} - -.box { - font-size: 12px; - padding: 10px 14px; -} \ No newline at end of file diff --git a/plugins/coral-plugin-mod/client/index.js b/plugins/coral-plugin-mod/client/index.js deleted file mode 100644 index b0ea304f4..000000000 --- a/plugins/coral-plugin-mod/client/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import Container from './components/Container'; - -export default { - slots: { - adminCommentDetailArea: [Container], - } -}; diff --git a/plugins/coral-plugin-mod/index.js b/plugins/coral-plugin-mod/index.js deleted file mode 100644 index 85dfb349b..000000000 --- a/plugins/coral-plugin-mod/index.js +++ /dev/null @@ -1,2 +0,0 @@ -module.exports = {}; - diff --git a/plugins/coral-plugin-viewing-options/client/.babelrc b/plugins/coral-plugin-viewing-options/client/.babelrc deleted file mode 100644 index 60be246eb..000000000 --- a/plugins/coral-plugin-viewing-options/client/.babelrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "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/coral-plugin-viewing-options/client/.eslintrc.json b/plugins/coral-plugin-viewing-options/client/.eslintrc.json deleted file mode 100644 index 9fe56bd14..000000000 --- a/plugins/coral-plugin-viewing-options/client/.eslintrc.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "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/coral-plugin-auth/client/.babelrc b/plugins/talk-plugin-auth/client/.babelrc similarity index 100% rename from plugins/coral-plugin-auth/client/.babelrc rename to plugins/talk-plugin-auth/client/.babelrc diff --git a/plugins/coral-plugin-auth/client/.eslintrc.json b/plugins/talk-plugin-auth/client/.eslintrc.json similarity index 100% rename from plugins/coral-plugin-auth/client/.eslintrc.json rename to plugins/talk-plugin-auth/client/.eslintrc.json diff --git a/plugins/coral-plugin-auth/client/components/ChangeUsername.js b/plugins/talk-plugin-auth/client/components/ChangeUsername.js similarity index 100% rename from plugins/coral-plugin-auth/client/components/ChangeUsername.js rename to plugins/talk-plugin-auth/client/components/ChangeUsername.js diff --git a/plugins/coral-plugin-auth/client/components/CreateUsernameDialog.js b/plugins/talk-plugin-auth/client/components/CreateUsernameDialog.js similarity index 100% rename from plugins/coral-plugin-auth/client/components/CreateUsernameDialog.js rename to plugins/talk-plugin-auth/client/components/CreateUsernameDialog.js diff --git a/plugins/coral-plugin-auth/client/components/FakeComment.js b/plugins/talk-plugin-auth/client/components/FakeComment.js similarity index 61% rename from plugins/coral-plugin-auth/client/components/FakeComment.js rename to plugins/talk-plugin-auth/client/components/FakeComment.js index 5517b72aa..b6b4e7609 100644 --- a/plugins/coral-plugin-auth/client/components/FakeComment.js +++ b/plugins/talk-plugin-auth/client/components/FakeComment.js @@ -1,9 +1,9 @@ import React from 'react'; import t from 'coral-framework/services/i18n'; -import {ReplyButton} from 'coral-plugin-replies'; -import PubDate from 'coral-plugin-pubdate/PubDate'; +import {ReplyButton} from 'talk-plugin-replies'; +import PubDate from 'talk-plugin-pubdate/PubDate'; import Slot from 'coral-framework/components/Slot'; -import AuthorName from 'coral-plugin-author-name/AuthorName'; +import AuthorName from 'talk-plugin-author-name/AuthorName'; import styles from 'coral-embed-stream/src/components/Comment.css'; export const FakeComment = ({username, created_at, comment}) => ( @@ -13,13 +13,13 @@ export const FakeComment = ({username, created_at, comment}) => (
-
-
-
-
-
-
{ props.open ? ( -
+
    { React.Children.map(, (component) => { return React.createElement('li', { - className: 'coral-plugin-viewing-options-item' + className: 'talk-plugin-viewing-options-item' }, component); }) } diff --git a/plugins/coral-plugin-viewing-options/client/constants.js b/plugins/talk-plugin-viewing-options/client/constants.js similarity index 100% rename from plugins/coral-plugin-viewing-options/client/constants.js rename to plugins/talk-plugin-viewing-options/client/constants.js diff --git a/plugins/coral-plugin-viewing-options/client/containers/ViewingOptions.js b/plugins/talk-plugin-viewing-options/client/containers/ViewingOptions.js similarity index 85% rename from plugins/coral-plugin-viewing-options/client/containers/ViewingOptions.js rename to plugins/talk-plugin-viewing-options/client/containers/ViewingOptions.js index 84900b9c6..22608828e 100644 --- a/plugins/coral-plugin-viewing-options/client/containers/ViewingOptions.js +++ b/plugins/talk-plugin-viewing-options/client/containers/ViewingOptions.js @@ -3,7 +3,7 @@ import {bindActionCreators} from 'redux'; import ViewingOptions from '../components/ViewingOptions'; import {openMenu, closeMenu} from '../actions'; -const mapStateToProps = ({coralPluginViewingOptions: state}) => ({ +const mapStateToProps = ({talkPluginViewingOptions: state}) => ({ open: state.open }); diff --git a/plugins/coral-plugin-viewing-options/client/index.js b/plugins/talk-plugin-viewing-options/client/index.js similarity index 100% rename from plugins/coral-plugin-viewing-options/client/index.js rename to plugins/talk-plugin-viewing-options/client/index.js diff --git a/plugins/coral-plugin-viewing-options/client/reducer.js b/plugins/talk-plugin-viewing-options/client/reducer.js similarity index 100% rename from plugins/coral-plugin-viewing-options/client/reducer.js rename to plugins/talk-plugin-viewing-options/client/reducer.js diff --git a/plugins/talk-plugin-viewing-options/client/translations.yml b/plugins/talk-plugin-viewing-options/client/translations.yml new file mode 100644 index 000000000..e69de29bb diff --git a/plugins/coral-plugin-viewing-options/index.js b/plugins/talk-plugin-viewing-options/index.js similarity index 100% rename from plugins/coral-plugin-viewing-options/index.js rename to plugins/talk-plugin-viewing-options/index.js diff --git a/routes/api/index.js b/routes/api/index.js index a3bc552f6..eccd8d435 100644 --- a/routes/api/index.js +++ b/routes/api/index.js @@ -1,9 +1,6 @@ const express = require('express'); const authorization = require('../../middleware/authorization'); const pkg = require('../../package.json'); -const { - WEBPACK -} = require('../../config'); const router = express.Router(); @@ -18,12 +15,4 @@ router.use('/users', require('./users')); router.use('/account', require('./account')); router.use('/setup', require('./setup')); -// Enable the kue app only if we aren't in webpack mode. -if (!WEBPACK) { - - // Bind the kue handler to the /kue path. - router.use('/kue', authorization.needed('ADMIN'), require('../../services/kue').kue.app); - -} - module.exports = router; diff --git a/secrets.js b/secrets.js index ee484a420..14b5fc922 100644 --- a/secrets.js +++ b/secrets.js @@ -34,7 +34,7 @@ if (JWT_SECRETS) { return new jwt.AsymmetricSecret(secret, JWT_ALG); })); - debug(`loaded ${JWT_SECRET.length} secrets`); + debug(`loaded ${JWT_SECRET.length} ${JWT_ALG.startsWith('HS') ? 'shared' : 'asymmetric'} secrets`); } else if (JWT_SECRET) { if (JWT_ALG.startsWith('HS')) { module.exports.jwt = new jwt.SharedSecret({ @@ -44,5 +44,5 @@ if (JWT_SECRETS) { module.exports.jwt = new jwt.AsymmetricSecret(JSON.parse(JWT_SECRET), JWT_ALG); } - debug('loaded 1 secret'); + debug(`loaded a ${JWT_ALG.startsWith('HS') ? 'shared' : 'asymmetric'} secret`); } diff --git a/services/kue.js b/services/kue.js index 1b3fb605a..0fa610faa 100644 --- a/services/kue.js +++ b/services/kue.js @@ -3,12 +3,26 @@ const redis = require('./redis'); module.exports = {}; -const kue = module.exports.kue = require('kue'); +const kue = require('kue'); // Note that unlike what the name createQueue suggests, it currently returns a // singleton Queue instance. So you can configure and use only a single Queue // object within your node.js process. -let Queue = module.exports.queue = null; +let queue = null; +const getQueue = () => { + if (queue) { + return queue; + } + + debug('init the queue'); + queue = kue.createQueue({ + redis: { + createClientFactory: () => redis.createClient() + } + }); + + return queue; +}; class Task { @@ -18,14 +32,6 @@ class Task { this.name = name; this.attempts = attempts; this.delay = delay; - - if (!Queue) { - module.exports.queue = Queue = kue.createQueue({ - redis: { - createClientFactory: redis.createClientFactory() - } - }); - } } /** @@ -36,7 +42,7 @@ class Task { debug(`Creating new job for Queue[${this.name}]`); return new Promise((resolve, reject) => { - let job = Queue + let job = getQueue() .create(this.name, data) .attempts(this.attempts) .delay(this.delay) @@ -57,7 +63,7 @@ class Task { * Process jobs for the queue. */ process(callback) { - return Queue.process(this.name, callback); + return getQueue().process(this.name, callback); } /** @@ -71,7 +77,7 @@ class Task { // Shutdown and give the queue 5 seconds to shutdown before we start // killing jobs. - Queue.shutdown(5000, (err) => { + getQueue().shutdown(5000, (err) => { if (err) { return reject(err); } @@ -139,18 +145,3 @@ if (process.env.NODE_ENV === 'test') { module.exports.Task = Task; } -module.exports.createTaskFactory = () => { - let taskInstance = null; - - return (options) => { - if (taskInstance) { - return taskInstance; - } - - options = Object.assign({}, options); - - taskInstance = new module.exports.Task(options); - - return taskInstance; - }; -}; diff --git a/services/mailer.js b/services/mailer.js index 7212979df..27672a35c 100644 --- a/services/mailer.js +++ b/services/mailer.js @@ -1,7 +1,6 @@ const debug = require('debug')('talk:services:mailer'); const nodemailer = require('nodemailer'); const kue = require('./kue'); -const taskFactory = kue.createTaskFactory(); const path = require('path'); const fs = require('fs'); const _ = require('lodash'); @@ -76,11 +75,9 @@ const mailer = module.exports = { /** * Create the new Task kue. */ - get task() { - return taskFactory({ - name: 'mailer' - }); - }, + task: new kue.Task({ + name: 'mailer' + }), sendSimple({template, locals, to, subject}) { diff --git a/services/pubsub.js b/services/pubsub.js index 56e0f3e4d..780aeba16 100644 --- a/services/pubsub.js +++ b/services/pubsub.js @@ -2,15 +2,22 @@ const {RedisPubSub} = require('graphql-redis-subscriptions'); const {connectionOptions} = require('./redis'); -let pubsubInstance = null; -module.exports = { - createClient: () => { - if (pubsubInstance) { - return pubsubInstance; +const createClient = () => new RedisPubSub({connection: connectionOptions}); + +const createClientFactory = () => { + let ins = null; + return () => { + if (ins) { + return ins; } - pubsubInstance = new RedisPubSub({connection: connectionOptions}); + ins = createClient(); - return pubsubInstance; - } + return ins; + }; +}; + +module.exports = { + createClient, + createClientFactory }; diff --git a/services/scraper.js b/services/scraper.js index 40aac29ad..3d9a2c894 100644 --- a/services/scraper.js +++ b/services/scraper.js @@ -1,5 +1,4 @@ const kue = require('./kue'); -const taskFactory = kue.createTaskFactory(); const debug = require('debug')('talk:services:scraper'); const AssetModel = require('../models/asset'); const AssetsService = require('./assets'); @@ -15,11 +14,9 @@ const scraper = { /** * Create the new Task kue singleton. */ - get task() { - return taskFactory({ - name: 'scraper' - }); - }, + task: new kue.Task({ + name: 'scraper' + }), /** * Creates a new scraper job and scrapes the url when it gets processed. diff --git a/test/e2e/pages/embedStreamPage.js b/test/e2e/pages/embedStreamPage.js index 536e58b38..75e9e0ecd 100644 --- a/test/e2e/pages/embedStreamPage.js +++ b/test/e2e/pages/embedStreamPage.js @@ -111,52 +111,52 @@ module.exports = { selector: '#coralStream #logout' }, commentBox: { - selector: '.coral-plugin-commentbox-textarea' + selector: '.talk-plugin-commentbox-textarea' }, postButton: { - selector: '#commentBox .coral-plugin-commentbox-button' + selector: '#commentBox .talk-plugin-commentbox-button' }, likeButton: { - selector: '.embed__stream .comment .coral-plugin-likes-container .coral-plugin-likes-button' + selector: '.embed__stream .comment .talk-plugin-likes-container .talk-plugin-likes-button' }, likeText: { - selector: '.embed__stream .comment .coral-plugin-likes-container .coral-plugin-likes-button .coral-plugin-likes-button-text' + selector: '.embed__stream .comment .talk-plugin-likes-container .talk-plugin-likes-button .talk-plugin-likes-button-text' }, likesCount: { - selector: '.embed__stream .comment .coral-plugin-likes-container .coral-plugin-likes-button .coral-plugin-likes-like-count' + selector: '.embed__stream .comment .talk-plugin-likes-container .talk-plugin-likes-button .talk-plugin-likes-like-count' }, flagButton: { - selector: '.embed__stream .comment .coral-plugin-flags-container .coral-plugin-flags-button' + selector: '.embed__stream .comment .talk-plugin-flags-container .talk-plugin-flags-button' }, flagPopUp: { - selector: '.embed__stream .comment .coral-plugin-flags-popup' + selector: '.embed__stream .comment .talk-plugin-flags-popup' }, flagCommentOption: { - selector: '.embed__stream .comment .coral-plugin-flags-popup .coral-plugin-flags-popup-radio-label[for="COMMENTS"]' + selector: '.embed__stream .comment .talk-plugin-flags-popup .talk-plugin-flags-popup-radio-label[for="COMMENTS"]' }, flagUsernameOption: { - selector: '.embed__stream .comment .coral-plugin-flags-popup .coral-plugin-flags-popup-radio-label[for="USERS"]' + selector: '.embed__stream .comment .talk-plugin-flags-popup .talk-plugin-flags-popup-radio-label[for="USERS"]' }, flagOtherOption: { - selector: '.embed__stream .comment .coral-plugin-flags-popup .coral-plugin-flags-popup-radio-label[for="other"]' + selector: '.embed__stream .comment .talk-plugin-flags-popup .talk-plugin-flags-popup-radio-label[for="other"]' }, flagHeaderMessage: { - selector: '.embed__stream .comment .coral-plugin-flags-popup .coral-plugin-flags-popup-header' + selector: '.embed__stream .comment .talk-plugin-flags-popup .talk-plugin-flags-popup-header' }, flagButtonText: { - selector: '.embed__stream .comment .coral-plugin-flags-button-text' + selector: '.embed__stream .comment .talk-plugin-flags-button-text' }, flagDoneButton: { - selector: '.embed__stream .comment .coral-plugin-flags-popup .coral-plugin-flags-popup-button' + selector: '.embed__stream .comment .talk-plugin-flags-popup .talk-plugin-flags-popup-button' }, permalinkButton: { - selector: '.embed__stream .comment .coral-plugin-permalinks-button' + selector: '.embed__stream .comment .talk-plugin-permalinks-button' }, permalinkPopUp: { - selector: '.embed__stream .comment .coral-plugin-permalinks-popover.active' + selector: '.embed__stream .comment .talk-plugin-permalinks-popover.active' }, permalinkInput: { - selector: '.embed__stream .comment .coral-plugin-permalinks-popover.active input' + selector: '.embed__stream .comment .talk-plugin-permalinks-popover.active input' }, registerButton: { selector: '#signInDialog #coralRegister' diff --git a/test/e2e/tests/EmbedStreamTests.js b/test/e2e/tests/EmbedStreamTests.js index ed1bc9c6f..0db0ad4d7 100644 --- a/test/e2e/tests/EmbedStreamTests.js +++ b/test/e2e/tests/EmbedStreamTests.js @@ -43,15 +43,15 @@ module.exports = { .click('#coralSignUpButton') .waitForElementVisible('#coralLogInButton', 10000) .click('#coralLogInButton') - .waitForElementVisible('.coral-plugin-commentbox-button', 4000) + .waitForElementVisible('.talk-plugin-commentbox-button', 4000) // Post a comment - .setValue('.coral-plugin-commentbox-textarea', mockComment) - .click('.coral-plugin-commentbox-button') - .waitForElementVisible('.embed__stream .coral-plugin-commentcontent-text', 1000) + .setValue('.talk-plugin-commentbox-textarea', mockComment) + .click('.talk-plugin-commentbox-button') + .waitForElementVisible('.embed__stream .talk-plugin-commentcontent-text', 1000) // Verify that it appears - .assert.containsText('.embed__stream .coral-plugin-commentcontent-text', mockComment); + .assert.containsText('.embed__stream .talk-plugin-commentcontent-text', mockComment); done(); }) .catch((err) => { @@ -70,9 +70,9 @@ module.exports = { .frame('coralStreamEmbed_iframe'); // Post a comment - client.waitForElementVisible('.coral-plugin-commentbox-button', 2000) - .setValue('.coral-plugin-commentbox-textarea', mockComment) - .click('.coral-plugin-commentbox-button'); + client.waitForElementVisible('.talk-plugin-commentbox-button', 2000) + .setValue('.talk-plugin-commentbox-textarea', mockComment) + .click('.talk-plugin-commentbox-button'); done(); }) .catch((err) => { @@ -92,17 +92,17 @@ module.exports = { .frame('coralStreamEmbed_iframe'); // Post a comment - client.waitForElementVisible('.coral-plugin-commentbox-button', 2000) - .setValue('.coral-plugin-commentbox-textarea', mockComment) - .click('.coral-plugin-commentbox-button') + client.waitForElementVisible('.talk-plugin-commentbox-button', 2000) + .setValue('.talk-plugin-commentbox-textarea', mockComment) + .click('.talk-plugin-commentbox-button') // Post a reply - .waitForElementVisible('.embed__stream .coral-plugin-replies-reply-button', 5000) - .click('.embed__stream .coral-plugin-replies-reply-button') + .waitForElementVisible('.embed__stream .talk-plugin-replies-reply-button', 5000) + .click('.embed__stream .talk-plugin-replies-reply-button') .waitForElementVisible('#replyText') .setValue('#replyText', mockReply) - .click('.embed__stream .coral-plugin-replies-textarea .coral-plugin-commentbox-button') + .click('.embed__stream .talk-plugin-replies-textarea .talk-plugin-commentbox-button') .waitForElementVisible('.embed__stream .reply', 20000) // Verify that it appears @@ -143,11 +143,11 @@ module.exports = { // .frame('coralStreamEmbed_iframe'); // // // Post a reply - // client.waitForElementVisible('.coral-plugin-replies-reply-button', 5000) - // .click('.coral-plugin-replies-reply-button') + // client.waitForElementVisible('.talk-plugin-replies-reply-button', 5000) + // .click('.talk-plugin-replies-reply-button') // .waitForElementVisible('#replyText') // .setValue('#replyText', mockReply) - // .click('.coral-plugin-replies-textarea button') + // .click('.talk-plugin-replies-textarea button') // .waitForElementVisible('#coral-notif', 1000) // // // Verify that it appears @@ -166,8 +166,8 @@ module.exports = { .frame('coralStreamEmbed_iframe'); // Verify that comment count is correct - client.waitForElementVisible('.coral-plugin-comment-count-text', 2000) - .assert.containsText('.coral-plugin-comment-count-text', '5 Comments'); + client.waitForElementVisible('.talk-plugin-comment-count-text', 2000) + .assert.containsText('.talk-plugin-comment-count-text', '5 Comments'); done(); }); }, diff --git a/views/article.ejs b/views/article.ejs index f1a7ba5d9..d31653baa 100644 --- a/views/article.ejs +++ b/views/article.ejs @@ -45,7 +45,7 @@ /** * You can disable rendering slot components of a plugin by doing: * - * 'coral-plugin-love': { + * 'talk-plugin-love': { * disable_components: true, * }, */