Skip to content

Commit acc9a51

Browse files
committed
Merge branch 'release/2.2.0'
2 parents 454a762 + ad44aa4 commit acc9a51

15 files changed

Lines changed: 418 additions & 303 deletions

advanced-cron-manager.php

Lines changed: 80 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@
22
/**
33
* Plugin Name: Advanced Cron Manager
44
* Description: View, pause, remove, edit and add WP Cron events.
5-
* Version: 2.1.2
5+
* Version: 2.2.0
66
* Author: underDEV
77
* Author URI: https://underdev.it
88
* License: GPL3
99
* Text Domain: advanced-cron-manager
1010
*/
1111

12+
$plugin_version = '2.2.0';
13+
$plugin_file = __FILE__;
14+
$namespace = 'underDEV\\AdvancedCronManager\\';
15+
1216
/**
1317
* Fire up Composer's autoloader
1418
*/
@@ -57,12 +61,81 @@ function acm_check_old_plugins( $plugins, $r ) {
5761
}
5862

5963
/**
60-
* Fire up dependency injection container
64+
* Fire up dependency injection container and bootstrap all the classes
6165
*/
62-
$container = new tad_DI52_Container();
6366

64-
$container->setVar( 'plugin_file', __FILE__ );
65-
$container->setVar( 'plugin_version', '2.1.2' );
67+
$dice = new underDEV\Utils\Dice;
68+
69+
/**
70+
* Rules
71+
*/
72+
73+
$dice->addRule( 'underDEV\Utils\Files', array(
74+
'shared' => 'true',
75+
'constructParams' => array( $plugin_file )
76+
) );
77+
78+
$dice->addRule( $namespace . 'ScreenRegisterer', array(
79+
'shared' => 'true',
80+
) );
81+
82+
$dice->addRule( $namespace . 'Cron\SchedulesLibrary', array(
83+
'shared' => 'true',
84+
) );
85+
86+
$dice->addRule( $namespace . 'Assets', array(
87+
'shared' => 'true',
88+
'constructParams' => array( $plugin_version )
89+
) );
90+
91+
/**
92+
* Actions
93+
*/
94+
95+
// Load textdomain
96+
add_action( 'plugins_loaded', array( $dice->create( $namespace . 'Internationalization' ), 'load_textdomain' ) );
97+
98+
// Add plugin's screen in the admin
99+
add_action( 'admin_menu', array( $dice->create( $namespace . 'ScreenRegisterer' ), 'register_screen' ) );
100+
101+
// Add main section parts on the admin screen
102+
add_action( 'advanced-cron-manager/screen/main', array( $dice->create( $namespace . 'AdminScreen' ), 'load_searchbox_part' ), 10, 1 );
103+
add_action( 'advanced-cron-manager/screen/main', array( $dice->create( $namespace . 'AdminScreen' ), 'load_events_table_part' ), 20, 1 );
104+
105+
// Add sidebar section parts on the admin screen
106+
add_action( 'advanced-cron-manager/screen/sidebar', array( $dice->create( $namespace . 'AdminScreen' ), 'load_schedules_table_part' ), 10, 1 );
107+
108+
// Add general parts on the admin screen
109+
add_action( 'advanced-cron-manager/screen/wrap/after', array( $dice->create( $namespace . 'AdminScreen' ), 'load_slidebar_part' ), 10, 1 );
110+
111+
// Add tabs to event details
112+
add_filter( 'advanced-cron-manager/screen/event/details/tabs', array( $dice->create( $namespace . 'AdminScreen' ), 'add_default_event_details_tabs' ), 10, 1 );
113+
114+
// Enqueue assets
115+
add_action( 'admin_enqueue_scripts', array( $dice->create( $namespace . 'Assets' ), 'enqueue_admin' ), 10, 1 );
116+
117+
// Forms
118+
add_action( 'wp_ajax_acm/schedule/add/form', array( $dice->create( $namespace . 'FormProvider' ), 'add_schedule' ) );
119+
add_action( 'wp_ajax_acm/schedule/edit/form', array( $dice->create( $namespace . 'FormProvider' ), 'edit_schedule' ) );
120+
add_action( 'wp_ajax_acm/event/add/form', array( $dice->create( $namespace . 'FormProvider' ), 'add_event' ) );
121+
122+
// Schedules
123+
add_filter( 'cron_schedules', array( $dice->create( $namespace . 'Cron\SchedulesLibrary' ), 'register' ), 10, 1 );
124+
add_action( 'wp_ajax_acm/rerender/schedules', array( $dice->create( $namespace . 'AdminScreen' ), 'ajax_rerender_schedules_table' ) );
125+
add_action( 'wp_ajax_acm/schedule/insert', array( $dice->create( $namespace . 'Cron\SchedulesActions' ), 'insert' ) );
126+
add_action( 'wp_ajax_acm/schedule/edit', array( $dice->create( $namespace . 'Cron\SchedulesActions' ), 'edit' ) );
127+
add_action( 'wp_ajax_acm/schedule/remove', array( $dice->create( $namespace . 'Cron\SchedulesActions' ), 'remove' ) );
128+
129+
// Events
130+
add_filter( 'advanced-cron-manager/events/array', array( $dice->create( $namespace . 'Cron\EventsLibrary' ), 'register_paused' ), 10, 1 );
131+
add_action( 'wp_ajax_acm/rerender/events', array( $dice->create( $namespace . 'AdminScreen' ), 'ajax_rerender_events_table' ) );
132+
add_action( 'wp_ajax_acm/event/insert', array( $dice->create( $namespace . 'Cron\EventsActions' ), 'insert' ) );
133+
add_action( 'wp_ajax_acm/event/run', array( $dice->create( $namespace . 'Cron\EventsActions' ), 'run' ) );
134+
add_action( 'wp_ajax_acm/event/remove', array( $dice->create( $namespace . 'Cron\EventsActions' ), 'remove' ) );
135+
add_action( 'wp_ajax_acm/event/pause', array( $dice->create( $namespace . 'Cron\EventsActions' ), 'pause' ) );
136+
add_action( 'wp_ajax_acm/event/unpause', array( $dice->create( $namespace . 'Cron\EventsActions' ), 'unpause' ) );
66137

