Companion Auto Update - Version 3.5.0

Version Description

(March 5, 2020) = * We've had to (temporarily) disable the theme filter because it was causing issues on some installations. We'll try to get it working again in a future update. * We should've fixed an issue where on occasion nothing would update * Made some improvements to the "Fix it" button for the AUTOMATIC_UPDATER_DISABLED error * In version 3.4.6 we've changed to HTML emails rather than plain text, in this version you can opt to change it back to plain text emails * Redesigned dashboard: We've changed the dashboard, moved both the settings page and de support page to the dashboard. Please let us know if you like this change or not.

Download this release

Release Info

Developer Papin
Plugin Icon 128x128 Companion Auto Update
Version 3.5.0
Comparing to
See all releases

Code changes from version 3.4.8 to 3.5.0

admin/dashboard.php CHANGED
@@ -1,189 +1,557 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
- if ( !wp_next_scheduled ( 'cau_set_schedule_mail' ) ) {
4
- echo '<div id="message" class="error"><p><b>'.__( 'Companion Auto Update was not able to set the event for sending you emails, please re-activate the plugin in order to set the event', 'companion-auto-update' ).'.</b></p></div>';
5
  }
6
 
7
- if ( cau_incorrectDatabaseVersion() ) {
8
- echo '<div id="message" class="error"><p><b>'.__( 'Companion Auto Update Database Update', 'companion-auto-update' ).' &ndash;</b>
9
- '.__( 'We need you to update to the latest database version', 'companion-auto-update' ).'. <a href="'.cau_url( 'status' ).'&run=db_update" class="button button-alt" style="background: #FFF;">'.__( 'Run updater now', 'companion-auto-update' ).'</a></p></div>';
10
- }
11
 
12
- if( isset( $_POST['submit'] ) ) {
 
 
 
 
 
13
 
14
- check_admin_referer( 'cau_save_settings' );
 
15
 
16
- global $wpdb;
17
- $table_name = $wpdb->prefix . "auto_updates";
18
 
19
- if( isset( $_POST['plugins'] ) ) $plugins = sanitize_text_field( $_POST['plugins'] ); else $plugins = '';
20
- if( isset( $_POST['themes'] ) ) $themes = sanitize_text_field( $_POST['themes'] ); else $themes = '';
21
- if( isset( $_POST['minor'] ) ) $minor = sanitize_text_field( $_POST['minor'] ); else $minor = '';
22
- if( isset( $_POST['major'] ) ) $major = sanitize_text_field( $_POST['major'] ); else $major = '';
23
- if( isset( $_POST['translations'] ) ) $translations = sanitize_text_field( $_POST['translations'] ); else $translations = '';
24
- if( isset( $_POST['cau_send'] ) ) $send = sanitize_text_field( $_POST['cau_send'] ); else $send = '';
25
- if( isset( $_POST['cau_send_update'] ) ) $sendupdate = sanitize_text_field( $_POST['cau_send_update'] ); else $sendupdate = '';
26
- if( isset( $_POST['wpemails'] ) ) $wpemails = sanitize_text_field( $_POST['wpemails'] ); else $wpemails = '';
27
- $email = sanitize_text_field( $_POST['cau_email'] );
28
 
29
- $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'plugins'", $plugins ) );
30
- $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'themes'", $themes ) );
31
- $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'minor'", $minor ) );
32
- $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'major'", $major ) );
33
- $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'translations'", $translations ) );
34
- $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'email'", $email ) );
35
- $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'send'", $send ) );
36
- $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'sendupdate'", $sendupdate ) );
37
- $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'wpemails'", $wpemails ) );
 
 
 
 
38
 
39
- echo '<div id="message" class="updated"><p><b>'.__( 'Settings saved.' ).'</b></p></div>';
 
 
40
 
41
  }
42
 
43
- if( isset( $_GET['welcome'] ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
- echo '<div class="welcome-to-cau welcome-bg welcome-panel">
46
- <h2>'.__( 'Welcome to Companion Auto Update', 'companion-auto-update' ).'</h2>
47
- <div class="welcome-column first-column welcome-column-half">
48
- <h3>'.__( 'You\'re set and ready to go', 'companion-auto-update' ).'</h3>
49
- <p>'.__( 'The plugin is all set and ready to go with the recommended settings, but if you\'d like you can change them below.' ).'</p>
50
- </div><div class="welcome-column welcome-column-quarter">
51
- <h3>'.__( 'Get Started' ).'</h3>
52
- <ul>
53
- <li><a href="'.cau_url( 'pluginlist' ).'">'.__( 'Select plugins', 'companion-auto-update' ).'</a></li>
54
- <li><a href="'.cau_url( 'schedule' ).'">'.__( 'Advanced settings', 'companion-auto-update' ).'</a></li>
55
- </ul>
56
- </div><div class="welcome-column welcome-column-quarter">
57
- <h3>'.__( 'More Actions' ).'</h3>
58
- <ul>
59
- <li><a href="http://codeermeneer.nl/cau_poll/" target="_blank">'.__('Give feedback', 'companion-auto-update').'</a></li>
60
- <li><a href="https://translate.wordpress.org/projects/wp-plugins/companion-auto-update/" target="_blank">'.__( 'Help us translate', 'companion-auto-update' ).'</a></li>
61
-
62
- </ul>
63
- </div>
64
- </div>';
65
  }
66
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  ?>
68
 
69
  <div class="cau-column-wide">
70
 
71
  <form method="POST">
72
 
73
- <table class="form-table">
74
- <tr>
75
- <th scope="row"><?php _e('Auto Updater', 'companion-auto-update');?></th>
76
- <td>
77
- <fieldset>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
 
79
- <?php
80
 
81
- echo '<p><input id="plugins" name="plugins" type="checkbox"';
82
- if( cau_get_db_value( 'plugins' ) == 'on' ) echo 'checked';
83
- echo '/> <label for="plugins">'.__('Auto update plugins?', 'companion-auto-update').'</label></p>';
84
 
85
- echo '<p><input id="themes" name="themes" type="checkbox"';
86
- if( cau_get_db_value( 'themes' ) == 'on' ) echo 'checked';
87
- echo '/> <label for="themes">'.__('Auto update themes?', 'companion-auto-update').'</label></p>';
88
 
89
- echo '<p><input id="minor" name="minor" type="checkbox"';
90
- if( cau_get_db_value( 'minor' ) == 'on' ) echo 'checked';
91
- echo '/> <label for="minor">'.__('Auto update minor core updates?', 'companion-auto-update').' <code class="majorMinorExplain">5.3.0 > 5.3.1</code></label></p>';
 
 
 
 
 
 
 
 
92
 
93
- echo '<p><input id="major" name="major" type="checkbox"';
94
- if( cau_get_db_value( 'major' ) == 'on' ) echo 'checked';
95
- echo '/> <label for="major">'.__('Auto update major core updates?', 'companion-auto-update').' <code class="majorMinorExplain">5.3.0 > 5.4.0</code></label></p>';
96
 
97
- echo '<p><input id="translations" name="translations" type="checkbox"';
98
- if( cau_get_db_value( 'translations' ) == 'on' ) echo 'checked';
99
- echo '/> <label for="translations">'.__('Auto update translation files?', 'companion-auto-update').'</label></p>';
100
 
101
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
- </fieldset>
104
- </td>
105
- </tr>
106
- </table>
107
 
108
- <div class="cau_spacing"></div>
 
 
109
 
110
- <h2 class="title"><?php _e( 'Email Notifications', 'companion-auto-update' );?></h2>
111
- <p><?php _e( 'Email notifications are send once a day, you can choose what notifications to send below.', 'companion-auto-update' );?></p>
112
 
113
- <?php
114
- if( cau_get_db_value( 'email' ) == '' ) $toemail = get_option('admin_email');
115
- else $toemail = cau_get_db_value( 'email' );
116
- ?>
 
 
 
 
 
 
 
 
117
 
118
- <table class="form-table">
119
- <tr>
120
- <th scope="row"><?php _e( 'Update available', 'companion-auto-update' );?></th>
121
- <td>
122
- <p>
123
- <input id="cau_send" name="cau_send" type="checkbox" <?php if( cau_get_db_value( 'send' ) == 'on' ) { echo 'checked'; } ?> />
124
- <label for="cau_send"><?php _e('Send me emails when an update is available.', 'companion-auto-update');?></label>
125
- </p>
126
- </td>
127
- </tr>
128
- <tr>
129
- <th scope="row"><?php _e( 'Successful update', 'companion-auto-update' );?></th>
130
- <td>
131
- <p>
132
- <input id="cau_send_update" name="cau_send_update" type="checkbox" <?php if( cau_get_db_value( 'sendupdate' ) == 'on' ) { echo 'checked'; } ?> />
133
- <label for="cau_send_update"><?php _e('Send me emails when something has been updated.', 'companion-auto-update');?></label>
134
- </p>
135
- </td>
136
- </tr>
137
- <tr>
138
- <th scope="row"><?php _e( 'Email Address' );?></th>
139
- <td>
140
  <p>
141
- <label for="cau_email"><?php _e('To', 'companion-auto-update');?>:</label>
142
- <input type="text" name="cau_email" id="cau_email" class="regular-text" placeholder="<?php echo get_option('admin_email'); ?>" value="<?php echo esc_html( $toemail ); ?>" />
 
 
 
 
 
 
 
143
  </p>
 
 
 
 
 
 
 
144
 
145
- <p class="description"><?php _e('Seperate email addresses using commas.', 'companion-auto-update');?></p>
146
- </td>
147
- </tr>
148
- </table>
149
 
150
- <div class="cau_spacing"></div>
 
 
 
 
 
 
 
 
 
 
 
151
 
152
- <h2 class="title"><?php _e('Core notifications', 'companion-auto-update');?></h2>
153
- <p><?php _e('Core notifications are handled by WordPress and not by this plugin. You can only disable them, changing your email address in the settings above will not affect these notifications.', 'companion-auto-update');?></p>
154
 
155
- <table class="form-table">
156
- <tr>
157
- <th scope="row"><?php _e('Core notifications', 'companion-auto-update');?></th>
158
- <td>
159
  <p>
160
- <input id="wpemails" name="wpemails" type="checkbox" <?php if( cau_get_db_value( 'wpemails' ) == 'on' ) { echo 'checked'; } ?> />
161
- <label for="wpemails"><?php _e( 'By default WordPress sends an email when a core update has occurred. Uncheck this box to disable these emails.', 'companion-auto-update' );?></label>
 
 
 
 
 
 
 
162
  </p>
163
- </td>
164
- </tr>
165
- </table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
 
167
- <?php wp_nonce_field( 'cau_save_settings' ); ?>
168
 
169
- <?php submit_button(); ?>
 
170
 
171
  </form>
172
 
173
  </div><div class="cau-column-small">
174
 
175
- <div class="welcome-to-cau love-bg cau-show-love cau-dashboard-box">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
176
  <h3><?php _e( 'Like our plugin?', 'companion-auto-update' ); ?></h3>
177
  <p><?php _e('Companion Auto Update is free to use. It has required a great deal of time and effort to develop and you can help support this development by making a small donation.<br />You get useful software and we get to carry on making it better.', 'companion-auto-update'); ?></p>
178
- <a href="https://wordpress.org/support/plugin/companion-auto-update/reviews/#new-post" target="_blank" class="cau-button rate-button">
179
- <span class="dashicons dashicons-star-filled"></span>
180
  <?php _e('Rate us (5 stars?)', 'companion-auto-update'); ?>
181
  </a>
182
- <a href="<?php echo cau_donateUrl(); ?>" target="_blank" class="cau-button donate-button">
183
- <span class="dashicons dashicons-heart"></span>
184
  <?php _e('Donate to help development', 'companion-auto-update'); ?>
185
  </a>
186
  <p style="font-size: 12px; color: #BDBDBD;">Donations via PayPal. Amount can be changed.</p>
187
  </div>
188
 
