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
← All changes | includes/admin/projects/projects_list.php +165 -346 5.0.23.0.0 View file →
@@ -5,10 +5,8 @@
5 5 global $wpdb,$wppmfunction,$current_user;
6 6 $status = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses" );
7 7 $categories = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_project_categories" );
8 8 $appearance_settings = get_option("wppm-ap-project-list");
9 -$wppm_date_setting = get_option('wppm_date_setting');
10 -$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
11 9 $proj_per_page = 20;
12 10 $page_no = (isset($_POST['page_no'])) ? intval(sanitize_text_field($_POST['page_no'])): '0';
13 11 $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : '';
14 12 $order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :"ASC";
@@ -15,16 +13,8 @@
15 13 $sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):"project_name";
16 14 $filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : "all";
17 15 $current_date = date('Y-m-d');
18 16 $wppm_pl_filter = "1=1";
19 -$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');
20 -$cu_id = esc_sql($current_user->ID);
21 -$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');
22 -if(!empty($wppm_hide_proj_statuses_from_frontend)){
23 - $wppm_hide_proj_statuses_from_frontend = explode(",",$wppm_hide_proj_statuses_from_frontend);
24 -} else {
25 - $wppm_hide_proj_statuses_from_frontend = '';
26 -}
27 17 $filters = array(
28 18 'sort_by' => $sort_by,
29 19 'order' => $order,
30 20 'search' => $search_tag,
@@ -65,42 +55,30 @@
65 55 }
66 56 if($sort_by=='category'){
67 57 $sort_by = 'proj_categories.name';
68 58 }
69 -if($filter_by=='all'){
70 - if($wppm_hide_completed_status_proj == 0){
71 - $wppm_pl_filter = "status!='4'";
72 - }
73 -}
74 -if($filter_by=='4'){
59 +if($filter_by=='completed'){
75 60 $wppm_pl_filter = "status='4'";
76 61 }elseif($filter_by=='overdue'){
77 62 $wppm_pl_filter = "status!='4' AND (CAST(end_date AS DATE)) < '$current_date'";
78 63 }elseif($filter_by == 'unassigned'){
79 64 $wppm_pl_filter = "users=''";
80 -}elseif($filter_by == '1'){
65 +}elseif($filter_by == 'new'){
81 66 $wppm_pl_filter = "status='1'";
82 -}elseif($filter_by == '2'){
67 +}elseif($filter_by == 'inprogress'){
83 68 $wppm_pl_filter = "status='2'";
84 -}elseif($filter_by == '3'){
69 +}elseif($filter_by == 'hold'){
85 70 $wppm_pl_filter = "status='3'";
86 71 }elseif($filter_by == 'mine'){
87 72 $wppm_pl_filter = "(FIND_IN_SET('$current_user->ID',users)>0)";
88 73 }
89 -
90 -if(!empty($wppm_hide_proj_statuses_from_frontend) && is_array($wppm_hide_proj_statuses_from_frontend) && ((isset($_POST['is_frontend'])) && (sanitize_text_field($_POST['is_frontend'])==1))){
91 - foreach($wppm_hide_proj_statuses_from_frontend as $status){
92 - $wppm_pl_filter .= " AND status != '$status'";
93 - }
94 -}
95 -
96 74 $wppm_project_time = get_option('wppm_project_time');
97 75 $wppm_default_project_date = get_option('wppm_default_project_date');
98 76 $sort_by = apply_filters('wppm_project_list_sort_by_query',$sort_by);
99 77 $order = apply_filters('wppm_project_list_order_query',$order);
100 -$search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';
78 +$search_tag_text = '%'.$search_tag.'%';
101 79 if(!empty($search_tag)){
102 - $search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';
80 + $search_tag_text = '%'.$search_tag.'%';
103 81 $query = ("SELECT Project.*
104 82 FROM {$wpdb->prefix}wppm_project AS Project
105 83 Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
106 84 Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
@@ -106,12 +84,12 @@
106 84 Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
107 85 Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
108 86 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
109 87 ");
110 - if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
88 + if($current_user->has_cap('manage_options')){
111 89 $where = " where $wppm_pl_filter AND (Project.project_name LIKE '$search_tag_text' OR proj_statuses.name LIKE '$search_tag_text' OR proj_categories.name LIKE '$search_tag_text' OR ( user.display_name LIKE '$search_tag_text'))";
112 90 }else{
113 - $where = " where $wppm_pl_filter AND (Project.project_name LIKE '$search_tag_text' OR proj_statuses.name LIKE '$search_tag_text' OR proj_categories.name LIKE '$search_tag_text' OR ( user.display_name LIKE '$search_tag_text')) AND ((FIND_IN_SET('$current_user->ID',Project.users)>0) OR (Project.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR Project.created_by='$cu_id')";
91 + $where = " where $wppm_pl_filter AND (Project.project_name LIKE '$search_tag_text' OR proj_statuses.name LIKE '$search_tag_text' OR proj_categories.name LIKE '$search_tag_text' OR ( user.display_name LIKE '$search_tag_text')) AND ((FIND_IN_SET('$current_user->ID',Project.users)>0) OR (Project.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1))";
114 92 }
115 93 }else{
116 94 if($sort_by=='project_name'|| $sort_by=='start_date' || $sort_by=='end_date'){
117 95 $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
@@ -123,19 +101,17 @@
123 101 Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
124 102 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
125 103 ");
126 104 }
127 - if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
105 + if($current_user->has_cap('manage_options')){
128 106 $where = " where $wppm_pl_filter";
129 107 }else{
130 - $where = " where ($wppm_pl_filter AND (FIND_IN_SET('$current_user->ID',Project.users)>0 OR (Project.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1)) OR Project.created_by='$cu_id')";
108 + $where = " where ($wppm_pl_filter AND (FIND_IN_SET('$current_user->ID',Project.users)>0 OR (Project.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1)))";
131 109 }
132 110 }
133 111 $no_of_rows = ( "SELECT count(*) FROM ($query");
134 112 $no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows,$wppm_pl_filter,$search_tag);
135 113 $where = apply_filters('wppm_project_list_query_where',$where, $wppm_pl_filter,$search_tag);
136 -$sort_by = esc_sql($sort_by);
137 -$order = esc_sql($order);
138 114 $query .= $where." Group by Project.id ORDER BY $sort_by $order";
139 115 $no_of_rows .= $where." Group by Project.id) AS Project";
140 116 $totalrows = $wpdb->get_var( $no_of_rows );
141 117 $query = apply_filters('wppm_project_list_query',$query);
@@ -142,127 +118,83 @@
142 118 $limit_start=$page_no*$proj_per_page;
143 119 $limit="\n LIMIT ".$limit_start.",".$proj_per_page." ";
144 120 $query = $query.$limit;
145 121 $wppm_fillter = $wpdb->get_results($query);
146 -$new_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(1)."'" );
147 -$inp_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(2)."'" );
148 -$hold_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(3)."'" );
149 -$completed_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(4)."'" );
150 -$new_style = (!empty($new_status_name))? "display:inline" :"display:none;";
151 -$inp_status_style = (!empty($inp_status_name))? "display:inline" :"display:none;";
152 -$hold_status_style = (!empty($hold_status_name))? "display:inline" :"display:none;";
153 -$complete_status_style = (!empty($completed_status_name))? "display:inline" :"display:none;";
154 122 ?>
155 123 <form id="wppm_project_list_frm">
156 - <div id="wppm-container">
157 - <div id="wppm_project_list_container" class="wppm_bootstrap">
158 - <div class="row">
159 - <div class="col-sm-12" id="wppm_heading_inline">
160 - <span class="wppm-heading-inline">
161 - <?php echo esc_html_e('Projects','taskbuilder');?>
162 - </span>
163 - <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?>
164 - <img width="25" height="30" id="wppm_add_new_project_btn" class="wppm_add_new_project_btn" onclick="wppm_add_new_project()" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/add.svg'); ?>" alt="add">
165 - <?php } ?>
124 + <div id="wppm_project_list_container" class="wppm_bootstrap">
125 + <div class="row">
126 + <div class="col-sm-6" id="wppm_heading_inline">
127 + <span class="wppm-heading-inline">
128 + <?php echo esc_html_e('Projects','taskbuilder');?>
129 + </span>
130 + <?php if($current_user->has_cap('manage_options')){ ?>
131 + <img width="25" height="30" id="wppm_add_new_project_btn" class="wppm_add_new_project_btn" onclick="wppm_add_new_project()" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/add.svg'); ?>" alt="add">
132 + <?php } ?>
133 + </div>
134 + <div id="wppm_project_and_task_search" class="col-sm-6">
135 + <img width="25px" id="wppm_project_search_filter_img" height="15px" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/search.svg'); ?>" alt="search">
136 + <input type="search" id="wppm_project_search_filter" name="wppm_project_search_filter" class="form-control form-control-sm" aria-controls="selection-datatable" placeholder="<?php echo esc_attr__('Search','taskbuilder');?>" value="<?php echo (!empty($search_tag)) ? esc_attr($search_tag) : "" ?>">
137 + </div>
138 + </div>
139 + <div class="row">
140 + <div class="col-sm-6" id="wppm_project_filter_container">
141 + <div class="wppm-filter-item">
142 + <label for="wppm_project_filter"> <?php echo esc_html_e('Filter','taskbuilder');?></label>
143 + <select id="wppm_project_filter" name="wppm_project_filter" onchange="wppm_apply_project_filter()">
144 + <option value="all"<?php echo ($filter_by == "all")? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option>
145 + <option value="new" <?php echo ($filter_by == "new")? 'selected':""?>><?php echo esc_html_e('New','taskbuilder');?></option>
146 + <option value="inprogress" <?php echo ($filter_by == "inprogress")? 'selected':""?>><?php echo esc_html_e('In Progress','taskbuilder');?></option>
147 + <option value="hold" <?php echo ($filter_by == "hold")? 'selected':""?>><?php echo esc_html_e('Hold','taskbuilder');?></option>
148 + <option value="completed" <?php echo ($filter_by == "completed")? 'selected':""?>><?php echo esc_html_e('Completed','taskbuilder');?></option>
149 + <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo esc_html_e('Mine','taskbuilder');?></option>
150 + <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo esc_html_e('Unassigned','taskbuilder');?></option>
151 + <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo esc_html_e('Overdue','taskbuilder');?></option>
152 + </select>
166 153 </div>
167 - </div>
168 - <div style="display:flex;justify-content:space-between;margin-top:20px;flex-wrap: wrap;">
169 - <div style="display:flex;flex-wrap: wrap;">
170 - <div id="wppm_project_filter_container">
171 - <div class="wppm-bulk-actions" style="margin-bottom: 10px;">
172 - <button
173 - id="wppm-bulk-actions-btn"
174 - class="wppm-button small secondary"
175 - type="button"
176 - style="display:none;padding:14px;font: 13px Helvetica Neue, Arial, Helvetica, sans-serif !important"
177 - data-popover="wppm-bulk-actions">
178 - <?php esc_attr_e( 'Bulk Actions ', 'taskbuilder' ); ?><img style="color:#313042" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/wppm_chevron_down_icon.svg'); ?>" alt="chevron_down">
179 - </button>
180 - <div id="wppm-bulk-actions" class="gpopover wppm-popover-menu wppm-proj-bulk-actions">
181 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_status('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_status' ) ); ?>');">
182 - <span><img style="margin-right:5px;" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/gps-navigation.svg'); ?>" alt="status"><?php echo esc_html_e('Change Status','taskbuilder'); ?></span>
183 - </div>
184 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_category('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_category' ) ); ?>');">
185 - <span><img style="margin-right:5px;" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/tags.svg'); ?>" alt="category"><?php echo esc_html_e('Change Category','taskbuilder'); ?></span>
186 - </div>
187 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_assign_users('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');">
188 - <span><img style="margin-right:5px;" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/users.svg'); ?>" alt="users"><?php echo esc_html_e('Assign Co-workers','taskbuilder'); ?></span>
189 - </div>
190 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_delete_project('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');">
191 - <span><img style="margin-right:5px;" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash-alt-solid.svg'); ?>" alt="delete"><?php echo esc_html_e('Delete','taskbuilder'); ?></span>
192 - </div>
193 - </div>
194 - </div>
195 - <div class="wppm-filter-item">
196 - <label for="wppm_project_filter"> <?php echo esc_html_e('Filter','taskbuilder');?></label>
197 - <select id="wppm_project_filter" name="wppm_project_filter" onchange="wppm_apply_project_filter()">
198 - <option value="all"<?php echo ($filter_by == "all")? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option>
199 - <option style="<?php echo $new_style ?>" value="1" <?php echo ($filter_by == "1")? 'selected':""?>><?php echo esc_html_e($new_status_name,'taskbuilder');?></option>
200 - <option style="<?php echo $inp_status_style ?>" value="2" <?php echo ($filter_by == "2")? 'selected':""?>><?php echo esc_html_e($inp_status_name,'taskbuilder');?></option>
201 - <option style="<?php echo $hold_status_style ?>" value="3" <?php echo ($filter_by == "3")? 'selected':""?>><?php echo esc_html_e($hold_status_name,'taskbuilder');?></option>
202 - <option style="<?php echo $complete_status_style ?>" value="4" <?php echo ($filter_by == "4")? 'selected':""?>><?php echo esc_html_e($completed_status_name,'taskbuilder');?></option>
203 - <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo esc_html_e('Mine','taskbuilder');?></option>
204 - <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo esc_html_e('Unassigned','taskbuilder');?></option>
205 - <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo esc_html_e('Overdue','taskbuilder');?></option>
206 - </select>
207 - </div>
208 - <div class="wppm_display_submit">
209 - <div class="wppm-filter-actions">
210 - <span class="wppm-link" onclick="wppm_pl_reset_filter()"> <?php echo esc_html_e('Reset','taskbuilder');?></span>
211 - </div>
212 - </div>
154 + <div class="wppm_display_submit">
155 + <div class="wppm-filter-actions">
156 + <span class="wppm-link" onclick="wppm_pl_reset_filter()"> <?php echo esc_html_e('Reset','taskbuilder');?></span>
213 157 </div>
214 158 </div>
215 - <div id="wppm_project_and_task_search" style="display:flex;justify-content:flex-end;">
216 - <img width="25px" id="wppm_project_search_filter_img" style="position: relative;top: 10px;left: 30px;" height="15px" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/search.svg'); ?>" alt="search">
217 - <input type="search" id="wppm_project_search_filter" style="margin-right:10px;" name="wppm_project_search_filter" class="form-control form-control-sm" aria-controls="selection-datatable" placeholder="<?php echo esc_attr__('Search','taskbuilder');?>" value="<?php echo (!empty($search_tag)) ? esc_attr($search_tag) : "" ?>">
218 - </div>
219 159 </div>
220 - <script>
221 - jQuery('#wppm-more-actions-btn, #wppm-bulk-actions-btn').gpopover({width: 200});
222 - </script>
223 - <div class="table-responsive">
224 - <table id="wppm_project_table" class="wppm_table table">
225 - <tr>
226 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>" onchange="wppm_bulk_select_change()">
227 - <div class="checkbox-container">
228 - <input id="wppm_bulk_select_option" class="wppm-bulk-selector" type="checkbox" onchange="wppm_bulk_select_change();"/>
229 - <label for="wppm_bulk_select_option"></label>
230 - </div>
231 - </th>
232 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
233 - <span id="wppm_proj_name_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Project','taskbuilder'); ?></span>
234 - <img width="16" height="16" onclick="wppm_sort_up_project_list('project_name','ASC')" style = "<?php echo ($sort_by == 'project_name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_name_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
235 - <img width="16" height="16" onclick="wppm_sort_up_project_list('project_name','DESC')" style = "<?php echo ($sort_by == 'project_name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_name_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
236 - </th>
237 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
238 - <span id="wppm_project_status_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Status','taskbuilder'); ?></span>
239 - <img width="16" height="16" onclick="wppm_sort_up_project_list('status','ASC')" style = "<?php echo ($sort_by == 'proj_statuses.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_status_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
240 - <img width="16" height="16" onclick="wppm_sort_up_project_list('status','DESC')" style = "<?php echo ($sort_by == 'proj_statuses.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_status_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
241 - </th>
242 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
243 - <span id="wppm_proj_list_users_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Users','taskbuilder'); ?></span></th>
244 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
245 - <span id="wppm_project_category_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Category','taskbuilder'); ?></span>
246 - <img width="16" height="16" onclick="wppm_sort_up_project_list('category','ASC')" style = "<?php echo ($sort_by == 'proj_categories.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_cat_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
247 - <img width="16" height="16" onclick="wppm_sort_up_project_list('category','DESC')" style = "<?php echo ($sort_by == 'proj_categories.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_cat_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
248 - </th>
249 - <?php if($wppm_default_project_date==1){ ?>
250 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
251 - <span id="wppm_project_start_date_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Start Date','taskbuilder'); ?></span>
252 - <img width="16" height="16" onclick="wppm_sort_up_project_list('start_date','ASC')" style = "<?php echo ($sort_by == 'start_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_start_date_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
253 - <img width="16" height="16" onclick="wppm_sort_up_project_list('start_date','DESC')" style = "<?php echo ($sort_by == 'start_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_start_date_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
254 - </th>
255 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
256 - <span id="wppm_project_end_date_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('End Date','taskbuilder'); ?></span>
257 - <img width="16" height="16" onclick="wppm_sort_up_project_list('end_date','ASC')" style = "<?php echo ($sort_by == 'end_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_end_date_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
258 - <img width="16" height="16" onclick="wppm_sort_up_project_list('end_date','DESC')" style = "<?php echo ($sort_by == 'end_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_end_date_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
259 - </th>
260 - <?php } ?>
261 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"><span style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('No. of tasks','taskbuilder'); ?></span></th>
262 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"></th>
263 - </tr>
264 - <tbody>
160 + </div>
161 + <div class="table-responsive">
162 + <table id="wppm_project_table" class="wppm_table table">
163 + <tr>
164 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
165 + <span id="wppm_proj_name_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Project','taskbuilder'); ?></span>
166 + <img width="16" height="16" onclick="wppm_sort_up_project_list('project_name','ASC')" style = "<?php echo ($sort_by == 'project_name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_name_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
167 + <img width="16" height="16" onclick="wppm_sort_up_project_list('project_name','DESC')" style = "<?php echo ($sort_by == 'project_name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_name_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
168 + </th>
169 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
170 + <span id="wppm_project_status_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Status','taskbuilder'); ?></span>
171 + <img width="16" height="16" onclick="wppm_sort_up_project_list('status','ASC')" style = "<?php echo ($sort_by == 'proj_statuses.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_status_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
172 + <img width="16" height="16" onclick="wppm_sort_up_project_list('status','DESC')" style = "<?php echo ($sort_by == 'proj_statuses.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_status_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
173 + </th>
174 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
175 + <span id="wppm_proj_list_users_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Users','taskbuilder'); ?></span></th>
176 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
177 + <span id="wppm_project_category_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Category','taskbuilder'); ?></span>
178 + <img width="16" height="16" onclick="wppm_sort_up_project_list('category','ASC')" style = "<?php echo ($sort_by == 'proj_categories.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_cat_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
179 + <img width="16" height="16" onclick="wppm_sort_up_project_list('category','DESC')" style = "<?php echo ($sort_by == 'proj_categories.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_cat_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
180 + </th>
181 + <?php if($wppm_default_project_date==1){ ?>
182 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
183 + <span id="wppm_project_start_date_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Start Date','taskbuilder'); ?></span>
184 + <img width="16" height="16" onclick="wppm_sort_up_project_list('start_date','ASC')" style = "<?php echo ($sort_by == 'start_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_start_date_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
185 + <img width="16" height="16" onclick="wppm_sort_up_project_list('start_date','DESC')" style = "<?php echo ($sort_by == 'start_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_start_date_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
186 + </th>
187 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
188 + <span id="wppm_project_end_date_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('End Date','taskbuilder'); ?></span>
189 + <img width="16" height="16" onclick="wppm_sort_up_project_list('end_date','ASC')" style = "<?php echo ($sort_by == 'end_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_end_date_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
190 + <img width="16" height="16" onclick="wppm_sort_up_project_list('end_date','DESC')" style = "<?php echo ($sort_by == 'end_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_end_date_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
191 + </th>
192 + <?php } ?>
193 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"><span style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('No. of tasks','taskbuilder'); ?></span></th>
194 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"></th>
195 + </tr>
196 + <tbody>
265 197 <?php
266 198 $total_projects=0;
267 199 $users = array();
268 200 if(!empty($wppm_fillter)){
@@ -267,20 +199,16 @@
267 199 $users = array();
268 200 if(!empty($wppm_fillter)){
269 201 foreach( $wppm_fillter as $project ){
270 202 $total_projects++;
271 - $proejctdata = $wppmfunction->get_project($project->id);
272 - $pstatus= esc_sql($project->status);
273 - $status = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id='$pstatus'" );
203 + $status = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id=$project->status" );
274 204 $users = explode(",",$project->users);
275 - $pid= esc_sql($project->id);
276 205 if(isset($project->cat_id)){
277 - $pcat_id = esc_sql($project->cat_id);
278 - $category = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_categories where id='$pcat_id'" );
206 + $category = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_categories where id=$project->cat_id" );
279 207 }
280 208 if(isset($project->id)){
281 - if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
282 - $no_of_tasks = $wpdb->get_var("SELECT count(*) FROM {$wpdb->prefix}wppm_task WHERE project='$pid' ");
209 + if($current_user->has_cap('manage_options')){
210 + $no_of_tasks = $wpdb->get_var("SELECT count(*) FROM {$wpdb->prefix}wppm_task WHERE project=$project->id ");
283 211 }else{
284 212 $query =("SELECT count(*) FROM
285 213 ( SELECT Task.*
286 214 FROM {$wpdb->prefix}wppm_task AS Task
@@ -286,196 +214,101 @@
286 214 FROM {$wpdb->prefix}wppm_task AS Task
287 215 Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
288 216 Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
289 217 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id
290 - where Task.project = '$pid' AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_id' AND proj_users.role_id = 1 ) OR (proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR ( Task.project = proj.id AND proj.created_by='$cu_id')) Group by Task.id ) AS Task");
218 + where Task.project = $project->id AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$current_user->ID') OR (proj_users.user_id = '$current_user->ID' AND proj_users.role_id = 1 ) OR (proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1)) Group by Task.id ) AS Task");
291 219 $no_of_tasks = $wpdb->get_var($query);
292 - }
293 - $no_of_tasks = apply_filters('wppm_no_of_task_proj_list_query',$no_of_tasks,$project->id);
294 220 }
295 - if($wppm_project_time == 1){
221 + }
222 + if($wppm_project_time == 1){
223 + $proj_start_date = $project->start_date;
224 + $proj_end_date = $project->end_date;
225 + } elseif($wppm_project_time == 0){
296 226 $psDate = new DateTime($project->start_date);
297 227 $peDate = new DateTime($project->end_date);
298 - if($project->start_date=='0000-00-00 00:00:00'){
299 - if($wppm_date_setting=='Y-m-d H:i:s'){
300 - $proj_start_date = '0000-00-00 00:00:00';
301 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
302 - $proj_start_date = '00-00-0000 00:00:00';
303 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
304 - $proj_start_date = '00-00-0000 00:00:00';
305 - }else{
306 - $proj_start_date = '0000-00-00 00:00:00';
307 - }
308 - }if($project->end_date=='0000-00-00 00:00:00'){
309 - if($wppm_date_setting=='Y-m-d H:i:s'){
310 - $proj_end_date = '0000-00-00 00:00:00';
311 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
312 - $proj_end_date = '00-00-0000 00:00:00';
313 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
314 - $proj_end_date = '00-00-0000 00:00:00';
315 - }else{
316 - $proj_end_date = '0000-00-00 00:00:00';
317 - }
318 - }
319 - if($project->start_date!='0000-00-00 00:00:00'){
320 - if(!empty($wppm_date_setting)){
321 - $proj_start_date = $psDate->format($wppm_date_setting);
322 - }else{
323 - $proj_start_date = isset($project->start_date)? $project->start_date:"";
324 - }
325 - }
326 - if($project->end_date!='0000-00-00 00:00:00'){
327 - if(!empty($wppm_date_setting)){
328 - $proj_end_date = $peDate->format($wppm_date_setting);
329 - }else{
330 - $proj_end_date = isset($project->end_date) ? $project->end_date: "" ;
331 - }
332 - }
333 - } elseif($wppm_project_time == 0){
334 - $psDate = new DateTime($project->start_date);
335 - $peDate = new DateTime($project->end_date);
336 - $proj_start_date = $psDate->format('Y-m-d');
337 - $proj_end_date = $peDate->format('Y-m-d');
338 - if($project->start_date=='0000-00-00 00:00:00'){
339 - if($wppm_date_setting=='Y-m-d H:i:s'){
340 - $proj_start_date = '0000-00-00';
341 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
342 - $proj_start_date = '00-00-0000';
343 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
344 - $proj_start_date = '00-00-0000';
345 - }else{
346 - $proj_start_date = '0000-00-00';
347 - }
348 - }
349 - if($project->end_date=='0000-00-00 00:00:00'){
350 - if($wppm_date_setting=='Y-m-d H:i:s'){
351 - $proj_end_date = '0000-00-00';
352 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
353 - $proj_end_date = '00-00-0000';
354 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
355 - $proj_end_date = '00-00-0000';
356 - }else{
357 - $proj_end_date = '0000-00-00';
358 - }
359 -
360 - }if($project->start_date!='0000-00-00 00:00:00'){
361 - if($wppm_date_setting=='Y-m-d H:i:s'){
362 - $proj_start_date = $psDate->format('Y-m-d');
363 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
364 - $proj_start_date = $psDate->format('d-m-Y');
365 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
366 - $proj_start_date = $psDate->format('m-d-Y');
367 - }else{
368 - $proj_start_date = $psDate->format('Y-m-d');
369 - }
370 - }
371 - if($project->end_date!='0000-00-00 00:00:00'){
372 - if($wppm_date_setting=='Y-m-d H:i:s'){
373 - $proj_end_date = $peDate->format('Y-m-d');
374 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
375 - $proj_end_date = $peDate->format('d-m-Y');
376 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
377 - $proj_end_date = $peDate->format('m-d-Y');
378 - }else{
379 - $proj_end_date = $peDate->format('Y-m-d');
228 + $proj_start_date = $psDate->format('Y-m-d');
229 + $proj_end_date = $peDate->format('Y-m-d');
230 + }
231 + ?>
232 + <tr onclick="wppm_open_project(<?php echo esc_attr($project->id) ?>)">
233 + <td><?php echo esc_html_e($project->project_name,'taskbuilder') ?></td>
234 + <td><span class="wppm_td_project_status" style="background-color:<?php echo esc_attr($status->bg_color);?>; color: <?php echo esc_attr($status->color); ?>"><?php echo esc_html_e($status->name,'taskbuilder') ?></span></td>
235 + <td>
236 + <?php
237 + $i=0;
238 + if(!empty(array_filter($users))){
239 + foreach($users as $user){
240 + $i++;
241 + if( $i <= 4 ){
242 + $user_info = get_user_by('id', $user );
243 + if(!empty($user_info)){
244 + ?>
245 + <a href="#" title="<?php echo esc_html_e($user_info->display_name) ?>">
246 + <?php echo get_avatar($user_info->ID, 25, "mysteryman");?>
247 + </a> <?php
380 248 }
381 - }
382 - }
383 - ?>
384 - <tr onclick="if(link)wppm_open_project(<?php echo esc_attr($project->id) ?>)">
385 - <td class="bulk-selector" onmouseover="link=false;" onmouseout="link=true;">
386 - <div class="wppm-pl-item-selector">
387 - <div class="checkbox-container">
388 - <input id="wppm_bulk_select_<?php echo esc_attr($project->id) ?>" class="wppm-bulk-select" type="checkbox" onchange="wppm_bulk_item_select_change();" value="<?php echo esc_attr( $project->id ); ?>"/>
389 - <label for="wppm_bulk_select_<?php echo esc_attr($project->id) ?>"></label>
390 - </div>
391 - </div>
392 - </td>
393 - <td onmouseover="link=true;"><?php echo esc_html_e($project->project_name,'taskbuilder') ?></td>
394 - <td onmouseover="link=true;"><span class="wppm_td_project_status" style="background-color:<?php echo esc_attr($status->bg_color);?>; color: <?php echo esc_attr($status->color); ?>"><?php echo esc_html_e($status->name,'taskbuilder') ?></span></td>
395 - <td onmouseover="link=true;">
396 - <?php
397 - $i=0;
398 - if(!empty(array_filter($users))){
399 - foreach($users as $user){
400 - $i++;
401 - if( $i <= 4 ){
402 - $user_info = get_user_by('id', $user );
403 - if(!empty($user_info)){
404 - ?>
405 - <a href="#" title="<?php echo esc_html_e($user_info->display_name) ?>">
406 - <?php echo get_avatar($user_info->ID, 25, "mysteryman");?>
407 - </a> <?php
408 - }
409 - }
410 249 }
411 - } else{
412 - _e('None','wp_projects');
413 250 }
414 - if($i > 4){
415 - ?>
416 - <a href="#" class="wppm_avatar">
417 - <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
418 - </a>
419 - <?php } ?>
420 - </td>
421 - <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($category) ? esc_html_e($category,'taskbuilder'): "" ?></td>
422 - <?php if($wppm_default_project_date==1){
423 - ?>
424 - <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
425 - <?php
426 - if(!empty($proj_end_date) && $project->status!=4 && $proj_end_date < $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) {
427 - $style = "color:#FF0000";
428 - } else {
429 - $style = "color:#2C3E50";
430 - } ?>
431 - <td onmouseover="link=true;" class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></span></td>
251 + } else{
252 + _e('None','wp_projects');
253 + }
254 + if($i > 4){
255 + ?>
256 + <a href="#" class="wppm_avatar">
257 + <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
258 + </a>
432 259 <?php } ?>
433 - <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
434 - <td onmouseover="link=true;" class="wppm_delete_action">
435 - <?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',esc_attr($project->id))) || $wppm_current_user_capability == 'wppm_admin' || ($proejctdata['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') )? "display:inline":"display:none"; ?>
436 - <span style="<?php echo esc_attr($style); ?>" onclick="wppm_delete_project(<?php echo esc_attr($project->id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>
437 - <?php ?>
438 - </td>
439 - </tr>
440 - <?php
441 - }
260 + </td>
261 + <td class="wppm_table_td"><?php echo isset($category) ? esc_html_e($category,'taskbuilder'): "" ?></td>
262 + <?php if($wppm_default_project_date==1){ ?>
263 + <td class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
264 + <?php $style = ($project->status!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
265 + <td class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></td></span>
266 + <?php } ?>
267 + <td class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
268 + <td class="wppm_delete_action">
269 + <?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',esc_attr($project->id))))? "display:inline":"display:none"; ?>
270 + <span style="<?php echo esc_attr($style); ?>" onclick="wppm_delete_project(<?php echo esc_attr($project->id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>
271 + <?php ?>
272 + </td>
273 + </tr>
274 + <?php
442 275 }
443 - ?>
444 - </tbody>
445 - </table>
446 - <?php
447 - $total_pages=ceil($totalrows/$proj_per_page);
448 - $current_page=$page_no+1;
449 - $prev_page_no=$current_page-1;
450 - $prev_class=($prev_page_no==0)?'disabled':'';
451 - $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;
452 - $next_class=($total_pages==$current_page)?'disabled':'';
453 - ?>
454 - <div class="wppm_project_result" style="<?php echo esc_attr($total_pages==0)? '':'display: none;';?>"><?php echo esc_html_e('Your search request returned no results.','taskbuilder');?></div>
455 - <hr style="<?php echo esc_attr($total_pages==0)? '':'display: none;';?>">
276 + }
277 + ?>
278 + </tbody>
279 + </table>
280 + <?php
281 + $total_pages=ceil($totalrows/$proj_per_page);
282 + $current_page=$page_no+1;
283 + $prev_page_no=$current_page-1;
284 + $prev_class=($prev_page_no==0)?'disabled':'';
285 + $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;
286 + $next_class=($total_pages==$current_page)?'disabled':'';
287 + ?>
288 + <div class="wppm_project_result" style="<?php echo esc_attr($total_pages==0)? '':'display: none;';?>"><?php echo esc_html_e('Your search request returned no results.','taskbuilder');?></div>
289 + <hr style="<?php echo esc_attr($total_pages==0)? '':'display: none;';?>">
290 + </div>
291 + <div class="row wppm_proj_pagination_container">
292 + <div class="col-sm-4">
293 + <?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;<?php echo esc_html($total_projects) ?>&nbsp;<?php echo esc_html_e('of','taskbuilder') ?>&nbsp;<?php echo esc_html($totalrows) ?>&nbsp;<?php echo esc_html_e('Projects','taskbuilder')?>
456 294 </div>
457 - <div class="row wppm_proj_pagination_container">
458 - <div class="col-sm-4">
459 - <?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;<?php echo esc_html($total_projects) ?>&nbsp;<?php echo esc_html_e('of','taskbuilder') ?>&nbsp;<?php echo esc_html($totalrows) ?>&nbsp;<?php echo esc_html_e('Projects','taskbuilder')?>
295 + <div class="col-sm-4">
296 + <div class="wppm_proj_pagination" style="<?php echo esc_attr($total_pages==0)? "display:none;":"display:flex;"?>">
297 + <span class="wppm-pagination-txt">
298 + <span><?php echo esc_html($current_page); ?>&nbsp;<?php echo esc_html_e('of','taskbuilder');?>&nbsp;<?php echo esc_html($total_pages); ?>&nbsp;<?php echo esc_html_e('Page','taskbuilder'); ?></span>
299 + </span>
300 + <span
301 + <?php echo esc_html($prev_class) ?>
302 + style="<?php echo (isset($prev_class) && esc_attr($prev_class) == 'disabled') ? 'display:none;':'display:block;'?>">
303 + <a class="wppm_pagination_prev" onclick="return wppm_load_prev_page(<?php echo esc_attr($prev_page_no) ?>,<?php echo esc_attr($page_no) ?>,'<?php echo esc_attr($sort_by)?>','<?php echo esc_attr($order) ?>');"><?php echo esc_html_e('PREV','taskbuilder');?></a>
304 + </span>
305 + <span
306 + <?php echo esc_attr($next_class) ?>
307 + style="<?php echo (isset($next_class) && $next_class == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;">
308 + <a class="wppm_pagination_next" onclick="return wppm_load_next_page('<?php echo esc_attr($next_page_no) ?>','<?php echo esc_attr($page_no) ?>','<?php echo esc_attr($sort_by)?>','<?php echo esc_attr($order) ?>');"><?php echo esc_html_e('NEXT','taskbuilder');?></a>
309 + </span>
460 310 </div>
461 - <div class="col-sm-4">
462 - <div class="wppm_proj_pagination" style="<?php echo esc_attr($total_pages==0)? "display:none;":"display:flex;"?>">
463 - <span class="wppm-pagination-txt">
464 - <span><?php echo esc_html($current_page); ?>&nbsp;<?php echo esc_html_e('of','taskbuilder');?>&nbsp;<?php echo esc_html($total_pages); ?>&nbsp;<?php echo esc_html_e('Page','taskbuilder'); ?></span>
465 - </span>
466 - <span
467 - <?php echo esc_html($prev_class) ?>
468 - style="<?php echo (isset($prev_class) && esc_attr($prev_class) == 'disabled') ? 'display:none;':'display:block;'?>">
469 - <a class="wppm_pagination_prev" onclick="return wppm_load_prev_page(<?php echo esc_attr($prev_page_no) ?>,<?php echo esc_attr($page_no) ?>,'<?php echo esc_attr($sort_by)?>','<?php echo esc_attr($order) ?>');"><?php echo esc_html_e('PREV','taskbuilder');?></a>
470 - </span>
471 - <span
472 - <?php echo esc_attr($next_class) ?>
473 - style="<?php echo (isset($next_class) && $next_class == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;">
474 - <a class="wppm_pagination_next" onclick="return wppm_load_next_page('<?php echo esc_attr($next_page_no) ?>','<?php echo esc_attr($page_no) ?>','<?php echo esc_attr($sort_by)?>','<?php echo esc_attr($order) ?>');"><?php echo esc_html_e('NEXT','taskbuilder');?></a>
475 - </span>
476 - </div>
477 - </div>
478 311 </div>
479 312 </div>
480 313 </div>
481 314 </form>
@@ -541,22 +374,8 @@
541 374 }
542 375 });
543 376 });
544 377 });
545 - /**
546 - * Bulk item selector change
547 - */
548 -function wppm_bulk_item_select_change() {
549 - jQuery("#wppm-bulk-actions-btn").show();
550 - var items = jQuery(".wppm-bulk-select:checked");
551 - var checked = items.length === 0 ? false : true;
552 - if(checked){
553 - jQuery(".wppm-bulk-selector").prop("checked", checked);
554 - }else{
555 - jQuery("#wppm-bulk-actions-btn").hide();
556 - jQuery(".wppm-bulk-selector").prop("checked", false);
557 - }
558 -}
559 378 </script>
560 379 <?php
561 380 add_action('wp_footer', 'wppm_page_inline_script', 999999999999999999);
562 381 do_action('wppm_after_shortcode_loaded');