@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,83 +7,99 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
"saveTemplateLoader": {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.containersV2.Edit.saveTemplateLoader',
|
|
11
11
|
defaultMessage: 'Saving template...',
|
|
12
12
|
},
|
|
13
13
|
"getTemplateDetailsLoader": {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.containersV2.Edit.getTemplateDetailsLoader',
|
|
15
15
|
defaultMessage: 'Getting template details...',
|
|
16
16
|
},
|
|
17
17
|
"Message": {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.containersV2.Edit.messageLabel',
|
|
19
19
|
defaultMessage: 'Message',
|
|
20
20
|
},
|
|
21
21
|
"Template name cannot be empty.": {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'creatives.containersV2.Edit.emptyTemplateErrorMessage',
|
|
23
23
|
defaultMessage: "Please provide a template name",
|
|
24
24
|
},
|
|
25
25
|
"Enter template name": {
|
|
26
|
-
id: '
|
|
26
|
+
id: 'creatives.containersV2.Edit.templateNamePlaceHolder',
|
|
27
27
|
defaultMessage: "Enter template name",
|
|
28
28
|
},
|
|
29
29
|
"Discard changes": {
|
|
30
|
-
id: '
|
|
30
|
+
id: 'creatives.containersV2.Edit.discardChangesButton',
|
|
31
31
|
defaultMessage: "Discard changes",
|
|
32
32
|
},
|
|
33
33
|
"Cancel": {
|
|
34
|
-
id: '
|
|
34
|
+
id: 'creatives.containersV2.Edit.cancelButton',
|
|
35
35
|
defaultMessage: "Cancel",
|
|
36
36
|
},
|
|
37
37
|
"Save": {
|
|
38
|
-
id: '
|
|
38
|
+
id: 'creatives.containersV2.Edit.saveButton',
|
|
39
39
|
defaultMessage: "Save",
|
|
40
40
|
},
|
|
41
41
|
"Version": {
|
|
42
|
-
id: '
|
|
42
|
+
id: 'creatives.containersV2.Edit.versionLabel',
|
|
43
43
|
defaultMessage: "Version",
|
|
44
44
|
},
|
|
45
45
|
"Mark as Final": {
|
|
46
|
-
id: '
|
|
46
|
+
id: 'creatives.containersV2.Edit.markFinalVersionLabel',
|
|
47
47
|
defaultMessage: "Mark as final",
|
|
48
48
|
},
|
|
49
49
|
"Duplicate": {
|
|
50
|
-
id: '
|
|
50
|
+
id: 'creatives.containersV2.Edit.duplicateLabel',
|
|
51
51
|
defaultMessage: "Duplicate",
|
|
52
52
|
},
|
|
53
53
|
"Rename": {
|
|
54
|
-
id: '
|
|
54
|
+
id: 'creatives.containersV2.Edit.renameLabel',
|
|
55
55
|
defaultMessage: "Rename",
|
|
56
56
|
},
|
|
57
57
|
"Delete": {
|
|
58
|
-
id: '
|
|
58
|
+
id: 'creatives.containersV2.Edit.deleteLabel',
|
|
59
59
|
defaultMessage: "Delete",
|
|
60
60
|
},
|
|
61
61
|
"Please check if you intend to use unicode characters.": {
|
|
62
|
-
id: '
|
|
62
|
+
id: 'creatives.containersV2.Edit.unicodeErrorMessage',
|
|
63
63
|
defaultMessage: "Please check this if you want to use unicode characters",
|
|
64
64
|
},
|
|
65
65
|
"Allow Unicode characters": {
|
|
66
|
-
id: '
|
|
66
|
+
id: 'creatives.containersV2.Edit.unicodeLabel',
|
|
67
67
|
defaultMessage: "Allow unicode characters",
|
|
68
68
|
},
|
|
69
69
|
"Tags": {
|
|
70
|
-
id: '
|
|
70
|
+
id: 'creatives.containersV2.Edit.tagsLabel',
|
|
71
71
|
defaultMessage: "Tags",
|
|
72
72
|
},
|
|
73
73
|
"New Version": {
|
|
74
|
-
id: '
|
|
74
|
+
id: 'creatives.containersV2.Edit.newVersionLabel',
|
|
75
75
|
defaultMessage: "New version",
|
|
76
76
|
},
|
|
77
77
|
"Template content has unsupported/missing tags!": {
|
|
78
|
-
id: '
|
|
78
|
+
id: 'creatives.containersV2.Edit.tagsErrorMessage',
|
|
79
79
|
defaultMessage: "Please check the message content for unsupported/missing tags",
|
|
80
80
|
},
|
|
81
81
|
"Please input sms template content.": {
|
|
82
|
-
id: '
|
|
82
|
+
id: 'creatives.containersV2.Edit.smsEditorPlaceholder',
|
|
83
83
|
defaultMessage: "Please enter the message content",
|
|
84
84
|
},
|
|
85
85
|
"somethingWentWrong": {
|
|
86
|
-
id: '
|
|
86
|
+
id: 'creatives.containersV2.Edit.somethingWentWrong',
|
|
87
87
|
defaultMessage: "Something went wrong!!",
|
|
88
88
|
},
|
|
89
|
+
"templateEditedSuccessfully": {
|
|
90
|
+
id: 'creatives.containersV2.Edit.templateEditedSuccessfully',
|
|
91
|
+
defaultMessage: "SMS Template Edited Successfully",
|
|
92
|
+
},
|
|
93
|
+
"alertMessage": {
|
|
94
|
+
id: 'creatives.containersV2.Edit.alertMessage',
|
|
95
|
+
defaultMessage: "Alert",
|
|
96
|
+
},
|
|
97
|
+
"goBackTemporaryChangesLost": {
|
|
98
|
+
id: 'creatives.containersV2.Edit.goBackTemporaryChangesLost',
|
|
99
|
+
defaultMessage: "Do you really want to go back? All your temporary changes will be lost!",
|
|
100
|
+
},
|
|
101
|
+
"templateMarkedSuccessfully": {
|
|
102
|
+
id: 'creatives.containersV2.Edit.templateMarkedSuccessfully',
|
|
103
|
+
defaultMessage: "Template Marked as Final Successfully",
|
|
104
|
+
},
|
|
89
105
|
});
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This contains all the text for the Templates component.
|
|
5
5
|
*/
|
|
6
6
|
import { defineMessages } from 'react-intl';
|
|
7
|
-
const scope = `
|
|
7
|
+
const scope = `creatives.containersV2.Templates`;
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
"header": {
|
|
10
10
|
id: `${scope}.header`,
|
|
@@ -251,7 +251,7 @@ export default defineMessages({
|
|
|
251
251
|
defaultMessage: `Edit message content`,
|
|
252
252
|
},
|
|
253
253
|
"createMessageContent": {
|
|
254
|
-
id: `${scope}.
|
|
254
|
+
id: `${scope}.createMessageContent`,
|
|
255
255
|
defaultMessage: `New message`,
|
|
256
256
|
},
|
|
257
257
|
"creativeTemplatesDesc": {
|
|
@@ -263,7 +263,7 @@ export default defineMessages({
|
|
|
263
263
|
defaultMessage: `Done`,
|
|
264
264
|
},
|
|
265
265
|
"creativesTemplatesEdit": {
|
|
266
|
-
id: `${scope}.
|
|
266
|
+
id: `${scope}.creativesTemplatesEdit`,
|
|
267
267
|
defaultMessage: `Edit`,
|
|
268
268
|
},
|
|
269
269
|
"continue": {
|
|
@@ -310,4 +310,28 @@ export default defineMessages({
|
|
|
310
310
|
id: `${scope}.noTemplatesFound`,
|
|
311
311
|
defaultMessage: 'No templates found',
|
|
312
312
|
},
|
|
313
|
+
"chooseAccount": {
|
|
314
|
+
id: `${scope}.chooseAccount`,
|
|
315
|
+
defaultMessage: 'Choose the account to send content',
|
|
316
|
+
},
|
|
317
|
+
"wechatAccount": {
|
|
318
|
+
id: `${scope}.wechatAccount`,
|
|
319
|
+
defaultMessage: 'Wechat account',
|
|
320
|
+
},
|
|
321
|
+
"mobilepushAccount": {
|
|
322
|
+
id: `${scope}.mobilepushAccount`,
|
|
323
|
+
defaultMessage: 'Mobilepush account',
|
|
324
|
+
},
|
|
325
|
+
"all": {
|
|
326
|
+
id: `${scope}.all`,
|
|
327
|
+
defaultMessage: 'All',
|
|
328
|
+
},
|
|
329
|
+
"mapTemplates": {
|
|
330
|
+
id: `${scope}.mapTemplates`,
|
|
331
|
+
defaultMessage: 'Map templates',
|
|
332
|
+
},
|
|
333
|
+
"richMediaTemplates": {
|
|
334
|
+
id: `${scope}.richMediaTemplates`,
|
|
335
|
+
defaultMessage: 'Rich media templates',
|
|
336
|
+
},
|
|
313
337
|
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { css } from 'styled-components';
|
|
2
|
+
import {CAP_SPACE_24, CAP_SPACE_16} from '@capillarytech/cap-ui-library/styled/variables';
|
|
3
|
+
|
|
4
|
+
export default css`
|
|
5
|
+
.cap-tab-v2-wrapper{
|
|
6
|
+
.ant-tabs-tabpane {
|
|
7
|
+
border: none;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.component-wrapper {
|
|
12
|
+
${(props) => props.isFullMode ? `
|
|
13
|
+
max-width: 1140px;
|
|
14
|
+
margin: 0 auto;
|
|
15
|
+
width: 100%;
|
|
16
|
+
padding: ${CAP_SPACE_24} 0;
|
|
17
|
+
.ant-tabs-content{
|
|
18
|
+
margin-top: ${CAP_SPACE_16}
|
|
19
|
+
}
|
|
20
|
+
` : `.cap-tab-v2 {
|
|
21
|
+
height: calc(100vh - 118px);
|
|
22
|
+
} `}
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
|
|
26
|
+
export const CapTabStyle = css`
|
|
27
|
+
${(props) => props.isFullMode ? `margin-top: ${CAP_SPACE_24}` : ``
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
@@ -5,18 +5,15 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
|
-
|
|
9
8
|
import React from 'react';
|
|
10
9
|
import { connect } from 'react-redux';
|
|
11
10
|
import { injectIntl, intlShape, FormattedMessage } from 'react-intl';
|
|
12
11
|
import { createStructuredSelector } from 'reselect';
|
|
13
12
|
import { bindActionCreators } from 'redux';
|
|
14
|
-
import styled from 'styled-components';
|
|
15
13
|
import { CapTab, CapCustomCard, CapButton, CapHeader, CapSpin, CapIcon } from '@capillarytech/cap-ui-library';
|
|
16
14
|
import { find, get } from 'lodash';
|
|
17
15
|
import Helmet from 'react-helmet';
|
|
18
16
|
|
|
19
|
-
import {CAP_SPACE_24, CAP_SPACE_16} from '@capillarytech/cap-ui-library/styled/variables';
|
|
20
17
|
import { UserIsAuthenticated } from '../../utils/authWrapper';
|
|
21
18
|
import { makeSelectTemplates, makeSelectTemplatesResponse } from '../Templates/selectors';
|
|
22
19
|
import messages from './messages';
|
|
@@ -24,29 +21,13 @@ import * as actions from './actions';
|
|
|
24
21
|
import Templates from '../Templates';
|
|
25
22
|
import CallTask from '../CallTask';
|
|
26
23
|
import Gallery from '../Assets/Gallery';
|
|
27
|
-
import '
|
|
24
|
+
import withStyles from '../../hoc/withStyles';
|
|
25
|
+
import styles, { CapTabStyle } from './TemplatesV2.style';
|
|
28
26
|
|
|
29
27
|
const {CapCustomCardList} = CapCustomCard;
|
|
30
28
|
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
max-width: 1140px;
|
|
34
|
-
margin: 0 auto;
|
|
35
|
-
width: 100%;
|
|
36
|
-
padding: ${CAP_SPACE_24} 0;
|
|
37
|
-
.ant-tabs-content{
|
|
38
|
-
margin-top: ${CAP_SPACE_16}
|
|
39
|
-
}
|
|
40
|
-
` : `.cap-tab-v2 {
|
|
41
|
-
height: calc(100vh - 118px);
|
|
42
|
-
} `}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
`;
|
|
46
|
-
const MarginTop = styled.div`
|
|
47
|
-
${(props) => props.isFullMode ? `margin-top: ${CAP_SPACE_24}` : ``
|
|
48
|
-
}
|
|
49
|
-
`;
|
|
29
|
+
const StyledCapTab = withStyles(CapTab, CapTabStyle);
|
|
30
|
+
|
|
50
31
|
export class TemplatesV2 extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
51
32
|
constructor(props) {
|
|
52
33
|
super(props);
|
|
@@ -146,21 +127,20 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
|
|
|
146
127
|
}
|
|
147
128
|
}
|
|
148
129
|
|
|
149
|
-
setChannelContent = (selectedChannel, argsPanes) =>
|
|
150
|
-
|
|
151
|
-
|
|
130
|
+
setChannelContent = (selectedChannel, argsPanes) => (
|
|
131
|
+
argsPanes.map((pane) => {
|
|
132
|
+
let content = null;
|
|
152
133
|
if (pane.key === selectedChannel) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
channel = "mobilepush";
|
|
156
|
-
}
|
|
157
|
-
pane.content = this.getTemplatesComponent(channel);
|
|
158
|
-
return pane;
|
|
134
|
+
const channel = selectedChannel === "mpush" ? "mobilepush" : selectedChannel;
|
|
135
|
+
content = this.getTemplatesComponent(channel);
|
|
159
136
|
}
|
|
160
|
-
return {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
137
|
+
return {
|
|
138
|
+
...pane,
|
|
139
|
+
content,
|
|
140
|
+
};
|
|
141
|
+
})
|
|
142
|
+
);
|
|
143
|
+
|
|
164
144
|
channelChange = (selectedChannel) => {
|
|
165
145
|
const panes = this.setChannelContent(selectedChannel, this.state.panes);
|
|
166
146
|
this.setState({panes, selectedChannel}, () => { if (!this.props.isFullMode) this.props.onChannelChange(selectedChannel); });
|
|
@@ -171,28 +151,25 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
|
|
|
171
151
|
return this.props.Templates.loadingTemplates;
|
|
172
152
|
}
|
|
173
153
|
render() {
|
|
174
|
-
const {isFullMode} = this.props;
|
|
154
|
+
const { isFullMode, className } = this.props;
|
|
175
155
|
return (
|
|
176
|
-
<div className={
|
|
156
|
+
<div className={`${className} creatives-templates-container ${isFullMode ? 'fullmode' : 'library-mode'}`}>
|
|
177
157
|
{isFullMode && <Helmet
|
|
178
158
|
title={this.props.intl.formatMessage(messages.creatives)}
|
|
179
159
|
meta={[
|
|
180
160
|
{ name: 'description', content: this.props.intl.formatMessage(messages.creativesDesc) },
|
|
181
161
|
]}
|
|
182
162
|
/>}
|
|
183
|
-
<
|
|
184
|
-
|
|
163
|
+
<div className="component-wrapper">
|
|
185
164
|
{isFullMode && <CapHeader title={<FormattedMessage {...messages.creatives}/>} description={<FormattedMessage {...messages.creativesDesc}/>}/>}
|
|
186
|
-
<
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
</ComponentWrapper>
|
|
165
|
+
<StyledCapTab
|
|
166
|
+
panes={this.state.panes}
|
|
167
|
+
onChange={this.channelChange}
|
|
168
|
+
activeKey={this.state.selectedChannel}
|
|
169
|
+
defaultActiveKey={this.state.selectedChannel}
|
|
170
|
+
isFullMode={isFullMode}
|
|
171
|
+
/>
|
|
172
|
+
</div>
|
|
196
173
|
</div>
|
|
197
174
|
|
|
198
175
|
);
|
|
@@ -212,6 +189,7 @@ TemplatesV2.propTypes = {
|
|
|
212
189
|
intl: intlShape,
|
|
213
190
|
onChannelChange: PropTypes.func,
|
|
214
191
|
channelsToHide: PropTypes.array,
|
|
192
|
+
className: PropTypes.string.isRequired,
|
|
215
193
|
};
|
|
216
194
|
|
|
217
195
|
TemplatesV2.defaultProps = {
|
|
@@ -229,4 +207,4 @@ function mapDispatchToProps(dispatch) {
|
|
|
229
207
|
};
|
|
230
208
|
}
|
|
231
209
|
|
|
232
|
-
export default UserIsAuthenticated(connect(mapStateToProps, mapDispatchToProps)(injectIntl(TemplatesV2)));
|
|
210
|
+
export default UserIsAuthenticated(connect(mapStateToProps, mapDispatchToProps)(injectIntl(withStyles(TemplatesV2, styles))));
|
|
@@ -7,23 +7,47 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
header: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.containersV2.TemplatesV2.header',
|
|
11
11
|
defaultMessage: 'This is TemplatesV2 container !',
|
|
12
12
|
},
|
|
13
13
|
select: {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.containersV2.TemplatesV2.select',
|
|
15
15
|
defaultMessage: 'Select',
|
|
16
16
|
},
|
|
17
17
|
edit: {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.containersV2.TemplatesV2.edit',
|
|
19
19
|
defaultMessage: 'Edit',
|
|
20
20
|
},
|
|
21
21
|
creatives: {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'creatives.containersV2.TemplatesV2.creatives',
|
|
23
23
|
defaultMessage: 'Creatives',
|
|
24
24
|
},
|
|
25
25
|
creativesDesc: {
|
|
26
|
-
id: '
|
|
26
|
+
id: 'creatives.containersV2.TemplatesV2.creativesDesc',
|
|
27
27
|
defaultMessage: 'These are pre-built templates which you could use to customize your message content.',
|
|
28
28
|
},
|
|
29
|
+
sms: {
|
|
30
|
+
id: 'creatives.containersV2.TemplatesV2.sms',
|
|
31
|
+
defaultMessage: 'SMS',
|
|
32
|
+
},
|
|
33
|
+
email: {
|
|
34
|
+
id: 'creatives.containersV2.TemplatesV2.email',
|
|
35
|
+
defaultMessage: 'Email',
|
|
36
|
+
},
|
|
37
|
+
pushNotification: {
|
|
38
|
+
id: 'creatives.containersV2.TemplatesV2.pushNotification',
|
|
39
|
+
defaultMessage: 'Push notification',
|
|
40
|
+
},
|
|
41
|
+
callTask: {
|
|
42
|
+
id: 'creatives.containersV2.TemplatesV2.callTask',
|
|
43
|
+
defaultMessage: 'Call Task',
|
|
44
|
+
},
|
|
45
|
+
gallery: {
|
|
46
|
+
id: 'creatives.containersV2.TemplatesV2.gallery',
|
|
47
|
+
defaultMessage: 'Gallery',
|
|
48
|
+
},
|
|
49
|
+
wechat: {
|
|
50
|
+
id: 'creatives.containersV2.TemplatesV2.wechat',
|
|
51
|
+
defaultMessage: 'Wechat',
|
|
52
|
+
},
|
|
29
53
|
});
|
|
@@ -19,9 +19,9 @@ export class Testv2 extends React.Component { // eslint-disable-line react/prefe
|
|
|
19
19
|
return (
|
|
20
20
|
<div>
|
|
21
21
|
<Helmet
|
|
22
|
-
title=
|
|
22
|
+
title={<FormattedMessage {...messages.testv2} />}
|
|
23
23
|
meta={[
|
|
24
|
-
{ name: 'description', content:
|
|
24
|
+
{ name: 'description', content: <FormattedMessage {...messages.descriptionTestv2} /> },
|
|
25
25
|
]}
|
|
26
26
|
/>
|
|
27
27
|
<FormattedMessage {...messages.header} />
|
|
@@ -7,7 +7,15 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
header: {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.containersV2.Testv2.header',
|
|
11
11
|
defaultMessage: 'This is Testv2 container !',
|
|
12
12
|
},
|
|
13
|
+
testv2: {
|
|
14
|
+
id: 'creatives.containersV2.Testv2.testv2',
|
|
15
|
+
defaultMessage: 'Testv2',
|
|
16
|
+
},
|
|
17
|
+
descriptionTestv2: {
|
|
18
|
+
id: 'creatives.containersV2.Testv2.descriptionTestv2',
|
|
19
|
+
defaultMessage: 'Description of Testv2',
|
|
20
|
+
},
|
|
13
21
|
});
|
|
@@ -63,8 +63,8 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
63
63
|
isLoading: true,
|
|
64
64
|
showModal: false,
|
|
65
65
|
modalContent: {
|
|
66
|
-
title:
|
|
67
|
-
body:
|
|
66
|
+
title: this.props.intl.formatMessage(messages.alertMessage),
|
|
67
|
+
body: this.props.intl.formatMessage(messages.goBackTemporaryChangesLost),
|
|
68
68
|
type: 'confirm',
|
|
69
69
|
id: 'template-back-confirm-modal',
|
|
70
70
|
},
|
|
@@ -545,8 +545,8 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
545
545
|
moveToTemplates() {
|
|
546
546
|
console.log('in move to Templates');
|
|
547
547
|
const modalContent = {
|
|
548
|
-
title:
|
|
549
|
-
body:
|
|
548
|
+
title: this.props.intl.formatMessage(messages.alertMessage),
|
|
549
|
+
body: this.props.intl.formatMessage(messages.goBackTemporaryChangesLost),
|
|
550
550
|
type: 'confirm',
|
|
551
551
|
id: 'template-back-confirm-modal',
|
|
552
552
|
show: true,
|
|
@@ -627,7 +627,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
627
627
|
type: "input", //Resembles component to be used
|
|
628
628
|
metaType: "text",
|
|
629
629
|
datatype: "string",
|
|
630
|
-
errorMessage: `${title}
|
|
630
|
+
errorMessage: `${title} ${this.props.intl.formatMessage(messages.hasValidContent)}`,
|
|
631
631
|
required: true,
|
|
632
632
|
fluid: true,
|
|
633
633
|
disabled: (this.props.location.query.type === 'embedded'),
|
|
@@ -711,7 +711,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
711
711
|
{
|
|
712
712
|
id: "template-label-link",
|
|
713
713
|
metaType: "label",
|
|
714
|
-
value:
|
|
714
|
+
value: this.props.intl.formatMessage(messages.Link),
|
|
715
715
|
primitive: true,
|
|
716
716
|
type: "div",
|
|
717
717
|
width: 4,
|
|
@@ -736,7 +736,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
736
736
|
type: "input", //Resembles component to be used
|
|
737
737
|
metaType: "text",
|
|
738
738
|
datatype: "string",
|
|
739
|
-
errorMessage:
|
|
739
|
+
errorMessage: this.props.intl.formatMessage(messages.linkCantEmpty),
|
|
740
740
|
required: true,
|
|
741
741
|
fluid: true,
|
|
742
742
|
disabled: (this.props.location.query.type === 'embedded'),
|
|
@@ -763,7 +763,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
763
763
|
cols: [
|
|
764
764
|
{
|
|
765
765
|
id: "is-internal-url",
|
|
766
|
-
label:
|
|
766
|
+
label: this.props.intl.formatMessage(messages.isInternalUrl),
|
|
767
767
|
standalone: true,
|
|
768
768
|
labelStyle: {
|
|
769
769
|
backgroundColor: "white",
|
|
@@ -7,67 +7,99 @@ import { defineMessages } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
export default defineMessages({
|
|
9
9
|
"header": {
|
|
10
|
-
id: '
|
|
10
|
+
id: 'creatives.containersV2.WeChat.header',
|
|
11
11
|
defaultMessage: 'WeChat',
|
|
12
12
|
},
|
|
13
13
|
'Template mapping': {
|
|
14
|
-
id: '
|
|
14
|
+
id: 'creatives.containersV2.WeChat.templateMapping',
|
|
15
15
|
defaultMessage: 'Template mapping',
|
|
16
16
|
},
|
|
17
17
|
'Discard': {
|
|
18
|
-
id: '
|
|
18
|
+
id: 'creatives.containersV2.WeChat.discard',
|
|
19
19
|
defaultMessage: 'Discard',
|
|
20
20
|
},
|
|
21
21
|
'Cancel': {
|
|
22
|
-
id: '
|
|
22
|
+
id: 'creatives.containersV2.WeChat.cancel',
|
|
23
23
|
defaultMessage: 'Cancel',
|
|
24
24
|
},
|
|
25
25
|
'Save': {
|
|
26
|
-
id: '
|
|
26
|
+
id: 'creatives.containersV2.WeChat.save',
|
|
27
27
|
defaultMessage: 'Save',
|
|
28
28
|
},
|
|
29
29
|
'Account Id': {
|
|
30
|
-
id: '
|
|
30
|
+
id: 'creatives.containersV2.WeChat.accountId',
|
|
31
31
|
defaultMessage: 'Account id',
|
|
32
32
|
},
|
|
33
33
|
'Select Wechat Account': {
|
|
34
|
-
id: '
|
|
34
|
+
id: 'creatives.containersV2.WeChat.selectWechatAccount',
|
|
35
35
|
defaultMessage: 'Select wechat account',
|
|
36
36
|
},
|
|
37
37
|
'Template': {
|
|
38
|
-
id: '
|
|
38
|
+
id: 'creatives.containersV2.WeChat.template',
|
|
39
39
|
defaultMessage: 'Template',
|
|
40
40
|
},
|
|
41
41
|
'Select Wechat Template': {
|
|
42
|
-
id: '
|
|
42
|
+
id: 'creatives.containersV2.WeChat.selectWechatTemplate',
|
|
43
43
|
defaultMessage: 'Select wechat template',
|
|
44
44
|
},
|
|
45
45
|
'Link': {
|
|
46
|
-
id: '
|
|
46
|
+
id: 'creatives.containersV2.WeChat.link',
|
|
47
47
|
defaultMessage: 'Link',
|
|
48
48
|
},
|
|
49
|
-
'
|
|
50
|
-
id: '
|
|
49
|
+
'isInternalUrl': {
|
|
50
|
+
id: 'creatives.containersV2.WeChat.isInternalUrl',
|
|
51
51
|
defaultMessage: 'Is this internal url',
|
|
52
52
|
},
|
|
53
53
|
"Tags": {
|
|
54
|
-
id: '
|
|
54
|
+
id: 'creatives.containersV2.WeChat.tagsLabel',
|
|
55
55
|
defaultMessage: "Tags",
|
|
56
56
|
},
|
|
57
57
|
"gettingTemplateData": {
|
|
58
|
-
id: '
|
|
58
|
+
id: 'creatives.containersV2.WeChat.gettingTemplateData',
|
|
59
59
|
defaultMessage: "Getting template data..",
|
|
60
60
|
},
|
|
61
61
|
"wechatEditSuccess": {
|
|
62
|
-
id: '
|
|
62
|
+
id: 'creatives.containersV2.WeChat.wechatEditSuccess',
|
|
63
63
|
defaultMessage: "WeChat template unmapped successfully",
|
|
64
64
|
},
|
|
65
65
|
"wechatCreateSuccess": {
|
|
66
|
-
id: '
|
|
66
|
+
id: 'creatives.containersV2.WeChat.wechatCreateSuccess',
|
|
67
67
|
defaultMessage: "WeChat template mapped successfully",
|
|
68
68
|
},
|
|
69
69
|
"somethingWentWrong": {
|
|
70
|
-
id: '
|
|
70
|
+
id: 'creatives.containersV2.WeChat.somethingWentWrong',
|
|
71
71
|
defaultMessage: "Something went wrong!!",
|
|
72
72
|
},
|
|
73
|
+
"alertMessage": {
|
|
74
|
+
id: 'creatives.containersV2.WeChat.alertMessage',
|
|
75
|
+
defaultMessage: "Alert",
|
|
76
|
+
},
|
|
77
|
+
"goBackTemporaryChangesLost": {
|
|
78
|
+
id: 'creatives.containersV2.WeChat.goBackTemporaryChangesLost',
|
|
79
|
+
defaultMessage: "Do you really want to go back? All your temporary changes will be lost!",
|
|
80
|
+
},
|
|
81
|
+
"hasValidContent": {
|
|
82
|
+
id: 'creatives.containersV2.WeChat.hasValidContent',
|
|
83
|
+
defaultMessage: "has valid content.",
|
|
84
|
+
},
|
|
85
|
+
"linkCantEmpty": {
|
|
86
|
+
id: 'creatives.containersV2.WeChat.linkCantEmpty',
|
|
87
|
+
defaultMessage: "has valid content.",
|
|
88
|
+
},
|
|
89
|
+
"select": {
|
|
90
|
+
id: 'creatives.containers.WeChat.select',
|
|
91
|
+
defaultMessage: 'Select',
|
|
92
|
+
},
|
|
93
|
+
"newWechat": {
|
|
94
|
+
id: 'creatives.containers.WeChat.newWechat',
|
|
95
|
+
defaultMessage: 'New wechat',
|
|
96
|
+
},
|
|
97
|
+
"linkErrorMessage": {
|
|
98
|
+
id: 'creatives.containers.WeChat.linkErrorMessage',
|
|
99
|
+
defaultMessage: 'Link cannot be empty.',
|
|
100
|
+
},
|
|
101
|
+
"hasInvalidContent": {
|
|
102
|
+
id: 'creatives.containers.WeChat.hasInvalidContent',
|
|
103
|
+
defaultMessage: 'has invalid content.',
|
|
104
|
+
},
|
|
73
105
|
});
|
|
@@ -723,13 +723,13 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
723
723
|
<i className="material-icons hover-icons">arrow_downward</i>
|
|
724
724
|
</div>
|
|
725
725
|
<div id={id} onClick={(e) => this.viewContent(e, id)} style={{ 'padding-left': '190px' }}>
|
|
726
|
-
<i className="material-icons hover-icons">visibility</i>
|
|
726
|
+
<i className="material-icons hover-icons">{this.props.intl.formatMessage(messages.visibility)}</i>
|
|
727
727
|
</div>
|
|
728
728
|
</div>
|
|
729
729
|
:
|
|
730
730
|
<div className="richmedia-icons">
|
|
731
731
|
<div id={id} onClick={(e) => this.viewContent(e, id)} style={{ 'padding-left': '214px' }}>
|
|
732
|
-
<i className="material-icons hover-icons">visibility</i>
|
|
732
|
+
<i className="material-icons hover-icons">{this.props.intl.formatMessage(messages.visibility)}</i>
|
|
733
733
|
</div>
|
|
734
734
|
</div>
|
|
735
735
|
}
|
|
@@ -766,19 +766,19 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
766
766
|
{id !== (this.state.totalContentBlocks - 1 ) ?
|
|
767
767
|
<div style={{'display': 'inline-flex', 'padding-left': '142px'}}>
|
|
768
768
|
<div id={id} onClick={(e) => this.viewContent(e, id)}>
|
|
769
|
-
<i className="material-icons hover-icons">visibility</i>
|
|
769
|
+
<i className="material-icons hover-icons">{this.props.intl.formatMessage(messages.visibility)}</i>
|
|
770
770
|
</div>
|
|
771
771
|
<div id={id} onClick={(e) => this.deleteContent(e, id)} >
|
|
772
|
-
<i className="material-icons hover-icons">delete</i>
|
|
772
|
+
<i className="material-icons hover-icons">{this.props.intl.formatMessage(messages.delete)}</i>
|
|
773
773
|
</div>
|
|
774
774
|
</div>
|
|
775
775
|
:
|
|
776
776
|
<div style={{'display': 'inline-flex', 'padding-left': '166px'}}>
|
|
777
777
|
<div id={id} onClick={(e) => this.viewContent(e, id)}>
|
|
778
|
-
<i className="material-icons hover-icons">visibility</i>
|
|
778
|
+
<i className="material-icons hover-icons">{this.props.intl.formatMessage(messages.visibility)}</i>
|
|
779
779
|
</div>
|
|
780
780
|
<div id={id} onClick={(e) => this.deleteContent(e, id)} >
|
|
781
|
-
<i className="material-icons hover-icons">delete</i>
|
|
781
|
+
<i className="material-icons hover-icons">{this.props.intl.formatMessage(messages.delete)}</i>
|
|
782
782
|
</div>
|
|
783
783
|
</div>
|
|
784
784
|
}
|