189
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
+ if ( !wp_next_scheduled ( 'cau_set_schedule_mail' ) ) {
3
+ echo '<div id="message" class="error"><p><b>'.__( 'Companion Auto Update was not able to set the event for sending you emails, please re-activate the plugin in order to set the event', 'companion-auto-update' ).'.</b></p></div>';
4
+ }
5
+
6
+ if ( cau_incorrectDatabaseVersion() ) {
7
+ echo '<div id="message" class="error"><p><b>'.__( 'Companion Auto Update Database Update', 'companion-auto-update' ).' &ndash;</b>
8
+ '.__( 'We need you to update to the latest database version', 'companion-auto-update' ).'. <a href="'.cau_url( 'status' ).'&run=db_update" class="button button-alt" style="background: #FFF;">'.__( 'Run updater now', 'companion-auto-update' ).'</a></p></div>';
9
+ }
10
+
11
+ if( isset( $_POST['submit'] ) ) {
12
+
13
+ check_admin_referer( 'cau_save_settings' );
14
+
15
+ global $wpdb;
16
+ $table_name = $wpdb->prefix . "auto_updates";
17
+
18
+ // Auto updater
19
+ if( isset( $_POST['plugins'] ) ) $plugins = sanitize_text_field( $_POST['plugins'] ); else $plugins = '';
20
+ if( isset( $_POST['themes'] ) ) $themes = sanitize_text_field( $_POST['themes'] ); else $themes = '';
21
+ if( isset( $_POST['minor'] ) ) $minor = sanitize_text_field( $_POST['minor'] ); else $minor = '';
22
+ if( isset( $_POST['major'] ) ) $major = sanitize_text_field( $_POST['major'] ); else $major = '';
23
+ if( isset( $_POST['translations'] ) ) $translations = sanitize_text_field( $_POST['translations'] ); else $translations = '';
24
+
25
+ $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'plugins'", $plugins ) );
26
+ $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'themes'", $themes ) );
27
+ $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'minor'", $minor ) );
28
+ $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'major'", $major ) );
29
+ $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'translations'", $translations ) );
30
+
31
+ // Emails
32
+ if( isset( $_POST['cau_send'] ) ) $send = sanitize_text_field( $_POST['cau_send'] ); else $send = '';
33
+ if( isset( $_POST['cau_send_update'] ) ) $sendupdate = sanitize_text_field( $_POST['cau_send_update'] ); else $sendupdate = '';
34
+ if( isset( $_POST['wpemails'] ) ) $wpemails = sanitize_text_field( $_POST['wpemails'] ); else $wpemails = '';
35
+ if( isset( $_POST['cau_email'] ) ) $email = sanitize_text_field( $_POST['cau_email'] );
36
+ if( isset( $_POST['html_or_text'] ) ) $html_or_text = sanitize_text_field( $_POST['html_or_text'] );
37
+
38
+ $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'email'", $email ) );
39
+ $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'send'", $send ) );
40
+ $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'sendupdate'", $sendupdate ) );
41
+ $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'wpemails'", $wpemails ) );
42
+ $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'html_or_text'", $html_or_text ) );
43
+
44
+ // Intervals
45
+
46
+ // Set variables
47
+ $plugin_sc = sanitize_text_field( $_POST['plugin_schedule'] );
48
+ $theme_sc = sanitize_text_field( $_POST['theme_schedule'] );
49
+ $core_sc = sanitize_text_field( $_POST['core_schedule'] );
50
+ $schedule_mail = sanitize_text_field( $_POST['schedule_mail'] );
51
+ $html_or_text = sanitize_text_field( $_POST['html_or_text'] );
52
+
53
+ // First clear schedules
54
+ wp_clear_scheduled_hook('wp_update_plugins');
55
+ wp_clear_scheduled_hook('wp_update_themes');
56
+ wp_clear_scheduled_hook('wp_version_check');
57
+ wp_clear_scheduled_hook('cau_set_schedule_mail');
58
+ wp_clear_scheduled_hook('cau_custom_hooks_plugins');
59
+ wp_clear_scheduled_hook('cau_custom_hooks_themes');
60
+
61
+ // Then set the new times
62
+
63
+ // Plugins
64
+ if( $plugin_sc == 'daily' ) {
65
+
66
+ $date = date( 'Y-m-d' );
67
+ $hours = sanitize_text_field( $_POST['pluginScheduleTimeH'] );
68
+ $minutes = sanitize_text_field( $_POST['pluginScheduleTimeM'] );
69
+ $seconds = date( 's' );
70
+ $fullDate = $date.' '.$hours.':'.$minutes.':'.$seconds;
71
+ $pluginSetTime = strtotime( $fullDate );
72
+
73
+ wp_schedule_event( $pluginSetTime, $plugin_sc, 'wp_update_plugins' );
74
+ wp_schedule_event( $pluginSetTime, $plugin_sc, 'cau_custom_hooks_plugins' );
75
+
76
+ } else {
77
+
78
+ wp_schedule_event( time(), $plugin_sc, 'wp_update_plugins' );
79
+ wp_schedule_event( time(), $plugin_sc, 'cau_custom_hooks_plugins' );
80
 
 
 
81
  }
82
 
83
+ // Themes
84
+ if( $theme_sc == 'daily' ) {
 
 
85
 
86
+ $dateT = date( 'Y-m-d' );
87
+ $hoursT = sanitize_text_field( $_POST['ThemeScheduleTimeH'] );
88
+ $minutesT = sanitize_text_field( $_POST['ThemeScheduleTimeM'] );
89
+ $secondsT = date( 's' );
90
+ $fullDateT = $dateT.' '.$hoursT.':'.$minutesT.':'.$secondsT;
91
+ $themeSetTime = strtotime( $fullDateT );
92
 
93
+ wp_schedule_event( $themeSetTime, $theme_sc, 'wp_update_themes' );
94
+ wp_schedule_event( $themeSetTime, $theme_sc, 'cau_custom_hooks_themes' );
95
 
96
+ } else {
 
97
 
98
+ wp_schedule_event( time(), $theme_sc, 'wp_update_themes' );
99
+ wp_schedule_event( time(), $theme_sc, 'cau_custom_hooks_themes' );
 
 
 
 
 
 
 
100
 
101
+ }
102
+
103
+ // Core
104
+ if( $core_sc == 'daily' ) {
105
+
106
+ $dateC = date( 'Y-m-d' );
107
+ $hoursC = sanitize_text_field( $_POST['CoreScheduleTimeH'] );
108
+ $minutesC = sanitize_text_field( $_POST['CoreScheduleTimeM'] );
109
+ $secondsC = date( 's' );
110
+ $fullDateC = $dateC.' '.$hoursC.':'.$minutesC.':'.$secondsC;
111
+ $coreSetTime = strtotime( $fullDateC );
112
+
113
+ wp_schedule_event( $coreSetTime, $core_sc, 'wp_version_check' );
114
 
115
+ } else {
116
+
117
+ wp_schedule_event( time(), $core_sc, 'wp_version_check' );
118
 
119
  }
120
 
121
+ // Emails
122
+ if( $schedule_mail == 'daily' ) {
123
+
124
+ $dateT = date( 'Y-m-d' );
125
+ $hoursT = sanitize_text_field( $_POST['timeScheduleEmailTimeH'] );
126
+ $minutesT = sanitize_text_field( $_POST['timeScheduleEmailTimeM'] );
127
+ $secondsT = date( 's' );
128
+ $fullDateT = $dateT.' '.$hoursT.':'.$minutesT.':'.$secondsT;
129
+ $emailSetTime = strtotime( $fullDateT );
130
+
131
+ wp_schedule_event( $emailSetTime, $schedule_mail, 'cau_set_schedule_mail' );
132
+
133
+ } else {
134
+
135
+ wp_schedule_event( time(), $schedule_mail, 'cau_set_schedule_mail' );
136
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  }
138
 
139
+ echo '<div id="message" class="updated"><p><b>'.__( 'Settings saved.' ).'</b></p></div>';
140
+
141
+ }
142
+
143
+ if( isset( $_GET['welcome'] ) ) {
144
+
145
+ echo '<div class="welcome-to-cau welcome-bg welcome-panel">
146
+ <h2>'.__( 'Welcome to Companion Auto Update', 'companion-auto-update' ).'</h2>
147
+ <div class="welcome-column first-column welcome-column-half">
148
+ <h3>'.__( 'You\'re set and ready to go', 'companion-auto-update' ).'</h3>
149
+ <p>'.__( 'The plugin is all set and ready to go with the recommended settings, but if you\'d like you can change them below.' ).'</p>
150
+ </div><div class="welcome-column welcome-column-quarter">
151
+ <h3>'.__( 'Get Started' ).'</h3>
152
+ <ul>
153
+ <li><a href="'.cau_url( 'pluginlist' ).'">'.__( 'Select plugins', 'companion-auto-update' ).'</a></li>
154
+ <li><a href="'.cau_url( 'schedule' ).'">'.__( 'Advanced settings', 'companion-auto-update' ).'</a></li>
155
+ </ul>
156
+ </div><div class="welcome-column welcome-column-quarter">
157
+ <h3>'.__( 'More Actions' ).'</h3>
158
+ <ul>
159
+ <li><a href="http://codeermeneer.nl/cau_poll/" target="_blank">'.__('Give feedback', 'companion-auto-update').'</a></li>
160
+ <li><a href="https://translate.wordpress.org/projects/wp-plugins/companion-auto-update/" target="_blank">'.__( 'Help us translate', 'companion-auto-update' ).'</a></li>
161
+
162
+ </ul>
163
+ </div>
164
+ </div>';
165
+ }
166
+
167
+ $plugin_schedule = wp_get_schedule( 'wp_update_plugins' );
168
+ $theme_schedule = wp_get_schedule( 'wp_update_themes' );
169
+ $core_schedule = wp_get_schedule( 'wp_version_check' );
170
+ $schedule_mail = wp_get_schedule( 'cau_set_schedule_mail' );
171
+ $cs_hooks_p = wp_get_schedule( 'cau_custom_hooks_plugins' );
172
+ $cs_hooks_t = wp_get_schedule( 'cau_custom_hooks_themes' );
173
+ $availableIntervals = wp_get_schedules();
174
+
175
  ?>
176
 
177
  <div class="cau-column-wide">
178
 
179
  <form method="POST">
180
 
181
+ <br />
182
+ <div id="message" class="cau">
183
+ <strong>Got a moment?</strong> <a href="https://forms.gle/B5MMJKk8teGQH8pcA" target="_blank" class="tell_me_more">Please tell me if you like the redesigned dashboard.</a>
184
+ </div>
185
+
186
+ <div class="welcome-to-cau update-bg welcome-panel cau-dashboard-box">
187
+
188
+ <h2 class="title"><?php _e('Auto Updater', 'companion-auto-update');?></h2>
189
+
190
+ <table class="form-table">
191
+ <tr>
192
+ <td>
193
+ <fieldset>
194
+
195
+ <?php
196
+
197
+ echo '<p><input id="plugins" name="plugins" type="checkbox"';
198
+ if( cau_get_db_value( 'plugins' ) == 'on' ) echo 'checked';
199
+ echo '/> <label for="plugins">'.__('Auto update plugins?', 'companion-auto-update').'</label></p>';
200
+
201
+ echo '<p><input id="themes" name="themes" type="checkbox"';
202
+ if( cau_get_db_value( 'themes' ) == 'on' ) echo 'checked';
203
+ echo '/> <label for="themes">'.__('Auto update themes?', 'companion-auto-update').'</label></p>';
204
+
205
+ echo '<p><input id="minor" name="minor" type="checkbox"';
206
+ if( cau_get_db_value( 'minor' ) == 'on' ) echo 'checked';
207
+ echo '/> <label for="minor">'.__('Auto update minor core updates?', 'companion-auto-update').' <code class="majorMinorExplain">5.3.0 > 5.3.1</code></label></p>';
208
+
209
+ echo '<p><input id="major" name="major" type="checkbox"';
210
+ if( cau_get_db_value( 'major' ) == 'on' ) echo 'checked';
211
+ echo '/> <label for="major">'.__('Auto update major core updates?', 'companion-auto-update').' <code class="majorMinorExplain">5.3.0 > 5.4.0</code></label></p>';
212
+
213
+ echo '<p><input id="translations" name="translations" type="checkbox"';
214
+ if( cau_get_db_value( 'translations' ) == 'on' ) echo 'checked';
215
+ echo '/> <label for="translations">'.__('Auto update translation files?', 'companion-auto-update').'</label></p>';
216
+
217
+ ?>
218
+
219
+ </fieldset>
220
+ </td>
221
+ </tr>
222
+ </table>
223
+
224
+ </div>
225
+
226
+ <div class="welcome-to-cau email-bg welcome-panel cau-dashboard-box">
227
+
228
+ <h2 class="title"><?php _e( 'Email Notifications', 'companion-auto-update' );?></h2>
229
+
230
+ <?php
231
+ if( cau_get_db_value( 'email' ) == '' ) $toemail = get_option('admin_email');
232
+ else $toemail = cau_get_db_value( 'email' );
233
+ ?>
234
+
235
+ <table class="form-table">
236
+ <tr>
237
+ <th scope="row"><?php _e( 'Update available', 'companion-auto-update' );?></th>
238
+ <td>
239
+ <p>
240
+ <input id="cau_send" name="cau_send" type="checkbox" <?php if( cau_get_db_value( 'send' ) == 'on' ) { echo 'checked'; } ?> />
241
+ <label for="cau_send"><?php _e('Send me emails when an update is available.', 'companion-auto-update');?></label>
242
+ </p>
243
+ </td>
244
+ </tr>
245
+ <tr>
246
+ <th scope="row"><?php _e( 'Successful update', 'companion-auto-update' );?></th>
247
+ <td>
248
+ <p>
249
+ <input id="cau_send_update" name="cau_send_update" type="checkbox" <?php if( cau_get_db_value( 'sendupdate' ) == 'on' ) { echo 'checked'; } ?> />
250
+ <label for="cau_send_update"><?php _e('Send me emails when something has been updated.', 'companion-auto-update');?></label>
251
+ </p>
252
+ </td>
253
+ </tr>
254
+ <tr>
255
+ <th scope="row"><?php _e( 'Email Address' );?></th>
256
+ <td>
257
+ <p>
258
+ <label for="cau_email"><?php _e('To', 'companion-auto-update');?>:</label>
259
+ <input type="text" name="cau_email" id="cau_email" class="regular-text" placeholder="<?php echo get_option('admin_email'); ?>" value="<?php echo esc_html( $toemail ); ?>" />
260
+ </p>
261
+
262
+ <p class="description"><?php _e('Seperate email addresses using commas.', 'companion-auto-update');?></p>
263
+ </td>
264
+ </tr>
265
+ <tr>
266
+ <th scope="row"><?php _e( 'Use HTML in emails?', 'companion-auto-update' );?></th>
267
+ <td>
268
+ <p>
269
+ <select id='html_or_text' name='html_or_text'>
270
+ <option value='html' <?php if( cau_get_db_value( 'html_or_text' ) == 'html' ) { echo "SELECTED"; } ?>><?php _e( 'Use HTML', 'companion-auto-update' ); ?></option>
271
+ <option value='text' <?php if( cau_get_db_value( 'html_or_text' ) == 'text' ) { echo "SELECTED"; } ?>><?php _e( 'Use plain text', 'companion-auto-update' ); ?></option>
272
+ </select>
273
+ </p>
274
+ </td>
275
+ </tr>
276
+ <tr>
277
+ <th scope="row">
278
+ <?php _e('Core notifications', 'companion-auto-update');?>
279
+ <span class='cau_tooltip'><span class="dashicons dashicons-editor-help"></span>
280
+ <span class='cau_tooltip_text'><?php _e('Core notifications are handled by WordPress and not by this plugin. You can only disable them, changing your email address in the settings above will not affect these notifications.', 'companion-auto-update');?></span>
281
+ </span>
282
+ </th>
283
+ <td>
284
+ <p>
285
+ <input id="wpemails" name="wpemails" type="checkbox" <?php if( cau_get_db_value( 'wpemails' ) == 'on' ) { echo 'checked'; } ?> />
286
+ <label for="wpemails"><?php _e( 'By default WordPress sends an email when a core update has occurred. Uncheck this box to disable these emails.', 'companion-auto-update' );?></label>
287
+ </p>
288
+ </td>
289
+ </tr>
290
+ </table>
291
+
292
+ </div>
293
+
294
+ <div class="welcome-to-cau interval-bg welcome-panel cau-dashboard-box" style="overflow: hidden;">
295
+
296
+ <h2 class="title"><?php _e('Intervals', 'companion-auto-update');?></h2>
297
+
298
+ <div class="welcome-column welcome-column-quarter">
299
+
300
+ <h4><?php _e( 'Plugin update interval', 'companion-auto-update' );?></h4>
301
+ <p>
302
+ <select name='plugin_schedule' id='plugin_schedule' class='schedule_interval wide'>
303
+ <?php foreach ( $availableIntervals as $key => $value ) {
304
+ foreach ( $value as $display => $interval ) {
305
+ if( $display == 'display' ) {
306
+ echo "<option "; if( $plugin_schedule == $key ) { echo "selected "; } echo "value='".$key."'>".$interval."</option>";
307
+ }
308
+ }
309
+ } ?>
310
+ </select>
311
+ </p>
312
+ <div class='timeSchedulePlugins' <?php if( $plugin_schedule != 'daily' ) { echo "style='display: none;'"; } ?> >
313
 
314
+ <?php
315
 
316
+ $setTimePlugins = wp_next_scheduled( 'wp_update_plugins' );
317
+ $setTimePluginsHour = date( 'H' , $setTimePlugins );
318
+ $setTimePluginsMin = date( 'i' , $setTimePlugins );
319
 
320
+ ?>
 
 
321
 
322
+ <div class='cau_schedule_input'>
323
+ <input type='number' max='23' name='pluginScheduleTimeH' value='<?php echo $setTimePluginsHour; ?>' maxlength='2' >
324
+ </div><div class='cau_schedule_input_div'>
325
+ :
326
+ </div><div class='cau_schedule_input'>
327
+ <input type='number' max='59' name='pluginScheduleTimeM' value='<?php echo $setTimePluginsMin; ?>' maxlength='2' >
328
+ </div><div class='cau_shedule_notation'>
329
+ <span class='cau_tooltip'><span class="dashicons dashicons-editor-help"></span>
330
+ <span class='cau_tooltip_text'><?php _e('At what time should the updater run? Only works when set to <u>daily</u>.', 'companion-auto-update'); ?> - <?php _e( 'Time notation: 24H', 'companion-auto-update'); ?></span>
331
+ </span>
332
+ </div>
333
 
334
+ </div>
 
 
335
 
336
+ </div><div class="welcome-column welcome-column-quarter">
 
 
337
 
338
+ <h4><?php _e( 'Theme update interval', 'companion-auto-update' );?></h4>
339
+ <p>
340
+ <select name='theme_schedule' id='theme_schedule' class='schedule_interval wide'>
341
+ <?php foreach ( $availableIntervals as $key => $value ) {
342
+ foreach ( $value as $display => $interval ) {
343
+ if( $display == 'display' ) {
344
+ echo "<option "; if( $theme_schedule == $key ) { echo "selected "; } echo "value='".$key."'>".$interval."</option>";
345
+ }
346
+ }
347
+ } ?>
348
+ </select>
349
+ </p>
350
+ <div class='timeScheduleThemes' <?php if( $theme_schedule != 'daily' ) { echo "style='display: none;'"; } ?> >
351
 
352
+ <?php
 
 
 
353
 
354
+ $setTimeThemes = wp_next_scheduled( 'wp_update_themes' );
355
+ $setTimeThemesHour = date( 'H' , $setTimeThemes );
356
+ $setTimeThemesMins = date( 'i' , $setTimeThemes );
357
 
358
+ ?>
 
359
 
360
+ <div class='cau_schedule_input'>
361
+ <input type='number' max='23' name='ThemeScheduleTimeH' value='<?php echo $setTimeThemesHour; ?>' maxlength='2' >
362
+ </div><div class='cau_schedule_input_div'>
363
+ :
364
+ </div><div class='cau_schedule_input'>
365
+ <input type='number' max='59' name='ThemeScheduleTimeM' value='<?php echo $setTimeThemesMins; ?>' maxlength='2' >
366
+ </div><div class='cau_shedule_notation'>
367
+ <span class='cau_tooltip'><span class="dashicons dashicons-editor-help"></span>
368
+ <span class='cau_tooltip_text'><?php _e('At what time should the updater run? Only works when set to <u>daily</u>.', 'companion-auto-update'); ?> - <?php _e( 'Time notation: 24H', 'companion-auto-update'); ?></span>
369
+ </span>
370
+ </div>
371
+ </div>
372
 
