PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 6.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v6.0.6
6.0.6 6.0.5 6.0.2 6.0.3 6.0.4 6.0.1 6.0.0 5.0.8 5.0.9 4.0.9 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 All 58 releases
← All changes | includes/class-wppm-admin.php +154 -24 5.0.46.0.6 View file →
@@ -10,9 +10,11 @@
10 10 // constructor
11 11 public function __construct() {
12 12 add_action( 'admin_enqueue_scripts', array( $this, 'loadScripts') );
13 13 add_action( 'admin_menu', array($this,'wppm_register_dashboard_menu') );
14 - // add_action( 'admin_init',array($this,'wppm_appearance_setting_tab') );
14 + add_action( 'admin_notices', array($this,'wppm_update_admin_notice'));
15 + add_action('wp_footer', array($this,'wppm_add_notification_container'));
16 + add_action('admin_footer', array($this,'wppm_add_notification_container'));
15 17 add_action( 'wp_ajax_wppm_add_new_project',array($this,'wppm_add_new_project'));
16 18 add_action( 'wp_ajax_wppm_open_project',array($this,'wppm_open_project'));
17 19 add_action( 'wp_ajax_nopriv_wppm_open_project',array($this,'wppm_open_project'));
18 20 add_action( 'wp_ajax_wppm_get_users',array($this,'wppm_get_users'));
@@ -52,9 +54,9 @@
52 54 add_action('wp_ajax_wppm_set_edit_task_status',array($this,'wppm_set_edit_task_status'));
53 55 add_action('wp_ajax_wppm_delete_task_status',array($this,'wppm_delete_task_status'));
54 56 add_action('wp_ajax_wppm_set_task_status_order',array($this,'wppm_set_task_status_order'));
55 57 add_action('wp_ajax_wppm_create_task',array($this,'wppm_create_task'));
56 - add_action('wp_ajax_wppm_get_task_list_card_view',array($this,'wppm_get_task_list_card_view'),100,3);
58 + add_action('wp_ajax_wppm_get_task_list_card_view',array($this,'wppm_get_task_list_card_view'),100,4);
57 59 add_action('wp_ajax_wppm_drag_and_drop_card',array($this,'wppm_drag_and_drop_card'));
58 60 add_action('wp_ajax_wppm_open_task',array($this,'wppm_open_task'));
59 61 add_action( 'wp_ajax_nopriv_wppm_open_task',array($this,'wppm_open_task'));
60 62 add_action('wp_ajax_wppm_add_new_checklist',array($this,'wppm_add_new_checklist'));
@@ -91,9 +93,9 @@
91 93 add_action('wp_ajax_wppm_edit_project_creator',array($this,'wppm_edit_project_creator'));
92 94 add_action('wp_ajax_wppm_set_change_project_raised_by',array($this,'wppm_set_change_project_raised_by'));
93 95 add_action('wp_ajax_wppm_get_delete_project',array($this,'wppm_get_delete_project'));
94 96 add_action('wp_ajax_wppm_set_delete_project',array($this,'wppm_set_delete_project'));
95 - add_action('wp_ajax_wppm_get_delete_task',array($this,'wppm_get_delete_task'),100,2);
97 + add_action('wp_ajax_wppm_get_delete_task',array($this,'wppm_get_delete_task'),100,3);
96 98 add_action('wp_ajax_wppm_set_delete_task',array($this,'wppm_set_delete_task'));
97 99 add_action('wp_ajax_wppm_get_edit_email_notification',array($this,'wppm_get_edit_email_notification'));
98 100 add_action('wp_ajax_wppm_get_templates',array($this,'wppm_get_templates'));
99 101 add_action('wp_ajax_wppm_set_edit_email_notification',array($this,'wppm_set_edit_email_notification'));
@@ -172,13 +174,39 @@
172 174 add_action('wp_ajax_wppm_update_checklist_order',array($this,'wppm_update_checklist_order'));
173 175 add_action('wp_ajax_wppm_edit_checklist_item',array($this,'wppm_edit_checklist_item'),10,5);
174 176 add_action('wp_ajax_wppm_set_checklist_item_name',array($this,'wppm_set_checklist_item_name'),10,3);
175 177 add_action('wp_ajax_wppm_archive_task',array($this,'wppm_archive_task'));
178 + add_action('wp_ajax_wppm_get_project_tasks_kanban_view',array($this,'wppm_get_project_tasks_kanban_view'));
179 + add_action('wp_ajax_wppm_get_notifications',array($this,'wppm_get_notifications_callback'));
180 + add_action('wp_ajax_wppm_mark_notification_read',array($this,'wppm_mark_notification_as_read'));
181 + add_action('wp_ajax_wppm_archive_project',array($this,'wppm_archive_project'));
182 + add_action('wp_ajax_wppm_archieve_project_list',array($this,'wppm_archieve_project_list'),100,1);
183 + add_action('wp_ajax_wppm_add_new_subtask',array($this,'wppm_add_new_subtask'));
184 + add_action('wp_ajax_wppm_remove_subtask',array($this,'wppm_remove_subtask'));
185 + add_action('wp_ajax_wppm_convert_subtask_to_task',array($this,'wppm_convert_subtask_to_task'));
176 186 }
177 187
178 188 // Load admin scripts
179 189 public function loadScripts(){
180 - if(isset($_REQUEST['page']) && preg_match('/wppm-/',sanitize_text_field($_REQUEST['page']))) :
190 + $loading_html = '<div class="wppm_loading_icon"><img src="'.WPPM_PLUGIN_URL.'asset/images/ajax-loading.gif"></div>';
191 + wp_enqueue_script(
192 + 'wppm-notification',
193 + WPPM_PLUGIN_URL . 'asset/js/notification.js',
194 + array( 'jquery' ),
195 + WPPM_VERSION,
196 + true
197 + );
198 +
199 + wp_localize_script(
200 + 'wppm-notification',
201 + 'wppm_notification',
202 + array(
203 + 'ajax_url' => admin_url( 'admin-ajax.php' ),
204 + 'nonce' => wp_create_nonce( 'wppm_notification_nonce' ),
205 + 'loading_html' => $loading_html,
206 + )
207 + );
208 + if(isset($_REQUEST['page']) && preg_match('/wppm-/',sanitize_text_field($_REQUEST['page'])) || (isset($_REQUEST['page']) && $_REQUEST['page'] == 'wppm_dashboard')) :
181 209 wp_enqueue_script('jquery');
182 210 wp_enqueue_script('jquery-ui-core');
183 211 wp_enqueue_script( 'jquery-ui-sortable' );
184 212 wp_enqueue_script( 'jquery-ui-datepicker' );
@@ -216,8 +244,9 @@
216 244 wp_enqueue_script('wppm-datatable-js', WPPM_PLUGIN_URL.'asset/lib/DataTables/datatables.min.js?version='.WPPM_VERSION, ['jquery'], null, true);
217 245 wp_enqueue_style('wppm-datatable-css', WPPM_PLUGIN_URL.'asset/lib/DataTables/datatables.min.css?version='.WPPM_VERSION );
218 246 // selectWoo.
219 247 wp_enqueue_script( 'selectWoo', WPPM_PLUGIN_URL . 'asset/js/selectWoo/selectWoo.full.min.js', array( 'jquery' ), WPPM_VERSION, true );
248 + wp_enqueue_script('chartjs',WPPM_PLUGIN_URL.'asset/lib/chartjs/chart.js?version='.WPPM_VERSION, ['jquery'], null, true);
220 249 //localize script
221 250 $loading_html = '<div class="wppm_loading_icon"><img src="'.WPPM_PLUGIN_URL.'asset/images/ajax-loading.gif"></div>';
222 251 $wppm_rich_text_editor = get_option('wppm_rich_text_editor');
223 252 $wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task');
@@ -245,18 +274,26 @@
245 274 // Dashboard Menus
246 275 public function wppm_register_dashboard_menu(){
247 276 global $current_user,$wppmfunction;
248 277 add_menu_page(
249 - esc_html__( 'Projects', 'taskbuilder'),
250 - esc_html__( 'Projects','taskbuilder'),
278 + esc_html__( 'Taskbuilder', 'taskbuilder'),
279 + esc_html__( 'Taskbuilder','taskbuilder'),
251 280 'read',
252 - 'wppm-projects',
253 - array($this,'wppm_projects'),
254 - WPPM_PLUGIN_URL.'asset/images/tasklist.svg',
281 + 'wppm-dashboard',
282 + array($this,'wppm_dashboard'),
283 + WPPM_PLUGIN_URL.'asset/images/taskbuilder_logo.svg',
255 284 25
256 285 );
257 286 add_submenu_page(
258 - 'wppm-projects',
287 + 'wppm-dashboard',
288 + esc_html__('Dashboard', 'taskbuilder' ),
289 + esc_html__('Dashboard', 'taskbuilder' ),
290 + 'read',
291 + 'wppm-dashboard',
292 + array($this,'wppm_dashboard')
293 + );
294 + add_submenu_page(
295 + 'wppm-dashboard',
259 296 esc_html__('Project List', 'taskbuilder' ),
260 297 esc_html__('Projects', 'taskbuilder' ),
261 298 'read',
262 299 'wppm-projects',
@@ -261,11 +298,20 @@
261 298 'read',
262 299 'wppm-projects',
263 300 array($this,'wppm_projects')
264 301 );
302 + // add_submenu_page(
303 + // 'wppm-dashboard',
304 + // esc_html__('Archived Projects', 'taskbuilder' ),
305 + // esc_html__('Archived Projects', 'taskbuilder' ),
306 + // 'read',
307 + // 'wppm-archived-projects',
308 + // array($this,'wppm_archived_projects')
309 + // );
310 +
265 311
266 312 add_submenu_page(
267 - 'wppm-projects',
313 + 'wppm-dashboard',
268 314 esc_html__('Tasks', 'taskbuilder' ),
269 315 esc_html__('Tasks', 'taskbuilder' ),
270 316 'read',
271 317 'wppm-tasks',
@@ -272,9 +318,9 @@
272 318 array($this,'wppm_tasks')
273 319 );
274 320
275 321 add_submenu_page(
276 - 'wppm-projects',
322 + 'wppm-dashboard',
277 323 esc_html__('Archived Tasks', 'taskbuilder' ),
278 324 esc_html__('Archived Tasks', 'taskbuilder' ),
279 325 'read',
280 326 'wppm-archived-tasks',
@@ -282,9 +328,9 @@
282 328 );
283 329
284 330 if(current_user_can('manage_options')){
285 331 add_submenu_page(
286 - 'wppm-projects',
332 + 'wppm-dashboard',
287 333 esc_html__('Email Notifications', 'taskbuilder' ),
288 334 esc_html__('Email Notifications', 'taskbuilder' ),
289 335 'manage_options',
290 336 'wppm-email-notifications',
@@ -290,9 +336,9 @@
290 336 'wppm-email-notifications',
291 337 array($this,'wppm_email_notifications')
292 338 );
293 339 add_submenu_page(
294 - 'wppm-projects',
340 + 'wppm-dashboard',
295 341 esc_html__('Settings', 'taskbuilder' ),
296 342 esc_html__('Settings', 'taskbuilder' ),
297 343 'manage_options',
298 344 'wppm-settings',
@@ -298,9 +344,9 @@
298 344 'wppm-settings',
299 345 array($this,'settings')
300 346 );
301 347 add_submenu_page(
302 - 'wppm-projects',
348 + 'wppm-dashboard',
303 349 esc_html__('License', 'taskbuilder' ),
304 350 esc_html__('License', 'taskbuilder' ),
305 351 'manage_options',
306 352 'wppm-license',
@@ -307,9 +353,9 @@
307 353 array($this,'licenses')
308 354 );
309 355
310 356 add_submenu_page(
311 - 'wppm-projects',
357 + 'wppm-dashboard',
312 358 esc_html__('Pro Features', 'taskbuilder' ),
313 359 esc_html__('Pro Features', 'taskbuilder' ),
314 360 'manage_options',
315 361 'wppm-addons',
@@ -319,9 +365,9 @@
319 365 }
320 366
321 367 if(current_user_can('wppm_admin') && !current_user_can('manage_options')){
322 368 add_submenu_page(
323 - 'wppm-projects',
369 + 'wppm-dashboard',
324 370 esc_html__('Email Notifications', 'taskbuilder' ),
325 371 esc_html__('Email Notifications', 'taskbuilder' ),
326 372 'wppm_admin',
327 373 'wppm-email-notifications',
@@ -327,9 +373,9 @@
327 373 'wppm-email-notifications',
328 374 array($this,'wppm_email_notifications')
329 375 );
330 376 add_submenu_page(
331 - 'wppm-projects',
377 + 'wppm-dashboard',
332 378 esc_html__('Settings', 'taskbuilder' ),
333 379 esc_html__('Settings', 'taskbuilder' ),
334 380 'wppm_admin',
335 381 'wppm-settings',
@@ -335,9 +381,9 @@
335 381 'wppm-settings',
336 382 array($this,'settings')
337 383 );
338 384 add_submenu_page(
339 - 'wppm-projects',
385 + 'wppm-dashboard',
340 386 esc_html__('License', 'taskbuilder' ),
341 387 esc_html__('License', 'taskbuilder' ),
342 388 'manage_options',
343 389 'wppm-license',
@@ -344,9 +390,9 @@
344 390 array($this,'licenses')
345 391 );
346 392
347 393 add_submenu_page(
348 - 'wppm-projects',
394 + 'wppm-dashboard',
349 395 esc_html__('Addons', 'taskbuilder' ),
350 396 esc_html__('Addons', 'taskbuilder' ),
351 397 'wppm_admin',
352 398 'wppm-addons',
@@ -352,8 +398,25 @@
352 398 'wppm-addons',
353 399 array($this,'wppm_addons')
354 400 );
355 401 }
402 +
403 + if ( current_user_can('manage_options') || current_user_can('wppm_admin') ) {
404 + foreach ( wppm_get_locked_pro_addons_by_placement('menu') as $wppm_addon_key => $wppm_addon ) {
405 + add_submenu_page(
406 + 'wppm-dashboard',
407 + $wppm_addon['label'],
408 + $wppm_addon['label'] . ' <span class="wppm-pro-badge" title="' . esc_attr__('Pro feature', 'taskbuilder') . '">' . wppm_pro_badge_svg() . '</span>',
409 + 'read',
410 + 'wppm-pro-' . $wppm_addon_key,
411 + function() use ( $wppm_addon ) {
412 + $addon = $wppm_addon;
413 + include WPPM_ABSPATH . 'includes/admin/wppm_pro_addon_teaser.php';
414 + }
415 + );
416 + }
417 + }
418 +
356 419 do_action('wppm_add_submenu_page');
357 420 }
358 421
359 422 public function wppm_projects(){
@@ -359,8 +422,12 @@
359 422 public function wppm_projects(){
360 423 include WPPM_ABSPATH.'includes/admin/projects/projects.php';
361 424 }
362 425
426 + public function wppm_dashboard(){
427 + include WPPM_ABSPATH.'includes/admin/dashboard.php';
428 + }
429 +
363 430 public function wppm_add_new_project(){
364 431 include WPPM_ABSPATH.'includes/admin/projects/wppm_add_new_project.php';
365 432 die();
366 433 }
@@ -372,8 +439,18 @@
372 439 public function wppm_archived_tasks(){
373 440 include WPPM_ABSPATH.'includes/admin/tasks/wppm_tasks.php';
374 441 }
375 442
443 + // public function wppm_archived_projects(){
444 + // include WPPM_ABSPATH.'includes/admin/projects/projects.php';
445 + // }
446 +
447 + public function wppm_archieve_project_list(){
448 + $is_archieved = 1;
449 + include WPPM_ABSPATH.'includes/admin/projects/projects.php';
450 + die();
451 + }
452 +
376 453 public function wppm_email_notifications(){
377 454 include WPPM_ABSPATH.'includes/admin/email_notifications/wppm_email_notifications.php';
378 455 }
379 456
@@ -598,8 +675,23 @@
598 675 include WPPM_ABSPATH.'includes/admin/tasks/open_task/checklist/wppm_add_new_checklist.php';
599 676 die();
600 677 }
601 678
679 + public function wppm_add_new_subtask(){
680 + include WPPM_ABSPATH.'includes/admin/tasks/open_task/subtask/wppm_add_new_subtask.php';
681 + die();
682 + }
683 +
684 + public function wppm_remove_subtask(){
685 + include WPPM_ABSPATH.'includes/admin/tasks/open_task/subtask/wppm_remove_subtask.php';
686 + die();
687 + }
688 +
689 + public function wppm_convert_subtask_to_task(){
690 + include WPPM_ABSPATH.'includes/admin/tasks/open_task/subtask/wppm_convert_subtask_to_task.php';
691 + die();
692 + }
693 +
602 694 public function wppm_add_new_checklist_item(){
603 695 include WPPM_ABSPATH.'includes/admin/tasks/open_task/checklist/wppm_add_new_checklist_item.php';
604 696 die();
605 697 }
@@ -849,12 +941,8 @@
849 941 public function wppm_addons(){
850 942 include WPPM_ABSPATH.'includes/admin/addons.php';
851 943 }
852 944
853 - public function wppm_other_plugins(){
854 - include WPPM_ABSPATH.'includes/admin/wppm_other_plugins.php';
855 - }
856 -
857 945 public function wppm_clone_task(){
858 946 include WPPM_ABSPATH.'includes/admin/tasks/open_task/wppm_clone_task.php';
859 947 die();
860 948 }
@@ -1160,8 +1248,50 @@
1160 1248 }
1161 1249
1162 1250 public function wppm_archive_task(){
1163 1251 include WPPM_ABSPATH.'includes/admin/tasks/open_task/wppm_update_archive_task.php';
1252 + die();
1253 + }
1254 +
1255 + public function wppm_update_admin_notice(){
1256 + include WPPM_ABSPATH.'includes/admin/wppm_update_admin_notice.php';
1257 + }
1258 +
1259 + public function wppm_get_project_tasks_kanban_view(){
1260 + include WPPM_ABSPATH.'includes/admin/projects/open_project/wppm_get_project_tasks_kanban_view.php';
1261 + die();
1262 + }
1263 +
1264 + public function wppm_get_notifications_callback(){
1265 + include WPPM_ABSPATH.'includes/admin/email_notifications/wppm_get_notifications.php';
1266 + die();
1267 + }
1268 +
1269 + public function wppm_add_notification_container(){
1270 + $mention_notification = get_option('wppm_default_global_mention_comment_notification',1);
1271 + if ( ! $mention_notification ) {
1272 + return;
1273 + }
1274 + echo
1275 + ' <div id="wppm_notification_bell">
1276 + <i class="dashicons dashicons-bell"></i>
1277 + <span class="wppm-badge">0</span>
1278 + </div>
1279 + <div id="wppm-notification-container"></div>';
1280 + }
1281 +
1282 + public function wppm_mark_notification_as_read(){
1283 + global $wpdb;
1284 + $id = isset($_POST['id']) ? intval(sanitize_text_field($_POST['id'])) : 0;
1285 + $wpdb->update(
1286 + $wpdb->prefix . 'wppm_notifications',
1287 + array('is_read' => 1),
1288 + array('id' => $id)
1289 + );
1290 + wp_send_json_success();
1291 + }
1292 + public function wppm_archive_project(){
1293 + include WPPM_ABSPATH.'includes/admin/projects/open_project/wppm_update_archive_project.php';
1164 1294 die();
1165 1295 }
1166 1296 }
1167 1297 endif;