New newsletter dynamic form in a route.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
define(
|
define(
|
||||||
'newsletters_form',
|
'form',
|
||||||
[
|
[
|
||||||
'react',
|
'react',
|
||||||
'jquery',
|
'jquery',
|
||||||
@@ -11,70 +11,67 @@ define(
|
|||||||
MailPoet
|
MailPoet
|
||||||
) {
|
) {
|
||||||
|
|
||||||
var NewslettersForm = React.createClass({
|
var Form = React.createClass({
|
||||||
getInitialState: function() {
|
getInitialState: function() {
|
||||||
return {
|
return {
|
||||||
disabled: false
|
disabled: false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
post: function(data) {
|
post: function(data) {
|
||||||
MailPoet.Ajax.post({
|
MailPoet.Ajax.post({
|
||||||
endpoint: 'newsletters',
|
endpoint: 'newsletters',
|
||||||
action: 'save',
|
action: 'save',
|
||||||
data: data,
|
data: data,
|
||||||
onSuccess: function(response) {
|
onSuccess: function(response) {
|
||||||
}.bind(this)
|
}.bind(this)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
handleSubmit: function(e) {
|
handleSubmit: function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.setState({
|
this.setState({
|
||||||
disabled: true
|
disabled: true
|
||||||
});
|
});
|
||||||
|
|
||||||
var subject =
|
var subject =
|
||||||
React.findDOMNode(this.refs.subject);
|
React.findDOMNode(this.refs.subject);
|
||||||
var body =
|
var body =
|
||||||
React.findDOMNode(this.refs.body);
|
React.findDOMNode(this.refs.body);
|
||||||
|
|
||||||
|
if (!subject.value || !body.value) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.post({
|
||||||
|
subject: subject.value,
|
||||||
|
body: body.value
|
||||||
|
});
|
||||||
|
|
||||||
|
subject.value = '';
|
||||||
|
body.value = '';
|
||||||
|
this.setState({
|
||||||
|
disabled: false
|
||||||
|
});
|
||||||
|
|
||||||
if (!subject.value || !body.value) {
|
|
||||||
return;
|
return;
|
||||||
}
|
},
|
||||||
|
|
||||||
this.post({
|
render: function() {
|
||||||
subject: subject.value,
|
return (
|
||||||
body: body.value
|
<div>
|
||||||
});
|
<h1>New</h1>
|
||||||
|
<form className="newslettersForm" onSubmit={this.handleSubmit}>
|
||||||
subject.value = '';
|
<input type="text" placeholder="Subject" ref="subject" />
|
||||||
body.value = '';
|
<br />
|
||||||
this.setState({
|
<textarea placeholder="Body" ref="body" />
|
||||||
disabled: false
|
<br />
|
||||||
});
|
<input type="submit" value="Save" disabled={this.state.locked} />
|
||||||
|
</form>
|
||||||
return;
|
</div>
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<form className="newslettersForm" onSubmit={this.handleSubmit}>
|
|
||||||
<input type="text" placeholder="Subject" ref="subject" />
|
|
||||||
<br />
|
|
||||||
<textarea placeholder="Body" ref="body" />
|
|
||||||
<br />
|
|
||||||
<input type="submit" value="Save" disabled={this.state.locked} />
|
|
||||||
</form>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var element = jQuery('#newsletters_form');
|
|
||||||
if(element.length > 0) {
|
|
||||||
React.render(
|
|
||||||
<NewslettersForm />,
|
|
||||||
element[0]
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return Form;
|
||||||
|
});
|
||||||
|
@@ -3,13 +3,11 @@ define(
|
|||||||
[
|
[
|
||||||
'react',
|
'react',
|
||||||
'react-router',
|
'react-router',
|
||||||
'mailpoet',
|
|
||||||
'newsletters/form.jsx'
|
'newsletters/form.jsx'
|
||||||
],
|
],
|
||||||
function(
|
function(
|
||||||
React,
|
React,
|
||||||
Router,
|
Router,
|
||||||
MailPoet,
|
|
||||||
Form
|
Form
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@@ -28,7 +26,7 @@ define(
|
|||||||
<Link to="listing">Newsletters</Link>
|
<Link to="listing">Newsletters</Link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<Link to="single">New</Link>
|
<Link to="form">New</Link>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</header>
|
</header>
|
||||||
@@ -49,20 +47,10 @@ define(
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var Single = React.createClass({
|
|
||||||
render: function () {
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<h1>New</h1>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var routes = (
|
var routes = (
|
||||||
<Route name="app" path="/" handler={App}>
|
<Route name="app" path="/" handler={App}>
|
||||||
<Route name="listing" handler={Listing}/>
|
<Route name="listing" handler={Listing}/>
|
||||||
<Route name="single" handler={Single}/>
|
<Route name="form" handler={Form}/>
|
||||||
<DefaultRoute handler={Listing}/>
|
<DefaultRoute handler={Listing}/>
|
||||||
</Route>
|
</Route>
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user