PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 2.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v2.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/projects_list.php +220 -386 5.0.02.0.6 View file →
@@ -4,11 +4,8 @@
4 4 }
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 -$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 8 $proj_per_page = 20;
12 9 $page_no = (isset($_POST['page_no'])) ? intval(sanitize_text_field($_POST['page_no'])): '0';
13 10 $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : '';
14 11 $order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :"ASC";
@@ -15,16 +12,8 @@
15 12 $sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):"project_name";
16 13 $filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : "all";
17 14 $current_date = date('Y-m-d');
18 15 $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 16 $filters = array(
28 17 'sort_by' => $sort_by,
29 18 'order' => $order,
30 19 'search' => $search_tag,
@@ -65,79 +54,99 @@
65 54 }
66 55 if($sort_by=='category'){
67 56 $sort_by = 'proj_categories.name';
68 57 }
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'){
58 +if($filter_by=='completed'){
75 59 $wppm_pl_filter = "status='4'";
76 60 }elseif($filter_by=='overdue'){
77 61 $wppm_pl_filter = "status!='4' AND (CAST(end_date AS DATE)) < '$current_date'";
78 62 }elseif($filter_by == 'unassigned'){
79 63 $wppm_pl_filter = "users=''";
80 -}elseif($filter_by == '1'){
64 +}elseif($filter_by == 'new'){
81 65 $wppm_pl_filter = "status='1'";
82 -}elseif($filter_by == '2'){
66 +}elseif($filter_by == 'inprogress'){
83 67 $wppm_pl_filter = "status='2'";
84 -}elseif($filter_by == '3'){
68 +}elseif($filter_by == 'hold'){
85 69 $wppm_pl_filter = "status='3'";
86 70 }elseif($filter_by == 'mine'){
87 71 $wppm_pl_filter = "(FIND_IN_SET('$current_user->ID',users)>0)";
88 72 }
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 73 $wppm_project_time = get_option('wppm_project_time');
97 74 $wppm_default_project_date = get_option('wppm_default_project_date');
98 -$sort_by = apply_filters('wppm_project_list_sort_by_query',$sort_by);
99 -$order = apply_filters('wppm_project_list_order_query',$order);
100 -$search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';
101 75 if(!empty($search_tag)){
102 - $search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';
103 - $query = ("SELECT Project.*
104 - FROM {$wpdb->prefix}wppm_project AS Project
105 - Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
106 - Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
107 - 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 - Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
109 - ");
110 - if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
111 - $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'))";
76 + $search_tag_text = '%'.$search_tag.'%';
77 + if($current_user->has_cap('manage_options')){
78 + $query = ("SELECT Project.*
79 + FROM {$wpdb->prefix}wppm_project AS Project
80 + Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
81 + Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
82 + Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
83 + 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'))
84 + Group by Project.id ORDER BY $sort_by $order");
85 + $no_of_rows = ("SELECT count(*) FROM
86 + (SELECT Project.*
87 + FROM {$wpdb->prefix}wppm_project AS Project
88 + Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
89 + Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
90 + Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
91 + 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')) Group by Project.id) AS Project" );
112 92 }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')";
93 + $query = ("SELECT Project.*
94 + FROM {$wpdb->prefix}wppm_project AS Project
95 + Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
96 + Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
97 + Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
98 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
99 + 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))
100 + Group by Project.id ORDER BY $sort_by $order");
101 + $no_of_rows = ("SELECT count(*) FROM
102 + (SELECT Project.*
103 + FROM {$wpdb->prefix}wppm_project AS Project
104 + Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
105 + Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
106 + Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
107 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
108 + 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)) Group by Project.id) AS Project" );
114 109 }
115 110 }else{
116 - if($sort_by=='project_name'|| $sort_by=='start_date' || $sort_by=='end_date'){
111 + if($current_user->has_cap('manage_options')){
112 + if($sort_by=='project_name'|| $sort_by=='start_date' || $sort_by=='end_date'){
113 + $query = ( "SELECT * FROM {$wpdb->prefix}wppm_project where $wppm_pl_filter ORDER BY $sort_by $order" );
114 + $no_of_rows = ( "SELECT count(*) FROM {$wpdb->prefix}wppm_project where $wppm_pl_filter" );
115 + } else{
117 116 $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
118 - Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
119 - ");
120 - } else{
121 - $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
122 117 Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
123 118 Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
124 119 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
125 - ");
126 - }
127 - if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
128 - $where = " where $wppm_pl_filter";
120 + where $wppm_pl_filter Group by Project.id ORDER BY $sort_by $order");
121 + $no_of_rows = ( "SELECT count(*) FROM (SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
122 + Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
123 + Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
124 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id where $wppm_pl_filter Group by Project.id) AS Project");
125 + }
129 126 }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')";
127 + if($sort_by=='project_name'|| $sort_by=='start_date' || $sort_by=='end_date'){
128 + $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
129 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
130 + 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))) Group by Project.id ORDER BY $sort_by $order ");
131 + $no_of_rows = ( "SELECT count(*) FROM (SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
132 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
133 + 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))) Group by Project.id) AS Project");
134 + } else{
135 + $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
136 + Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
137 + Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
138 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
139 + 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))) Group by Project.id ORDER BY $sort_by $order ");
140 + $no_of_rows = ( "SELECT count(*) FROM (SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
141 + Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
142 + Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
143 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
144 + 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))) Group by Project.id) AS Project");
145 + }
131 146 }
132 147 }
133 -$no_of_rows = ( "SELECT count(*) FROM ($query");
134 -$no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows,$wppm_pl_filter,$search_tag);
135 -$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 -$query .= $where." Group by Project.id ORDER BY $sort_by $order";
139 -$no_of_rows .= $where." Group by Project.id) AS Project";
148 +$no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows);
140 149 $totalrows = $wpdb->get_var( $no_of_rows );
141 150 $query = apply_filters('wppm_project_list_query',$query);
142 151 $limit_start=$page_no*$proj_per_page;
143 152 $limit="\n LIMIT ".$limit_start.",".$proj_per_page." ";
@@ -142,127 +151,82 @@
142 151 $limit_start=$page_no*$proj_per_page;
143 152 $limit="\n LIMIT ".$limit_start.",".$proj_per_page." ";
144 153 $query = $query.$limit;
145 154 $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 155 ?>
155 156 <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 } ?>
157 + <div id="wppm_project_list_container" class="wppm_bootstrap">
158 + <div class="row">
159 + <div class="col-sm-6" 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')){ ?>
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 } ?>
166 + </div>
167 + <div id="wppm_project_and_task_search" class="col-sm-6">
168 + <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">
169 + <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) : "" ?>">
170 + </div>
171 + </div>
172 + <div class="row">
173 + <div class="col-sm-6" id="wppm_project_filter_container">
174 + <div class="wppm-filter-item">
175 + <label for="wppm_project_filter"> <?php echo esc_html_e('Filter','taskbuilder');?></label>
176 + <select id="wppm_project_filter" name="wppm_project_filter" onchange="wppm_apply_project_filter()">
177 + <option value="all"<?php echo ($filter_by == "all")? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option>
178 + <option value="new" <?php echo ($filter_by == "new")? 'selected':""?>><?php echo esc_html_e('New','taskbuilder');?></option>
179 + <option value="inprogress" <?php echo ($filter_by == "inprogress")? 'selected':""?>><?php echo esc_html_e('In Progress','taskbuilder');?></option>
180 + <option value="hold" <?php echo ($filter_by == "hold")? 'selected':""?>><?php echo esc_html_e('Hold','taskbuilder');?></option>
181 + <option value="completed" <?php echo ($filter_by == "completed")? 'selected':""?>><?php echo esc_html_e('Completed','taskbuilder');?></option>
182 + <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo esc_html_e('Mine','taskbuilder');?></option>
183 + <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo esc_html_e('Unassigned','taskbuilder');?></option>
184 + <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo esc_html_e('Overdue','taskbuilder');?></option>
185 + </select>
166 186 </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>
187 + <div class="wppm_display_submit">
188 + <div class="wppm-filter-actions">
189 + <span class="wppm-link" onclick="wppm_pl_reset_filter()"> <?php echo esc_html_e('Reset','taskbuilder');?></span>
213 190 </div>
214 191 </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 192 </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>
193 + </div>
194 + <div class="table-responsive">
195 + <table id="wppm_project_table" class="wppm_table table">
196 + <tr>
197 + <th class="wppm_table_header">
198 + <span id="wppm_proj_name_th"><?php echo esc_html_e('Project','taskbuilder'); ?></span>
199 + <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">
200 + <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">
201 + </th>
202 + <th class="wppm_table_header">
203 + <span id="wppm_project_status_th"><?php echo esc_html_e('Status','taskbuilder'); ?></span>
204 + <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">
205 + <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">
206 + </th>
207 + <th class="wppm_table_header"><?php echo esc_html_e('Users','taskbuilder'); ?></th>
208 + <th class="wppm_table_header">
209 + <span id="wppm_project_category_th"><?php echo esc_html_e('Category','taskbuilder'); ?></span>
210 + <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">
211 + <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">
212 + </th>
213 + <?php if($wppm_default_project_date==1){ ?>
214 + <th class="wppm_table_header">
215 + <span id="wppm_project_start_date_th"><?php echo esc_html_e('Start Date','taskbuilder'); ?></span>
216 + <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">
217 + <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">
218 + </th>
219 + <th class="wppm_table_header">
220 + <span id="wppm_project_end_date_th"><?php echo esc_html_e('End Date','taskbuilder'); ?></span>
221 + <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">
222 + <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">
223 + </th>
224 + <?php } ?>
225 + <th class="wppm_table_header"><?php echo esc_html_e('No. of tasks','taskbuilder'); ?></th>
226 + <th class="wppm_table_header"></th>
227 + </tr>
228 + <tbody>
265 229 <?php
266 230 $total_projects=0;
267 231 $users = array();
268 232 if(!empty($wppm_fillter)){
@@ -267,20 +231,16 @@
267 231 $users = array();
268 232 if(!empty($wppm_fillter)){
269 233 foreach( $wppm_fillter as $project ){
270 234 $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'" );
235 + $status = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id=$project->status" );
274 236 $users = explode(",",$project->users);
275 - $pid= esc_sql($project->id);
276 237 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'" );
238 + $category = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_categories where id=$project->cat_id" );
279 239 }
280 240 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' ");
241 + if($current_user->has_cap('manage_options')){
242 + $no_of_tasks = $wpdb->get_var("SELECT count(*) FROM {$wpdb->prefix}wppm_task WHERE project=$project->id ");
283 243 }else{
284 244 $query =("SELECT count(*) FROM
285 245 ( SELECT Task.*
286 246 FROM {$wpdb->prefix}wppm_task AS Task
@@ -286,216 +246,104 @@
286 246 FROM {$wpdb->prefix}wppm_task AS Task
287 247 Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
288 248 Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
289 249 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");
250 + 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 251 $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 252 }
295 - if($wppm_project_time == 1){
253 + }
254 + if($wppm_project_time == 1){
255 + $proj_start_date = $project->start_date;
256 + $proj_end_date = $project->end_date;
257 + } elseif($wppm_project_time == 0){
296 258 $psDate = new DateTime($project->start_date);
297 259 $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');
260 + $proj_start_date = $psDate->format('Y-m-d');
261 + $proj_end_date = $peDate->format('Y-m-d');
262 + }
263 + ?>
264 + <tr onclick="wppm_open_project(<?php echo esc_attr($project->id) ?>)">
265 + <td><?php echo esc_html_e($project->project_name,'taskbuilder') ?></td>
266 + <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>
267 + <td>
268 + <?php
269 + $i=0;
270 + if(!empty(array_filter($users))){
271 + foreach($users as $user){
272 + $i++;
273 + if( $i <= 4 ){
274 + $user_info = get_user_by('id', $user );
275 + if(!empty($user_info)){
276 + ?>
277 + <a href="#" title="<?php echo esc_html_e($user_info->display_name) ?>">
278 + <?php echo get_avatar($user_info->ID, 25, "mysteryman");?>
279 + </a> <?php
380 280 }
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 281 }
411 - } else{
412 - _e('None','wp_projects');
413 282 }
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>
283 + } else{
284 + _e('None','wp_projects');
285 + }
286 + if($i > 4){
287 + ?>
288 + <a href="#" class="wppm_avatar">
289 + <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
290 + </a>
432 291 <?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 - }
292 + </td>
293 + <td class="wppm_table_td"><?php echo isset($category) ? esc_html_e($category,'taskbuilder'): "" ?></td>
294 + <?php if($wppm_default_project_date==1){ ?>
295 + <td class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
296 + <td class="wppm_table_td"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></td>
297 + <?php } ?>
298 + <td class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
299 + <td class="wppm_delete_action">
300 + <?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"; ?>
301 + <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>
302 + <?php ?>
303 + </td>
304 + </tr>
305 + <?php
442 306 }
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;';?>">
307 + }
308 + ?>
309 + </tbody>
310 + </table>
311 + <?php
312 + $total_pages=ceil($totalrows/$proj_per_page);
313 + $current_page=$page_no+1;
314 + $prev_page_no=$current_page-1;
315 + $prev_class=($prev_page_no==0)?'disabled':'';
316 + $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;
317 + $next_class=($total_pages==$current_page)?'disabled':'';
318 + ?>
319 + <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>
320 + <hr style="<?php echo esc_attr($total_pages==0)? '':'display: none;';?>">
321 + </div>
322 + <div class="row wppm_proj_pagination_container">
323 + <div class="col-sm-4">
324 + <?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 325 </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')?>
326 + <div class="col-sm-4">
327 + <div class="wppm_proj_pagination" style="<?php echo esc_attr($total_pages==0)? "display:none;":"display:flex;"?>">
328 + <span class="wppm-pagination-txt">
329 + <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>
330 + </span>
331 + <span
332 + <?php echo esc_html($prev_class) ?>
333 + style="<?php echo (isset($prev_class) && esc_attr($prev_class) == 'disabled') ? 'display:none;':'display:block;'?>">
334 + <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>
335 + </span>
336 + <span
337 + <?php echo esc_attr($next_class) ?>
338 + style="<?php echo (isset($next_class) && $next_class == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;">
339 + <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>
340 + </span>
460 341 </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 342 </div>
479 343 </div>
480 344 </div>
481 345 </form>
482 -<style>
483 - #wppm_project_table tr:nth-child(even) td{
484 - background-color:<?php echo esc_attr($appearance_settings['list-item-even-background-color'])?>!important;
485 - color:<?php echo esc_attr($appearance_settings['list-item-even-text-color'])?>!important;
486 - }
487 - #wppm_project_table tr:nth-child(odd) td{
488 - background-color:<?php echo esc_attr($appearance_settings['list-item-odd-background-color'])?>!important;
489 - color:<?php echo esc_attr($appearance_settings['list-item-odd-text-color'])?>!important;
490 - }
491 - #wppm_project_table tr:hover td{
492 - background-color:<?php echo esc_attr($appearance_settings['list-item-hover-background-color'])?>!important;
493 - }
494 - #wppm_project_table tr:hover td{
495 - color: <?php echo esc_attr($appearance_settings['list-item-hover-text-color'])?>!important;
496 - }
497 -</style>
498 346 <script type="text/javascript">
499 347 jQuery( document ).ready( function( jQuery ) {
500 348 jQuery("input[name='wppm_project_search_filter']").keypress(function(e) {
501 349 //Enter key
@@ -541,22 +389,8 @@
541 389 }
542 390 });
543 391 });
544 392 });
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 393 </script>
560 394 <?php
561 395 add_action('wp_footer', 'wppm_page_inline_script', 999999999999999999);
562 396 do_action('wppm_after_shortcode_loaded');