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 / projects_list.php

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

391 lines 26.0 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 $status = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses" );
7 $categories = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_project_categories" );
8 $appearance_settings = get_option("wppm-ap-project-list");
9 $proj_per_page = 20;
10 $page_no = (isset($_POST['page_no'])) ? intval(sanitize_text_field($_POST['page_no'])): '0';
11 $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : '';
12 $order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :"ASC";
13 $sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):"project_name";
14 $filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : "all";
15 $current_date = date('Y-m-d');
16 $wppm_pl_filter = "1=1";
17 $filters = array(
18 'sort_by' => $sort_by,
19 'order' => $order,
20 'search' => $search_tag,
21 'filter'=>$filter_by
22 );
23 $pl_filters = isset( $_COOKIE['wppm_proj_filters'] ) ? sanitize_text_field( wp_unslash( $_COOKIE['wppm_proj_filters'] ) ) : $filters;
24 if(!is_array($pl_filters)){
25 $pl_filters = json_decode($pl_filters);
26 $pl_filters_arr = (array) $pl_filters;
27 } else{
28 $pl_filters_arr = $filters;
29 }
30 $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : $pl_filters_arr['search'];
31 $order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :$pl_filters_arr['order'];
32 $sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):$pl_filters_arr['sort_by'];
33 $filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : $pl_filters_arr['filter'];
34 if($sort_by == ""){
35 $sort_by = 'project_name';
36 }
37 $filters = array(
38 'sort_by' => $sort_by,
39 'order' => $order,
40 'search'=>$search_tag,
41 'filter'=>$filter_by
42 );
43 setcookie('wppm_proj_filters',wp_json_encode( $filters ),time() + 3600);
44 if($pl_filters_arr['sort_by']=='status'){
45 $sort_by = 'proj_statuses.name';
46 }
47 if($pl_filters_arr['sort_by']=='category'){
48 $sort_by = 'proj_categories.name';
49 }
50 if($pl_filters_arr['sort_by']=='start_date'){
51 $sort_by = 'start_date';
52 }
53 if($pl_filters_arr['sort_by']=='end_date'){
54 $sort_by = 'end_date';
55 }
56 if($sort_by=='category'){
57 $sort_by = 'proj_categories.name';
58 }
59 if($filter_by=='completed'){
60 $wppm_pl_filter = "status='4'";
61 }elseif($filter_by=='overdue'){
62 $wppm_pl_filter = "status!='4' AND (CAST(end_date AS DATE)) < '$current_date'";
63 }elseif($filter_by == 'unassigned'){
64 $wppm_pl_filter = "users=''";
65 }elseif($filter_by == 'new'){
66 $wppm_pl_filter = "status='1'";
67 }elseif($filter_by == 'inprogress'){
68 $wppm_pl_filter = "status='2'";
69 }elseif($filter_by == 'hold'){
70 $wppm_pl_filter = "status='3'";
71 }elseif($filter_by == 'mine'){
72 $wppm_pl_filter = "(FIND_IN_SET('$current_user->ID',users)>0)";
73 }
74 $wppm_project_time = get_option('wppm_project_time');
75 $wppm_default_project_date = get_option('wppm_default_project_date');
76 $sort_by = apply_filters('wppm_project_list_sort_by_query',$sort_by);
77 $order = apply_filters('wppm_project_list_order_query',$order);
78 $search_tag_text = '%'.$search_tag.'%';
79 if(!empty($search_tag)){
80 $search_tag_text = '%'.$search_tag.'%';
81 $query = ("SELECT Project.*
82 FROM {$wpdb->prefix}wppm_project AS Project
83 Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
84 Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
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')
86 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
87 ");
88 if($current_user->has_cap('manage_options')){
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'))";
90 }else{
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))";
92 }
93 }else{
94 if($sort_by=='project_name'|| $sort_by=='start_date' || $sort_by=='end_date'){
95 $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
96 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
97 ");
98 } else{
99 $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
100 Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
101 Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
102 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
103 ");
104 }
105 if($current_user->has_cap('manage_options')){
106 $where = " where $wppm_pl_filter";
107 }else{
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)))";
109 }
110 }
111 $no_of_rows = ( "SELECT count(*) FROM ($query");
112 $no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows,$wppm_pl_filter,$search_tag);
113 $where = apply_filters('wppm_project_list_query_where',$where, $wppm_pl_filter,$search_tag);
114 $query .= $where." Group by Project.id ORDER BY $sort_by $order";
115 $no_of_rows .= $where." Group by Project.id) AS Project";
116 $totalrows = $wpdb->get_var( $no_of_rows );
117 $query = apply_filters('wppm_project_list_query',$query);
118 $limit_start=$page_no*$proj_per_page;
119 $limit="\n LIMIT ".$limit_start.",".$proj_per_page." ";
120 $query = $query.$limit;
121 $wppm_fillter = $wpdb->get_results($query);
122 ?>
123 <form id="wppm_project_list_frm">
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>
153 </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>
157 </div>
158 </div>
159 </div>
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>
197 <?php
198 $total_projects=0;
199 $users = array();
200 if(!empty($wppm_fillter)){
201 foreach( $wppm_fillter as $project ){
202 $total_projects++;
203 $status = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id=$project->status" );
204 $users = explode(",",$project->users);
205 if(isset($project->cat_id)){
206 $category = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_categories where id=$project->cat_id" );
207 }
208 if(isset($project->id)){
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 ");
211 }else{
212 $query =("SELECT count(*) FROM
213 ( SELECT Task.*
214 FROM {$wpdb->prefix}wppm_task AS Task
215 Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
216 Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
217 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id
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");
219 $no_of_tasks = $wpdb->get_var($query);
220 }
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){
226 $psDate = new DateTime($project->start_date);
227 $peDate = new DateTime($project->end_date);
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
248 }
249 }
250 }
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>
259 <?php } ?>
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
275 }
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')?>
294 </div>
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>
310 </div>
311 </div>
312 </div>
313 </div>
314 </form>
315 <style>
316 #wppm_project_table tr:nth-child(even) td{
317 background-color:<?php echo esc_attr($appearance_settings['list-item-even-background-color'])?>!important;
318 color:<?php echo esc_attr($appearance_settings['list-item-even-text-color'])?>!important;
319 }
320 #wppm_project_table tr:nth-child(odd) td{
321 background-color:<?php echo esc_attr($appearance_settings['list-item-odd-background-color'])?>!important;
322 color:<?php echo esc_attr($appearance_settings['list-item-odd-text-color'])?>!important;
323 }
324 #wppm_project_table tr:hover td{
325 background-color:<?php echo esc_attr($appearance_settings['list-item-hover-background-color'])?>!important;
326 }
327 #wppm_project_table tr:hover td{
328 color: <?php echo esc_attr($appearance_settings['list-item-hover-text-color'])?>!important;
329 }
330 </style>
331 <script type="text/javascript">
332 jQuery( document ).ready( function( jQuery ) {
333 jQuery("input[name='wppm_project_search_filter']").keypress(function(e) {
334 //Enter key
335 if (e.which == 13) {
336 wppm_project_search_filter();
337 }
338 });
339 jQuery("#wppm_proj_name_th").hover(function(){
340 jQuery('#wppm_chevron_sort_up_project_name_img').show();
341 jQuery('#wppm_chevron_sort_down_project_name_img').hide();
342 });
343 jQuery("#wppm_project_status_th").hover(function(){
344 jQuery('#wppm_chevron_sort_up_project_status_img').show();
345 jQuery('#wppm_chevron_sort_down_project_status_img').hide();
346 });
347 jQuery("#wppm_project_category_th").hover(function(){
348 jQuery('#wppm_chevron_sort_up_project_cat_img').show();
349 jQuery('#wppm_chevron_sort_down_project_cat_img').hide();
350 });
351 jQuery("#wppm_project_start_date_th").hover(function(){
352 jQuery('#wppm_chevron_sort_up_project_start_date_img').show();
353 jQuery('#wppm_chevron_sort_down_project_start_date_img').hide();
354 });
355 jQuery("#wppm_project_end_date_th").hover(function(){
356 jQuery('#wppm_chevron_sort_up_project_end_date_img').show();
357 jQuery('#wppm_chevron_sort_down_project_end_date_img').hide();
358 });
359 jQuery(".wppm_delete_action").on("click", function(e){
360 e.preventDefault();
361 return false;
362 });
363
364 jQuery('#wppm_project_list_frm').on('submit', function (e) {
365 var dataform = new FormData(jQuery('#wppm_project_list_frm')[0]);
366 jQuery.ajax({
367 url: wppm_admin.ajax_url,
368 type: 'POST',
369 data: dataform,
370 processData: false,
371 contentType: false,
372 success: function () {
373 alert('form was submitted');
374 }
375 });
376 });
377 });
378 </script>
379 <?php
380 add_action('wp_footer', 'wppm_page_inline_script', 999999999999999999);
381 do_action('wppm_after_shortcode_loaded');
382 if(!function_exists('wppm_page_inline_script')) {
383 function wppm_page_inline_script() { ?>
384 <script type="text/javascript">
385 jQuery( document ).ready( function( jQuery ) {
386 wppm_get_project_list();
387 });
388 </script>
389 <?php }
390 }
391 ?>