diff --git a/.eslintrc.es6.json b/.eslintrc.es6.json index 1f36cee907..a3d7a661a8 100644 --- a/.eslintrc.es6.json +++ b/.eslintrc.es6.json @@ -39,7 +39,7 @@ "jsx-a11y/no-static-element-interactions": 0, "jsx-a11y/alt-text": 0, - "comma-dangle": 0, + "comma-dangle": ["error", "always-multiline"], "func-names": 0, "object-shorthand": 0, "no-bitwise": 0, diff --git a/assets/js/src/form/fields/checkbox.jsx b/assets/js/src/form/fields/checkbox.jsx index b70a2f0af8..ddf8c1960e 100644 --- a/assets/js/src/form/fields/checkbox.jsx +++ b/assets/js/src/form/fields/checkbox.jsx @@ -1,5 +1,5 @@ define([ - 'react' + 'react', ], ( React @@ -42,7 +42,7 @@ define([ { options } ); - } + }, }); return FormFieldCheckbox; diff --git a/assets/js/src/form/fields/date.jsx b/assets/js/src/form/fields/date.jsx index bbbf78c6c5..8ced311921 100644 --- a/assets/js/src/form/fields/date.jsx +++ b/assets/js/src/form/fields/date.jsx @@ -104,7 +104,7 @@ define([ this.state = { year: '', month: '', - day: '' + day: '', }; } componentDidMount() { @@ -132,7 +132,7 @@ define([ this.setState({ year: dateTime.format('YYYY'), month: dateTime.format('M'), - day: dateTime.format('D') + day: dateTime.format('D'), }); } formatValue() { @@ -145,26 +145,26 @@ define([ value = { 'year': this.state.year, 'month': this.state.month, - 'day': this.state.day + 'day': this.state.day, }; break; case 'year_month': value = { 'year': this.state.year, - 'month': this.state.month + 'month': this.state.month, }; break; case 'month': value = { - 'month': this.state.month + 'month': this.state.month, }; break; case 'year': value = { - 'year': this.state.year + 'year': this.state.year, }; break; } @@ -184,13 +184,13 @@ define([ const value = ~~(e.target.value); this.setState({ - [`${property}`]: value + [`${property}`]: value, }, () => { this.props.onValueChange({ target: { name: field, - value: this.formatValue() - } + value: this.formatValue(), + }, }); }); } diff --git a/assets/js/src/form/fields/field.jsx b/assets/js/src/form/fields/field.jsx index 7cbf3710dc..ff856c4630 100644 --- a/assets/js/src/form/fields/field.jsx +++ b/assets/js/src/form/fields/field.jsx @@ -92,7 +92,7 @@ define([ index: index, field: subfield, item: this.props.item, - onValueChange: this.props.onValueChange || false + onValueChange: this.props.onValueChange || false, }); }); } else { @@ -121,7 +121,7 @@ define([ ); - } + }, }); return FormField; diff --git a/assets/js/src/form/fields/radio.jsx b/assets/js/src/form/fields/radio.jsx index 9f221383f5..51ea7e8e70 100644 --- a/assets/js/src/form/fields/radio.jsx +++ b/assets/js/src/form/fields/radio.jsx @@ -1,5 +1,5 @@ define([ - 'react' + 'react', ], ( React @@ -34,7 +34,7 @@ define([ { options } ); - } + }, }); return FormFieldRadio; diff --git a/assets/js/src/form/fields/select.jsx b/assets/js/src/form/fields/select.jsx index e13cfe5e18..b67ca29f0b 100644 --- a/assets/js/src/form/fields/select.jsx +++ b/assets/js/src/form/fields/select.jsx @@ -70,7 +70,7 @@ const FormFieldSelect = React.createClass({ {options} ); - } + }, }); module.exports = FormFieldSelect; diff --git a/assets/js/src/form/fields/selection.jsx b/assets/js/src/form/fields/selection.jsx index 9732e53c72..48fb7b1a28 100644 --- a/assets/js/src/form/fields/selection.jsx +++ b/assets/js/src/form/fields/selection.jsx @@ -2,7 +2,7 @@ define([ 'react', 'react-dom', 'jquery', - 'select2' + 'select2', ], ( React, @@ -13,7 +13,7 @@ define([ getInitialState: function () { return { items: [], - select2: false + select2: false, }; }, componentWillMount: function () { @@ -67,7 +67,7 @@ define([ return item.text; } } - } + }, }); let hasRemoved = false; @@ -111,7 +111,7 @@ define([ } this.setState({ - items: items + items: items, }); } }, @@ -126,8 +126,8 @@ define([ this.props.onValueChange({ target: { value: transformedValue, - name: this.props.field.name - } + name: this.props.field.name, + }, }); } }, @@ -186,7 +186,7 @@ define([ {...this.props.field.validation} >{ options } ); - } + }, }); return Selection; diff --git a/assets/js/src/form/fields/text.jsx b/assets/js/src/form/fields/text.jsx index ed9faf7387..43d5ff115c 100644 --- a/assets/js/src/form/fields/text.jsx +++ b/assets/js/src/form/fields/text.jsx @@ -29,7 +29,7 @@ const FormFieldText = React.createClass({ {...this.props.field.validation} /> ); - } + }, }); module.exports = FormFieldText; diff --git a/assets/js/src/form/fields/textarea.jsx b/assets/js/src/form/fields/textarea.jsx index 0ba61bd5a1..e43e7673cc 100644 --- a/assets/js/src/form/fields/textarea.jsx +++ b/assets/js/src/form/fields/textarea.jsx @@ -1,5 +1,5 @@ define([ - 'react' + 'react', ], ( React @@ -19,7 +19,7 @@ define([ {...this.props.field.validation} /> ); - } + }, }); return FormFieldTextarea; diff --git a/assets/js/src/form/form.jsx b/assets/js/src/form/form.jsx index f5bcc307a0..2a3133267b 100644 --- a/assets/js/src/form/form.jsx +++ b/assets/js/src/form/form.jsx @@ -4,7 +4,7 @@ define( 'mailpoet', 'classnames', 'react-router', - 'form/fields/field.jsx' + 'form/fields/field.jsx', ], ( React, @@ -16,7 +16,7 @@ define( const Form = React.createClass({ contextTypes: { - router: React.PropTypes.object.isRequired + router: React.PropTypes.object.isRequired, }, getDefaultProps: function () { return { @@ -27,7 +27,7 @@ define( return { loading: false, errors: [], - item: {} + item: {}, }; }, getValues: function () { @@ -42,7 +42,7 @@ define( this.loadItem(this.props.params.id); } else { this.setState({ - item: jQuery('.mailpoet_form').serializeObject() + item: jQuery('.mailpoet_form').serializeObject(), }); } } @@ -51,7 +51,7 @@ define( if(props.params.id === undefined) { this.setState({ loading: false, - item: {} + item: {}, }); if (props.item === undefined) { this.refs.form.reset(); @@ -68,17 +68,17 @@ define( endpoint: this.props.endpoint, action: 'get', data: { - id: id - } + id: id, + }, }).done((response) => { this.setState({ loading: false, - item: response.data + item: response.data, }); }).fail(() => { this.setState({ loading: false, - item: {} + item: {}, }, function () { this.context.router.push('/new'); }); @@ -116,7 +116,7 @@ define( api_version: window.mailpoet_api_version, endpoint: this.props.endpoint, action: 'save', - data: item + data: item, }).always(() => { this.setState({ loading: false }); }).done(() => { @@ -147,7 +147,7 @@ define( item[field] = e.target.value; this.setState({ - item: item + item: item, }); return true; } @@ -238,7 +238,7 @@ define( { afterFormContent } ); - } + }, }); return Form; diff --git a/assets/js/src/forms/forms.jsx b/assets/js/src/forms/forms.jsx index dd97a0b36b..ffcf699bae 100644 --- a/assets/js/src/forms/forms.jsx +++ b/assets/js/src/forms/forms.jsx @@ -9,7 +9,7 @@ const history = useRouterHistory(createHashHistory)({ queryKey: false }); const App = React.createClass({ render() { return this.props.children; - } + }, }); const container = document.getElementById('forms_container'); diff --git a/assets/js/src/forms/list.jsx b/assets/js/src/forms/list.jsx index 173e367565..f90ce42389 100644 --- a/assets/js/src/forms/list.jsx +++ b/assets/js/src/forms/list.jsx @@ -7,21 +7,21 @@ const columns = [ { name: 'name', label: MailPoet.I18n.t('formName'), - sortable: true + sortable: true, }, { name: 'segments', - label: MailPoet.I18n.t('segments') + label: MailPoet.I18n.t('segments'), }, { name: 'signups', - label: MailPoet.I18n.t('signups') + label: MailPoet.I18n.t('signups'), }, { name: 'created_at', label: MailPoet.I18n.t('createdOn'), - sortable: true - } + sortable: true, + }, ]; const messages = { @@ -69,15 +69,15 @@ const messages = { ).replace('%$1d', count.toLocaleString()); } MailPoet.Notice.success(message); - } + }, }; const bulk_actions = [ { name: 'trash', label: MailPoet.I18n.t('moveToTrash'), - onSuccess: messages.onTrash - } + onSuccess: messages.onTrash, + }, ]; const item_actions = [ @@ -88,7 +88,7 @@ const item_actions = [ return ( {MailPoet.I18n.t('edit')} ); - } + }, }, { name: 'duplicate', @@ -99,8 +99,8 @@ const item_actions = [ endpoint: 'forms', action: 'duplicate', data: { - id: item.id - } + id: item.id, + }, }).done((response) => { MailPoet.Notice.success( (MailPoet.I18n.t('formDuplicated')).replace('%$1s', response.data.name) @@ -114,11 +114,11 @@ const item_actions = [ ); } }); - } + }, }, { - name: 'trash' - } + name: 'trash', + }, ]; const FormList = React.createClass({ @@ -126,7 +126,7 @@ const FormList = React.createClass({ MailPoet.Ajax.post({ api_version: window.mailpoet_api_version, endpoint: 'forms', - action: 'create' + action: 'create', }).done((response) => { window.location = mailpoet_form_edit_url + response.data.id; }).fail((response) => { @@ -203,7 +203,7 @@ const FormList = React.createClass({ /> ); - } + }, }); module.exports = FormList; diff --git a/assets/js/src/help/help.jsx b/assets/js/src/help/help.jsx index ba7e0c4866..67e0e5a10a 100644 --- a/assets/js/src/help/help.jsx +++ b/assets/js/src/help/help.jsx @@ -11,7 +11,7 @@ const history = useRouterHistory(createHashHistory)({ queryKey: false }); const App = React.createClass({ render() { return this.props.children; - } + }, }); const container = document.getElementById('help_container'); diff --git a/assets/js/src/help/tabs.jsx b/assets/js/src/help/tabs.jsx index 5cd1de4c37..991f617eac 100644 --- a/assets/js/src/help/tabs.jsx +++ b/assets/js/src/help/tabs.jsx @@ -7,12 +7,12 @@ const tabs = [ { name: 'knowledgeBase', label: MailPoet.I18n.t('tabKnowledgeBaseTitle'), - link: '/knowledgeBase' + link: '/knowledgeBase', }, { name: 'systemInfo', label: MailPoet.I18n.t('tabSystemInfoTitle'), - link: '/systemInfo' + link: '/systemInfo', }, ]; diff --git a/assets/js/src/listing/bulk_actions.jsx b/assets/js/src/listing/bulk_actions.jsx index 8892fda947..7609845803 100644 --- a/assets/js/src/listing/bulk_actions.jsx +++ b/assets/js/src/listing/bulk_actions.jsx @@ -1,6 +1,6 @@ define([ 'react', - 'mailpoet' + 'mailpoet', ], ( React, @@ -10,20 +10,20 @@ define([ getInitialState: function () { return { action: false, - extra: false + extra: false, }; }, handleChangeAction: function (e) { this.setState({ action: e.target.value, - extra: false + extra: false, }, () => { const action = this.getSelectedAction(); // action on select callback if(action !== null && action['onSelect'] !== undefined) { this.setState({ - extra: action.onSelect(e) + extra: action.onSelect(e), }); } }); @@ -61,7 +61,7 @@ define([ this.setState({ action: false, - extra: false + extra: false, }); }, getSelectedAction: function () { @@ -115,7 +115,7 @@ define([ { this.state.extra } ); - } + }, }); return ListingBulkActions; diff --git a/assets/js/src/listing/filters.jsx b/assets/js/src/listing/filters.jsx index facbbc65d0..be7c974269 100644 --- a/assets/js/src/listing/filters.jsx +++ b/assets/js/src/listing/filters.jsx @@ -1,7 +1,7 @@ define([ 'react', 'jquery', - 'mailpoet' + 'mailpoet', ], ( React, @@ -100,7 +100,7 @@ define([ { empty_trash } ); - } + }, }); return ListingFilters; diff --git a/assets/js/src/listing/groups.jsx b/assets/js/src/listing/groups.jsx index c38049aad4..260e308d7c 100644 --- a/assets/js/src/listing/groups.jsx +++ b/assets/js/src/listing/groups.jsx @@ -32,7 +32,7 @@ define(['react', 'classnames'], (React, classNames) => { { groups } ); - } + }, }); return ListingGroups; diff --git a/assets/js/src/listing/header.jsx b/assets/js/src/listing/header.jsx index fe8a85831e..d2c3333f65 100644 --- a/assets/js/src/listing/header.jsx +++ b/assets/js/src/listing/header.jsx @@ -48,7 +48,7 @@ const ListingHeader = React.createClass({ {columns} ); - } + }, }); const ListingColumn = React.createClass({ @@ -85,7 +85,7 @@ const ListingColumn = React.createClass({ width={ this.props.column.width || null } >{label} ); - } + }, }); module.exports = ListingHeader; diff --git a/assets/js/src/listing/listing.jsx b/assets/js/src/listing/listing.jsx index 38e7c3d1d2..f3b92c6191 100644 --- a/assets/js/src/listing/listing.jsx +++ b/assets/js/src/listing/listing.jsx @@ -14,7 +14,7 @@ import ListingFilters from 'listing/filters.jsx'; const ListingItem = React.createClass({ getInitialState: function () { return { - expanded: false + expanded: false, }; }, handleSelectItem: function (e) { @@ -191,7 +191,7 @@ const ListingItem = React.createClass({ { this.props.onRenderItem(this.props.item, actions) } ); - } + }, }); @@ -229,7 +229,7 @@ const ListingItems = React.createClass({ { 'mailpoet_hidden': ( this.props.selection === false || (this.props.count <= this.props.limit) - ) + ), } ); @@ -283,12 +283,12 @@ const ListingItems = React.createClass({ ); } - } + }, }); const Listing = React.createClass({ contextTypes: { - router: React.PropTypes.object.isRequired + router: React.PropTypes.object.isRequired, }, getInitialState: function () { return { @@ -306,7 +306,7 @@ const Listing = React.createClass({ filter: {}, selected_ids: [], selection: false, - meta: {} + meta: {}, }; }, getParam: function (param) { @@ -378,7 +378,7 @@ const Listing = React.createClass({ 'search', 'page', 'sort_by', - 'sort_order' + 'sort_order', ].indexOf(key) !== -1 ); }) @@ -463,8 +463,8 @@ const Listing = React.createClass({ filter: this.state.filter, search: this.state.search, sort_by: this.state.sort_by, - sort_order: this.state.sort_order - } + sort_order: this.state.sort_order, + }, }).always(() => { this.setState({ loading: false }); }).done((response) => { @@ -473,7 +473,7 @@ const Listing = React.createClass({ filters: response.meta.filters || {}, groups: response.meta.groups || [], count: response.meta.count || 0, - meta: _.omit(response.meta, ['filters', 'groups', 'count']) + meta: _.omit(response.meta, ['filters', 'groups', 'count']), }, () => { // if viewing an empty trash if (this.state.group === 'trash' && response.meta.count === 0) { @@ -499,7 +499,7 @@ const Listing = React.createClass({ handleRestoreItem: function (id) { this.setState({ loading: true, - page: 1 + page: 1, }); MailPoet.Ajax.post({ @@ -507,8 +507,8 @@ const Listing = React.createClass({ endpoint: this.props.endpoint, action: 'restore', data: { - id: id - } + id: id, + }, }).done((response) => { if ( this.props.messages !== undefined @@ -527,7 +527,7 @@ const Listing = React.createClass({ handleTrashItem: function (id) { this.setState({ loading: true, - page: 1 + page: 1, }); MailPoet.Ajax.post({ @@ -535,8 +535,8 @@ const Listing = React.createClass({ endpoint: this.props.endpoint, action: 'trash', data: { - id: id - } + id: id, + }, }).done((response) => { if ( this.props.messages !== undefined @@ -555,7 +555,7 @@ const Listing = React.createClass({ handleDeleteItem: function (id) { this.setState({ loading: true, - page: 1 + page: 1, }); MailPoet.Ajax.post({ @@ -563,8 +563,8 @@ const Listing = React.createClass({ endpoint: this.props.endpoint, action: 'delete', data: { - id: id - } + id: id, + }, }).done((response) => { if ( this.props.messages !== undefined @@ -583,7 +583,7 @@ const Listing = React.createClass({ handleEmptyTrash: function () { return this.handleBulkAction('all', { action: 'delete', - group: 'trash' + group: 'trash', }).done((response) => { MailPoet.Notice.success( MailPoet.I18n.t('permanentlyDeleted').replace('%d', response.meta.count) @@ -615,7 +615,7 @@ const Listing = React.createClass({ limit: 0, filter: this.state.filter, group: this.state.group, - search: this.state.search + search: this.state.search, }; if (selected_ids !== 'all') { data.listing.selection = selected_ids; @@ -625,7 +625,7 @@ const Listing = React.createClass({ api_version: window.mailpoet_api_version, endpoint: this.props.endpoint, action: 'bulkAction', - data: data + data: data, }).done(() => { this.getItems(); }).fail((response) => { @@ -642,7 +642,7 @@ const Listing = React.createClass({ search: search, page: 1, selection: false, - selected_ids: [] + selected_ids: [], }, () => { this.setParams(); }); @@ -673,7 +673,7 @@ const Listing = React.createClass({ this.setState({ selection: selection, - selected_ids: selected_ids + selected_ids: selected_ids, }); }, handleSelectItems: function (is_checked) { @@ -686,7 +686,7 @@ const Listing = React.createClass({ this.setState({ selected_ids: selected_ids, - selection: 'page' + selection: 'page', }); } }, @@ -696,20 +696,20 @@ const Listing = React.createClass({ } else { this.setState({ selection: 'all', - selected_ids: [] + selected_ids: [], }); } }, clearSelection: function () { this.setState({ selection: false, - selected_ids: [] + selected_ids: [], }); }, handleFilter: function (filters) { this.setState({ filter: filters, - page: 1 + page: 1, }, () => { this.setParams(); }); @@ -722,7 +722,7 @@ const Listing = React.createClass({ group: group, filter: {}, search: '', - page: 1 + page: 1, }, () => { this.setParams(); }); @@ -731,7 +731,7 @@ const Listing = React.createClass({ this.setState({ page: page, selection: false, - selected_ids: [] + selected_ids: [], }, () => { this.setParams(); }); @@ -762,13 +762,13 @@ const Listing = React.createClass({ { name: 'restore', label: MailPoet.I18n.t('restore'), - onSuccess: this.props.messages.onRestore + onSuccess: this.props.messages.onRestore, }, { name: 'delete', label: MailPoet.I18n.t('deletePermanently'), - onSuccess: this.props.messages.onDelete - } + onSuccess: this.props.messages.onDelete, + }, ]; } @@ -897,7 +897,7 @@ const Listing = React.createClass({ ); - } + }, }); module.exports = Listing; diff --git a/assets/js/src/listing/pages.jsx b/assets/js/src/listing/pages.jsx index 9ac9fe145b..dc6f183465 100644 --- a/assets/js/src/listing/pages.jsx +++ b/assets/js/src/listing/pages.jsx @@ -1,7 +1,7 @@ define([ 'react', 'classnames', - 'mailpoet' + 'mailpoet', ], ( React, classNames, @@ -11,12 +11,12 @@ define([ const ListingPages = React.createClass({ getInitialState: function () { return { - page: null + page: null, }; }, setPage: function (page) { this.setState({ - page: null + page: null, }, () => { this.props.onSetPage(this.constrainPage(page)); }); @@ -47,7 +47,7 @@ define([ }, handleChangeManualPage: function (e) { this.setState({ - page: e.target.value + page: e.target.value, }); }, handleBlurManualPage: function (e) { @@ -178,7 +178,7 @@ define([ ); } - } + }, }); return ListingPages; diff --git a/assets/js/src/listing/search.jsx b/assets/js/src/listing/search.jsx index f3a9cf9b93..8d29211aaa 100644 --- a/assets/js/src/listing/search.jsx +++ b/assets/js/src/listing/search.jsx @@ -1,6 +1,6 @@ define([ 'mailpoet', - 'react' + 'react', ], ( MailPoet, React @@ -40,7 +40,7 @@ define([ ); } - } + }, }); return ListingSearch; diff --git a/assets/js/src/newsletters/badges/stats.jsx b/assets/js/src/newsletters/badges/stats.jsx index 57933e5352..dbd993545a 100644 --- a/assets/js/src/newsletters/badges/stats.jsx +++ b/assets/js/src/newsletters/badges/stats.jsx @@ -6,16 +6,16 @@ import Badge from './badge.jsx'; const badges = { excellent: { name: MailPoet.I18n.t('excellentBadgeName'), - tooltipTitle: MailPoet.I18n.t('excellentBadgeTooltip') + tooltipTitle: MailPoet.I18n.t('excellentBadgeTooltip'), }, good: { name: MailPoet.I18n.t('goodBadgeName'), - tooltipTitle: MailPoet.I18n.t('goodBadgeTooltip') + tooltipTitle: MailPoet.I18n.t('goodBadgeTooltip'), }, bad: { name: MailPoet.I18n.t('badBadgeName'), - tooltipTitle: MailPoet.I18n.t('badBadgeTooltip') - } + tooltipTitle: MailPoet.I18n.t('badBadgeTooltip'), + }, }; const stats = { @@ -24,7 +24,7 @@ const stats = { badgeTypes: [ 'excellent', 'good', - 'bad' + 'bad', ], tooltipText: MailPoet.I18n.t('openedStatTooltip'), }, @@ -33,18 +33,18 @@ const stats = { badgeTypes: [ 'excellent', 'good', - 'bad' + 'bad', ], - tooltipText: MailPoet.I18n.t('clickedStatTooltip') + tooltipText: MailPoet.I18n.t('clickedStatTooltip'), }, unsubscribed: { badgeRanges: [3, 1, 0], badgeTypes: [ 'bad', 'good', - 'excellent' + 'excellent', ], - tooltipText: MailPoet.I18n.t('unsubscribedStatTooltip') + tooltipText: MailPoet.I18n.t('unsubscribedStatTooltip'), }, }; diff --git a/assets/js/src/newsletters/breadcrumb.jsx b/assets/js/src/newsletters/breadcrumb.jsx index 7bb72a63df..6a2fa8845f 100644 --- a/assets/js/src/newsletters/breadcrumb.jsx +++ b/assets/js/src/newsletters/breadcrumb.jsx @@ -3,7 +3,7 @@ define( 'react', 'react-router', 'classnames', - 'mailpoet' + 'mailpoet', ], ( React, @@ -21,21 +21,21 @@ define( { name: 'type', label: MailPoet.I18n.t('selectType'), - link: '/new' + link: '/new', }, { name: 'template', - label: MailPoet.I18n.t('template') + label: MailPoet.I18n.t('template'), }, { name: 'editor', - label: MailPoet.I18n.t('designer') + label: MailPoet.I18n.t('designer'), }, { name: 'send', - label: MailPoet.I18n.t('send') - } - ] + label: MailPoet.I18n.t('send'), + }, + ], }; }, render: function () { @@ -67,7 +67,7 @@ define( { steps }

); - } + }, }); return Breadcrumb; diff --git a/assets/js/src/newsletters/listings/mixins.jsx b/assets/js/src/newsletters/listings/mixins.jsx index a32bed8a0c..51ec444d6d 100644 --- a/assets/js/src/newsletters/listings/mixins.jsx +++ b/assets/js/src/newsletters/listings/mixins.jsx @@ -16,8 +16,8 @@ const _QueueMixin = { endpoint: 'sendingQueue', action: 'pause', data: { - newsletter_id: newsletter.id - } + newsletter_id: newsletter.id, + }, }).done(() => { jQuery('#resume_'+newsletter.id).show(); jQuery('#pause_'+newsletter.id).hide(); @@ -36,8 +36,8 @@ const _QueueMixin = { endpoint: 'sendingQueue', action: 'resume', data: { - newsletter_id: newsletter.id - } + newsletter_id: newsletter.id, + }, }).done(() => { jQuery('#pause_'+newsletter.id).show(); jQuery('#resume_'+newsletter.id).hide(); @@ -301,7 +301,7 @@ const _StatisticsMixin = { {after_content} ); - } + }, }; const _MailerMixin = { @@ -356,7 +356,7 @@ const _MailerMixin = { MailPoet.Ajax.post({ api_version: window.mailpoet_api_version, endpoint: 'mailer', - action: 'resumeSending' + action: 'resumeSending', }).done(() => { MailPoet.Notice.hide('mailpoet_mailer_error'); MailPoet.Notice.success(MailPoet.I18n.t('mailerSendingResumedNotice')); @@ -369,7 +369,7 @@ const _MailerMixin = { ); } }); - } + }, }; diff --git a/assets/js/src/newsletters/listings/notification.jsx b/assets/js/src/newsletters/listings/notification.jsx index 3ee3b5646f..90c20b35c3 100644 --- a/assets/js/src/newsletters/listings/notification.jsx +++ b/assets/js/src/newsletters/listings/notification.jsx @@ -13,7 +13,7 @@ import { timeOfDayValues, weekDayValues, monthDayValues, - nthWeekDayValues + nthWeekDayValues, } from 'newsletters/scheduling/common.jsx'; const messages = { @@ -61,42 +61,42 @@ const messages = { ).replace('%$1d', count.toLocaleString()); } MailPoet.Notice.success(message); - } + }, }; const columns = [ { name: 'subject', label: MailPoet.I18n.t('subject'), - sortable: true + sortable: true, }, { name: 'status', label: MailPoet.I18n.t('status'), - width: 100 + width: 100, }, { name: 'settings', - label: MailPoet.I18n.t('settings') + label: MailPoet.I18n.t('settings'), }, { name: 'history', label: MailPoet.I18n.t('history'), - width: 100 + width: 100, }, { name: 'updated_at', label: MailPoet.I18n.t('lastModifiedOn'), - sortable: true - } + sortable: true, + }, ]; const bulk_actions = [ { name: 'trash', label: MailPoet.I18n.t('moveToTrash'), - onSuccess: messages.onTrash - } + onSuccess: messages.onTrash, + }, ]; const newsletter_actions = [ @@ -108,7 +108,7 @@ const newsletter_actions = [ {MailPoet.I18n.t('preview')} ); - } + }, }, { name: 'edit', @@ -118,7 +118,7 @@ const newsletter_actions = [ {MailPoet.I18n.t('edit')} ); - } + }, }, { name: 'duplicate', @@ -129,8 +129,8 @@ const newsletter_actions = [ endpoint: 'newsletters', action: 'duplicate', data: { - id: newsletter.id - } + id: newsletter.id, + }, }).done((response) => { MailPoet.Notice.success( (MailPoet.I18n.t('newsletterDuplicated')).replace( @@ -146,11 +146,11 @@ const newsletter_actions = [ ); } }); - } + }, }, { - name: 'trash' - } + name: 'trash', + }, ]; const NewsletterListNotification = React.createClass({ @@ -166,8 +166,8 @@ const NewsletterListNotification = React.createClass({ action: 'setStatus', data: { id: ~~(e.target.getAttribute('data-id')), - status: e.target.value - } + status: e.target.value, + }, }).done((response) => { if (response.data.status === 'active') { MailPoet.Notice.success(MailPoet.I18n.t('postNotificationActivated')); @@ -335,7 +335,7 @@ const NewsletterListNotification = React.createClass({ /> ); - } + }, }); module.exports = NewsletterListNotification; diff --git a/assets/js/src/newsletters/listings/notification_history.jsx b/assets/js/src/newsletters/listings/notification_history.jsx index 4056d82532..7580a7298e 100644 --- a/assets/js/src/newsletters/listings/notification_history.jsx +++ b/assets/js/src/newsletters/listings/notification_history.jsx @@ -10,7 +10,7 @@ import ListingTabs from 'newsletters/listings/tabs.jsx'; import { QueueMixin, StatisticsMixin, - MailerMixin + MailerMixin, } from 'newsletters/listings/mixins.jsx'; const mailpoet_tracking_enabled = (!!(window['mailpoet_tracking_enabled'])); @@ -22,21 +22,21 @@ const columns = [ }, { name: 'status', - label: MailPoet.I18n.t('status') + label: MailPoet.I18n.t('status'), }, { name: 'segments', - label: MailPoet.I18n.t('lists') + label: MailPoet.I18n.t('lists'), }, { name: 'statistics', label: MailPoet.I18n.t('statistics'), - display: mailpoet_tracking_enabled + display: mailpoet_tracking_enabled, }, { name: 'sent_at', label: MailPoet.I18n.t('sentOn'), - } + }, ]; let newsletter_actions = [ @@ -48,8 +48,8 @@ let newsletter_actions = [ {MailPoet.I18n.t('preview')} ); - } - } + }, + }, ]; newsletter_actions = Hooks.applyFilters('mailpoet_newsletters_listings_notification_history_actions', newsletter_actions); @@ -126,7 +126,7 @@ const NewsletterListNotificationHistory = React.createClass({ /> ); - } + }, }); module.exports = NewsletterListNotificationHistory; diff --git a/assets/js/src/newsletters/listings/standard.jsx b/assets/js/src/newsletters/listings/standard.jsx index 797cc64418..2e1267e742 100644 --- a/assets/js/src/newsletters/listings/standard.jsx +++ b/assets/js/src/newsletters/listings/standard.jsx @@ -10,7 +10,7 @@ import ListingTabs from 'newsletters/listings/tabs.jsx'; import { QueueMixin, StatisticsMixin, - MailerMixin + MailerMixin, } from 'newsletters/listings/mixins.jsx'; const mailpoet_tracking_enabled = (!!(window['mailpoet_tracking_enabled'])); @@ -60,41 +60,41 @@ const messages = { ).replace('%$1d', count.toLocaleString()); } MailPoet.Notice.success(message); - } + }, }; const columns = [ { name: 'subject', label: MailPoet.I18n.t('subject'), - sortable: true + sortable: true, }, { name: 'status', - label: MailPoet.I18n.t('status') + label: MailPoet.I18n.t('status'), }, { name: 'segments', - label: MailPoet.I18n.t('lists') + label: MailPoet.I18n.t('lists'), }, { name: 'statistics', label: MailPoet.I18n.t('statistics'), - display: mailpoet_tracking_enabled + display: mailpoet_tracking_enabled, }, { name: 'sent_at', label: MailPoet.I18n.t('sentOn'), - sortable: true - } + sortable: true, + }, ]; const bulk_actions = [ { name: 'trash', label: MailPoet.I18n.t('moveToTrash'), - onSuccess: messages.onTrash - } + onSuccess: messages.onTrash, + }, ]; let newsletter_actions = [ @@ -106,7 +106,7 @@ let newsletter_actions = [ {MailPoet.I18n.t('preview')} ); - } + }, }, { name: 'edit', @@ -116,7 +116,7 @@ let newsletter_actions = [ {MailPoet.I18n.t('edit')} ); - } + }, }, { name: 'duplicate', @@ -127,8 +127,8 @@ let newsletter_actions = [ endpoint: 'newsletters', action: 'duplicate', data: { - id: newsletter.id - } + id: newsletter.id, + }, }).done((response) => { MailPoet.Notice.success( (MailPoet.I18n.t('newsletterDuplicated')).replace( @@ -144,11 +144,11 @@ let newsletter_actions = [ ); } }); - } + }, }, { - name: 'trash' - } + name: 'trash', + }, ]; newsletter_actions = Hooks.applyFilters('mailpoet_newsletters_listings_standard_actions', newsletter_actions); @@ -222,7 +222,7 @@ const NewsletterListStandard = React.createClass({ /> ); - } + }, }); module.exports = NewsletterListStandard; diff --git a/assets/js/src/newsletters/listings/tabs.jsx b/assets/js/src/newsletters/listings/tabs.jsx index 32027ef047..ec5a467280 100644 --- a/assets/js/src/newsletters/listings/tabs.jsx +++ b/assets/js/src/newsletters/listings/tabs.jsx @@ -11,19 +11,19 @@ const ListingTabs = React.createClass({ { name: 'standard', label: MailPoet.I18n.t('tabStandardTitle'), - link: '/standard' + link: '/standard', }, { name: 'welcome', label: MailPoet.I18n.t('tabWelcomeTitle'), - link: '/welcome' + link: '/welcome', }, { name: 'notification', label: MailPoet.I18n.t('tabNotificationTitle'), - link: '/notification' - } - ] + link: '/notification', + }, + ], }; }, render() { @@ -47,7 +47,7 @@ const ListingTabs = React.createClass({ { tabs } ); - } + }, }); module.exports = ListingTabs; diff --git a/assets/js/src/newsletters/listings/welcome.jsx b/assets/js/src/newsletters/listings/welcome.jsx index 5740afd7c4..d0f0b09003 100644 --- a/assets/js/src/newsletters/listings/welcome.jsx +++ b/assets/js/src/newsletters/listings/welcome.jsx @@ -60,42 +60,42 @@ const messages = { ).replace('%$1d', count.toLocaleString()); } MailPoet.Notice.success(message); - } + }, }; const columns = [ { name: 'subject', label: MailPoet.I18n.t('subject'), - sortable: true + sortable: true, }, { name: 'status', label: MailPoet.I18n.t('status'), - width: 145 + width: 145, }, { name: 'settings', - label: MailPoet.I18n.t('settings') + label: MailPoet.I18n.t('settings'), }, { name: 'statistics', label: MailPoet.I18n.t('statistics'), - display: mailpoet_tracking_enabled + display: mailpoet_tracking_enabled, }, { name: 'updated_at', label: MailPoet.I18n.t('lastModifiedOn'), - sortable: true - } + sortable: true, + }, ]; const bulk_actions = [ { name: 'trash', label: MailPoet.I18n.t('moveToTrash'), - onSuccess: messages.onTrash - } + onSuccess: messages.onTrash, + }, ]; let newsletter_actions = [ @@ -107,7 +107,7 @@ let newsletter_actions = [ {MailPoet.I18n.t('preview')} ); - } + }, }, { name: 'edit', @@ -117,11 +117,11 @@ let newsletter_actions = [ {MailPoet.I18n.t('edit')} ); - } + }, }, { - name: 'trash' - } + name: 'trash', + }, ]; newsletter_actions = Hooks.applyFilters('mailpoet_newsletters_listings_welcome_notification_actions', newsletter_actions); @@ -139,8 +139,8 @@ const NewsletterListWelcome = React.createClass({ action: 'setStatus', data: { id: ~~(e.target.getAttribute('data-id')), - status: e.target.value - } + status: e.target.value, + }, }).done((response) => { if (response.data.status === 'active') { MailPoet.Notice.success(MailPoet.I18n.t('welcomeEmailActivated')); @@ -313,7 +313,7 @@ const NewsletterListWelcome = React.createClass({ /> ); - } + }, }); module.exports = NewsletterListWelcome; diff --git a/assets/js/src/newsletters/newsletters.jsx b/assets/js/src/newsletters/newsletters.jsx index 106d16b7b1..1c02961ab2 100644 --- a/assets/js/src/newsletters/newsletters.jsx +++ b/assets/js/src/newsletters/newsletters.jsx @@ -21,7 +21,7 @@ const history = useRouterHistory(createHashHistory)({ queryKey: false }); const App = React.createClass({ render() { return this.props.children; - } + }, }); const container = document.getElementById('newsletters_container'); diff --git a/assets/js/src/newsletters/scheduling/common.jsx b/assets/js/src/newsletters/scheduling/common.jsx index 445435e0d3..11122fe5ab 100644 --- a/assets/js/src/newsletters/scheduling/common.jsx +++ b/assets/js/src/newsletters/scheduling/common.jsx @@ -8,7 +8,7 @@ const _timeDelayValues = { 'immediate': MailPoet.I18n.t('delayImmediately'), 'hours': MailPoet.I18n.t('delayHoursAfter'), 'days': MailPoet.I18n.t('delayDaysAfter'), - 'weeks': MailPoet.I18n.t('delayWeeksAfter') + 'weeks': MailPoet.I18n.t('delayWeeksAfter'), }; const _intervalValues = { @@ -16,7 +16,7 @@ const _intervalValues = { 'weekly': MailPoet.I18n.t('weekly'), 'monthly': MailPoet.I18n.t('monthly'), 'nthWeekDay': MailPoet.I18n.t('monthlyEvery'), - 'immediately': MailPoet.I18n.t('immediately') + 'immediately': MailPoet.I18n.t('immediately'), }; // notification emails @@ -42,7 +42,7 @@ const _weekDayValues = { 3: MailPoet.I18n.t('wednesday'), 4: MailPoet.I18n.t('thursday'), 5: MailPoet.I18n.t('friday'), - 6: MailPoet.I18n.t('saturday') + 6: MailPoet.I18n.t('saturday'), }; const NUMBER_OF_DAYS_IN_MONTH = 28; @@ -54,7 +54,7 @@ const _monthDayValues = _.object( const labels = { 0: MailPoet.I18n.t('first'), 1: MailPoet.I18n.t('second'), - 2: MailPoet.I18n.t('third') + 2: MailPoet.I18n.t('third'), }; let label; if (labels[day] !== undefined) { @@ -71,7 +71,7 @@ const _nthWeekDayValues = { '1': MailPoet.I18n.t('first'), '2': MailPoet.I18n.t('second'), '3': MailPoet.I18n.t('third'), - 'L': MailPoet.I18n.t('last') + 'L': MailPoet.I18n.t('last'), }; export { _timeDelayValues as timeDelayValues }; diff --git a/assets/js/src/newsletters/send.jsx b/assets/js/src/newsletters/send.jsx index 3c276a0c0c..b9c6e235ba 100644 --- a/assets/js/src/newsletters/send.jsx +++ b/assets/js/src/newsletters/send.jsx @@ -8,7 +8,7 @@ define( 'newsletters/send/standard.jsx', 'newsletters/send/notification.jsx', 'newsletters/send/welcome.jsx', - 'newsletters/breadcrumb.jsx' + 'newsletters/breadcrumb.jsx', ], ( React, @@ -24,7 +24,7 @@ define( const NewsletterSend = React.createClass({ contextTypes: { - router: React.PropTypes.object.isRequired + router: React.PropTypes.object.isRequired, }, getInitialState: function () { return { @@ -68,18 +68,18 @@ define( endpoint: 'newsletters', action: 'get', data: { - id: id - } + id: id, + }, }).done((response) => { this.setState({ loading: false, item: response.data, - fields: this.getFieldsByNewsletter(response.data) + fields: this.getFieldsByNewsletter(response.data), }); }).fail(() => { this.setState({ loading: false, - item: {} + item: {}, }, () => { this.context.router.push('/new'); }); @@ -103,8 +103,8 @@ define( action: 'setStatus', data: { id: this.props.params.id, - status: 'active' - } + status: 'active', + }, }).done((response) => { // redirect to listing based on newsletter type this.context.router.push(`/${ this.state.item.type || '' }`); @@ -126,8 +126,8 @@ define( endpoint: 'sendingQueue', action: 'add', data: { - newsletter_id: this.props.params.id - } + newsletter_id: this.props.params.id, + }, }).done((response) => { // redirect to listing based on newsletter type this.context.router.push(`/${ this.state.item.type || '' }`); @@ -179,7 +179,7 @@ define( // Store only properties that can be changed on this page const IGNORED_NEWSLETTER_PROPERTIES = [ 'preheader', 'body', 'created_at', 'deleted_at', 'hash', - 'status', 'updated_at', 'type' + 'status', 'updated_at', 'type', ]; const newsletterData = _.omit( data, @@ -210,7 +210,7 @@ define( item[field] = e.target.value; this.setState({ - item: item + item: item, }); return true; }, @@ -254,7 +254,7 @@ define( ); - } + }, }); return NewsletterSend; diff --git a/assets/js/src/newsletters/send/notification.jsx b/assets/js/src/newsletters/send/notification.jsx index 3cdbf3ba4d..0fa3ac4ce3 100644 --- a/assets/js/src/newsletters/send/notification.jsx +++ b/assets/js/src/newsletters/send/notification.jsx @@ -3,7 +3,7 @@ define( 'mailpoet', 'wp-js-hooks', 'newsletters/types/notification/scheduling.jsx', - 'underscore' + 'underscore', ], ( MailPoet, @@ -20,8 +20,8 @@ define( type: 'text', validation: { 'data-parsley-required': true, - 'data-parsley-required-message': MailPoet.I18n.t('emptySubjectLineError') - } + 'data-parsley-required-message': MailPoet.I18n.t('emptySubjectLineError'), + }, }, { name: 'options', @@ -55,8 +55,8 @@ define( }, validation: { 'data-parsley-required': true, - 'data-parsley-required-message': MailPoet.I18n.t('noSegmentsSelectedError') - } + 'data-parsley-required-message': MailPoet.I18n.t('noSegmentsSelectedError'), + }, }, { name: 'sender', @@ -68,8 +68,8 @@ define( type: 'text', placeholder: MailPoet.I18n.t('senderNamePlaceholder'), validation: { - 'data-parsley-required': true - } + 'data-parsley-required': true, + }, }, { name: 'sender_address', @@ -77,10 +77,10 @@ define( placeholder: MailPoet.I18n.t('senderAddressPlaceholder'), validation: { 'data-parsley-required': true, - 'data-parsley-type': 'email' - } - } - ] + 'data-parsley-type': 'email', + }, + }, + ], }, { name: 'reply-to', @@ -91,15 +91,15 @@ define( { name: 'reply_to_name', type: 'text', - placeholder: MailPoet.I18n.t('replyToNamePlaceholder') + placeholder: MailPoet.I18n.t('replyToNamePlaceholder'), }, { name: 'reply_to_address', type: 'text', - placeholder: MailPoet.I18n.t('replyToAddressPlaceholder') - } - ] - } + placeholder: MailPoet.I18n.t('replyToAddressPlaceholder'), + }, + ], + }, ]; fields = Hooks.applyFilters('mailpoet_newsletters_3rd_step_fields', fields); @@ -110,7 +110,7 @@ define( }, getSendButtonOptions: function () { return { - value: MailPoet.I18n.t('activate') + value: MailPoet.I18n.t('activate'), }; }, }; diff --git a/assets/js/src/newsletters/send/standard.jsx b/assets/js/src/newsletters/send/standard.jsx index 67005f7284..0c7922fa6c 100644 --- a/assets/js/src/newsletters/send/standard.jsx +++ b/assets/js/src/newsletters/send/standard.jsx @@ -37,7 +37,7 @@ define( MailPoet.I18n.t('september'), MailPoet.I18n.t('october'), MailPoet.I18n.t('november'), - MailPoet.I18n.t('december') + MailPoet.I18n.t('december'), ], monthNamesShort: [ MailPoet.I18n.t('januaryShort'), @@ -51,7 +51,7 @@ define( MailPoet.I18n.t('septemberShort'), MailPoet.I18n.t('octoberShort'), MailPoet.I18n.t('novemberShort'), - MailPoet.I18n.t('decemberShort') + MailPoet.I18n.t('decemberShort'), ], dayNames: [ MailPoet.I18n.t('sunday'), @@ -60,7 +60,7 @@ define( MailPoet.I18n.t('wednesday'), MailPoet.I18n.t('thursday'), MailPoet.I18n.t('friday'), - MailPoet.I18n.t('saturday') + MailPoet.I18n.t('saturday'), ], dayNamesShort: [ MailPoet.I18n.t('sundayShort'), @@ -69,7 +69,7 @@ define( MailPoet.I18n.t('wednesdayShort'), MailPoet.I18n.t('thursdayShort'), MailPoet.I18n.t('fridayShort'), - MailPoet.I18n.t('saturdayShort') + MailPoet.I18n.t('saturdayShort'), ], dayNamesMin: [ MailPoet.I18n.t('sundayMin'), @@ -78,7 +78,7 @@ define( MailPoet.I18n.t('wednesdayMin'), MailPoet.I18n.t('thursdayMin'), MailPoet.I18n.t('fridayMin'), - MailPoet.I18n.t('saturdayMin') + MailPoet.I18n.t('saturdayMin'), ], }; @@ -100,13 +100,13 @@ define( // Transform string format to Date object return MailPoet.Date.toDate(value, { parseFormat: dateDisplayFormat, - format: format + format: format, }); }; jQuery.datepicker.formatDate = function (format, value) { // Transform Date object to string format const newValue = MailPoet.Date.format(value, { - format: format + format: format, }); return newValue; }; @@ -138,13 +138,13 @@ define( getDisplayDate: function (date) { return MailPoet.Date.format(date, { parseFormat: this.props.storageFormat, - format: this.props.displayFormat + format: this.props.displayFormat, }); }, getStorageDate: function (date) { return MailPoet.Date.format(date, { parseFormat: this.props.displayFormat, - format: this.props.storageFormat + format: this.props.storageFormat, }); }, render: function () { @@ -186,7 +186,7 @@ define( {options} ); - } + }, }); const DateTime = React.createClass({ @@ -219,7 +219,7 @@ define( target: { name: this.props.name || '', value: this.getDateTime(), - } + }, }); } }, @@ -243,7 +243,7 @@ define( validation={this.props.timeValidation} /> ); - } + }, }); const StandardScheduling = React.createClass({ @@ -252,7 +252,7 @@ define( this.props.item[this.props.field.name] || {}, { isScheduled: '0', - scheduledAt: defaultDateTime + scheduledAt: defaultDateTime, } ); }, @@ -264,8 +264,8 @@ define( return this.props.onValueChange({ target: { name: this.props.field.name, - value: _.extend({}, oldValue, newValue) - } + value: _.extend({}, oldValue, newValue), + }, }); }, handleCheckboxChange: function (event) { @@ -325,8 +325,8 @@ define( type: 'text', validation: { 'data-parsley-required': true, - 'data-parsley-required-message': MailPoet.I18n.t('emptySubjectLineError') - } + 'data-parsley-required-message': MailPoet.I18n.t('emptySubjectLineError'), + }, }, { name: 'segments', @@ -354,8 +354,8 @@ define( }, validation: { 'data-parsley-required': true, - 'data-parsley-required-message': MailPoet.I18n.t('noSegmentsSelectedError') - } + 'data-parsley-required-message': MailPoet.I18n.t('noSegmentsSelectedError'), + }, }, { name: 'sender', @@ -367,8 +367,8 @@ define( type: 'text', placeholder: MailPoet.I18n.t('senderNamePlaceholder'), validation: { - 'data-parsley-required': true - } + 'data-parsley-required': true, + }, }, { name: 'sender_address', @@ -376,10 +376,10 @@ define( placeholder: MailPoet.I18n.t('senderAddressPlaceholder'), validation: { 'data-parsley-required': true, - 'data-parsley-type': 'email' - } - } - ] + 'data-parsley-type': 'email', + }, + }, + ], }, { name: 'reply-to', @@ -390,21 +390,21 @@ define( { name: 'reply_to_name', type: 'text', - placeholder: MailPoet.I18n.t('replyToNamePlaceholder') + placeholder: MailPoet.I18n.t('replyToNamePlaceholder'), }, { name: 'reply_to_address', type: 'text', - placeholder: MailPoet.I18n.t('replyToAddressPlaceholder') - } - ] + placeholder: MailPoet.I18n.t('replyToAddressPlaceholder'), + }, + ], }, { name: 'options', label: MailPoet.I18n.t('scheduleIt'), type: 'reactComponent', component: StandardScheduling, - } + }, ]; fields = Hooks.applyFilters('mailpoet_newsletters_3rd_step_fields', fields); @@ -423,7 +423,7 @@ define( const options = { value: (isScheduled ? MailPoet.I18n.t('schedule') - : MailPoet.I18n.t('send')) + : MailPoet.I18n.t('send')), }; if (newsletter.status === 'sent' diff --git a/assets/js/src/newsletters/send/welcome.jsx b/assets/js/src/newsletters/send/welcome.jsx index b7c37f8753..b78b66e799 100644 --- a/assets/js/src/newsletters/send/welcome.jsx +++ b/assets/js/src/newsletters/send/welcome.jsx @@ -2,7 +2,7 @@ define( [ 'mailpoet', 'wp-js-hooks', - 'newsletters/types/welcome/scheduling.jsx' + 'newsletters/types/welcome/scheduling.jsx', ], ( MailPoet, @@ -19,8 +19,8 @@ define( type: 'text', validation: { 'data-parsley-required': true, - 'data-parsley-required-message': MailPoet.I18n.t('emptySubjectLineError') - } + 'data-parsley-required-message': MailPoet.I18n.t('emptySubjectLineError'), + }, }, { name: 'options', @@ -38,8 +38,8 @@ define( type: 'text', placeholder: MailPoet.I18n.t('senderNamePlaceholder'), validation: { - 'data-parsley-required': true - } + 'data-parsley-required': true, + }, }, { name: 'sender_address', @@ -47,10 +47,10 @@ define( placeholder: MailPoet.I18n.t('senderAddressPlaceholder'), validation: { 'data-parsley-required': true, - 'data-parsley-type': 'email' - } - } - ] + 'data-parsley-type': 'email', + }, + }, + ], }, { name: 'reply-to', @@ -61,15 +61,15 @@ define( { name: 'reply_to_name', type: 'text', - placeholder: MailPoet.I18n.t('replyToNamePlaceholder') + placeholder: MailPoet.I18n.t('replyToNamePlaceholder'), }, { name: 'reply_to_address', type: 'text', - placeholder: MailPoet.I18n.t('replyToAddressPlaceholder') - } - ] - } + placeholder: MailPoet.I18n.t('replyToAddressPlaceholder'), + }, + ], + }, ]; fields = Hooks.applyFilters('mailpoet_newsletters_3rd_step_fields', fields); @@ -80,7 +80,7 @@ define( }, getSendButtonOptions: function () { return { - value: MailPoet.I18n.t('activate') + value: MailPoet.I18n.t('activate'), }; }, }; diff --git a/assets/js/src/newsletters/templates.jsx b/assets/js/src/newsletters/templates.jsx index 580c3de426..211bc61543 100644 --- a/assets/js/src/newsletters/templates.jsx +++ b/assets/js/src/newsletters/templates.jsx @@ -5,7 +5,7 @@ define( 'mailpoet', 'react-router', 'classnames', - 'newsletters/breadcrumb.jsx' + 'newsletters/breadcrumb.jsx', ], ( React, @@ -30,7 +30,7 @@ define( api_version: window.mailpoet_api_version, endpoint: 'newsletterTemplates', action: 'save', - data: template + data: template, }).always(() => { MailPoet.Modal.loading(false); }).done((response) => { @@ -86,7 +86,7 @@ define( getInitialState: function () { return { loading: false, - templates: [] + templates: [], }; }, componentDidMount: function () { @@ -112,13 +112,13 @@ define( MailPoet.I18n.t('mailpoetGuideTemplateTitle'), description: MailPoet.I18n.t('mailpoetGuideTemplateDescription'), - readonly: "1" - } + readonly: "1", + }, ]; } this.setState({ templates: response.data, - loading: false + loading: false, }); } }).fail((response) => { @@ -144,8 +144,8 @@ define( action: 'save', data: { id: this.props.params.id, - body: body - } + body: body, + }, }).done((response) => { // TODO: Move this URL elsewhere window.location = 'admin.php?page=mailpoet-newsletter-editor&id=' + response.data.id; @@ -172,8 +172,8 @@ define( endpoint: 'newsletterTemplates', action: 'delete', data: { - id: template.id - } + id: template.id, + }, }).done(() => { this.getTemplates(); }).fail((response) => { @@ -192,7 +192,7 @@ define( MailPoet.Modal.popup({ title: template.name, template: '
', - data: template + data: template, }); }, handleTemplateImport: function () { @@ -272,7 +272,7 @@ define( ); - } + }, }); return NewsletterTemplates; diff --git a/assets/js/src/newsletters/types.jsx b/assets/js/src/newsletters/types.jsx index 9faa884441..7a3a6332b2 100644 --- a/assets/js/src/newsletters/types.jsx +++ b/assets/js/src/newsletters/types.jsx @@ -4,7 +4,7 @@ define( 'mailpoet', 'wp-js-hooks', 'react-router', - 'newsletters/breadcrumb.jsx' + 'newsletters/breadcrumb.jsx', ], ( React, @@ -15,7 +15,7 @@ define( ) => { const NewsletterTypes = React.createClass({ contextTypes: { - router: React.PropTypes.object.isRequired + router: React.PropTypes.object.isRequired, }, setupNewsletter: function (type) { if(type !== undefined) { @@ -30,7 +30,7 @@ define( data: { type: type, subject: MailPoet.I18n.t('draftNewsletterTitle'), - } + }, }).done((response) => { this.context.router.push(`/template/${response.data.id}`); }).fail((response) => { @@ -54,7 +54,7 @@ define( {MailPoet.I18n.t('create')} ); - }.bind(this)() + }.bind(this)(), }, { 'id': 'welcome', @@ -68,7 +68,7 @@ define( ); - }() + }(), }, { 'id': 'notification', @@ -80,8 +80,8 @@ define( {MailPoet.I18n.t('setUp')} ); - }.bind(this)() - } + }.bind(this)(), + }, ]; types = Hooks.applyFilters('mailpoet_newsletters_types', types, this); @@ -114,7 +114,7 @@ define( ); - } + }, }); return NewsletterTypes; diff --git a/assets/js/src/newsletters/types/notification/notification.jsx b/assets/js/src/newsletters/types/notification/notification.jsx index c7592bef35..6c26c56257 100644 --- a/assets/js/src/newsletters/types/notification/notification.jsx +++ b/assets/js/src/newsletters/types/notification/notification.jsx @@ -5,7 +5,7 @@ define( 'react-router', 'mailpoet', 'newsletters/types/notification/scheduling.jsx', - 'newsletters/breadcrumb.jsx' + 'newsletters/breadcrumb.jsx', ], ( _, @@ -24,7 +24,7 @@ define( const NewsletterNotification = React.createClass({ contextTypes: { - router: React.PropTypes.object.isRequired + router: React.PropTypes.object.isRequired, }, getInitialState: function () { return { @@ -34,7 +34,7 @@ define( weekDay: 1, monthDay: 0, nthWeekDay: 1, - } + }, }; }, handleValueChange: function (event) { diff --git a/assets/js/src/newsletters/types/notification/scheduling.jsx b/assets/js/src/newsletters/types/notification/scheduling.jsx index 122643f606..59964f4d86 100644 --- a/assets/js/src/newsletters/types/notification/scheduling.jsx +++ b/assets/js/src/newsletters/types/notification/scheduling.jsx @@ -6,32 +6,32 @@ import { timeOfDayValues, weekDayValues, monthDayValues, - nthWeekDayValues + nthWeekDayValues, } from 'newsletters/scheduling/common.jsx'; const intervalField = { name: 'intervalType', - values: intervalValues + values: intervalValues, }; const timeOfDayField = { name: 'timeOfDay', - values: timeOfDayValues + values: timeOfDayValues, }; const weekDayField = { name: 'weekDay', - values: weekDayValues + values: weekDayValues, }; const monthDayField = { name: 'monthDay', - values: monthDayValues + values: monthDayValues, }; const nthWeekDayField = { name: 'nthWeekDay', - values: nthWeekDayValues + values: nthWeekDayValues, }; const NotificationScheduling = React.createClass({ @@ -47,8 +47,8 @@ const NotificationScheduling = React.createClass({ return this.props.onValueChange({ target: { name: this.props.field.name, - value: _.extend({}, oldValue, newValue) - } + value: _.extend({}, oldValue, newValue), + }, }); }, handleIntervalChange: function (event) { @@ -137,7 +137,7 @@ const NotificationScheduling = React.createClass({ {timeOfDaySelection} ); - } + }, }); module.exports = NotificationScheduling; diff --git a/assets/js/src/newsletters/types/standard.jsx b/assets/js/src/newsletters/types/standard.jsx index 5bb62c21ae..a5e6ea6fc0 100644 --- a/assets/js/src/newsletters/types/standard.jsx +++ b/assets/js/src/newsletters/types/standard.jsx @@ -3,7 +3,7 @@ define( 'react', 'react-router', 'mailpoet', - 'newsletters/breadcrumb.jsx' + 'newsletters/breadcrumb.jsx', ], ( React, @@ -14,7 +14,7 @@ define( const NewsletterStandard = React.createClass({ contextTypes: { - router: React.PropTypes.object.isRequired + router: React.PropTypes.object.isRequired, }, showTemplateSelection: function (newsletterId) { this.context.router.push(`/template/${newsletterId}`); @@ -26,8 +26,8 @@ define( endpoint: 'newsletters', action: 'create', data: { - type: 'standard' - } + type: 'standard', + }, }).done((response) => { this.showTemplateSelection(response.data.id); }).fail((response) => { diff --git a/assets/js/src/newsletters/types/welcome/scheduling.jsx b/assets/js/src/newsletters/types/welcome/scheduling.jsx index 02d6ac174c..4904a55436 100644 --- a/assets/js/src/newsletters/types/welcome/scheduling.jsx +++ b/assets/js/src/newsletters/types/welcome/scheduling.jsx @@ -18,7 +18,7 @@ const events = { values: { 'segment': MailPoet.I18n.t('onSubscriptionToList'), 'user': MailPoet.I18n.t('onWPUserRegistration'), - } + }, }; const availableSegmentValues = _.object(_.map( @@ -31,27 +31,27 @@ const availableSegmentValues = _.object(_.map( const segmentField = { name: 'segment', values: availableSegmentValues, - sortBy: (key, value) => value.toLowerCase() + sortBy: (key, value) => value.toLowerCase(), }; const roleField = { name: 'role', - values: availableRoles + values: availableRoles, }; const afterTimeNumberField = { name: 'afterTimeNumber', - size: 3 + size: 3, }; const afterTimeTypeField = { name: 'afterTimeType', - values: timeDelayValues + values: timeDelayValues, }; const WelcomeScheduling = React.createClass({ contextTypes: { - router: React.PropTypes.object.isRequired + router: React.PropTypes.object.isRequired, }, _getCurrentValue: function () { return (this.props.item[this.props.field.name] || {}); @@ -65,8 +65,8 @@ const WelcomeScheduling = React.createClass({ return this.props.onValueChange({ target: { name: this.props.field.name, - value: _.extend({}, oldValue, newValue) - } + value: _.extend({}, oldValue, newValue), + }, }); }, handleEventChange: function (event) { @@ -106,8 +106,8 @@ const WelcomeScheduling = React.createClass({ action: 'create', data: { type: 'welcome', - options: this.state - } + options: this.state, + }, }).done((response) => { this.showTemplateSelection(response.data.id); }).fail((response) => { diff --git a/assets/js/src/segments/form.jsx b/assets/js/src/segments/form.jsx index 29ff85ba66..00038e4411 100644 --- a/assets/js/src/segments/form.jsx +++ b/assets/js/src/segments/form.jsx @@ -3,7 +3,7 @@ define( 'react', 'react-router', 'mailpoet', - 'form/form.jsx' + 'form/form.jsx', ], ( React, @@ -16,14 +16,14 @@ define( { name: 'name', label: MailPoet.I18n.t('name'), - type: 'text' + type: 'text', }, { name: 'description', label: MailPoet.I18n.t('description'), type: 'textarea', - tip: MailPoet.I18n.t('segmentDescriptionTip') - } + tip: MailPoet.I18n.t('segmentDescriptionTip'), + }, ]; const messages = { @@ -32,7 +32,7 @@ define( }, onCreate: function () { MailPoet.Notice.success(MailPoet.I18n.t('segmentAdded')); - } + }, }; const Link = Router.Link; @@ -54,7 +54,7 @@ define( /> ); - } + }, }); return SegmentForm; diff --git a/assets/js/src/segments/list.jsx b/assets/js/src/segments/list.jsx index a39776ea08..070bb0d52c 100644 --- a/assets/js/src/segments/list.jsx +++ b/assets/js/src/segments/list.jsx @@ -9,33 +9,33 @@ const columns = [ { name: 'name', label: MailPoet.I18n.t('name'), - sortable: true + sortable: true, }, { name: 'description', - label: MailPoet.I18n.t('description') + label: MailPoet.I18n.t('description'), }, { name: 'subscribed', - label: MailPoet.I18n.t('subscribed') + label: MailPoet.I18n.t('subscribed'), }, { name: 'unconfirmed', - label: MailPoet.I18n.t('unconfirmed') + label: MailPoet.I18n.t('unconfirmed'), }, { name: 'unsubscribed', - label: MailPoet.I18n.t('unsubscribed') + label: MailPoet.I18n.t('unsubscribed'), }, { name: 'bounced', - label: MailPoet.I18n.t('bounced') + label: MailPoet.I18n.t('bounced'), }, { name: 'created_at', label: MailPoet.I18n.t('createdOn'), - sortable: true - } + sortable: true, + }, ]; const messages = { @@ -83,15 +83,15 @@ const messages = { ).replace('%$1d', count.toLocaleString()); } MailPoet.Notice.success(message); - } + }, }; const bulk_actions = [ { name: 'trash', label: MailPoet.I18n.t('moveToTrash'), - onSuccess: messages.onTrash - } + onSuccess: messages.onTrash, + }, ]; const item_actions = [ @@ -104,7 +104,7 @@ const item_actions = [ }, display: function (segment) { return (segment.type !== 'wp_users'); - } + }, }, { name: 'duplicate_segment', @@ -115,8 +115,8 @@ const item_actions = [ endpoint: 'segments', action: 'duplicate', data: { - id: item.id - } + id: item.id, + }, }).done((response) => { MailPoet.Notice.success( MailPoet.I18n.t('listDuplicated').replace('%$1s', response.data.name) @@ -131,7 +131,7 @@ const item_actions = [ }, display: function (segment) { return (segment.type !== 'wp_users'); - } + }, }, { name: 'read_more', @@ -145,7 +145,7 @@ const item_actions = [ }, display: function (segment) { return (segment.type === 'wp_users'); - } + }, }, { name: 'synchronize_segment', @@ -155,7 +155,7 @@ const item_actions = [ MailPoet.Ajax.post({ api_version: window.mailpoet_api_version, endpoint: 'segments', - action: 'synchronize' + action: 'synchronize', }).done(() => { MailPoet.Modal.loading(false); MailPoet.Notice.success( @@ -174,7 +174,7 @@ const item_actions = [ }, display: function (segment) { return (segment.type === 'wp_users'); - } + }, }, { name: 'view_subscribers', @@ -182,14 +182,14 @@ const item_actions = [ return ( {MailPoet.I18n.t('viewSubscribers')} ); - } + }, }, { name: 'trash', display: function (segment) { return (segment.type !== 'wp_users'); - } - } + }, + }, ]; const SegmentList = React.createClass({ @@ -273,7 +273,7 @@ const SegmentList = React.createClass({ /> ); - } + }, }); module.exports = SegmentList; diff --git a/assets/js/src/segments/segments.jsx b/assets/js/src/segments/segments.jsx index 31f050ff75..1e675aeeee 100644 --- a/assets/js/src/segments/segments.jsx +++ b/assets/js/src/segments/segments.jsx @@ -11,7 +11,7 @@ const history = useRouterHistory(createHashHistory)({ queryKey: false }); const App = React.createClass({ render() { return this.props.children; - } + }, }); const container = document.getElementById('segments_container'); diff --git a/assets/js/src/subscribers/form.jsx b/assets/js/src/subscribers/form.jsx index e988a63418..5c7f64ee63 100644 --- a/assets/js/src/subscribers/form.jsx +++ b/assets/js/src/subscribers/form.jsx @@ -4,7 +4,7 @@ define( 'react-router', 'mailpoet', 'form/form.jsx', - 'react-string-replace' + 'react-string-replace', ], ( React, @@ -20,7 +20,7 @@ define( type: 'text', disabled: function (subscriber) { return ~~(subscriber.wp_user_id > 0); - } + }, }, { name: 'first_name', @@ -28,7 +28,7 @@ define( type: 'text', disabled: function (subscriber) { return ~~(subscriber.wp_user_id > 0); - } + }, }, { name: 'last_name', @@ -36,7 +36,7 @@ define( type: 'text', disabled: function (subscriber) { return ~~(subscriber.wp_user_id > 0); - } + }, }, { name: 'status', @@ -46,14 +46,14 @@ define( 'subscribed': MailPoet.I18n.t('subscribed'), 'unconfirmed': MailPoet.I18n.t('unconfirmed'), 'unsubscribed': MailPoet.I18n.t('unsubscribed'), - 'bounced': MailPoet.I18n.t('bounced') + 'bounced': MailPoet.I18n.t('bounced'), }, filter: function (subscriber, value) { if (~~(subscriber.wp_user_id) > 0 && value === 'unconfirmed') { return false; } return true; - } + }, }, { name: 'segments', @@ -103,8 +103,8 @@ define( }); } return label; - } - } + }, + }, ]; const custom_fields = window.mailpoet_custom_fields || []; @@ -112,7 +112,7 @@ define( const field = { name: 'cf_' + custom_field.id, label: custom_field.name, - type: custom_field.type + type: custom_field.type, }; if (custom_field.params) { field.params = custom_field.params; @@ -144,7 +144,7 @@ define( }, onCreate: function () { MailPoet.Notice.success(MailPoet.I18n.t('subscriberAdded')); - } + }, }; const beforeFormContent = function (subscriber) { @@ -198,7 +198,7 @@ define( /> ); - } + }, }); return SubscriberForm; diff --git a/assets/js/src/subscribers/list.jsx b/assets/js/src/subscribers/list.jsx index 9f02e5a91a..d3fd5fe368 100644 --- a/assets/js/src/subscribers/list.jsx +++ b/assets/js/src/subscribers/list.jsx @@ -12,27 +12,27 @@ const columns = [ { name: 'email', label: MailPoet.I18n.t('subscriber'), - sortable: true + sortable: true, }, { name: 'status', label: MailPoet.I18n.t('status'), - sortable: true + sortable: true, }, { name: 'segments', - label: MailPoet.I18n.t('lists') + label: MailPoet.I18n.t('lists'), }, { name: 'created_at', label: MailPoet.I18n.t('subscribedOn'), - sortable: true + sortable: true, }, { name: 'updated_at', label: MailPoet.I18n.t('lastModifiedOn'), - sortable: true + sortable: true, }, ]; @@ -97,7 +97,7 @@ const messages = { } // use default message return false; - } + }, }; const bulk_actions = [ @@ -113,7 +113,7 @@ const bulk_actions = [ return !!( !segment.deleted_at && segment.type === 'default' ); - } + }, }; return ( @@ -122,7 +122,7 @@ const bulk_actions = [ }, getData: function () { return { - segment_id: ~~(jQuery('#move_to_segment').val()) + segment_id: ~~(jQuery('#move_to_segment').val()), }; }, onSuccess: function (response) { @@ -131,7 +131,7 @@ const bulk_actions = [ .replace('%$1d', (~~(response.meta.count)).toLocaleString()) .replace('%$2s', response.meta.segment) ); - } + }, }, { name: 'addToList', @@ -145,7 +145,7 @@ const bulk_actions = [ return !!( !segment.deleted_at && segment.type === 'default' ); - } + }, }; return ( @@ -154,7 +154,7 @@ const bulk_actions = [ }, getData: function () { return { - segment_id: ~~(jQuery('#add_to_segment').val()) + segment_id: ~~(jQuery('#add_to_segment').val()), }; }, onSuccess: function (response) { @@ -163,7 +163,7 @@ const bulk_actions = [ .replace('%$1d', (~~response.meta.count).toLocaleString()) .replace('%$2s', response.meta.segment) ); - } + }, }, { name: 'removeFromList', @@ -177,7 +177,7 @@ const bulk_actions = [ return !!( segment.type === 'default' ); - } + }, }; return ( @@ -186,7 +186,7 @@ const bulk_actions = [ }, getData: function () { return { - segment_id: ~~(jQuery('#remove_from_segment').val()) + segment_id: ~~(jQuery('#remove_from_segment').val()), }; }, onSuccess: function (response) { @@ -195,7 +195,7 @@ const bulk_actions = [ .replace('%$1d', (~~response.meta.count).toLocaleString()) .replace('%$2s', response.meta.segment) ); - } + }, }, { name: 'removeFromAllLists', @@ -205,7 +205,7 @@ const bulk_actions = [ MailPoet.I18n.t('multipleSubscribersRemovedFromAllLists') .replace('%$1d', (~~response.meta.count).toLocaleString()) ); - } + }, }, { name: 'sendConfirmationEmail', @@ -215,13 +215,13 @@ const bulk_actions = [ MailPoet.I18n.t('multipleConfirmationEmailsSent') .replace('%$1d', (~~response.meta.count).toLocaleString()) ); - } + }, }, { name: 'trash', label: MailPoet.I18n.t('moveToTrash'), - onSuccess: messages.onTrash - } + onSuccess: messages.onTrash, + }, ]; const item_actions = [ @@ -232,14 +232,14 @@ const item_actions = [ return ( {MailPoet.I18n.t('edit')} ); - } + }, }, { name: 'trash', display: function (subscriber) { return !!(~~subscriber.wp_user_id === 0); - } - } + }, + }, ]; const SubscriberList = React.createClass({ @@ -364,7 +364,7 @@ const SubscriberList = React.createClass({ /> ); - } + }, }); module.exports = SubscriberList; diff --git a/assets/js/src/subscribers/subscribers.jsx b/assets/js/src/subscribers/subscribers.jsx index abc35fe1d6..91cb24fa1e 100644 --- a/assets/js/src/subscribers/subscribers.jsx +++ b/assets/js/src/subscribers/subscribers.jsx @@ -10,7 +10,7 @@ const history = useRouterHistory(createHashHistory)({ queryKey: false }); const App = React.createClass({ render() { return this.props.children; - } + }, }); const container = document.getElementById('subscribers_container');