@capillarytech/creatives-library 3.0.35 → 3.1.0
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/assets/noImage.png +0 -0
- package/components/BreadCrumbs/messages.js +1 -1
- package/components/CapTagList/index.js +3 -3
- package/components/CapTagList/messages.js +4 -16
- package/components/Ckeditor/messages.js +1 -1
- package/components/CustomPopOver/index.js +4 -3
- package/components/CustomPopOver/messages.js +1 -5
- package/components/DateFilter/index.js +12 -12
- package/components/DateFilter/messages.js +0 -40
- package/components/DateRange/index.js +4 -5
- package/components/DateRange/messages.js +1 -13
- package/components/Edmeditor/messages.js +1 -1
- package/components/EmailPreview/index.js +4 -4
- package/components/EmailPreview/messages.js +2 -18
- package/components/Footer/messages.js +1 -1
- package/components/FormBuilder/index.js +19 -15
- package/components/FormBuilder/messages.js +1 -33
- package/components/Header/messages.js +4 -4
- package/components/ImagePreview/index.js +1 -1
- package/components/ImagePreview/messages.js +1 -5
- package/components/PageHeader/messages.js +1 -1
- package/components/PreviewSideBar/index.js +2 -2
- package/components/PreviewSideBar/messages.js +6 -14
- package/components/Sidebar/messages.js +3 -3
- package/components/SmsTest/index.js +4 -6
- package/components/SmsTest/messages.js +1 -9
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +3 -3
- package/components/TemplatePreview/index.js +10 -11
- package/components/TemplatePreview/messages.js +7 -23
- package/components/Toastr/messages.js +1 -1
- package/components/ToastrMessage/index.js +1 -4
- package/components/ToastrMessage/messages.js +1 -5
- package/components/TopBar/messages.js +1 -1
- package/config/app.js +0 -2
- package/containers/Assets/Gallery/messages.js +20 -20
- package/containers/Cap/index.js +5 -5
- 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 +16 -20
- package/containers/Email/index.js +24 -24
- package/containers/Email/messages.js +59 -107
- package/containers/Line/Create/index.js +7 -7
- package/containers/Line/Create/messages.js +42 -58
- package/containers/Line/Edit/index.js +14 -14
- package/containers/Line/Edit/messages.js +38 -58
- package/containers/Login/components/LoginForm/index.js +7 -10
- package/containers/Login/components/LoginForm/messages.js +3 -15
- package/containers/Login/index.js +1 -1
- package/containers/Login/messages.js +3 -7
- package/containers/MobilePush/Create/index.js +45 -45
- package/containers/MobilePush/Create/messages.js +75 -111
- package/containers/MobilePush/Edit/index.js +45 -45
- package/containers/MobilePush/Edit/messages.js +83 -100
- package/containers/NotFoundPage/messages.js +1 -1
- package/containers/Sms/Create/index.js +8 -7
- package/containers/Sms/Create/messages.js +19 -43
- package/containers/Sms/Edit/index.js +4 -4
- package/containers/Sms/Edit/messages.js +20 -36
- package/containers/TagList/messages.js +1 -1
- package/containers/Templates/index.js +19 -20
- package/containers/Templates/messages.js +64 -136
- package/containers/TestPage/messages.js +1 -1
- package/containers/Testv2/index.js +2 -2
- package/containers/Testv2/messages.js +1 -9
- package/containers/WeChat/MapTemplates/index.js +10 -10
- package/containers/WeChat/MapTemplates/messages.js +17 -49
- 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 +1 -9
- package/index.js +20 -8
- package/package.json +4 -1
- package/routes.js +16 -2
- package/services/api.js +2 -17
- package/services/getSchema.js +4 -1
- package/translations/en.json +360 -1396
- package/translations/zh.json +381 -1417
- package/utils/smsCharCountV2.js +10 -26
- package/v2Components/BreadCrumbs/messages.js +1 -1
- package/v2Components/CallTaskPreview/messages.js +1 -1
- package/v2Components/CapTagList/index.js +5 -6
- package/v2Components/CapTagList/messages.js +4 -24
- package/v2Components/Ckeditor/index.js +0 -1
- package/v2Components/Ckeditor/messages.js +1 -1
- package/v2Components/CmsTemplatesComponent/messages.js +2 -2
- package/v2Components/CustomPopOver/index.js +2 -4
- package/v2Components/CustomPopOver/messages.js +1 -5
- package/v2Components/DateFilter/index.js +349 -0
- package/v2Components/DateFilter/messages.js +17 -0
- package/v2Components/DateFilter/tests/index.test.js +15 -0
- package/v2Components/DateRange/index.js +113 -0
- package/v2Components/DateRange/messages.js +13 -0
- package/v2Components/DateRange/tests/index.test.js +10 -0
- package/v2Components/Edmeditor/messages.js +1 -1
- package/v2Components/EmailPreview/index.js +2 -2
- package/v2Components/EmailPreview/messages.js +3 -11
- package/v2Components/EmailPreviewV2/index.js +1 -1
- package/v2Components/EmailPreviewV2/messages.js +9 -13
- package/v2Components/Footer/messages.js +1 -1
- package/v2Components/FormBuilder/_formBuilder.scss +19 -0
- package/v2Components/FormBuilder/index.js +58 -27
- package/v2Components/FormBuilder/messages.js +1 -49
- package/v2Components/Header/index.js +2 -2
- package/v2Components/Header/messages.js +4 -4
- package/v2Components/ImagePreview/index.js +2 -3
- package/v2Components/ImagePreview/messages.js +1 -5
- package/v2Components/MobilePushPreviewV2/index.js +5 -2
- package/v2Components/MobilePushPreviewV2/messages.js +1 -9
- package/v2Components/NavigationBar/messages.js +1 -1
- package/v2Components/NewCallTask/messages.js +5 -5
- package/v2Components/PageHeader/_pageHeader.scss +22 -0
- package/v2Components/PageHeader/index.js +37 -0
- package/v2Components/PageHeader/messages.js +13 -0
- package/v2Components/PageHeader/tests/index.test.js +10 -0
- package/v2Components/PreviewSideBar/messages.js +6 -6
- package/v2Components/Sidebar/_sidebar.scss +115 -0
- package/v2Components/Sidebar/index.js +208 -0
- package/v2Components/Sidebar/messages.js +21 -0
- package/v2Components/Sidebar/tests/index.test.js +10 -0
- package/v2Components/SmsEditor/index.js +55 -0
- package/v2Components/SmsEditor/tests/index.test.js +10 -0
- package/v2Components/SmsTest/index.js +4 -6
- package/v2Components/SmsTest/messages.js +1 -9
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +2 -0
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +18 -28
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +3 -3
- package/v2Components/TemplatePreview/_templatePreview.scss +0 -9
- package/v2Components/TemplatePreview/index.js +16 -35
- package/v2Components/TemplatePreview/messages.js +7 -23
- package/v2Components/Toastr/messages.js +1 -1
- package/v2Components/ToastrMessage/index.js +2 -3
- package/v2Components/ToastrMessage/messages.js +1 -5
- package/v2Components/TopBar/_topbar.scss +46 -0
- package/v2Components/TopBar/messages.js +7 -7
- package/v2Containers/App/constants.js +0 -11
- package/v2Containers/Assets/Gallery/messages.js +24 -24
- package/v2Containers/CallTask/messages.js +6 -6
- package/v2Containers/Cap/actions.js +0 -1
- package/v2Containers/Cap/index.js +9 -6
- package/v2Containers/Cap/messsages.js +15 -19
- package/v2Containers/Cap/sagas.js +8 -1
- package/v2Containers/ChannelTemplates/messages.js +1 -1
- package/v2Containers/CreativesContainer/SlideBoxContent.js +39 -1
- package/v2Containers/CreativesContainer/SlideBoxFooter.js +7 -1
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +21 -3
- package/v2Containers/CreativesContainer/index.js +95 -50
- package/v2Containers/CreativesContainer/index.scss +15 -0
- package/v2Containers/CreativesContainer/messages.js +12 -16
- package/v2Containers/Dashboard/index.js +1 -2
- package/v2Containers/Dashboard/messages.js +1 -1
- package/v2Containers/Ebill/index.js +1 -1
- package/v2Containers/Ebill/messages.js +16 -20
- package/v2Containers/Email/index.js +20 -20
- package/v2Containers/Email/messages.js +61 -101
- package/v2Containers/EmailWrapper/index.js +44 -64
- package/v2Containers/EmailWrapper/messages.js +12 -12
- package/v2Containers/Line/Create/index.js +3 -3
- package/v2Containers/Line/Create/messages.js +41 -53
- package/v2Containers/Line/Edit/index.js +10 -10
- package/v2Containers/Line/Edit/messages.js +39 -55
- package/v2Containers/Login/components/LoginForm/index.js +6 -9
- package/v2Containers/Login/components/LoginForm/messages.js +3 -15
- package/v2Containers/Login/index.js +1 -1
- package/v2Containers/Login/messages.js +3 -7
- package/v2Containers/MobilePush/Create/_mobilePushCreate.scss +3 -0
- package/v2Containers/MobilePush/Create/index.js +33 -33
- package/v2Containers/MobilePush/Create/messages.js +81 -109
- package/v2Containers/MobilePush/Edit/_mobilePushCreate.scss +3 -0
- package/v2Containers/MobilePush/Edit/index.js +22 -22
- package/v2Containers/MobilePush/Edit/messages.js +79 -95
- package/v2Containers/MobilePush/initialSchema.js +1 -2
- 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 +21 -41
- package/v2Containers/Sms/Edit/index.js +6 -6
- package/v2Containers/Sms/Edit/messages.js +20 -36
- package/v2Containers/TagList/messages.js +1 -1
- package/v2Containers/Templates/_templates.scss +31 -5
- package/v2Containers/Templates/index.js +243 -248
- package/v2Containers/Templates/messages.js +7 -15
- package/v2Containers/Templates/sagas.js +0 -1
- package/v2Containers/TemplatesV2/_templatesV2.scss +5 -0
- package/v2Containers/TemplatesV2/index.js +4 -1
- package/v2Containers/TemplatesV2/messages.js +5 -29
- package/v2Containers/TestPage/messages.js +1 -1
- package/v2Containers/Testv2/index.js +2 -2
- package/v2Containers/Testv2/messages.js +1 -9
- package/v2Containers/WeChat/MapTemplates/_mapTemplates.scss +16 -0
- package/v2Containers/WeChat/MapTemplates/actions.js +4 -2
- package/v2Containers/WeChat/MapTemplates/index.js +800 -872
- package/v2Containers/WeChat/MapTemplates/initialSchema.js +184 -0
- package/v2Containers/WeChat/MapTemplates/messages.js +19 -43
- package/v2Containers/WeChat/MapTemplates/sagas.js +6 -2
- package/v2Containers/WeChat/MapTemplates/selectors.js +1 -1
- package/v2Containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +118 -28
- package/v2Containers/WeChat/RichmediaTemplates/Create/actions.js +3 -1
- package/v2Containers/WeChat/RichmediaTemplates/Create/index.js +262 -306
- package/v2Containers/WeChat/RichmediaTemplates/Create/messages.js +43 -95
- package/v2Containers/WeChat/RichmediaTemplates/Create/reducer.js +2 -1
- package/v2Containers/WeChat/RichmediaTemplates/Create/richmediaschema.js +113 -246
- package/v2Containers/WeChat/RichmediaTemplates/Create/sagas.js +5 -2
- package/v2Containers/WeChat/RichmediaTemplates/Create/selectors.js +1 -1
- package/v2Containers/WeChat/RichmediaTemplates/Edit/actions.js +2 -2
- package/v2Containers/WeChat/RichmediaTemplates/Edit/index.js +11 -10
- package/v2Containers/WeChat/RichmediaTemplates/Edit/messages.js +1 -1
- package/v2Containers/WeChat/RichmediaTemplates/Edit/reducer.js +1 -0
- package/v2Containers/WeChat/RichmediaTemplates/Edit/sagas.js +4 -2
- package/v2Containers/WeChat/RichmediaTemplates/Edit/selectors.js +1 -1
- package/v2Containers/WeChat/RichmediaTemplates/View/messages.js +1 -9
- package/v2Containers/WeChat/Wrapper/_wrapper.scss +0 -0
- package/v2Containers/WeChat/Wrapper/constants.js +5 -0
- package/v2Containers/WeChat/Wrapper/index.js +194 -0
- package/v2Containers/WeChat/Wrapper/messages.js +21 -0
- package/v2Containers/WeChat/helper.js +12 -0
- package/containers/Cap/messages.js +0 -75
- package/v2Containers/Cap/messages.js +0 -75
|
@@ -1,67 +1,63 @@
|
|
|
1
1
|
import { defineMessages } from 'react-intl';
|
|
2
2
|
export default defineMessages({
|
|
3
3
|
"sms": {
|
|
4
|
-
id: 'reon.
|
|
4
|
+
id: 'reon.components.Cap.sms',
|
|
5
5
|
defaultMessage: 'SMS',
|
|
6
6
|
},
|
|
7
7
|
"wechat": {
|
|
8
|
-
id: 'reon.
|
|
8
|
+
id: 'reon.components.Cap.wechat',
|
|
9
9
|
defaultMessage: 'WeChat',
|
|
10
10
|
},
|
|
11
11
|
"gallery": {
|
|
12
|
-
id: 'reon.
|
|
12
|
+
id: 'reon.components.Cap.gallery',
|
|
13
13
|
defaultMessage: 'Gallery',
|
|
14
14
|
},
|
|
15
15
|
"creativesDashboard": {
|
|
16
|
-
id: 'reon.
|
|
16
|
+
id: 'reon.components.Cap.creativesDashboard',
|
|
17
17
|
defaultMessage: 'Creatives',
|
|
18
18
|
},
|
|
19
19
|
"creatives": {
|
|
20
|
-
id: 'reon.
|
|
20
|
+
id: 'reon.components.Cap.creatives',
|
|
21
21
|
defaultMessage: 'Creatives',
|
|
22
22
|
},
|
|
23
23
|
"campaigns": {
|
|
24
|
-
id: 'reon.
|
|
24
|
+
id: 'reon.components.Cap.campaigns',
|
|
25
25
|
defaultMessage: 'Campaigns',
|
|
26
26
|
},
|
|
27
27
|
"loyalty": {
|
|
28
|
-
id: 'reon.
|
|
28
|
+
id: 'reon.components.Cap.loyalty',
|
|
29
29
|
defaultMessage: 'Loyalty',
|
|
30
30
|
},
|
|
31
31
|
"member care": {
|
|
32
|
-
id: 'reon.
|
|
32
|
+
id: 'reon.components.Cap.memberCare',
|
|
33
33
|
defaultMessage: 'Member Care',
|
|
34
34
|
},
|
|
35
35
|
"workbench": {
|
|
36
|
-
id: 'reon.
|
|
36
|
+
id: 'reon.components.Cap.Workbench',
|
|
37
37
|
defaultMessage: 'WorkBench',
|
|
38
38
|
},
|
|
39
39
|
"store care": {
|
|
40
|
-
id: 'reon.
|
|
40
|
+
id: 'reon.components.Cap.storeCare',
|
|
41
41
|
defaultMessage: 'Store Care',
|
|
42
42
|
},
|
|
43
43
|
"store performance": {
|
|
44
|
-
id: 'reon.
|
|
44
|
+
id: 'reon.components.Cap.storePerformance',
|
|
45
45
|
defaultMessage: 'Store Performance',
|
|
46
46
|
},
|
|
47
47
|
"email": {
|
|
48
|
-
id: 'reon.
|
|
48
|
+
id: 'reon.components.Cap.email',
|
|
49
49
|
defaultMessage: 'Email',
|
|
50
50
|
},
|
|
51
51
|
"ebill": {
|
|
52
|
-
id: 'reon.
|
|
52
|
+
id: 'reon.components.Cap.ebill',
|
|
53
53
|
defaultMessage: 'Ebill',
|
|
54
54
|
},
|
|
55
55
|
"campaignsDashboard": {
|
|
56
|
-
id: 'reon.
|
|
56
|
+
id: 'reon.components.campaignsDashboard',
|
|
57
57
|
defaultMessage: 'Campaigns',
|
|
58
58
|
},
|
|
59
59
|
"campaignsHome": {
|
|
60
|
-
id: 'reon.
|
|
60
|
+
id: 'reon.components.campaignsHome',
|
|
61
61
|
defaultMessage: "Campaigns Home",
|
|
62
62
|
},
|
|
63
|
-
"appName": {
|
|
64
|
-
id: 'reon.componentsv2.appName',
|
|
65
|
-
defaultMessage: "App Name",
|
|
66
|
-
},
|
|
67
63
|
});
|
|
@@ -6,7 +6,6 @@ import * as LocalStorage from '../../services/localStorageApi';
|
|
|
6
6
|
import * as types from './constants';
|
|
7
7
|
import config from '../../config/app';
|
|
8
8
|
import pathConfig from '../../config/path';
|
|
9
|
-
import { getTopbarMenuDataValue } from '../../v2Containers/App/constants';
|
|
10
9
|
// import {makeSelectOrgId} from './selectors';
|
|
11
10
|
|
|
12
11
|
function* authorize(user) {
|
|
@@ -158,3 +157,11 @@ export default [
|
|
|
158
157
|
watchGetTopbarMenuData,
|
|
159
158
|
];
|
|
160
159
|
|
|
160
|
+
function getTopbarMenuDataValue() {
|
|
161
|
+
return [
|
|
162
|
+
{ label: 'Campaigns', link: '/campaigns/ui/list', key: 'campaigns' },
|
|
163
|
+
{ label: 'Audience', link: '/audience-manager/list', key: 'audience' },
|
|
164
|
+
{ label: 'Incentive', link: '/coupons/ui/', key: 'incentive' },
|
|
165
|
+
{ label: 'Creatives', link: '/creatives/ui/v2', key: 'creatives' },
|
|
166
|
+
];
|
|
167
|
+
}
|
|
@@ -7,7 +7,7 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
header: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'app.containers.ChannelTemplates.header',
|
|
11
11
|
defaultMessage: 'This is ChannelTemplates container !',
|
|
12
12
|
},
|
|
13
13
|
});
|
|
@@ -11,6 +11,8 @@ import EmailWrapper from '../EmailWrapper';
|
|
|
11
11
|
import MobilepushWrapper from '../MobilepushWrapper';
|
|
12
12
|
import EmailPreviewV2 from '../../v2Components/EmailPreviewV2';
|
|
13
13
|
import MobilePushPreview from '../../v2Components/MobilePushPreviewV2';
|
|
14
|
+
import WechatWrapper from '../WeChat/Wrapper';
|
|
15
|
+
import { RICH_MEDIA, MAP_TEMPLATE, CREATE } from '../WeChat/Wrapper/constants';
|
|
14
16
|
import CallTask from '../CallTask';
|
|
15
17
|
import MobliPushEdit from '../MobilePush/Edit';
|
|
16
18
|
import * as constants from './constants';
|
|
@@ -21,6 +23,13 @@ const CreativesWrapper = styled.div`
|
|
|
21
23
|
z-index: 10003;
|
|
22
24
|
}
|
|
23
25
|
`;
|
|
26
|
+
|
|
27
|
+
function getWechatTemplateType(mode, templateData, weChatTemplateType = '') {
|
|
28
|
+
if (mode !== CREATE) {
|
|
29
|
+
return get(templateData, 'definition.msgcontent', '') === "RICH_MEDIA_WECHAT" ? RICH_MEDIA : MAP_TEMPLATE;
|
|
30
|
+
}
|
|
31
|
+
return weChatTemplateType;
|
|
32
|
+
}
|
|
24
33
|
function SlideBoxContent(props) {
|
|
25
34
|
const {
|
|
26
35
|
slidBoxContent,
|
|
@@ -51,9 +60,14 @@ function SlideBoxContent(props) {
|
|
|
51
60
|
onValidationFail,
|
|
52
61
|
channelsToHide,
|
|
53
62
|
forwardedTags,
|
|
63
|
+
weChatTemplateType,
|
|
64
|
+
onWechatTemplateChange,
|
|
65
|
+
selectedWeChatAccount,
|
|
66
|
+
weChatMaptemplateStep,
|
|
67
|
+
onWeChatMaptemplateStepChange,
|
|
54
68
|
} = props;
|
|
55
69
|
const type = messageDetails.type.toLowerCase(); // type is context in get tags values : outbound | dvs | referral | loyalty | coupons
|
|
56
|
-
const query = { type: !isFullMode && 'embedded', module: isFullMode ? '
|
|
70
|
+
const query = { type: !isFullMode && 'embedded', module: isFullMode ? 'default' : 'library'};
|
|
57
71
|
const creativesLocationProps = {
|
|
58
72
|
pathname: `/sms/edit`,
|
|
59
73
|
query,
|
|
@@ -126,6 +140,27 @@ function SlideBoxContent(props) {
|
|
|
126
140
|
forwardedTags={forwardedTags}
|
|
127
141
|
/>
|
|
128
142
|
)}
|
|
143
|
+
{isMpushPreview &&
|
|
144
|
+
<MobilePushPreview templateData={templateData} channel={channel}/>
|
|
145
|
+
}
|
|
146
|
+
{
|
|
147
|
+
(currentChannel === constants.WECHAT && !!slidBoxContent) && <WechatWrapper
|
|
148
|
+
mode={slidBoxContent}
|
|
149
|
+
templateData={templateData}
|
|
150
|
+
templateType={getWechatTemplateType(slidBoxContent, templateData, weChatTemplateType)}
|
|
151
|
+
onWechatTemplateChange={onWechatTemplateChange}
|
|
152
|
+
templateStep={templateStep}
|
|
153
|
+
query={query}
|
|
154
|
+
selectedWeChatAccount={selectedWeChatAccount}
|
|
155
|
+
isGetFormData={isGetFormData}
|
|
156
|
+
getFormData={getFormData}
|
|
157
|
+
isFullMode={isFullMode}
|
|
158
|
+
onValidationFail={onValidationFail}
|
|
159
|
+
onWeChatMaptemplateStepChange={onWeChatMaptemplateStepChange}
|
|
160
|
+
weChatMaptemplateStep={weChatMaptemplateStep}
|
|
161
|
+
forwardedTags={forwardedTags}
|
|
162
|
+
/>
|
|
163
|
+
}
|
|
129
164
|
{isEditSms && (
|
|
130
165
|
<SmsEdit
|
|
131
166
|
setIsLoadingContent={setIsLoadingContent}
|
|
@@ -287,5 +322,8 @@ SlideBoxContent.propTypes = {
|
|
|
287
322
|
onValidationFail: PropTypes.func,
|
|
288
323
|
channelsToHide: PropTypes.array,
|
|
289
324
|
forwardedTags: PropTypes.object,
|
|
325
|
+
weChatTemplateType: PropTypes.string,
|
|
326
|
+
onWechatTemplateChange: PropTypes.func,
|
|
327
|
+
selectedWeChatAccount: PropTypes.object,
|
|
290
328
|
};
|
|
291
329
|
export default SlideBoxContent;
|
|
@@ -3,6 +3,12 @@ import { FormattedMessage } from 'react-intl';
|
|
|
3
3
|
import { CapButton } from '@capillarytech/cap-ui-library';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import messages from './messages';
|
|
6
|
+
function getFullModeSaveBtn(slidBoxContent) {
|
|
7
|
+
return slidBoxContent === "editTemplate" ?
|
|
8
|
+
<FormattedMessage {...messages.creativesTemplatesUpdate}/>
|
|
9
|
+
:
|
|
10
|
+
<FormattedMessage {...messages.creativesTemplatesSaveFullMode}/>;
|
|
11
|
+
}
|
|
6
12
|
function SlideBoxFooter(props) {
|
|
7
13
|
const { slidBoxContent, onSave, onEditTemplate, onCreateNextStep, isFullMode} = props;
|
|
8
14
|
return (
|
|
@@ -12,7 +18,7 @@ function SlideBoxFooter(props) {
|
|
|
12
18
|
<div>
|
|
13
19
|
<CapButton onClick={onSave}>
|
|
14
20
|
{isFullMode ?
|
|
15
|
-
|
|
21
|
+
getFullModeSaveBtn(slidBoxContent)
|
|
16
22
|
:
|
|
17
23
|
<FormattedMessage {...messages.creativesTemplatesSave} />
|
|
18
24
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import styled from 'styled-components';
|
|
3
3
|
import { FormattedMessage } from 'react-intl';
|
|
4
|
-
import { CapHeader, CapIcons, CapLabel } from '@capillarytech/cap-ui-library';
|
|
4
|
+
import { CapHeader, CapIcons, CapLabel, CapSteps } from '@capillarytech/cap-ui-library';
|
|
5
5
|
import moment from 'moment';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import messages from './messages';
|
|
8
|
+
import { MAP_TEMPLATE } from '../WeChat/Wrapper/constants';
|
|
8
9
|
const PrefixWrapper = styled.div`
|
|
9
10
|
margin-right: 16px;
|
|
10
11
|
`;
|
|
@@ -13,11 +14,12 @@ function getChannelLabel(channel) {
|
|
|
13
14
|
sms: 'SMS',
|
|
14
15
|
email: 'Email',
|
|
15
16
|
mobilepush: 'Push notification',
|
|
17
|
+
wechat: 'Wechat',
|
|
16
18
|
};
|
|
17
19
|
return labels[channel.toLowerCase()];
|
|
18
20
|
}
|
|
19
21
|
function SlideBoxHeader(props) {
|
|
20
|
-
const { slidBoxContent, templateData, onShowTemplates, creativesMode, isFullMode, showPrefix, shouldShowTemplateName, channel, templateNameRenderProp } = props;
|
|
22
|
+
const { slidBoxContent, templateData, onShowTemplates, creativesMode, isFullMode, showPrefix, shouldShowTemplateName, channel, templateNameRenderProp, weChatTemplateType, onWeChatMaptemplateStepChange, weChatMaptemplateStep, templateStep } = props;
|
|
21
23
|
const showTemplateNameHeader = isFullMode && shouldShowTemplateName;
|
|
22
24
|
return (
|
|
23
25
|
<div key="creatives-container-slidebox-header-content">
|
|
@@ -53,7 +55,7 @@ function SlideBoxHeader(props) {
|
|
|
53
55
|
}
|
|
54
56
|
/>
|
|
55
57
|
)}
|
|
56
|
-
{!showTemplateNameHeader && slidBoxContent === 'createTemplate' && (
|
|
58
|
+
{!showTemplateNameHeader && slidBoxContent === 'createTemplate' && ( templateStep === 'modeSelection' || templateStep === "createTemplateContent" ) && (
|
|
57
59
|
<CapHeader
|
|
58
60
|
title={<FormattedMessage {...messages.createMessageContent} values={{channel: getChannelLabel(channel)}}/>}
|
|
59
61
|
prefix={!isFullMode && showPrefix &&
|
|
@@ -63,6 +65,22 @@ function SlideBoxHeader(props) {
|
|
|
63
65
|
}
|
|
64
66
|
/>
|
|
65
67
|
)}
|
|
68
|
+
{!showTemplateNameHeader && slidBoxContent === 'createTemplate' && weChatTemplateType === MAP_TEMPLATE && templateStep !== 'modeSelection' && (
|
|
69
|
+
<CapSteps
|
|
70
|
+
onChange={onWeChatMaptemplateStepChange}
|
|
71
|
+
current={weChatMaptemplateStep}
|
|
72
|
+
size="small"
|
|
73
|
+
className="wechat-steps"
|
|
74
|
+
>
|
|
75
|
+
<CapSteps.CapStep
|
|
76
|
+
title={<CapLabel type="label8">Select template</CapLabel>}
|
|
77
|
+
/>
|
|
78
|
+
<CapSteps.CapStep
|
|
79
|
+
title={<CapLabel type="label8">Add content</CapLabel>}
|
|
80
|
+
disabled
|
|
81
|
+
/>
|
|
82
|
+
</CapSteps>
|
|
83
|
+
)}
|
|
66
84
|
</div>
|
|
67
85
|
);
|
|
68
86
|
}
|
|
@@ -43,10 +43,12 @@ class Creatives extends React.Component {
|
|
|
43
43
|
isLoadingContent: true,
|
|
44
44
|
templateStep: 1, //modeSelection: for template name and (for email selecting upload or editor), and createTemplate to create template create based on modeSelection
|
|
45
45
|
showSlideBox: true,
|
|
46
|
-
slidBoxContent: this.
|
|
46
|
+
slidBoxContent: this.getSlideBoxContent({mode: props.creativesMode, templateData: props.templateData, isFullMode: props.isFullMode}),
|
|
47
47
|
templateData: this.getTemplateData(props.templateData),
|
|
48
48
|
templateNameExists: props.creativesMode === 'edit', // if edit mode templateNameExists will be true, and false in create flow.
|
|
49
49
|
currentChannel: this.props.channel || 'sms',
|
|
50
|
+
weChatTemplateType: '',
|
|
51
|
+
weChatMaptemplateStep: 0,
|
|
50
52
|
};
|
|
51
53
|
this.creativesTemplateSteps = {
|
|
52
54
|
1: 'modeSelection',
|
|
@@ -55,10 +57,10 @@ class Creatives extends React.Component {
|
|
|
55
57
|
};
|
|
56
58
|
}
|
|
57
59
|
componentWillUnmount() {
|
|
58
|
-
if (
|
|
60
|
+
if (get(this.props, 'location.query.type', '') === "embedded") {
|
|
59
61
|
this.props.templateActions.resetTemplateStoreData();
|
|
60
|
-
this.props.globalActions.clearMetaEntities();
|
|
61
62
|
}
|
|
63
|
+
this.props.globalActions.clearMetaEntities();
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
onEnterTemplateName = () => {
|
|
@@ -97,7 +99,7 @@ class Creatives extends React.Component {
|
|
|
97
99
|
this.setState((prevState) => {
|
|
98
100
|
let templateStep = prevState.templateStep + 1;
|
|
99
101
|
const {emailCreateMode, currentChannel} = prevState;
|
|
100
|
-
if ((currentChannel.toUpperCase() === constants.EMAIL && emailCreateMode === "upload") || currentChannel.toUpperCase() === constants.MOBILE_PUSH) {
|
|
102
|
+
if ((currentChannel.toUpperCase() === constants.EMAIL && emailCreateMode === "upload") || currentChannel.toUpperCase() === constants.MOBILE_PUSH || currentChannel.toUpperCase() === constants.WECHAT) {
|
|
101
103
|
templateStep = prevState.templateStep + 2;
|
|
102
104
|
}
|
|
103
105
|
|
|
@@ -113,6 +115,13 @@ class Creatives extends React.Component {
|
|
|
113
115
|
onMobilepushModeChange = (mode) => {
|
|
114
116
|
this.setState({ mobilePushCreateMode: mode});
|
|
115
117
|
}
|
|
118
|
+
onWechatTemplateChange = (templateType) => {
|
|
119
|
+
this.setState( { weChatTemplateType: templateType});
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
onWeChatMaptemplateStepChange = (step) => {
|
|
123
|
+
this.setState({weChatMaptemplateStep: step});
|
|
124
|
+
}
|
|
116
125
|
|
|
117
126
|
onCallTaskSubmit = (data) => {
|
|
118
127
|
this.props.getCreativesData({
|
|
@@ -185,50 +194,67 @@ class Creatives extends React.Component {
|
|
|
185
194
|
|
|
186
195
|
getCreativesData = (channel, template) => { //from creatives to consumers
|
|
187
196
|
let templateData = {channel };
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
197
|
+
switch (channel) {
|
|
198
|
+
case constants.SMS:
|
|
199
|
+
if (template.value.base) {
|
|
200
|
+
templateData.messageBody = template.value.base['sms-editor'];
|
|
201
|
+
}
|
|
202
|
+
break;
|
|
203
|
+
case constants.EMAIL:
|
|
204
|
+
if (template.value.base) {
|
|
205
|
+
const emailBase = template.value.base;
|
|
206
|
+
templateData = {...templateData, ...emailBase, emailBody: emailBase.html_content, emailSubject: emailBase.subject};
|
|
207
|
+
delete templateData.html_content;
|
|
208
|
+
delete templateData.subject;
|
|
209
|
+
}
|
|
210
|
+
break;
|
|
211
|
+
case constants.MOBILE_PUSH:
|
|
212
|
+
if (get(template, "value.versions.base")) {
|
|
213
|
+
const mobilpushTemplate = template.value;
|
|
214
|
+
templateData.accountId = get(mobilpushTemplate, 'definition.accountId');
|
|
215
|
+
const androidContent = get(mobilpushTemplate, 'versions.base.ANDROID');
|
|
216
|
+
if (!isEmpty(androidContent)) {
|
|
217
|
+
delete androidContent.cuid;
|
|
218
|
+
delete androidContent.luid;
|
|
219
|
+
delete androidContent.communicationId;
|
|
220
|
+
const custom = {};
|
|
221
|
+
forEach(androidContent.custom, (customKeyValue) => {
|
|
222
|
+
custom[customKeyValue.key] = customKeyValue.value;
|
|
223
|
+
} );
|
|
224
|
+
androidContent.custom = custom;
|
|
225
|
+
templateData.androidContent = androidContent;
|
|
226
|
+
templateData.androidContent.type = get(mobilpushTemplate, 'definition.mode').toUpperCase();
|
|
227
|
+
templateData.androidContent.deviceType = 'ANDROID';
|
|
228
|
+
}
|
|
229
|
+
const iosContent = get(mobilpushTemplate, 'versions.base.IOS');
|
|
230
|
+
if (!isEmpty(iosContent)) {
|
|
231
|
+
delete iosContent.cuid;
|
|
232
|
+
delete iosContent.luid;
|
|
233
|
+
delete iosContent.communicationId;
|
|
234
|
+
const custom = {};
|
|
235
|
+
forEach(iosContent.custom, (customKeyValue) => {
|
|
236
|
+
custom[customKeyValue.key] = customKeyValue.value;
|
|
237
|
+
} );
|
|
238
|
+
iosContent.custom = custom;
|
|
239
|
+
templateData.iosContent = iosContent;
|
|
240
|
+
templateData.iosContent.type = get(mobilpushTemplate, 'definition.mode').toUpperCase();
|
|
241
|
+
templateData.iosContent.deviceType = 'IOS';
|
|
242
|
+
}
|
|
243
|
+
templateData.messageSubject = mobilpushTemplate.name ? mobilpushTemplate.name : "messageSubject";
|
|
244
|
+
}
|
|
245
|
+
break;
|
|
246
|
+
case constants.WECHAT:
|
|
247
|
+
if (template.value) {
|
|
248
|
+
const { accountId, previewContent, ...messageBody } = template.value;
|
|
249
|
+
templateData = { channel, accountId, messageBody: JSON.stringify(messageBody), previewContent};
|
|
250
|
+
}
|
|
251
|
+
break;
|
|
252
|
+
default:
|
|
253
|
+
break;
|
|
227
254
|
}
|
|
228
255
|
return templateData;
|
|
229
256
|
};
|
|
230
|
-
|
|
231
|
-
getSlideBocContent({mode, templateData, isFullMode}) {
|
|
257
|
+
getSlideBoxContent({mode, templateData, isFullMode}) {
|
|
232
258
|
let creativesMode = isFullMode ? 'createTemplate' : 'templates';// for library mode templates page is initial mode and for full mode createTemplates
|
|
233
259
|
if (mode === 'create' && isFullMode) {
|
|
234
260
|
creativesMode = 'createTemplate';
|
|
@@ -243,6 +269,7 @@ class Creatives extends React.Component {
|
|
|
243
269
|
}
|
|
244
270
|
|
|
245
271
|
getFormData = (template) => {
|
|
272
|
+
console.log("Inside getFormData", template);
|
|
246
273
|
if (template.validity) {
|
|
247
274
|
this.setState(
|
|
248
275
|
{
|
|
@@ -288,7 +315,7 @@ class Creatives extends React.Component {
|
|
|
288
315
|
}
|
|
289
316
|
shouldShowFooter = () => {
|
|
290
317
|
const {isFullMode } = this.props;
|
|
291
|
-
const {slidBoxContent, currentChannel, emailCreateMode, templateNameExists, templateStep, mobilePushCreateMode} = this.state;
|
|
318
|
+
const {slidBoxContent, currentChannel, emailCreateMode, templateNameExists, templateStep, mobilePushCreateMode, weChatTemplateType} = this.state;
|
|
292
319
|
const channel = currentChannel.toUpperCase();
|
|
293
320
|
const currentStep = this.creativesTemplateSteps[templateStep];
|
|
294
321
|
let showFooter = false;
|
|
@@ -322,6 +349,12 @@ class Creatives extends React.Component {
|
|
|
322
349
|
showFooter = true;
|
|
323
350
|
}
|
|
324
351
|
|
|
352
|
+
if (channel === constants.WECHAT &&
|
|
353
|
+
((slidBoxContent === 'createTemplate' && !isEmpty(weChatTemplateType))
|
|
354
|
+
|| (slidBoxContent === 'editTemplate' && currentStep === 'modeSelection'))) {
|
|
355
|
+
showFooter = true;
|
|
356
|
+
}
|
|
357
|
+
|
|
325
358
|
|
|
326
359
|
if (showFooter) {
|
|
327
360
|
if (slidBoxContent === "createTemplate" && ((channel === constants.EMAIL && currentStep === 'createTemplateContent') || (channel === constants.SMS && currentStep === 'modeSelection'))) {
|
|
@@ -340,7 +373,7 @@ class Creatives extends React.Component {
|
|
|
340
373
|
if (channel === constants.EMAIL || channel === constants.SMS) {
|
|
341
374
|
const isEmailCreate = slidBoxContent === 'createTemplate' && currentChannel.toUpperCase() === constants.EMAIL && currentStep !== 'createTemplateContent';
|
|
342
375
|
showDone = (slidBoxContent === 'editTemplate' || slidBoxContent === 'createTemplate') && !isEmailCreate;
|
|
343
|
-
} else if (channel === constants.MOBILE_PUSH) {
|
|
376
|
+
} else if (channel === constants.MOBILE_PUSH || channel === constants.WECHAT) {
|
|
344
377
|
showDone = currentStep === "createTemplateContent" || slidBoxContent === "editTemplate";
|
|
345
378
|
}
|
|
346
379
|
|
|
@@ -379,7 +412,7 @@ class Creatives extends React.Component {
|
|
|
379
412
|
}
|
|
380
413
|
}
|
|
381
414
|
shouldShowContinueFooter = () => { // only for email for now, has to be modified according to channel
|
|
382
|
-
const {slidBoxContent, templateStep, currentChannel, emailCreateMode, mobilePushCreateMode} = this.state;
|
|
415
|
+
const {slidBoxContent, templateStep, currentChannel, emailCreateMode, mobilePushCreateMode, weChatTemplateType} = this.state;
|
|
383
416
|
let isShowContinueFooter = false;
|
|
384
417
|
const currentStep = this.creativesTemplateSteps[templateStep];
|
|
385
418
|
const channel = currentChannel.toUpperCase();
|
|
@@ -391,6 +424,8 @@ class Creatives extends React.Component {
|
|
|
391
424
|
}
|
|
392
425
|
} else if (currentChannel.toUpperCase() === constants.MOBILE_PUSH) {
|
|
393
426
|
isShowContinueFooter = !isEmpty(mobilePushCreateMode) && currentStep === "modeSelection";
|
|
427
|
+
} else if (currentChannel.toUpperCase() === constants.WECHAT) {
|
|
428
|
+
isShowContinueFooter = !isEmpty(weChatTemplateType) && currentStep === "modeSelection";
|
|
394
429
|
}
|
|
395
430
|
|
|
396
431
|
return isShowContinueFooter;
|
|
@@ -407,8 +442,8 @@ class Creatives extends React.Component {
|
|
|
407
442
|
return false;
|
|
408
443
|
}
|
|
409
444
|
render() {
|
|
410
|
-
const {slidBoxContent, isGetFormData, showSlideBox, templateData, currentChannel, emailCreateMode, templateStep, isLoadingContent, mobilePushCreateMode, isDiscardMessage} = this.state;
|
|
411
|
-
const {isFullMode, creativesMode, cap, isUploading, channelsToHide,
|
|
445
|
+
const {slidBoxContent, isGetFormData, showSlideBox, templateData, currentChannel, emailCreateMode, templateStep, isLoadingContent, mobilePushCreateMode, isDiscardMessage, weChatTemplateType, weChatMaptemplateStep, forwardedTags} = this.state;
|
|
446
|
+
const {isFullMode, creativesMode, cap, isUploading, channelsToHide, selectedWeChatAccount} = this.props;
|
|
412
447
|
return (
|
|
413
448
|
<SlideBoxWrapper className={classnames(`${classPrefix} ${isFullMode ? 'creatives-full-mode' : 'creatives-library-mode'}`)}>
|
|
414
449
|
<CapSlideBox
|
|
@@ -425,7 +460,11 @@ class Creatives extends React.Component {
|
|
|
425
460
|
isLoadingContent={isLoadingContent}
|
|
426
461
|
shouldShowTemplateName={this.templateContainerDetails}
|
|
427
462
|
templateNameRenderProp={this.templateNameRenderProp}
|
|
463
|
+
weChatMaptemplateStep={weChatMaptemplateStep}
|
|
464
|
+
onWeChatMaptemplateStepChange={this.onWeChatMaptemplateStepChange}
|
|
465
|
+
weChatTemplateType={weChatTemplateType}
|
|
428
466
|
showPrefix={!isUploading} // not show back button when email template is being uploaded
|
|
467
|
+
templateStep={this.creativesTemplateSteps[templateStep]}
|
|
429
468
|
/>
|
|
430
469
|
}
|
|
431
470
|
content={
|
|
@@ -460,6 +499,11 @@ class Creatives extends React.Component {
|
|
|
460
499
|
onValidationFail={this.onValidationFail}
|
|
461
500
|
channelsToHide={channelsToHide}
|
|
462
501
|
forwardedTags={forwardedTags}
|
|
502
|
+
weChatTemplateType={weChatTemplateType}
|
|
503
|
+
onWechatTemplateChange={this.onWechatTemplateChange}
|
|
504
|
+
weChatMaptemplateStep={weChatMaptemplateStep}
|
|
505
|
+
selectedWeChatAccount={selectedWeChatAccount}
|
|
506
|
+
onWeChatMaptemplateStepChange={this.onWeChatMaptemplateStepChange}
|
|
463
507
|
/>
|
|
464
508
|
}
|
|
465
509
|
footer={this.shouldShowFooter() &&
|
|
@@ -506,6 +550,7 @@ Creatives.propTypes = {
|
|
|
506
550
|
EmailLayout: PropTypes.string,
|
|
507
551
|
channelsToHide: PropTypes.array,
|
|
508
552
|
forwardedTags: PropTypes.object,
|
|
553
|
+
selectedWeChatAccount: PropTypes.object,
|
|
509
554
|
};
|
|
510
555
|
const mapStatesToProps = () => createStructuredSelector({
|
|
511
556
|
isLoading: isLoadingSelector(),
|
|
@@ -24,4 +24,19 @@ $classPrefix: add-creatives-section;
|
|
|
24
24
|
width: 100%;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
+
.slidebox-header div:first-child {
|
|
28
|
+
width: 100%;
|
|
29
|
+
}
|
|
30
|
+
.wechat-steps {
|
|
31
|
+
width: 40% !important;
|
|
32
|
+
left: 20%;
|
|
33
|
+
position: relative;
|
|
34
|
+
.ant-steps-item-title::after {
|
|
35
|
+
top: 8px;
|
|
36
|
+
}
|
|
37
|
+
.ant-steps-item-content {
|
|
38
|
+
vertical-align: middle;
|
|
39
|
+
padding-top: 4px;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
27
42
|
}
|
|
@@ -4,22 +4,22 @@
|
|
|
4
4
|
* This contains all the text for the EmailWrapper component.
|
|
5
5
|
*/
|
|
6
6
|
import { defineMessages } from 'react-intl';
|
|
7
|
-
const scope = '
|
|
7
|
+
const scope = 'app.containers.Creatives';
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
"header": {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'app.containers.Creatives.header',
|
|
11
11
|
defaultMessage: 'This is EmailWrapper container !',
|
|
12
12
|
},
|
|
13
13
|
"continue": {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'app.containers.Creatives.continue',
|
|
15
15
|
defaultMessage: 'Continue',
|
|
16
16
|
},
|
|
17
17
|
"lastUpdated": {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'app.containers.Creatives.lastUpdated',
|
|
19
19
|
defaultMessage: 'Last updated: {date} by {user}',
|
|
20
20
|
},
|
|
21
21
|
"by": {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'app.containers.Creatives.by',
|
|
23
23
|
defaultMessage: 'by',
|
|
24
24
|
},
|
|
25
25
|
"uploadedAt": {
|
|
@@ -259,7 +259,7 @@ export default defineMessages({
|
|
|
259
259
|
defaultMessage: `Edit message content`,
|
|
260
260
|
},
|
|
261
261
|
"createMessageContent": {
|
|
262
|
-
id: `${scope}.
|
|
262
|
+
id: `${scope}.editMessageContent`,
|
|
263
263
|
defaultMessage: `New {channel} message`,
|
|
264
264
|
},
|
|
265
265
|
"creativeTemplatesDesc": {
|
|
@@ -274,28 +274,24 @@ export default defineMessages({
|
|
|
274
274
|
id: `${scope}.creativesTemplatesSaveFullMode`,
|
|
275
275
|
defaultMessage: `Create`,
|
|
276
276
|
},
|
|
277
|
+
"creativesTemplatesUpdate": {
|
|
278
|
+
id: `${scope}.creativesTemplatesUpdate`,
|
|
279
|
+
defaultMessage: `Update`,
|
|
280
|
+
},
|
|
277
281
|
"creativesTemplatesDiscard": {
|
|
278
282
|
id: `${scope}.creativesTemplatesDiscard`,
|
|
279
283
|
defaultMessage: `Discard`,
|
|
280
284
|
},
|
|
281
285
|
"creativesTemplatesEdit": {
|
|
282
|
-
id: `${scope}.
|
|
286
|
+
id: `${scope}.creativesTemplatesSave`,
|
|
283
287
|
defaultMessage: `Edit`,
|
|
284
288
|
},
|
|
285
289
|
"creativesTemplatesEditName": {
|
|
286
|
-
id: `${scope}.
|
|
290
|
+
id: `${scope}.creativesTemplatesSave`,
|
|
287
291
|
defaultMessage: `Edit name`,
|
|
288
292
|
},
|
|
289
293
|
"wechatAccountNotConfigured": {
|
|
290
294
|
id: `${scope}.wechatAccountNotConfigured`,
|
|
291
295
|
defaultMessage: 'Selected wechat account is not configured to create wechat templates',
|
|
292
296
|
},
|
|
293
|
-
"selectTemplate": {
|
|
294
|
-
id: `${scope}.selectTemplate`,
|
|
295
|
-
defaultMessage: 'Select template',
|
|
296
|
-
},
|
|
297
|
-
"addContent": {
|
|
298
|
-
id: `${scope}.addContent`,
|
|
299
|
-
defaultMessage: 'Add content',
|
|
300
|
-
},
|
|
301
297
|
});
|
|
@@ -7,7 +7,6 @@ import { FormattedMessage } from 'react-intl';
|
|
|
7
7
|
import { createStructuredSelector } from 'reselect';
|
|
8
8
|
import makeSelectDashboard from './selectors';
|
|
9
9
|
import messages from './messages';
|
|
10
|
-
// eslint-disable-next-line
|
|
11
10
|
import { UserIsAuthenticated } from '../../../utils/authWrapper';
|
|
12
11
|
import * as actions from './actions';
|
|
13
12
|
import BreadCrumbs from '../../v2Components/BreadCrumbs/index';
|
|
@@ -25,7 +24,7 @@ export class Dashboard extends React.Component { // eslint-disable-line react/pr
|
|
|
25
24
|
<FormattedMessage {...messages.header}>{(message) => (<Helmet
|
|
26
25
|
title={message}
|
|
27
26
|
meta={[
|
|
28
|
-
{ name: 'description', content:
|
|
27
|
+
{ name: 'description', content: 'Dashboard' },
|
|
29
28
|
]}
|
|
30
29
|
/>)}
|
|
31
30
|
</FormattedMessage>
|
|
@@ -814,7 +814,7 @@ export class Ebill extends React.Component { // eslint-disable-line react/prefer
|
|
|
814
814
|
console.log('isValid');
|
|
815
815
|
return true;
|
|
816
816
|
}
|
|
817
|
-
const message = getMessageObject('error',
|
|
817
|
+
const message = getMessageObject('error', 'Template data is not valid', true);
|
|
818
818
|
this.props.globalActions.addMessageToQueue(message);
|
|
819
819
|
console.log('not valid');
|
|
820
820
|
return false;
|