Move "global switchoff" code from plugin to core

This commit is contained in:
Fabian Neumann
2018-05-11 11:28:58 +02:00
parent fab15daacd
commit 48fc3ab5db
24 changed files with 105 additions and 150 deletions
@@ -82,6 +82,20 @@ class StreamSettings extends React.Component {
this.props.updatePending({ updater });
};
updateGlobalSwitchoffEnable = () => {
const updater = {
globalSwitchoffEnable: {
$set: !this.props.settings.globalSwitchoffEnable,
},
};
this.props.updatePending({ updater });
};
updateGlobalSwitchoffMessage = value => {
const updater = { globalSwitchoffMessage: { $set: value } };
this.props.updatePending({ updater });
};
updateAutoClose = () => {
const updater = {
autoCloseStream: { $set: !this.props.settings.autoCloseStream },
@@ -192,6 +206,25 @@ class StreamSettings extends React.Component {
 
{t('configure.edit_comment_timeframe_text_post')}
</ConfigureCard>
<ConfigureCard
checked={settings.globalSwitchoffEnable}
onCheckbox={this.updateGlobalSwitchoffEnable}
title={t('configure.global_switchoff_title')}
>
<p>{t('configure.global_switchoff_desc')}</p>
<div
className={cn(
styles.configSettingGlobalSwitchoff,
settings.globalSwitchoffEnable ? null : styles.hidden
)}
>
<MarkdownEditor
className={styles.descriptionBox}
onChange={this.updateGlobalSwitchoffMessage}
value={settings.globalSwitchoffMessage}
/>
</div>
</ConfigureCard>
<ConfigureCard
checked={settings.autoCloseStream}
onCheckbox={this.updateAutoClose}
@@ -39,6 +39,8 @@ export default compose(
autoCloseStream
closedTimeout
closedMessage
globalSwitchoffEnable
globalSwitchoffMessage
${getSlotFragmentSpreads(slots, 'settings')}
}
`,
@@ -4,6 +4,7 @@ import StreamError from './StreamError';
import Comment from '../containers/Comment';
import BannedAccount from '../../../components/BannedAccount';
import ChangeUsername from '../containers/ChangeUsername';
import Markdown from 'coral-framework/components/Markdown';
import Slot from 'coral-framework/components/Slot';
import InfoBox from './InfoBox';
import { can } from 'coral-framework/services/perms';
@@ -215,7 +216,7 @@ class Stream extends React.Component {
currentUser,
} = this.props;
const { keepCommentBox } = this.state;
const open = !asset.isClosed;
const open = !(asset.isClosed || asset.settings.globalSwitchoffEnable);
const banned = get(currentUser, 'status.banned.status');
const suspensionUntil = get(currentUser, 'status.suspension.until');
@@ -293,7 +294,13 @@ class Stream extends React.Component {
)}
</div>
) : (
<p>{asset.settings.closedMessage}</p>
<div>
{asset.isClosed ? (
<p>{asset.settings.closedMessage}</p>
) : (
<Markdown content={asset.settings.globalSwitchoffMessage} />
)}
</div>
)}
<Slot fill="stream" passthrough={slotPassthrough} />
@@ -434,6 +434,8 @@ const fragments = {
questionBoxIcon
closedTimeout
closedMessage
globalSwitchoffEnable
globalSwitchoffMessage
charCountEnable
charCount
requireEmailConfirmation