updated cron endpoint + cron.jsx

This commit is contained in:
Jonathan Labreuille
2016-08-11 12:36:17 +02:00
parent a3c56b84ce
commit de6d7e0cae
3 changed files with 41 additions and 33 deletions

View File

@ -19,14 +19,15 @@ define(
MailPoet.Ajax.post({ MailPoet.Ajax.post({
endpoint: 'cron', endpoint: 'cron',
action: 'getStatus' action: 'getStatus'
}) }).done((response) => {
.done(function(response) { this.setState({
if(response.status !== undefined) { status: response.data.status
this.setState(response); });
} else { }).fail((response) => {
this.replaceState(); this.setState({
} status: false
}.bind(this)); });
});
}, },
componentDidMount: function() { componentDidMount: function() {
if(this.isMounted()) { if(this.isMounted()) {
@ -35,26 +36,28 @@ define(
} }
}, },
render: function() { render: function() {
let status;
switch(this.state.status) { switch(this.state.status) {
case 'loading':
return(
<div>
{MailPoet.I18n.t('loadingDaemonStatus')}
</div>
);
case false: case false:
return( case 'stopping':
<div> case 'stopped':
{MailPoet.I18n.t('daemonNotRunning')} status = MailPoet.I18n.t('cronDaemonIsNotRunning');
</div> break;
); case 'starting':
default: case 'started':
return( status = MailPoet.I18n.t('cronDaemonIsRunning');
<div> break;
{MailPoet.I18n.t('cronDaemonState').replace('%$1s', this.state.status)} case 'loading':
</div> status = MailPoet.I18n.t('loadingDaemonStatus');
); break;
} }
return (
<div>
{ status }
</div>
);
} }
}); });

View File

@ -1,16 +1,23 @@
<?php <?php
namespace MailPoet\API\Endpoints; namespace MailPoet\API\Endpoints;
use \MailPoet\API\Endpoint as APIEndpoint;
use \MailPoet\API\Error as APIError;
use MailPoet\Cron\CronHelper; use MailPoet\Cron\CronHelper;
use MailPoet\Models\Setting; use MailPoet\Models\Setting;
if(!defined('ABSPATH')) exit; if(!defined('ABSPATH')) exit;
class Cron { class Cron extends APIEndpoint {
function getStatus() { function getStatus() {
$daemon = Setting::getValue(CronHelper::DAEMON_SETTING); $daemon = Setting::getValue(CronHelper::DAEMON_SETTING, false);
return ($daemon) ?
$daemon : if($daemon === false) {
array('status' => false); return $this->errorResponse(array(
APIError::NOT_FOUND => __('Cron daemon is not running.')
));
} else {
return $this->successResponse($daemon);
}
} }
} }

View File

@ -6,10 +6,8 @@
<% block translations %> <% block translations %>
<%= localize({ <%= localize({
'daemonNotRunning': __('Daemon is not running'),
'daemonControlError': __('Cron daemon error'),
'loadingDaemonStatus': __('Loading daemon status...'), 'loadingDaemonStatus': __('Loading daemon status...'),
'cronDaemonIsRunning': __('Cron daemon is running'), 'cronDaemonIsRunning': __('Cron daemon is running'),
'cronDaemonState': __('Cron is %$1s') 'cronDaemonIsNotRunning': __('Cron daemon is not running')
}) %> }) %>
<% endblock %> <% endblock %>