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