@capillarytech/creatives-library 3.0.31 → 3.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app.js +1 -1
- package/components/BreadCrumbs/messages.js +1 -1
- package/components/CapTagList/index.js +3 -3
- package/components/CapTagList/messages.js +16 -4
- package/components/Ckeditor/messages.js +1 -1
- package/components/CustomPopOver/index.js +3 -4
- package/components/CustomPopOver/messages.js +5 -1
- package/components/DateFilter/index.js +12 -12
- package/components/DateFilter/messages.js +40 -0
- package/components/DateRange/index.js +5 -4
- package/components/DateRange/messages.js +13 -1
- package/components/Edmeditor/messages.js +1 -1
- package/components/EmailPreview/index.js +4 -4
- package/components/EmailPreview/messages.js +18 -2
- package/components/Footer/messages.js +1 -1
- package/components/FormBuilder/index.js +13 -17
- package/components/FormBuilder/messages.js +33 -1
- package/components/Header/messages.js +4 -4
- package/components/ImagePreview/index.js +1 -1
- package/components/ImagePreview/messages.js +5 -1
- package/components/PageHeader/messages.js +1 -1
- package/components/PreviewSideBar/index.js +2 -2
- package/components/PreviewSideBar/messages.js +14 -6
- package/components/Sidebar/messages.js +3 -3
- package/components/SmsTest/index.js +6 -4
- package/components/SmsTest/messages.js +9 -1
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +3 -3
- package/components/TemplatePreview/index.js +12 -7
- package/components/TemplatePreview/messages.js +28 -5
- package/components/Toastr/messages.js +1 -1
- package/components/ToastrMessage/index.js +4 -1
- package/components/ToastrMessage/messages.js +5 -1
- package/components/TopBar/messages.js +1 -1
- package/config/app.js +4 -0
- package/containers/Assets/Gallery/messages.js +20 -20
- package/containers/Cap/index.js +6 -5
- package/containers/Cap/messages.js +75 -0
- package/containers/Dashboard/index.js +2 -2
- package/containers/Dashboard/messages.js +1 -1
- package/containers/Ebill/index.js +1 -1
- package/containers/Ebill/messages.js +20 -16
- package/containers/Email/index.js +24 -24
- package/containers/Email/messages.js +107 -59
- package/containers/Line/Create/index.js +5 -5
- package/containers/Line/Create/messages.js +58 -42
- package/containers/Line/Edit/index.js +12 -12
- package/containers/Line/Edit/messages.js +58 -38
- package/containers/Login/components/LoginForm/index.js +10 -7
- package/containers/Login/components/LoginForm/messages.js +15 -3
- package/containers/Login/index.js +1 -1
- package/containers/Login/messages.js +7 -3
- package/containers/MobilePush/Create/index.js +43 -43
- package/containers/MobilePush/Create/messages.js +111 -75
- package/containers/MobilePush/Edit/index.js +43 -43
- package/containers/MobilePush/Edit/messages.js +100 -83
- package/containers/NotFoundPage/messages.js +1 -1
- package/containers/Sms/Create/index.js +7 -8
- package/containers/Sms/Create/messages.js +43 -19
- package/containers/Sms/Edit/index.js +4 -4
- package/containers/Sms/Edit/messages.js +36 -20
- package/containers/TagList/messages.js +1 -1
- package/containers/Templates/index.js +20 -19
- package/containers/Templates/messages.js +136 -64
- package/containers/TestPage/messages.js +1 -1
- package/containers/Testv2/index.js +2 -2
- package/containers/Testv2/messages.js +9 -1
- package/containers/WeChat/MapTemplates/index.js +10 -10
- package/containers/WeChat/MapTemplates/messages.js +49 -17
- package/containers/WeChat/RichmediaTemplates/Create/messages.js +33 -33
- package/containers/WeChat/RichmediaTemplates/Edit/messages.js +1 -1
- package/containers/WeChat/RichmediaTemplates/View/index.js +2 -2
- package/containers/WeChat/RichmediaTemplates/View/messages.js +9 -1
- package/hoc/withStyles.js +12 -0
- package/index.js +8 -1
- package/package.json +1 -4
- package/reducers.js +1 -1
- package/routes.js +4 -1
- package/services/api.js +25 -2
- package/translations/en.json +1396 -360
- package/translations/zh.json +1417 -381
- package/utils/smsCharCountV2.js +28 -6
- package/v2Components/BreadCrumbs/messages.js +1 -1
- package/v2Components/CallTaskPreview/messages.js +1 -1
- package/v2Components/CapTagList/index.js +6 -5
- package/v2Components/CapTagList/messages.js +24 -4
- package/v2Components/Ckeditor/messages.js +1 -1
- package/v2Components/CmsTemplatesComponent/messages.js +2 -2
- package/v2Components/CustomPopOver/index.js +4 -2
- package/v2Components/CustomPopOver/messages.js +5 -1
- package/v2Components/Edmeditor/messages.js +1 -1
- package/v2Components/EmailPreview/index.js +2 -2
- package/v2Components/EmailPreview/messages.js +11 -3
- package/v2Components/EmailPreviewV2/index.js +1 -1
- package/v2Components/EmailPreviewV2/messages.js +13 -9
- package/v2Components/Footer/messages.js +1 -1
- package/v2Components/FormBuilder/index.js +17 -14
- package/v2Components/FormBuilder/messages.js +49 -1
- package/v2Components/Header/messages.js +4 -4
- package/v2Components/ImagePreview/index.js +3 -2
- package/v2Components/ImagePreview/messages.js +5 -1
- package/v2Components/MobilePushPreviewV2/index.js +2 -5
- package/v2Components/MobilePushPreviewV2/messages.js +9 -1
- package/v2Components/NavigationBar/messages.js +1 -1
- package/v2Components/NewCallTask/messages.js +5 -5
- package/v2Components/PreviewSideBar/messages.js +6 -6
- package/v2Components/SmsTest/index.js +6 -4
- package/v2Components/SmsTest/messages.js +9 -1
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +3 -3
- package/v2Components/TemplatePreview/_templatePreview.scss +8 -0
- package/v2Components/TemplatePreview/index.js +35 -16
- package/v2Components/TemplatePreview/messages.js +23 -7
- package/v2Components/Toastr/messages.js +1 -1
- package/v2Components/ToastrMessage/index.js +3 -2
- package/v2Components/ToastrMessage/messages.js +5 -1
- package/v2Components/TopBar/messages.js +7 -7
- package/v2Containers/App/constants.js +11 -0
- package/v2Containers/Assets/Gallery/messages.js +24 -24
- package/v2Containers/CallTask/messages.js +6 -6
- package/v2Containers/Cap/index.js +5 -4
- package/v2Containers/Cap/messages.js +75 -0
- package/v2Containers/Cap/messsages.js +19 -15
- package/v2Containers/Cap/sagas.js +1 -8
- package/v2Containers/ChannelTemplates/messages.js +1 -1
- package/v2Containers/CreativesContainer/messages.js +16 -8
- package/v2Containers/Dashboard/index.js +2 -1
- package/v2Containers/Dashboard/messages.js +1 -1
- package/v2Containers/Ebill/index.js +1 -1
- package/v2Containers/Ebill/messages.js +20 -16
- package/v2Containers/Email/index.js +20 -20
- package/v2Containers/Email/messages.js +97 -61
- package/v2Containers/EmailWrapper/index.js +64 -44
- package/v2Containers/EmailWrapper/messages.js +12 -12
- package/v2Containers/LanguageProvider/actions.js +9 -4
- package/v2Containers/LanguageProvider/constants.js +7 -0
- package/v2Containers/LanguageProvider/index.js +32 -10
- package/v2Containers/LanguageProvider/reducer.js +12 -4
- package/v2Containers/LanguageProvider/sagas.js +39 -0
- package/v2Containers/LanguageProvider/selectors.js +1 -1
- package/v2Containers/Line/Create/index.js +3 -3
- package/v2Containers/Line/Create/messages.js +53 -41
- package/v2Containers/Line/Edit/index.js +10 -10
- package/v2Containers/Line/Edit/messages.js +55 -39
- package/v2Containers/Login/components/LoginForm/index.js +9 -6
- package/v2Containers/Login/components/LoginForm/messages.js +15 -3
- package/v2Containers/Login/index.js +1 -1
- package/v2Containers/Login/messages.js +7 -3
- package/v2Containers/MobilePush/Create/index.js +33 -33
- package/v2Containers/MobilePush/Create/messages.js +109 -81
- package/v2Containers/MobilePush/Edit/index.js +22 -22
- package/v2Containers/MobilePush/Edit/messages.js +95 -79
- package/v2Containers/MobilepushWrapper/messages.js +5 -5
- package/v2Containers/NotFoundPage/messages.js +1 -1
- package/v2Containers/Sms/Create/index.js +6 -6
- package/v2Containers/Sms/Create/messages.js +41 -21
- package/v2Containers/Sms/Edit/index.js +6 -6
- package/v2Containers/Sms/Edit/messages.js +36 -20
- package/v2Containers/TagList/messages.js +1 -1
- package/v2Containers/Templates/messages.js +27 -3
- package/v2Containers/TemplatesV2/TemplatesV2.style.js +29 -0
- package/v2Containers/TemplatesV2/index.js +29 -51
- package/v2Containers/TemplatesV2/messages.js +29 -5
- package/v2Containers/TestPage/messages.js +1 -1
- package/v2Containers/Testv2/index.js +2 -2
- package/v2Containers/Testv2/messages.js +9 -1
- package/v2Containers/WeChat/MapTemplates/index.js +8 -8
- package/v2Containers/WeChat/MapTemplates/messages.js +49 -17
- package/v2Containers/WeChat/RichmediaTemplates/Create/index.js +6 -6
- package/v2Containers/WeChat/RichmediaTemplates/Create/messages.js +95 -43
- package/v2Containers/WeChat/RichmediaTemplates/Edit/messages.js +1 -1
- package/v2Containers/WeChat/RichmediaTemplates/View/messages.js +9 -1
- package/v2Containers/TemplatesV2/_templatesV2.scss +0 -5
|
@@ -7,23 +7,23 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
callTaskTitle: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.componentsV2.NewCallTask.callTaskTitle',
|
|
11
11
|
defaultMessage: 'Call Task title',
|
|
12
12
|
},
|
|
13
13
|
messageHeader: {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.componentsV2.NewCallTask.messageHeader',
|
|
15
15
|
defaultMessage: 'Message',
|
|
16
16
|
},
|
|
17
17
|
description: {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.componentsV2.NewCallTask.description',
|
|
19
19
|
defaultMessage: 'Description',
|
|
20
20
|
},
|
|
21
21
|
done: {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'creatives.componentsV2.NewCallTask.done',
|
|
23
23
|
defaultMessage: 'Done',
|
|
24
24
|
},
|
|
25
25
|
personalisationTags: {
|
|
26
|
-
id: '
|
|
26
|
+
id: 'creatives.componentsV2.NewCallTask.personalisationTags',
|
|
27
27
|
defaultMessage: 'Add Labels',
|
|
28
28
|
},
|
|
29
29
|
});
|
|
@@ -7,27 +7,27 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
header: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.componentsV2.PreviewSideBar.header',
|
|
11
11
|
defaultMessage: 'This is the PreviewSideBar component !',
|
|
12
12
|
},
|
|
13
13
|
lastModified: {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.componentsV2.PreviewSideBar.lastModified',
|
|
15
15
|
defaultMessage: 'Last modified on',
|
|
16
16
|
},
|
|
17
17
|
uploadedBy: {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.componentsV2.PreviewSideBar.uploadedBy',
|
|
19
19
|
defaultMessage: 'Last modified by',
|
|
20
20
|
},
|
|
21
21
|
edit: {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'creatives.componentsV2.PreviewSideBar.edit',
|
|
23
23
|
defaultMessage: 'Edit',
|
|
24
24
|
},
|
|
25
25
|
select: {
|
|
26
|
-
id: '
|
|
26
|
+
id: 'creatives.componentsV2.PreviewSideBar.select',
|
|
27
27
|
defaultMessage: 'Select',
|
|
28
28
|
},
|
|
29
29
|
duplicate: {
|
|
30
|
-
id: '
|
|
30
|
+
id: 'creatives.componentsV2.PreviewSideBar.duplicate',
|
|
31
31
|
defaultMessage: 'Duplicate',
|
|
32
32
|
},
|
|
33
33
|
});
|
|
@@ -9,6 +9,8 @@ import React from 'react';
|
|
|
9
9
|
|
|
10
10
|
// import { FormattedMessage } from 'react-intl';
|
|
11
11
|
// import messages from './messages';
|
|
12
|
+
import { injectIntl, intlShape } from 'react-intl';
|
|
13
|
+
import messages from './messages';
|
|
12
14
|
import FormBuilder from '../FormBuilder';
|
|
13
15
|
|
|
14
16
|
class SmsTest extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
@@ -46,7 +48,7 @@ class SmsTest extends React.Component { // eslint-disable-line react/prefer-stat
|
|
|
46
48
|
metaType: "text",
|
|
47
49
|
datatype: "string",
|
|
48
50
|
required: true,
|
|
49
|
-
placeholder:
|
|
51
|
+
placeholder: this.props.intl.formatMessage(messages.inputTemplateName),
|
|
50
52
|
fluid: true,
|
|
51
53
|
styling: "semantic",
|
|
52
54
|
order: 1,
|
|
@@ -62,7 +64,7 @@ class SmsTest extends React.Component { // eslint-disable-line react/prefer-stat
|
|
|
62
64
|
metaType: "text",
|
|
63
65
|
datatype: "string",
|
|
64
66
|
required: true,
|
|
65
|
-
placeholder:
|
|
67
|
+
placeholder: this.props.intl.formatMessage(messages.inputSmsTemplate),
|
|
66
68
|
fluid: false,
|
|
67
69
|
styling: "custom",
|
|
68
70
|
order: 2,
|
|
@@ -109,7 +111,7 @@ class SmsTest extends React.Component { // eslint-disable-line react/prefer-stat
|
|
|
109
111
|
}
|
|
110
112
|
|
|
111
113
|
SmsTest.propTypes = {
|
|
112
|
-
|
|
114
|
+
intl: intlShape.isRequired,
|
|
113
115
|
};
|
|
114
116
|
|
|
115
|
-
export default SmsTest;
|
|
117
|
+
export default injectIntl(SmsTest);
|
|
@@ -7,7 +7,15 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
header: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.componentsV2.SmsTest.header',
|
|
11
11
|
defaultMessage: 'This is the SmsTest component !',
|
|
12
12
|
},
|
|
13
|
+
inputTemplateName: {
|
|
14
|
+
id: 'creatives.componentsV2.SmsTest.inputTemplateName',
|
|
15
|
+
defaultMessage: 'Please input template name.',
|
|
16
|
+
},
|
|
17
|
+
inputSmsTemplate: {
|
|
18
|
+
id: 'creatives.componentsV2.SmsTest.inputSmsTemplate',
|
|
19
|
+
defaultMessage: 'Please input sms template content.',
|
|
20
|
+
},
|
|
13
21
|
});
|
|
@@ -7,15 +7,15 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
header: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.header',
|
|
11
11
|
defaultMessage: 'This is the WechatRichmediaTemplatePreview component !',
|
|
12
12
|
},
|
|
13
13
|
select: {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.select',
|
|
15
15
|
defaultMessage: 'Select',
|
|
16
16
|
},
|
|
17
17
|
edit: {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.edit',
|
|
19
19
|
defaultMessage: 'Edit',
|
|
20
20
|
},
|
|
21
21
|
});
|
|
@@ -8,7 +8,7 @@ import PropTypes from 'prop-types';
|
|
|
8
8
|
|
|
9
9
|
import React from 'react';
|
|
10
10
|
import _ from 'lodash';
|
|
11
|
-
import { injectIntl, FormattedMessage} from 'react-intl';
|
|
11
|
+
import { injectIntl, FormattedMessage, intlShape } from 'react-intl';
|
|
12
12
|
// import styled from 'styled-components';
|
|
13
13
|
import {CapColumn, CapRow, CapHeading} from '@capillarytech/cap-ui-library';
|
|
14
14
|
import './_templatePreview.scss';
|
|
@@ -59,29 +59,47 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
59
59
|
<FormattedMessage {...messages.smsFormatType}/>
|
|
60
60
|
}
|
|
61
61
|
</CapHeading>}
|
|
62
|
+
{smsDetails.optoutUrlPresent && <CapHeading type="h6">
|
|
63
|
+
<FormattedMessage {...messages.optoutCharactersTotal} values={{optoutUrlLength: smsDetails.optouturlLength}} />
|
|
64
|
+
</CapHeading>}
|
|
62
65
|
</CapColumn>}
|
|
63
66
|
<CapColumn span={this.props.showCount ? 8 : 24}>
|
|
64
67
|
<div className={`preview-container ${type === 'embedded' ? 'embedded-preview' : ''}`}>
|
|
65
68
|
{ channel && channel.toLowerCase() === 'sms' &&
|
|
66
|
-
<div
|
|
67
|
-
<
|
|
68
|
-
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
{
|
|
72
|
-
|
|
73
|
-
{
|
|
74
|
-
|
|
75
|
-
|
|
69
|
+
<div>
|
|
70
|
+
<div className="shell align-center" id="sms-preview">
|
|
71
|
+
<img className="preview-image sms" src={smsBody} alt="Preview is being generated"/>
|
|
72
|
+
<div className="msgContainer sms">
|
|
73
|
+
<img className="sms-icon" src={smsIcon} alt="Sms icon" />
|
|
74
|
+
<div className={"message-pop sms"}>
|
|
75
|
+
{content && content.length && content.map((msg, index) =>
|
|
76
|
+
<CapColumn key={`"message-pop-content-${index}`} className="message-pop-item align-left" style={{ background: '#3F51B5', color: '#ffffff'}}>
|
|
77
|
+
{msg}
|
|
78
|
+
</CapColumn>)
|
|
79
|
+
}
|
|
80
|
+
</div>
|
|
76
81
|
</div>
|
|
77
82
|
</div>
|
|
83
|
+
{!this.props.showCount && <div>
|
|
84
|
+
<CapColumn className="character-count-col" span={20}>
|
|
85
|
+
{channel && channel.toLowerCase() === 'sms' && <CapHeading type="h3">
|
|
86
|
+
<FormattedMessage {...messages.charactersTotal} values={{smsCount: smsDetails.parts, charCount: smsDetails.chars_used}}/>
|
|
87
|
+
{smsDetails.unicode &&
|
|
88
|
+
<FormattedMessage {...messages.smsFormatType}/>
|
|
89
|
+
}
|
|
90
|
+
</CapHeading>}
|
|
91
|
+
{smsDetails.optoutUrlPresent && <CapHeading type="h6" className="optout-tag-heading">
|
|
92
|
+
<FormattedMessage {...messages.optoutCharactersTotal} values={{optoutUrlLength: smsDetails.optouturlLength}} />
|
|
93
|
+
</CapHeading>}
|
|
94
|
+
</CapColumn>
|
|
95
|
+
</div>}
|
|
78
96
|
</div>
|
|
79
|
-
|
|
97
|
+
}
|
|
80
98
|
{channel && channel.toLowerCase() === 'wechat' ?
|
|
81
99
|
( <div className="shell align-center" id="sms-preview">
|
|
82
100
|
<img className="preview-image" src={channel.toLowerCase() === 'wechat' ? wechatBody : smsBody} alt="Preview is being generated"/>
|
|
83
101
|
<div className="msgContainer">
|
|
84
|
-
{this.props.channel.toLowerCase() === 'wechat' ? <div className="sms-icon" style={{ width: '25px', height: '25px', background: '#2E89DF' }}></div> : <img className="sms-icon" src={smsIcon} alt=
|
|
102
|
+
{this.props.channel.toLowerCase() === 'wechat' ? <div className="sms-icon" style={{ width: '25px', height: '25px', background: '#2E89DF' }}></div> : <img className="sms-icon" src={smsIcon} alt={this.props.intl.formatMessage(messages.smsIcon)} />}
|
|
85
103
|
<div className="message-pop align-left" style={{ background: `${this.props.channel.toLowerCase() === 'wechat' ? '#ffffff' : '#3F51B5'}`, color: `${this.props.channel.toLowerCase() === 'wechat' ? '#333333' : '#ffffff'}`}}>{content}
|
|
86
104
|
</div>
|
|
87
105
|
</div>
|
|
@@ -90,7 +108,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
90
108
|
}
|
|
91
109
|
{ channel && (channel.toLowerCase() === 'mobilepush') &&
|
|
92
110
|
(<div className="shell align-center" id="mobilepush-preview">
|
|
93
|
-
<img className="preview-image" src={this.props.device === "android" ? androidPushMessagePhone : iPhonePushMessagePhone} alt=
|
|
111
|
+
<img className="preview-image" src={this.props.device === "android" ? androidPushMessagePhone : iPhonePushMessagePhone} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
94
112
|
{(!!content.header || !!content.bodyText || !!content.bodyImage) &&
|
|
95
113
|
<div className={`${this.props.device}-push-message-Container`}>
|
|
96
114
|
{this.props.device === "android" ?
|
|
@@ -117,7 +135,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
117
135
|
:
|
|
118
136
|
<div className="message-pop align-left">
|
|
119
137
|
<div className="app-name">
|
|
120
|
-
<span className="app-icon"></span>{content.appName ? content.appName : "App name"} <i className="material-icons">close</i>
|
|
138
|
+
<span className="app-icon"></span>{content.appName ? content.appName : "App name"} <i className="material-icons">{this.props.intl.formatMessage(messages.close)}</i>
|
|
121
139
|
</div>
|
|
122
140
|
{content.bodyImage && <div className="body-image">
|
|
123
141
|
<img src={content.bodyImage} alt=""/>
|
|
@@ -139,7 +157,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
139
157
|
{
|
|
140
158
|
channel && channel.toLowerCase() === 'line' ? (
|
|
141
159
|
<div className="shell align-center" id="sms-preview">
|
|
142
|
-
<img className="preview-image" src={wechatBody} alt=
|
|
160
|
+
<img className="preview-image" src={wechatBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
143
161
|
<div className="msgContainer">
|
|
144
162
|
<div className="sms-icon" style={{ width: '25px', height: '25px', background: '#2E89DF' }}></div>
|
|
145
163
|
<div className="message-pop align-left" style={{ background: '#ffffff', color: '#333333' }}>
|
|
@@ -170,6 +188,7 @@ TemplatePreview.propTypes = {
|
|
|
170
188
|
device: PropTypes.string,
|
|
171
189
|
unicodeEnabled: PropTypes.bool,
|
|
172
190
|
showCount: PropTypes.bool,
|
|
191
|
+
intl: intlShape.isRequired,
|
|
173
192
|
};
|
|
174
193
|
|
|
175
194
|
export default (injectIntl(TemplatePreview));
|
|
@@ -7,31 +7,47 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
previewGenerationMessage: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.componentsV2.TemplatePreview.previewGenerationMessage',
|
|
11
11
|
defaultMessage: "Preview is being generated",
|
|
12
12
|
},
|
|
13
13
|
sms: {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.componentsV2.TemplatePreview.sms',
|
|
15
15
|
defaultMessage: "SMS",
|
|
16
16
|
},
|
|
17
17
|
charactersPerSms: {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.componentsV2.TemplatePreview.charactersPerSms',
|
|
19
19
|
defaultMessage: "SMS chars",
|
|
20
20
|
},
|
|
21
21
|
charactersTotal: {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'creatives.componentsV2.TemplatePreview.charactersTotal',
|
|
23
23
|
defaultMessage: "{smsCount} SMS ({charCount} characters)",
|
|
24
24
|
},
|
|
25
|
+
optoutCharactersTotal: {
|
|
26
|
+
id: 'app.components.TemplatePreview.optoutCharactersTotal',
|
|
27
|
+
defaultMessage: "Includes Optout tag ({optoutUrlLength} characters)",
|
|
28
|
+
},
|
|
25
29
|
smsFormatType: {
|
|
26
|
-
id: '
|
|
30
|
+
id: 'creatives.componentsV2.TemplatePreview.smsFormatType',
|
|
27
31
|
defaultMessage: 'Message has unicode characters',
|
|
28
32
|
},
|
|
29
33
|
lastModified: {
|
|
30
|
-
id: '
|
|
34
|
+
id: 'creatives.componentsV2.PreviewSideBar.lastModified',
|
|
31
35
|
defaultMessage: 'Last modified on',
|
|
32
36
|
},
|
|
33
37
|
uploadedBy: {
|
|
34
|
-
id: '
|
|
38
|
+
id: 'creatives.componentsV2.PreviewSideBar.uploadedBy',
|
|
35
39
|
defaultMessage: 'Last modified by',
|
|
36
40
|
},
|
|
41
|
+
previewGenerated: {
|
|
42
|
+
id: 'creatives.componentsV2.TemplatePreview.previewGenerated',
|
|
43
|
+
defaultMessage: 'Preview is being generated',
|
|
44
|
+
},
|
|
45
|
+
close: {
|
|
46
|
+
id: 'creatives.componentsV2.TemplatePreview.close',
|
|
47
|
+
defaultMessage: 'close',
|
|
48
|
+
},
|
|
49
|
+
smsIcon: {
|
|
50
|
+
id: 'creatives.componentsV2.TemplatePreview.smsIcon',
|
|
51
|
+
defaultMessage: 'Sms Icon',
|
|
52
|
+
},
|
|
37
53
|
});
|
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
|
|
9
9
|
import React from 'react';
|
|
10
|
+
import { FormattedMessage } from 'react-intl';
|
|
10
11
|
import styled from 'styled-components';
|
|
11
12
|
import { messageTypeConfig } from '../../config/toastr';
|
|
13
|
+
import messages from './messages';
|
|
12
14
|
|
|
13
15
|
const StyledMessageWrapper = styled.div`
|
|
14
16
|
background: #f9f9fa;
|
|
@@ -84,7 +86,7 @@ class ToastrMessage extends React.Component { // eslint-disable-line react/prefe
|
|
|
84
86
|
<div style={{ padding: `${16}px` }}>
|
|
85
87
|
<MessageHeader>
|
|
86
88
|
{ this.props.title ? <span style={{ fontSize: `${20}px` }}>{this.props.title}</span> : '' }
|
|
87
|
-
<StyleIcon className="material-icons" onClick={() => this.closeMessagePopup(this.props.messageId)}
|
|
89
|
+
<StyleIcon className="material-icons" onClick={() => this.closeMessagePopup(this.props.messageId)}><FormattedMessage {...messages.close} /></StyleIcon>
|
|
88
90
|
</MessageHeader>
|
|
89
91
|
<MessageContent>
|
|
90
92
|
{this.props.text}
|
|
@@ -102,7 +104,6 @@ ToastrMessage.propTypes = {
|
|
|
102
104
|
text: PropTypes.string,
|
|
103
105
|
type: PropTypes.string,
|
|
104
106
|
handleMessageClose: PropTypes.func,
|
|
105
|
-
hideProgressBar: PropTypes.bool,
|
|
106
107
|
};
|
|
107
108
|
|
|
108
109
|
export default ToastrMessage;
|
|
@@ -7,7 +7,11 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
header: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.componentsV2.ToastrMessage.header',
|
|
11
|
+
defaultMessage: 'This is the ToastrMessage component !',
|
|
12
|
+
},
|
|
13
|
+
close: {
|
|
14
|
+
id: 'creatives.componentsV2.ToastrMessage.close',
|
|
11
15
|
defaultMessage: 'This is the ToastrMessage component !',
|
|
12
16
|
},
|
|
13
17
|
});
|
|
@@ -7,31 +7,31 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
profile: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.componentsV2.TopBar.profile',
|
|
11
11
|
defaultMessage: 'Profile',
|
|
12
12
|
},
|
|
13
13
|
settings: {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.componentsV2.TopBar.settings',
|
|
15
15
|
defaultMessage: 'Settings',
|
|
16
16
|
},
|
|
17
17
|
logout: {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.componentsV2.TopBar.logout',
|
|
19
19
|
defaultMessage: 'Logout',
|
|
20
20
|
},
|
|
21
21
|
dropdownMessage: {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'creatives.componentsV2.TopBar.brand.dropdown',
|
|
23
23
|
defaultMessage: 'Select brand',
|
|
24
24
|
},
|
|
25
25
|
hi: {
|
|
26
|
-
id: '
|
|
26
|
+
id: 'creatives.componentsV2.TopBar.brand.hi',
|
|
27
27
|
defaultMessage: 'Hi',
|
|
28
28
|
},
|
|
29
29
|
selectOrganization: {
|
|
30
|
-
id: '
|
|
30
|
+
id: 'creatives.componentsV2.TopBar.brand.selectOrganization',
|
|
31
31
|
defaultMessage: 'Select organization',
|
|
32
32
|
},
|
|
33
33
|
selectProduct: {
|
|
34
|
-
id: '
|
|
34
|
+
id: 'creatives.componentsV2.TopBar.brand.selectProduct',
|
|
35
35
|
defaultMessage: 'Select product',
|
|
36
36
|
},
|
|
37
37
|
});
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormattedMessage } from 'react-intl';
|
|
3
|
+
import globalMessages from '../Cap/messages';
|
|
4
|
+
|
|
1
5
|
export const GET_SIDEBAR_REQUEST = 'app/App/GET_SIDEBAR_REQUEST';
|
|
2
6
|
export const GET_SIDEBAR_SUCCESS = 'app/App/GET_SIDEBAR_SUCCESS';
|
|
3
7
|
export const GET_SIDEBAR_FAILURE = 'app/App/GET_SIDEBAR_FAILURE';
|
|
8
|
+
|
|
9
|
+
export const getTopbarMenuDataValue = () => ([
|
|
10
|
+
{ label: <FormattedMessage {...globalMessages.campaigns} />, link: '/campaigns/ui/list', key: 'campaigns' },
|
|
11
|
+
{ label: <FormattedMessage {...globalMessages.audience} />, link: '/audience-manager/list', key: 'audience' },
|
|
12
|
+
{ label: <FormattedMessage {...globalMessages.incentive} />, link: '/coupons/ui/', key: 'incentive' },
|
|
13
|
+
{ label: <FormattedMessage {...globalMessages.creatives} />, link: '/creatives/ui/v2', key: 'creatives' },
|
|
14
|
+
]);
|
|
@@ -7,99 +7,99 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
uploadedAt: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.containersV2.Assets.Gallery.uploadedAt',
|
|
11
11
|
defaultMessage: 'Uploaded at ',
|
|
12
12
|
},
|
|
13
13
|
uploadedOn: {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.containersV2.Assets.Gallery.uploadedOn',
|
|
15
15
|
defaultMessage: 'Uploaded on ',
|
|
16
16
|
},
|
|
17
17
|
uploadedBy: {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.containersV2.Assets.Gallery.uploadedBy',
|
|
19
19
|
defaultMessage: 'Uploaded by ',
|
|
20
20
|
},
|
|
21
21
|
upload: {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'creatives.containersV2.Assets.Gallery.upload',
|
|
23
23
|
defaultMessage: 'Upload image',
|
|
24
24
|
},
|
|
25
25
|
addImages: {
|
|
26
|
-
id: `
|
|
26
|
+
id: `creatives.containersV2.Assets.Gallery.addImages`,
|
|
27
27
|
defaultMessage: 'Add images',
|
|
28
28
|
},
|
|
29
29
|
imagePreview: {
|
|
30
|
-
id: '
|
|
30
|
+
id: 'creatives.containersV2.Assets.Gallery.imagePreview',
|
|
31
31
|
defaultMessage: 'Image preview',
|
|
32
32
|
},
|
|
33
33
|
size: {
|
|
34
|
-
id: '
|
|
34
|
+
id: 'creatives.containersV2.Assets.Gallery.size',
|
|
35
35
|
defaultMessage: 'Size',
|
|
36
36
|
},
|
|
37
37
|
dimensions: {
|
|
38
|
-
id: '
|
|
38
|
+
id: 'creatives.containersV2.Assets.Gallery.dimensions',
|
|
39
39
|
defaultMessage: 'Dimensions',
|
|
40
40
|
},
|
|
41
41
|
gallery: {
|
|
42
|
-
id: '
|
|
42
|
+
id: 'creatives.containersV2.Assets.Gallery.gallery',
|
|
43
43
|
defaultMessage: 'Gallery',
|
|
44
44
|
},
|
|
45
45
|
backToGallery: {
|
|
46
|
-
id: '
|
|
46
|
+
id: 'creatives.containersV2.Assets.Gallery.backToGallery',
|
|
47
47
|
defaultMessage: 'Back to image gallery',
|
|
48
48
|
},
|
|
49
49
|
mostRecent: {
|
|
50
|
-
id: '
|
|
50
|
+
id: 'creatives.containersV2.Assets.Gallery.mostRecent',
|
|
51
51
|
defaultMessage: 'Most recent',
|
|
52
52
|
},
|
|
53
53
|
alphabetically: {
|
|
54
|
-
id: '
|
|
54
|
+
id: 'creatives.containersV2.Assets.Gallery.alphabetically',
|
|
55
55
|
defaultMessage: 'Alphabetically',
|
|
56
56
|
},
|
|
57
57
|
sortby: {
|
|
58
|
-
id: '
|
|
58
|
+
id: 'creatives.containersV2.Assets.Gallery.sortby',
|
|
59
59
|
defaultMessage: 'Sort by',
|
|
60
60
|
},
|
|
61
61
|
delete: {
|
|
62
|
-
id: '
|
|
62
|
+
id: 'creatives.containersV2.Assets.Gallery.delete',
|
|
63
63
|
defaultMessage: 'Delete',
|
|
64
64
|
},
|
|
65
65
|
search: {
|
|
66
|
-
id: '
|
|
66
|
+
id: 'creatives.containersV2.Assets.Gallery.search',
|
|
67
67
|
defaultMessage: 'Search',
|
|
68
68
|
},
|
|
69
69
|
select: {
|
|
70
|
-
id: '
|
|
70
|
+
id: 'creatives.containersV2.Assets.Gallery.select',
|
|
71
71
|
defaultMessage: 'Select',
|
|
72
72
|
},
|
|
73
73
|
preview: {
|
|
74
|
-
id: '
|
|
74
|
+
id: 'creatives.containersV2.Assets.Gallery.preview',
|
|
75
75
|
defaultMessage: 'Preview',
|
|
76
76
|
},
|
|
77
77
|
assetUploadSuccess: {
|
|
78
|
-
id: '
|
|
78
|
+
id: 'creatives.containersV2.Assets.Gallery.assetUploadSuccess',
|
|
79
79
|
defaultMessage: 'Image uploaded successfully',
|
|
80
80
|
},
|
|
81
81
|
assetUploadFailed: {
|
|
82
|
-
id: '
|
|
82
|
+
id: 'creatives.containersV2.Assets.Gallery.assetUploadFailed',
|
|
83
83
|
defaultMessage: 'Image uploaded failed',
|
|
84
84
|
},
|
|
85
85
|
assetDeleteSuccess: {
|
|
86
|
-
id: '
|
|
86
|
+
id: 'creatives.containersV2.Assets.Gallery.assetDeleteSuccess',
|
|
87
87
|
defaultMessage: 'Image deleted successfully.',
|
|
88
88
|
},
|
|
89
89
|
assetDeleteFailed: {
|
|
90
|
-
id: '
|
|
90
|
+
id: 'creatives.containersV2.Assets.Gallery.assetDeleteFailed',
|
|
91
91
|
defaultMessage: 'Image deletion failed.',
|
|
92
92
|
},
|
|
93
93
|
noAssetMessage: {
|
|
94
|
-
id: '
|
|
94
|
+
id: 'creatives.containersV2.Assets.Gallery.noAssetMessage',
|
|
95
95
|
defaultMessage: 'No image is uploaded',
|
|
96
96
|
},
|
|
97
97
|
lastUpdated: {
|
|
98
|
-
id: '
|
|
98
|
+
id: 'creatives.containersV2.Assets.Gallery.lastUpdated',
|
|
99
99
|
defaultMessage: 'Last update {on} by {by}',
|
|
100
100
|
},
|
|
101
101
|
noTemplatesFound: {
|
|
102
|
-
id: `
|
|
102
|
+
id: `creatives.containersV2.Assets.Gallery.noTemplatesFound`,
|
|
103
103
|
defaultMessage: 'No templates found',
|
|
104
104
|
},
|
|
105
105
|
});
|
|
@@ -7,27 +7,27 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
addNewCallTask: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.containersV2.CallTask.addNewCallTask',
|
|
11
11
|
defaultMessage: 'Add new call task',
|
|
12
12
|
},
|
|
13
13
|
newMessage: {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.containersV2.CallTask.newMessage',
|
|
15
15
|
defaultMessage: 'New message',
|
|
16
16
|
},
|
|
17
17
|
callTaskInfo: {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.containersV2.CallTask.callTaskInfo',
|
|
19
19
|
defaultMessage: 'Call Tasks are message sent to store staff. The messages are displayed on the Point of Sale (POS) machines for store staff to take action.',
|
|
20
20
|
},
|
|
21
21
|
callTaskTitleIllustartion: {
|
|
22
|
-
id: `
|
|
22
|
+
id: `creatives.containersV2.CallTask.callTaskTitleIllustartion`,
|
|
23
23
|
defaultMessage: 'Create a Call Task {templateText}',
|
|
24
24
|
},
|
|
25
25
|
newCallTaskTemplate: {
|
|
26
|
-
id: `
|
|
26
|
+
id: `creatives.containersV2.CallTask.newCallTaskTemplate`,
|
|
27
27
|
defaultMessage: 'New Call Task {templateText}',
|
|
28
28
|
},
|
|
29
29
|
template: {
|
|
30
|
-
id: `
|
|
30
|
+
id: `creatives.containersV2.CallTask.template`,
|
|
31
31
|
defaultMessage: 'template',
|
|
32
32
|
},
|
|
33
33
|
});
|
|
@@ -2,14 +2,15 @@ import PropTypes from 'prop-types';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import Helmet from 'react-helmet';
|
|
4
4
|
import { connect } from 'react-redux';
|
|
5
|
+
import {CapNotification} from '@capillarytech/cap-ui-library';
|
|
5
6
|
import { bindActionCreators } from 'redux';
|
|
6
7
|
import styled from 'styled-components';
|
|
7
8
|
import { createStructuredSelector } from 'reselect';
|
|
8
9
|
import _ from 'lodash';
|
|
9
10
|
import moment from 'moment';
|
|
10
11
|
// import 'moment/locale/zh-cn';
|
|
11
|
-
import { injectIntl } from 'react-intl';
|
|
12
|
-
import
|
|
12
|
+
import { injectIntl, FormattedMessage } from 'react-intl';
|
|
13
|
+
import messages from './messages';
|
|
13
14
|
import { makeSelectAuthenticated, makeSelectUser } from './selectors';
|
|
14
15
|
import * as actions from './actions';
|
|
15
16
|
import * as locationActions from '../LanguageProvider/actions';
|
|
@@ -164,9 +165,9 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
164
165
|
<CapWrapper>
|
|
165
166
|
<Helmet
|
|
166
167
|
titleTemplate="Capillary - %s"
|
|
167
|
-
defaultTitle=
|
|
168
|
+
defaultTitle={<FormattedMessage {...messages.appName} />}
|
|
168
169
|
meta={[
|
|
169
|
-
{ name: 'description', content:
|
|
170
|
+
{ name: 'description', content: <FormattedMessage {...messages.appName} /> },
|
|
170
171
|
]}
|
|
171
172
|
/>
|
|
172
173
|
<div className="wrapper">
|