Make templates payload smaller
[MAILPOET-1479]
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import _ from 'underscore';
|
|
||||||
import MailPoet from 'mailpoet';
|
import MailPoet from 'mailpoet';
|
||||||
import { confirmAlert } from 'react-confirm-alert';
|
import { confirmAlert } from 'react-confirm-alert';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
@@ -60,11 +59,6 @@ class TemplateBox extends React.Component {
|
|||||||
|
|
||||||
onSelect() {
|
onSelect() {
|
||||||
const { newsletterId, name, beforeSelect, afterSelect } = this.props;
|
const { newsletterId, name, beforeSelect, afterSelect } = this.props;
|
||||||
let body = this.props.body;
|
|
||||||
|
|
||||||
if (!_.isUndefined(body)) {
|
|
||||||
body = JSON.stringify(body);
|
|
||||||
}
|
|
||||||
|
|
||||||
beforeSelect();
|
beforeSelect();
|
||||||
|
|
||||||
@@ -79,7 +73,7 @@ class TemplateBox extends React.Component {
|
|||||||
action: 'save',
|
action: 'save',
|
||||||
data: {
|
data: {
|
||||||
id: newsletterId,
|
id: newsletterId,
|
||||||
body,
|
template_id: this.props.id,
|
||||||
},
|
},
|
||||||
}).done((response) => {
|
}).done((response) => {
|
||||||
afterSelect(true, response.data.id);
|
afterSelect(true, response.data.id);
|
||||||
@@ -151,7 +145,6 @@ TemplateBox.propTypes = {
|
|||||||
afterDelete: PropTypes.func.isRequired,
|
afterDelete: PropTypes.func.isRequired,
|
||||||
beforeSelect: PropTypes.func.isRequired,
|
beforeSelect: PropTypes.func.isRequired,
|
||||||
afterSelect: PropTypes.func.isRequired,
|
afterSelect: PropTypes.func.isRequired,
|
||||||
body: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default TemplateBox;
|
export default TemplateBox;
|
||||||
|
@@ -29,7 +29,11 @@ class NewsletterTemplates extends APIEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getAll() {
|
function getAll() {
|
||||||
$collection = NewsletterTemplate::orderByDesc('created_at')->orderByAsc('name')->findMany();
|
$collection = NewsletterTemplate
|
||||||
|
::selectExpr('id, categories, thumbnail, name, description, readonly')
|
||||||
|
->orderByDesc('created_at')
|
||||||
|
->orderByAsc('name')
|
||||||
|
->findMany();
|
||||||
$templates = array_map(function($item) {
|
$templates = array_map(function($item) {
|
||||||
return $item->asArray();
|
return $item->asArray();
|
||||||
}, $collection);
|
}, $collection);
|
||||||
|
@@ -65,6 +65,15 @@ class Newsletters extends APIEndpoint {
|
|||||||
unset($data['options']);
|
unset($data['options']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!empty($data['template_id'])) {
|
||||||
|
$template = NewsletterTemplate::whereEqual('id', $data['template_id'])->findOne();
|
||||||
|
if(!empty($template)) {
|
||||||
|
$template = $template->asArray();
|
||||||
|
$data['body'] = $template['body'];
|
||||||
|
}
|
||||||
|
unset($data['template_id']);
|
||||||
|
}
|
||||||
|
|
||||||
$newsletter = Newsletter::createOrUpdate($data);
|
$newsletter = Newsletter::createOrUpdate($data);
|
||||||
$errors = $newsletter->getErrors();
|
$errors = $newsletter->getErrors();
|
||||||
|
|
||||||
|
@@ -49,7 +49,7 @@ class NewsletterTemplatesTest extends \MailPoetTest {
|
|||||||
$router = new NewsletterTemplates();
|
$router = new NewsletterTemplates();
|
||||||
$response = $router->getAll();
|
$response = $router->getAll();
|
||||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
expect($response->data)->equals($templates);
|
expect($response->data)->count(count($templates));
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItCanSaveANewTemplate() {
|
function testItCanSaveANewTemplate() {
|
||||||
|
Reference in New Issue
Block a user