PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 4.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v4.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 1.0.6 All 57 releases
← All changes | includes/admin/projects/get_users.php +144 -142 trunk4.0.6 View file →
@@ -1,142 +1,144 @@
1 -<?php
2 -if ( ! defined( 'ABSPATH' ) ) {
3 - exit; // Exit if accessed directly
4 -}
5 -global $wpdb,$wppmfunction,$current_user;
6 -$wppm_users_role = get_option('wppm_user_role');
7 -$proj_id = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;
8 -$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
9 -$project = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project where id = %d", $proj_id));
10 -if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('assign_project_users',$proj_id) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}
11 -if(!empty($project->users)){
12 - $users = explode(",",$project->users);
13 -}
14 -$settings = get_option("wppm-ap-modal");
15 -ob_start();
16 -?>
17 -<form id="frm_get_project_users">
18 - <div id="wppm_get_users">
19 - <input type="text" id="wppm_user_name" class="wppm_user_name form-control regi_user_autocomplete ui-autocomplete-input" name="user_name" autocomplete="off" placeholder="Search User">
20 - <div class="wppm_filter_display_container" id="wppm_proj_users_display_container">
21 - <?php if(!empty($users)){
22 - foreach($users as $user){ ?>
23 - <div id="wppm_user_display_container_<?php echo esc_attr($user)?>" class="row wppm_user_display_container">
24 - <?php
25 - $userdata = get_userdata( $user );
26 - $user = absint($user);
27 - $project_user = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d", $proj_id, $user));
28 - ?>
29 - <div class="flex-container col-sm-4">
30 - <span class="wppm_filter_display_text">
31 - <?php echo esc_html($userdata->display_name); ?>
32 - <input type="hidden" name="user_names[]" value="<?php echo esc_attr($user) ?>">
33 - </span>
34 - </div>
35 - <div class="col-sm-4 wppm_user_role">
36 - <select size="sm" class="form-control" id="wppm_select_user_role_<?php echo esc_attr( $user ); ?>" name="wppm_select_user_role_<?php echo esc_attr( $user ); ?>">
37 - <?php if ( ! empty( $wppm_users_role ) ) : ?>
38 - <?php foreach ( $wppm_users_role as $key => $role ) : ?><?php
39 - $selected = ( ! empty( $project_user ) && $key == $project_user->role_id )
40 - ? 'selected="selected"'
41 - : '';
42 - ?>
43 - <option <?php echo esc_attr( $selected ); ?> value="<?php echo esc_attr( $key ); ?>">
44 - <?php echo esc_html( $role['label'] ); ?>
45 - </option>
46 - <?php endforeach; ?>
47 - <?php endif; ?>
48 - </select>
49 - </div>
50 - <div class="col-sm-4 wppm_delete_user_icon">
51 - <span onclick="wppm_remove_filter(<?php echo esc_attr($user)?>);"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>
52 - </div><?php
53 - ?>
54 - </div>
55 - <?php }
56 - } else{
57 - ?><span class="wppm_project_users_not_assign_label"><?php echo esc_html_e('None','taskbuilder');?></span><?php
58 - }
59 - ?>
60 - </div>
61 - <input type="hidden" name="action" value="wppm_set_project_users" />
62 - <input type="hidden" name="_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_set_project_users' ) ); ?>">
63 - <input type="hidden" id="wppm_proj_id" name="proj_id" value="<?php echo esc_attr($proj_id) ?>" />
64 - </div>
65 -</form>
66 -<style>
67 - li {
68 - color:<?php echo esc_attr( $settings['body-text-color'])?>!important;
69 - }
70 -</style>
71 -<script>
72 - jQuery(document).ready(function(){
73 - jQuery("input[name='user_name']").keypress(function(e) {
74 - //Enter key
75 - if (e.which == 13) {
76 - return false;
77 - }
78 - });
79 -
80 - jQuery( ".wppm_user_name" ).autocomplete({
81 - minLength: 1,
82 - appendTo: jQuery('.wppm_user_name').parent(),
83 - source: function( request, response ) {
84 - var term = request.term;
85 - request = {
86 - action: 'wppm_filter_autocomplete',
87 - term : term,
88 - field : 'users_name',
89 - }
90 - jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {
91 - response(data);
92 - });
93 - },
94 - select: function (event, ui) {
95 - var html_str = '<div id="wppm_user_display_container_'+ui.item.user_id+'" class="row wppm_user_display_container">'
96 - +'<div class="flex-container col-sm-4">'
97 - +'<span class="wppm_filter_display_text">'
98 - +ui.item.label
99 - +'<input type="hidden" name="user_names[]" value="'+ui.item.user_id+'">'
100 - +'</span>'
101 - +'</div>'
102 - +'<div class="col-sm-4 wppm_user_role">'
103 - +'<select size="sm" class="form-control" id="wppm_select_user_role_'+ui.item.user_id+'" name="wppm_select_user_role_'+ui.item.user_id+'">'+
104 - <?php
105 - if(!empty($wppm_users_role)){
106 - foreach($wppm_users_role as $key=>$role){
107 - if(!empty($role)){
108 - foreach($role as $k=>$val){
109 - ?>'<option value="<?php echo esc_attr($key) ?>"><?php echo esc_html($role['label']) ?></option>'+<?php
110 - }
111 - }
112 - }
113 - }
114 - ?>
115 - '</select>'
116 - +'</div>'
117 - +'<div class="col-sm-4 wppm_delete_user_icon">'
118 - +'<span onclick="wppm_remove_filter('+ui.item.user_id+');"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>'
119 - +'</div>'
120 - +'</div>';
121 - jQuery('.wppm_project_users_not_assign_label').hide();
122 - jQuery('#wppm_get_users #wppm_proj_users_display_container').append(html_str);
123 - jQuery(this).val(''); return false;
124 - }
125 - }).focus(function() {
126 - jQuery(this).autocomplete("search", "");
127 - });
128 - });
129 -</script>
130 -<?php
131 -$body = ob_get_clean();
132 -ob_start();
133 -?>
134 -<button type="button" class="btn wppm_popup_close" onclick="wppm_modal_close();"><?php echo esc_html_e('Close','taskbuilder');?></button>
135 -<button type="button" class="btn wppm_popup_action" onclick="wppm_set_project_users();"><?php echo esc_html_e('Save','taskbuilder');?></button>
136 -<?php
137 -$footer = ob_get_clean();
138 -$output = array(
139 - 'body' => $body,
140 - 'footer' => $footer
141 -);
142 -echo wp_json_encode($output);
1 +<?php
2 +if ( ! defined( 'ABSPATH' ) ) {
3 + exit; // Exit if accessed directly
4 +}
5 +global $wpdb,$wppmfunction,$current_user;
6 +$wppm_users_role = get_option('wppm_user_role');
7 +$proj_id = isset($_POST['proj_id']) ? sanitize_text_field($_POST['proj_id']) : '' ;
8 +$proj_id = esc_sql($proj_id);
9 +$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
10 +$project = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project where id = '$proj_id'" );
11 +if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('assign_project_users',$proj_id) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}
12 +if(!empty($project->users)){
13 + $users = explode(",",$project->users);
14 +}
15 +$settings = get_option("wppm-ap-modal");
16 +ob_start();
17 +?>
18 +<form id="frm_get_project_users">
19 + <div id="wppm_get_users">
20 + <input type="text" id="wppm_user_name" class="wppm_user_name form-control regi_user_autocomplete ui-autocomplete-input" name="user_name" autocomplete="off" placeholder="Search User">
21 + <div class="wppm_filter_display_container" id="wppm_proj_users_display_container">
22 + <?php if(!empty($users)){
23 + foreach($users as $user){ ?>
24 + <div id="wppm_user_display_container_<?php echo esc_attr($user)?>" class="row wppm_user_display_container">
25 + <?php
26 + $userdata = get_userdata( $user );
27 + $user = esc_sql($user);
28 + $project_user = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = '$proj_id' AND user_id = '$user'");
29 + ?>
30 + <div class="flex-container col-sm-4">
31 + <span class="wppm_filter_display_text">
32 + <?php echo esc_html_e($userdata->display_name,'taskbuilder'); ?>
33 + <input type="hidden" name="user_names[]" value="<?php echo esc_attr($user) ?>">
34 + </span>
35 + </div>
36 + <div class="col-sm-4 wppm_user_role">
37 + <select size="sm" class="form-control" id="wppm_select_user_role_<?php echo esc_attr($user) ?>" name="wppm_select_user_role_<?php echo esc_attr($user) ?>">
38 + <?php
39 + if(!empty($wppm_users_role)){
40 + foreach($wppm_users_role as $key=>$role){
41 + if(!empty($role)){
42 + foreach($role as $k=>$val){
43 + $selected = (!empty($project_user) && $key == $project_user->role_id) ? 'selected="selected"' : '';
44 + ?><option <?php echo $selected?> value="<?php echo esc_attr($key) ?>"><?php echo esc_html_e($role['label'],'taskbuilder') ?></option><?php
45 + }
46 + }
47 + }
48 + }
49 + ?>
50 + </select>
51 + </div>
52 + <div class="col-sm-4 wppm_delete_user_icon">
53 + <span onclick="wppm_remove_filter(<?php echo esc_attr($user)?>);"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>
54 + </div><?php
55 + ?>
56 + </div>
57 + <?php }
58 + } else{
59 + ?><span class="wppm_project_users_not_assign_label"><?php echo esc_html_e('None','wp_projects');?></span><?php
60 + }
61 + ?>
62 + </div>
63 + <input type="hidden" name="action" value="wppm_set_project_users" />
64 + <input type="hidden" name="_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_set_project_users' ) ); ?>">
65 + <input type="hidden" id="wppm_proj_id" name="proj_id" value="<?php echo esc_attr($proj_id) ?>" />
66 + </div>
67 +</form>
68 +<style>
69 + li {
70 + color:<?php echo esc_attr( $settings['body-text-color'])?>!important;
71 + }
72 +</style>
73 +<script>
74 + jQuery(document).ready(function(){
75 + jQuery("input[name='user_name']").keypress(function(e) {
76 + //Enter key
77 + if (e.which == 13) {
78 + return false;
79 + }
80 + });
81 +
82 + jQuery( ".wppm_user_name" ).autocomplete({
83 + minLength: 1,
84 + appendTo: jQuery('.wppm_user_name').parent(),
85 + source: function( request, response ) {
86 + var term = request.term;
87 + request = {
88 + action: 'wppm_filter_autocomplete',
89 + term : term,
90 + field : 'users_name',
91 + }
92 + jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {
93 + response(data);
94 + });
95 + },
96 + select: function (event, ui) {
97 + var html_str = '<div id="wppm_user_display_container_'+ui.item.user_id+'" class="row wppm_user_display_container">'
98 + +'<div class="flex-container col-sm-4">'
99 + +'<span class="wppm_filter_display_text">'
100 + +ui.item.label
101 + +'<input type="hidden" name="user_names[]" value="'+ui.item.user_id+'">'
102 + +'</span>'
103 + +'</div>'
104 + +'<div class="col-sm-4 wppm_user_role">'
105 + +'<select size="sm" class="form-control" id="wppm_select_user_role_'+ui.item.user_id+'" name="wppm_select_user_role_'+ui.item.user_id+'">'+
106 + <?php
107 + if(!empty($wppm_users_role)){
108 + foreach($wppm_users_role as $key=>$role){
109 + if(!empty($role)){
110 + foreach($role as $k=>$val){
111 + ?>'<option value="<?php echo esc_attr($key) ?>"><?php echo esc_html_e($role['label'],'taskbuilder') ?></option>'+<?php
112 + }
113 + }
114 + }
115 + }
116 + ?>
117 + '</select>'
118 + +'</div>'
119 + +'<div class="col-sm-4 wppm_delete_user_icon">'
120 + +'<span onclick="wppm_remove_filter('+ui.item.user_id+');"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>'
121 + +'</div>'
122 + +'</div>';
123 + jQuery('.wppm_project_users_not_assign_label').hide();
124 + jQuery('#wppm_get_users #wppm_proj_users_display_container').append(html_str);
125 + jQuery(this).val(''); return false;
126 + }
127 + }).focus(function() {
128 + jQuery(this).autocomplete("search", "");
129 + });
130 + });
131 +</script>
132 +<?php
133 +$body = ob_get_clean();
134 +ob_start();
135 +?>
136 +<button type="button" class="btn wppm_popup_close" onclick="wppm_modal_close();"><?php echo esc_html_e('Close','taskbuilder');?></button>
137 +<button type="button" class="btn wppm_popup_action" onclick="wppm_set_project_users();"><?php echo esc_html_e('Save','taskbuilder');?></button>
138 +<?php
139 +$footer = ob_get_clean();
140 +$output = array(
141 + 'body' => $body,
142 + 'footer' => $footer
143 +);
144 +echo json_encode($output);