67-
// Registers all classes and their dependencies
68-
$container->register( 'underDEV\AdvancedCronManager\RuntimeProvider' );
138+
// Server scheduler
139+
add_action( 'advanced-cron-manager/screen/sidebar', array( $dice->create( $namespace . 'Server\Settings' ), 'load_settings_part' ), 10, 1 );
140+
add_action( 'wp_ajax_acm/server/settings/save', array( $dice->create( $namespace . 'Server\Settings' ), 'save_settings' ) );
141+
add_action( 'plugins_loaded', array( $dice->create( $namespace . 'Server\Processor' ), 'block_cron_executions' ), 10, 1 );

assets/dist/css/style.css

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/dist/js/scripts.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/src/js/server-settings.js

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
( function( $ ) {
2+
3+
/////////////////////
4+
// Form processing //
5+
/////////////////////
6+
7+
$( '#server-settings-form' ).on( 'submit', function( event ) {
8+
9+
event.preventDefault();
10+
wp.hooks.doAction( 'advanced-cron-manager/server/settings/action', $(this) );
11+
12+
} );
13+
14+
/////////////
15+
// Actions //
16+
/////////////
17+
18+
wp.hooks.addAction( 'advanced-cron-manager/server/settings/action', function( $form ) {
19+
20+
var $button = $form.find( '.button-secondary' ).first();
21+
22+
var data = {
23+
'action' : 'acm/server/settings/save',
24+
'data' : $form.serialize(),
25+
'nonce' : $button.data( 'nonce' )
26+
};
27+
28+
var button_label = $button.val();
29+
30+
$button.val( advanced_cron_manager.i18n.saving );
31+
$button.attr( 'disabled', true );
32+
33+
$.post( ajaxurl, data, function( response ) {
34+
35+
advanced_cron_manager.ajax_messages( response );
36+
37+
$button.val( button_label );
38+
$button.attr( 'disabled', false );
39+
40+
} );
41+
42+
} );
43+
44+
/////////////
45+
// Helpers //
46+
/////////////
47+
48+
$( '#server-settings-form' ).on( 'change', '.master-setting input', function() {
49+
50+
if ( this.checked ) {
51+
$( this ).parent().nextAll( '.dependants' ).show();
52+
} else {
53+
$( this ).parent().nextAll( '.dependants' ).hide();
54+
}
55+
56+
} );
57+
58+
} )( jQuery );
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#server-scheduler-settings {
2+
margin-top: 40px;
3+
4+
#server-settings-form {
5+
6+
label {
7+
display: block;
8+
margin-bottom: 15px;
9+
}
10+
11+
}
12+
13+
}

assets/src/sass/style.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,4 @@
2323
@import 'parts/searchbox';
2424
@import 'parts/schedules';
2525
@import 'parts/events';
26+
@import 'parts/server-settings';

composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
],
1212
"require": {
1313
"underdev/utils": "*",
14-
"underdev/requirements": "*",
15-
"lucatume/di52": "*"
14+
"underdev/requirements": "*"
1615
},
1716
"autoload": {
1817
"psr-4": {

0 commit comments

Comments
 (0)