@capillarytech/creatives-library 0.1.15 → 0.1.17
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/components/FormBuilder/index.js +1 -0
- package/containers/Assets/Gallery/_gallery.scss +19 -0
- package/containers/Assets/Gallery/index.js +39 -26
- package/containers/Assets/Gallery/reducer.js +3 -3
- package/containers/Assets/Gallery/sagas.js +1 -1
- package/containers/Email/index.js +1 -0
- package/containers/Sms/Create/index.js +3 -0
- package/containers/Sms/Edit/index.js +8 -1
- package/containers/Templates/index.js +50 -9
- package/containers/WeChat/index.js +16 -2
- package/index.js +1 -1
- package/package.json +1 -1
|
@@ -940,6 +940,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
940
940
|
|
|
941
941
|
skipTags(tag) {
|
|
942
942
|
const regexGroups = ["dynamic_expiry_date_after_\\d+_days.FORMAT_\\d", "user_id_b64", "outbox_id_b64", "unsubscribe\\(#[a-zA-Z\\d]{6}\\)","Link_to_[a-zA-z]"];
|
|
943
|
+
|
|
943
944
|
//const regexGroups = [];
|
|
944
945
|
let skipped = false;
|
|
945
946
|
_.forEach(regexGroups, (group) => {
|
|
@@ -60,6 +60,12 @@
|
|
|
60
60
|
left: 30%;
|
|
61
61
|
width: 30%;
|
|
62
62
|
}
|
|
63
|
+
|
|
64
|
+
img{
|
|
65
|
+
width: 100%;
|
|
66
|
+
object-fit: cover; // try contain
|
|
67
|
+
height: 100%;
|
|
68
|
+
}
|
|
63
69
|
}
|
|
64
70
|
|
|
65
71
|
.overlay {
|
|
@@ -105,3 +111,16 @@
|
|
|
105
111
|
}
|
|
106
112
|
}
|
|
107
113
|
}
|
|
114
|
+
|
|
115
|
+
#slidebox-content{
|
|
116
|
+
img{
|
|
117
|
+
display: block;
|
|
118
|
+
max-width: 100%;
|
|
119
|
+
margin: 0 auto;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
#slidebox-container{
|
|
124
|
+
left: 40vw !important;
|
|
125
|
+
width: 60vw !important;
|
|
126
|
+
}
|
|
@@ -69,6 +69,7 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
componentWillReceiveProps(nextProps) {
|
|
72
|
+
console.log("nextProps", nextProps);
|
|
72
73
|
if ( !_.isEqual(nextProps.Gallery.uploadAssetSuccess, this.props.Gallery.uploadAssetSuccess) && nextProps.Gallery.uploadAssetSuccess) {
|
|
73
74
|
if (this.props.location.query.type === 'embedded' && nextProps.Gallery.uploadedAssetData) {
|
|
74
75
|
console.log('Post on will receive props');
|
|
@@ -106,19 +107,27 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
106
107
|
const message = getMessageObject('error', this.props.intl.formatMessage(messages.assetDeleteFailed), true);
|
|
107
108
|
this.props.globalActions.addMessageToQueue(message);
|
|
108
109
|
}
|
|
110
|
+
if ( nextProps.Gallery.itemDeleted || !nextProps.Gallery.assetUploading) {
|
|
111
|
+
const params = {
|
|
112
|
+
name: this.state.searchText,
|
|
113
|
+
sortBy: 'Most Recent',
|
|
114
|
+
};
|
|
115
|
+
this.getAllAssets({params}, true);
|
|
116
|
+
}
|
|
109
117
|
}
|
|
110
118
|
|
|
111
119
|
componentWillUnmount() {
|
|
112
120
|
window.removeEventListener("message", this.handleGallery, false);
|
|
113
121
|
}
|
|
114
122
|
|
|
115
|
-
getAllAssets = ({params, getNextPage, resetPage}) => {
|
|
123
|
+
getAllAssets = ({params, getNextPage, resetPage}, isReRender = false) => {
|
|
116
124
|
let queryParams = params;
|
|
117
125
|
let page = this.state.page;
|
|
118
|
-
if (!this.props.Gallery.fetchingAllAssets && (resetPage || (page === 1 && this.state.totalCount === 0) || page <= (this.state.totalCount / this.state.perPageLimit))) {
|
|
126
|
+
if (!this.props.Gallery.fetchingAllAssets && ((resetPage || (page === 1 && this.state.totalCount === 0) || page <= (this.state.totalCount / this.state.perPageLimit)) || isReRender )) {
|
|
119
127
|
if (getNextPage) {
|
|
120
128
|
page += 1;
|
|
121
129
|
}
|
|
130
|
+
|
|
122
131
|
let totalCount = this.state.totalCount;
|
|
123
132
|
if (resetPage) {
|
|
124
133
|
page = 1;
|
|
@@ -226,17 +235,19 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
226
235
|
uploadImages(e, {files}) {
|
|
227
236
|
e.preventDefault();
|
|
228
237
|
const _URL = window.URL || window.webkitURL;
|
|
229
|
-
const file = files[0];
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
238
|
+
//const file = files[0];
|
|
239
|
+
for (let file in files){
|
|
240
|
+
const img = new Image();
|
|
241
|
+
const that = this;
|
|
242
|
+
img.src = _URL.createObjectURL(files[file]);
|
|
243
|
+
img.onload = function () {
|
|
244
|
+
const fileParams = {
|
|
245
|
+
width: this.width,
|
|
246
|
+
height: this.height,
|
|
247
|
+
};
|
|
248
|
+
that.props.actions.uploadAsset(files[file], 'image', fileParams);
|
|
237
249
|
};
|
|
238
|
-
|
|
239
|
-
};
|
|
250
|
+
}
|
|
240
251
|
}
|
|
241
252
|
|
|
242
253
|
prepareData() {
|
|
@@ -300,7 +311,7 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
300
311
|
<img style={{maxWidth: '100%', maxHeight: '100%'}} src={this.state.selectedAsset.metaInfo.secure_file_path ? this.state.selectedAsset.metaInfo.secure_file_path : this.state.selectedAsset.metaInfo.public_url} alt={this.state.selectedAsset.name} />
|
|
301
312
|
</div>
|
|
302
313
|
</div>
|
|
303
|
-
<a href={this.state.selectedAsset.metaInfo.public_url} target="_blank" style={{ position: 'fixed', right: '
|
|
314
|
+
<a href={this.state.selectedAsset.metaInfo.public_url} target="_blank" style={{ position: 'fixed', right: '55px', bottom: '18vh' }} ><i className="material-icons" style={{ color: '#2E89DF', cursor: 'pointer' }}>fullscreen</i></a>
|
|
304
315
|
</div>
|
|
305
316
|
<div style={{ fontSize: '14px', color: '#333333', lineHeight: '24px', fontFamily: 'OpenSans', textAlign: 'center', paddingTop: '10px'}}>
|
|
306
317
|
<p style={{marginBottom: '0px'}}><span><FormattedMessage {...messages.dimensions} />: </span> <span>{`${this.state.selectedAsset.metaInfo.width}X${this.state.selectedAsset.metaInfo.height} px`}</span></p>
|
|
@@ -357,7 +368,7 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
357
368
|
);
|
|
358
369
|
const actionComponents = (
|
|
359
370
|
<form encType="multipart/form-data" id="myForm">
|
|
360
|
-
<input style={{ display: 'none'}} id="fileName" type="file" onChange={(e) => this.uploadImages(e, {files: e.target.files})} accept="image/*" />
|
|
371
|
+
<input style={{ display: 'none'}} id="fileName" type="file" onChange={(e) => this.uploadImages(e, {files: e.target.files})} accept="image/*" multiple/>
|
|
361
372
|
<CapButton type={this.props.location.query.type !== 'embedded' ? 'primary' : 'secondary'} onClick={(e) => this.openFileDialog(e)} style={{float: 'right'}}>
|
|
362
373
|
<FormattedMessage {...messages.upload} />
|
|
363
374
|
</CapButton>
|
|
@@ -367,7 +378,7 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
367
378
|
|
|
368
379
|
return (
|
|
369
380
|
<div>
|
|
370
|
-
|
|
381
|
+
{/*<Spin spinning={this.props.Gallery.assetUploading || this.props.Gallery.fetchingAllAssets}>*/}
|
|
371
382
|
<Helmet
|
|
372
383
|
title="Gallery"
|
|
373
384
|
/>
|
|
@@ -410,19 +421,21 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
410
421
|
</div>
|
|
411
422
|
</div>
|
|
412
423
|
</div> :
|
|
413
|
-
<
|
|
414
|
-
<
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
424
|
+
<Spin spinning={this.props.Gallery.assetUploading || this.props.Gallery.fetchingAllAssets}>
|
|
425
|
+
<Pagination onPageChange={() => { this.getAllAssets({getNextPage: true}); }} paginationSelector="pagination-container">
|
|
426
|
+
<CardGrid
|
|
427
|
+
listItem={this.prepareData()}
|
|
428
|
+
filterContent={filterContent}
|
|
429
|
+
onHoverItem={this.handleOnHoverItem}
|
|
430
|
+
onItemClick={this.handleOnHoverItem}
|
|
431
|
+
colNumber={this.props.location.query.type === 'embedded' ? 2 : 4}
|
|
432
|
+
enablePagination
|
|
433
|
+
/>
|
|
434
|
+
</Pagination>
|
|
435
|
+
</Spin>
|
|
423
436
|
}
|
|
424
437
|
{this.state.showImagePreviewModal && this.renderAssetPreviewModal()}
|
|
425
|
-
|
|
438
|
+
{/*</Spin>*/}
|
|
426
439
|
</div>
|
|
427
440
|
);
|
|
428
441
|
}
|
|
@@ -50,14 +50,14 @@ function galleryReducer(state = initialState, action) {
|
|
|
50
50
|
case types.DELETE_ASSET_REQUEST:
|
|
51
51
|
return state
|
|
52
52
|
.set('deletingAsset', true)
|
|
53
|
-
.set('assetDeleteError', false);
|
|
53
|
+
.set('assetDeleteError', false).set("itemDeleted", false);
|
|
54
54
|
case types.DELETE_ASSET_SUCCESS:
|
|
55
55
|
return state
|
|
56
|
-
.set('deletingAsset', false);
|
|
56
|
+
.set('deletingAsset', false).set("itemDeleted", true);
|
|
57
57
|
case types.DELETE_ASSET_FAILURE:
|
|
58
58
|
return state
|
|
59
59
|
.set('deletingAsset', false)
|
|
60
|
-
.set('assetDeleteError', true);
|
|
60
|
+
.set('assetDeleteError', true).set("itemDeleted", false);
|
|
61
61
|
case types.GET_USER_LIST_REQUEST:
|
|
62
62
|
return state
|
|
63
63
|
.set('fetchingUserList', true)
|
|
@@ -24,7 +24,7 @@ export function* uploadAsset(file, assetType, fileParams) {
|
|
|
24
24
|
export function* deleteAssetById(assetId, assetType) {
|
|
25
25
|
try {
|
|
26
26
|
const result = yield call(Api.deleteAssetById, assetId, assetType);
|
|
27
|
-
console.log(result);
|
|
27
|
+
console.log({"delete Asset Id": result});
|
|
28
28
|
yield put({ type: types.DELETE_ASSET_SUCCESS, data: result.response });
|
|
29
29
|
} catch (error) {
|
|
30
30
|
yield put({ type: types.DELETE_ASSET_FAILURE, error });
|
|
@@ -239,6 +239,9 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
239
239
|
}
|
|
240
240
|
const result = {};
|
|
241
241
|
result.base = baseData;
|
|
242
|
+
const msgObj = charCount.updateCharCount(baseData['sms-editor']);
|
|
243
|
+
result.base.msg_count = msgObj.msgCount;
|
|
244
|
+
console.log("Message Count", msgObj.msgCount);
|
|
242
245
|
const response = {
|
|
243
246
|
action: "getFormData",
|
|
244
247
|
value: result,
|
|
@@ -89,7 +89,11 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
89
89
|
}
|
|
90
90
|
componentDidMount() {
|
|
91
91
|
if (this.props.location.query && this.props.location.query.module === 'library') {
|
|
92
|
-
this.props.
|
|
92
|
+
if (this.props.params.id) {
|
|
93
|
+
this.props.actions.getTemplateDetails(this.props.params.id);
|
|
94
|
+
} else {
|
|
95
|
+
this.props.actions.setTemplateDetails(this.props.templateData);
|
|
96
|
+
}
|
|
93
97
|
} else {
|
|
94
98
|
this.props.actions.getTemplateDetails(this.props.params.id);
|
|
95
99
|
}
|
|
@@ -279,6 +283,9 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
279
283
|
}
|
|
280
284
|
const result = {};
|
|
281
285
|
result.base = baseData;
|
|
286
|
+
const msgObj = charCount.updateCharCount(baseData['sms-editor']);
|
|
287
|
+
result.base.msg_count = msgObj.msgCount;
|
|
288
|
+
console.log("Message Count", msgObj.msgCount);
|
|
282
289
|
const response = {
|
|
283
290
|
action: "getFormData",
|
|
284
291
|
value: result,
|
|
@@ -64,6 +64,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
64
64
|
showHtmlPreview: false,
|
|
65
65
|
device: 'desktop',
|
|
66
66
|
searchedTemplates: false,
|
|
67
|
+
defaultAccount: true,
|
|
67
68
|
};
|
|
68
69
|
this.handleOnHoverItem = this.handleOnHoverItem.bind(this);
|
|
69
70
|
this.handleOnItemClick = this.handleOnItemClick.bind(this);
|
|
@@ -116,7 +117,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
116
117
|
}
|
|
117
118
|
|
|
118
119
|
componentDidMount() {
|
|
119
|
-
if (this.props.location.query.type === 'embedded' && this.
|
|
120
|
+
if (this.props.location.query.type === 'embedded' && this.isEnabledInLibraryModule("setLocale")) {
|
|
120
121
|
this.setLocale();
|
|
121
122
|
}
|
|
122
123
|
if (this.state.channel.toLowerCase() === 'sms' || this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill' || ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush') && !_.isEmpty(this.props.Templates.selectedWeChatAccount))) {
|
|
@@ -159,12 +160,14 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
159
160
|
if (nextProps.route.name.toLowerCase() === 'sms') {
|
|
160
161
|
channel = 'Sms';
|
|
161
162
|
} else if (nextProps.route.name.toLowerCase() === 'wechat') {
|
|
163
|
+
this.setState({defaultAccount: true});
|
|
162
164
|
channel = 'wechat';
|
|
163
165
|
nextProps.actions.getWeCrmAccounts();
|
|
164
166
|
} else if (nextProps.route.name.toLowerCase() === 'email') {
|
|
165
167
|
channel = 'Email';
|
|
166
168
|
// this.props.actions.getEdmDefaultTemplates();
|
|
167
169
|
} else if (nextProps.route.name.toLowerCase() === "mobilepush") {
|
|
170
|
+
this.setState({defaultAccount: true});
|
|
168
171
|
channel = "mobilepush";
|
|
169
172
|
nextProps.actions.getWeCrmAccounts(channel);
|
|
170
173
|
} else if (nextProps.route.name.toLowerCase() === 'ebill') {
|
|
@@ -191,7 +194,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
191
194
|
if (this.state.channel.toLowerCase() === "mobilepush" && nextProps.Templates.selectedWeChatAccount) {
|
|
192
195
|
params.accountId = nextProps.Templates.selectedWeChatAccount.id;
|
|
193
196
|
}
|
|
194
|
-
if ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush') && _.isEmpty(nextProps.Templates.selectedWeChatAccount) && (this.props.location.query.type === 'embedded')) {
|
|
197
|
+
if ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush') && _.isEmpty(nextProps.Templates.selectedWeChatAccount) && (this.props.location.query.type === 'embedded') && !this.isEnabledInLibraryModule("showAccountSelection")) {
|
|
195
198
|
let selectedAccount = '';
|
|
196
199
|
if (_.isEmpty(nextProps.Templates.weCrmAccounts)) {
|
|
197
200
|
return;
|
|
@@ -280,7 +283,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
280
283
|
const isLanguageSupport = (this.props.location.query.isLanguageSupport) ? this.props.location.query.isLanguageSupport : true;
|
|
281
284
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
282
285
|
const type = this.props.location.query.type;
|
|
283
|
-
if (
|
|
286
|
+
if (this.isEnabledInLibraryModule("callCreateFromProps")) {
|
|
284
287
|
this.props.createNew();
|
|
285
288
|
return;
|
|
286
289
|
}
|
|
@@ -302,12 +305,31 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
302
305
|
if (!_.isEmpty(nextProps.Templates.templateDetails) && !_.isEqual(nextProps.Templates.templateDetails, this.props.Templates.templateDetails)) {
|
|
303
306
|
this.setState({previewTemplate: nextProps.Templates.templateDetails});
|
|
304
307
|
}
|
|
308
|
+
|
|
309
|
+
if (nextProps.Templates.weCrmAccounts !== undefined && nextProps.Templates.weCrmAccounts.length === 1 && this.state.defaultAccount ) {
|
|
310
|
+
const paramsDefault = {
|
|
311
|
+
name: this.state.searchText,
|
|
312
|
+
sortBy: this.state.sortBy,
|
|
313
|
+
};
|
|
314
|
+
if (this.state.channel.toLowerCase() === 'wechat') {
|
|
315
|
+
paramsDefault.wecrmId = nextProps.Templates.weCrmAccounts[0].configs.wecrm_app_id;
|
|
316
|
+
paramsDefault.wecrmToken = nextProps.Templates.weCrmAccounts[0].configs.wecrm_token;
|
|
317
|
+
nextProps.actions.setWeChatAccount(nextProps.Templates.weCrmAccounts[0]);
|
|
318
|
+
this.setState({defaultAccount: false});
|
|
319
|
+
} else if (this.state.channel.toLowerCase() === 'mobilepush') {
|
|
320
|
+
nextProps.actions.setWeChatAccount(nextProps.Templates.weCrmAccounts[0]);
|
|
321
|
+
paramsDefault.accountId = nextProps.Templates.weCrmAccounts[0].id;
|
|
322
|
+
this.setState({defaultAccount: false});
|
|
323
|
+
}
|
|
324
|
+
this.getAllTemplates({params: paramsDefault}, true);
|
|
325
|
+
}
|
|
305
326
|
}
|
|
306
327
|
|
|
307
328
|
componentWillUnmount() {
|
|
308
329
|
console.log('removed listener templates');
|
|
309
330
|
window.removeEventListener("message", this.handleFrameTasks);
|
|
310
331
|
this.props.actions.resetTemplateStoreData();
|
|
332
|
+
// this.setState({defaultAccount: false});
|
|
311
333
|
}
|
|
312
334
|
|
|
313
335
|
onAccountSelect(value, option) {
|
|
@@ -486,7 +508,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
486
508
|
this.props.actions.handleHtmlUpload(text);
|
|
487
509
|
document.getElementById("filename").value = "";
|
|
488
510
|
const type = this.props.location.query.type;
|
|
489
|
-
if (
|
|
511
|
+
if (this.isEnabledInLibraryModule("callCreateFromProps")) {
|
|
490
512
|
this.props.createNew();
|
|
491
513
|
return;
|
|
492
514
|
}
|
|
@@ -671,7 +693,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
671
693
|
createTemplate(ev) {
|
|
672
694
|
const type = this.props.location.query.type;
|
|
673
695
|
const module = this.props.location.query.module ? this.props.location.query.module : 'default';
|
|
674
|
-
if (this.
|
|
696
|
+
if (this.isEnabledInLibraryModule("callCreateFromProps")) {
|
|
675
697
|
this.props.createNew();
|
|
676
698
|
} else if (ev.key && (ev.key.toLowerCase() === "text" || ev.key.toLowerCase() === "image")) {
|
|
677
699
|
this.props.router.push({
|
|
@@ -805,7 +827,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
805
827
|
} else {
|
|
806
828
|
getQuery = (type === 'embedded') ? {type: 'embedded', module} : {module};
|
|
807
829
|
}
|
|
808
|
-
if (
|
|
830
|
+
if (this.isEnabledInLibraryModule("callCreateFromProps")) {
|
|
809
831
|
this.props.createNew();
|
|
810
832
|
return;
|
|
811
833
|
}
|
|
@@ -842,7 +864,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
842
864
|
if (this.state.channel.toLowerCase() === 'ebill') {
|
|
843
865
|
pathName = `/ebill/edit/${id}`;
|
|
844
866
|
}
|
|
845
|
-
if (
|
|
867
|
+
if (this.isEnabledInLibraryModule("callSelectFromProps")) {
|
|
846
868
|
this.props.onSelectTemplate(id);
|
|
847
869
|
} else {
|
|
848
870
|
if (this.state.channel.toLowerCase() === 'ebill') {
|
|
@@ -978,7 +1000,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
978
1000
|
console.log('Data Prepare');
|
|
979
1001
|
const imgSrc = template && template.versions && template.versions.base ? template.versions.base.preview_http_url : '';
|
|
980
1002
|
const ifPreviewGenerated = template && template.versions && template.versions.base ? template.versions.base.isPreviewGenerated : 0;
|
|
981
|
-
content = <img src={imgSrc || ''} alt={this.props.intl.formatMessage(messages.previewGenerateText)} />;
|
|
1003
|
+
content = <img src={imgSrc || ''} alt={this.props.intl.formatMessage(messages.previewGenerateText)} width="100%" height="100%"/>;
|
|
982
1004
|
console.log('qwerty template preview', imgSrc, template, ifPreviewGenerated, content);
|
|
983
1005
|
temp.content = (
|
|
984
1006
|
<div
|
|
@@ -1109,6 +1131,25 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1109
1131
|
</Modal>);
|
|
1110
1132
|
return modal;
|
|
1111
1133
|
};
|
|
1134
|
+
//Gets called only when creatives gets used as node library
|
|
1135
|
+
isEnabledInLibraryModule = (property) => {
|
|
1136
|
+
if (this.props.location.query.type === "embedded" && this.props.location.query.module === "library") {
|
|
1137
|
+
switch (property) {
|
|
1138
|
+
case "showAccountSelection":
|
|
1139
|
+
return (this.props.route && (this.props.route.name.toLowerCase() === "wechat" || this.props.route.name.toLowerCase() === "mobilepush"));
|
|
1140
|
+
case "setLocale":
|
|
1141
|
+
return true;
|
|
1142
|
+
case "callCreateFromProps":
|
|
1143
|
+
return true;
|
|
1144
|
+
case "callSelectFromProps":
|
|
1145
|
+
return true;
|
|
1146
|
+
default:
|
|
1147
|
+
return false;
|
|
1148
|
+
}
|
|
1149
|
+
} else {
|
|
1150
|
+
return false;
|
|
1151
|
+
}
|
|
1152
|
+
}
|
|
1112
1153
|
|
|
1113
1154
|
render() {
|
|
1114
1155
|
console.log('templates props', this.props);
|
|
@@ -1210,7 +1251,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1210
1251
|
const pageHeader = (
|
|
1211
1252
|
<div>
|
|
1212
1253
|
{(this.props.location.query.type !== 'embedded') ? `${pageHeaderText}` : templateText}
|
|
1213
|
-
{((this.state.channel.toUpperCase() === 'WECHAT' || this.state.channel.toUpperCase() === "MOBILEPUSH") && (this.props.location.query.type !== 'embedded') && !_.isEmpty(this.props.Templates.weCrmAccounts)) &&
|
|
1254
|
+
{(this.isEnabledInLibraryModule("showAccountSelection") || (((this.state.channel.toUpperCase() === 'WECHAT' || this.state.channel.toUpperCase() === "MOBILEPUSH") && (this.props.location.query.type !== 'embedded') && !_.isEmpty(this.props.Templates.weCrmAccounts)))) &&
|
|
1214
1255
|
<Select className="selectAccount" onSelect={this.onAccountSelect} value={this.props.Templates.selectedWeChatAccount ? this.props.Templates.selectedWeChatAccount.name : undefined} placeholder={this.props.intl.formatMessage(messages.selectAccount)}>
|
|
1215
1256
|
{accountOptions}
|
|
1216
1257
|
</Select>}
|
|
@@ -433,6 +433,9 @@ export class WeChat extends React.Component { // eslint-disable-line react/prefe
|
|
|
433
433
|
}
|
|
434
434
|
|
|
435
435
|
componentWillReceiveProps(nextProps) {
|
|
436
|
+
if (nextProps.location.query.module === 'library' && nextProps.isGetFormData) {
|
|
437
|
+
this.getFormData();
|
|
438
|
+
}
|
|
436
439
|
console.log('MetaEntity nextprops ', nextProps.metaEntities);
|
|
437
440
|
if (nextProps.metaEntities && nextProps.metaEntities.layouts && nextProps.metaEntities.layouts.length > 0 && _.isEmpty(this.state.schema)) {
|
|
438
441
|
this.injectEvents(nextProps.metaEntities.layouts[0].definition);
|
|
@@ -465,6 +468,11 @@ export class WeChat extends React.Component { // eslint-disable-line react/prefe
|
|
|
465
468
|
}
|
|
466
469
|
});
|
|
467
470
|
}
|
|
471
|
+
if (nextProps.location.query.type === "embedded" && nextProps.location.query.module === "library" && nextProps.templateData) {
|
|
472
|
+
this.setState({editTemplateData: nextProps.templateData}, () => {
|
|
473
|
+
this.setEditData();
|
|
474
|
+
});
|
|
475
|
+
}
|
|
468
476
|
if (nextProps.params.id && !_.isEqual(nextProps.params.id, this.props.params.id)) {
|
|
469
477
|
this.setState({isEdit: true});
|
|
470
478
|
}
|
|
@@ -616,7 +624,7 @@ export class WeChat extends React.Component { // eslint-disable-line react/prefe
|
|
|
616
624
|
}
|
|
617
625
|
});
|
|
618
626
|
}
|
|
619
|
-
} else if (this.state.isEdit) {
|
|
627
|
+
} else if (this.state.isEdit && this.state.editTemplateData.versions) {
|
|
620
628
|
console.log('this.state.editTemplateData', this.state.editTemplateData);
|
|
621
629
|
selectedTemplateData = _.cloneDeep(this.state.editTemplateData);
|
|
622
630
|
selectedTemplate = {
|
|
@@ -716,7 +724,11 @@ export class WeChat extends React.Component { // eslint-disable-line react/prefe
|
|
|
716
724
|
};
|
|
717
725
|
console.log('response ', response);
|
|
718
726
|
this.setState({checkValidation: true});
|
|
719
|
-
|
|
727
|
+
if (this.props.location.query.module === 'library') {
|
|
728
|
+
this.props.getLibraryFormData(response);
|
|
729
|
+
} else {
|
|
730
|
+
e.source.postMessage(JSON.stringify(response), e.origin);
|
|
731
|
+
}
|
|
720
732
|
}
|
|
721
733
|
|
|
722
734
|
getCurrentWindow(e) {
|
|
@@ -1579,6 +1591,8 @@ WeChat.propTypes = {
|
|
|
1579
1591
|
params: PropTypes.object,
|
|
1580
1592
|
metaEntities: PropTypes.object,
|
|
1581
1593
|
intl: intlShape.isRequired,
|
|
1594
|
+
isGetFormData: PropTypes.bool,
|
|
1595
|
+
getLibraryFormData: PropTypes.func,
|
|
1582
1596
|
};
|
|
1583
1597
|
|
|
1584
1598
|
const mapStateToProps = createStructuredSelector({
|
package/index.js
CHANGED