diff --git a/client/coral-configure/components/ConfigureCommentStream.css b/client/coral-configure/components/ConfigureCommentStream.css
index a8cbc36cb..5575e073b 100644
--- a/client/coral-configure/components/ConfigureCommentStream.css
+++ b/client/coral-configure/components/ConfigureCommentStream.css
@@ -12,10 +12,6 @@
padding: 0;
}
-.wrapper ul ul {
- padding-left: 20px
-}
-
.checkbox {
vertical-align: top;
margin: 12px 12px 12px 0;
@@ -36,4 +32,4 @@
.hidden {
display: none;
-}
+}
\ No newline at end of file
diff --git a/client/coral-configure/components/ConfigureCommentStream.js b/client/coral-configure/components/ConfigureCommentStream.js
index f84923caf..726b54e19 100644
--- a/client/coral-configure/components/ConfigureCommentStream.js
+++ b/client/coral-configure/components/ConfigureCommentStream.js
@@ -1,5 +1,6 @@
import React from 'react';
-import {Button, Checkbox, TextField} from 'coral-ui';
+import {Button, Checkbox} from 'coral-ui';
+import QuestionBoxBuilder from './QuestionBoxBuilder';
import styles from './ConfigureCommentStream.css';
@@ -55,15 +56,13 @@ export default ({handleChange, handleApply, changed, ...props}) => (
title: t('configure.enable_questionbox'),
description: t('configure.enable_questionbox_description')
}} />
-
-
-
+ {
+ props.questionBoxEnable &&
+ }
diff --git a/client/coral-configure/components/DefaultIcon.css b/client/coral-configure/components/DefaultIcon.css
new file mode 100644
index 000000000..6125d2f6a
--- /dev/null
+++ b/client/coral-configure/components/DefaultIcon.css
@@ -0,0 +1,27 @@
+.iconBubble{
+ position: absolute;
+ top: 8px;
+ left: 10px;
+ color: #9E9E9E;
+ font-size: 24px;
+ z-index: 0;
+}
+
+.iconPerson{
+ z-index: 2;
+ top: 12px;
+ left: 12px;
+ position: absolute;
+ font-size: 33px;
+ color: #262626;
+}
+
+.qbIconContainer {
+ position: relative;
+ border: 0;
+ color: white;
+ display: inline-block;
+ padding: 5px 20px;
+ vertical-align: middle;
+ width: 10px;
+}
\ No newline at end of file
diff --git a/client/coral-configure/components/DefaultIcon.js b/client/coral-configure/components/DefaultIcon.js
new file mode 100644
index 000000000..5f6f4876c
--- /dev/null
+++ b/client/coral-configure/components/DefaultIcon.js
@@ -0,0 +1,13 @@
+import React from 'react';
+import cn from 'classnames';
+import styles from './DefaultIcon.css';
+import {Icon} from 'coral-ui';
+
+const DefaultIcon = ({className}) => (
+
+
+
+
+);
+
+export default DefaultIcon;
diff --git a/client/coral-configure/components/QuestionBoxBuilder.css b/client/coral-configure/components/QuestionBoxBuilder.css
new file mode 100644
index 000000000..d8ddcd090
--- /dev/null
+++ b/client/coral-configure/components/QuestionBoxBuilder.css
@@ -0,0 +1,39 @@
+.qbBuilder {
+ margin-left: 50px;
+}
+
+.qbItemIconList {
+ padding: 0;
+ margin: 10px 0;
+}
+
+.qbItemIcon {
+ background: #F0F0F0;
+ width: 45px;
+ height: 45px;
+ font-size: 24px;
+ text-align: center;
+ line-height: 45px;
+ color: #252525;
+ border-radius: 3px;
+ display: inline-block;
+ overflow: hidden;
+ margin-right: 10px;
+ position: relative;
+}
+
+.qbItemIcon:hover {
+ cursor: pointer;
+}
+
+.qbItemIconActive {
+ border: solid 2px #00796B;
+}
+
+.defaultIcon {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
\ No newline at end of file
diff --git a/client/coral-configure/components/QuestionBoxBuilder.js b/client/coral-configure/components/QuestionBoxBuilder.js
new file mode 100644
index 000000000..f37b5da53
--- /dev/null
+++ b/client/coral-configure/components/QuestionBoxBuilder.js
@@ -0,0 +1,73 @@
+import React from 'react';
+import QuestionBox from 'talk-plugin-questionbox/QuestionBox';
+import {Icon, TextField} from 'coral-ui';
+import DefaultIcon from './DefaultIcon';
+import cn from 'classnames';
+import styles from './QuestionBoxBuilder.css';
+
+class QuestionBoxBuilder extends React.Component {
+ render() {
+ const {handleChange, questionBoxIcon, questionBoxContent} = this.props;
+
+ return (
+
+
Include an Icon
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default QuestionBoxBuilder;
\ No newline at end of file
diff --git a/client/coral-configure/containers/ConfigureStreamContainer.js b/client/coral-configure/containers/ConfigureStreamContainer.js
index 1db8f497a..59e81e8c5 100644
--- a/client/coral-configure/containers/ConfigureStreamContainer.js
+++ b/client/coral-configure/containers/ConfigureStreamContainer.js
@@ -27,6 +27,7 @@ class ConfigureStreamContainer extends Component {
handleApply (e) {
e.preventDefault();
const {elements} = e.target;
+ const {questionBoxIcon} = this.state.dirtySettings;
const premod = elements.premod.checked;
const questionBoxEnable = elements.qboxenable.checked;
const questionBoxContent = elements.qboxcontent.value;
@@ -38,6 +39,7 @@ class ConfigureStreamContainer extends Component {
moderation: premod ? 'PRE' : 'POST',
questionBoxEnable,
questionBoxContent,
+ questionBoxIcon,
premodLinksEnable
};
@@ -60,6 +62,9 @@ class ConfigureStreamContainer extends Component {
if (e.target && e.target.id === 'qboxcontent') {
changes.questionBoxContent = e.target.value;
}
+ if (e.currentTarget && e.currentTarget.id === 'qboxicon') {
+ changes.questionBoxIcon = e.currentTarget.dataset.icon;
+ }
if (e.target && e.target.id === 'plinksenable') {
changes.premodLinksEnable = e.target.value;
}
@@ -105,6 +110,7 @@ class ConfigureStreamContainer extends Component {
changed={this.state.changed}
premodLinksEnable={dirtySettings.premodLinksEnable}
premod={premod}
+ questionBoxIcon={dirtySettings.questionBoxIcon}
questionBoxEnable={dirtySettings.questionBoxEnable}
questionBoxContent={dirtySettings.questionBoxContent}
/>
diff --git a/client/coral-embed-stream/src/components/Stream.js b/client/coral-embed-stream/src/components/Stream.js
index b37d232f7..1f2ac3eca 100644
--- a/client/coral-embed-stream/src/components/Stream.js
+++ b/client/coral-embed-stream/src/components/Stream.js
@@ -129,6 +129,7 @@ class Stream extends React.Component {
{!banned &&
temporarilySuspended &&
diff --git a/client/coral-embed-stream/src/containers/Stream.js b/client/coral-embed-stream/src/containers/Stream.js
index ef5838453..9a0b73ecc 100644
--- a/client/coral-embed-stream/src/containers/Stream.js
+++ b/client/coral-embed-stream/src/containers/Stream.js
@@ -247,6 +247,7 @@ const fragments = {
premodLinksEnable
questionBoxEnable
questionBoxContent
+ questionBoxIcon
closeTimeout
closedMessage
charCountEnable
diff --git a/client/talk-plugin-questionbox/QuestionBox.css b/client/talk-plugin-questionbox/QuestionBox.css
index 2bee1020f..19902c984 100644
--- a/client/talk-plugin-questionbox/QuestionBox.css
+++ b/client/talk-plugin-questionbox/QuestionBox.css
@@ -14,6 +14,15 @@
display: flex;
}
+.icon {
+ z-index: 2;
+ top: 12px;
+ left: 12px;
+ position: absolute;
+ font-size: 33px;
+ color: #262626;
+}
+
.iconBubble{
position: absolute;
top: 8px;
@@ -32,7 +41,7 @@
color: #262626;
}
-.qbBox {
+.qbIconContainer {
position: relative;
border: 0;
color: white;
diff --git a/client/talk-plugin-questionbox/QuestionBox.js b/client/talk-plugin-questionbox/QuestionBox.js
index 3f804dacb..83e6db96f 100644
--- a/client/talk-plugin-questionbox/QuestionBox.js
+++ b/client/talk-plugin-questionbox/QuestionBox.js
@@ -5,13 +5,20 @@ import {Icon} from 'coral-ui';
import Slot from 'coral-framework/components/Slot';
-const QuestionBox = ({content, enable}) => (
+const QuestionBox = ({content, enable, icon = ''}) => (
-
-
-
-
-
+ {
+ icon === 'default' ? (
+
+
+
+
+ ) : (
+
+
+
+ )
+ }
{content}
diff --git a/graph/typeDefs.graphql b/graph/typeDefs.graphql
index 0e430cd84..9d1376372 100644
--- a/graph/typeDefs.graphql
+++ b/graph/typeDefs.graphql
@@ -545,6 +545,7 @@ type Settings {
premodLinksEnable: Boolean
questionBoxEnable: Boolean
questionBoxContent: String
+ questionBoxIcon: String
closeTimeout: Int
closedMessage: String
charCountEnable: Boolean
diff --git a/models/setting.js b/models/setting.js
index c9dd45984..222541df6 100644
--- a/models/setting.js
+++ b/models/setting.js
@@ -35,7 +35,7 @@ const SettingSchema = new Schema({
},
questionBoxIcon: {
type: String,
- default: ''
+ default: 'default'
},
questionBoxContent: {
type: String,