373
+ </div><div class="welcome-column welcome-column-quarter">
374
+
375
+ <h4><?php _e( 'Core update interval', 'companion-auto-update' );?></h4>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
376
  <p>
377
+ <select name='core_schedule' id='core_schedule' class='schedule_interval wide'>
378
+ <?php foreach ( $availableIntervals as $key => $value ) {
379
+ foreach ( $value as $display => $interval ) {
380
+ if( $display == 'display' ) {
381
+ echo "<option "; if( $core_schedule == $key ) { echo "selected "; } echo "value='".$key."'>".$interval."</option>";
382
+ }
383
+ }
384
+ } ?>
385
+ </select>
386
  </p>
387
+ <div class='timeScheduleCore' <?php if( $core_schedule != 'daily' ) { echo "style='display: none;'"; } ?> >
388
+
389
+ <?php
390
+
391
+ $setTimeCore = wp_next_scheduled( 'wp_version_check' );
392
+ $setTimeCoreHour = date( 'H' , $setTimeCore );
393
+ $setTimeCoreMins = date( 'i' , $setTimeCore );
394
 
395
+ ?>
 
 
 
396
 
397
+ <div class='cau_schedule_input'>
398
+ <input type='number' max='23' name='CoreScheduleTimeH' value='<?php echo $setTimeCoreHour; ?>' maxlength='2' >
399
+ </div><div class='cau_schedule_input_div'>
400
+ :
401
+ </div><div class='cau_schedule_input'>
402
+ <input type='number' max='59' name='CoreScheduleTimeM' value='<?php echo $setTimeCoreMins; ?>' maxlength='2' >
403
+ </div><div class='cau_shedule_notation'>
404
+ <span class='cau_tooltip'><span class="dashicons dashicons-editor-help"></span>
405
+ <span class='cau_tooltip_text'><?php _e('At what time should the updater run? Only works when set to <u>daily</u>.', 'companion-auto-update'); ?> - <?php _e( 'Time notation: 24H', 'companion-auto-update'); ?></span>
406
+ </span>
407
+ </div>
408
+ </div>
409
 
410
+ </div><div class="welcome-column welcome-column-quarter">
 
411
 
412
+ <h4><?php _e( 'Email Notifications', 'companion-auto-update' );?></h4>
 
 
 
413
  <p>
414
+ <select id='schedule_mail' name='schedule_mail'>
415
+ <?php foreach ( $availableIntervals as $key => $value ) {
416
+ foreach ( $value as $display => $interval ) {
417
+ if( $display == 'display' ) {
418
+ echo "<option "; if( $schedule_mail == $key ) { echo "selected "; } echo "value='".$key."'>".$interval."</option>";
419
+ }
420
+ }
421
+ } ?>
422
+ </select>
423
  </p>
424
+ <div class='timeScheduleEmail' <?php if( $schedule_mail != 'daily' ) { echo "style='display: none;'"; } ?> >
425
+
426
+ <?php
427
+
428
+ $setTimeEmails = wp_next_scheduled( 'cau_set_schedule_mail' );
429
+ $setTimeEmailHour = date( 'H' , $setTimeEmails );
430
+ $setTimeEmailMins = date( 'i' , $setTimeEmails );
431
+
432
+ ?>
433
+
434
+ <div class='cau_schedule_input'>
435
+ <input type='number' max='23' name='timeScheduleEmailTimeH' value='<?php echo $setTimeEmailHour; ?>' maxlength='2' >
436
+ </div><div class='cau_schedule_input_div'>
437
+ :
438
+ </div><div class='cau_schedule_input'>
439
+ <input type='number' max='59' name='timeScheduleEmailTimeM' value='<?php echo $setTimeEmailMins; ?>' maxlength='2' >
440
+ </div><div class='cau_shedule_notation'>
441
+ <span class='cau_tooltip'><span class="dashicons dashicons-editor-help"></span>
442
+ <span class='cau_tooltip_text'><?php _e( 'Time notation: 24H', 'companion-auto-update'); ?></span>
443
+ </span>
444
+ </div>
445
+ </div>
446
+
447
+ </div>
448
 
449
+ </div>
450
 
451
+ <?php wp_nonce_field( 'cau_save_settings' ); ?>
452
+ <?php submit_button(); ?>
453
 
454
  </form>
455
 
456
  </div><div class="cau-column-small">
457
 
458
+ <div class="welcome-to-cau help-bg welcome-panel cau-dashboard-box">
459
+ <div class="welcome-column welcome-column.welcome-column-half">
460
+ <h3><?php _e( 'Help' ); ?></h3>
461
+ <ul>
462
+ <li><a href="https://codeermeneer.nl/stuffs/faq-auto-updater/" target="_blank"><?php _e( 'Frequently Asked Questions', 'companion-auto-update' ); ?></a></li>
463
+ <li><a href="https://wordpress.org/support/plugin/companion-auto-update" target="_blank"><?php _e( 'Support Forums' ); ?></a></li>
464
+ <li><a href="<?php echo cau_url( 'status' ); ?>"><?php _e( 'Status', 'companion-auto-update' ); ?></a></li>
465
+ </ul>
466
+ <br />
467
+
468
+ <h3><?php _e( 'Want to contribute?', 'companion-auto-update' ); ?></h3>
469
+ <ul>
470
+ <li><a href="http://codeermeneer.nl/cau_poll/" target="_blank"><?php _e( 'Give feedback', 'companion-auto-update' ); ?></a></li>
471
+ <li><a href="https://translate.wordpress.org/projects/wp-plugins/companion-auto-update/" target="_blank"><?php _e( 'Help us translate', 'companion-auto-update' ); ?></a></li>
472
+ </ul>
473
+ </div>
474
+ <div class="welcome-column welcome-column.welcome-column-half">
475
+ <h3><?php _e( 'Developer?', 'companion-auto-update' ); ?></h3>
476
+ <ul>
477
+ <li><a href="https://codeermeneer.nl/documentation/auto-update/" target="_blank"><?php _e( 'Documentation' ); ?></a></li>
478
+ </ul>
479
+ </div>
480
+ </div>
481
+
482
+ <div class="welcome-to-cau support-bg welcome-panel cau-dashboard-box">
483
+ <div class="welcome-column welcome-column">
484
+ <h3><?php _e('Support', 'companion-auto-update');?></h3>
485
+ <p><?php _e('Feel free to reach out to us if you have any questions or feedback.', 'companion-auto-update'); ?></p>
486
+ <p><a href="https://codeermeneer.nl/contact/" target="_blank" class="button button-primary"><?php _e( 'Contact us', 'companion-auto-update' ); ?></a></p>
487
+ <p><a href="https://codeermeneer.nl/plugins/" target="_blank" class="button button-alt"><?php _e('Check out our other plugins', 'companion-auto-update');?></a></p>
488
+ </div><div class="welcome-column welcome-column-half">
489
+
490
+ </div>
491
+ </div>
492
+
493
+ <div class="welcome-to-cau love-bg cau-show-love welcome-panel cau-dashboard-box">
494
  <h3><?php _e( 'Like our plugin?', 'companion-auto-update' ); ?></h3>
495
  <p><?php _e('Companion Auto Update is free to use. It has required a great deal of time and effort to develop and you can help support this development by making a small donation.<br />You get useful software and we get to carry on making it better.', 'companion-auto-update'); ?></p>
496
+ <a href="https://wordpress.org/support/plugin/companion-auto-update/reviews/#new-post" target="_blank" class="button button-alt button-hero">
 
497
  <?php _e('Rate us (5 stars?)', 'companion-auto-update'); ?>
498
  </a>
499
+ <a href="<?php echo cau_donateUrl(); ?>" target="_blank" class="button button-primary button-hero">
 
500
  <?php _e('Donate to help development', 'companion-auto-update'); ?>
501
  </a>
502
  <p style="font-size: 12px; color: #BDBDBD;">Donations via PayPal. Amount can be changed.</p>
503
  </div>
504
 
505
  </div>
506
+
507
+ <script type="text/javascript">
508
+
509
+ jQuery( '#plugin_schedule' ).change( function() {
510
+
511
+ var selected = jQuery(this).val();
512
+
513
+ if( selected == 'daily' ) {
514
+ jQuery('.timeSchedulePlugins').show();
515
+ } else {
516
+ jQuery('.timeSchedulePlugins').hide();
517
+ }
518
+
519
+ });
520
+
521
+ jQuery( '#theme_schedule' ).change( function() {
522
+
523
+ var selected = jQuery(this).val();
524
+
525
+ if( selected == 'daily' ) {
526
+ jQuery('.timeScheduleThemes').show();
527
+ } else {
528
+ jQuery('.timeScheduleThemes').hide();
529
+ }
530
+
531
+ });
532
+
533
+ jQuery( '#core_schedule' ).change( function() {
534
+
535
+ var selected = jQuery(this).val();
536
+
537
+ if( selected == 'daily' ) {
538
+ jQuery('.timeScheduleCore').show();
539
+ } else {
540
+ jQuery('.timeScheduleCore').hide();
541
+ }
542
+
543
+ });
544
+
545
+ jQuery( '#schedule_mail' ).change( function() {
546
+
547
+ var selected = jQuery(this).val();
548
+
549
+ if( selected == 'daily' ) {
550
+ jQuery('.timeScheduleEmail').show();
551
+ } else {
552
+ jQuery('.timeScheduleEmail').hide();
553
+ }
554
+
555
+ });
556
+
557
+ </script>
admin/pluginlist.php CHANGED
@@ -35,6 +35,12 @@ switch ( $filter ) {
35
 
36
  <div style='clear: both;'></div>
37
 
 
 
 
 
 
 
38
  <p><?php echo sprintf( esc_html__( 'Prevent certain %s from updating automatically. %s that you select here will be skipped by Companion Auto Update and will require manual updating.', 'companion-auto-update' ), strtolower( $filter_name ), $filter_name ); ?></p>
39
 
40
  <?php
35
 
36
  <div style='clear: both;'></div>
37
 
38
+ <?php if( $filter == 'themes' ) { ?>
39
+ <div id="message" class="cau">
40
+ We've had to (temporarily) disable the theme filter because it was causing issues on some installations. We'll try to get it working again in a future update.
41
+ </div>
42
+ <?php } ?>
43
+
44
  <p><?php echo sprintf( esc_html__( 'Prevent certain %s from updating automatically. %s that you select here will be skipped by Companion Auto Update and will require manual updating.', 'companion-auto-update' ), strtolower( $filter_name ), $filter_name ); ?></p>
45
 
46
  <?php
admin/schedule.php CHANGED
@@ -4,11 +4,15 @@ if( isset( $_POST['submit'] ) ) {
4
 
5
  check_admin_referer( 'cau_save_schedule' );
6
 
 
 
 
7
  // Set variables
8
  $plugin_sc = sanitize_text_field( $_POST['plugin_schedule'] );
9
  $theme_sc = sanitize_text_field( $_POST['theme_schedule'] );
10
  $core_sc = sanitize_text_field( $_POST['core_schedule'] );
11
  $schedule_mail = sanitize_text_field( $_POST['schedule_mail'] );
 
12
 
13
  // First clear schedules
14
  wp_clear_scheduled_hook('wp_update_plugins');
@@ -96,6 +100,9 @@ if( isset( $_POST['submit'] ) ) {
96
 
97
  }
98
 
 
 
 
99
  echo '<div id="message" class="updated"><p>'.__( 'Settings saved.' ).'</p></div>';
100
 
101
  }
@@ -280,6 +287,17 @@ $availableIntervals = wp_get_schedules();
280
  </div>
281
  </td>
282
  </tr>
 
 
 
 
 
 
 
 
 
 
 
283
  <tr>
284
  <th scope="row"><?php _e( 'Disable Notifications', 'companion-auto-update' );?></th>
285
  <td>
4
 
5
  check_admin_referer( 'cau_save_schedule' );
6
 
7
+ global $wpdb;
8
+ $table_name = $wpdb->prefix . "auto_updates";
9
+
10
  // Set variables
11
  $plugin_sc = sanitize_text_field( $_POST['plugin_schedule'] );
12
  $theme_sc = sanitize_text_field( $_POST['theme_schedule'] );
13
  $core_sc = sanitize_text_field( $_POST['core_schedule'] );
14
  $schedule_mail = sanitize_text_field( $_POST['schedule_mail'] );
15
+ $html_or_text = sanitize_text_field( $_POST['html_or_text'] );
16
 
17
  // First clear schedules
18
  wp_clear_scheduled_hook('wp_update_plugins');
100
 
101
  }
102
 
103
+ // Use HTML or TEXT
104
+ $wpdb->query( $wpdb->prepare( "UPDATE $table_name SET onoroff = %s WHERE name = 'html_or_text'", $html_or_text ) );
105
+
106
  echo '<div id="message" class="updated"><p>'.__( 'Settings saved.' ).'</p></div>';
107
 
108
  }
287
  </div>
288
  </td>
289
  </tr>
290
+ <tr>
291
+ <th scope="row"><?php _e( 'Use HTML in emails?', 'companion-auto-update' );?></th>
292
+ <td>
293
+ <p>
294
+ <select id='html_or_text' name='html_or_text'>
295
+ <option value='html' <?php if( cau_get_db_value( 'html_or_text' ) == 'html' ) { echo "SELECTED"; } ?>><?php _e( 'Use HTML', 'companion-auto-update' ); ?></option>
296
+ <option value='text' <?php if( cau_get_db_value( 'html_or_text' ) == 'text' ) { echo "SELECTED"; } ?>><?php _e( 'Use plain text', 'companion-auto-update' ); ?></option>
297
+ </select>
298
+ </p>
299
+ </td>
300
+ </tr>
301
  <tr>
302
  <th scope="row"><?php _e( 'Disable Notifications', 'companion-auto-update' );?></th>
303
  <td>
