diff --git a/README.md b/README.md index 68547e7a8..a629065ff 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,10 @@ See our [Talk Documentation & Guides](https://coralproject.github.io/talk/index. See our guide to using and building [Talk Plugins](https://github.com/coralproject/talk/blob/master/PLUGINS.md). +### Recipes + +Recipes are plugin templates provided by the Coral Core team. Developers can use these recipes to build their own plugins. You can find all the Talk recipes here: https://github.com/coralproject/talk-recipes/ + ## Usage ### Installation diff --git a/client/coral-embed-stream/src/components/Comment.css b/client/coral-embed-stream/src/components/Comment.css index 7f96607a8..2b7198a1d 100644 --- a/client/coral-embed-stream/src/components/Comment.css +++ b/client/coral-embed-stream/src/components/Comment.css @@ -2,24 +2,23 @@ margin-left: 20px; margin-bottom: 16px; position: relative; - border-top: 1px solid rgba(0, 0, 0, 0.1); padding-top: 12px; } .rootLevel0:first-child { padding-top: 0; -} - -.root:first-child { border: 0; } .rootLevel0 { margin-left: 0px; + border-top: 1px solid rgba(0, 0, 0, 0.1); } .comment { - padding-left: 20px; + padding-left: 15px; + display: flex; + flex-flow: row; } .commentLevel0 { @@ -43,7 +42,7 @@ } .highlightedComment { - padding-left: 20px; + padding-left: 15px; border-left: 3px solid rgb(35,118,216); } @@ -158,6 +157,18 @@ animation: enter 1000ms; } +.commentContainer { + flex: auto; +} + +.commentAvatar { + max-width: 60px; +} + +.commentAvatar:empty { + display: none; +} + .timerIcon { vertical-align: middle; font-size: 14px; diff --git a/client/coral-embed-stream/src/components/Comment.js b/client/coral-embed-stream/src/components/Comment.js index 6a9f76771..19fa76483 100644 --- a/client/coral-embed-stream/src/components/Comment.js +++ b/client/coral-embed-stream/src/components/Comment.js @@ -382,22 +382,10 @@ export default class Comment extends React.Component { id={`c_${comment.id}`} >
- - {isStaff(comment.tags) ? Staff : null} - - - - { - (comment.editing && comment.editing.edited) - ?  ({t('comment.edited')}) - : null - } - - { (currentUser && (comment.user.id === currentUser.id)) && +
- /* User can edit/delete their own comment for a short window after posting */ - + + {isStaff(comment.tags) ? Staff : null} + + + { - commentIsStillEditable(comment) && - Edit + (comment.editing && comment.editing.edited) + ?  ({t('comment.edited')}) + : null } - } - { (currentUser && (comment.user.id !== currentUser.id)) && - /* TopRightMenu allows currentUser to ignore other users' comments */ - - + + + { (currentUser && (comment.user.id === currentUser.id)) && + + /* User can edit/delete their own comment for a short window after posting */ + + { + commentIsStillEditable(comment) && + Edit + } - } - { - this.state.isEditing - ? - :
- -
- } - -
+ } + { (currentUser && (comment.user.id !== currentUser.id)) && + + /* TopRightMenu allows currentUser to ignore other users' comments */ + + + + } + { + this.state.isEditing + ? + :
+ +
+ } +
- {activeReplyBox === comment.id - ? { - setActiveReplyBox(''); - }} - charCountEnable={charCountEnable} - maxCharCount={maxCharCount} - setActiveReplyBox={setActiveReplyBox} - parentId={(depth < THREADING_LEVEL) ? comment.id : parentId} - addNotification={addNotification} - postComment={postComment} - currentUser={currentUser} - assetId={asset.id} - /> - : null} - - {view.map((reply) => { - return commentIsIgnored(reply) - ? - : { + setActiveReplyBox(''); + }} charCountEnable={charCountEnable} maxCharCount={maxCharCount} - showSignInDialog={showSignInDialog} - commentIsIgnored={commentIsIgnored} - liveUpdates={liveUpdates} - key={reply.id} - comment={reply} - />; - })} - -
- + setActiveReplyBox={setActiveReplyBox} + parentId={(depth < THREADING_LEVEL) ? comment.id : parentId} + addNotification={addNotification} + postComment={postComment} + currentUser={currentUser} + assetId={asset.id} + /> + : null} + + + {view.map((reply) => { + return commentIsIgnored(reply) + ? + : ; + })} + +
+
); diff --git a/client/coral-embed-stream/src/containers/Comment.js b/client/coral-embed-stream/src/containers/Comment.js index 040d1a83e..1ffac82cf 100644 --- a/client/coral-embed-stream/src/containers/Comment.js +++ b/client/coral-embed-stream/src/containers/Comment.js @@ -10,7 +10,8 @@ const pluginFragments = getSlotsFragments([ 'commentInfoBar', 'commentActions', 'commentContent', - 'commentReactions' + 'commentReactions', + 'commentAvatar' ]); export default withFragments({ diff --git a/client/coral-framework/helpers/plugins.js b/client/coral-framework/helpers/plugins.js index d93bb30f9..625a0ee3f 100644 --- a/client/coral-framework/helpers/plugins.js +++ b/client/coral-framework/helpers/plugins.js @@ -16,10 +16,10 @@ export function getSlotComponents(slot) { return flatten(plugins // Filter out components that have slots and have been disabled in `plugin_config` - .filter((o) => o.module.slots && (!pluginConfig || !pluginConfig[o.name] || !pluginConfig[o.name].disable_components)) + .filter((o) => o.module.slots && (!pluginConfig || !pluginConfig[o.name] || !pluginConfig[o.name].disable_components)) - .filter((o) => o.module.slots[slot]) - .map((o) => o.module.slots[slot]) + .filter((o) => o.module.slots[slot]) + .map((o) => o.module.slots[slot]) ); } @@ -78,8 +78,8 @@ export function getSlotsFragments(slots) { } const components = uniq(flattenDeep(slots.map((slot) => { return plugins - .filter((o) => o.module.slots ? o.module.slots[slot] : false) - .map((o) => o.module.slots[slot]); + .filter((o) => o.module.slots ? o.module.slots[slot] : false) + .map((o) => o.module.slots[slot]); }))); const fragments = getComponentFragments(components); diff --git a/docs/_data/sidebars/talk_sidebar.yml b/docs/_data/sidebars/talk_sidebar.yml index 282defcb5..02cac9f3f 100644 --- a/docs/_data/sidebars/talk_sidebar.yml +++ b/docs/_data/sidebars/talk_sidebar.yml @@ -36,6 +36,9 @@ entries: - title: Setup url: /install-setup.html output: web + - title: Troubleshooting + url: /install-troubleshooting.html + output: web - title: Architecture output: web diff --git a/docs/install-troubleshooting.md b/docs/install-troubleshooting.md new file mode 100644 index 000000000..6ff42af05 --- /dev/null +++ b/docs/install-troubleshooting.md @@ -0,0 +1,22 @@ +--- +title: Installation Troubleshooting +keywords: install +sidebar: talk_sidebar +permalink: install-troubleshooting.html +summary: +--- + +This page tracks common issues that arise when installing Talk and provides resolutions. + +## The Talk server seems to be working but the stream isn't showing up on my page. + +Talk employs a _domain whitelist_ that controls which sites can contain comment threads. This prevents malicious folks from using your server to embed streams on unwanted pages. + +If your comment thread isn't showing: + +1. Log into your admin panel +1. Go to the Configure tab +1. Select the Tech Settings submenu +1. Ensure that your Domain is the Permitted Domains list + +Note: if your site has multiple subdomains, listing the domain itself (ie: `mydomain.com`) will enable Talk on all subdomains. If you would like to restrict Talk to certain subdomains, you must list all of them here (ie: `thisone.mydomain.com thatone.mydomain.com`). diff --git a/package.json b/package.json index 34e069c0f..71a07f4da 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,7 @@ "env-rewrite": "^1.0.2", "express": "^4.15.2", "express-session": "^1.15.1", + "file-loader": "^0.11.2", "form-data": "^2.1.2", "fs-extra": "^3.0.1", "gql-merge": "^0.0.4", @@ -209,6 +210,7 @@ "style-loader": "^0.16.0", "supertest": "^2.0.1", "timeago.js": "^2.0.3", + "url-loader": "^0.5.9", "webpack": "^2.3.1" }, "engines": { diff --git a/plugins.default.json b/plugins.default.json index a03e638eb..4a1ea3282 100644 --- a/plugins.default.json +++ b/plugins.default.json @@ -1,7 +1,6 @@ { "server": [ "coral-plugin-auth", - "coral-plugin-like", "coral-plugin-respect", "coral-plugin-offtopic", "coral-plugin-facebook-auth", @@ -9,7 +8,6 @@ ], "client": [ "coral-plugin-respect", - "coral-plugin-like", "coral-plugin-auth", "coral-plugin-offtopic", "coral-plugin-viewing-options", diff --git a/webpack.config.js b/webpack.config.js index c39726882..5c6655d17 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -70,10 +70,6 @@ const config = { ], test: /.css$/, }, - { - loader: 'url-loader?limit=100000', - test: /\.png$/ - }, { loader: 'file-loader', test: /\.(jpg|png|gif|svg)$/ diff --git a/yarn.lock b/yarn.lock index c536e2901..b2b169db2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3119,6 +3119,12 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" +file-loader@^0.11.2: + version "0.11.2" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34" + dependencies: + loader-utils "^1.0.2" + file-uri-to-path@0: version "0.0.2" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-0.0.2.tgz#37cdd1b5b905404b3f05e1b23645be694ff70f82" @@ -5245,7 +5251,7 @@ mime-types@~2.0.3: dependencies: mime-db "~1.12.0" -mime@1.3.4, mime@^1.3.4: +mime@1.3.4, mime@1.3.x, mime@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" @@ -8305,6 +8311,13 @@ urijs@1.16.1: version "1.16.1" resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.16.1.tgz#859ad31890f5f9528727be89f1932c94fb4731e2" +url-loader@^0.5.9: + version "0.5.9" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295" + dependencies: + loader-utils "^1.0.2" + mime "1.3.x" + url-search-params@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/url-search-params/-/url-search-params-0.9.0.tgz#e71d7764a6503533cbfe9771b2963cb61ea1c225"