PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 3.0.0
Taskbuilder – Project Management & Task Management Tool With Kanban Board v3.0.0
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
taskbuilder / includes / admin / projects / get_users.php

get_users.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 3.0.0, at includes/admin/projects/get_users.php

141 lines 5.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('assign_project_users',$proj_id))) {exit;}
9 $project = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project where id = $proj_id" );
10 if(!empty($project->users)){
11 $users = explode(",",$project->users);
12 }
13 $settings = get_option("wppm-ap-modal");
14 ob_start();
15 ?>
16 <form id="frm_get_project_users">
17 <div id="wppm_get_users">
18 <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">
19 <div class="wppm_filter_display_container" id="wppm_proj_users_display_container">
20 <?php if(!empty($users)){
21 foreach($users as $user){ ?>
22 <div id="wppm_user_display_container_<?php echo esc_attr($user)?>" class="row wppm_user_display_container">
23 <?php
24 $userdata = get_userdata( $user );
25 $project_user = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = '$proj_id' AND user_id = '$user'");
26 ?>
27 <div class="flex-container col-sm-4">
28 <span class="wppm_filter_display_text">
29 <?php echo esc_html_e($userdata->display_name,'taskbuilder'); ?>
30 <input type="hidden" name="user_names[]" value="<?php echo esc_attr($user) ?>">
31 </span>
32 </div>
33 <div class="col-sm-4 wppm_user_role">
34 <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) ?>">
35 <?php
36 if(!empty($wppm_users_role)){
37 foreach($wppm_users_role as $key=>$role){
38 if(!empty($role)){
39 foreach($role as $k=>$val){
40 $selected = (!empty($project_user) && $key == $project_user->role_id) ? 'selected="selected"' : '';
41 ?><option <?php echo $selected?> value="<?php echo esc_attr($key) ?>"><?php echo esc_html_e($role['label'],'taskbuilder') ?></option><?php
42 }
43 }
44 }
45 }
46 ?>
47 </select>
48 </div>
49 <div class="col-sm-4 wppm_delete_user_icon">
50 <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>
51 </div><?php
52 ?>
53 </div>
54 <?php }
55 } else{
56 ?><span class="wppm_project_users_not_assign_label"><?php echo esc_html_e('None','wp_projects');?></span><?php
57 }
58 ?>
59 </div>
60 <input type="hidden" name="action" value="wppm_set_project_users" />
61 <input type="hidden" name="_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_set_project_users' ) ); ?>">
62 <input type="hidden" id="wppm_proj_id" name="proj_id" value="<?php echo esc_attr($proj_id) ?>" />
63 </div>
64 </form>
65 <style>
66 li {
67 color:<?php echo esc_attr( $settings['body-text-color'])?>!important;
68 }
69 </style>
70 <script>
71 jQuery(document).ready(function(){
72 jQuery("input[name='user_name']").keypress(function(e) {
73 //Enter key
74 if (e.which == 13) {
75 return false;
76 }
77 });
78
79 jQuery( ".wppm_user_name" ).autocomplete({
80 minLength: 1,
81 appendTo: jQuery('.wppm_user_name').parent(),
82 source: function( request, response ) {
83 var term = request.term;
84 request = {
85 action: 'wppm_filter_autocomplete',
86 term : term,
87 field : 'users_name',
88 }
89 jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {
90 response(data);
91 });
92 },
93 select: function (event, ui) {
94 var html_str = '<div id="wppm_user_display_container_'+ui.item.user_id+'" class="row wppm_user_display_container">'
95 +'<div class="flex-container col-sm-4">'
96 +'<span class="wppm_filter_display_text">'
97 +ui.item.label
98 +'<input type="hidden" name="user_names[]" value="'+ui.item.user_id+'">'
99 +'</span>'
100 +'</div>'
101 +'<div class="col-sm-4 wppm_user_role">'
102 +'<select size="sm" class="form-control" id="wppm_select_user_role_'+ui.item.user_id+'" name="wppm_select_user_role_'+ui.item.user_id+'">'+
103 <?php
104 if(!empty($wppm_users_role)){
105 foreach($wppm_users_role as $key=>$role){
106 if(!empty($role)){
107 foreach($role as $k=>$val){
108 ?>'<option value="<?php echo esc_attr($key) ?>"><?php echo esc_html_e($role['label'],'taskbuilder') ?></option>'+<?php
109 }
110 }
111 }
112 }
113 ?>
114 '</select>'
115 +'</div>'
116 +'<div class="col-sm-4 wppm_delete_user_icon">'
117 +'<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>'
118 +'</div>'
119 +'</div>';
120 jQuery('.wppm_project_users_not_assign_label').hide();
121 jQuery('#wppm_get_users #wppm_proj_users_display_container').append(html_str);
122 jQuery(this).val(''); return false;
123 }
124 }).focus(function() {
125 jQuery(this).autocomplete("search", "");
126 });
127 });
128 </script>
129 <?php
130 $body = ob_get_clean();
131 ob_start();
132 ?>
133 <button type="button" class="btn wppm_popup_close" onclick="wppm_modal_close();"><?php echo esc_html_e('Close','taskbuilder');?></button>
134 <button type="button" class="btn wppm_popup_action" onclick="wppm_set_project_users();"><?php echo esc_html_e('Save','taskbuilder');?></button>
135 <?php
136 $footer = ob_get_clean();
137 $output = array(
138 'body' => $body,
139 'footer' => $footer
140 );
141 echo json_encode($output);