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"