- Refactors Mailer class

- Refactors SendingQueue worker class
- Adds Maier router with a send() method + ability to specify sending method
- Updates tests
- Introduces 'stopping' and 'starting' cron states
- Improves cron control mechanism
Closes #276
This commit is contained in:
Vlad
2016-01-05 10:34:57 -05:00
parent 112fe0cd6e
commit f1bf2bb097
30 changed files with 1202 additions and 1433 deletions

View File

@@ -15,10 +15,10 @@ define(
status: 'loading'
};
},
getDaemonData: function() {
getCronData: function() {
MailPoet.Ajax.post({
endpoint: 'cron',
action: 'getDaemonStatus'
action: 'getStatus'
})
.done(function(response) {
jQuery('.button-primary')
@@ -32,25 +32,23 @@ define(
},
componentDidMount: function() {
if(this.isMounted()) {
this.getDaemonData();
setInterval(this.getDaemonData, 5000);
this.getCronData();
setInterval(this.getCronData, 5000);
}
},
controlDaemon: function(action) {
controlCron: function(action) {
if (jQuery('.button-primary').hasClass('disabled')) {
return;
}
jQuery('.button-primary')
.addClass('disabled');
MailPoet.Ajax.post({
endpoint: 'cron',
action: 'controlDaemon',
data: {
'action': action
}
action: action,
})
.done(function(response) {
if(!response.result) {
//this.replaceState();
} else {
//this.setState(response);
MailPoet.Notice.error(MailPoetI18n.daemonControlError);
}
}.bind(this));
},
@@ -71,19 +69,25 @@ define(
<strong> {this.state.counter} </strong> times (once every 30 seconds, unless it was interrupted and restarted).
<br />
<br />
<a href="#" className="button-primary" onClick={this.controlDaemon.bind(null, 'stop')}>Stop</a>&nbsp;&nbsp;
<a href="#" className="button-primary" onClick={this.controlDaemon.bind(null, 'pause')}>Pause</a>
<a href="#" className="button-primary" onClick={this.controlCron.bind(null, 'stop')}>Stop</a>
</div>
);
break;
case 'starting':
case 'stopping':
return(
<div>
Daemon is {this.state.status}
</div>
);
break;
case 'paused':
case 'stopped':
return(
<div>
Daemon is {this.state.status}
<br />
<br />
<a href="#" className="button-primary" onClick={this.controlDaemon.bind(null, 'start')}>Start</a>
<a href="#" className="button-primary" onClick={this.controlCron.bind(null, 'start')}>Start</a>
</div>
);
break;