@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
|
@@ -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.components.SmsTest.header',
|
|
11
11
|
defaultMessage: 'This is the SmsTest component !',
|
|
12
12
|
},
|
|
13
|
+
inputTemplateName: {
|
|
14
|
+
id: 'creatives.components.SmsTest.inputTemplateName',
|
|
15
|
+
defaultMessage: 'Please input template name.',
|
|
16
|
+
},
|
|
17
|
+
inputSmsTemplate: {
|
|
18
|
+
id: 'creatives.components.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
|
});
|
|
@@ -55,9 +55,9 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
55
55
|
<div className={`preview-container ${type === 'embedded' ? 'embedded-preview' : ''}`}>
|
|
56
56
|
{ channel && channel.toLowerCase() === 'sms' &&
|
|
57
57
|
<div className="shell align-center" id="sms-preview">
|
|
58
|
-
<img className="preview-image sms" src={smsBody} alt=
|
|
58
|
+
<img className="preview-image sms" src={smsBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
59
59
|
<div className="msgContainer sms">
|
|
60
|
-
<img className="sms-icon" src={smsIcon} alt=
|
|
60
|
+
<img className="sms-icon" src={smsIcon} alt={this.props.intl.formatMessage(messages.smsIcon)} />
|
|
61
61
|
<div className={"message-pop sms"}>
|
|
62
62
|
{content && content.length && content.map((msg) =>
|
|
63
63
|
<CapColumn className="message-pop-item align-left" style={{ background: '#3F51B5', color: '#ffffff'}}>
|
|
@@ -70,9 +70,9 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
70
70
|
}
|
|
71
71
|
{channel && channel.toLowerCase() === 'wechat' ?
|
|
72
72
|
( <div className="shell align-center" id="sms-preview">
|
|
73
|
-
<img className="preview-image" src={channel.toLowerCase() === 'wechat' ? wechatBody : smsBody} alt=
|
|
73
|
+
<img className="preview-image" src={channel.toLowerCase() === 'wechat' ? wechatBody : smsBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
74
74
|
<div className="msgContainer">
|
|
75
|
-
{this.props.channel.toLowerCase() === 'wechat' ? <div className="sms-icon" style={{ width: '25px', height: '25px', background: '#2E89DF' }}></div> : <img className="sms-icon" src={smsIcon} alt=
|
|
75
|
+
{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)} />}
|
|
76
76
|
<div className="message-pop align-left" style={{ background: `${this.props.channel.toLowerCase() === 'wechat' ? '#ffffff' : '#3F51B5'}`, color: `${this.props.channel.toLowerCase() === 'wechat' ? '#333333' : '#ffffff'}`}}>{content}
|
|
77
77
|
</div>
|
|
78
78
|
</div>
|
|
@@ -81,7 +81,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
81
81
|
}
|
|
82
82
|
{ channel && (channel.toLowerCase() === 'mobilepush') &&
|
|
83
83
|
(<div className="shell align-center" id="mobilepush-preview">
|
|
84
|
-
<img className="preview-image" src={this.props.device === "android" ? androidPushMessagePhone : iPhonePushMessagePhone} alt=
|
|
84
|
+
<img className="preview-image" src={this.props.device === "android" ? androidPushMessagePhone : iPhonePushMessagePhone} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
85
85
|
{(!!content.header || !!content.bodyText || !!content.bodyImage) &&
|
|
86
86
|
<div className={`${this.props.device}-push-message-Container`}>
|
|
87
87
|
{this.props.device === "android" ?
|
|
@@ -109,7 +109,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
109
109
|
:
|
|
110
110
|
<div className="message-pop align-left">
|
|
111
111
|
<div className="app-name">
|
|
112
|
-
<span className="app-icon"></span>{content.appName ? content.appName : "App name"} <i className="material-icons">close</i>
|
|
112
|
+
<span className="app-icon"></span>{content.appName ? content.appName : "App name"} <i className="material-icons">{this.props.intl.formatMessage(messages.close)}</i>
|
|
113
113
|
</div>
|
|
114
114
|
{content.bodyImage && <div className="body-image">
|
|
115
115
|
<img src={content.bodyImage} alt=""/>
|
|
@@ -131,7 +131,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
131
131
|
{
|
|
132
132
|
channel && channel.toLowerCase() === 'line' ? (
|
|
133
133
|
<div className="shell align-center" id="sms-preview">
|
|
134
|
-
<img className="preview-image" src={wechatBody} alt=
|
|
134
|
+
<img className="preview-image" src={wechatBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
135
135
|
<div className="msgContainer">
|
|
136
136
|
<div className="sms-icon" style={{ width: '25px', height: '25px', background: '#2E89DF' }}></div>
|
|
137
137
|
<div className="message-pop align-left" style={{ background: '#ffffff', color: '#333333' }}>
|
|
@@ -152,6 +152,11 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
152
152
|
}
|
|
153
153
|
<div style={{marginTop: '8px', fontSize: '16px'}} >{`${this.props.intl.formatMessage(messages.sms)}: ${smsDetails.parts}`}</div>
|
|
154
154
|
<div style={{fontSize: '16px'}}>{`${this.props.intl.formatMessage(messages.charactersPerSms)}: ${smsDetails.chars_used}`}</div>
|
|
155
|
+
{ smsDetails.optoutUrlPresent && <div>
|
|
156
|
+
<span style={{fontWeight: '100', fontSize: '12px'}}>{this.props.intl.formatMessage(messages.includes)}</span>
|
|
157
|
+
<span style={{fontSize: '12px'}}>{this.props.intl.formatMessage(messages.optout)}</span>
|
|
158
|
+
<span style={{fontWeight: '100', fontSize: '12px'}}>{this.props.intl.formatMessage(messages.tag)}</span>: {smsDetails.optouturlLength}
|
|
159
|
+
</div>}
|
|
155
160
|
</p>
|
|
156
161
|
</div>
|
|
157
162
|
: ''
|
|
@@ -7,23 +7,46 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
previewGenerationMessage: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.components.TemplatePreview.previewGenerationMessage',
|
|
11
11
|
defaultMessage: "Preview is being generated",
|
|
12
12
|
},
|
|
13
13
|
sms: {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.components.TemplatePreview.sms',
|
|
15
15
|
defaultMessage: "SMS",
|
|
16
16
|
},
|
|
17
17
|
charactersPerSms: {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.components.TemplatePreview.charactersPerSms',
|
|
19
19
|
defaultMessage: "SMS chars",
|
|
20
20
|
},
|
|
21
21
|
charactersTotal: {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'creatives.components.TemplatePreview.charactersTotal',
|
|
23
23
|
defaultMessage: "SMS char total",
|
|
24
24
|
},
|
|
25
25
|
smsFormatType: {
|
|
26
|
-
id: '
|
|
26
|
+
id: 'creatives.components.TemplatePreview.smsFormatType',
|
|
27
27
|
defaultMessage: 'Message has unicode characters',
|
|
28
28
|
},
|
|
29
|
+
includes: {
|
|
30
|
+
id: 'app.components.TemplatePreview.includes',
|
|
31
|
+
defaultMessage: 'Includes ',
|
|
32
|
+
},
|
|
33
|
+
optout: {
|
|
34
|
+
id: 'app.components.TemplatePreview.optout',
|
|
35
|
+
defaultMessage: 'Optout ',
|
|
36
|
+
},
|
|
37
|
+
tag: {
|
|
38
|
+
id: 'app.components.TemplatePreview.tag',
|
|
39
|
+
defaultMessage: 'tag ',
|
|
40
|
+
previewGenerated: {
|
|
41
|
+
id: 'creatives.components.TemplatePreview.previewGenerated',
|
|
42
|
+
defaultMessage: 'Preview is being generated',
|
|
43
|
+
},
|
|
44
|
+
close: {
|
|
45
|
+
id: 'creatives.components.TemplatePreview.close',
|
|
46
|
+
defaultMessage: 'close',
|
|
47
|
+
},
|
|
48
|
+
smsIcon: {
|
|
49
|
+
id: 'creatives.components.TemplatePreview.smsIcon',
|
|
50
|
+
defaultMessage: 'Sms Icon',
|
|
51
|
+
},
|
|
29
52
|
});
|
|
@@ -9,8 +9,11 @@ import PropTypes from 'prop-types';
|
|
|
9
9
|
import React from 'react';
|
|
10
10
|
import { Progress } from 'semantic-ui-react';
|
|
11
11
|
import styled from 'styled-components';
|
|
12
|
+
import { FormattedMessage } from 'react-intl';
|
|
12
13
|
import { messageTypeConfig } from '../../config/toastr';
|
|
13
14
|
|
|
15
|
+
import messages from './messages';
|
|
16
|
+
|
|
14
17
|
const StyledMessageWrapper = styled.div`
|
|
15
18
|
background: #f9f9fa;
|
|
16
19
|
transition: all .2s fade-out;
|
|
@@ -85,7 +88,7 @@ class ToastrMessage extends React.Component { // eslint-disable-line react/prefe
|
|
|
85
88
|
<div style={{ padding: `${16}px` }}>
|
|
86
89
|
<MessageHeader>
|
|
87
90
|
{ this.props.title ? <span style={{ fontSize: `${20}px` }}>{this.props.title}</span> : '' }
|
|
88
|
-
<StyleIcon className="material-icons" onClick={() => this.closeMessagePopup(this.props.messageId)}
|
|
91
|
+
<StyleIcon className="material-icons" onClick={() => this.closeMessagePopup(this.props.messageId)}><FormattedMessage {...messages.close} /></StyleIcon>
|
|
89
92
|
</MessageHeader>
|
|
90
93
|
<MessageContent>
|
|
91
94
|
{this.props.text}
|
|
@@ -7,7 +7,11 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
header: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.components.ToastrMessage.header',
|
|
11
11
|
defaultMessage: 'This is the ToastrMessage component !',
|
|
12
12
|
},
|
|
13
|
+
close: {
|
|
14
|
+
id: 'creatives.components.ToastrMessage.close',
|
|
15
|
+
defaultMessage: 'close',
|
|
16
|
+
},
|
|
13
17
|
});
|
package/config/app.js
CHANGED
|
@@ -5,14 +5,18 @@ const config = {
|
|
|
5
5
|
production: {
|
|
6
6
|
api_endpoint: '/arya/api/v1/creatives',
|
|
7
7
|
auth_endpoint: '/arya/api/v1/auth',
|
|
8
|
+
arya_endpoint: '/arya/api/v1',
|
|
8
9
|
login_url: 'auth/login',
|
|
9
10
|
dashboard_url: '/sms',
|
|
10
11
|
dashboard_url_v2: '/v2',
|
|
12
|
+
subscription_api_endpoint: '/arya/api/v1/subscription',
|
|
11
13
|
accountConfig: (strs, accountId) => `${window.location.origin}/org/config/AccountAdd?q=a&channelId=2&accountId=${accountId}&edit=1`,
|
|
12
14
|
},
|
|
13
15
|
development: {
|
|
14
16
|
api_endpoint: 'https://nightly.capillary.in/arya/api/v1/creatives',
|
|
15
17
|
auth_endpoint: 'https://nightly.capillary.in/arya/api/v1/auth',
|
|
18
|
+
arya_endpoint: 'https://nightly.capillary.in/arya/api/v1',
|
|
19
|
+
subscription_api_endpoint: 'https://nightly.capillary.in/arya/api/v1/subscription',
|
|
16
20
|
login_url: 'auth/login',
|
|
17
21
|
dashboard_url: '/sms',
|
|
18
22
|
dashboard_url_v2: '/v2',
|
|
@@ -7,83 +7,83 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
uploadedAt: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.containers.Assets.Gallery.uploadedAt',
|
|
11
11
|
defaultMessage: 'Uploaded at ',
|
|
12
12
|
},
|
|
13
13
|
uploadedOn: {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.containers.Assets.Gallery.uploadedOn',
|
|
15
15
|
defaultMessage: 'Uploaded on ',
|
|
16
16
|
},
|
|
17
17
|
uploadedBy: {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.containers.Assets.Gallery.uploadedBy',
|
|
19
19
|
defaultMessage: 'Uploaded by ',
|
|
20
20
|
},
|
|
21
21
|
upload: {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'creatives.containers.Assets.Gallery.upload',
|
|
23
23
|
defaultMessage: 'Upload image',
|
|
24
24
|
},
|
|
25
25
|
imagePreview: {
|
|
26
|
-
id: '
|
|
26
|
+
id: 'creatives.containers.Assets.Gallery.imagePreview',
|
|
27
27
|
defaultMessage: 'Image preview',
|
|
28
28
|
},
|
|
29
29
|
size: {
|
|
30
|
-
id: '
|
|
30
|
+
id: 'creatives.containers.Assets.Gallery.size',
|
|
31
31
|
defaultMessage: 'Size',
|
|
32
32
|
},
|
|
33
33
|
dimensions: {
|
|
34
|
-
id: '
|
|
34
|
+
id: 'creatives.containers.Assets.Gallery.dimensions',
|
|
35
35
|
defaultMessage: 'Dimensions',
|
|
36
36
|
},
|
|
37
37
|
gallery: {
|
|
38
|
-
id: '
|
|
38
|
+
id: 'creatives.containers.Assets.Gallery.gallery',
|
|
39
39
|
defaultMessage: 'Gallery',
|
|
40
40
|
},
|
|
41
41
|
backToGallery: {
|
|
42
|
-
id: '
|
|
42
|
+
id: 'creatives.containers.Assets.Gallery.backToGallery',
|
|
43
43
|
defaultMessage: 'Back to image gallery',
|
|
44
44
|
},
|
|
45
45
|
mostRecent: {
|
|
46
|
-
id: '
|
|
46
|
+
id: 'creatives.containers.Assets.Gallery.mostRecent',
|
|
47
47
|
defaultMessage: 'Most recent',
|
|
48
48
|
},
|
|
49
49
|
alphabetically: {
|
|
50
|
-
id: '
|
|
50
|
+
id: 'creatives.containers.Assets.Gallery.alphabetically',
|
|
51
51
|
defaultMessage: 'Alphabetically',
|
|
52
52
|
},
|
|
53
53
|
sortby: {
|
|
54
|
-
id: '
|
|
54
|
+
id: 'creatives.containers.Assets.Gallery.sortby',
|
|
55
55
|
defaultMessage: 'Sort by',
|
|
56
56
|
},
|
|
57
57
|
delete: {
|
|
58
|
-
id: '
|
|
58
|
+
id: 'creatives.containers.Assets.Gallery.delete',
|
|
59
59
|
defaultMessage: 'Delete',
|
|
60
60
|
},
|
|
61
61
|
search: {
|
|
62
|
-
id: '
|
|
62
|
+
id: 'creatives.containers.Assets.Gallery.search',
|
|
63
63
|
defaultMessage: 'Search',
|
|
64
64
|
},
|
|
65
65
|
select: {
|
|
66
|
-
id: '
|
|
66
|
+
id: 'creatives.containers.Assets.Gallery.select',
|
|
67
67
|
defaultMessage: 'Select',
|
|
68
68
|
},
|
|
69
69
|
preview: {
|
|
70
|
-
id: '
|
|
70
|
+
id: 'creatives.containers.Assets.Gallery.preview',
|
|
71
71
|
defaultMessage: 'Preview',
|
|
72
72
|
},
|
|
73
73
|
assetUploadSuccess: {
|
|
74
|
-
id: '
|
|
74
|
+
id: 'creatives.containers.Assets.Gallery.assetUploadSuccess',
|
|
75
75
|
defaultMessage: 'Image uploaded successfully',
|
|
76
76
|
},
|
|
77
77
|
assetUploadFailed: {
|
|
78
|
-
id: '
|
|
78
|
+
id: 'creatives.containers.Assets.Gallery.assetUploadFailed',
|
|
79
79
|
defaultMessage: 'Image uploaded failed',
|
|
80
80
|
},
|
|
81
81
|
assetDeleteSuccess: {
|
|
82
|
-
id: '
|
|
82
|
+
id: 'creatives.containers.Assets.Gallery.assetDeleteSuccess',
|
|
83
83
|
defaultMessage: 'Image deleted successfully.',
|
|
84
84
|
},
|
|
85
85
|
assetDeleteFailed: {
|
|
86
|
-
id: '
|
|
86
|
+
id: 'creatives.containers.Assets.Gallery.assetDeleteFailed',
|
|
87
87
|
defaultMessage: 'Image deletion failed.',
|
|
88
88
|
},
|
|
89
89
|
});
|
package/containers/Cap/index.js
CHANGED
|
@@ -20,7 +20,7 @@ import * as locationActions from '../LanguageProvider/actions';
|
|
|
20
20
|
import * as appActions from '../App/actions';
|
|
21
21
|
import config from '../../config/app';
|
|
22
22
|
import Toastr from '../../components/Toastr';
|
|
23
|
-
import messages from './
|
|
23
|
+
import messages from './messages';
|
|
24
24
|
const gtm = window.dataLayer || [];
|
|
25
25
|
|
|
26
26
|
const CapWrapper = styled.div`
|
|
@@ -166,6 +166,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
166
166
|
const map = {
|
|
167
167
|
'en': 'en',
|
|
168
168
|
'zh-cn': 'zh',
|
|
169
|
+
'zh': 'zh',
|
|
169
170
|
};
|
|
170
171
|
return map[locale];
|
|
171
172
|
}
|
|
@@ -235,7 +236,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
235
236
|
},
|
|
236
237
|
{
|
|
237
238
|
link: '/mobilepush',
|
|
238
|
-
text:
|
|
239
|
+
text: this.props.intl.formatMessage(messages.mobilepush),
|
|
239
240
|
value: 'MOBILEPUSH',
|
|
240
241
|
},
|
|
241
242
|
{
|
|
@@ -255,7 +256,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
255
256
|
},
|
|
256
257
|
{
|
|
257
258
|
link: '/line',
|
|
258
|
-
text:
|
|
259
|
+
text: this.props.intl.formatMessage(messages.line),
|
|
259
260
|
value: 'LINE',
|
|
260
261
|
},
|
|
261
262
|
],
|
|
@@ -276,9 +277,9 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
276
277
|
<CapWrapper>
|
|
277
278
|
<Helmet
|
|
278
279
|
titleTemplate="Capillary - %s"
|
|
279
|
-
defaultTitle=
|
|
280
|
+
defaultTitle={this.props.intl.formatMessage(messages.appName)}
|
|
280
281
|
meta={[
|
|
281
|
-
{ name: 'description', content:
|
|
282
|
+
{ name: 'description', content: this.props.intl.formatMessage(messages.appName) },
|
|
282
283
|
]}
|
|
283
284
|
/>
|
|
284
285
|
<div className="wrapper">
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
2
|
+
export default defineMessages({
|
|
3
|
+
"sms": {
|
|
4
|
+
id: 'reon.components.Cap.sms',
|
|
5
|
+
defaultMessage: 'SMS',
|
|
6
|
+
},
|
|
7
|
+
"wechat": {
|
|
8
|
+
id: 'reon.components.Cap.wechat',
|
|
9
|
+
defaultMessage: 'WeChat',
|
|
10
|
+
},
|
|
11
|
+
"gallery": {
|
|
12
|
+
id: 'reon.components.Cap.gallery',
|
|
13
|
+
defaultMessage: 'Gallery',
|
|
14
|
+
},
|
|
15
|
+
"creativesDashboard": {
|
|
16
|
+
id: 'reon.components.Cap.creativesDashboard',
|
|
17
|
+
defaultMessage: 'Creatives',
|
|
18
|
+
},
|
|
19
|
+
"creatives": {
|
|
20
|
+
id: 'reon.components.Cap.creatives',
|
|
21
|
+
defaultMessage: 'Creatives',
|
|
22
|
+
},
|
|
23
|
+
"campaigns": {
|
|
24
|
+
id: 'reon.components.Cap.campaigns',
|
|
25
|
+
defaultMessage: 'Campaigns',
|
|
26
|
+
},
|
|
27
|
+
"loyalty": {
|
|
28
|
+
id: 'reon.components.Cap.loyalty',
|
|
29
|
+
defaultMessage: 'Loyalty',
|
|
30
|
+
},
|
|
31
|
+
"member care": {
|
|
32
|
+
id: 'reon.components.Cap.memberCare',
|
|
33
|
+
defaultMessage: 'Member Care',
|
|
34
|
+
},
|
|
35
|
+
"workbench": {
|
|
36
|
+
id: 'reon.components.Cap.Workbench',
|
|
37
|
+
defaultMessage: 'WorkBench',
|
|
38
|
+
},
|
|
39
|
+
"store care": {
|
|
40
|
+
id: 'reon.components.Cap.storeCare',
|
|
41
|
+
defaultMessage: 'Store Care',
|
|
42
|
+
},
|
|
43
|
+
"store performance": {
|
|
44
|
+
id: 'reon.components.Cap.storePerformance',
|
|
45
|
+
defaultMessage: 'Store Performance',
|
|
46
|
+
},
|
|
47
|
+
"email": {
|
|
48
|
+
id: 'reon.components.Cap.email',
|
|
49
|
+
defaultMessage: 'Email',
|
|
50
|
+
},
|
|
51
|
+
"ebill": {
|
|
52
|
+
id: 'reon.components.Cap.ebill',
|
|
53
|
+
defaultMessage: 'Ebill',
|
|
54
|
+
},
|
|
55
|
+
"campaignsDashboard": {
|
|
56
|
+
id: 'reon.components.campaignsDashboard',
|
|
57
|
+
defaultMessage: 'Campaigns',
|
|
58
|
+
},
|
|
59
|
+
"campaignsHome": {
|
|
60
|
+
id: 'reon.components.campaignsHome',
|
|
61
|
+
defaultMessage: "Campaigns Home",
|
|
62
|
+
},
|
|
63
|
+
"line": {
|
|
64
|
+
id: 'reon.components.Cap.line',
|
|
65
|
+
defaultMessage: 'Line',
|
|
66
|
+
},
|
|
67
|
+
"mobilepush": {
|
|
68
|
+
id: 'reon.components.Cap.mobilepush',
|
|
69
|
+
defaultMessage: 'Mobile Push',
|
|
70
|
+
},
|
|
71
|
+
"appName": {
|
|
72
|
+
id: 'reon.components.Cap.appName',
|
|
73
|
+
defaultMessage: 'App Name',
|
|
74
|
+
},
|
|
75
|
+
});
|
|
@@ -30,7 +30,7 @@ export class Dashboard extends React.Component { // eslint-disable-line react/pr
|
|
|
30
30
|
<FormattedMessage {...messages.header}>{(message) => (<Helmet
|
|
31
31
|
title={message}
|
|
32
32
|
meta={[
|
|
33
|
-
{ name: 'description', content:
|
|
33
|
+
{ name: 'description', content: <FormattedMessage {...messages.header} /> },
|
|
34
34
|
]}
|
|
35
35
|
/>)}
|
|
36
36
|
</FormattedMessage>
|
|
@@ -42,7 +42,7 @@ export class Dashboard extends React.Component { // eslint-disable-line react/pr
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
Dashboard.propTypes = {
|
|
45
|
-
|
|
45
|
+
router: PropTypes.object,
|
|
46
46
|
};
|
|
47
47
|
|
|
48
48
|
const mapStateToProps = createStructuredSelector({
|
|
@@ -815,7 +815,7 @@ export class Ebill extends React.Component { // eslint-disable-line react/prefer
|
|
|
815
815
|
console.log('isValid');
|
|
816
816
|
return true;
|
|
817
817
|
}
|
|
818
|
-
const message = getMessageObject('error',
|
|
818
|
+
const message = getMessageObject('error', this.props.intl.formatMessage(messages.templateNotValid), true);
|
|
819
819
|
this.props.globalActions.addMessageToQueue(message);
|
|
820
820
|
console.log('not valid');
|
|
821
821
|
return false;
|
|
@@ -7,67 +7,71 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
"campaigns": {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.containers.Ebill.campaigns',
|
|
11
11
|
defaultMessage: 'Campaigns',
|
|
12
12
|
},
|
|
13
13
|
"creatives": {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.containers.Ebill.creatives',
|
|
15
15
|
defaultMessage: 'Creatives',
|
|
16
16
|
},
|
|
17
17
|
"ebill": {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.containers.Ebill.ebill',
|
|
19
19
|
defaultMessage: 'Ebill',
|
|
20
20
|
},
|
|
21
21
|
"ebillPreview": {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'creatives.containers.Ebill.ebillPreview',
|
|
23
23
|
defaultMessage: 'Ebill Preview',
|
|
24
24
|
},
|
|
25
25
|
"loading": {
|
|
26
|
-
id: '
|
|
26
|
+
id: 'creatives.containers.Ebill.loading',
|
|
27
27
|
defaultMessage: 'Loading..',
|
|
28
28
|
},
|
|
29
29
|
"ebillEditSuccess": {
|
|
30
|
-
id: '
|
|
30
|
+
id: 'creatives.containers.Ebill.ebillEditSuccess',
|
|
31
31
|
defaultMessage: "Ebill template edited successfully",
|
|
32
32
|
},
|
|
33
33
|
"ebillCreateSuccess": {
|
|
34
|
-
id: '
|
|
34
|
+
id: 'creatives.containers.Ebill.ebillCreateSuccess',
|
|
35
35
|
defaultMessage: "Ebill template created successfully",
|
|
36
36
|
},
|
|
37
37
|
"somethingWentWrong": {
|
|
38
|
-
id: '
|
|
38
|
+
id: 'creatives.containers.Ebill.somethingWentWrong',
|
|
39
39
|
defaultMessage: "Something went wrong!!",
|
|
40
40
|
},
|
|
41
41
|
"Enter template name": {
|
|
42
|
-
id: '
|
|
42
|
+
id: 'creatives.containers.Ebill.enterTemplateName',
|
|
43
43
|
defaultMessage: "Enter template name",
|
|
44
44
|
},
|
|
45
45
|
"Template name cannot be empty.": {
|
|
46
|
-
id: '
|
|
46
|
+
id: 'creatives.containers.Ebill.emptyTemplateErrorMessage',
|
|
47
47
|
defaultMessage: "Please provide a template name ",
|
|
48
48
|
},
|
|
49
49
|
"Preview": {
|
|
50
|
-
id: '
|
|
50
|
+
id: 'creatives.containers.Ebill.Preview',
|
|
51
51
|
defaultMessage: "Preview",
|
|
52
52
|
},
|
|
53
53
|
"Cancel": {
|
|
54
|
-
id: '
|
|
54
|
+
id: 'creatives.containers.Ebill.Cancel',
|
|
55
55
|
defaultMessage: "Cancel",
|
|
56
56
|
},
|
|
57
57
|
"Save": {
|
|
58
|
-
id: '
|
|
58
|
+
id: 'creatives.containers.Ebill.Save',
|
|
59
59
|
defaultMessage: "Save",
|
|
60
60
|
},
|
|
61
61
|
"Template content has unsupported/missing tags!": {
|
|
62
|
-
id: '
|
|
62
|
+
id: 'creatives.containers.Ebill.tagsErrorMessage',
|
|
63
63
|
defaultMessage: "Please check the message content for unsupported/missing tags",
|
|
64
64
|
},
|
|
65
65
|
"Tags": {
|
|
66
|
-
id: '
|
|
66
|
+
id: 'creatives.containers.Ebill.tagsLabel',
|
|
67
67
|
defaultMessage: "Tags",
|
|
68
68
|
},
|
|
69
69
|
"New Version": {
|
|
70
|
-
id: '
|
|
70
|
+
id: 'creatives.containers.Ebill.newVersionLabel',
|
|
71
71
|
defaultMessage: "New version",
|
|
72
72
|
},
|
|
73
|
+
"templateNotValid": {
|
|
74
|
+
id: 'creatives.containers.Ebill.templateNotValid',
|
|
75
|
+
defaultMessage: "Template data is not valid",
|
|
76
|
+
},
|
|
73
77
|
});
|