@capillarytech/creatives-library 7.6.0 → 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/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/package.json +1 -1
- package/services/api.js +20 -24
- package/utils/authWrapper.js +2 -2
- 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 +5 -1
- package/v2Components/Toastr/index.js +1 -1
- 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/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 +16 -7
- package/v2Containers/CreativesContainer/index.js +1 -0
- 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 +2 -1
- package/v2Containers/Facebook/reducer.js +3 -0
- package/v2Containers/Facebook/sagas.js +18 -7
- package/v2Containers/LanguageProvider/actions.js +1 -1
- 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/actions.js +5 -5
- package/v2Containers/Templates/index.js +23 -2
- package/v2Containers/Templates/sagas.js +4 -4
- package/v2Containers/Viber/actions.js +2 -2
- 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
|
@@ -685,8 +685,8 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
685
685
|
}
|
|
686
686
|
|
|
687
687
|
componentWillMount() {
|
|
688
|
-
|
|
689
|
-
|
|
688
|
+
|
|
689
|
+
|
|
690
690
|
const formData = this.initFormData(this.props, true); //_.cloneDeep(this.state.formData);
|
|
691
691
|
const isEmpty = _.isEmpty(formData);
|
|
692
692
|
if (!isEmpty) {
|
|
@@ -731,7 +731,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
731
731
|
this.props.actions.getCmsSetting('edm', this.props.Templates.edmTemplate.versions.base.drag_drop_id, 'create', undefined, isEdmSupport);
|
|
732
732
|
}
|
|
733
733
|
}
|
|
734
|
-
|
|
734
|
+
|
|
735
735
|
this.setState({ content: (this.props.Templates.selectedEmailLayout ? this.props.Templates.selectedEmailLayout : ''), formData}, () => {
|
|
736
736
|
// this.injectEvents(this.state.schema);
|
|
737
737
|
});
|
|
@@ -743,7 +743,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
743
743
|
}
|
|
744
744
|
|
|
745
745
|
componentDidMount() {
|
|
746
|
-
|
|
746
|
+
|
|
747
747
|
const query = {
|
|
748
748
|
layout: 'EMAIL',
|
|
749
749
|
type: 'LAYOUT',
|
|
@@ -756,18 +756,18 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
756
756
|
}
|
|
757
757
|
|
|
758
758
|
componentWillReceiveProps(nextProps) {
|
|
759
|
-
|
|
759
|
+
|
|
760
760
|
// if (this.props.location.query.type === 'embedded') {
|
|
761
761
|
// this.showNext();
|
|
762
762
|
// }
|
|
763
763
|
|
|
764
764
|
if (this.state.languageDataSet && nextProps.Templates.selectedEmailLayout && nextProps.Templates.selectedEmailLayout !== '' && !_.isEqual(this.props.Templates.selectedEmailLayout, nextProps.Templates.selectedEmailLayout )) {
|
|
765
|
-
|
|
765
|
+
|
|
766
766
|
this.setNewLanguageContent(nextProps.Templates.selectedEmailLayout);
|
|
767
767
|
}
|
|
768
768
|
if (nextProps.metaEntities && nextProps.metaEntities.layouts && nextProps.metaEntities.layouts.length > 0 && _.isEmpty(this.state.schema)) {
|
|
769
769
|
const newSchema = this.injectEvents(nextProps.metaEntities.layouts[0].definition);
|
|
770
|
-
|
|
770
|
+
|
|
771
771
|
this.setState({schema: newSchema});
|
|
772
772
|
if (this.props.location.query.module !== 'library' || (this.props.location.query.module === 'library' && this.props.getDefaultTags)) {
|
|
773
773
|
const query = {
|
|
@@ -814,7 +814,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
814
814
|
// this.injectEvents(this.state.schema);
|
|
815
815
|
const baseLanguage = nextProps.Global.currentOrgDetails.basic_details.base_language;
|
|
816
816
|
if (this.state.formData[`${this.state.currentTab - 1}`] && _.isEmpty(this.state.formData[`${this.state.currentTab - 1}`].selectedLanguages)) {
|
|
817
|
-
|
|
817
|
+
|
|
818
818
|
const formData = _.cloneDeep(this.state.formData);
|
|
819
819
|
formData[`${this.state.currentTab - 1}`].selectedLanguages = [];
|
|
820
820
|
formData[`${this.state.currentTab - 1}`].selectedLanguages.push(baseLanguage);
|
|
@@ -825,7 +825,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
825
825
|
|
|
826
826
|
if (!_.isEmpty(this.state.schema)) {
|
|
827
827
|
const schema = _.cloneDeep(this.state.schema);
|
|
828
|
-
|
|
828
|
+
|
|
829
829
|
const formData = _.cloneDeep(this.state.formData);
|
|
830
830
|
const container = schema.containers[0];
|
|
831
831
|
// const baseLanguage = this.props.Global.currentOrgDetails.basic_details.base_language;
|
|
@@ -837,7 +837,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
837
837
|
this.setState({schema});
|
|
838
838
|
}
|
|
839
839
|
|
|
840
|
-
//
|
|
840
|
+
//
|
|
841
841
|
// if (!this.isTagLoaded) {
|
|
842
842
|
// this.isTagLoaded = true;
|
|
843
843
|
// const query = {
|
|
@@ -850,7 +850,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
850
850
|
// }
|
|
851
851
|
|
|
852
852
|
if (this.state.isEdit && !this.state.editDataSet && !_.isEmpty(nextProps.Email.templateDetails) && !_.isEmpty(this.state.schema)) {
|
|
853
|
-
|
|
853
|
+
|
|
854
854
|
this.setState({editDataSet: true}, () => {
|
|
855
855
|
this.setEditData(nextProps.Email.templateDetails);
|
|
856
856
|
});
|
|
@@ -865,12 +865,12 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
865
865
|
if (!_.isEmpty(nextProps.Email.CmsSettings) && !_.isEqual(this.props.Email.CmsSettings, nextProps.Email.CmsSettings)) {
|
|
866
866
|
const apiLangId = nextProps.Email.CmsSettings.langId;
|
|
867
867
|
const langId = nextProps.Email.CmsSettings.langId !== "undefined" ? nextProps.Email.CmsSettings.langId : nextProps.Global.currentOrgDetails.basic_details.base_language;
|
|
868
|
-
|
|
868
|
+
|
|
869
869
|
const formData = _.cloneDeep(this.state.formData);
|
|
870
870
|
|
|
871
871
|
const schema = _.cloneDeep(this.state.schema);
|
|
872
872
|
const langIndex = formData[this.state.currentTab - 1].selectedLanguages.indexOf(langId);
|
|
873
|
-
|
|
873
|
+
|
|
874
874
|
const temp = (schema.containers || {})[this.state.currentTab - 1];
|
|
875
875
|
if (baseLanguage === langId && (apiLangId === "undefined" || apiLangId === formData[this.state.currentTab - 1].activeTab)) {
|
|
876
876
|
temp.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: "none"};
|
|
@@ -889,14 +889,14 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
889
889
|
}
|
|
890
890
|
_.forEach(temp.panes, (pane, index) => {
|
|
891
891
|
const tempPane = pane;
|
|
892
|
-
//
|
|
892
|
+
//
|
|
893
893
|
if (parseInt(index, 10) === parseInt(langIndex, 10)) {
|
|
894
|
-
//
|
|
894
|
+
//
|
|
895
895
|
tempPane.sections[0].inputFields[0].cols[1].colStyle = {display: ""};
|
|
896
896
|
tempPane.sections[0].inputFields[0].cols[0].colStyle = {display: "none"};
|
|
897
897
|
}
|
|
898
898
|
});
|
|
899
|
-
|
|
899
|
+
|
|
900
900
|
this.setState({schema, isSchemaChanged: true});
|
|
901
901
|
} else {
|
|
902
902
|
_.forEach(temp.panes, (pane, index) => {
|
|
@@ -906,21 +906,21 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
906
906
|
tempPane.sections[0].inputFields[0].cols[0].colStyle = {display: ""};
|
|
907
907
|
}
|
|
908
908
|
});
|
|
909
|
-
|
|
909
|
+
|
|
910
910
|
this.setState({schema, isSchemaChanged: true});
|
|
911
911
|
let html = decodeURIComponent(nextProps.Email.CmsSettings.htmlContent);
|
|
912
|
-
|
|
912
|
+
|
|
913
913
|
html = html.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/\\"/g, '"');
|
|
914
|
-
|
|
914
|
+
|
|
915
915
|
formData[this.state.currentTab - 1][langId]["template-content"] = html;
|
|
916
916
|
if (window.CKEDITOR && apiLangId !== "undefined") {
|
|
917
917
|
const instanceName = `template-content${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`;
|
|
918
|
-
|
|
918
|
+
|
|
919
919
|
_.forEach(window.CKEDITOR.instances, (winInstance) => {
|
|
920
920
|
const tempInstance = winInstance;
|
|
921
|
-
|
|
921
|
+
|
|
922
922
|
if (winInstance.name === instanceName) {
|
|
923
|
-
|
|
923
|
+
|
|
924
924
|
tempInstance.setData(html);
|
|
925
925
|
} else if (winInstance.name.indexOf('editor') !== -1) {
|
|
926
926
|
tempInstance.setData(html);
|
|
@@ -973,15 +973,15 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
973
973
|
formData.base[formData.base.activeTab]['template-content'] = decodeURIComponent(nextProps.Email.cmsData);
|
|
974
974
|
}
|
|
975
975
|
} else {
|
|
976
|
-
|
|
976
|
+
|
|
977
977
|
const langIndex = formData[this.state.currentTab - 1].selectedLanguages.indexOf(formData[this.state.currentTab - 1].activeTab);
|
|
978
978
|
const instanceName = `template-content${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`;
|
|
979
|
-
|
|
979
|
+
|
|
980
980
|
_.forEach(window.CKEDITOR.instances, (winInstance) => {
|
|
981
981
|
const temp = winInstance;
|
|
982
|
-
|
|
982
|
+
|
|
983
983
|
if (winInstance.name === instanceName) {
|
|
984
|
-
|
|
984
|
+
|
|
985
985
|
temp.setData(decodeURIComponent(nextProps.Email.cmsData));
|
|
986
986
|
} else if (winInstance.name.indexOf('editor') !== -1) {
|
|
987
987
|
temp.setData(decodeURIComponent(nextProps.Email.cmsData));
|
|
@@ -997,9 +997,9 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
997
997
|
formData.base[formData.base.activeTab].drag_drop_id = "";
|
|
998
998
|
delete formData.base[formData.base.activeTab].edmeditorsrc;
|
|
999
999
|
}
|
|
1000
|
-
|
|
1000
|
+
|
|
1001
1001
|
}
|
|
1002
|
-
|
|
1002
|
+
|
|
1003
1003
|
this.setState({ formData }, () => {
|
|
1004
1004
|
if (nextProps.Email.langId) {
|
|
1005
1005
|
this.shouldStartValidation();
|
|
@@ -1008,7 +1008,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1008
1008
|
}
|
|
1009
1009
|
|
|
1010
1010
|
if ( !_.isEqual(nextProps.Email.uploadAssetSuccess, this.props.Email.uploadAssetSuccess) && nextProps.Email.uploadAssetSuccess) {
|
|
1011
|
-
|
|
1011
|
+
|
|
1012
1012
|
const isDragDrop = this.state.formData[`${this.state.currentTab - 1}`][this.state.formData[`${this.state.currentTab - 1}`].activeTab].is_drag_drop;
|
|
1013
1013
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
1014
1014
|
if (isDragDrop && isEdmSupport) {
|
|
@@ -1059,14 +1059,14 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1059
1059
|
}
|
|
1060
1060
|
|
|
1061
1061
|
componentWillUnmount() {
|
|
1062
|
-
|
|
1062
|
+
|
|
1063
1063
|
this.resetStateValue();
|
|
1064
1064
|
window.removeEventListener("message", this.handleFrameTasks);
|
|
1065
1065
|
this.props.actions.clearStoreValues();
|
|
1066
1066
|
}
|
|
1067
1067
|
|
|
1068
1068
|
onFormDataChange = (formData, tabCount, currentTab) => {
|
|
1069
|
-
|
|
1069
|
+
|
|
1070
1070
|
// this.transformFormData(formData);
|
|
1071
1071
|
this.setState({formData, tabCount, isSchemaChanged: false});
|
|
1072
1072
|
if (currentTab) {
|
|
@@ -1082,12 +1082,12 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1082
1082
|
// _.forEach(window.CKEDITOR.instances, (winInstance) => {
|
|
1083
1083
|
// const temp = winInstance;
|
|
1084
1084
|
// if (winInstance.name === evt.editor.name) {
|
|
1085
|
-
//
|
|
1085
|
+
//
|
|
1086
1086
|
// setTimeout(() => {
|
|
1087
1087
|
// //temp.name = id;
|
|
1088
1088
|
// }, 1000);
|
|
1089
1089
|
// //temp.name = id;
|
|
1090
|
-
//
|
|
1090
|
+
//
|
|
1091
1091
|
// }
|
|
1092
1092
|
// });
|
|
1093
1093
|
//}
|
|
@@ -1096,19 +1096,19 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1096
1096
|
if (formData[`${this.state.currentTab - 1}`].tabKey === formData.base.tabKey) {
|
|
1097
1097
|
formData.base[formData[`${this.state.currentTab - 1}`].activeTab][`template-content`] = _.cloneDeep(evt.editor.getData());
|
|
1098
1098
|
}
|
|
1099
|
-
|
|
1099
|
+
|
|
1100
1100
|
this.setState({formData, content: evt.editor.getData()}, () => {
|
|
1101
|
-
|
|
1101
|
+
|
|
1102
1102
|
});
|
|
1103
1103
|
}
|
|
1104
1104
|
}
|
|
1105
1105
|
|
|
1106
1106
|
onBlur = (evt) => {
|
|
1107
|
-
|
|
1107
|
+
|
|
1108
1108
|
}
|
|
1109
1109
|
|
|
1110
1110
|
onTabChange(data, formData) {
|
|
1111
|
-
|
|
1111
|
+
|
|
1112
1112
|
//this.resetCkEditorInstance(data, formData);
|
|
1113
1113
|
const schema = _.cloneDeep(this.state.schema);
|
|
1114
1114
|
const container = schema.containers[`${data - 1}`];
|
|
@@ -1129,15 +1129,15 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1129
1129
|
}
|
|
1130
1130
|
|
|
1131
1131
|
onTemplateNameChange = (name) => {
|
|
1132
|
-
|
|
1132
|
+
|
|
1133
1133
|
}
|
|
1134
1134
|
|
|
1135
1135
|
onTagSelect = (data, currentTab, value) => {
|
|
1136
|
-
|
|
1136
|
+
|
|
1137
1137
|
const isDragDrop = this.state.formData[`${this.state.currentTab - 1}`][this.state.formData[`${this.state.currentTab - 1}`].activeTab].is_drag_drop;
|
|
1138
1138
|
const formData = _.cloneDeep(this.state.formData);
|
|
1139
1139
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
1140
|
-
|
|
1140
|
+
|
|
1141
1141
|
if (isDragDrop && isEdmSupport) {
|
|
1142
1142
|
let msg = {};
|
|
1143
1143
|
if (data === "unsubscribe") {
|
|
@@ -1161,7 +1161,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1161
1161
|
win.postMessage(msgString, '*');
|
|
1162
1162
|
}
|
|
1163
1163
|
} else {
|
|
1164
|
-
|
|
1164
|
+
|
|
1165
1165
|
if (this.state.editorInstanse) {
|
|
1166
1166
|
if (data === "unsubscribe") {
|
|
1167
1167
|
const anchor = `<a href='{{${data}}}'>${data}</a>`;
|
|
@@ -1175,7 +1175,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1175
1175
|
}
|
|
1176
1176
|
|
|
1177
1177
|
onImageSelect = (data) => {
|
|
1178
|
-
|
|
1178
|
+
|
|
1179
1179
|
this.setState({ showImageSelectionBox: true }, () => {
|
|
1180
1180
|
const params = {
|
|
1181
1181
|
name: this.state.searchText,
|
|
@@ -1187,13 +1187,13 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1187
1187
|
}
|
|
1188
1188
|
|
|
1189
1189
|
getValidationData = () => {
|
|
1190
|
-
|
|
1190
|
+
|
|
1191
1191
|
const that = this;
|
|
1192
1192
|
const formData = _.cloneDeep(this.state.formData);
|
|
1193
1193
|
_.forEach(formData, (val, index) => {
|
|
1194
1194
|
if (!isNaN(index)) {
|
|
1195
1195
|
_.forEach(val.selectedLanguages, (language) => {
|
|
1196
|
-
|
|
1196
|
+
|
|
1197
1197
|
if (val[language].is_drag_drop) {
|
|
1198
1198
|
that.props.actions.getCmsData('edm', val[language].drag_drop_id, language);
|
|
1199
1199
|
}
|
|
@@ -1207,7 +1207,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1207
1207
|
const formData = _.cloneDeep(this.state.formData);
|
|
1208
1208
|
const currentTab = this.state.currentTab - 1;
|
|
1209
1209
|
// const schema = _.cloneDeep(this.state.schema);
|
|
1210
|
-
|
|
1210
|
+
|
|
1211
1211
|
const currentTabData = formData[currentTab][this.state.settingLanguage.iso_code];
|
|
1212
1212
|
currentTabData.is_drag_drop = false;
|
|
1213
1213
|
currentTabData.drag_drop_id = "";
|
|
@@ -1218,12 +1218,12 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1218
1218
|
delete currentTabData.edmeditorsrc;
|
|
1219
1219
|
}
|
|
1220
1220
|
formData[currentTab].selectedLanguages.push(newActiveTab);
|
|
1221
|
-
|
|
1221
|
+
|
|
1222
1222
|
// this.setState({formData});
|
|
1223
1223
|
// const container = schema.containers[this.state.currentTab - 1];
|
|
1224
1224
|
// const temp = container;
|
|
1225
1225
|
// const langTab = formData[`${this.state.currentTab - 1}`].selectedLanguages.indexOf(newActiveTab);
|
|
1226
|
-
//
|
|
1226
|
+
//
|
|
1227
1227
|
// temp.panes[langTab].sections[0].inputFields[0].cols[0].colStyle = {display: ""};
|
|
1228
1228
|
// temp.panes[langTab].sections[0].inputFields[0].cols[1].colStyle = {display: "none"};
|
|
1229
1229
|
// temp.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[3].cols[0].style = {display: "none"};
|
|
@@ -1240,14 +1240,14 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1240
1240
|
this.setState({getFormDataValue: value, gettingFormData: true}, () => {
|
|
1241
1241
|
this.saveValidationData();
|
|
1242
1242
|
});
|
|
1243
|
-
//
|
|
1243
|
+
//
|
|
1244
1244
|
// const response = {
|
|
1245
1245
|
// action: "getFormData",
|
|
1246
1246
|
// postAction: value || 'next',
|
|
1247
1247
|
// value: this.transformFormData(this.state.formData),
|
|
1248
1248
|
// validity: this.state.isFormValid,
|
|
1249
1249
|
// };
|
|
1250
|
-
//
|
|
1250
|
+
//
|
|
1251
1251
|
// this.setState({checkValidation: true});
|
|
1252
1252
|
// if (e) {
|
|
1253
1253
|
// e.source.postMessage(JSON.stringify(response), e.origin);
|
|
@@ -1260,7 +1260,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1260
1260
|
}
|
|
1261
1261
|
|
|
1262
1262
|
setEditData(editData) {
|
|
1263
|
-
|
|
1263
|
+
|
|
1264
1264
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
1265
1265
|
const formData = _.cloneDeep(this.state.formData);
|
|
1266
1266
|
|
|
@@ -1293,7 +1293,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1293
1293
|
} else if (sect.type === 'parent') {
|
|
1294
1294
|
sect = this.cloneParent(sect, index, true);
|
|
1295
1295
|
}
|
|
1296
|
-
|
|
1296
|
+
|
|
1297
1297
|
sections.push(sect);
|
|
1298
1298
|
return true;
|
|
1299
1299
|
});
|
|
@@ -1301,7 +1301,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1301
1301
|
containers[0].panes = [];
|
|
1302
1302
|
containers[0].panes.push(firstPane);
|
|
1303
1303
|
schema.containers.push(containers[0]);
|
|
1304
|
-
|
|
1304
|
+
|
|
1305
1305
|
|
|
1306
1306
|
// _.forEach(sections[0].inputFields[0].cols, (inputField) => {
|
|
1307
1307
|
// if (this.map[inputField.id] === undefined) {
|
|
@@ -1329,21 +1329,21 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1329
1329
|
}
|
|
1330
1330
|
});
|
|
1331
1331
|
if (data.constructor === Object) {
|
|
1332
|
-
|
|
1332
|
+
|
|
1333
1333
|
if (data.tabKey === editData.versions.base.tabKey) {
|
|
1334
1334
|
tabKey = data.tabKey;
|
|
1335
1335
|
schema.containers[index].isActive = true;
|
|
1336
1336
|
formData['template-version'] = formData['template-version-options'][index].key;
|
|
1337
1337
|
currentTab = index + 1;
|
|
1338
|
-
|
|
1338
|
+
|
|
1339
1339
|
} else {
|
|
1340
1340
|
schema.containers[index].isActive = false;
|
|
1341
|
-
|
|
1341
|
+
|
|
1342
1342
|
}
|
|
1343
1343
|
// const isLanguageSupport = this.props.location.query.isLanguageSupport;
|
|
1344
|
-
|
|
1344
|
+
|
|
1345
1345
|
_.forEach(data.selectedLanguages, (lang, langIndex) => {
|
|
1346
|
-
|
|
1346
|
+
|
|
1347
1347
|
if ((type !== 'embedded' || (type === 'embedded' && isLanguageSupport === 'true')) && lang !== this.props.Global.currentOrgDetails.basic_details.base_language) {
|
|
1348
1348
|
const tabContent = _.cloneDeep(containers[0].tabContent.sections[0]);
|
|
1349
1349
|
const tabContentSection = tabContent.inputFields[0].cols[0];
|
|
@@ -1360,16 +1360,16 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1360
1360
|
} else if (sect.type === 'parent') {
|
|
1361
1361
|
sect = this.cloneParent(sect, (langIndex + 1));
|
|
1362
1362
|
}
|
|
1363
|
-
|
|
1363
|
+
|
|
1364
1364
|
sections.push(sect);
|
|
1365
1365
|
return true;
|
|
1366
1366
|
});
|
|
1367
|
-
//
|
|
1368
|
-
|
|
1367
|
+
//
|
|
1368
|
+
|
|
1369
1369
|
this.map[`template-content${data.selectedLanguages.indexOf(lang) + 1}`] = this.map['template-content'];
|
|
1370
1370
|
tabContentSection.id = `${tabContentSection.id}${index + 1}`;
|
|
1371
1371
|
tabContentSection.value = `${data[lang].language}`;
|
|
1372
|
-
|
|
1372
|
+
|
|
1373
1373
|
firstPane.sections = sections;
|
|
1374
1374
|
firstPane.sectionsHeaders = [tabContent];
|
|
1375
1375
|
console.log('firstPane final version', JSON.stringify(firstPane));
|
|
@@ -1395,9 +1395,9 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1395
1395
|
}
|
|
1396
1396
|
});
|
|
1397
1397
|
|
|
1398
|
-
|
|
1398
|
+
|
|
1399
1399
|
this.setState({ formData, schema, tabKey, currentTab, tabCount: editData.versions.history.length }, () => {
|
|
1400
|
-
|
|
1400
|
+
|
|
1401
1401
|
_.forEach((editData.versions.base.selectedLanguages), (language) => {
|
|
1402
1402
|
// if (formData[this.state.currentTab - 1].tabKey === formData[this.state.currentTab - 1][language].tabKey) {
|
|
1403
1403
|
// formData[this.state.currentTab - 1].activeTab = language;
|
|
@@ -1406,24 +1406,24 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1406
1406
|
// formData.base.activeTab = language;
|
|
1407
1407
|
// }
|
|
1408
1408
|
if (language && editData.versions.base[language].is_drag_drop) {
|
|
1409
|
-
|
|
1409
|
+
|
|
1410
1410
|
this.props.actions.getCmsSetting('edm', editData.versions.base[language].drag_drop_id, 'open', language, isEdmSupport);
|
|
1411
1411
|
}
|
|
1412
1412
|
});
|
|
1413
|
-
|
|
1413
|
+
|
|
1414
1414
|
// this.resetCkEditorInstance(this.state.currentTab - 1, formData);
|
|
1415
1415
|
// this.setState({formData});
|
|
1416
1416
|
});
|
|
1417
1417
|
}
|
|
1418
1418
|
|
|
1419
1419
|
getMappedEvent = (id, event) => {
|
|
1420
|
-
|
|
1420
|
+
|
|
1421
1421
|
const mapIdObject = this.map[id];
|
|
1422
1422
|
return mapIdObject && mapIdObject[event] ? mapIdObject[event] : () => {};
|
|
1423
1423
|
}
|
|
1424
1424
|
|
|
1425
1425
|
getCurrentWindow = (e) => {
|
|
1426
|
-
|
|
1426
|
+
|
|
1427
1427
|
const response = {
|
|
1428
1428
|
action: e.action,
|
|
1429
1429
|
value: 'edit',
|
|
@@ -1433,11 +1433,11 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1433
1433
|
}
|
|
1434
1434
|
|
|
1435
1435
|
getEditorInstanse = (instance, id) => {
|
|
1436
|
-
|
|
1436
|
+
|
|
1437
1437
|
window.CKEDITOR.on( 'instanceReady', ( event ) => {
|
|
1438
1438
|
this.setState({editorInstanse: event.editor});
|
|
1439
1439
|
event.editor.on( 'focus', () => {
|
|
1440
|
-
|
|
1440
|
+
|
|
1441
1441
|
this.setState({editorInstanse: event.editor});
|
|
1442
1442
|
});
|
|
1443
1443
|
});
|
|
@@ -1482,9 +1482,9 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1482
1482
|
|
|
1483
1483
|
shouldStartValidation = () => {
|
|
1484
1484
|
this.setState((prevState) => ({ cmsDataCount: prevState.cmsDataCount + 1}), () => {
|
|
1485
|
-
|
|
1485
|
+
|
|
1486
1486
|
if (this.state.targetSaveCount === this.state.cmsDataCount) {
|
|
1487
|
-
|
|
1487
|
+
|
|
1488
1488
|
this.setState({startValidation: true});
|
|
1489
1489
|
}
|
|
1490
1490
|
});
|
|
@@ -1500,7 +1500,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1500
1500
|
if (!isNaN(index)) {
|
|
1501
1501
|
_.forEach(newdata.selectedLanguages, (language) => {
|
|
1502
1502
|
if (newdata[language].is_drag_drop && ((parseInt(index, 10) + 1) === this.state.currentTab)) {
|
|
1503
|
-
|
|
1503
|
+
|
|
1504
1504
|
saveCount += 1;
|
|
1505
1505
|
}
|
|
1506
1506
|
});
|
|
@@ -1556,7 +1556,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1556
1556
|
showEdmEmailTemplates: false,
|
|
1557
1557
|
editDataSet: false,
|
|
1558
1558
|
}, () => {
|
|
1559
|
-
|
|
1559
|
+
|
|
1560
1560
|
});
|
|
1561
1561
|
}
|
|
1562
1562
|
|
|
@@ -1567,7 +1567,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1567
1567
|
const instanceCount = 0;
|
|
1568
1568
|
const instanceArray = [];
|
|
1569
1569
|
_.forEach(window.CKEDITOR.instances, (instance, index) => {
|
|
1570
|
-
|
|
1570
|
+
|
|
1571
1571
|
const name = instance.name;
|
|
1572
1572
|
if (instance.status === "destroyed") {
|
|
1573
1573
|
return;
|
|
@@ -1588,7 +1588,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1588
1588
|
instanceArray.push(obj);
|
|
1589
1589
|
}
|
|
1590
1590
|
});
|
|
1591
|
-
|
|
1591
|
+
|
|
1592
1592
|
instanceArray.sort( (a, b) => {
|
|
1593
1593
|
const idxA = a.idx;
|
|
1594
1594
|
const idxB = b.idx;
|
|
@@ -1599,11 +1599,11 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1599
1599
|
}
|
|
1600
1600
|
return 0;
|
|
1601
1601
|
});
|
|
1602
|
-
|
|
1602
|
+
|
|
1603
1603
|
//instanceCount += 1;
|
|
1604
1604
|
// if (instanceIdx === langIndex) {
|
|
1605
1605
|
const instance = instanceArray[langIndex].instance;
|
|
1606
|
-
|
|
1606
|
+
|
|
1607
1607
|
instance1 = instance;
|
|
1608
1608
|
this.setState({editorInstanse: instance1}, () => {
|
|
1609
1609
|
if (this.state.editorInstanse) {
|
|
@@ -1617,13 +1617,13 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1617
1617
|
}
|
|
1618
1618
|
|
|
1619
1619
|
uploadFile = () => {
|
|
1620
|
-
|
|
1620
|
+
|
|
1621
1621
|
document.getElementById('filename').click();
|
|
1622
|
-
|
|
1622
|
+
|
|
1623
1623
|
};
|
|
1624
1624
|
|
|
1625
1625
|
useEditor = () => {
|
|
1626
|
-
|
|
1626
|
+
|
|
1627
1627
|
//this.toggleEdmEmailTemplateSelection();
|
|
1628
1628
|
this.setState({addLanguageType: "useEditor"}, () => {
|
|
1629
1629
|
this.setState({showModal: false}, () => {
|
|
@@ -1634,7 +1634,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1634
1634
|
|
|
1635
1635
|
copyPrimaryLanguage = () => {
|
|
1636
1636
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
1637
|
-
|
|
1637
|
+
|
|
1638
1638
|
this.setState({addLanguageType: "copyPrimaryLanguage"}, () => {
|
|
1639
1639
|
this.setState({showModal: false});
|
|
1640
1640
|
const formData = _.cloneDeep(this.state.formData);
|
|
@@ -1652,16 +1652,16 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1652
1652
|
}
|
|
1653
1653
|
const fileExtension = files[0].name.split('.').pop();
|
|
1654
1654
|
const supportedZipFormats = ['zip'];
|
|
1655
|
-
|
|
1655
|
+
|
|
1656
1656
|
if (supportedZipFormats.indexOf(fileExtension.toLowerCase()) !== -1) {
|
|
1657
1657
|
this.setState({ addLanguageType: "upload"}, () => {
|
|
1658
|
-
|
|
1658
|
+
|
|
1659
1659
|
this.props.templatesActions.handleZipUpload(files[0]);
|
|
1660
1660
|
document.getElementById("filename").value = "";
|
|
1661
1661
|
this.setState({showModal: false});
|
|
1662
1662
|
});
|
|
1663
1663
|
} else if (fileExtension === 'html' || fileExtension === 'htm') {
|
|
1664
|
-
|
|
1664
|
+
|
|
1665
1665
|
const reader = new FileReader();
|
|
1666
1666
|
reader.onload = () => {
|
|
1667
1667
|
this.setState({ addLanguageType: "upload"}, () => {
|
|
@@ -1674,7 +1674,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1674
1674
|
reader.readAsText(files[0]);
|
|
1675
1675
|
} else {
|
|
1676
1676
|
alert(this.props.intl.formatMessage(messages.invalidFileMessage));
|
|
1677
|
-
|
|
1677
|
+
|
|
1678
1678
|
}
|
|
1679
1679
|
};
|
|
1680
1680
|
|
|
@@ -1751,20 +1751,20 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1751
1751
|
|
|
1752
1752
|
deleteLanguage = (passedData, val) => {
|
|
1753
1753
|
const formData = _.cloneDeep(passedData);
|
|
1754
|
-
|
|
1754
|
+
|
|
1755
1755
|
const schema = _.cloneDeep(this.state.schema);
|
|
1756
1756
|
schema.containers[this.state.currentTab - 1].panes.splice(val, 1);
|
|
1757
1757
|
schema.containers[this.state.currentTab - 1].tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[2].cols[0].style = {display: "none"};
|
|
1758
1758
|
//this.resetCkEditorInstance(this.state.currentTab, formData);
|
|
1759
1759
|
this.setState({schema, formData, showModal: false});
|
|
1760
|
-
|
|
1760
|
+
|
|
1761
1761
|
}
|
|
1762
1762
|
|
|
1763
1763
|
initFormData(props, fromMount) {
|
|
1764
|
-
|
|
1764
|
+
|
|
1765
1765
|
let newFormData = {};
|
|
1766
1766
|
if (props.Global.currentOrgDetails && props.Global.currentOrgDetails.basic_details) {
|
|
1767
|
-
|
|
1767
|
+
|
|
1768
1768
|
newFormData = {
|
|
1769
1769
|
"0": {},
|
|
1770
1770
|
"template-name": "",
|
|
@@ -1794,7 +1794,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1794
1794
|
}
|
|
1795
1795
|
|
|
1796
1796
|
transformFormData = (formData) => {
|
|
1797
|
-
|
|
1797
|
+
|
|
1798
1798
|
const newFormData = {
|
|
1799
1799
|
base: {},
|
|
1800
1800
|
secondary_templates: [],
|
|
@@ -1819,23 +1819,23 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1819
1819
|
newFormData.base = _.cloneDeep(tmpData);
|
|
1820
1820
|
}
|
|
1821
1821
|
newFormData.secondary_templates.push({template_data: tmpData});
|
|
1822
|
-
|
|
1822
|
+
|
|
1823
1823
|
}
|
|
1824
1824
|
});
|
|
1825
1825
|
if (this.props.location.query.type === 'embedded' && (this.props.location.query.module === "loyalty" || this.props.location.query.module === "dvs" || this.props.location.query.module === "coupon_expiry" || this.props.location.query.module === "timeline" || this.props.location.query.module === "library")) {
|
|
1826
1826
|
newFormData.base.subject = formData['template-subject'];
|
|
1827
1827
|
}
|
|
1828
1828
|
|
|
1829
|
-
|
|
1829
|
+
|
|
1830
1830
|
return newFormData;
|
|
1831
1831
|
}
|
|
1832
1832
|
|
|
1833
1833
|
handleFrameTasks = (e) => {
|
|
1834
|
-
|
|
1834
|
+
|
|
1835
1835
|
const type = this.isValidJson(e.data) ? JSON.parse(e.data) : e.data;
|
|
1836
|
-
|
|
1836
|
+
|
|
1837
1837
|
if (typeof type === 'object') {
|
|
1838
|
-
|
|
1838
|
+
|
|
1839
1839
|
const action = type.action;
|
|
1840
1840
|
switch (action) {
|
|
1841
1841
|
case "startTemplateCreation":
|
|
@@ -1844,14 +1844,14 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1844
1844
|
case "edit":
|
|
1845
1845
|
this.edmEvent = e;
|
|
1846
1846
|
if (type.elementJson.type === "IMAGE") {
|
|
1847
|
-
|
|
1847
|
+
|
|
1848
1848
|
this.onImageSelect();
|
|
1849
1849
|
}
|
|
1850
1850
|
break;
|
|
1851
1851
|
case "editBackground":
|
|
1852
1852
|
this.edmEvent = e;
|
|
1853
1853
|
if (type.elementJson.type === "BOX" || type.elementJson.type === "BUTTON" || type.elementJson.type === "GENERAL") {
|
|
1854
|
-
|
|
1854
|
+
|
|
1855
1855
|
this.onImageSelect();
|
|
1856
1856
|
}
|
|
1857
1857
|
break;
|
|
@@ -1874,21 +1874,21 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1874
1874
|
break;
|
|
1875
1875
|
}
|
|
1876
1876
|
} else {
|
|
1877
|
-
|
|
1877
|
+
|
|
1878
1878
|
switch (type) {
|
|
1879
1879
|
case "getFormData":
|
|
1880
1880
|
this.getFormData(e);
|
|
1881
1881
|
break;
|
|
1882
1882
|
case "startTemplateCreation":
|
|
1883
|
-
|
|
1883
|
+
|
|
1884
1884
|
//this.getFormData(e);
|
|
1885
1885
|
break;
|
|
1886
1886
|
case "moveToTemplates":
|
|
1887
|
-
|
|
1887
|
+
|
|
1888
1888
|
this.moveToTemplates();
|
|
1889
1889
|
break;
|
|
1890
1890
|
case "validateContent":
|
|
1891
|
-
|
|
1891
|
+
|
|
1892
1892
|
this.validateContent(e);
|
|
1893
1893
|
break;
|
|
1894
1894
|
case "Save result: success":
|
|
@@ -1913,10 +1913,10 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1913
1913
|
}
|
|
1914
1914
|
|
|
1915
1915
|
handleEdmSave = () => {
|
|
1916
|
-
|
|
1916
|
+
|
|
1917
1917
|
if (this.state.mode === "save") {
|
|
1918
1918
|
this.setState((prevState) => ({ saveCount: prevState.saveCount + 1}), () => {
|
|
1919
|
-
|
|
1919
|
+
|
|
1920
1920
|
if (this.state.targetSaveCount === this.state.saveCount) {
|
|
1921
1921
|
if (this.state.saveEdmDataMode === 'validation') {
|
|
1922
1922
|
this.getValidationData();
|
|
@@ -1934,14 +1934,14 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1934
1934
|
if (parseInt(index, 10) === (this.state.currentTab - 1)) {
|
|
1935
1935
|
const temp = container;
|
|
1936
1936
|
const langTab = formData[`${this.state.currentTab - 1}`].selectedLanguages.indexOf(formData[`${this.state.currentTab - 1}`].activeTab);
|
|
1937
|
-
|
|
1937
|
+
|
|
1938
1938
|
temp.panes[langTab].sections[0].inputFields[0].cols[0].colStyle = {display: ""};
|
|
1939
1939
|
temp.panes[langTab].sections[0].inputFields[0].cols[1].colStyle = {display: "none"};
|
|
1940
1940
|
temp.tabBarExtraContent.sections[0].inputFields[0].cols[4].content.sections[0].inputFields[3].cols[0].style = {display: "none"};
|
|
1941
1941
|
}
|
|
1942
1942
|
});
|
|
1943
1943
|
schema = this.showInsertImageButton(schema);
|
|
1944
|
-
|
|
1944
|
+
|
|
1945
1945
|
this.setState({ schema, showConfirmationModal: false, isSchemaChanged: true }, () => {
|
|
1946
1946
|
this.injectEvents(schema);
|
|
1947
1947
|
});
|
|
@@ -1954,20 +1954,20 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1954
1954
|
}
|
|
1955
1955
|
|
|
1956
1956
|
handleContentChange = (data) => {
|
|
1957
|
-
|
|
1957
|
+
|
|
1958
1958
|
const formData = _.cloneDeep(this.state.formData);
|
|
1959
1959
|
formData[this.state.currentTab][formData[this.state.currentTab - 1].activeTab]["template-content"] = data;
|
|
1960
1960
|
this.setState({formData});
|
|
1961
1961
|
}
|
|
1962
1962
|
|
|
1963
1963
|
handleOnHoverItem = (isHovering, id) => {
|
|
1964
|
-
|
|
1964
|
+
|
|
1965
1965
|
if (!isHovering) {
|
|
1966
1966
|
// const data = _.find(this.props.Email.assetList, {_id: id});
|
|
1967
|
-
//
|
|
1967
|
+
//
|
|
1968
1968
|
// if (data) {
|
|
1969
1969
|
// if (this.state.isDragDrop) {
|
|
1970
|
-
//
|
|
1970
|
+
//
|
|
1971
1971
|
// } else {
|
|
1972
1972
|
// this.state.editorInstanse.insertHtml(`<img src='${data.metaInfo.public_url}' alt='Capillary Image'>`);
|
|
1973
1973
|
// }
|
|
@@ -2027,12 +2027,12 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2027
2027
|
}
|
|
2028
2028
|
|
|
2029
2029
|
handleOnItemClick = (isSelected, id) => {
|
|
2030
|
-
|
|
2030
|
+
|
|
2031
2031
|
const isDragDrop = this.state.formData[`${this.state.currentTab - 1}`][this.state.formData[`${this.state.currentTab - 1}`].activeTab].is_drag_drop;
|
|
2032
2032
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
2033
2033
|
if (isSelected) {
|
|
2034
2034
|
const data = _.find(this.props.Email.assetList, {_id: id});
|
|
2035
|
-
|
|
2035
|
+
|
|
2036
2036
|
if (data) {
|
|
2037
2037
|
if (isDragDrop && isEdmSupport) {
|
|
2038
2038
|
console.log('Handle EDM ', isSelected, id, this.edmEvent, JSON.parse(this.edmEvent.data)._dynId, data.metaInfo.secure_file_path);
|
|
@@ -2094,15 +2094,15 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2094
2094
|
}
|
|
2095
2095
|
|
|
2096
2096
|
handleVersionSelect = (status, formData, val) => {
|
|
2097
|
-
|
|
2097
|
+
|
|
2098
2098
|
const newFormData = _.cloneDeep(this.state.formData);
|
|
2099
2099
|
const schema = _.cloneDeep(this.state.schema);
|
|
2100
2100
|
const versionIndex = _.findIndex(formData['template-version-options'], {key: status});
|
|
2101
2101
|
newFormData['template-version'] = formData['template-version-options'][versionIndex].key;
|
|
2102
|
-
|
|
2102
|
+
|
|
2103
2103
|
const newContainers = [];
|
|
2104
2104
|
_.forEach(schema.containers, (container, index) => {
|
|
2105
|
-
|
|
2105
|
+
|
|
2106
2106
|
const tmpContainer = _.cloneDeep(container);
|
|
2107
2107
|
if (index === versionIndex) {
|
|
2108
2108
|
tmpContainer.isActive = true;
|
|
@@ -2116,11 +2116,11 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2116
2116
|
}
|
|
2117
2117
|
|
|
2118
2118
|
afterPaste = (evt) => {
|
|
2119
|
-
|
|
2119
|
+
|
|
2120
2120
|
}
|
|
2121
2121
|
|
|
2122
2122
|
deleteVersion = (data, currentTab) => {
|
|
2123
|
-
|
|
2123
|
+
|
|
2124
2124
|
if (this.state.tabCount === 1 || currentTab === 1) {
|
|
2125
2125
|
return;
|
|
2126
2126
|
}
|
|
@@ -2131,27 +2131,27 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2131
2131
|
delete formData[`${currentTab - 1}`];
|
|
2132
2132
|
formData['template-version-options'].splice(`${currentTab - 1}`, 1);
|
|
2133
2133
|
formData['template-version'] = formData['template-version-options'][0].value;
|
|
2134
|
-
|
|
2134
|
+
|
|
2135
2135
|
this.setState({schema, tabCount: (this.state.tabCount - 1), currentTab: 1, isSchemaChanged: true, showModal: false});
|
|
2136
2136
|
}
|
|
2137
2137
|
|
|
2138
2138
|
switchEditor = () => {
|
|
2139
|
-
|
|
2139
|
+
|
|
2140
2140
|
this.setState({showConfirmationModal: true});
|
|
2141
2141
|
}
|
|
2142
2142
|
|
|
2143
2143
|
renameVersion = (data, currentTab) => {
|
|
2144
|
-
|
|
2144
|
+
|
|
2145
2145
|
}
|
|
2146
2146
|
|
|
2147
2147
|
markFinalVersion = (data, currentTab) => {
|
|
2148
2148
|
const message = getMessageObject('success', this.props.intl.formatMessage(messages["Template Marked as Final Successfully"]), true);
|
|
2149
2149
|
this.props.globalActions.addMessageToQueue(message);
|
|
2150
|
-
|
|
2150
|
+
|
|
2151
2151
|
}
|
|
2152
2152
|
|
|
2153
2153
|
duplicateVersion = (formData, currentTab) => {
|
|
2154
|
-
|
|
2154
|
+
|
|
2155
2155
|
this.setState({formData}, () => {
|
|
2156
2156
|
this.addVersion(this.state.tabCount);
|
|
2157
2157
|
});
|
|
@@ -2162,7 +2162,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2162
2162
|
alert(this.props.intl.formatMessage(messages.moreThanFiveVersionNotAllowed));
|
|
2163
2163
|
return;
|
|
2164
2164
|
}
|
|
2165
|
-
|
|
2165
|
+
|
|
2166
2166
|
const schema = _.cloneDeep(this.state.schema);
|
|
2167
2167
|
const tabIndex = schema.containers.length + 1; //data + 1;
|
|
2168
2168
|
const formData = _.cloneDeep(this.state.formData);
|
|
@@ -2180,7 +2180,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2180
2180
|
} else if (sect.type === 'parent') {
|
|
2181
2181
|
sect = this.cloneParent(sect, tabIndex);
|
|
2182
2182
|
}
|
|
2183
|
-
|
|
2183
|
+
|
|
2184
2184
|
sections.push(sect);
|
|
2185
2185
|
return true;
|
|
2186
2186
|
});
|
|
@@ -2192,7 +2192,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2192
2192
|
_.forEach(schema.containers, (container, index) => {
|
|
2193
2193
|
schema.containers[index].isActive = ((index + 1) === this.state.currentTab);
|
|
2194
2194
|
});
|
|
2195
|
-
|
|
2195
|
+
|
|
2196
2196
|
|
|
2197
2197
|
_.forEach(sections[0].inputFields[0].cols, (inputField) => {
|
|
2198
2198
|
if (this.map[inputField.id] === undefined) {
|
|
@@ -2222,9 +2222,9 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2222
2222
|
addLanguage = (tempLang, passedData, val, asyncLanguages) => {
|
|
2223
2223
|
if (this.state.addLanguageType === "upload") {
|
|
2224
2224
|
this.setState({languageDataSet: true}, () => {
|
|
2225
|
-
|
|
2225
|
+
|
|
2226
2226
|
if (this.props.Templates.selectedEmailLayout && this.props.Templates.selectedEmailLayout !== '') {
|
|
2227
|
-
|
|
2227
|
+
|
|
2228
2228
|
this.setNewLanguageContent(this.props.Templates.selectedEmailLayout);
|
|
2229
2229
|
}
|
|
2230
2230
|
});
|
|
@@ -2251,7 +2251,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2251
2251
|
}
|
|
2252
2252
|
const selectedLanguage = formData[`${this.state.currentTab - 1}`].selectedLanguages.indexOf(data.iso_code);
|
|
2253
2253
|
tabKey = formData[`${this.state.currentTab - 1}`][data.iso_code].tabKey;
|
|
2254
|
-
|
|
2254
|
+
|
|
2255
2255
|
const tabIndex = (selectedLanguage) + 1;
|
|
2256
2256
|
const containers = schema.containers.slice();
|
|
2257
2257
|
const tabContent = _.cloneDeep(containers[0].tabContent.sections[0]);
|
|
@@ -2269,14 +2269,14 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2269
2269
|
} else if (sect.type === 'parent') {
|
|
2270
2270
|
sect = this.cloneParent(sect, tabIndex);
|
|
2271
2271
|
}
|
|
2272
|
-
|
|
2272
|
+
|
|
2273
2273
|
sections.push(sect);
|
|
2274
2274
|
return true;
|
|
2275
2275
|
});
|
|
2276
|
-
|
|
2276
|
+
|
|
2277
2277
|
tabContentSection.id = `${tabContentSection.id}${tabIndex}`;
|
|
2278
2278
|
tabContentSection.value = `${data.language}`;
|
|
2279
|
-
|
|
2279
|
+
|
|
2280
2280
|
_.forEach(sections[0].inputFields[0].cols, (inputField) => {
|
|
2281
2281
|
if (this.map[inputField.id] === undefined) {
|
|
2282
2282
|
if (inputField.id.indexOf('template-content') > -1) {
|
|
@@ -2293,12 +2293,12 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2293
2293
|
console.log('initial panes', JSON.stringify(this.state.schema.containers));
|
|
2294
2294
|
schema.containers[`${this.state.currentTab - 1}`].panes.push(firstPane);
|
|
2295
2295
|
// schema.containers[0].tabContent.sections.push(tabContent);
|
|
2296
|
-
|
|
2296
|
+
|
|
2297
2297
|
}
|
|
2298
2298
|
//this.props.templatesActions.getEdmDefaultTemplates();
|
|
2299
2299
|
const container = schema.containers[this.state.currentTab - 1];
|
|
2300
2300
|
const temp = container;
|
|
2301
|
-
|
|
2301
|
+
|
|
2302
2302
|
if (this.state.addLanguageType === "upload") {
|
|
2303
2303
|
temp.panes[langTab].sections[0].inputFields[0].cols[0].colStyle = {display: ""};
|
|
2304
2304
|
temp.panes[langTab].sections[0].inputFields[0].cols[1].colStyle = {display: "none"};
|
|
@@ -2322,7 +2322,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2322
2322
|
}
|
|
2323
2323
|
|
|
2324
2324
|
openPreviewMode = (selectedAsset) => {
|
|
2325
|
-
|
|
2325
|
+
|
|
2326
2326
|
const asset = selectedAsset;
|
|
2327
2327
|
asset.showButtons = asset.showButtons ? !asset.showButtons : true;
|
|
2328
2328
|
this.setState({selectedAsset: asset});
|
|
@@ -2342,18 +2342,18 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2342
2342
|
} else if (childSection.type === 'parent') {
|
|
2343
2343
|
sect = this.cloneParent(childSection, tabIndex, noSuffix);
|
|
2344
2344
|
}
|
|
2345
|
-
|
|
2345
|
+
|
|
2346
2346
|
childSections.push(sect);
|
|
2347
2347
|
return true;
|
|
2348
2348
|
});
|
|
2349
2349
|
console.log('returning cloned parent section final 1', JSON.stringify(childSections));
|
|
2350
2350
|
parentsect.childSections = childSections;
|
|
2351
|
-
|
|
2351
|
+
|
|
2352
2352
|
return _.cloneDeep(parentsect);
|
|
2353
2353
|
}
|
|
2354
2354
|
|
|
2355
2355
|
cloneColLabel = (sectionObj, tabIndex, noSuffix) => {
|
|
2356
|
-
|
|
2356
|
+
|
|
2357
2357
|
const section = _.cloneDeep(sectionObj);
|
|
2358
2358
|
const inputFields = _.forEach(section.inputFields, (inputField) => {
|
|
2359
2359
|
const inputF = inputField;
|
|
@@ -2362,12 +2362,12 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2362
2362
|
return inputF;
|
|
2363
2363
|
});
|
|
2364
2364
|
section.inputFields = inputFields;
|
|
2365
|
-
|
|
2365
|
+
|
|
2366
2366
|
return section;
|
|
2367
2367
|
}
|
|
2368
2368
|
|
|
2369
2369
|
cloneMultiCol = (sectionObj, tabIndex, noSuffix) => {
|
|
2370
|
-
|
|
2370
|
+
|
|
2371
2371
|
const section = _.cloneDeep(sectionObj);
|
|
2372
2372
|
const inputFields = _.forEach(section.inputFields, (inputField) => {
|
|
2373
2373
|
const inputF = inputField;
|
|
@@ -2381,7 +2381,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2381
2381
|
return inputF;
|
|
2382
2382
|
});
|
|
2383
2383
|
section.inputFields = inputFields;
|
|
2384
|
-
|
|
2384
|
+
|
|
2385
2385
|
return section;
|
|
2386
2386
|
}
|
|
2387
2387
|
|
|
@@ -2403,7 +2403,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2403
2403
|
}
|
|
2404
2404
|
|
|
2405
2405
|
showNext = () => {
|
|
2406
|
-
|
|
2406
|
+
|
|
2407
2407
|
const response = {
|
|
2408
2408
|
action: "showNext",
|
|
2409
2409
|
value: true,
|
|
@@ -2412,7 +2412,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2412
2412
|
}
|
|
2413
2413
|
|
|
2414
2414
|
moveToTemplates = () => {
|
|
2415
|
-
|
|
2415
|
+
|
|
2416
2416
|
const modalContent = {
|
|
2417
2417
|
title: this.props.intl.formatMessage(messages.alertMessage),
|
|
2418
2418
|
body: this.props.intl.formatMessage(messages.goBackConfirmation),
|
|
@@ -2441,7 +2441,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2441
2441
|
}
|
|
2442
2442
|
|
|
2443
2443
|
prepareImageData() {
|
|
2444
|
-
|
|
2444
|
+
|
|
2445
2445
|
const data = [];
|
|
2446
2446
|
const assetList = this.props.Email.assetList;
|
|
2447
2447
|
_.forEach(assetList, (asset) => {
|
|
@@ -2579,7 +2579,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2579
2579
|
}
|
|
2580
2580
|
|
|
2581
2581
|
handleOnTagsContextChange = (data) => {
|
|
2582
|
-
|
|
2582
|
+
|
|
2583
2583
|
const query = {
|
|
2584
2584
|
layout: 'EMAIL',
|
|
2585
2585
|
type: 'TAG',
|
|
@@ -2639,7 +2639,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2639
2639
|
}
|
|
2640
2640
|
|
|
2641
2641
|
startTemplateCreation(data) {
|
|
2642
|
-
|
|
2642
|
+
|
|
2643
2643
|
if (_.isEmpty(data)) {
|
|
2644
2644
|
return;
|
|
2645
2645
|
}
|
|
@@ -2647,9 +2647,9 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2647
2647
|
|
|
2648
2648
|
//const data = {"base":{"subject":"deded","html_content":"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html> <head> \t<title>Scheduled Report</title> \t<meta http-equiv=\"Content-Type\" content=\"text/html charset=UTF-8\"/> \t<style type=\"text/css\">.container-main p{line-height: 1.6;}@media screen and (max-width: 480px){a.brand{font-size: 35px;}}@media screen and (max-width: 480px){.container-main a{text-align: center;}a.brand{text-align: center;}}a.brand img{vertical-align: middle; padding: 0 8px 0 0; width: 250px;}@media screen and (max-width: 480px){a.brand img{width: 220px !important;}}@media screen and (max-width: 480px){.container-content{padding: 15px 20px; font-size: 12px !important;} .email-footer{font-size: 12px !important;}}.container-content table{border-collapse: collapse;}.container-content table tr td p{margin: 5px;}.container-content table tr td p span{font-weight: bold; padding: 0 3px 0 0;}@media screen and (max-width: 480px){a.btn-view-reports{margin: 25px auto 10px;}}a.btn-view-reports:hover{background: grey; color: #fff;}.email-footer p{text-align: center; font-size: 12px; color: grey;}.email-footer p a{color: blue; cursor: pointer;}.email-footer p a:hover{color: grey;} \t</style> </head> <body><center>\n\t\t\t\t\t\t\t\t\t\tIf you have difficulties viewing this mail, click\n\t\t\t\t\t\t\t\t\t\t<a href=\"https://nightly.capillary.in/business_controller/campaigns/emails/links/view.php?utrack={{user_id_b64}}&mtrack={{outbox_id_b64}}\" style = \"text-decoration: underline;color: #369;\" target=\"_blank\">here</a><br/>\n\t\t\t\t\t\t\t\t\t</center> <table class=\"container-main\" style=\"background:#eeeeee; color:#000000; font-family:'Open Sans',sans-serif; font-size:16px; font-weight:400; margin:0 auto; max-width:978px; padding:15px; width:100%\"> \t<tbody> \t\t<tr> \t\t\t<td> \t\t\t<table class=\"email-header\" style=\"background:#ffffff; margin:0 0 5px; padding:17px 0; width:100%\"> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td style=\"width:100%\"><a class=\"brand\" href=\"#\" style=\"display: table; margin: 0 auto; text-decoration: none; font-size: 37px; color: grey;\"><img alt=\"Capillary Technologies\" src=\"https://s3.amazonaws.com/fileservice.in/intouch_creative_assets/60221e2020ba572f6787.png\" /> </a></td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<div class=\"container-content\" style=\"background:#ffffff; padding:20px 35px\"> \t\t\t<p>Hi Ashish Karan,</p> \t\t\t<p>You've received a new scheduled report. {{unsubscribe}}</p> \t\t\t<table> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Org Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>autotest1</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Scheduled Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>Schedule Test</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Time Period: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>1st Jan, 2017 to 24th Sep, 2017</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Report Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>redDart Report</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<p style=\"font-size:15px; margin-top:25px\">By clicking "View Report" you will be redirected to Capillary Analytics to view the automated report.</p> \t\t\t<a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91?snapshot=59c8bce750f4e75ec8b0d24c\" style=\"background: #009e0f; text-align: center; color: #fff; font-size: 16px; padding: 10px 25px; cursor: pointer; text-decoration: none; display: block; width: 120px; margin: 25px auto 15px;\" target=\"_blank\">View Report</a></div> \t\t\t<div class=\"email-footer\"> \t\t\t<p style=\"color:grey; font-size:12px; text-align:center\">You've received this mail because you subscribed to Schedule Test schedule of redDart Report. <a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91/schedule/59c8bce750f4e75ec8b0d24c/unsubscribeSchedule\" style=\"color: blue; cursor: pointer;\" target=\"_blank\">Unsubscribe</a></p> \t\t\t<p><a href=\"http://capillarytech.com/privacy-policy/\" target=\"_blank\">Privacy Policy</a> | <a href=\"http://capillarytech.com/about-us/\" target=\"_blank\">About Capillary</a></p> \t\t\t</div> \t\t\t</td> \t\t</tr> \t</tbody> </table> </body> </html> ","is_drag_drop":false,"drag_drop_id":null},"secondary_templates":[{"is_preview_generated":null,"preview_url":null,"is_favourite":null,"is_drag_drop":false,"drag_drop_id":null,"scope":null,"tag":null,"is_default":null,"html_content":"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html> <head> \t<title>Scheduled Report</title> \t<meta http-equiv=\"Content-Type\" content=\"text/html charset=UTF-8\"/> \t<style type=\"text/css\">.container-main p{line-height: 1.6;}@media screen and (max-width: 480px){a.brand{font-size: 35px;}}@media screen and (max-width: 480px){.container-main a{text-align: center;}a.brand{text-align: center;}}a.brand img{vertical-align: middle; padding: 0 8px 0 0; width: 250px;}@media screen and (max-width: 480px){a.brand img{width: 220px !important;}}@media screen and (max-width: 480px){.container-content{padding: 15px 20px; font-size: 12px !important;} .email-footer{font-size: 12px !important;}}.container-content table{border-collapse: collapse;}.container-content table tr td p{margin: 5px;}.container-content table tr td p span{font-weight: bold; padding: 0 3px 0 0;}@media screen and (max-width: 480px){a.btn-view-reports{margin: 25px auto 10px;}}a.btn-view-reports:hover{background: grey; color: #fff;}.email-footer p{text-align: center; font-size: 12px; color: grey;}.email-footer p a{color: blue; cursor: pointer;}.email-footer p a:hover{color: grey;} \t</style> </head> <body><center>\n\t\t\t\t\t\t\t\t\t\tIf you have difficulties viewing this mail, click\n\t\t\t\t\t\t\t\t\t\t<a href=\"https://nightly.capillary.in/business_controller/campaigns/emails/links/view.php?utrack={{user_id_b64}}&mtrack={{outbox_id_b64}}\" style = \"text-decoration: underline;color: #369;\" target=\"_blank\">here</a><br/>\n\t\t\t\t\t\t\t\t\t</center> <table class=\"container-main\" style=\"background:#eeeeee; color:#000000; font-family:'Open Sans',sans-serif; font-size:16px; font-weight:400; margin:0 auto; max-width:978px; padding:15px; width:100%\"> \t<tbody> \t\t<tr> \t\t\t<td> \t\t\t<table class=\"email-header\" style=\"background:#ffffff; margin:0 0 5px; padding:17px 0; width:100%\"> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td style=\"width:100%\"><a class=\"brand\" href=\"#\" style=\"display: table; margin: 0 auto; text-decoration: none; font-size: 37px; color: grey;\"><img alt=\"Capillary Technologies\" src=\"https://s3.amazonaws.com/fileservice.in/intouch_creative_assets/60221e2020ba572f6787.png\" /> </a></td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<div class=\"container-content\" style=\"background:#ffffff; padding:20px 35px\"> \t\t\t<p>Hi Ashish Karan,</p> \t\t\t<p>You've received a new scheduled report. {{unsubscribe}}</p> \t\t\t<table> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Org Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>autotest1</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Scheduled Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>Schedule Test</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Time Period: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>1st Jan, 2017 to 24th Sep, 2017</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Report Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>redDart Report</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<p style=\"font-size:15px; margin-top:25px\">By clicking "View Report" you will be redirected to Capillary Analytics to view the automated report.</p> \t\t\t<a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91?snapshot=59c8bce750f4e75ec8b0d24c\" style=\"background: #009e0f; text-align: center; color: #fff; font-size: 16px; padding: 10px 25px; cursor: pointer; text-decoration: none; display: block; width: 120px; margin: 25px auto 15px;\" target=\"_blank\">View Report</a></div> \t\t\t<div class=\"email-footer\"> \t\t\t<p style=\"color:grey; font-size:12px; text-align:center\">You've received this mail because you subscribed to Schedule Test schedule of redDart Report. <a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91/schedule/59c8bce750f4e75ec8b0d24c/unsubscribeSchedule\" style=\"color: blue; cursor: pointer;\" target=\"_blank\">Unsubscribe</a></p> \t\t\t<p><a href=\"http://capillarytech.com/privacy-policy/\" target=\"_blank\">Privacy Policy</a> | <a href=\"http://capillarytech.com/about-us/\" target=\"_blank\">About Capillary</a></p> \t\t\t</div> \t\t\t</td> \t\t</tr> \t</tbody> </table> </body> </html> ","secondary_template_id":"9500","is_base_template":1,"language_name":"English","language":"English","lang_id":"69"}],"edit":true,"tags":[]};
|
|
2649
2649
|
// const data = {edit: true, "base":{"subject":"testsubject","html_content":"<html> <head> \t<meta charset=\"utf-8\" /> \t<title>Aster Secure</title> \t<style type=\"text/css\">#outlook a { padding: 0; } body { width: 100% !important; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; margin: 0; padding: 0;} .ExternalClass { width: 100%; } .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div { line-height: 100%; } #backgroundTable { margin: 0; padding: 0; width: 100% !important; line-height: 100% !important; } img { outline: none; text-decoration: none; border: none; -ms-interpolation-mode: bicubic; } a img { border: none; } .image_fix { display: block; } p { margin: 0px 0px !important; } table td { border-collapse: collapse; } table { border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; } table[class=full] { width: 100%; clear: both; } table[class=spacetable] { height: 176px; } table[class=spacetable1] { height: 431px; } table[class=spacetable2] { height: 50px; } table[class=spacetable3] { height: 55px; } \t @media only screen and (min-width: 320px) and (max-width: 540px) { a[href^=\"tel\"], a[href^=\"sms\"] { text-decoration: none; color: #ffffff; pointer-events: none; cursor: default; } .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] { text-decoration: default; color: #ffffff !important; pointer-events: auto; cursor: default; } img[class=logo] { width: 132px!important; } img[class=shop] { width:53px!important; text-align: center!important; } table[class=innerlayer] { width: 300px !important; text-align: center; } img[class=spot] { width: 65px!important; } img[class=banner] { width: 290px !important; text-align: center; } img[class=banner1] { width: 229px!important; } img[class=click] { width:55px!important; } img[class=border] { width: 290px!important; } td[class=txtfont] { font-size:11px!important; height:50px!important; line-height: 15px!important; } \t span[class=txtfont] { font-size:9px!important; height:98px!important; line-height:23px!important; } \t td[class=txtfont1] { font-size:11px!important; height:40px!important; line-height: 14px!important; } img[class=left] { width:195px!important; } img[class=right] { width:46px!important; } \t \t td[class=txtfont3] { font-size:8px!important;} \ttd[class=txtfont2] { font-size:6px!important; line-height:9px!important; } td[class=txtbold] { font-size: 21px!important; } img[class=gap] { width:92px!important; } img[class=gap1] { width: 20px!important; } table[class=social] { width: 99% !important; } img[class=fb] { width:20px!important; } img[class=in] { width:21px!important; } img[class=tw] { width:20px!important; } img[class=pin] { width:41px!important; } \t img[class=and] { width:81px!important; } img[class=my] { width: 44px!important; } \t img[class=you] { width:21px!important; } img[class=store] { width:65px!important; } \t \t img[class=snap] { width:24px!important; } td[class=textlen] { height:52px!important; } \ttd[class=tdlen] \t{ \theight:35px!important;font-size: 10px !important; \t} \t\t\timg[class=a] { width: 42px!important; } \t\t\timg[class=b] { width: 22px!important; } \t\t\timg[class=c] { width: 72px!important; } \t\t\timg[class=d] { width: 50px!important; } \t\t\timg[class=e] { width: 56px!important; } \t\t\timg[class=f] { width: 56px!important; } \t\t\t} \t</style> </head> <body><center>\n\t\t\t\t\t\t\t\t\t\tIf you have difficulties viewing this mail, click\n\t\t\t\t\t\t\t\t\t\t<a href=\"https://nightly.capillary.in/business_controller/campaigns/emails/links/view.php?utrack={{user_id_b64}}&mtrack={{outbox_id_b64}}\" style = \"text-decoration: underline;color: #369;\" target=\"_blank\">here</a><br/>\n\t\t\t\t\t\t\t\t\t</center> <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"outerlayer\" style=\"width:650px\"> \t<tbody> \t\t<tr> \t\t\t<td> \t\t\t<table align=\"center\" bgcolor=\"#fff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"outerlayer\" style=\"width:650px\"> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td class=\"txtfont2\" height=\"40\" style=\"font-family: Verdana, Geneva, sans-serif; text-align:center; font-size:11px; color:gray; line-height:13px;\" width=\"600\">Shop at Aster Pharmacy this month and You could be the next lucky winner!</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><a href=\"#\" style=\"pointer-events:none;\"><img class=\"banner\" src=\"https://s3-eu-west-1.amazonaws.com/fs.capillary.eu/intouch_creative_assets/890bdffee3b2322d8ec7.jpg\" style=\"border:none; display:block\" /></a></td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td class=\"txtfont2\" height=\"40\" style=\"font-family: Verdana, Geneva, sans-serif; text-align:center; font-size:11px; color:gray; line-height:13px;\" width=\"600\">To remove your email address from our mailing list , please click on {{unsubscribe}}</td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t</td> \t\t</tr> \t</tbody> </table> </body> </html> ","is_drag_drop":0,"drag_drop_id":null},"secondary_templates":[{"is_preview_generated":null,"preview_url":null,"is_favourite":null,"is_drag_drop":false,"drag_drop_id":null,"scope":null,"tag":null,"is_default":null,"html_content":"<html>\r\n<head>\r\n\t<meta charset=\"utf-8\" />\r\n\t<title>Aster Secure</title>\r\n\t<style type=\"text/css\">#outlook a { padding: 0; } body { width: 100% !important; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; margin: 0; padding: 0;} .ExternalClass { width: 100%; } .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div { line-height: 100%; } #backgroundTable { margin: 0; padding: 0; width: 100% !important; line-height: 100% !important; } img { outline: none; text-decoration: none; border: none; -ms-interpolation-mode: bicubic; } a img { border: none; } .image_fix { display: block; } p { margin: 0px 0px !important; } table td { border-collapse: collapse; } table { border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; } table[class=full] { width: 100%; clear: both; } table[class=spacetable] { height: 176px; } table[class=spacetable1] { height: 431px; } table[class=spacetable2] { height: 50px; } table[class=spacetable3] { height: 55px; } \t @media only screen and (min-width: 320px) and (max-width: 540px) { a[href^=\"tel\"], a[href^=\"sms\"] { text-decoration: none; color: #ffffff; pointer-events: none; cursor: default; } .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] { text-decoration: default; color: #ffffff !important; pointer-events: auto; cursor: default; } img[class=logo] { width: 132px!important; } img[class=shop] { width:53px!important; text-align: center!important; } table[class=innerlayer] { width: 300px !important; text-align: center; } img[class=spot] { width: 65px!important; } img[class=banner] { width: 290px !important; text-align: center; } img[class=banner1] { width: 229px!important; } img[class=click] { width:55px!important; } img[class=border] { width: 290px!important; } td[class=txtfont] { font-size:11px!important; height:50px!important; line-height: 15px!important; } \t span[class=txtfont] { font-size:9px!important; height:98px!important; line-height:23px!important; } \t td[class=txtfont1] { font-size:11px!important; height:40px!important; line-height: 14px!important; } img[class=left] { width:195px!important; } img[class=right] { width:46px!important; } \t \t td[class=txtfont3] { font-size:8px!important;} \ttd[class=txtfont2] { font-size:6px!important; line-height:9px!important; } td[class=txtbold] { font-size: 21px!important; } img[class=gap] { width:92px!important; } img[class=gap1] { width: 20px!important; } table[class=social] { width: 99% !important; } img[class=fb] { width:20px!important; } img[class=in] { width:21px!important; } img[class=tw] { width:20px!important; } img[class=pin] { width:41px!important; } \t img[class=and] { width:81px!important; } img[class=my] { width: 44px!important; } \t img[class=you] { width:21px!important; } img[class=store] { width:65px!important; } \t \t img[class=snap] { width:24px!important; } td[class=textlen] { height:52px!important; } \ttd[class=tdlen] \t{ \theight:35px!important;font-size: 10px !important; \t} \t\t\timg[class=a] { width: 42px!important; } \t\t\timg[class=b] { width: 22px!important; } \t\t\timg[class=c] { width: 72px!important; } \t\t\timg[class=d] { width: 50px!important; } \t\t\timg[class=e] { width: 56px!important; } \t\t\timg[class=f] { width: 56px!important; } \t\t\t}\r\n\t</style>\r\n</head>\r\n<body>\r\n<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"outerlayer\" style=\"width:650px\">\r\n\t<tbody>\r\n\t\t<tr>\r\n\t\t\t<td>\r\n\t\t\t<table align=\"center\" bgcolor=\"#fff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"outerlayer\" style=\"width:650px\">\r\n\t\t\t\t<tbody>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td class=\"txtfont2\" height=\"40\" style=\"font-family: Verdana, Geneva, sans-serif; text-align:center; font-size:11px; color:gray; line-height:13px;\" width=\"600\">Shop at Aster Pharmacy this month and You could be the next lucky winner!</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td><a href=\"#\" style=\"pointer-events:none;\"><img class=\"banner\" src=\"https://s3-eu-west-1.amazonaws.com/fs.capillary.eu/intouch_creative_assets/890bdffee3b2322d8ec7.jpg\" style=\"border:none; display:block\" /></a></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td class=\"txtfont2\" height=\"40\" style=\"font-family: Verdana, Geneva, sans-serif; text-align:center; font-size:11px; color:gray; line-height:13px;\" width=\"600\">To remove your email address from our mailing list , please click on {{unsubscribe}}</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</tbody>\r\n\t\t\t</table>\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</tbody>\r\n</table>\r\n</body>\r\n</html>\r\n","secondary_template_id":"9584","is_base_template":1,"language_name":"English","language":"English","lang_id":"69"}, {"is_preview_generated":null,"preview_url":null,"is_favourite":null,"is_drag_drop":false,"drag_drop_id":null,"scope":null,"tag":null,"is_default":null,"html_content":"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html> <head> \t<title>Scheduled Report</title> \t<meta http-equiv=\"Content-Type\" content=\"text/html charset=UTF-8\"/> \t<style type=\"text/css\">.container-main p{line-height: 1.6;}@media screen and (max-width: 480px){a.brand{font-size: 35px;}}@media screen and (max-width: 480px){.container-main a{text-align: center;}a.brand{text-align: center;}}a.brand img{vertical-align: middle; padding: 0 8px 0 0; width: 250px;}@media screen and (max-width: 480px){a.brand img{width: 220px !important;}}@media screen and (max-width: 480px){.container-content{padding: 15px 20px; font-size: 12px !important;} .email-footer{font-size: 12px !important;}}.container-content table{border-collapse: collapse;}.container-content table tr td p{margin: 5px;}.container-content table tr td p span{font-weight: bold; padding: 0 3px 0 0;}@media screen and (max-width: 480px){a.btn-view-reports{margin: 25px auto 10px;}}a.btn-view-reports:hover{background: grey; color: #fff;}.email-footer p{text-align: center; font-size: 12px; color: grey;}.email-footer p a{color: blue; cursor: pointer;}.email-footer p a:hover{color: grey;} \t</style> </head> <body><center>\n\t\t\t\t\t\t\t\t\t\tIf you have difficulties viewing this mail, click\n\t\t\t\t\t\t\t\t\t\t<a href=\"https://nightly.capillary.in/business_controller/campaigns/emails/links/view.php?utrack={{user_id_b64}}&mtrack={{outbox_id_b64}}\" style = \"text-decoration: underline;color: #369;\" target=\"_blank\">here</a><br/>\n\t\t\t\t\t\t\t\t\t</center> <table class=\"container-main\" style=\"background:#eeeeee; color:#000000; font-family:'Open Sans',sans-serif; font-size:16px; font-weight:400; margin:0 auto; max-width:978px; padding:15px; width:100%\"> \t<tbody> \t\t<tr> \t\t\t<td> \t\t\t<table class=\"email-header\" style=\"background:#ffffff; margin:0 0 5px; padding:17px 0; width:100%\"> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td style=\"width:100%\"><a class=\"brand\" href=\"#\" style=\"display: table; margin: 0 auto; text-decoration: none; font-size: 37px; color: grey;\"><img alt=\"Capillary Technologies\" src=\"https://s3.amazonaws.com/fileservice.in/intouch_creative_assets/60221e2020ba572f6787.png\" /> </a></td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<div class=\"container-content\" style=\"background:#ffffff; padding:20px 35px\"> \t\t\t<p>Hi Ashish Karan,</p> \t\t\t<p>You've received a new scheduled report. {{unsubscribe}}</p> \t\t\t<table> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Org Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>autotest1</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Scheduled Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>Schedule Test</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Time Period: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>1st Jan, 2017 to 24th Sep, 2017</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td><strong>Report Name: </strong></td> \t\t\t\t\t\t<td> \t\t\t\t\t\t<p>redDart Report</p> \t\t\t\t\t\t</td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> \t\t\t<p style=\"font-size:15px; margin-top:25px\">By clicking "View Report" you will be redirected to Capillary Analytics to view the automated report.</p> \t\t\t<a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91?snapshot=59c8bce750f4e75ec8b0d24c\" style=\"background: #009e0f; text-align: center; color: #fff; font-size: 16px; padding: 10px 25px; cursor: pointer; text-decoration: none; display: block; width: 120px; margin: 25px auto 15px;\" target=\"_blank\">View Report</a></div> \t\t\t<div class=\"email-footer\"> \t\t\t<p style=\"color:grey; font-size:12px; text-align:center\">You've received this mail because you subscribed to Schedule Test schedule of redDart Report. <a href=\"https://nightly.capillary.in/analytics/v2/report/59c37820e626a10df78c8d91/schedule/59c8bce750f4e75ec8b0d24c/unsubscribeSchedule\" style=\"color: blue; cursor: pointer;\" target=\"_blank\">Unsubscribe</a></p> \t\t\t<p><a href=\"http://capillarytech.com/privacy-policy/\" target=\"_blank\">Privacy Policy</a> | <a href=\"http://capillarytech.com/about-us/\" target=\"_blank\">About Capillary</a></p> \t\t\t</div> \t\t\t</td> \t\t</tr> \t</tbody> </table> </body> </html> ","secondary_template_id":"9500","is_base_template":false,"language_name":"Hindi","language":"Hindi","lang_id":"151"},{"is_preview_generated":null,"preview_url":null,"is_favourite":null,"is_drag_drop":1,"drag_drop_id":"55acf47048a85bbf7681a35a","scope":null,"tag":null,"is_default":null,"html_content":"","secondary_template_id":"9500","is_base_template":0,"language_name":"Japanese","language":"Japanese","lang_id":"100"}]};
|
|
2650
|
-
|
|
2650
|
+
|
|
2651
2651
|
if (data && data.edit) {
|
|
2652
|
-
|
|
2652
|
+
|
|
2653
2653
|
// const formData = {'0': {}};
|
|
2654
2654
|
const formData = _.cloneDeep(this.state.formData);
|
|
2655
2655
|
formData[0].selectedLanguages = [];
|
|
@@ -2658,7 +2658,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2658
2658
|
formData['template-subject'] = (data.base && data.base.subject) ? data.base.subject : '';
|
|
2659
2659
|
const baseLanguage = this.props.Global.currentOrgDetails.basic_details.base_language;
|
|
2660
2660
|
let languageIndex = _.findIndex(this.supportedLanguages, {iso_code: baseLanguage});
|
|
2661
|
-
|
|
2661
|
+
|
|
2662
2662
|
if (languageIndex === -1) {
|
|
2663
2663
|
languageIndex = 0;
|
|
2664
2664
|
}
|
|
@@ -2675,11 +2675,11 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2675
2675
|
formData[0][this.supportedLanguages[languageIndex].iso_code] = tempData;
|
|
2676
2676
|
formData[0].activeTab = this.supportedLanguages[languageIndex].iso_code;
|
|
2677
2677
|
tabKey = "2";
|
|
2678
|
-
|
|
2678
|
+
|
|
2679
2679
|
} else {
|
|
2680
2680
|
const additionalLanguages = [];
|
|
2681
2681
|
_.forEach(data.secondary_templates, (templates) => {
|
|
2682
|
-
|
|
2682
|
+
|
|
2683
2683
|
const id = "1";
|
|
2684
2684
|
tabKey = id;
|
|
2685
2685
|
let languageIndex = _.findIndex(this.supportedLanguages, {language: templates.language});
|
|
@@ -2699,7 +2699,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2699
2699
|
}
|
|
2700
2700
|
// formData.usingTabContainer = true;
|
|
2701
2701
|
// formData.tabCount = 1;
|
|
2702
|
-
|
|
2702
|
+
|
|
2703
2703
|
// formData[0].tabkey = "1";
|
|
2704
2704
|
// formData[0] = {};
|
|
2705
2705
|
// formData[0].activeTab = this.props.Global.currentOrgDetails.basic_details.base_language;
|
|
@@ -2716,7 +2716,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2716
2716
|
this.addLanguage(false, formData, false, additionalLanguages);
|
|
2717
2717
|
}
|
|
2718
2718
|
formData.base = _.cloneDeep(formData[0]);
|
|
2719
|
-
|
|
2719
|
+
|
|
2720
2720
|
this.setState({formData, loading: false, injectedTags: data.tags, tabKey, isDragDrop: (data.base.is_drag_drop !== 0 )}, () => {
|
|
2721
2721
|
// this.setState({tabKey: ''});
|
|
2722
2722
|
_.forEach(formData[0].selectedLanguages, (language) => {
|
|
@@ -2732,7 +2732,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2732
2732
|
}
|
|
2733
2733
|
|
|
2734
2734
|
startLoading = (ifEdit) => {
|
|
2735
|
-
|
|
2735
|
+
|
|
2736
2736
|
if (ifEdit) {
|
|
2737
2737
|
this.setState({loading: true});
|
|
2738
2738
|
}
|
|
@@ -2770,7 +2770,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2770
2770
|
// console.log('injected event for ', col, event, this.getMappedEvent(col.id, event));
|
|
2771
2771
|
temp.injectedEvents[event] = this.getMappedEvent(col.id, event);
|
|
2772
2772
|
});
|
|
2773
|
-
//
|
|
2773
|
+
//
|
|
2774
2774
|
if (temp.type === 'icon') {
|
|
2775
2775
|
return true;
|
|
2776
2776
|
}
|
|
@@ -2801,7 +2801,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2801
2801
|
_.forEach(col.supportedEvents, (event) => {
|
|
2802
2802
|
temp.injectedEvents[event] = this.getMappedEvent(col.id, event);
|
|
2803
2803
|
});
|
|
2804
|
-
//
|
|
2804
|
+
//
|
|
2805
2805
|
if (temp.type === 'icon') {
|
|
2806
2806
|
return true;
|
|
2807
2807
|
}
|
|
@@ -2835,7 +2835,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2835
2835
|
_.forEach(inputField.supportedEvents, (event) => {
|
|
2836
2836
|
temp.injectedEvents[event] = this.getMappedEvent(inputField.id, event);
|
|
2837
2837
|
});
|
|
2838
|
-
//
|
|
2838
|
+
//
|
|
2839
2839
|
if (temp.type === 'icon') {
|
|
2840
2840
|
return true;
|
|
2841
2841
|
}
|
|
@@ -2864,7 +2864,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2864
2864
|
_.forEach(actionField.supportedEvents, (event) => {
|
|
2865
2865
|
temp.injectedEvents[event] = this.getMappedEvent(actionField.id, event);
|
|
2866
2866
|
});
|
|
2867
|
-
//
|
|
2867
|
+
//
|
|
2868
2868
|
if (temp.type === 'icon') {
|
|
2869
2869
|
return true;
|
|
2870
2870
|
}
|
|
@@ -2916,7 +2916,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2916
2916
|
saveFormData = (passedData) => {
|
|
2917
2917
|
//Logic to save in db etc
|
|
2918
2918
|
// const isValidated = this.validateFormData(formData);
|
|
2919
|
-
//
|
|
2919
|
+
//
|
|
2920
2920
|
// if (!isValidated) {
|
|
2921
2921
|
// return;
|
|
2922
2922
|
// }
|
|
@@ -2924,16 +2924,16 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2924
2924
|
// this.saveValidationData();
|
|
2925
2925
|
// return;
|
|
2926
2926
|
//}
|
|
2927
|
-
|
|
2927
|
+
|
|
2928
2928
|
if (this.state.gettingFormData) {
|
|
2929
|
-
|
|
2929
|
+
|
|
2930
2930
|
const response = {
|
|
2931
2931
|
action: "getFormData",
|
|
2932
2932
|
postAction: this.state.getFormDataValue || 'next',
|
|
2933
2933
|
value: this.transformFormData(passedData),
|
|
2934
2934
|
validity: this.state.isFormValid,
|
|
2935
2935
|
};
|
|
2936
|
-
|
|
2936
|
+
|
|
2937
2937
|
this.setState({checkValidation: true});
|
|
2938
2938
|
if (this.props.location.query.module === 'library' && this.props.isGetFormData) {
|
|
2939
2939
|
this.props.getFormSubscriptionData(response);
|
|
@@ -2956,10 +2956,10 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2956
2956
|
const baseLanguage = this.props.Global.currentOrgDetails.basic_details.base_language;
|
|
2957
2957
|
let baseKey = -1;
|
|
2958
2958
|
//let saveCount = 0;
|
|
2959
|
-
|
|
2959
|
+
|
|
2960
2960
|
_.forEach(formData, (data, index) => {
|
|
2961
2961
|
const newdata = data;
|
|
2962
|
-
|
|
2962
|
+
|
|
2963
2963
|
if (!isNaN(index) && newdata) {
|
|
2964
2964
|
const baseLangTabKey = newdata[baseLanguage].tabKey;
|
|
2965
2965
|
newdata.tabKey = baseLangTabKey;
|
|
@@ -2970,7 +2970,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2970
2970
|
_.forEach(newdata.selectedLanguages, (language) => {
|
|
2971
2971
|
// console.log('all data 3', newdata[language], language, this.state.currentTab, index, (index + 1), (index + 1) === this.state.currentTab, newdata[language].is_drag_drop);
|
|
2972
2972
|
// if (newdata[language].is_drag_drop && ((parseInt(index, 10) + 1) === this.state.currentTab)) {
|
|
2973
|
-
//
|
|
2973
|
+
//
|
|
2974
2974
|
// saveCount += 1;
|
|
2975
2975
|
// }
|
|
2976
2976
|
if (newdata[language].is_drag_drop) {
|
|
@@ -2990,9 +2990,9 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2990
2990
|
delete obj.versions.base[language].edmeditorsrc;
|
|
2991
2991
|
}
|
|
2992
2992
|
});
|
|
2993
|
-
|
|
2993
|
+
|
|
2994
2994
|
// if (saveCount === 0) {
|
|
2995
|
-
|
|
2995
|
+
|
|
2996
2996
|
this.props.actions.createTemplate(obj);
|
|
2997
2997
|
// } else {
|
|
2998
2998
|
// this.setState({saveObj: obj, targetSaveCount: saveCount, mode: "save", saveEdmDataMode: 'save'}, () => {
|
|
@@ -3011,7 +3011,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
3011
3011
|
const formData = _.cloneDeep(this.state.formData);
|
|
3012
3012
|
const activeLangTab = formData[`${this.state.currentTab - 1}`].activeTab;
|
|
3013
3013
|
const langIndex = formData[`${this.state.currentTab - 1}`].selectedLanguages.indexOf(activeLangTab);
|
|
3014
|
-
|
|
3014
|
+
|
|
3015
3015
|
this.setState({mode: "switchEditor"}, () => {
|
|
3016
3016
|
console.log('posting message for switching editor', `edmeditor${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`);
|
|
3017
3017
|
const win = document.getElementById(`edmeditor${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`).contentWindow;
|
|
@@ -3032,7 +3032,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
3032
3032
|
}
|
|
3033
3033
|
|
|
3034
3034
|
toggleEdmEmailTemplateSelection = () => {
|
|
3035
|
-
|
|
3035
|
+
|
|
3036
3036
|
this.setState( (prevState) => ({
|
|
3037
3037
|
showEdmEmailTemplates: !prevState.showEdmEmailTemplates}), () => {
|
|
3038
3038
|
if (this.state.showEdmEmailTemplates) {
|
|
@@ -3050,7 +3050,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
3050
3050
|
// const isEdmSupport = (this.props.location.query.isEdmSupport) ? this.props.location.query.isEdmSupport : true;
|
|
3051
3051
|
// let getQuery = '';
|
|
3052
3052
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
3053
|
-
|
|
3053
|
+
|
|
3054
3054
|
this.props.actions.getCmsSetting('edm', data.versions.base.drag_drop_id, 'create', this.state.formData[this.state.currentTab - 1].activeTab, isEdmSupport);
|
|
3055
3055
|
// this.props.templatesActions.setEdmTemplate(data);
|
|
3056
3056
|
this.toggleEdmEmailTemplateSelection();
|
|
@@ -3091,7 +3091,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
3091
3091
|
render() {
|
|
3092
3092
|
// const pageHeading = (this.state.isEdit) ? this.props.intl.formatMessage(messages.editHeading) : this.props.intl.formatMessage(messages.createHeading);
|
|
3093
3093
|
// const actionComponents = '';
|
|
3094
|
-
|
|
3094
|
+
|
|
3095
3095
|
const filterContent = (
|
|
3096
3096
|
<div className="action-container" style={{ display: 'inline-flex', width: '100%'}}>
|
|
3097
3097
|
<div style={{ marginTop: '8px', width: '50%'}}>
|
|
@@ -3150,11 +3150,11 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
3150
3150
|
</Pagination>
|
|
3151
3151
|
</div>
|
|
3152
3152
|
);
|
|
3153
|
-
|
|
3153
|
+
|
|
3154
3154
|
if (!this.props.Global.currentOrgDetails || !this.props.Global.currentOrgDetails.basic_details) {
|
|
3155
3155
|
return (<div>Loading...</div>);
|
|
3156
3156
|
}
|
|
3157
|
-
|
|
3157
|
+
|
|
3158
3158
|
let loaderText = this.props.Email.createTemplateInProgress ? this.props.intl.formatMessage(messages.saveTemplateLoader) : this.props.intl.formatMessage(messages.templateLoader);
|
|
3159
3159
|
if (this.props.Email.assetUploading) {
|
|
3160
3160
|
loaderText = this.props.intl.formatMessage(messages.uploadingImage);
|