@capillarytech/creatives-library 7.6.1 → 7.6.2
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/DeviceForEmail.png +0 -0
- package/components/CapTagList/index.js +5 -5
- package/components/Card/index.js +1 -1
- package/components/Ckeditor/index.js +5 -5
- package/components/CustomPopOver/index.js +3 -3
- package/components/Edmeditor/index.js +4 -4
- package/components/EmailPreview/index.js +1 -1
- package/components/PreviewSideBar/index.js +3 -3
- package/components/Sidebar/index.js +1 -1
- package/components/SmsTest/index.js +4 -4
- package/components/TemplatePreview/index.js +2 -2
- package/components/Toastr/index.js +1 -1
- package/config/app.js +2 -0
- package/containers/Assets/Gallery/index.js +2 -2
- package/containers/Assets/Gallery/sagas.js +1 -1
- package/containers/Cap/actions.js +2 -2
- package/containers/Cap/reducer.js +1 -1
- package/containers/Cap/sagas.js +3 -3
- package/containers/Cap/selectors.js +1 -1
- package/containers/Ebill/actions.js +1 -1
- package/containers/Ebill/index.js +34 -34
- package/containers/Ebill/sagas.js +3 -3
- package/containers/Email/actions.js +2 -2
- package/containers/Email/index.js +171 -171
- package/containers/Email/reducer.js +1 -1
- package/containers/Email/sagas.js +6 -6
- package/containers/LanguageProvider/actions.js +1 -1
- package/containers/Line/Create/actions.js +5 -5
- package/containers/Line/Create/index.js +37 -37
- package/containers/Line/Create/sagas.js +7 -7
- package/containers/Line/Edit/actions.js +3 -3
- package/containers/Line/Edit/index.js +24 -24
- package/containers/Line/Edit/sagas.js +4 -4
- package/containers/MobilePush/Create/actions.js +2 -2
- package/containers/MobilePush/Create/index.js +35 -35
- package/containers/MobilePush/Create/sagas.js +2 -2
- package/containers/MobilePush/Edit/actions.js +3 -3
- package/containers/MobilePush/Edit/index.js +32 -32
- package/containers/MobilePush/Edit/sagas.js +5 -5
- package/containers/Sms/Create/actions.js +2 -2
- package/containers/Sms/Create/index.js +57 -57
- package/containers/Sms/Create/sagas.js +2 -2
- package/containers/Sms/Edit/actions.js +3 -3
- package/containers/Sms/Edit/index.js +44 -44
- package/containers/Sms/Edit/sagas.js +3 -3
- package/containers/TagList/index.js +9 -9
- package/containers/Templates/actions.js +5 -5
- package/containers/Templates/index.js +44 -44
- package/containers/Templates/sagas.js +5 -5
- package/containers/WeChat/MapTemplates/actions.js +1 -1
- package/containers/WeChat/MapTemplates/index.js +34 -34
- package/containers/WeChat/MapTemplates/sagas.js +2 -2
- package/containers/WeChat/RichmediaTemplates/Create/index.js +9 -9
- package/containers/WeChat/RichmediaTemplates/Edit/actions.js +1 -1
- package/containers/WeChat/RichmediaTemplates/Edit/sagas.js +1 -1
- package/index.js +6 -0
- package/package.json +1 -1
- package/reducers.js +2 -1
- package/routes.js +5 -0
- package/services/api.js +43 -14
- package/utils/authWrapper.js +2 -2
- package/utils/common.js +13 -1
- package/utils/smsCharCount.js +5 -5
- package/v2Components/CapTagList/index.js +1 -1
- package/v2Components/CapVideoUpload/index.js +14 -6
- package/v2Components/Card/index.js +1 -1
- package/v2Components/Ckeditor/index.js +5 -5
- package/v2Components/CustomPopOver/index.js +3 -3
- package/v2Components/Edmeditor/index.js +4 -4
- package/v2Components/EmailMobilePreview/index.js +4 -4
- package/v2Components/EmailPreviewV2/index.js +4 -4
- package/v2Components/FormBuilder/index.js +3 -3
- package/v2Components/PreviewSideBar/index.js +3 -3
- package/v2Components/SmsTest/index.js +4 -4
- package/v2Components/TemplatePreview/index.js +24 -3
- package/v2Components/Toastr/index.js +1 -1
- package/v2Containers/App/constants.js +21 -0
- package/v2Containers/Assets/Gallery/sagas.js +1 -1
- package/v2Containers/Cap/actions.js +1 -1
- package/v2Containers/Cap/index.js +2 -2
- package/v2Containers/Cap/messages.js +30 -0
- package/v2Containers/Cap/reducer.js +1 -1
- package/v2Containers/Cap/sagas.js +3 -3
- package/v2Containers/Cap/selectors.js +1 -1
- package/v2Containers/CapFacebookPreview/actions.js +3 -15
- package/v2Containers/CapFacebookPreview/constants.js +3 -11
- package/v2Containers/CapFacebookPreview/index.js +6 -6
- package/v2Containers/CapFacebookPreview/reducer.js +3 -9
- package/v2Containers/CapFacebookPreview/sagas.js +6 -65
- package/v2Containers/CreativesContainer/SlideBoxContent.js +64 -1
- package/v2Containers/CreativesContainer/index.js +19 -8
- package/v2Containers/Ebill/actions.js +1 -1
- package/v2Containers/Ebill/index.js +34 -34
- package/v2Containers/Ebill/sagas.js +3 -3
- package/v2Containers/Email/reducer.js +1 -1
- package/v2Containers/EmailWrapper/index.js +4 -4
- package/v2Containers/Facebook/Advertisement/index.js +38 -15
- package/v2Containers/Facebook/Advertisement/index.scss +9 -0
- package/v2Containers/Facebook/Advertisement/messages.js +2 -2
- package/v2Containers/Facebook/actions.js +63 -0
- package/v2Containers/Facebook/constants.js +25 -1
- package/v2Containers/Facebook/index.js +135 -107
- package/v2Containers/Facebook/reducer.js +98 -1
- package/v2Containers/Facebook/sagas.js +147 -0
- package/v2Containers/Facebook/selectors.js +10 -0
- package/v2Containers/LanguageProvider/actions.js +1 -1
- package/v2Containers/Line/Container/Video/index.js +38 -41
- package/v2Containers/Line/Container/actions.js +5 -5
- package/v2Containers/Line/Container/sagas.js +4 -4
- package/v2Containers/MobilePush/Create/actions.js +2 -2
- package/v2Containers/MobilePush/Create/index.js +1 -1
- package/v2Containers/MobilePush/Create/sagas.js +2 -2
- package/v2Containers/MobilePush/Edit/actions.js +3 -3
- package/v2Containers/MobilePush/Edit/index.js +26 -26
- package/v2Containers/MobilePush/Edit/sagas.js +5 -5
- package/v2Containers/Sms/Create/index.js +4 -4
- package/v2Containers/TagList/index.js +6 -6
- package/v2Containers/Templates/_templates.scss +26 -0
- package/v2Containers/Templates/actions.js +18 -5
- package/v2Containers/Templates/constants.js +8 -0
- package/v2Containers/Templates/index.js +139 -11
- package/v2Containers/Templates/messages.js +8 -4
- package/v2Containers/Templates/reducer.js +22 -0
- package/v2Containers/Templates/sagas.js +30 -5
- package/v2Containers/TemplatesV2/index.js +13 -13
- package/v2Containers/Viber/actions.js +2 -2
- package/v2Containers/Viber/index.js +2 -1
- package/v2Containers/Viber/sagas.js +2 -2
- package/v2Containers/WeChat/MapTemplates/actions.js +1 -1
- package/v2Containers/WeChat/MapTemplates/index.js +19 -19
- package/v2Containers/WeChat/MapTemplates/sagas.js +3 -3
- package/v2Containers/WeChat/RichmediaTemplates/Create/actions.js +1 -1
- package/v2Containers/WeChat/RichmediaTemplates/Edit/actions.js +1 -1
- package/v2Containers/WeChat/RichmediaTemplates/Edit/sagas.js +1 -1
|
@@ -97,7 +97,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
97
97
|
componentWillMount() {
|
|
98
98
|
if (this.state.channel === '') {
|
|
99
99
|
let channel = '';
|
|
100
|
-
|
|
100
|
+
|
|
101
101
|
switch (this.props.route.name.toLowerCase()) {
|
|
102
102
|
case "sms":
|
|
103
103
|
channel = 'Sms';
|
|
@@ -153,11 +153,11 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
153
153
|
// this.props.actions.getEdmDefaultTemplates();
|
|
154
154
|
// }
|
|
155
155
|
}
|
|
156
|
-
|
|
156
|
+
|
|
157
157
|
window.addEventListener("message", this.handleFrameTasks);
|
|
158
158
|
}
|
|
159
159
|
componentWillReceiveProps(nextProps) {
|
|
160
|
-
|
|
160
|
+
|
|
161
161
|
const params = {
|
|
162
162
|
name: this.state.searchText,
|
|
163
163
|
sortBy: this.state.sortBy,
|
|
@@ -187,7 +187,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
187
187
|
} else if (nextProps.route.name.toLowerCase() === 'line') {
|
|
188
188
|
channel = 'Line';
|
|
189
189
|
}
|
|
190
|
-
//
|
|
190
|
+
//
|
|
191
191
|
this.setState({ channel }, () => {
|
|
192
192
|
if (this.state.channel.toLowerCase() === 'line' || this.state.channel.toLowerCase() === 'sms' || this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill' || (this.state.channel.toLowerCase() === 'wechat' && !_.isEmpty(nextProps.Templates.selectedWeChatAccount))) {
|
|
193
193
|
if (this.state.channel.toLowerCase() === 'wechat' && !_.isEmpty(nextProps.Templates.selectedWeChatAccount)) {
|
|
@@ -299,14 +299,14 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
299
299
|
}
|
|
300
300
|
if (!nextProps.Templates.deleteTemplateInProgress && !_.isEqual(nextProps.Templates.deleteTemplateInProgress, this.props.Templates.deleteTemplateInProgress) &&
|
|
301
301
|
nextProps.Templates.deleteResponse) {
|
|
302
|
-
|
|
302
|
+
|
|
303
303
|
const message = getMessageObject('success', `${this.state.channel.toUpperCase()} ${this.props.intl.formatMessage(messages['Template deleted successfully'])}`, true);
|
|
304
304
|
nextProps.globalActions.addMessageToQueue(message);
|
|
305
305
|
this.getAllTemplates({params, resetPage: true});
|
|
306
306
|
}
|
|
307
307
|
|
|
308
308
|
if (!nextProps.Templates.sendingFile && !_.isEqual(this.props.Templates.sendingFile, nextProps.Templates.sendingFile) && !nextProps.Templates.errorSendingFile) {
|
|
309
|
-
|
|
309
|
+
|
|
310
310
|
const module = this.props.location.query.module ? this.props.location.query.module : 'default';
|
|
311
311
|
const isLanguageSupport = (this.props.location.query.isLanguageSupport) ? this.props.location.query.isLanguageSupport : true;
|
|
312
312
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
@@ -354,14 +354,14 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
354
354
|
}
|
|
355
355
|
|
|
356
356
|
componentWillUnmount() {
|
|
357
|
-
|
|
357
|
+
|
|
358
358
|
window.removeEventListener("message", this.handleFrameTasks);
|
|
359
359
|
this.props.actions.resetTemplateStoreData();
|
|
360
360
|
// this.setState({defaultAccount: false});
|
|
361
361
|
}
|
|
362
362
|
|
|
363
363
|
onAccountSelect(value, option) {
|
|
364
|
-
|
|
364
|
+
|
|
365
365
|
this.setState({selectedAccount: value}, () => {
|
|
366
366
|
const params = {
|
|
367
367
|
name: this.state.searchText,
|
|
@@ -376,7 +376,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
376
376
|
this.props.actions.setWeChatAccount(this.props.Templates.weCrmAccounts[_.findIndex(this.props.Templates.weCrmAccounts, { name: value})]);
|
|
377
377
|
params.accountId = this.props.Templates.weCrmAccounts[_.findIndex(this.props.Templates.weCrmAccounts, { name: value})].id;
|
|
378
378
|
}
|
|
379
|
-
|
|
379
|
+
|
|
380
380
|
this.getAllTemplates({params, resetPage: true});
|
|
381
381
|
});
|
|
382
382
|
}
|
|
@@ -389,7 +389,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
389
389
|
}
|
|
390
390
|
locale = this.getMappedLocale(locale);
|
|
391
391
|
//locale = 'zh';
|
|
392
|
-
|
|
392
|
+
|
|
393
393
|
moment.locale(locale);
|
|
394
394
|
};
|
|
395
395
|
|
|
@@ -404,7 +404,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
404
404
|
getAllTemplates = ({params, getNextPage, resetPage}, resetTemplates) => {
|
|
405
405
|
let queryParams = params;
|
|
406
406
|
let page = this.state.page;
|
|
407
|
-
|
|
407
|
+
|
|
408
408
|
if (resetTemplates) {
|
|
409
409
|
queryParams.name = this.state.searchText;
|
|
410
410
|
queryParams.sortBy = this.state.sortBy;
|
|
@@ -448,7 +448,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
448
448
|
};
|
|
449
449
|
|
|
450
450
|
getCurrentWindow(e) {
|
|
451
|
-
|
|
451
|
+
|
|
452
452
|
const response = {
|
|
453
453
|
action: e.action,
|
|
454
454
|
value: 'templates',
|
|
@@ -458,7 +458,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
458
458
|
}
|
|
459
459
|
|
|
460
460
|
skipTemplateSelection = (e) => {
|
|
461
|
-
|
|
461
|
+
|
|
462
462
|
const type = this.props.location.query.type;
|
|
463
463
|
const module = (type === 'embedded') ? this.props.location.query.module : 'default';
|
|
464
464
|
if (this.state.channel.toLowerCase() === 'email') {
|
|
@@ -499,12 +499,12 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
499
499
|
}
|
|
500
500
|
|
|
501
501
|
handleMenuAction = (item = {}, key) => {
|
|
502
|
-
|
|
502
|
+
|
|
503
503
|
if ((item.key || '').toLowerCase() === 'uploadfile') {
|
|
504
504
|
document.getElementById('filename').click();
|
|
505
|
-
|
|
505
|
+
|
|
506
506
|
} else if ((item.key || '').toLowerCase() === 'useeditor') {
|
|
507
|
-
|
|
507
|
+
|
|
508
508
|
this.toggleEdmEmailTemplateSelection();
|
|
509
509
|
}
|
|
510
510
|
};
|
|
@@ -540,13 +540,13 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
540
540
|
const module = this.props.location.query.module ? this.props.location.query.module : 'default';
|
|
541
541
|
const isLanguageSupport = (this.props.location.query.isLanguageSupport) ? this.props.location.query.isLanguageSupport : true;
|
|
542
542
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
543
|
-
|
|
543
|
+
|
|
544
544
|
if (supportedZipFormats.indexOf(fileExtension.toLowerCase()) !== -1) {
|
|
545
|
-
|
|
545
|
+
|
|
546
546
|
this.props.actions.handleZipUpload(files[0]);
|
|
547
547
|
document.getElementById("filename").value = "";
|
|
548
548
|
} else if (fileExtension === 'html' || fileExtension === 'htm') {
|
|
549
|
-
|
|
549
|
+
|
|
550
550
|
const reader = new FileReader();
|
|
551
551
|
reader.onload = () => {
|
|
552
552
|
const text = reader.result;
|
|
@@ -673,17 +673,17 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
673
673
|
return result;
|
|
674
674
|
}
|
|
675
675
|
startLoading(ifEdit) {
|
|
676
|
-
|
|
676
|
+
|
|
677
677
|
if (ifEdit) {
|
|
678
678
|
this.setState({loading: true});
|
|
679
679
|
}
|
|
680
680
|
}
|
|
681
681
|
|
|
682
682
|
startTemplateCreation(data) {
|
|
683
|
-
|
|
683
|
+
|
|
684
684
|
if (data.edit) {
|
|
685
685
|
const ifUnicode = checkUnicode(data.content);
|
|
686
|
-
|
|
686
|
+
|
|
687
687
|
const content = data.content;
|
|
688
688
|
const tempData = {
|
|
689
689
|
'sms-editor': content,
|
|
@@ -698,10 +698,10 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
698
698
|
}
|
|
699
699
|
|
|
700
700
|
handleFrameTasks = (e) => {
|
|
701
|
-
|
|
701
|
+
|
|
702
702
|
const type = e.data;
|
|
703
703
|
if (typeof type === 'object') {
|
|
704
|
-
|
|
704
|
+
|
|
705
705
|
const action = type.action;
|
|
706
706
|
switch (action) {
|
|
707
707
|
case "startTemplateCreation":
|
|
@@ -722,11 +722,11 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
722
722
|
}
|
|
723
723
|
switch (type) {
|
|
724
724
|
case "startTemplateCreation":
|
|
725
|
-
|
|
725
|
+
|
|
726
726
|
//this.getFormData(e);
|
|
727
727
|
break;
|
|
728
728
|
case "validateContent":
|
|
729
|
-
|
|
729
|
+
|
|
730
730
|
this.validateContent(e);
|
|
731
731
|
break;
|
|
732
732
|
default:
|
|
@@ -789,7 +789,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
789
789
|
}
|
|
790
790
|
|
|
791
791
|
searchTemplate(data) {
|
|
792
|
-
|
|
792
|
+
|
|
793
793
|
this.setState({searchText: data}, () => {
|
|
794
794
|
const params = {
|
|
795
795
|
name: this.state.searchText,
|
|
@@ -843,14 +843,14 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
843
843
|
if (this.state.channel.toLowerCase() === 'ebill' || this.state.channel.toLowerCase() === 'email') {
|
|
844
844
|
this.toggleEmailPreview();
|
|
845
845
|
} else {
|
|
846
|
-
|
|
846
|
+
|
|
847
847
|
this.setState( (prevState) => ({
|
|
848
848
|
previewOpen: !prevState.previewOpen}));
|
|
849
849
|
}
|
|
850
850
|
}
|
|
851
851
|
|
|
852
852
|
toggleEdmEmailTemplateSelection = () => {
|
|
853
|
-
|
|
853
|
+
|
|
854
854
|
this.setState( (prevState) => ({
|
|
855
855
|
showEdmEmailTemplates: !prevState.showEdmEmailTemplates}), () => {
|
|
856
856
|
this.props.actions.getEdmDefaultTemplates();
|
|
@@ -858,13 +858,13 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
858
858
|
};
|
|
859
859
|
|
|
860
860
|
deleteTemplate(template) {
|
|
861
|
-
|
|
861
|
+
|
|
862
862
|
this.props.actions.deleteTemplate(this.state.channel.toUpperCase(), template._id);
|
|
863
863
|
this.setState({actionTemplate: {}});
|
|
864
864
|
}
|
|
865
865
|
|
|
866
866
|
duplicateTemplate(template) {
|
|
867
|
-
|
|
867
|
+
|
|
868
868
|
const duplicateObj = _.cloneDeep(template);
|
|
869
869
|
duplicateObj.name = `Copy of ${template.name} ${moment().format('MM-DD-YYYY HH:mm:ss')}`;
|
|
870
870
|
delete duplicateObj._id;
|
|
@@ -883,7 +883,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
883
883
|
}
|
|
884
884
|
|
|
885
885
|
handleOnHoverItem(isHovering, id) {
|
|
886
|
-
|
|
886
|
+
|
|
887
887
|
if (isHovering) {
|
|
888
888
|
this.setState({hoveredItem: id});
|
|
889
889
|
} else {
|
|
@@ -892,7 +892,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
892
892
|
}
|
|
893
893
|
|
|
894
894
|
handleOnItemClick(isClicked, id) {
|
|
895
|
-
|
|
895
|
+
|
|
896
896
|
this.setState({clickedItem: id});
|
|
897
897
|
}
|
|
898
898
|
|
|
@@ -904,7 +904,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
904
904
|
const isLanguageSupport = (this.props.location.query.isLanguageSupport) ? this.props.location.query.isLanguageSupport : true;
|
|
905
905
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
906
906
|
let getQuery = '';
|
|
907
|
-
|
|
907
|
+
|
|
908
908
|
this.props.actions.setEdmTemplate(data);
|
|
909
909
|
if (this.state.channel && this.state.channel.toLowerCase() === 'email') {
|
|
910
910
|
getQuery = (type === 'embedded') ? {type: 'embedded', module, isLanguageSupport, isEdmSupport} : {module, isLanguageSupport, isEdmSupport};
|
|
@@ -923,7 +923,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
923
923
|
};
|
|
924
924
|
|
|
925
925
|
handleEditClick(e, id, modeType, path) {
|
|
926
|
-
|
|
926
|
+
|
|
927
927
|
if (modeType && modeType !== undefined) {
|
|
928
928
|
this.setState({modeType});
|
|
929
929
|
}
|
|
@@ -933,9 +933,9 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
933
933
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
934
934
|
let getQuery = "";
|
|
935
935
|
let pathName = path;
|
|
936
|
-
|
|
936
|
+
|
|
937
937
|
e.stopPropagation();
|
|
938
|
-
|
|
938
|
+
|
|
939
939
|
this.props.actions.resetTemplateData();
|
|
940
940
|
if (this.state.channel.toLowerCase() === 'sms') {
|
|
941
941
|
pathName = `/sms/edit/${id}`;
|
|
@@ -983,7 +983,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
983
983
|
templateInfo.content = template.versions.base;
|
|
984
984
|
templateInfo.appName = this.props.Templates.selectedWeChatAccount.name;
|
|
985
985
|
} else if (this.state.channel.toLowerCase() === "email") {
|
|
986
|
-
|
|
986
|
+
|
|
987
987
|
this.props.actions.getTemplateDetails(template._id);
|
|
988
988
|
} else if (this.state.channel.toLowerCase() === 'ebill') {
|
|
989
989
|
this.props.actions.getTemplateDetails(template._id);
|
|
@@ -1074,9 +1074,9 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1074
1074
|
});
|
|
1075
1075
|
}*/
|
|
1076
1076
|
data.map( (template = {}) => {
|
|
1077
|
-
//
|
|
1077
|
+
//
|
|
1078
1078
|
const temp = {};
|
|
1079
|
-
//
|
|
1079
|
+
//
|
|
1080
1080
|
const updateDateTime = (moment().format('DD-MM-YYYY') === moment(template.updatedAt).format('DD-MM-YYYY')) ? moment(template.updatedAt).format('hh:mma') : moment(template.updatedAt).format('DD MMM YYYY');
|
|
1081
1081
|
let content = '';
|
|
1082
1082
|
temp.id = template._id;
|
|
@@ -1102,12 +1102,12 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1102
1102
|
);
|
|
1103
1103
|
}
|
|
1104
1104
|
} else if (this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill') {
|
|
1105
|
-
//
|
|
1106
|
-
|
|
1105
|
+
//
|
|
1106
|
+
|
|
1107
1107
|
const imgSrc = template && template.versions && template.versions.base ? template.versions.base.preview_http_url : '';
|
|
1108
1108
|
const ifPreviewGenerated = template && template.versions && template.versions.base ? template.versions.base.isPreviewGenerated : 0;
|
|
1109
1109
|
content = <img src={imgSrc || ''} alt={this.props.intl.formatMessage(messages.previewGenerateText)} width="100%" height="100%"/>;
|
|
1110
|
-
|
|
1110
|
+
|
|
1111
1111
|
temp.content = (
|
|
1112
1112
|
<div
|
|
1113
1113
|
className="sms-template-content">
|
|
@@ -1568,7 +1568,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1568
1568
|
{ name: 'description', content: this.props.intl.formatMessage(messages.descriptionTemplates) },
|
|
1569
1569
|
]}
|
|
1570
1570
|
/>
|
|
1571
|
-
{((templateList && templateList.length > 0) || isSearch) && <Pagination onPageChange={() => {
|
|
1571
|
+
{((templateList && templateList.length > 0) || isSearch) && <Pagination onPageChange={() => { this.getAllTemplates({getNextPage: true}); }} paginationSelector="pagination-container">
|
|
1572
1572
|
<CardGrid
|
|
1573
1573
|
className={this.state.channel.toLowerCase() === "mobilepush" ? "mobilepush-templates" : ""}
|
|
1574
1574
|
listItem={templateList}
|
|
@@ -27,7 +27,7 @@ export function* getAllTemplates(channel, queryParams) {
|
|
|
27
27
|
|
|
28
28
|
export function* deleteTemplate(channel, id) {
|
|
29
29
|
try {
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
const result = yield call(Api.deleteTemplate, channel, id);
|
|
32
32
|
// const sidebar = result.response.sidebar;
|
|
33
33
|
yield put({ type: types.DELETE_TEMPLATE_SUCCESS, data: result.response });
|
|
@@ -81,7 +81,7 @@ export function* sendZippedFile({selectedFile}) {
|
|
|
81
81
|
if (result.status.isError) {
|
|
82
82
|
errorMessage = result.message;
|
|
83
83
|
}
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
console.log("Got decoded result", decodeURIComponent(result.response.metaEntity.htmlContent));
|
|
86
86
|
yield [
|
|
87
87
|
put({
|
|
@@ -101,7 +101,7 @@ export function* sendZippedFile({selectedFile}) {
|
|
|
101
101
|
|
|
102
102
|
export function* getEdmTemplates() {
|
|
103
103
|
try {
|
|
104
|
-
|
|
104
|
+
|
|
105
105
|
const result = yield call(Api.getEdmTemplates);
|
|
106
106
|
const edmTemplates = result.response;
|
|
107
107
|
yield put({ type: types.GET_EDM_DEAFULT_TEMPLATES_SUCCESS, data: edmTemplates });
|
|
@@ -112,7 +112,7 @@ export function* getEdmTemplates() {
|
|
|
112
112
|
|
|
113
113
|
export function* getTemplateDetails(id, channel) {
|
|
114
114
|
try {
|
|
115
|
-
|
|
115
|
+
|
|
116
116
|
const result = yield call(Api.getTemplateDetails, id, channel);
|
|
117
117
|
// const sidebar = result.response.sidebar;
|
|
118
118
|
yield put({ type: types.GET_TEMPLATE_DETAILS_SUCCESS, data: result.response });
|
|
@@ -140,7 +140,7 @@ function* watchGetUserList() {
|
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
function* watchFetchWeCrmAccounts() {
|
|
143
|
-
|
|
143
|
+
|
|
144
144
|
const watcher = yield takeLatest(types.GET_WECRM_ACCOUNTS_REQUEST, fetchWeCrmAccounts);
|
|
145
145
|
yield take(LOCATION_CHANGE);
|
|
146
146
|
yield cancel(watcher);
|
|
@@ -147,7 +147,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
147
147
|
this.props.actions.getTemplateDetails(this.props.params.id);
|
|
148
148
|
this.setState({isEdit: true});
|
|
149
149
|
}
|
|
150
|
-
|
|
150
|
+
|
|
151
151
|
if (this.props.Templates.selectedWeChatAccount || (this.props.location.query.type === 'embedded' && this.props.location.query.module === 'loyalty')) {
|
|
152
152
|
if (this.props.Templates.selectedWeChatAccount) {
|
|
153
153
|
const params = {
|
|
@@ -163,7 +163,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
163
163
|
}
|
|
164
164
|
window.addEventListener("message", this.handleFrameTasks);
|
|
165
165
|
} else if (this.props.location.query.type === 'embedded' && this.props.location.query.module === 'outbound') {
|
|
166
|
-
|
|
166
|
+
|
|
167
167
|
} else {
|
|
168
168
|
const module = this.props.location.query.module ? this.props.location.query.module : 'default';
|
|
169
169
|
const type = this.props.location.query.type;
|
|
@@ -175,7 +175,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
componentDidMount() {
|
|
178
|
-
|
|
178
|
+
|
|
179
179
|
const query = {
|
|
180
180
|
layout: 'WECHAT',
|
|
181
181
|
type: 'LAYOUT',
|
|
@@ -191,7 +191,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
191
191
|
if (nextProps.isGetFormData) {
|
|
192
192
|
this.getFormData();
|
|
193
193
|
}
|
|
194
|
-
|
|
194
|
+
|
|
195
195
|
if (nextProps.metaEntities && nextProps.metaEntities.layouts && nextProps.metaEntities.layouts.length > 0 && _.isEmpty(this.state.schema) && !nextProps.WeChat.getTemplateDetailsInProgress) {
|
|
196
196
|
this.injectEvents(nextProps.metaEntities.layouts[0].definition);
|
|
197
197
|
const query = {
|
|
@@ -276,7 +276,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
276
276
|
this.props.globalActions.addMessageToQueue(message);
|
|
277
277
|
}
|
|
278
278
|
|
|
279
|
-
//
|
|
279
|
+
//
|
|
280
280
|
// this.injectEvents(nextProps.metaEntities.layouts[0].definition);
|
|
281
281
|
// const query = {
|
|
282
282
|
// layout: 'WECHAT',
|
|
@@ -334,7 +334,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
334
334
|
}
|
|
335
335
|
|
|
336
336
|
componentWillUnmount() {
|
|
337
|
-
|
|
337
|
+
|
|
338
338
|
window.removeEventListener("message", this.handleFrameTasks);
|
|
339
339
|
this.props.templateActions.resetTemplate();
|
|
340
340
|
this.resetState();
|
|
@@ -347,7 +347,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
347
347
|
if (this.props.location.query.type === 'embedded' && (this.props.location.query.module === 'loyalty')) {
|
|
348
348
|
selectedTemplateData = this.state.editTemplateData;
|
|
349
349
|
if (this.props.params.id && _.isEmpty(this.props.WeChat.weChatTemplates) && _.isEqual(formData['wechat-template'], this.state.formData['wechat-template'])) {
|
|
350
|
-
|
|
350
|
+
|
|
351
351
|
selectedTemplate = {
|
|
352
352
|
template_id: this.props.WeChat.templateDetails.versions.base.template_id,
|
|
353
353
|
title: this.props.WeChat.templateDetails.versions.base.Title,
|
|
@@ -369,7 +369,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
369
369
|
});
|
|
370
370
|
}
|
|
371
371
|
} else if (this.state.isEdit && this.state.editTemplateData.versions) {
|
|
372
|
-
|
|
372
|
+
|
|
373
373
|
selectedTemplateData = _.cloneDeep(this.state.editTemplateData);
|
|
374
374
|
selectedTemplate = {
|
|
375
375
|
template_id: selectedTemplateData.versions.base.template_id,
|
|
@@ -453,7 +453,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
453
453
|
}
|
|
454
454
|
|
|
455
455
|
getFormData(e) {
|
|
456
|
-
|
|
456
|
+
|
|
457
457
|
const selectedWeChatAccount = (!_.isEmpty(this.props.Templates.selectedWeChatAccount) ? this.props.Templates.selectedWeChatAccount : this.props.WeChat.selectedWeChatAccount);
|
|
458
458
|
const data = {
|
|
459
459
|
template_id: this.state.editTemplateData.versions.base.template_id,
|
|
@@ -499,7 +499,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
499
499
|
value: data,
|
|
500
500
|
validity: this.state.isFormValid,
|
|
501
501
|
};
|
|
502
|
-
|
|
502
|
+
|
|
503
503
|
this.setState({checkValidation: true});
|
|
504
504
|
if (this.props.location.query.module === 'library') {
|
|
505
505
|
this.props.getLibraryFormData(response);
|
|
@@ -509,7 +509,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
509
509
|
}
|
|
510
510
|
|
|
511
511
|
getCurrentWindow(e) {
|
|
512
|
-
|
|
512
|
+
|
|
513
513
|
const response = {
|
|
514
514
|
action: e.action,
|
|
515
515
|
value: 'edit',
|
|
@@ -530,18 +530,18 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
530
530
|
}
|
|
531
531
|
|
|
532
532
|
startLoading(ifEdit) {
|
|
533
|
-
|
|
533
|
+
|
|
534
534
|
if (ifEdit) {
|
|
535
535
|
this.setState({loading: true});
|
|
536
536
|
}
|
|
537
537
|
}
|
|
538
538
|
|
|
539
539
|
handleFrameTasks = (e) => {
|
|
540
|
-
//
|
|
540
|
+
//
|
|
541
541
|
const type = e.data;
|
|
542
|
-
//
|
|
542
|
+
//
|
|
543
543
|
if (typeof type === 'object') {
|
|
544
|
-
//
|
|
544
|
+
//
|
|
545
545
|
const action = type.action;
|
|
546
546
|
switch (action) {
|
|
547
547
|
case "startTemplateCreation":
|
|
@@ -562,15 +562,15 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
562
562
|
this.getFormData(e);
|
|
563
563
|
break;
|
|
564
564
|
case "startTemplateCreation":
|
|
565
|
-
|
|
565
|
+
|
|
566
566
|
//this.getFormData(e);
|
|
567
567
|
break;
|
|
568
568
|
case "moveToTemplates":
|
|
569
|
-
|
|
569
|
+
|
|
570
570
|
this.moveToTemplates();
|
|
571
571
|
break;
|
|
572
572
|
case "validateContent":
|
|
573
|
-
|
|
573
|
+
|
|
574
574
|
this.validateContent(e);
|
|
575
575
|
break;
|
|
576
576
|
default:
|
|
@@ -580,7 +580,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
580
580
|
}
|
|
581
581
|
|
|
582
582
|
moveToTemplates() {
|
|
583
|
-
|
|
583
|
+
|
|
584
584
|
const modalContent = {
|
|
585
585
|
title: this.props.intl.formatMessage(messages.alertMessage),
|
|
586
586
|
body: this.props.intl.formatMessage(messages.goBackConfirmation),
|
|
@@ -620,7 +620,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
620
620
|
this.isAccountChange = true;
|
|
621
621
|
return;
|
|
622
622
|
}
|
|
623
|
-
|
|
623
|
+
|
|
624
624
|
const {map} = _.cloneDeep(this.state);
|
|
625
625
|
const templateTags = this.getTagsFromContent(weChatData.content);
|
|
626
626
|
const formData = _.cloneDeep(this.state.formData);
|
|
@@ -828,7 +828,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
828
828
|
// schema.standalone.sections[0].childSections[1].childSections[1].inputFields[0].cols[0].content = weChatData.content;
|
|
829
829
|
|
|
830
830
|
this.setState({schema, map, selectedTemplateTags: templateTags, formData}, () => {
|
|
831
|
-
|
|
831
|
+
|
|
832
832
|
this.prepareWeChatPreviewData(weChatData, templateTags);
|
|
833
833
|
});
|
|
834
834
|
}
|
|
@@ -886,12 +886,12 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
886
886
|
}
|
|
887
887
|
|
|
888
888
|
selectWechatAccount(value, option) {
|
|
889
|
-
//
|
|
889
|
+
//
|
|
890
890
|
// templateActions.setWeChatAccount();
|
|
891
891
|
}
|
|
892
892
|
|
|
893
893
|
setTemplateOptions(weChatData) {
|
|
894
|
-
|
|
894
|
+
|
|
895
895
|
//const {schema, baseSchema} = this.state;
|
|
896
896
|
const schema = _.cloneDeep(this.state.schema);
|
|
897
897
|
const baseSchema = _.cloneDeep(this.state.schema);
|
|
@@ -916,7 +916,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
916
916
|
}
|
|
917
917
|
});
|
|
918
918
|
this.setState({schema, baseSchema: _.cloneDeep(baseSchema)}, () => {
|
|
919
|
-
|
|
919
|
+
|
|
920
920
|
if (_.isEmpty(this.state.baseSchema)) {
|
|
921
921
|
this.setState({baseSchema: _.cloneDeep(schema)});
|
|
922
922
|
}
|
|
@@ -928,11 +928,11 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
928
928
|
}
|
|
929
929
|
|
|
930
930
|
setContent(content) {
|
|
931
|
-
|
|
931
|
+
|
|
932
932
|
}
|
|
933
933
|
|
|
934
934
|
setEditData() {
|
|
935
|
-
|
|
935
|
+
|
|
936
936
|
const formData = _.cloneDeep(this.state.formData);
|
|
937
937
|
const baseSchema = _.cloneDeep(this.state.baseSchema);
|
|
938
938
|
if (_.isEmpty(baseSchema)) {
|
|
@@ -960,12 +960,12 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
960
960
|
|
|
961
961
|
maskTemplateUrl(url) {
|
|
962
962
|
const selectedWeChatAccount = (!_.isEmpty(this.props.Templates.selectedWeChatAccount) ? this.props.Templates.selectedWeChatAccount : this.props.WeChat.selectedWeChatAccount);
|
|
963
|
-
|
|
963
|
+
|
|
964
964
|
|
|
965
965
|
const appid = selectedWeChatAccount.configs.wecrm_app_id;
|
|
966
966
|
const domain = selectedWeChatAccount.configs.domain;
|
|
967
967
|
const maskedUrl = `${domain}/web?appid=${appid}&redirect_uri=${escape(url)}&response_type=code&scope=snsapi_base&state=STATE`;
|
|
968
|
-
|
|
968
|
+
|
|
969
969
|
return maskedUrl;
|
|
970
970
|
}
|
|
971
971
|
|
|
@@ -981,7 +981,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
981
981
|
}
|
|
982
982
|
|
|
983
983
|
handleOnTagsContextChange = (data) => {
|
|
984
|
-
|
|
984
|
+
|
|
985
985
|
const query = {
|
|
986
986
|
layout: 'WECHAT',
|
|
987
987
|
type: 'TAG',
|
|
@@ -992,11 +992,11 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
992
992
|
}
|
|
993
993
|
|
|
994
994
|
startTemplateCreation(data) {
|
|
995
|
-
|
|
995
|
+
|
|
996
996
|
}
|
|
997
997
|
|
|
998
998
|
selectWechatTemplate() {
|
|
999
|
-
|
|
999
|
+
|
|
1000
1000
|
}
|
|
1001
1001
|
|
|
1002
1002
|
removeActionButtons() {
|
|
@@ -1303,7 +1303,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
1303
1303
|
color: "#00000",
|
|
1304
1304
|
}
|
|
1305
1305
|
});
|
|
1306
|
-
|
|
1306
|
+
|
|
1307
1307
|
this.props.actions.createTemplate(obj);
|
|
1308
1308
|
}
|
|
1309
1309
|
|
|
@@ -1330,7 +1330,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
1330
1330
|
}
|
|
1331
1331
|
|
|
1332
1332
|
injectEvents(schema) {
|
|
1333
|
-
|
|
1333
|
+
|
|
1334
1334
|
if (_.isEmpty(schema)) {
|
|
1335
1335
|
return false;
|
|
1336
1336
|
}
|
|
@@ -1381,7 +1381,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
|
|
|
1381
1381
|
injectMultiColSection(section) {
|
|
1382
1382
|
_.forEach(section.inputFields, (inputField) => {
|
|
1383
1383
|
_.forEach(inputField.cols, (col) => {
|
|
1384
|
-
|
|
1384
|
+
|
|
1385
1385
|
let temp = col;
|
|
1386
1386
|
if (temp.type === 'popover') {
|
|
1387
1387
|
temp.content.sections = this.injectSections(temp.content.sections);
|
|
@@ -5,7 +5,7 @@ import * as types from './constants';
|
|
|
5
5
|
|
|
6
6
|
export function* getDefaultWeChatTemplates(params) {
|
|
7
7
|
try {
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
const result = yield call(Api.getAllTemplates, {channel: params.channel, queryParams: params.queryParams});
|
|
10
10
|
yield put({ type: types.GET_WECHAT_DEFAULT_TEMPLATES_SUCCESS, data: result.response.unMapped, templateData: result.response.mapped});
|
|
11
11
|
} catch (error) {
|
|
@@ -44,7 +44,7 @@ export function* fetchWeCrmAccounts() {
|
|
|
44
44
|
|
|
45
45
|
export function* getTemplateDetails(id) {
|
|
46
46
|
try {
|
|
47
|
-
|
|
47
|
+
|
|
48
48
|
const result = yield call(Api.getTemplateDetails, id);
|
|
49
49
|
// const sidebar = result.response.sidebar;
|
|
50
50
|
yield put({ type: types.GET_TEMPLATE_DETAILS_SUCCESS, data: result.response });
|