@capillarytech/creatives-library 3.2.3 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/FormBuilder/index.js +1 -1
- package/components/Header/index.js +4 -3
- package/components/Header/messages.js +4 -0
- package/config/app.js +1 -1
- package/containers/Assets/Gallery/index.js +1 -1
- package/containers/Cap/index.js +3 -5
- package/containers/Email/index.js +2 -2
- package/containers/Email/messages.js +8 -0
- package/containers/LanguageProvider/index.js +2 -1
- package/containers/Templates/index.js +2 -2
- package/containers/Templates/messages.js +24 -4
- package/containers/WeChat/RichmediaTemplates/Create/messages.js +24 -0
- package/i18n.js +16 -9
- package/package.json +1 -1
- package/translations/en.json +108 -60
- package/translations/zh.json +108 -60
- package/utils/smsCharCountV2.js +1 -1
- package/v2Components/CapTagList/index.js +2 -2
- package/v2Components/FormBuilder/index.js +5 -2
- package/v2Components/NavigationBar/index.js +9 -10
- package/v2Components/NewCallTask/index.js +3 -1
- package/v2Components/TopBar/index.js +3 -0
- package/v2Components/TopBar/messages.js +8 -0
- package/v2Containers/Assets/Gallery/index.js +1 -1
- package/v2Containers/Assets/Gallery/messages.js +4 -0
- package/v2Containers/CallTask/index.js +3 -1
- package/v2Containers/Cap/index.js +3 -2
- package/v2Containers/CreativesContainer/SlideBoxContent.js +11 -1
- package/v2Containers/CreativesContainer/index.js +4 -1
- package/v2Containers/Email/index.js +5 -2
- package/v2Containers/Email/messages.js +8 -0
- package/v2Containers/EmailWrapper/index.js +3 -0
- package/v2Containers/LanguageProvider/constants.js +0 -1
- package/v2Containers/LanguageProvider/index.js +2 -0
- package/v2Containers/LanguageProvider/reducer.js +1 -7
- package/v2Containers/MobilePush/Create/index.js +2 -1
- package/v2Containers/MobilePush/Create/messages.js +4 -0
- package/v2Containers/MobilePush/Edit/index.js +2 -1
- package/v2Containers/MobilePush/Edit/messages.js +4 -0
- package/v2Containers/Sms/Create/index.js +3 -1
- package/v2Containers/Sms/Create/messages.js +16 -0
- package/v2Containers/Sms/Edit/index.js +3 -1
- package/v2Containers/Sms/Edit/messages.js +16 -0
- package/v2Containers/TagList/index.js +43 -0
- package/v2Containers/Templates/_templates.scss +9 -1
- package/v2Containers/Templates/index.js +65 -52
- package/v2Containers/TemplatesV2/index.js +1 -0
- package/v2Containers/WeChat/MapTemplates/index.js +0 -1
- package/v2Containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +10 -0
- package/v2Containers/WeChat/RichmediaTemplates/Create/actions.js +9 -0
- package/v2Containers/WeChat/RichmediaTemplates/Create/constants.js +3 -0
- package/v2Containers/WeChat/RichmediaTemplates/Create/index.js +146 -4
- package/v2Containers/WeChat/RichmediaTemplates/Create/messages.js +86 -57
- package/v2Containers/WeChat/RichmediaTemplates/Create/reducer.js +24 -1
- package/v2Containers/WeChat/RichmediaTemplates/Create/sagas.js +45 -0
- package/v2Containers/WeChat/RichmediaTemplates/Edit/constants.js +4 -0
- package/v2Containers/WeChat/RichmediaTemplates/Edit/index.js +8 -1
- package/v2Containers/WeChat/Wrapper/_wrapper.scss +9 -1
- package/v2Containers/WeChat/Wrapper/messages.js +5 -5
- package/containers/Cap/messsages.js +0 -63
- package/v2Components/Header/index.js +0 -46
- package/v2Components/Header/tests/index.test.js +0 -10
- package/v2Containers/TemplatesV2/_templatesV2.scss +0 -5
|
@@ -3191,7 +3191,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
3191
3191
|
|
|
3192
3192
|
FormBuilder.defaultProps = {
|
|
3193
3193
|
isNewVersionFlow: false,
|
|
3194
|
-
userLocale: 'en',
|
|
3194
|
+
userLocale: localStorage.getItem('jlocale') || 'en',
|
|
3195
3195
|
};
|
|
3196
3196
|
|
|
3197
3197
|
FormBuilder.propTypes = {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
|
|
9
9
|
import React from 'react';
|
|
10
|
-
import { FormattedMessage } from 'react-intl';
|
|
10
|
+
import { FormattedMessage, injectIntl, intlShape } from 'react-intl';
|
|
11
11
|
import { CapRow, CapColumn, CapInput, CapButton } from '@capillarytech/cap-react-ui-library';
|
|
12
12
|
import messages from './messages';
|
|
13
13
|
|
|
@@ -16,7 +16,7 @@ function Header(props) {
|
|
|
16
16
|
<div>
|
|
17
17
|
<CapRow className="template-form-header">
|
|
18
18
|
<CapColumn span={10}>
|
|
19
|
-
<CapInput id="template-name" placeholder=
|
|
19
|
+
<CapInput id="template-name" placeholder={props.intl.formatMessage(messages.enterTemplateName)} defaultValue={props.templateName} type="input" onChange={props.templateNameHandler}/>
|
|
20
20
|
</CapColumn>
|
|
21
21
|
<CapColumn span={2} offset={8}>
|
|
22
22
|
<CapButton id="preview-button" type="cancel" onClick={props.previewHandler}> <FormattedMessage {...messages.preview} /> </CapButton>
|
|
@@ -38,6 +38,7 @@ Header.propTypes = {
|
|
|
38
38
|
cancelHandler: PropTypes.func,
|
|
39
39
|
saveHandler: PropTypes.func,
|
|
40
40
|
templateName: PropTypes.string,
|
|
41
|
+
intl: intlShape.isRequired,
|
|
41
42
|
};
|
|
42
43
|
|
|
43
|
-
export default Header;
|
|
44
|
+
export default injectIntl(Header);
|
package/config/app.js
CHANGED
|
@@ -9,7 +9,7 @@ const config = {
|
|
|
9
9
|
login_url: 'auth/login',
|
|
10
10
|
dashboard_url: '/sms',
|
|
11
11
|
dashboard_url_v2: '/v2',
|
|
12
|
-
subscription_api_endpoint: '/arya/api/v1/subscription',
|
|
12
|
+
subscription_api_endpoint: '/arya/api/v1/org-settings/subscription',
|
|
13
13
|
accountConfig: (strs, accountId) => `${window.location.origin}/org/config/AccountAdd?q=a&channelId=2&accountId=${accountId}&edit=1`,
|
|
14
14
|
},
|
|
15
15
|
development: {
|
|
@@ -382,7 +382,7 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
382
382
|
<div>
|
|
383
383
|
{/*<Spin spinning={this.props.Gallery.assetUploading || this.props.Gallery.fetchingAllAssets}>*/}
|
|
384
384
|
<Helmet
|
|
385
|
-
title=
|
|
385
|
+
title={this.props.intl.formatMessage(messages.gallery)}
|
|
386
386
|
/>
|
|
387
387
|
{/* this.props.location.query.type !== 'embedded' && <Row style={{marginBottom: '16px'}}>
|
|
388
388
|
<Col>
|
package/containers/Cap/index.js
CHANGED
|
@@ -164,8 +164,9 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
164
164
|
|
|
165
165
|
getMappedLocale(locale) {
|
|
166
166
|
const map = {
|
|
167
|
-
'en': 'en',
|
|
167
|
+
'en': 'en-US',
|
|
168
168
|
'zh-cn': 'zh',
|
|
169
|
+
'en-US': 'en-US',
|
|
169
170
|
'zh': 'zh',
|
|
170
171
|
};
|
|
171
172
|
return map[locale];
|
|
@@ -208,10 +209,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
208
209
|
if (!_.isEmpty(orgList)) {
|
|
209
210
|
_.forEach(orgList, (item) => {
|
|
210
211
|
const id = item.orgID;
|
|
211
|
-
|
|
212
|
-
if (id === 486) {
|
|
213
|
-
name = 'Demo Org';
|
|
214
|
-
}
|
|
212
|
+
const name = item.orgName;
|
|
215
213
|
proxyOrgList.push({ key: id, text: name, value: id });
|
|
216
214
|
});
|
|
217
215
|
}
|
|
@@ -3109,8 +3109,8 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
3109
3109
|
);
|
|
3110
3110
|
const schema = this.state.schema;
|
|
3111
3111
|
const spinning = this.state.loading || (this.props.Email && "createTemplateInProgress" in this.props.Email && this.props.Email.createTemplateInProgress) || (this.props.Email.assetUploading !== undefined && this.props.Email.assetUploading);
|
|
3112
|
-
const previewHeader = (<h3>
|
|
3113
|
-
const imagePreviewHeader = (<h3>
|
|
3112
|
+
const previewHeader = (<h3>{this.props.intl.formatMessage(messages.h3emailPreview)}</h3>);
|
|
3113
|
+
const imagePreviewHeader = (<h3>{this.props.intl.formatMessage(messages.h3imageSelection)}</h3>);
|
|
3114
3114
|
const imagePreviewContent = (
|
|
3115
3115
|
<div>
|
|
3116
3116
|
<div>
|
|
@@ -278,4 +278,12 @@ export default defineMessages({
|
|
|
278
278
|
id: 'creatives.containers.Email.Create.creatives',
|
|
279
279
|
defaultMessage: "Creatives",
|
|
280
280
|
},
|
|
281
|
+
"h3emailPreview": {
|
|
282
|
+
id: 'creatives.containers.Email.Create.h3emailPreview',
|
|
283
|
+
defaultMessage: "Email preview",
|
|
284
|
+
},
|
|
285
|
+
"h3imageSelection": {
|
|
286
|
+
id: 'creatives.containers.Email.Create.h3imageSelection',
|
|
287
|
+
defaultMessage: "Image selection",
|
|
288
|
+
},
|
|
281
289
|
});
|
|
@@ -15,7 +15,7 @@ import zhCN from 'antd/es/locale-provider/zh_CN';
|
|
|
15
15
|
import { connect } from 'react-redux';
|
|
16
16
|
import { createSelector } from 'reselect';
|
|
17
17
|
import { IntlProvider } from 'react-intl';
|
|
18
|
-
|
|
18
|
+
import moment from 'moment';
|
|
19
19
|
import { makeSelectLocale } from './selectors';
|
|
20
20
|
|
|
21
21
|
export class LanguageProvider extends React.PureComponent { // eslint-disable-line react/prefer-stateless-function
|
|
@@ -37,6 +37,7 @@ export class LanguageProvider extends React.PureComponent { // eslint-disable-li
|
|
|
37
37
|
zh: zhCN,
|
|
38
38
|
};
|
|
39
39
|
const jLocale = localStorage.getItem('jlocale') || 'en';
|
|
40
|
+
moment.locale(jLocale);
|
|
40
41
|
const file = mappedLocale[jLocale];
|
|
41
42
|
return (
|
|
42
43
|
<ConfigProvider locale={file}>
|
|
@@ -1344,7 +1344,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1344
1344
|
className="search-text"
|
|
1345
1345
|
style={{width: '210px'}}
|
|
1346
1346
|
placeholder={this.props.intl.formatMessage(messages.searchText)}
|
|
1347
|
-
prefix={<i className="material-icons" style={{ margin: '0', fontSize: '16px'}}>
|
|
1347
|
+
prefix={<i className="material-icons" style={{ margin: '0', fontSize: '16px'}}>search</i>}
|
|
1348
1348
|
value={this.state.searchText}
|
|
1349
1349
|
onChange={(e) => this.searchTemplate(e.target.value)}
|
|
1350
1350
|
/>
|
|
@@ -1555,7 +1555,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1555
1555
|
<Breadcrumb>
|
|
1556
1556
|
<BreadcrumbItem>{this.props.intl.formatMessage(messages.campaigns)}</BreadcrumbItem>
|
|
1557
1557
|
<BreadcrumbItem>{this.props.intl.formatMessage(messages.creatives)}</BreadcrumbItem>
|
|
1558
|
-
<BreadcrumbItem>{
|
|
1558
|
+
<BreadcrumbItem>{this.props.intl.formatMessage(messages[this.state.channel]) }</BreadcrumbItem>
|
|
1559
1559
|
</Breadcrumb>
|
|
1560
1560
|
}
|
|
1561
1561
|
</Col>
|
|
@@ -118,10 +118,6 @@ export default defineMessages({
|
|
|
118
118
|
id: 'creatives.containers.Templates.useEditor',
|
|
119
119
|
defaultMessage: "Use Editor",
|
|
120
120
|
},
|
|
121
|
-
"search": {
|
|
122
|
-
id: 'creatives.containers.Templates.search',
|
|
123
|
-
defaultMessage: "Search",
|
|
124
|
-
},
|
|
125
121
|
"blankTemplate": {
|
|
126
122
|
id: 'creatives.containers.Templates.blankTemplate',
|
|
127
123
|
defaultMessage: "Blank template",
|
|
@@ -310,4 +306,28 @@ export default defineMessages({
|
|
|
310
306
|
id: 'creatives.containers.Templates.descriptionTemplates',
|
|
311
307
|
defaultMessage: 'Description of templates',
|
|
312
308
|
},
|
|
309
|
+
"Sms": {
|
|
310
|
+
id: 'creatives.containers.Templates.Sms',
|
|
311
|
+
defaultMessage: 'Sms',
|
|
312
|
+
},
|
|
313
|
+
"mobilepush": {
|
|
314
|
+
id: 'creatives.containers.Templates.mobilepush',
|
|
315
|
+
defaultMessage: 'mobilepush',
|
|
316
|
+
},
|
|
317
|
+
"Gallery": {
|
|
318
|
+
id: 'creatives.containers.Templates.Gallery',
|
|
319
|
+
defaultMessage: 'Gallery',
|
|
320
|
+
},
|
|
321
|
+
"Email": {
|
|
322
|
+
id: 'creatives.containers.Templates.Email',
|
|
323
|
+
defaultMessage: 'Email',
|
|
324
|
+
},
|
|
325
|
+
"Ebill": {
|
|
326
|
+
id: 'creatives.containers.Templates.Ebill',
|
|
327
|
+
defaultMessage: 'Ebill',
|
|
328
|
+
},
|
|
329
|
+
"Line": {
|
|
330
|
+
id: 'creatives.containers.Templates.Line',
|
|
331
|
+
defaultMessage: 'Line',
|
|
332
|
+
},
|
|
313
333
|
});
|
|
@@ -138,4 +138,28 @@ export default defineMessages({
|
|
|
138
138
|
id: 'creatives.containers.Create.Only_followers',
|
|
139
139
|
defaultMessage: 'Only followers',
|
|
140
140
|
},
|
|
141
|
+
'Upload Image': {
|
|
142
|
+
id: 'creatives.containers.Create.Upload_Image',
|
|
143
|
+
defaultMessage: 'Upload Image',
|
|
144
|
+
},
|
|
145
|
+
'Whether to display the graphic cover on the graphic details page': {
|
|
146
|
+
id: 'creatives.containers.Create.graphic_details_page',
|
|
147
|
+
defaultMessage: 'Whether to display the graphic cover on the graphic details page',
|
|
148
|
+
},
|
|
149
|
+
'Source link*': {
|
|
150
|
+
id: 'creatives.containers.Create.Source_link',
|
|
151
|
+
defaultMessage: 'Source link*',
|
|
152
|
+
},
|
|
153
|
+
'to be displayed on the graphic details page': {
|
|
154
|
+
id: 'creatives.containers.Create.to_be_displayed_on_the_graphic_details_page',
|
|
155
|
+
defaultMessage: 'to be displayed on the graphic details page',
|
|
156
|
+
},
|
|
157
|
+
'Insert Image': {
|
|
158
|
+
id: 'creatives.containers.Create.Insert_Image',
|
|
159
|
+
defaultMessage: 'Insert Image',
|
|
160
|
+
},
|
|
161
|
+
'Example: http://example.com': {
|
|
162
|
+
id: 'creatives.containers.Create.http_example',
|
|
163
|
+
defaultMessage: 'Example: http://example.com',
|
|
164
|
+
},
|
|
141
165
|
});
|
package/i18n.js
CHANGED
|
@@ -4,15 +4,16 @@
|
|
|
4
4
|
* This will setup the i18n language files and locale data for your app.
|
|
5
5
|
*
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const addLocaleData = require('react-intl').addLocaleData;
|
|
8
|
+
const enLocaleData = require('react-intl/locale-data/en');
|
|
9
|
+
const zhLocaleData = require('react-intl/locale-data/zh');
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
import zhTranslationMessages from './translations/zh.json';
|
|
11
|
+
const enTranslationMessages = require('./translations/en.json');
|
|
12
|
+
const zhTranslationMessages = require('./translations/zh.json');
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
const DEFAULT_LOCALE = 'en';
|
|
15
|
+
|
|
16
|
+
const appLocales = [
|
|
16
17
|
'en',
|
|
17
18
|
'zh',
|
|
18
19
|
];
|
|
@@ -20,7 +21,7 @@ export const appLocales = [
|
|
|
20
21
|
addLocaleData(enLocaleData);
|
|
21
22
|
addLocaleData(zhLocaleData);
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
const formatTranslationMessages = (locale, messages) => {
|
|
24
25
|
const defaultFormattedMessages = locale !== DEFAULT_LOCALE
|
|
25
26
|
? formatTranslationMessages(DEFAULT_LOCALE, enTranslationMessages)
|
|
26
27
|
: {};
|
|
@@ -33,7 +34,13 @@ export const formatTranslationMessages = (locale, messages) => {
|
|
|
33
34
|
}, {});
|
|
34
35
|
};
|
|
35
36
|
|
|
36
|
-
|
|
37
|
+
const translationMessages = {
|
|
37
38
|
en: formatTranslationMessages('en', enTranslationMessages),
|
|
38
39
|
zh: formatTranslationMessages('zh', zhTranslationMessages),
|
|
39
40
|
};
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
exports.appLocales = appLocales;
|
|
44
|
+
exports.formatTranslationMessages = formatTranslationMessages;
|
|
45
|
+
exports.translationMessages = translationMessages;
|
|
46
|
+
exports.DEFAULT_LOCALE = DEFAULT_LOCALE;
|