admin/status.php CHANGED
@@ -344,10 +344,12 @@ function cau_removeErrorLine() {
344
 
345
  // Lines to check and replace
346
  $revLine = "define('AUTOMATIC_UPDATER_DISABLED', false);"; // We could just remove the line, but replacing it will be safer
347
- $oldLine = array( "define('AUTOMATIC_UPDATER_DISABLED', true);", "define('AUTOMATIC_UPDATER_DISABLED', minor);","define('automatic_updater_disabled', true);", "define('automatic_updater_disabled', minor);" );
 
 
348
 
349
  // Check for each string if it exists
350
- foreach ( $oldLine as $key => $string ) {
351
 
352
  if( strpos( file_get_contents( $conFile ), $string ) !== false) {
353
  $contents = file_get_contents( $conFile );
@@ -425,4 +427,34 @@ if( cau_incompatiblePlugins() ) { ?>
425
 
426
  </table>
427
 
428
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
344
 
345
  // Lines to check and replace
346
  $revLine = "define('AUTOMATIC_UPDATER_DISABLED', false);"; // We could just remove the line, but replacing it will be safer
347
+ $posibleLines = array( "define( 'AUTOMATIC_UPDATER_DISABLED', true );", "define( 'AUTOMATIC_UPDATER_DISABLED', minor );" ); // The two base options
348
+ foreach ( $posibleLines as $value ) array_push( $posibleLines, strtolower( $value ) ); // Support lowercase variants
349
+ foreach ( $posibleLines as $value ) array_push( $posibleLines, str_replace( ' ', '', $value ) ); // For variants without spaces
350
 
351
  // Check for each string if it exists
352
+ foreach ( $posibleLines as $key => $string ) {
353
 
354
  if( strpos( file_get_contents( $conFile ), $string ) !== false) {
355
  $contents = file_get_contents( $conFile );
427
 
428
  </table>
429
 
430
+ <table class="autoupdate cau_status_list widefat striped cau_status_warnings">
431
+
432
+ <thead>
433
+ <tr>
434
+ <th><strong><?php _e( 'Advanced info', 'companion-auto-update' ); ?></strong> &dash; <?php _e( 'For when you need our help fixing an issue.', 'companion-auto-update' ); ?></th>
435
+ </tr>
436
+ </thead>
437
+ <tbody id="the-list">
438
+ <tr>
439
+ <td>
440
+ <div class='button button-primary toggle_advanced_button'>Toggle</div>
441
+
442
+ <div class='toggle_advanced_content' style='display: none;'>
443
+ <?php
444
+ global $wpdb;
445
+ $autoupdates = $wpdb->prefix."auto_updates";
446
+ $cau_configs = $wpdb->get_results( "SELECT * FROM $autoupdates" );
447
+
448
+ echo "<pre>";
449
+ print_r( $cau_configs );
450
+ echo "</pre>";
451
+ ?>
452
+ </div>
453
+ </td>
454
+ </tr>
455
+ </tbody>
456
+ </table>
457
+
458
+ </div>
459
+
460
+ <script>jQuery( '.toggle_advanced_button' ).click( function() { jQuery( '.toggle_advanced_content' ).toggle(); });</script>
backend/images/email.svg ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ version="1.1"
13
+ id="Capa_1"
14
+ x="0px"
15
+ y="0px"
16
+ viewBox="0 0 512 512"
17
+ style="enable-background:new 0 0 512 512;"
18
+ xml:space="preserve"
19
+ sodipodi:docname="email.svg"
20
+ inkscape:version="0.92.0 r15299"><metadata
21
+ id="metadata53"><rdf:RDF><cc:Work
22
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
23
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
24
+ id="defs51" /><sodipodi:namedview
25
+ pagecolor="#ffffff"
26
+ bordercolor="#666666"
27
+ borderopacity="1"
28
+ objecttolerance="10"
29
+ gridtolerance="10"
30
+ guidetolerance="10"
31
+ inkscape:pageopacity="0"
32
+ inkscape:pageshadow="2"
33
+ inkscape:window-width="2560"
34
+ inkscape:window-height="1017"
35
+ id="namedview49"
36
+ showgrid="false"
37
+ inkscape:zoom="0.65186406"
38
+ inkscape:cx="-69.611734"
39
+ inkscape:cy="47.71336"
40
+ inkscape:window-x="1912"
41
+ inkscape:window-y="-8"
42
+ inkscape:window-maximized="1"
43
+ inkscape:current-layer="Capa_1" /><path
44
+ style="fill:#ded1f2;fill-opacity:1;stroke-width:1.27565181;stroke:none"
45
+ d="M 71.046797,255.0733 385.53069,455.21797 c 3.59223,2.65335 7.8376,3.95962 12.08297,3.95962 4.24537,0 8.49074,-1.30627 12.08297,-3.95962 L 724.18052,255.0733 409.85992,14.23025 c -7.26612,-5.429174 -17.2264,-5.429174 -24.49252,0 z"
46
+ id="path2"
47
+ inkscape:connector-curvature="0" /><path
48
+ style="fill:#eceff1;stroke-width:1.27565181"
49
+ d="M 601.71795,70.148164 H 193.50937 c -22.49229,0 -40.82086,18.328565 -40.82086,40.820856 v 449.02943 c 0,11.26656 9.14388,20.41043 20.41043,20.41043 h 449.02944 c 11.26655,0 20.41042,-9.14387 20.41042,-20.41043 V 110.96902 c 0,-22.492291 -18.28774,-40.820856 -40.82085,-40.820856 z"
50
+ id="path4"
51
+ inkscape:connector-curvature="0" /><g
52
+ id="g12"
53
+ transform="matrix(1.2756518,0,0,1.2756518,71.046797,70.148164)"><path
54
+ style="fill:#90a4ae"
55
+ d="m 144,96 h 224 c 8.832,0 16,-7.168 16,-16 0,-8.832 -7.168,-16 -16,-16 H 144 c -8.832,0 -16,7.168 -16,16 0,8.832 7.168,16 16,16 z"
56
+ id="path6"
57
+ inkscape:connector-curvature="0" /><path
58
+ style="fill:#90a4ae"
59
+ d="M 368,128 H 144 c -8.832,0 -16,7.168 -16,16 0,8.832 7.168,16 16,16 h 224 c 8.832,0 16,-7.168 16,-16 0,-8.832 -7.168,-16 -16,-16 z"
60
+ id="path8"
61
+ inkscape:connector-curvature="0" /><path
62
+ style="fill:#90a4ae"
63
+ d="M 272,192 H 144 c -8.832,0 -16,7.168 -16,16 0,8.832 7.168,16 16,16 h 128 c 8.832,0 16,-7.168 16,-16 0,-8.832 -7.168,-16 -16,-16 z"
64
+ id="path10"
65
+ inkscape:connector-curvature="0" /></g><path
66
+ style="fill:#9178b7;fill-opacity:1;stroke-width:1.27565181;stroke:none"
67
+ d="m 409.69663,455.21797 c -3.59223,2.65335 -7.8376,3.95962 -12.08297,3.95962 -4.24537,0 -8.49074,-1.30627 -12.08297,-3.95962 L 71.046797,255.0733 v 367.38772 c 0,22.53312 18.287744,40.82086 40.820853,40.82086 h 571.49201 c 22.53312,0 40.82086,-18.28774 40.82086,-40.82086 V 255.0733 Z"
68
+ id="path14"
69
+ inkscape:connector-curvature="0" /><path
70
+ style="fill:#9163b7;fill-opacity:1;stroke-width:1.27565181;stroke:none"
71
+ d="M 683.35966,663.28188 H 111.86765 c -22.900497,0 -40.820853,-17.92036 -40.820853,-40.82086 0,-6.49051 3.102385,-12.61364 8.327455,-16.4508 L 385.53069,401.90593 c 3.59223,-2.65336 7.8376,-3.95962 12.08297,-3.95962 4.24537,0 8.49074,1.30626 12.08297,3.95962 l 306.15643,204.10429 c 5.22507,3.83716 8.32746,9.96029 8.32746,16.4508 0,22.9005 -17.92036,40.82086 -40.82086,40.82086 z"
72
+ id="path16"
73
+ inkscape:connector-curvature="0" /><g
74
+ id="g18"
75
+ transform="translate(-30.372882,-28.20339)" /><g
76
+ id="g20"
77
+ transform="translate(-30.372882,-28.20339)" /><g
78
+ id="g22"
79
+ transform="translate(-30.372882,-28.20339)" /><g
80
+ id="g24"
81
+ transform="translate(-30.372882,-28.20339)" /><g
82
+ id="g26"
83
+ transform="translate(-30.372882,-28.20339)" /><g
84
+ id="g28"
85
+ transform="translate(-30.372882,-28.20339)" /><g
86
+ id="g30"
87
+ transform="translate(-30.372882,-28.20339)" /><g
88
+ id="g32"
89
+ transform="translate(-30.372882,-28.20339)" /><g
90
+ id="g34"
91
+ transform="translate(-30.372882,-28.20339)" /><g
92
+ id="g36"
93
+ transform="translate(-30.372882,-28.20339)" /><g
94
+ id="g38"
95
+ transform="translate(-30.372882,-28.20339)" /><g
96
+ id="g40"
97
+ transform="translate(-30.372882,-28.20339)" /><g
98
+ id="g42"
99
+ transform="translate(-30.372882,-28.20339)" /><g
100
+ id="g44"
101
+ transform="translate(-30.372882,-28.20339)" /><g
102
+ id="g46"
103
+ transform="translate(-30.372882,-28.20339)" /></svg>
backend/images/help.svg ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ height="512pt"
11
+ viewBox="0 0 512 512"
12
+ width="512pt"
13
+ version="1.1"
14
+ id="svg6"
15
+ sodipodi:docname="help.svg"
16
+ inkscape:version="0.92.0 r15299">
17
+ <metadata
18
+ id="metadata12">
19
+ <rdf:RDF>
20
+ <cc:Work
21
+ rdf:about="">
22
+ <dc:format>image/svg+xml</dc:format>
23
+ <dc:type
24
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
25
+ </cc:Work>
26
+ </rdf:RDF>
27
+ </metadata>
28
+ <defs
29
+ id="defs10" />
30
+ <sodipodi:namedview
31
+ pagecolor="#ffffff"
32
+ bordercolor="#666666"
33
+ borderopacity="1"
34
+ objecttolerance="10"
35
+ gridtolerance="10"
36
+ guidetolerance="10"
37
+ inkscape:pageopacity="0"
38
+ inkscape:pageshadow="2"
39
+ inkscape:window-width="1920"
40
+ inkscape:window-height="1017"
41
+ id="namedview8"
42
+ showgrid="false"
43
+ inkscape:zoom="0.69140625"
44
+ inkscape:cx="367.70267"
45
+ inkscape:cy="151.29307"
46
+ inkscape:window-x="-8"
47
+ inkscape:window-y="-8"
48
+ inkscape:window-maximized="1"
49
+ inkscape:current-layer="svg6" />
50
+ <path
51
+ d="m 494.10169,605.28813 h -320 c -53.02344,0 -95.999997,-42.97656 -95.999997,-96 v -320 c 0,-53.02344 42.976557,-95.999997 95.999997,-95.999997 h 320 c 53.02344,0 96,42.976557 96,95.999997 v 320 c 0,53.02344 -42.97656,96 -96,96 z m 0,0"
52
+ id="path2"
53
+ style="fill:#ded1f2;fill-opacity:1"
54
+ inkscape:connector-curvature="0" />
55
+ <path
56
+ d="m 334.10169,221.28813 c -70.57422,0 -128,57.42578 -128,128 0,70.57422 57.42578,128 128,128 70.57422,0 128,-57.42578 128,-128 0,-70.57422 -57.42578,-128 -128,-128 z m 56,138.67188 h -45.32812 v 45.32812 c 0,5.88672 -4.78516,10.67188 -10.67188,10.67188 -5.88672,0 -10.67187,-4.78516 -10.67187,-10.67188 v -45.32812 h -45.32813 c -5.88672,0 -10.67187,-4.78516 -10.67187,-10.67188 0,-5.88672 4.78515,-10.67187 10.67187,-10.67187 h 45.32813 v -45.32813 c 0,-5.88672 4.78515,-10.67187 10.67187,-10.67187 5.88672,0 10.67188,4.78515 10.67188,10.67187 v 45.32813 h 45.32812 c 5.88672,0 10.67188,4.78515 10.67188,10.67187 0,5.88672 -4.78516,10.67188 -10.67188,10.67188 z m 0,0"
57
+ id="path4"
58
+ style="fill:#9178b7;fill-opacity:1"
59
+ inkscape:connector-curvature="0" />
60
+ </svg>
backend/images/interval.svg ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ version="1.1"
13
+ id="Layer_1"
14
+ x="0px"
15
+ y="0px"
16
+ viewBox="0 0 512 512"
17
+ style="enable-background:new 0 0 512 512;"
18
+ xml:space="preserve"
19
+ width="512"
20
+ height="512"
21
+ sodipodi:docname="interval.svg"
22
+ inkscape:version="0.92.0 r15299"><metadata
23
+ id="metadata39"><rdf:RDF><cc:Work
24
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
25
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
26
+ id="defs37" /><sodipodi:namedview
27
+ pagecolor="#ffffff"
28
+ bordercolor="#666666"
29
+ borderopacity="1"
30
+ objecttolerance="10"
31
+ gridtolerance="10"
32
+ guidetolerance="10"
33
+ inkscape:pageopacity="0"
34
+ inkscape:pageshadow="2"
35
+ inkscape:window-width="1920"
36
+ inkscape:window-height="1017"
37
+ id="namedview35"
38
+ showgrid="false"
39
+ inkscape:zoom="0.92187498"
40
+ inkscape:cx="442.11152"
41
+ inkscape:cy="41.039266"
42
+ inkscape:window-x="-8"
43
+ inkscape:window-y="-8"
44
+ inkscape:window-maximized="1"
45
+ inkscape:current-layer="g32" /><g
46
+ id="g32"><circle
47
+ cx="388.33899"
48
+ cy="373.15256"
49
+ r="326.50848"
50
+ id="circle2"
51
+ style="fill:#9178b7;fill-opacity:1;stroke-width:1.27542377" /><path
52
+ d="m 388.33899,124.4449 c -137.13356,0 -248.70763,111.57407 -248.70763,248.70763 0,137.13356 111.57407,249.98305 248.70763,249.98305 137.13356,0 248.70763,-112.84949 248.70763,-249.98305 0,-137.13356 -111.57407,-248.70763 -248.70763,-248.70763 z"
53
+ id="path6"
54
+ inkscape:connector-curvature="0"
55
+ style="fill:#eceff1;fill-opacity:1;stroke-width:1.27542377" /><path
56
+ d="m 388.33899,200.97033 c -10.57454,0 -19.13136,8.55682 -19.13136,19.13135 v 191.31356 c 0,10.57454 8.55682,19.13136 19.13136,19.13136 10.57454,0 19.13135,-8.55682 19.13135,-19.13136 V 220.10168 c 0,-10.57453 -8.55681,-19.13135 -19.13135,-19.13135 z"
57
+ id="path10"
58
+ inkscape:connector-curvature="0"
59
+ style="fill:#90a4ae;fill-opacity:1;stroke-width:1.27542377" /><path
60
+ d="M 503.12712,354.02118 H 388.33899 350.07628 c -10.57454,0 -19.13136,8.55681 -19.13136,19.13135 0,10.57454 8.55682,19.13136 19.13136,19.13136 h 38.26271 114.78813 c 10.57454,0 19.13136,-8.55682 19.13136,-19.13136 0,-10.57454 -8.55682,-19.13135 -19.13136,-19.13135 z"
61
+ id="path14"
62
+ inkscape:connector-curvature="0"
63
+ style="fill:#90a4ae;fill-opacity:1;stroke-width:1.27542377" /></g></svg>
backend/images/love.svg CHANGED
@@ -1,6 +1,4 @@
1
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
-
4
  <svg
5
  xmlns:dc="http://purl.org/dc/elements/1.1/"
6
  xmlns:cc="http://creativecommons.org/ns#"
@@ -9,20 +7,28 @@
9
  xmlns="http://www.w3.org/2000/svg"
10
  xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
  xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
 
 
 
 
 
12
  version="1.1"
13
- id="Layer_1"
14
- x="0px"
15
- y="0px"
16
- viewBox="0 0 250 250"
17
- xml:space="preserve"
18
  sodipodi:docname="love.svg"
19
- inkscape:version="0.92.0 r15299"
20
- width="250"
21
- height="250"><metadata
22
- id="metadata69"><rdf:RDF><cc:Work
23
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
24
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
25
- id="defs67" /><sodipodi:namedview
 
 
 
 
 
 
 
 
26
  pagecolor="#ffffff"
27
  bordercolor="#666666"
28
  borderopacity="1"
@@ -33,184 +39,80 @@
33
  inkscape:pageshadow="2"
34
  inkscape:window-width="1920"
35
  inkscape:window-height="1017"
36
- id="namedview65"
37
  showgrid="false"
38
- inkscape:zoom="1.84375"
39
- inkscape:cx="126.95637"
40
- inkscape:cy="64.884077"
41
  inkscape:window-x="-8"
42
  inkscape:window-y="-8"
43
  inkscape:window-maximized="1"
44
- inkscape:current-layer="Layer_1" /><path
45
- sodipodi:type="star"
46
- style="opacity:1;fill:#e5ac51;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:7.55905533;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
47
- id="path4558-1"
48
- sodipodi:sides="5"
49
- sodipodi:cx="-161.62712"
50
- sodipodi:cy="-89.525429"
51
- sodipodi:r1="46.974003"
52
- sodipodi:r2="29.4527"
53
- sodipodi:arg1="1.0471976"
54
- sodipodi:arg2="1.6755161"
55
- inkscape:flatsided="false"
56
- inkscape:rounded="0.23"
57
- inkscape:randomized="0"
58
- d="m -138.14012,-48.844748 c -5.7573,3.323978 -19.95411,-10.694425 -26.56565,-11.389326 -6.61154,-0.694901 -23.4127,10.065482 -28.3531,5.617131 -4.94039,-4.448351 4.00485,-22.282243 2.62266,-28.784926 -1.38219,-6.502682 -16.80776,-19.156401 -14.1038,-25.229611 2.70397,-6.07321 22.42924,-3.07676 28.18654,-6.40074 5.7573,-3.32397 13.02493,-21.90478 19.63647,-21.20988 6.61154,0.6949 9.85719,20.3807 14.79758,24.82905 4.9404,4.44835 24.85762,5.6185 26.23981,12.121179 1.38219,6.502682 -16.33716,15.672725 -19.04113,21.745935 -2.70397,6.07321 2.33792,25.37721 -3.41938,28.701188 z"
59
- transform="matrix(0.91878622,0.16509578,-0.16509578,0.91878622,340.69743,196.7037)" /><path
60
- sodipodi:type="star"
61
- style="opacity:1;fill:#e5ac51;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:7.55905533;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
62
- id="path4558-1-9-0"
63
- sodipodi:sides="5"
64
- sodipodi:cx="-161.62712"
65
- sodipodi:cy="-89.525429"
66
- sodipodi:r1="46.974003"
67
- sodipodi:r2="29.4527"
68
- sodipodi:arg1="1.0471976"
69
- sodipodi:arg2="1.6755161"
70
- inkscape:flatsided="false"
71
- inkscape:rounded="0.23"
72
- inkscape:randomized="0"
73
- d="m -138.14012,-48.844748 c -5.7573,3.323978 -19.95411,-10.694425 -26.56565,-11.389326 -6.61154,-0.694901 -23.4127,10.065482 -28.3531,5.617131 -4.94039,-4.448351 4.00485,-22.282243 2.62266,-28.784926 -1.38219,-6.502682 -16.80776,-19.156401 -14.1038,-25.229611 2.70397,-6.07321 22.42924,-3.07676 28.18654,-6.40074 5.7573,-3.32397 13.02493,-21.90478 19.63647,-21.20988 6.61154,0.6949 9.85719,20.3807 14.79758,24.82905 4.9404,4.44835 24.85762,5.6185 26.23981,12.121179 1.38219,6.502682 -16.33716,15.672725 -19.04113,21.745935 -2.70397,6.07321 2.33792,25.37721 -3.41938,28.701188 z"
74
- transform="matrix(0.91878622,0.16509578,-0.16509578,0.91878622,268.19383,170.33927)" /><path
75
- sodipodi:type="star"
76
- style="opacity:1;fill:#e5ac51;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:7.55905533;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
77
- id="path4558-1-9"
78
- sodipodi:sides="5"
79
- sodipodi:cx="-161.62712"
80
- sodipodi:cy="-89.525429"
81
- sodipodi:r1="46.974003"
82
- sodipodi:r2="29.4527"
83
- sodipodi:arg1="1.0471976"
84
- sodipodi:arg2="1.6755161"
85
- inkscape:flatsided="false"
86
- inkscape:rounded="0.23"
87
- inkscape:randomized="0"
88
- d="m -138.14012,-48.844748 c -5.7573,3.323978 -19.95411,-10.694425 -26.56565,-11.389326 -6.61154,-0.694901 -23.4127,10.065482 -28.3531,5.617131 -4.94039,-4.448351 4.00485,-22.282243 2.62266,-28.784926 -1.38219,-6.502682 -16.80776,-19.156401 -14.1038,-25.229611 2.70397,-6.07321 22.42924,-3.07676 28.18654,-6.40074 5.7573,-3.32397 13.02493,-21.90478 19.63647,-21.20988 6.61154,0.6949 9.85719,20.3807 14.79758,24.82905 4.9404,4.44835 24.85762,5.6185 26.23981,12.121179 1.38219,6.502682 -16.33716,15.672725 -19.04113,21.745935 -2.70397,6.07321 2.33792,25.37721 -3.41938,28.701188 z"
89
- transform="matrix(0.91878622,0.16509578,-0.16509578,0.91878622,311.76617,151.67028)" /><g
90
- id="g14"
91
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
92
- id="g25"
93
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
94
- id="g34"
95
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
96
- id="g36"
97
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
98
- id="g38"
99
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
100
- id="g40"
101
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
102
- id="g42"
103
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
104
- id="g44"
105
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
106
- id="g46"
107
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
108
- id="g48"
109
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
110
- id="g50"
111
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
112
- id="g52"
113
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
114
- id="g54"
115
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
116
- id="g56"
117
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
118
- id="g58"
119
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
120
- id="g60"
121
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
122
- id="g62"
123
- transform="matrix(0.32576223,0,0,0.32576223,527.80426,-6.6491677)" /><g
124
- id="g40-0"
125
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
126
- id="g42-4"
127
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
128
- id="g44-8"
129
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
130
- id="g46-3"
131
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
132
- id="g48-2"
133
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
134
- id="g50-7"
135
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
136
- id="g52-5"
137
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
138
- id="g54-7"
139
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
140
- id="g56-0"
141
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
142
- id="g58-5"
143
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
144
- id="g60-4"
145
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
146
- id="g62-0"
147
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
148
- id="g64"
149
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
150
- id="g66"
151
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><g
152
- id="g68"
153
- transform="matrix(0.58927702,0,0,0.58927702,-2.343465,23.363276)" /><path
154
- style="fill:#ff5a59;stroke-width:0.54081887"
155
- d="M 19.102947,326.15087 H 181.75206 l -2.74141,-19.78044 -11.20468,-80.86109 -1.27471,-9.21555 C 164.36581,200.6625 151.0011,189.0203 135.22055,189.0203 H 65.633925 c -15.780559,0 -29.14528,11.6422 -31.310714,27.27349 l -1.274705,9.21555 -11.204694,80.86109 z"
156
- id="path2"
157
- inkscape:connector-curvature="0" /><path
158
- style="fill:#9178b7;fill-opacity:1;stroke-width:0.46266809"
159
- d="m 38.291322,330.06808 122.868758,0.64821 -2.16561,-43.17409 -6.47449,-54.82038 -1.00697,-8.53789 c -1.71062,-14.48185 -12.26822,-25.26795 -24.73425,-25.26795 H 71.807954 c -12.466045,0 -23.023658,10.7861 -24.734274,25.26795 l -1.006965,8.53789 -6.474495,65.19179 z"
160
- id="path2-8"
161
- inkscape:connector-curvature="0"
162
- sodipodi:nodetypes="cccccsscccc" /><path
163
- style="fill:#ff5a59;stroke-width:0.54081887"
164
- d="m 146.33708,203.22436 -8.80075,10.9981 c -1.87664,2.34552 -4.7181,3.71055 -7.7218,3.71055 H 100.4275 71.04049 c -3.003714,0 -5.845175,-1.36557 -7.721824,-3.71055 l -8.800741,-10.9981 v -5.06638 h 91.819155 z"
165
- id="path12"
166
- inkscape:connector-curvature="0" /><path
167
- style="fill:#f7c097;fill-opacity:1;stroke-width:0.54081887"
168
- d="m 117.06417,172.30197 v 32.50699 c 0,9.18798 -7.44869,16.63668 -16.63667,16.63668 v 0 c -9.18797,0 -16.636669,-7.4487 -16.636669,-16.63668 v -32.50699 z"
169
- id="path14"
170
- inkscape:connector-curvature="0" /><path
171
- style="fill:#f9dc6a;stroke-width:0.54081887"
172
- d="M 156.34007,86.107334 V 136.38131 H 44.514937 V 81.705609 c 0,-11.061369 8.967315,-20.028686 20.028691,-20.028686 h 8.131211 l 0.615446,-1.26768 C 76.604432,53.584108 83.524752,49.251609 91.11189,49.251609 h 28.37299 c 20.35426,0 36.85519,16.500924 36.85519,36.855725 z"
173
- id="path16"
174
- inkscape:connector-curvature="0" /><path
175
- style="fill:#e5ac51;stroke-width:0.54081887"
176
- d="m 64.543628,61.676382 h 8.131211 l 0.615446,-1.26768 C 76.604432,53.58465 83.524752,49.251609 91.11189,49.251609 h 9.19285 c -7.58662,0 -14.506937,4.333041 -17.821066,11.157634 l -0.615454,1.26768 h -8.131222 c -11.061356,0 -20.028672,8.967317 -20.028672,20.028686 V 136.38185 H 44.515478 V 81.705609 C 44.514937,70.6437 53.482252,61.676382 64.543628,61.676382 Z"
177
- id="path18"
178
- inkscape:connector-curvature="0" /><path
179
- style="fill:#ffccaa;stroke-width:0.54081887"
180
- d="m 36.998106,134.49007 v 4.79328 c 0,5.59531 4.535843,10.13116 10.131154,10.13116 h 9.978107 c 0.59274,11.45021 5.620184,21.73442 13.404737,29.15122 7.784543,7.41191 18.317546,11.96128 29.915396,11.96128 23.19627,0 42.14008,-18.20234 43.32014,-41.1125 h 9.97811 c 5.59531,0 10.13116,-4.53585 10.13116,-10.13116 v -4.79328 c 0,-5.5953 -4.53585,-10.13115 -10.13116,-10.13115 h -9.91592 V 106.24689 H 107.39 c -17.32622,0 -31.723351,-12.526448 -34.624302,-29.019802 C 72.51368,75.79554 70.806303,75.204425 69.728459,76.179521 61.937968,83.226392 57.04517,93.416502 57.04517,104.75099 v 19.60739 h -9.91591 c -5.595311,5.4e-4 -10.131154,4.53639 -10.131154,10.13169 z"
181
- id="path20"
182
- inkscape:connector-curvature="0" /><path
183
- style="fill:#f7c097;fill-opacity:1;stroke-width:0.54081887"
184
- d="m 47.12926,124.35892 h 9.91591 v -19.60793 c 0,-11.334488 4.892798,-21.524598 12.683289,-28.570928 1.077844,-0.975095 2.785762,-0.383981 3.037239,1.047566 0.473219,2.688953 1.256322,5.26974 2.303338,7.710996 -3.480162,5.789467 -5.488218,12.564305 -5.488218,19.812906 v 19.60793 l 0.06223,25.05559 c 0.592739,11.45021 5.619651,21.73388 13.404736,29.15068 6.355706,6.05122 14.543706,10.19174 23.647306,11.50917 -2.04645,0.29637 -4.13889,0.45265 -6.26754,0.45265 -11.5984,0 -22.130861,-4.54937 -29.915405,-11.96128 -7.784553,-7.41679 -12.811997,-17.70047 -13.404736,-29.15069 h -9.978108 c -5.595311,0 -10.131153,-4.53584 -10.131153,-10.13115 v -4.79328 c 0,-5.59584 4.535842,-10.13223 10.131153,-10.13223 z"
185
- id="path22"
186
- inkscape:connector-curvature="0" /><g
187
- id="g40-2"
188
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
189
- id="g42-2"
190
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
191
- id="g44-0"
192
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
193
- id="g46-0"
194
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
195
- id="g48-8"
196
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
197
- id="g50-1"
198
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
199
- id="g52-50"
200
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
201
- id="g54-2"
202
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
203
- id="g56-00"
204
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
205
- id="g58-3"
206
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
207
- id="g60-40"
208
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
209
- id="g62-04"
210
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
211
- id="g64-2"
212
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
213
- id="g66-5"
214
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /><g
215
- id="g68-8"
216
- transform="matrix(0.58927702,0,0,0.58927702,-3.970584,23.363271)" /></svg>
1
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
 
2
  <svg
3
  xmlns:dc="http://purl.org/dc/elements/1.1/"
4
  xmlns:cc="http://creativecommons.org/ns#"
7
  xmlns="http://www.w3.org/2000/svg"
8
  xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
  xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ id="Capa_1"
11
+ enable-background="new 0 0 512 512"
12
+ height="512"
13
+ viewBox="0 0 512 512"
14
+ width="512"
15
  version="1.1"
 
 
 
 
 
16
  sodipodi:docname="love.svg"
17
+ inkscape:version="0.92.0 r15299">
18
+ <metadata
19
+ id="metadata97">
20
+ <rdf:RDF>
21
+ <cc:Work
22
+ rdf:about="">
23
+ <dc:format>image/svg+xml</dc:format>
24
+ <dc:type
25
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
26
+ </cc:Work>
27
+ </rdf:RDF>
28
+ </metadata>
29
+ <defs
30
+ id="defs95" />
31
+ <sodipodi:namedview
32
  pagecolor="#ffffff"
33
  bordercolor="#666666"
34
  borderopacity="1"
39
  inkscape:pageshadow="2"
40
  inkscape:window-width="1920"
41
  inkscape:window-height="1017"
42
+ id="namedview93"
43
  showgrid="false"
44
+ inkscape:zoom="0.921875"
45
+ inkscape:cx="212.80055"
46
+ inkscape:cy="224.02504"
47
  inkscape:window-x="-8"
48
  inkscape:window-y="-8"
49
  inkscape:window-maximized="1"
50
+ inkscape:current-layer="g52" />
51
+ <g
52
+ id="g90">
53
+ <g
54
+ id="g88"
55
+ transform="matrix(1.941682,0,0,1.941682,-258.91443,105.22034)">
56
+ <g
57
+ id="g52"
58
+ style="fill:#eceff1;fill-opacity:1">
59
+ <path
60
+ d="m 182.795,15.986 v 165.382 c 0,8.829 7.157,15.986 15.986,15.986 h 20.359 c 2.854,0 5.364,1.885 6.16,4.626 l 11.126,38.317 c 1.404,4.836 7.578,6.242 10.938,2.491 l 38.788,-43.3 c 1.217,-1.358 2.954,-2.134 4.778,-2.134 h 192.658 c 8.829,0 15.986,-7.157 15.986,-15.986 V 15.986 C 499.573,7.157 492.416,0 483.587,0 H 198.781 c -8.829,0 -15.986,7.157 -15.986,15.986 z"
61
+ id="path50"
62
+ inkscape:connector-curvature="0"
63
+ style="fill:#eceff1;fill-opacity:1" />
64
+ </g>
65
+ <g
66
+ id="g56"
67
+ style="fill:#eceff1;fill-opacity:1">
68
+ <path
69
+ d="m 499.569,15.987 v 165.379 c 0,8.835 -7.152,15.987 -15.987,15.987 H 462.94 c 8.835,0 15.987,-7.152 15.987,-15.987 V 15.987 C 478.927,7.153 471.775,0 462.94,0 h 20.641 c 8.835,0 15.988,7.153 15.988,15.987 z"
70
+ id="path54"
71
+ inkscape:connector-curvature="0"
72
+ style="fill:#eceff1;fill-opacity:1" />
73
+ </g>
74
+ <g
75
+ id="g64"
76
+ style="fill:#9178b7;fill-opacity:1">
77
+ <path
78
+ d="m 256.62,39.06 6.423,13.015 c 0.54,1.095 1.585,1.854 2.794,2.03 l 14.363,2.087 c 3.043,0.442 4.259,4.182 2.056,6.329 l -10.393,10.131 c -0.875,0.852 -1.274,2.081 -1.067,3.284 l 2.453,14.305 c 0.52,3.031 -2.662,5.343 -5.384,3.911 l -12.847,-6.754 c -1.081,-0.568 -2.372,-0.568 -3.453,0 l -12.847,6.754 c -2.722,1.431 -5.904,-0.88 -5.384,-3.911 l 2.453,-14.305 c 0.206,-1.204 -0.193,-2.432 -1.067,-3.284 L 224.327,62.521 c -2.202,-2.147 -0.987,-5.887 2.056,-6.329 l 14.363,-2.087 c 1.209,-0.176 2.253,-0.935 2.794,-2.03 l 6.423,-13.015 c 1.364,-2.758 5.296,-2.758 6.657,0 z"
79
+ id="path58"
80
+ inkscape:connector-curvature="0"
81
+ style="fill:#9178b7;fill-opacity:1" />
82
+ <path
83
+ d="m 344.511,39.06 6.423,13.015 c 0.54,1.095 1.585,1.854 2.794,2.03 l 14.363,2.087 c 3.043,0.442 4.259,4.182 2.056,6.329 l -10.393,10.131 c -0.875,0.852 -1.274,2.081 -1.067,3.284 l 2.453,14.305 c 0.52,3.031 -2.662,5.343 -5.384,3.911 l -12.847,-6.754 c -1.081,-0.568 -2.372,-0.568 -3.453,0 l -12.847,6.754 c -2.722,1.431 -5.904,-0.88 -5.384,-3.911 l 2.453,-14.305 c 0.206,-1.204 -0.193,-2.432 -1.067,-3.284 L 312.22,62.521 c -2.202,-2.147 -0.987,-5.887 2.056,-6.329 l 14.363,-2.087 c 1.209,-0.176 2.253,-0.935 2.794,-2.03 l 6.423,-13.015 c 1.362,-2.758 5.294,-2.758 6.655,0 z"
84
+ id="path60"
85
+ inkscape:connector-curvature="0"
86
+ style="fill:#9178b7;fill-opacity:1" />
87
+ <path
88
+ d="m 432.402,39.06 6.423,13.015 c 0.54,1.095 1.585,1.854 2.794,2.03 l 14.363,2.087 c 3.043,0.442 4.259,4.182 2.056,6.329 l -10.393,10.131 c -0.874,0.852 -1.274,2.081 -1.067,3.284 l 2.453,14.305 c 0.52,3.031 -2.662,5.343 -5.384,3.911 L 430.8,87.398 c -1.081,-0.568 -2.372,-0.568 -3.453,0 L 414.5,94.152 c -2.722,1.431 -5.904,-0.88 -5.384,-3.911 l 2.453,-14.305 c 0.206,-1.204 -0.193,-2.432 -1.067,-3.284 L 400.109,62.521 c -2.202,-2.147 -0.987,-5.887 2.056,-6.329 l 14.363,-2.087 c 1.209,-0.176 2.253,-0.935 2.794,-2.03 l 6.423,-13.015 c 1.363,-2.758 5.296,-2.758 6.657,0 z"
89
+ id="path62"
90
+ inkscape:connector-curvature="0"
91
+ style="fill:#9178b7;fill-opacity:1" />
92
+ </g>
93
+ <g
94
+ id="g76" />
95
+ <g
96
+ id="g86">
97
+ <g
98
+ id="g80"
99
+ style="fill:#90a4ae;fill-opacity:1">
100
+ <path
101
+ d="M 459.163,137.933 H 220.989 c -4.142,0 -7.5,-3.358 -7.5,-7.5 0,-4.142 3.358,-7.5 7.5,-7.5 h 238.174 c 4.142,0 7.5,3.358 7.5,7.5 0,4.142 -3.358,7.5 -7.5,7.5 z"
102
+ id="path78"
103
+ inkscape:connector-curvature="0"
104
+ style="fill:#90a4ae;fill-opacity:1" />
105
+ </g>
106
+ <g
107
+ id="g84"
108
+ style="fill:#90a4ae;fill-opacity:1;stroke:none;stroke-opacity:1">
109
+ <path
110
+ d="M 340.076,167.863 H 220.989 c -4.142,0 -7.5,-3.358 -7.5,-7.5 0,-4.142 3.358,-7.5 7.5,-7.5 h 119.087 c 4.142,0 7.5,3.358 7.5,7.5 0,4.142 -3.358,7.5 -7.5,7.5 z"
111
+ id="path82"
112
+ inkscape:connector-curvature="0"
113
+ style="fill:#90a4ae;fill-opacity:1;stroke:none;stroke-opacity:1" />
114
+ </g>
115
+ </g>
116
+ </g>
117
+ </g>
118
+ </svg>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
backend/images/support.svg CHANGED
@@ -13,16 +13,15 @@
13
  id="Capa_1"
14
  x="0px"
15
  y="0px"
16
- viewBox="0 0 250 250"
 
17
  xml:space="preserve"
18
  sodipodi:docname="support.svg"
19
- inkscape:version="0.92.0 r15299"
20
- width="250"
21
- height="250"><metadata
22
- id="metadata83"><rdf:RDF><cc:Work
23
  rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
24
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
25
- id="defs81" /><sodipodi:namedview
26
  pagecolor="#ffffff"
27
  bordercolor="#666666"
28
  borderopacity="1"
@@ -31,85 +30,67 @@
31
  guidetolerance="10"
32
  inkscape:pageopacity="0"
33
  inkscape:pageshadow="2"
34
- inkscape:window-width="1920"
35
  inkscape:window-height="1017"
36
- id="namedview79"
37
  showgrid="false"
38
- inkscape:zoom="1.3037281"
39
- inkscape:cx="17.393161"
40
- inkscape:cy="168.05467"
41
- inkscape:window-x="-8"
42
  inkscape:window-y="-8"
43
  inkscape:window-maximized="1"
44
- inkscape:current-layer="Capa_1" /><path
45
- style="fill:#f0e4d6;stroke-width:0.50869882"
46
- d="M 225.01212,9.9054729 H 167.6243 c -9.75176,0 -17.65796,7.9061981 -17.65796,17.6579601 V 71.70831 c 0,9.751761 7.9062,17.657961 17.65796,17.657961 h 13.24346 V 111.4387 L 202.9402,89.366271 h 22.07244 c 9.75174,0 17.65794,-7.9062 17.65794,-17.657961 V 27.563433 c -5e-4,-9.751762 -7.9067,-17.6579601 -17.65846,-17.6579601 z"
47
- id="path2-7"
48
- inkscape:connector-curvature="0" /><path
49
- style="fill:#ebdcca;stroke-width:0.50869882"
50
- d="m 234.03542,12.457104 c -18.21853,43.429659 -54.05076,63.577187 -77.96826,72.494676 3.18701,2.829889 7.29728,4.401255 11.55714,4.414491 h 13.24346 V 111.4387 L 202.9402,89.366271 h 22.07244 c 9.75174,0 17.65794,-7.9062 17.65794,-17.657961 V 27.563433 c -0.0138,-6.206644 -3.29382,-11.945783 -8.63516,-15.106329 z"
51
- id="path4-2"
52
- inkscape:connector-curvature="0" /><path
53
- style="fill:#ff5a59;stroke-width:0.54081887"
54
- d="M 23.486639,322.97602 H 186.13575 l -2.74141,-19.78044 -11.20468,-80.86109 -1.27471,-9.21555 C 168.7495,197.48765 155.38479,185.84545 139.60424,185.84545 H 70.017617 c -15.780559,0 -29.145281,11.6422 -31.310715,27.27349 l -1.274705,9.21555 -11.204693,80.86109 z"
55
- id="path2"
56
- inkscape:connector-curvature="0" /><path
57
- style="fill:#9178b7;fill-opacity:1;stroke-width:0.46266809"
58
- d="m 42.675013,326.89323 122.868757,0.64821 -2.16561,-43.17409 -6.47449,-54.82038 -1.00697,-8.53789 c -1.71062,-14.48185 -12.26822,-25.26795 -24.73425,-25.26795 H 76.191646 c -12.466045,0 -23.023658,10.7861 -24.734274,25.26795 l -1.006965,8.53789 -6.474496,65.19179 z"
59
- id="path2-8"
60
- inkscape:connector-curvature="0"
61
- sodipodi:nodetypes="cccccsscccc" /><path
62
- style="fill:#ff5a59;stroke-width:0.54081887"
63
- d="m 150.72077,200.04951 -8.80075,10.9981 c -1.87664,2.34552 -4.7181,3.71055 -7.7218,3.71055 H 104.81119 75.424182 c -3.003714,0 -5.845175,-1.36557 -7.721824,-3.71055 l -8.800741,-10.9981 v -5.06638 h 91.819153 z"
64
- id="path12"
65
- inkscape:connector-curvature="0" /><path
66
- style="fill:#f7c097;fill-opacity:1;stroke-width:0.54081887"
67
- d="m 121.44786,169.12712 v 32.50699 c 0,9.18798 -7.44869,16.63668 -16.63667,16.63668 v 0 c -9.187971,0 -16.636667,-7.4487 -16.636667,-16.63668 v -32.50699 z"
68
- id="path14"
69
- inkscape:connector-curvature="0" /><path
70
- style="fill:#f9dc6a;stroke-width:0.54081887"
71
- d="M 160.72376,82.932489 V 133.20646 H 48.898629 V 78.530764 c 0,-11.061369 8.967315,-20.028686 20.028691,-20.028686 h 8.131211 l 0.615446,-1.26768 C 80.988124,50.409263 87.908444,46.076764 95.495585,46.076764 h 28.372985 c 20.35426,0 36.85519,16.500924 36.85519,36.855725 z"
72
- id="path16"
73
- inkscape:connector-curvature="0" /><path
74
- style="fill:#e5ac51;stroke-width:0.54081887"
75
- d="m 68.92732,58.501537 h 8.131211 l 0.615446,-1.26768 C 80.988124,50.409805 87.908444,46.076764 95.495585,46.076764 h 9.192845 c -7.586615,0 -14.506935,4.333041 -17.821064,11.157634 l -0.615454,1.26768 H 78.12069 c -11.061356,0 -20.028672,8.967317 -20.028672,20.028686 V 133.207 H 48.89917 V 78.530764 C 48.898629,67.468855 57.865944,58.501537 68.92732,58.501537 Z"
76
- id="path18"
77
- inkscape:connector-curvature="0" /><path
78
- style="fill:#ffccaa;stroke-width:0.54081887"
79
- d="m 41.381797,131.31522 v 4.79328 c 0,5.59531 4.535843,10.13116 10.131155,10.13116 h 9.978107 c 0.59274,11.45021 5.620184,21.73442 13.404737,29.15122 7.784543,7.41191 18.317542,11.96128 29.915394,11.96128 23.19627,0 42.14008,-18.20234 43.32014,-41.1125 h 9.97811 c 5.59531,0 10.13116,-4.53585 10.13116,-10.13116 v -4.79328 c 0,-5.5953 -4.53585,-10.13115 -10.13116,-10.13115 h -9.91592 v -18.11203 h -36.41983 c -17.326213,0 -31.723349,-12.526443 -34.6243,-29.019797 C 76.897372,72.620695 75.189995,72.02958 74.112151,73.004676 66.32166,80.051547 61.428862,90.241657 61.428862,101.57614 v 19.60739 h -9.91591 c -5.595312,5.4e-4 -10.131155,4.53639 -10.131155,10.13169 z"
80
- id="path20"
81
- inkscape:connector-curvature="0" /><path
82
- style="fill:#f7c097;fill-opacity:1;stroke-width:0.54081887"
83
- d="m 51.512952,121.18407 h 9.91591 v -19.60793 c 0,-11.334483 4.892798,-21.524593 12.683289,-28.570923 1.077844,-0.975095 2.785762,-0.383981 3.037239,1.047566 0.473219,2.688953 1.256322,5.26974 2.303338,7.710996 -3.480162,5.789467 -5.488218,12.564305 -5.488218,19.812901 v 19.60793 l 0.06223,25.05559 c 0.592739,11.45021 5.619651,21.73388 13.404736,29.15068 6.35571,6.05122 14.543704,10.19174 23.647304,11.50917 -2.04645,0.29637 -4.13889,0.45265 -6.26754,0.45265 -11.598402,0 -22.130859,-4.54937 -29.915403,-11.96128 -7.784553,-7.41679 -12.811997,-17.70047 -13.404736,-29.15069 h -9.978108 c -5.595312,0 -10.131154,-4.53584 -10.131154,-10.13115 v -4.79328 c 0,-5.59584 4.535842,-10.13223 10.131154,-10.13223 z"
84
- id="path22"
85
  inkscape:connector-curvature="0" /><g
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  id="g40"
87
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
88
  id="g42"
89
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
90
  id="g44"
91
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
92
  id="g46"
93
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
94
  id="g48"
95
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
96
  id="g50"
97
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
98
  id="g52"
99
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
100
  id="g54"
101
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
102
  id="g56"
103
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
104
  id="g58"
105
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
106
  id="g60"
107
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
108
  id="g62"
109
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
110
  id="g64"
111
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
112
  id="g66"
113
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /><g
114
  id="g68"
115
- transform="matrix(0.58927702,0,0,0.58927702,-23.586892,20.188426)" /></svg>
13
  id="Capa_1"
14
  x="0px"
15
  y="0px"
16
+ viewBox="0 0 512 512"
17
+ style="enable-background:new 0 0 512 512;"
18
  xml:space="preserve"
19
  sodipodi:docname="support.svg"
20
+ inkscape:version="0.92.0 r15299"><metadata
21
+ id="metadata75"><rdf:RDF><cc:Work
 
 
22
  rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
23
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
24
+ id="defs73" /><sodipodi:namedview
25
  pagecolor="#ffffff"
26
  bordercolor="#666666"
27
  borderopacity="1"
30
  guidetolerance="10"
31
  inkscape:pageopacity="0"
32
  inkscape:pageshadow="2"
33
+ inkscape:window-width="2560"
34
  inkscape:window-height="1017"
35
+ id="namedview71"
36
  showgrid="false"
37
+ inkscape:zoom="0.92187498"
38
+ inkscape:cx="303.79999"
39
+ inkscape:cy="162.24021"
40
+ inkscape:window-x="1912"
41
  inkscape:window-y="-8"
42
  inkscape:window-maximized="1"
43
+ inkscape:current-layer="g22" /><path
44
+ style="fill:#9178b7;fill-opacity:1;stroke:none"
45
+ d="m 337.3053,78.237171 c -136.624,0 -247.296005,110.671999 -247.296005,247.295999 0,136.624 110.672005,247.296 247.296005,247.296 136.624,0 247.296,-110.672 247.296,-247.296 0,-136.624 -110.672,-247.295999 -247.296,-247.295999 z m 0,368.575999 c -66.928,0 -121.12,-54.336 -121.12,-121.264 0,-66.928 54.192,-121.12 121.12,-121.12 66.928,0 121.264,54.192 121.264,121.12 0.016,66.912 -54.336,121.264 -121.264,121.264 z"
46
+ id="path10"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  inkscape:connector-curvature="0" /><g
48
+ id="g22"
49
+ transform="translate(81.305295,78.237171)"
50
+ style="stroke:none"><path
51
+ style="fill:#eceff1;stroke:#eceff1;stroke-opacity:1;fill-opacity:1"
52
+ d="m 158.736,19.904 53.776,114.448 c 13.504,-5.2 28.128,-8.16 43.488,-8.16 15.344,0 29.968,2.96 43.488,8.16 L 353.264,19.904 C 323.408,7.12 290.544,0 256,0 221.456,0 188.592,7.12 158.736,19.904 Z"
53
+ id="path14"
54
+ inkscape:connector-curvature="0" /><path
55
+ style="fill:#eceff1;stroke:#eceff1;stroke-opacity:1;fill-opacity:1"
56
+ d="m 134.88,247.296 c 0,-15.36 2.976,-29.984 8.176,-43.488 L 28.608,150.032 c -12.784,29.856 -19.904,62.72 -19.904,97.264 0,34.544 7.12,67.408 19.904,97.264 L 143.04,290.784 c -5.184,-13.52 -8.16,-28.144 -8.16,-43.488 z"
57
+ id="path16"
58
+ inkscape:connector-curvature="0" /><path
59
+ style="fill:#eceff1;stroke:#eceff1;fill-opacity:1;stroke-opacity:1"
60
+ d="M 353.264,474.688 299.536,360.368 C 286,365.584 271.36,368.576 256,368.576 c -15.376,0 -30.016,-2.992 -43.552,-8.208 L 158.72,474.704 c 29.856,12.784 62.72,19.904 97.264,19.904 34.56,-0.016 67.424,-7.136 97.28,-19.92 z"
61
+ id="path18"
62
+ inkscape:connector-curvature="0" /><path
63
+ style="fill:#eceff1;stroke:#eceff1;fill-opacity:1;stroke-opacity:1"
64
+ d="m 377.28,247.296 c 0,15.36 -2.976,30 -8.208,43.536 l 114.32,53.728 c 12.784,-29.856 19.904,-62.72 19.904,-97.264 0,-34.544 -7.12,-67.408 -19.904,-97.264 L 369.056,203.76 c 5.232,13.52 8.224,28.176 8.224,43.536 z"
65
+ id="path20"
66
+ inkscape:connector-curvature="0" /></g><g
67
  id="g40"
68
+ transform="translate(81.305295,78.237171)" /><g
69
  id="g42"
70
+ transform="translate(81.305295,78.237171)" /><g
71
  id="g44"
72
+ transform="translate(81.305295,78.237171)" /><g
73
  id="g46"
74
+ transform="translate(81.305295,78.237171)" /><g
75
  id="g48"
76
+ transform="translate(81.305295,78.237171)" /><g
77
  id="g50"
78
+ transform="translate(81.305295,78.237171)" /><g
79
  id="g52"
80
+ transform="translate(81.305295,78.237171)" /><g
81
  id="g54"
82
+ transform="translate(81.305295,78.237171)" /><g
83
  id="g56"
84
+ transform="translate(81.305295,78.237171)" /><g
85
  id="g58"
86
+ transform="translate(81.305295,78.237171)" /><g
87
  id="g60"
88
+ transform="translate(81.305295,78.237171)" /><g
89
  id="g62"
90
+ transform="translate(81.305295,78.237171)" /><g
91
  id="g64"
92
+ transform="translate(81.305295,78.237171)" /><g
93
  id="g66"
94
+ transform="translate(81.305295,78.237171)" /><g
95
  id="g68"
96
+ transform="translate(81.305295,78.237171)" /></svg>
backend/images/update.svg ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ version="1.1"
13
+ id="Layer_1"
14
+ x="0px"
15
+ y="0px"
16
+ viewBox="0 0 505 505"
17
+ style="enable-background:new 0 0 505 505;"
18
+ xml:space="preserve"
19
+ sodipodi:docname="update.svg"
20
+ inkscape:version="0.92.0 r15299"><metadata
21
+ id="metadata43"><rdf:RDF><cc:Work
22
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
23
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
24
+ id="defs41" /><sodipodi:namedview
25
+ pagecolor="#ffffff"
26
+ bordercolor="#666666"
27
+ borderopacity="1"
28
+ objecttolerance="10"
29
+ gridtolerance="10"
30
+ guidetolerance="10"
31
+ inkscape:pageopacity="0"
32
+ inkscape:pageshadow="2"
33
+ inkscape:window-width="1920"
34
+ inkscape:window-height="1017"
35
+ id="namedview39"
36
+ showgrid="false"
37
+ inkscape:zoom="0.6608998"
38
+ inkscape:cx="82.86425"
39
+ inkscape:cy="289.29436"
40
+ inkscape:window-x="-8"
41
+ inkscape:window-y="-8"
42
+ inkscape:window-maximized="1"
43
+ inkscape:current-layer="Layer_1" /><path
44
+ style="fill:#ded1f2;fill-opacity:1;stroke-width:1.194754"
45
+ d="m 54.471192,356.14658 c 0,-166.66819 135.007198,-301.675388 301.675388,-301.675388 166.5487,0 301.67538,135.007198 301.67538,301.675388 0,166.66817 -135.12668,301.67538 -301.67538,301.67538 -166.66819,0 -301.675388,-135.00721 -301.675388,-301.67538 z"
46
+ id="path2"
47
+ inkscape:connector-curvature="0" /><path
48
+ style="fill:#9178b7;fill-opacity:1;stroke-width:1.194754"
49
+ d="m 287.44822,389.59968 h 18.51868 c 14.33706,0 22.46138,-16.36813 13.85915,-27.83776 l -72.64104,-95.81927 c -6.92957,-9.19961 -20.78872,-9.19961 -27.71829,0 l -72.64105,95.81927 c -8.7217,11.46963 -0.4779,27.83776 13.85915,27.83776 h 16.72655 c 26.04564,120.07278 140.50308,170.25245 226.16694,142.7731 7.52694,-2.3895 6.09324,-13.50072 -1.91161,-14.09809 -78.97324,-5.73482 -122.58176,-74.55265 -114.21848,-128.67501 z"
50
+ id="path4"
51
+ inkscape:connector-curvature="0" /><path
52
+ style="fill:#9178b7;fill-opacity:1;stroke-width:1.194754"
53
+ d="m 424.84493,322.69346 h -18.51869 c -14.33705,0 -22.46137,16.36813 -13.85914,27.83777 l 72.64104,95.93875 c 6.92957,9.19961 20.78871,9.19961 27.71829,0 l 72.64104,-95.93875 c 8.7217,-11.46964 0.4779,-27.83777 -13.85914,-27.83777 H 534.88177 C 508.71666,202.62069 394.25922,152.44102 308.59536,179.92036 c -7.52695,2.38951 -6.09324,13.50072 1.91161,14.0981 79.09271,5.73482 122.70123,74.55265 114.33796,128.675 z"
54
+ id="path6"
55
+ inkscape:connector-curvature="0" /><g
56
+ id="g8"
57
+ transform="scale(1.3026177)" /><g
58
+ id="g10"
59
+ transform="scale(1.3026177)" /><g
60
+ id="g12"
61
+ transform="scale(1.3026177)" /><g
62
+ id="g14"
63
+ transform="scale(1.3026177)" /><g
64
+ id="g16"
65
+ transform="scale(1.3026177)" /><g
66
+ id="g18"
67
+ transform="scale(1.3026177)" /><g
68
+ id="g20"
69
+ transform="scale(1.3026177)" /><g
70
+ id="g22"
71
+ transform="scale(1.3026177)" /><g
72
+ id="g24"
73
+ transform="scale(1.3026177)" /><g
74
+ id="g26"
75
+ transform="scale(1.3026177)" /><g
76
+ id="g28"
77
+ transform="scale(1.3026177)" /><g
78
+ id="g30"
79
+ transform="scale(1.3026177)" /><g
80
+ id="g32"
81
+ transform="scale(1.3026177)" /><g
82
+ id="g34"
83
+ transform="scale(1.3026177)" /><g
84
+ id="g36"
85
+ transform="scale(1.3026177)" /></svg>
backend/style.css CHANGED
@@ -12,6 +12,7 @@
12
  /* Welcome screen */
13
  .welcome-to-cau {
14
  background: #FFF;
 
15
  margin: 25px 0;
16
  padding: 30px;
17
  background-size: 140px;
@@ -21,12 +22,24 @@
21
  .welcome-to-cau.welcome-bg {
22
  background-image: url('images/welcome.svg');
23
  }
 
 
 
24
  .welcome-to-cau.support-bg {
25
  background-image: url('images/support.svg');
26
  }
27
  .welcome-to-cau.love-bg {
28
  background-image: url('images/love.svg');
29
  }
 
 
 
 
 
 
 
 
 
30
  .welcome-to-cau h2 {
31
  margin: 0;
32
  margin-bottom: 25px;
@@ -34,6 +47,9 @@
34
  font-weight: 400;
35
  line-height: 1.2;
36
  }
 
 
 
37
  .welcome-to-cau h3 {
38
  font-size: 16px;
39
  margin-top: 0;
@@ -70,11 +86,36 @@
70
  padding: 5px;
71
  }
72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  /* Dashboard */
74
  .cau-column-wide {
 
75
  display: inline-block;
76
  vertical-align: top;
77
  width: calc(100% - 450px);
 
78
  }
79
  .cau-column-small {
80
  display: inline-block;
@@ -88,6 +129,9 @@
88
  margin-left: 0px;
89
  margin-top: 10px;
90
  }
 
 
 
91
  .nav-tab {
92
  position: relative;
93
  }
@@ -268,38 +312,47 @@ table.rollbacklist td a.versionselectbutton {
268
  width: 125px;
269
  padding-left: 5px;
270
  }
271
-
272
- /* Custom buttons */
273
- .cau-button {
274
- display: inline-block;
275
- padding: 15px 25px;
276
- text-decoration: none;
277
- border-radius: 3px;
278
- border: 1px solid rgba(0,0,0,0.2);
279
- font-weight: 500;
280
- font-size: 1.1em;
281
- margin: 0 10px;
282
- }
283
- .cau-button:hover {
284
- opacity: 0.9;
285
- }
286
- .cau-button .dashicons {
287
- bottom: -2px;
288
- }
289
- .donate-button {
290
- background-color: #9178B7;
291
- border-color: #6B5887;
292
- color: #FFF;
293
- }
294
- .rate-button {
295
- background: #F7F7F7;
296
- color: #735F91;
297
  }
298
- .donate-button:hover {
299
- color: #FFF;
 
 
300
  }
301
- .rate-button:hover {
302
- color: #735F91;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
303
  }
304
 
305
  /* Responsive */
@@ -341,7 +394,7 @@ table.rollbacklist td a.versionselectbutton {
341
 
342
  /* Scheduling */
343
  .cau_schedule_input {
344
- width: 50px;
345
  }
346
 
347
  /* Custom buttons */
@@ -374,9 +427,10 @@ table.rollbacklist td a.versionselectbutton {
374
  }
375
  .cau-column-wide {
376
  width: 100%;
 
377
  }
378
  .cau-column-small {
379
- display: none;
380
  }
381
 
382
  /* Status */
12
  /* Welcome screen */
13
  .welcome-to-cau {
14
  background: #FFF;
15
+ border: 1px solid #ccd0d4;
16
  margin: 25px 0;
17
  padding: 30px;
18
  background-size: 140px;
22
  .welcome-to-cau.welcome-bg {
23
  background-image: url('images/welcome.svg');
24
  }
25
+ .welcome-to-cau.help-bg {
26
+ background-image: url('images/help.svg');
27
+ }
28
  .welcome-to-cau.support-bg {
29
  background-image: url('images/support.svg');
30
  }
31
  .welcome-to-cau.love-bg {
32
  background-image: url('images/love.svg');
33
  }
34
+ .welcome-to-cau.update-bg {
35
+ background-image: url('images/update.svg');
36
+ }
37
+ .welcome-to-cau.email-bg {
38
+ background-image: url('images/email.svg');
39
+ }
40
+ .welcome-to-cau.interval-bg {
41
+ background-image: url('images/interval.svg');
42
+ }
43
  .welcome-to-cau h2 {
44
  margin: 0;
45
  margin-bottom: 25px;
47
  font-weight: 400;
48
  line-height: 1.2;
49
  }
50
+ .welcome-to-cau h2.title {
51
+ margin-bottom: 10px;
52
+ }
53
  .welcome-to-cau h3 {
54
  font-size: 16px;
55
  margin-top: 0;
86
  padding: 5px;
87
  }
88
 
89
+ /* Overwrite core UI */
90
+ .cau-column-wide a, .cau-column-small a {
91
+ color: #9178B7;
92
+ }
93
+ .cau-column-wide .button-primary, .cau-column-small .button-primary {
94
+ background-color: #9178B7!important;
95
+ border-color: #9178B7!important;
96
+ }
97
+ .cau-column-wide .button-alt, .cau-column-small .button-alt {
98
+ color: #9178B7!important;
99
+ border-color: #9178B7!important;
100
+ }
101
+ .cau-column-wide .button-hero, .cau-column-small .button-hero {
102
+ font-weight: 500;
103
+ padding: 15px 30px!important;
104
+ }
105
+ #message.cau {
106
+ border-left: 3px solid #9178B7;
107
+ background: #DED1F2;
108
+ color: #9178B7;
109
+ padding: 15px;
110
+ }
111
+
112
  /* Dashboard */
113
  .cau-column-wide {
114
+ box-sizing: border-box;
115
  display: inline-block;
116
  vertical-align: top;
117
  width: calc(100% - 450px);
118
+ padding-right: 25px;
119
  }
120
  .cau-column-small {
121
  display: inline-block;
129
  margin-left: 0px;
130
  margin-top: 10px;
131
  }
132
+ .cau-dashboard-box .welcome-column {
133
+ padding-right: 25px;
134
+ }
135
  .nav-tab {
136
  position: relative;
137
  }
312
  width: 125px;
313
  padding-left: 5px;
314
  }
315
+ .cau_shedule_notation .dashicons {
316
+ position: relative;
317
+ bottom: -5px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
318
  }
319
+
320
+ /* Tooltip */
321
+ .cau_tooltip {
322
+ position: relative;
323
  }
324
+ .cau_tooltip .cau_tooltip_text {
325
+ visibility: hidden;
326
+ background-color: rgba(0,0,0,0.7);
327
+ color: #FFF;
328
+ text-align: left;
329
+ font-size: 14px;
330
+ padding: 15px;
331
+ border-radius: 6px;
332
+ position: absolute;
333
+ z-index: 1;
334
+ width: 240px;
335
+ bottom: 100%;
336
+ left: 50%;
337
+ margin-left: -60px;
338
+ margin-bottom: 10px;
339
+ opacity: 0;
340
+ transition: .3s;
341
+ font-weight: normal;
342
+ }
343
+ .cau_tooltip:hover .cau_tooltip_text {
344
+ visibility: visible;
345
+ opacity: 1;
346
+ }
347
+ .cau_tooltip .cau_tooltip_text::after {
348
+ content: " ";
349
+ position: absolute;
350
+ top: 100%;
351
+ left: 50%;
352
+ margin-left: -75px;
353
+ border-width: 5px;
354
+ border-style: solid;
355
+ border-color: rgba(0,0,0,0.7) transparent transparent transparent;
356
  }
357
 
358
  /* Responsive */
394
 
395
  /* Scheduling */
396
  .cau_schedule_input {
397
+ width: 75px;
398
  }
399
 
400
  /* Custom buttons */
427
  }
428
  .cau-column-wide {
429
  width: 100%;
430
+ padding-right: 0;
431
  }
432
  .cau-column-small {
433
+ width: 100%;
434
  }
435
 
436
  /* Status */
cau_emails.php CHANGED
@@ -42,20 +42,29 @@ Leaving your site outdated is a security risk so please consider manually updati
42
  // Set the content for the emails about recent updates
43
  function cau_updated_message( $type, $updatedList ) {
44
 
 
 
 
 
 
 
 
 
45
  $text = sprintf( esc_html__(
46
  'One or more %1$s on your WordPress site at %2$s have been updated by Companion Auto Update. No further action is needed on your part.
47
- For more info on what is new visit your dashboard and check the changelog.', 'companion-auto-update'
48
  ), $type, get_site_url() );
49
 
50
- $text .= '<br /><br />';
 
51
  $text .= sprintf( esc_html__(
52
  'The following %1$s have been updated:', 'companion-auto-update'
53
  ), $type );
54
 
55
- $text .= '<br />';
56
  $text .= $updatedList;
57
 
58
- $text .= '<br />';
59
  $text .= __( "(You'll also recieve this email if you manually updated a plugin or theme)", "companion-auto-update" );
60
 
61
  return $text;
@@ -134,6 +143,9 @@ function cau_list_plugin_updates() {
134
  // Alerts when plugin has been updated
135
  function cau_plugin_updated() {
136
 
 
 
 
137
  // Create arrays
138
  $pluginNames = array();
139
  $pluginDates = array();
@@ -227,27 +239,45 @@ function cau_plugin_updated() {
227
 
228
  $totalNumP = 0;
229
  $totalNumT = 0;
230
- $updatedListP = '<ol>';
231
- $updatedListT = '<ol>';
 
 
 
 
 
232
 
233
  foreach ( $pluginDates as $key => $value ) {
234
- $updatedListP .= "<li><strong>".$pluginNames[$key]."</strong><br />
235
- to version ".$pluginVersion[$key]." <a href='https://wordpress.org/plugins/".$pluginSlug[$key]."/#developers'>".__( "Release notes", "companion-auto-update" )."</a></li>";
 
 
 
 
236
  $totalNumP++;
237
  }
 
238
  foreach ( $themeNames as $key => $value ) {
239
- $updatedListT .= "<li>".$themeNames[$key]."</li>";
 
 
 
 
240
  $totalNumT++;
241
  }
242
 
243
- $updatedListP .= '</ol>';
244
- $updatedListT .= '</ol>';
 
 
245
 
246
  // Set the email content type
247
- function cau_mail_content_type() {
248
- return 'text/html';
 
 
 
249
  }
250
- add_filter( 'wp_mail_content_type', 'cau_mail_content_type' );
251
 
252
  // If plugins have been updated, send email
253
  if( $totalNumP > 0 ) {
@@ -285,7 +315,7 @@ function cau_plugin_updated() {
285
 
286
  }
287
 
288
- remove_filter( 'wp_mail_content_type', 'cau_mail_content_type' );
289
 
290
  // Prevent duplicate emails by setting the event again
291
  if( $totalNumT > 0 OR $totalNumP > 0 ) {
42
  // Set the content for the emails about recent updates
43
  function cau_updated_message( $type, $updatedList ) {
44
 
45
+ // Check if cau_get_db_value() function exists.
46
+ if ( !function_exists( 'cau_get_db_value' ) ) require_once( plugin_dir_path( __FILE__ ) . 'cau_function.php' );
47
+
48
+ // What markup to use
49
+ if( cau_get_db_value( 'html_or_text' ) == 'html' ) $break = '<br />';
50
+ else $break = "\n";
51
+
52
+ // The message
53
  $text = sprintf( esc_html__(
54
  'One or more %1$s on your WordPress site at %2$s have been updated by Companion Auto Update. No further action is needed on your part.
55
+ For more info on what is new visit your dashboard and check the changelog.', 'companion-auto-update'
56
  ), $type, get_site_url() );
57
 
58
+ $text .= $break;
59
+ $text .= $break;
60
  $text .= sprintf( esc_html__(
61
  'The following %1$s have been updated:', 'companion-auto-update'
62
  ), $type );
63
 
64
+ $text .= $break;
65
  $text .= $updatedList;
66
 
67
+ $text .= $break;
68
  $text .= __( "(You'll also recieve this email if you manually updated a plugin or theme)", "companion-auto-update" );
69
 
70
  return $text;
143
  // Alerts when plugin has been updated
144
  function cau_plugin_updated() {
145
 
146
+ // Check if cau_get_db_value() function exists.
147
+ if ( !function_exists( 'cau_get_db_value' ) ) require_once( plugin_dir_path( __FILE__ ) . 'cau_function.php' );
148
+
149
  // Create arrays
150
  $pluginNames = array();
151
  $pluginDates = array();
239
 
240
  $totalNumP = 0;
241
  $totalNumT = 0;
242
+ $updatedListP = '';
243
+ $updatedListT = '';
244
+
245
+ if( cau_get_db_value( 'html_or_text' ) == 'html' ) {
246
+ $updatedListP .= '<ol>';
247
+ $updatedListT .= '<ol>';
248
+ }
249
 
250
  foreach ( $pluginDates as $key => $value ) {
251
+ if( cau_get_db_value( 'html_or_text' ) == 'html' ) {
252
+ $updatedListP .= "<li><strong>".$pluginNames[$key]." </strong><br />
253
+ to version ".$pluginVersion[$key]." <a href='https://wordpress.org/plugins/".$pluginSlug[$key]."/#developers'>".__( "Release notes", "companion-auto-update" )."</a></li>";
254
+ } else {
255
+ $updatedListP .= "- ".$pluginNames[$key]." to version ".$pluginVersion[$key]."\n";
256
+ }
257
  $totalNumP++;
258
  }
259
+
260
  foreach ( $themeNames as $key => $value ) {
261
+ if( cau_get_db_value( 'html_or_text' ) == 'html' ) {
262
+ $updatedListT .= "<li>".$themeNames[$key]."</li>";
263
+ } else {
264
+ $updatedListT .= "- ".$themeNames[$key]."\n";
265
+ }
266
  $totalNumT++;
267
  }
268
 
269
+ if( cau_get_db_value( 'html_or_text' ) == 'html' ) {
270
+ $updatedListP .= '</ol>';
271
+ $updatedListT .= '</ol>';
272
+ }
273
 
274
  // Set the email content type
275
+ if( cau_get_db_value( 'html_or_text' ) == 'html' ) {
276
+ function cau_mail_content_type() {
277
+ return 'text/html';
278
+ }
279
+ add_filter( 'wp_mail_content_type', 'cau_mail_content_type' );
280
  }
 
281
 
282
  // If plugins have been updated, send email
283
  if( $totalNumP > 0 ) {
315
 
316
  }
317
 
318
+ if( cau_get_db_value( 'html_or_text' ) == 'html' ) remove_filter( 'wp_mail_content_type', 'cau_mail_content_type' );
319
 
320
  // Prevent duplicate emails by setting the event again
321
  if( $totalNumT > 0 OR $totalNumP > 0 ) {
cau_functions.php CHANGED
@@ -667,11 +667,15 @@ function cau_dontUpdateThemes( $update, $item ) {
667
 
668
  $themes = themes_donotupdatelist();
669
 
670
- if ( in_array( $item->slug, $themes ) ) {
671
- return false; // Don't update these plugins
672
- } else {
673
- return true; // Always update these plugins
674
- }
 
 
 
 
675
 
676
 
677
  }
667
 
668
  $themes = themes_donotupdatelist();
669
 
670
+ if( !empty( $themes ) ) {
671
+ if ( in_array( $item->slug, $themes ) ) {
672
+ return false; // Don't update these themes
673
+ } else {
674
+ return true; // Always update these themes
675
+ }
676
+ } else {
677
+ return true;
678
+ }
679
 
680
 
681
  }
companion-auto-update.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Companion Auto Update
4
  * Plugin URI: http://codeermeneer.nl/portfolio/companion-auto-update/
5
  * Description: This plugin auto updates all plugins, all themes and the wordpress core.
6
- * Version: 3.4.8
7
  * Author: Papin Schipper
8
  * Author URI: http://codeermeneer.nl/
9
  * Contributors: papin
@@ -56,7 +56,7 @@ function cau_donateUrl() {
56
 
57
  // Database version
58
  function cau_db_version() {
59
- return '3.5.2';
60
  }
61
  function cau_database_creation() {
62
 
@@ -137,6 +137,9 @@ function cau_install_data() {
137
  if( !cau_check_if_exists( 'wpemails' ) ) $wpdb->insert( $table_name, array( 'name' => 'wpemails', 'onoroff' => 'on' ) ); // 9
138
  if( !cau_check_if_exists( 'notUpdateListTh' ) ) $wpdb->insert( $table_name, array( 'name' => 'notUpdateListTh', 'onoroff' => '' ) ); // 10
139
 
 
 
 
140
 
141
  }
142
  register_activation_hook( __FILE__, 'cau_install' );
@@ -193,11 +196,11 @@ function cau_frontend() { ?>
193
  // Allow only access to these pages
194
  $allowedPages = array(
195
  'dashboard' => __( 'Dashboard' ),
196
- 'schedule' => __( 'Advanced settings', 'companion-auto-update' ),
197
  'pluginlist' => __( 'Update filter', 'companion-auto-update' ),
198
  'log' => __( 'Update log', 'companion-auto-update' ),
199
  'status' => __( 'Status', 'companion-auto-update' ),
200
- 'support' => __( 'Support', 'companion-auto-update' )
201
  );
202
 
203
  // Show subtabs
@@ -266,7 +269,10 @@ function load_cau_sytyles( $hook ) {
266
  // WordPress scripts we need
267
  wp_enqueue_style( 'thickbox' );
268
  wp_enqueue_script( 'thickbox' );
269
- wp_enqueue_script( 'plugin-install' );
 
 
 
270
 
271
  }
272
  add_action( 'admin_enqueue_scripts', 'load_cau_sytyles', 100 );
@@ -309,49 +315,43 @@ class CAU_auto_update {
309
  // Enable for major updates
310
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'major'");
311
  foreach ( $configs as $config ) {
312
-
313
  if( $config->onoroff == 'on' ) add_filter( 'allow_major_auto_core_updates', '__return_true', 1 ); // Turn on
314
- if( $config->onoroff != 'on' ) add_filter( 'allow_major_auto_core_updates', '__return_false', 1 ); // Turn off
315
-
316
  }
317
 
318
  // Enable for minor updates
319
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'minor'");
320
  foreach ( $configs as $config ) {
321
-
322
  if( $config->onoroff == 'on' ) add_filter( 'allow_minor_auto_core_updates', '__return_true', 1 ); // Turn on
323
- if( $config->onoroff != 'on' ) add_filter( 'allow_minor_auto_core_updates', '__return_false', 1 ); // Turn off
324
-
325
  }
326
 
327
  // Enable for plugins
328
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'plugins'");
329
  foreach ( $configs as $config ) {
330
-
331
  if( $config->onoroff == 'on' ) add_filter( 'auto_update_plugin', 'cau_dontUpdatePlugins', 10, 2 ); // Turn on
332
- if( $config->onoroff != 'on' ) add_filter( 'auto_update_plugin', '__return_false', 1 ); // Turn off
333
-
334
  }
335
 
336
  // Enable for themes
337
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'themes'");
338
  foreach ( $configs as $config ) {
339
- if( $config->onoroff == 'on' ) add_filter( 'auto_update_theme', 'cau_dontUpdateThemes', 1 ); // Turn on
340
- if( $config->onoroff != 'on' ) add_filter( 'auto_update_theme', '__return_false', 1 ); // Turn off
341
  }
342
 
343
  // Enable for translation files
344
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'translations'");
345
  foreach ( $configs as $config ) {
346
  if( $config->onoroff == 'on' ) add_filter( 'auto_update_translation', '__return_true', 1 ); // Turn on
347
- if( $config->onoroff != 'on' ) add_filter( 'auto_update_translation', '__return_false', 1 ); // Turn off
348
  }
349
 
350
  // WP Email Config
351
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'wpemails'");
352
  foreach ( $configs as $config ) {
353
  if( $config->onoroff == 'on' ) add_filter( 'auto_core_update_send_email', '__return_true' ); // Turn on
354
- if( $config->onoroff != 'on' ) add_filter( 'auto_core_update_send_email', '__return_false' ); // Turn off
355
  }
356
 
357
 
@@ -384,10 +384,3 @@ function cau_checkForIssues( $admin_bar ) {
384
 
385
  }
386
  add_action( 'admin_bar_menu', 'cau_checkForIssues', 150 );
387
-
388
- function cau_checkForIssuesStyle() {
389
-
390
- wp_enqueue_style( 'cau_warning_styles', plugins_url( 'backend/warningbar.css' , __FILE__ ) );
391
-
392
- }
393
- add_action( 'admin_enqueue_scripts', 'cau_checkForIssuesStyle', 100 );
3
  * Plugin Name: Companion Auto Update
4
  * Plugin URI: http://codeermeneer.nl/portfolio/companion-auto-update/
5
  * Description: This plugin auto updates all plugins, all themes and the wordpress core.
6
+ * Version: 3.5.0
7
  * Author: Papin Schipper
8
  * Author URI: http://codeermeneer.nl/
9
  * Contributors: papin
56
 
57
  // Database version
58
  function cau_db_version() {
59
+ return '3.5.3';
60
  }
61
  function cau_database_creation() {
62
 
137
  if( !cau_check_if_exists( 'wpemails' ) ) $wpdb->insert( $table_name, array( 'name' => 'wpemails', 'onoroff' => 'on' ) ); // 9
138
  if( !cau_check_if_exists( 'notUpdateListTh' ) ) $wpdb->insert( $table_name, array( 'name' => 'notUpdateListTh', 'onoroff' => '' ) ); // 10
139
 
140
+ // Stuff
141
+ if( !cau_check_if_exists( 'html_or_text' ) ) $wpdb->insert( $table_name, array( 'name' => 'html_or_text', 'onoroff' => 'html' ) ); // 11
142
+
143
 
144
  }
145
  register_activation_hook( __FILE__, 'cau_install' );
196
  // Allow only access to these pages
197
  $allowedPages = array(
198
  'dashboard' => __( 'Dashboard' ),
199
+ // 'schedule' => __( 'Advanced settings', 'companion-auto-update' ),
200
  'pluginlist' => __( 'Update filter', 'companion-auto-update' ),
201
  'log' => __( 'Update log', 'companion-auto-update' ),
202
  'status' => __( 'Status', 'companion-auto-update' ),
203
+ // 'support' => __( 'Support', 'companion-auto-update' )
204
  );
205
 
206
  // Show subtabs
269
  // WordPress scripts we need
270
  wp_enqueue_style( 'thickbox' );
271
  wp_enqueue_script( 'thickbox' );
272
+ wp_enqueue_script( 'plugin-install' );
273
+
274
+ // Check for issues
275
+ wp_enqueue_style( 'cau_warning_styles', plugins_url( 'backend/warningbar.css' , __FILE__ ) );
276
 
277
  }
278
  add_action( 'admin_enqueue_scripts', 'load_cau_sytyles', 100 );
315
  // Enable for major updates
316
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'major'");
317
  foreach ( $configs as $config ) {
 
318
  if( $config->onoroff == 'on' ) add_filter( 'allow_major_auto_core_updates', '__return_true', 1 ); // Turn on
319
+ else add_filter( 'allow_major_auto_core_updates', '__return_false', 1 ); // Turn off
 
320
  }
321
 
322
  // Enable for minor updates
323
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'minor'");
324
  foreach ( $configs as $config ) {
 
325
  if( $config->onoroff == 'on' ) add_filter( 'allow_minor_auto_core_updates', '__return_true', 1 ); // Turn on
326
+ else add_filter( 'allow_minor_auto_core_updates', '__return_false', 1 ); // Turn off
 
327
  }
328
 
329
  // Enable for plugins
330
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'plugins'");
331
  foreach ( $configs as $config ) {
 
332
  if( $config->onoroff == 'on' ) add_filter( 'auto_update_plugin', 'cau_dontUpdatePlugins', 10, 2 ); // Turn on
333
+ else add_filter( 'auto_update_plugin', '__return_false', 1 ); // Turn off
 
334
  }
335
 
336
  // Enable for themes
337
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'themes'");
338
  foreach ( $configs as $config ) {
339
+ if( $config->onoroff == 'on' ) add_filter( 'auto_update_theme', '__return_true' ); // Turn on
340
+ else add_filter( 'auto_update_theme', '__return_false', 1 ); // Turn off
341
  }
342
 
343
  // Enable for translation files
344
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'translations'");
345
  foreach ( $configs as $config ) {
346
  if( $config->onoroff == 'on' ) add_filter( 'auto_update_translation', '__return_true', 1 ); // Turn on
347
+ else add_filter( 'auto_update_translation', '__return_false', 1 ); // Turn off
348
  }
349
 
350
  // WP Email Config
351
  $configs = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE name = 'wpemails'");
352
  foreach ( $configs as $config ) {
353
  if( $config->onoroff == 'on' ) add_filter( 'auto_core_update_send_email', '__return_true' ); // Turn on
354
+ else add_filter( 'auto_core_update_send_email', '__return_false' ); // Turn off
355
  }
356
 
357
 
384
 
385
  }
386
  add_action( 'admin_bar_menu', 'cau_checkForIssues', 150 );
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: auto, automatic, background, update, updates, updating, automatic updates,
5
  Requires at least: 3.6.0
6
  Tested up to: 5.3
7
  Requires PHP: 5.1
8
- Stable tag: 3.4.8
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -68,6 +68,13 @@ Your feedback is what made this plugin what is and what it’ll become so keep t
68
 
69
  == Changelog ==
70
 
 
 
 
 
 
 
 
71
  = 3.4.8 (January 2, 2020) =
72
  * This update brings a few under the hood changes to ensure better updates in the future
73
  * We've also fixed a (rare) Undefined variable: headers error
5
  Requires at least: 3.6.0
6
  Tested up to: 5.3
7
  Requires PHP: 5.1
8
+ Stable tag: 3.5.0
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
68
 
69
  == Changelog ==
70
 
71
+ = 3.5.0 (March 5, 2020) =
72
+ * We've had to (temporarily) disable the theme filter because it was causing issues on some installations. We'll try to get it working again in a future update.
73
+ * We should've fixed an issue where on occasion nothing would update
74
+ * Made some improvements to the "Fix it" button for the AUTOMATIC_UPDATER_DISABLED error
75
+ * In version 3.4.6 we've changed to HTML emails rather than plain text, in this version you can opt to change it back to plain text emails
76
+ * Redesigned dashboard: We've changed the dashboard, moved both the settings page and de support page to the dashboard. Please let us know if you like this change or not.
77
+
78
  = 3.4.8 (January 2, 2020) =
79
  * This update brings a few under the hood changes to ensure better updates in the future
80
  * We've also fixed a (rare) Undefined variable: headers error