Fixes.
Added support for help text in custom fields. Reimplemented the mechanism how campaign_messages are created.
This commit is contained in:
parent
025600e818
commit
4e4b77ca84
19 changed files with 223 additions and 200 deletions
|
@ -73,7 +73,7 @@ export default class Statistics extends Component {
|
|||
render() {
|
||||
const t = this.props.t;
|
||||
const entity = this.state.entity;
|
||||
const total = entity.subscriptionsToSend === undefined ? undefined : entity.subscriptionsToSend + entity.delivered;
|
||||
const total = entity.total;
|
||||
|
||||
const renderMetrics = (key, label, showZoomIn = true) => {
|
||||
const val = entity[key]
|
||||
|
|
|
@ -329,8 +329,6 @@ class SendControls extends Component {
|
|||
|
||||
if (entity.status === CampaignStatus.IDLE || entity.status === CampaignStatus.PAUSED || (entity.status === CampaignStatus.SCHEDULED && entity.scheduled)) {
|
||||
|
||||
const subscrInfo = entity.subscriptionsToSend === undefined ? '' : ` (${entity.subscriptionsToSend} ${t('subscribers-1')})`;
|
||||
|
||||
const timezoneColumns = [
|
||||
{ data: 0, title: t('Timezone') }
|
||||
];
|
||||
|
@ -372,9 +370,9 @@ class SendControls extends Component {
|
|||
</Form>
|
||||
<ButtonRow className={campaignsStyles.sendButtonRow}>
|
||||
{this.getFormValue('sendLater') ?
|
||||
<Button className="btn-primary" icon="play" label={(entity.status === CampaignStatus.SCHEDULED ? t('rescheduleSend') : t('scheduleSend')) + subscrInfo} onClickAsync={::this.confirmSchedule}/>
|
||||
<Button className="btn-primary" icon="play" label={entity.status === CampaignStatus.SCHEDULED ? t('rescheduleSend') : t('scheduleSend')} onClickAsync={::this.confirmSchedule}/>
|
||||
:
|
||||
<Button className="btn-primary" icon="play" label={t('send') + subscrInfo} onClickAsync={::this.confirmStart}/>
|
||||
<Button className="btn-primary" icon="play" label={t('send')} onClickAsync={::this.confirmStart}/>
|
||||
}
|
||||
{entity.status === CampaignStatus.SCHEDULED && <Button className="btn-primary" icon="pause" label={t('Pause')} onClickAsync={::this.stopAsync}/>}
|
||||
{entity.status === CampaignStatus.PAUSED && <Button className="btn-primary" icon="redo" label={t('reset')} onClickAsync={::this.resetAsync}/>}
|
||||
|
@ -413,15 +411,13 @@ class SendControls extends Component {
|
|||
);
|
||||
|
||||
} else if (entity.status === CampaignStatus.FINISHED) {
|
||||
const subscrInfo = entity.subscriptionsToSend === undefined ? '' : ` (${entity.subscriptionsToSend} ${t('subscribers-1')})`;
|
||||
|
||||
return (
|
||||
<div>{dialogs}
|
||||
<AlignedRow label={t('sendStatus')}>
|
||||
{t('allMessagesSent!HitContinueIfYouYouWant')}
|
||||
</AlignedRow>
|
||||
<ButtonRow>
|
||||
<Button className="btn-primary" icon="play" label={t('continue') + subscrInfo} onClickAsync={::this.confirmStart}/>
|
||||
<Button className="btn-primary" icon="play" label={t('continue')} onClickAsync={::this.confirmStart}/>
|
||||
<Button className="btn-primary" icon="redo" label={t('reset')} onClickAsync={::this.resetAsync}/>
|
||||
<LinkButton className="btn-secondary" icon="signal" label={t('viewStatistics')} to={`/campaigns/${entity.id}/statistics`}/>
|
||||
{testButtons}
|
||||
|
|
|
@ -18,6 +18,7 @@ import {
|
|||
InputField,
|
||||
StaticField,
|
||||
TableSelect,
|
||||
TextArea,
|
||||
withForm,
|
||||
withFormErrorHandlers
|
||||
} from '../../lib/form';
|
||||
|
@ -83,6 +84,10 @@ export default class CUD extends Component {
|
|||
data.default_value = '';
|
||||
}
|
||||
|
||||
if (data.help === null) {
|
||||
data.help = '';
|
||||
}
|
||||
|
||||
data.isInGroup = data.group !== null;
|
||||
|
||||
data.enumOptions = '';
|
||||
|
@ -124,6 +129,10 @@ export default class CUD extends Component {
|
|||
data.default_value = null;
|
||||
}
|
||||
|
||||
if (data.help.trim() === '') {
|
||||
data.help = null;
|
||||
}
|
||||
|
||||
if (!data.isInGroup) {
|
||||
data.group = null;
|
||||
}
|
||||
|
@ -164,7 +173,7 @@ export default class CUD extends Component {
|
|||
data.orderManageBefore = Number.parseInt(data.orderManageBefore) || data.orderManageBefore;
|
||||
}
|
||||
|
||||
return filterData(data, ['name', 'key', 'default_value', 'type', 'group', 'settings',
|
||||
return filterData(data, ['name', 'help', 'key', 'default_value', 'type', 'group', 'settings',
|
||||
'orderListBefore', 'orderSubscribeBefore', 'orderManageBefore']);
|
||||
}
|
||||
|
||||
|
@ -178,6 +187,7 @@ export default class CUD extends Component {
|
|||
type: 'text',
|
||||
key: '',
|
||||
default_value: '',
|
||||
help: '',
|
||||
group: null,
|
||||
isInGroup: false,
|
||||
renderTemplate: '',
|
||||
|
@ -501,6 +511,8 @@ export default class CUD extends Component {
|
|||
|
||||
<InputField id="key" label={t('mergeTag-1')}/>
|
||||
|
||||
<TextArea id="help" label={t('Help text')}/>
|
||||
|
||||
{fieldSettings}
|
||||
|
||||
{type !== 'option' &&
|
||||
|
|
|
@ -494,7 +494,7 @@ export default class CUD extends Component {
|
|||
{ previewListId &&
|
||||
<div>
|
||||
<AlignedRow>
|
||||
<div className="help-block">
|
||||
<div>
|
||||
<small>
|
||||
{t('noteTheseLinksAreSolelyForAQuickPreview')}
|
||||
</small>
|
||||
|
|
|
@ -199,11 +199,10 @@ textarea {
|
|||
|
||||
/* --- Other ------------- */
|
||||
|
||||
.help-block {
|
||||
.option-help-block {
|
||||
display: block;
|
||||
font-size: .9em;
|
||||
line-height: 1;
|
||||
color: #999999;
|
||||
margin-left: 3px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
form a {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue