| @@ -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_deafault_time_duration_project = get_option('wppm_display_time_duration_project'); | |
| 11 | 9 | $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true ); |
| 12 | 10 | $proj_per_page = 20; |
| 13 | 11 | $page_no = (isset($_POST['page_no'])) ? intval(sanitize_text_field($_POST['page_no'])): '0'; |
| 14 | 12 | $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : ''; |
| @@ -14,18 +12,10 @@ | ||
| 14 | 12 | $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : ''; |
| 15 | 13 | $order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :"ASC"; |
| 16 | 14 | $sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):"project_name"; |
| 17 | 15 | $filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : "all"; |
| 18 | -$current_date = wp_date('Y-m-d'); | |
| 16 | +$current_date = date('Y-m-d'); | |
| 19 | 17 | $wppm_pl_filter = "1=1"; |
| 20 | -$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj'); | |
| 21 | -$cu_id = esc_sql($current_user->ID); | |
| 22 | -$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend'); | |
| 23 | -if(!empty($wppm_hide_proj_statuses_from_frontend)){ | |
| 24 | - $wppm_hide_proj_statuses_from_frontend = explode(",",$wppm_hide_proj_statuses_from_frontend); | |
| 25 | -} else { | |
| 26 | - $wppm_hide_proj_statuses_from_frontend = ''; | |
| 27 | -} | |
| 28 | 18 | $filters = array( |
| 29 | 19 | 'sort_by' => $sort_by, |
| 30 | 20 | 'order' => $order, |
| 31 | 21 | 'search' => $search_tag, |
| @@ -51,53 +41,38 @@ | ||
| 51 | 41 | 'search'=>$search_tag, |
| 52 | 42 | 'filter'=>$filter_by |
| 53 | 43 | ); |
| 54 | 44 | setcookie('wppm_proj_filters',wp_json_encode( $filters ),time() + 3600); |
| 55 | - | |
| 56 | -$allowed_sort_by = [ | |
| 57 | - 'project_name' => 'project_name', | |
| 58 | - 'status' => 'proj_statuses.name', | |
| 59 | - 'category' => 'proj_categories.name', | |
| 60 | - 'start_date' => 'start_date', | |
| 61 | - 'end_date' => 'end_date', | |
| 62 | - 'TIMESTAMPDIFF(SECOND, start_date, end_date)'=> 'TIMESTAMPDIFF(SECOND, start_date, end_date)' | |
| 63 | -]; | |
| 64 | -// Resolve sort_by safely | |
| 65 | -$sort_key = isset($pl_filters_arr['sort_by']) | |
| 66 | - ? sanitize_text_field($pl_filters_arr['sort_by']) | |
| 67 | - : 'project_name'; | |
| 68 | - | |
| 69 | -$sort_by = $allowed_sort_by[$sort_key] ?? 'project_name'; | |
| 70 | -$order = ( isset($pl_filters_arr['order']) && strtoupper($pl_filters_arr['order']) === 'ASC' ) | |
| 71 | - ? 'ASC' | |
| 72 | - : 'DESC'; | |
| 73 | -if($filter_by=='all'){ | |
| 74 | - if($wppm_hide_completed_status_proj == 0){ | |
| 75 | - $wppm_pl_filter = "status!='4'"; | |
| 76 | - } | |
| 45 | +if($pl_filters_arr['sort_by']=='status'){ | |
| 46 | + $sort_by = 'proj_statuses.name'; | |
| 77 | 47 | } |
| 78 | -if($filter_by=='4'){ | |
| 48 | +if($pl_filters_arr['sort_by']=='category'){ | |
| 49 | + $sort_by = 'proj_categories.name'; | |
| 50 | +} | |
| 51 | +if($pl_filters_arr['sort_by']=='start_date'){ | |
| 52 | + $sort_by = 'start_date'; | |
| 53 | +} | |
| 54 | +if($pl_filters_arr['sort_by']=='end_date'){ | |
| 55 | + $sort_by = 'end_date'; | |
| 56 | +} | |
| 57 | +if($sort_by=='category'){ | |
| 58 | + $sort_by = 'proj_categories.name'; | |
| 59 | +} | |
| 60 | +if($filter_by=='completed'){ | |
| 79 | 61 | $wppm_pl_filter = "status='4'"; |
| 80 | 62 | }elseif($filter_by=='overdue'){ |
| 81 | 63 | $wppm_pl_filter = "status!='4' AND (CAST(end_date AS DATE)) < '$current_date'"; |
| 82 | 64 | }elseif($filter_by == 'unassigned'){ |
| 83 | 65 | $wppm_pl_filter = "users=''"; |
| 84 | -}elseif($filter_by == '1'){ | |
| 66 | +}elseif($filter_by == 'new'){ | |
| 85 | 67 | $wppm_pl_filter = "status='1'"; |
| 86 | -}elseif($filter_by == '2'){ | |
| 68 | +}elseif($filter_by == 'inprogress'){ | |
| 87 | 69 | $wppm_pl_filter = "status='2'"; |
| 88 | -}elseif($filter_by == '3'){ | |
| 70 | +}elseif($filter_by == 'hold'){ | |
| 89 | 71 | $wppm_pl_filter = "status='3'"; |
| 90 | 72 | }elseif($filter_by == 'mine'){ |
| 91 | 73 | $wppm_pl_filter = "(FIND_IN_SET('$current_user->ID',users)>0)"; |
| 92 | 74 | } |
| 93 | - | |
| 94 | -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))){ | |
| 95 | - foreach($wppm_hide_proj_statuses_from_frontend as $status){ | |
| 96 | - $wppm_pl_filter .= " AND status != '$status'"; | |
| 97 | - } | |
| 98 | -} | |
| 99 | - | |
| 100 | 75 | $wppm_project_time = get_option('wppm_project_time'); |
| 101 | 76 | $wppm_default_project_date = get_option('wppm_default_project_date'); |
| 102 | 77 | $sort_by = apply_filters('wppm_project_list_sort_by_query',$sort_by); |
| 103 | 78 | $order = apply_filters('wppm_project_list_order_query',$order); |
| @@ -113,9 +88,9 @@ | ||
| 113 | 88 | "); |
| 114 | 89 | if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){ |
| 115 | 90 | $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'))"; |
| 116 | 91 | }else{ |
| 117 | - $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')"; | |
| 92 | + $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='$current_user->ID')"; | |
| 118 | 93 | } |
| 119 | 94 | }else{ |
| 120 | 95 | if($sort_by=='project_name'|| $sort_by=='start_date' || $sort_by=='end_date'){ |
| 121 | 96 | $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project |
| @@ -130,9 +105,9 @@ | ||
| 130 | 105 | } |
| 131 | 106 | if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){ |
| 132 | 107 | $where = " where $wppm_pl_filter"; |
| 133 | 108 | }else{ |
| 134 | - $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')"; | |
| 109 | + $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='$current_user->ID')"; | |
| 135 | 110 | } |
| 136 | 111 | } |
| 137 | 112 | $no_of_rows = ( "SELECT count(*) FROM ($query"); |
| 138 | 113 | $no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows,$wppm_pl_filter,$search_tag); |
| @@ -144,22 +119,14 @@ | ||
| 144 | 119 | $limit_start=$page_no*$proj_per_page; |
| 145 | 120 | $limit="\n LIMIT ".$limit_start.",".$proj_per_page." "; |
| 146 | 121 | $query = $query.$limit; |
| 147 | 122 | $wppm_fillter = $wpdb->get_results($query); |
| 148 | -$new_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(1)."'" ); | |
| 149 | -$inp_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(2)."'" ); | |
| 150 | -$hold_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(3)."'" ); | |
| 151 | -$completed_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(4)."'" ); | |
| 152 | -$new_style = (!empty($new_status_name))? "display:inline" :"display:none;"; | |
| 153 | -$inp_status_style = (!empty($inp_status_name))? "display:inline" :"display:none;"; | |
| 154 | -$hold_status_style = (!empty($hold_status_name))? "display:inline" :"display:none;"; | |
| 155 | -$complete_status_style = (!empty($completed_status_name))? "display:inline" :"display:none;"; | |
| 156 | 123 | ?> |
| 157 | 124 | <form id="wppm_project_list_frm"> |
| 158 | 125 | <div id="wppm-container"> |
| 159 | 126 | <div id="wppm_project_list_container" class="wppm_bootstrap"> |
| 160 | 127 | <div class="row"> |
| 161 | - <div class="col-sm-12" id="wppm_heading_inline"> | |
| 128 | + <div class="col-sm-6" id="wppm_heading_inline"> | |
| 162 | 129 | <span class="wppm-heading-inline"> |
| 163 | 130 | <?php echo esc_html_e('Projects','taskbuilder');?> |
| 164 | 131 | </span> |
| 165 | 132 | <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?> |
| @@ -165,60 +132,62 @@ | ||
| 165 | 132 | <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?> |
| 166 | 133 | <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"> |
| 167 | 134 | <?php } ?> |
| 168 | 135 | </div> |
| 136 | + <div id="wppm_project_and_task_search" class="col-sm-6"> | |
| 137 | + <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"> | |
| 138 | + <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) : "" ?>"> | |
| 139 | + </div> | |
| 169 | 140 | </div> |
| 170 | - <div style="display:flex;justify-content:space-between;margin-top:20px;flex-wrap: wrap;"> | |
| 171 | - <div style="display:flex;flex-wrap: wrap;"> | |
| 172 | - <div id="wppm_project_filter_container"> | |
| 173 | - <div class="wppm-bulk-actions" style="margin-bottom: 10px;"> | |
| 174 | - <button | |
| 175 | - id="wppm-bulk-actions-btn" | |
| 176 | - class="wppm-button small secondary" | |
| 177 | - type="button" | |
| 178 | - style="display:none;padding:14px;font: 13px Helvetica Neue, Arial, Helvetica, sans-serif !important" | |
| 179 | - data-popover="wppm-bulk-actions"> | |
| 180 | - <?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"> | |
| 181 | - </button> | |
| 182 | - <div id="wppm-bulk-actions" class="gpopover wppm-popover-menu wppm-proj-bulk-actions"> | |
| 183 | - <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_status('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_status' ) ); ?>');"> | |
| 184 | - <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> | |
| 141 | + <div class="row"> | |
| 142 | + <div class="col-sm-6" id="wppm_project_filter_container"> | |
| 143 | + <div class="wppm-filter-item"> | |
| 144 | + <label for="wppm_project_filter"> <?php echo esc_html_e('Filter','taskbuilder');?></label> | |
| 145 | + <select id="wppm_project_filter" name="wppm_project_filter" onchange="wppm_apply_project_filter()"> | |
| 146 | + <option value="all"<?php echo ($filter_by == "all")? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option> | |
| 147 | + <option value="new" <?php echo ($filter_by == "new")? 'selected':""?>><?php echo esc_html_e('New','taskbuilder');?></option> | |
| 148 | + <option value="inprogress" <?php echo ($filter_by == "inprogress")? 'selected':""?>><?php echo esc_html_e('In Progress','taskbuilder');?></option> | |
| 149 | + <option value="hold" <?php echo ($filter_by == "hold")? 'selected':""?>><?php echo esc_html_e('Hold','taskbuilder');?></option> | |
| 150 | + <option value="completed" <?php echo ($filter_by == "completed")? 'selected':""?>><?php echo esc_html_e('Completed','taskbuilder');?></option> | |
| 151 | + <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo esc_html_e('Mine','taskbuilder');?></option> | |
| 152 | + <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo esc_html_e('Unassigned','taskbuilder');?></option> | |
| 153 | + <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo esc_html_e('Overdue','taskbuilder');?></option> | |
| 154 | + </select> | |
| 155 | + </div> | |
| 156 | + <div class="wppm_display_submit"> | |
| 157 | + <div class="wppm-filter-actions"> | |
| 158 | + <span class="wppm-link" onclick="wppm_pl_reset_filter()"> <?php echo esc_html_e('Reset','taskbuilder');?></span> | |
| 159 | + </div> | |
| 160 | + </div> | |
| 161 | + </div> | |
| 162 | + </div> | |
| 163 | + <div class="row"> | |
| 164 | + <div class="col-sm-12"> | |
| 165 | + <div class="wppm-bulk-actions"> | |
| 166 | + <button | |
| 167 | + id="wppm-bulk-actions-btn" | |
| 168 | + class="wppm-button small secondary" | |
| 169 | + type="button" | |
| 170 | + style="display:none" | |
| 171 | + data-popover="wppm-bulk-actions"> | |
| 172 | + <?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"> | |
| 173 | + </button> | |
| 174 | + <div id="wppm-bulk-actions" class="gpopover wppm-popover-menu wppm-proj-bulk-actions"> | |
| 175 | + <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_status('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_status' ) ); ?>');"> | |
| 176 | + <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> | |
| 177 | + </div> | |
| 178 | + <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_category('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_category' ) ); ?>');"> | |
| 179 | + <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> | |
| 180 | + </div> | |
| 181 | + <div class="wppm-popover-menu-item" onclick="wppm_bulk_assign_users('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');"> | |
| 182 | + <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> | |
| 183 | + </div> | |
| 184 | + <div class="wppm-popover-menu-item" onclick="wppm_bulk_delete_project('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');"> | |
| 185 | + <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> | |
| 186 | + </div> | |
| 185 | 187 | </div> |
| 186 | - <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_category('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_category' ) ); ?>');"> | |
| 187 | - <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> | |
| 188 | - </div> | |
| 189 | - <div class="wppm-popover-menu-item" onclick="wppm_bulk_assign_users('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');"> | |
| 190 | - <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> | |
| 191 | - </div> | |
| 192 | - <div class="wppm-popover-menu-item" onclick="wppm_bulk_delete_project('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');"> | |
| 193 | - <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> | |
| 194 | - </div> | |
| 195 | - </div> | |
| 196 | 188 | </div> |
| 197 | - <div class="wppm-filter-item"> | |
| 198 | - <label for="wppm_project_filter"> <?php echo esc_html_e('Filter','taskbuilder');?></label> | |
| 199 | - <select id="wppm_project_filter" name="wppm_project_filter" onchange="wppm_apply_project_filter()"> | |
| 200 | - <option value="all"<?php echo ($filter_by == "all")? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option> | |
| 201 | - <option style="<?php echo esc_attr($new_style) ?>" value="1" <?php echo ($filter_by == "1")? 'selected':""?>><?php echo esc_html($new_status_name);?></option> | |
| 202 | - <option style="<?php echo esc_attr($inp_status_style) ?>" value="2" <?php echo ($filter_by == "2")? 'selected':""?>><?php echo esc_html($inp_status_name);?></option> | |
| 203 | - <option style="<?php echo esc_attr($hold_status_style) ?>" value="3" <?php echo ($filter_by == "3")? 'selected':""?>><?php echo esc_html($hold_status_name);?></option> | |
| 204 | - <option style="<?php echo esc_attr($complete_status_style) ?>" value="4" <?php echo ($filter_by == "4")? 'selected':""?>><?php echo esc_html($completed_status_name);?></option> | |
| 205 | - <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo esc_html_e('Mine','taskbuilder');?></option> | |
| 206 | - <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo esc_html_e('Unassigned','taskbuilder');?></option> | |
| 207 | - <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo esc_html_e('Overdue','taskbuilder');?></option> | |
| 208 | - </select> | |
| 209 | - </div> | |
| 210 | - <div class="wppm_display_submit"> | |
| 211 | - <div class="wppm-filter-actions"> | |
| 212 | - <span class="wppm-link" onclick="wppm_pl_reset_filter()"> <?php echo esc_html_e('Reset','taskbuilder');?></span> | |
| 213 | - </div> | |
| 214 | - </div> | |
| 215 | 189 | </div> |
| 216 | - </div> | |
| 217 | - <div id="wppm_project_and_task_search" style="display:flex;justify-content:flex-end;"> | |
| 218 | - <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"> | |
| 219 | - <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) : "" ?>"> | |
| 220 | - </div> | |
| 221 | 190 | </div> |
| 222 | 191 | <script> |
| 223 | 192 | jQuery('#wppm-more-actions-btn, #wppm-bulk-actions-btn').gpopover({width: 200}); |
| 224 | 193 | </script> |
| @@ -224,9 +193,9 @@ | ||
| 224 | 193 | </script> |
| 225 | 194 | <div class="table-responsive"> |
| 226 | 195 | <table id="wppm_project_table" class="wppm_table table"> |
| 227 | 196 | <tr> |
| 228 | - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>" onchange="wppm_bulk_select_change()"> | |
| 197 | + <th style="width: 45px;" onchange="wppm_bulk_select_change()"> | |
| 229 | 198 | <div class="checkbox-container"> |
| 230 | 199 | <input id="wppm_bulk_select_option" class="wppm-bulk-selector" type="checkbox" onchange="wppm_bulk_select_change();"/> |
| 231 | 200 | <label for="wppm_bulk_select_option"></label> |
| 232 | 201 | </div> |
| @@ -247,9 +216,9 @@ | ||
| 247 | 216 | <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> |
| 248 | 217 | <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"> |
| 249 | 218 | <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"> |
| 250 | 219 | </th> |
| 251 | - <?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0){ ?> | |
| 220 | + <?php if($wppm_default_project_date==1){ ?> | |
| 252 | 221 | <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"> |
| 253 | 222 | <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> |
| 254 | 223 | <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"> |
| 255 | 224 | <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"> |
| @@ -258,16 +227,9 @@ | ||
| 258 | 227 | <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> |
| 259 | 228 | <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"> |
| 260 | 229 | <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"> |
| 261 | 230 | </th> |
| 262 | - <?php } | |
| 263 | - if( $wppm_deafault_time_duration_project==1){ ?> | |
| 264 | - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"> | |
| 265 | - <span id="wppm_project_time_duration_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Duration','taskbuilder'); ?></span> | |
| 266 | - <img width="16" height="16" onclick="wppm_sort_up_project_list('TIMESTAMPDIFF(SECOND, start_date, end_date)','ASC')" style = "<?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, start_date, end_date)' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_time_duration_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon"> | |
| 267 | - <img width="16" height="16" onclick="wppm_sort_up_project_list('TIMESTAMPDIFF(SECOND, start_date, end_date)','DESC')" style = "<?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, start_date, end_date)' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_time_duration_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon"> | |
| 268 | - </th> | |
| 269 | - <?php }?> | |
| 231 | + <?php } ?> | |
| 270 | 232 | <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> |
| 271 | 233 | <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"></th> |
| 272 | 234 | </tr> |
| 273 | 235 | <tbody> |
| @@ -277,9 +239,8 @@ | ||
| 277 | 239 | if(!empty($wppm_fillter)){ |
| 278 | 240 | foreach( $wppm_fillter as $project ){ |
| 279 | 241 | $total_projects++; |
| 280 | 242 | $proejctdata = $wppmfunction->get_project($project->id); |
| 281 | - $wppm_proj_duration = $wppmfunction->wppm_get_duration($project->start_date,$project->end_date); | |
| 282 | 243 | $pstatus= esc_sql($project->status); |
| 283 | 244 | $status = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id='$pstatus'" ); |
| 284 | 245 | $users = explode(",",$project->users); |
| 285 | 246 | $pid= esc_sql($project->id); |
| @@ -296,100 +257,21 @@ | ||
| 296 | 257 | FROM {$wpdb->prefix}wppm_task AS Task |
| 297 | 258 | Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id |
| 298 | 259 | Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id |
| 299 | 260 | Left join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id |
| 300 | - 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"); | |
| 261 | + where Task.project = '$pid' 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) OR ( Task.project = proj.id AND proj.created_by='$current_user->ID')) Group by Task.id ) AS Task"); | |
| 301 | 262 | $no_of_tasks = $wpdb->get_var($query); |
| 302 | 263 | } |
| 303 | 264 | $no_of_tasks = apply_filters('wppm_no_of_task_proj_list_query',$no_of_tasks,$project->id); |
| 304 | 265 | } |
| 305 | 266 | if($wppm_project_time == 1){ |
| 306 | - $psDate = new DateTime($project->start_date); | |
| 307 | - $peDate = new DateTime($project->end_date); | |
| 308 | - if($project->start_date=='0000-00-00 00:00:00'){ | |
| 309 | - if($wppm_date_setting=='Y-m-d H:i:s'){ | |
| 310 | - $proj_start_date = '0000-00-00 00:00:00'; | |
| 311 | - }elseif($wppm_date_setting=='d-m-Y H:i:s'){ | |
| 312 | - $proj_start_date = '00-00-0000 00:00:00'; | |
| 313 | - }elseif($wppm_date_setting=='m-d-Y H:i:s'){ | |
| 314 | - $proj_start_date = '00-00-0000 00:00:00'; | |
| 315 | - }else{ | |
| 316 | - $proj_start_date = '0000-00-00 00:00:00'; | |
| 317 | - } | |
| 318 | - }if($project->end_date=='0000-00-00 00:00:00'){ | |
| 319 | - if($wppm_date_setting=='Y-m-d H:i:s'){ | |
| 320 | - $proj_end_date = '0000-00-00 00:00:00'; | |
| 321 | - }elseif($wppm_date_setting=='d-m-Y H:i:s'){ | |
| 322 | - $proj_end_date = '00-00-0000 00:00:00'; | |
| 323 | - }elseif($wppm_date_setting=='m-d-Y H:i:s'){ | |
| 324 | - $proj_end_date = '00-00-0000 00:00:00'; | |
| 325 | - }else{ | |
| 326 | - $proj_end_date = '0000-00-00 00:00:00'; | |
| 327 | - } | |
| 328 | - } | |
| 329 | - if($project->start_date!='0000-00-00 00:00:00'){ | |
| 330 | - if(!empty($wppm_date_setting)){ | |
| 331 | - $proj_start_date = $psDate->format($wppm_date_setting); | |
| 332 | - }else{ | |
| 333 | - $proj_start_date = isset($project->start_date)? $project->start_date:""; | |
| 334 | - } | |
| 335 | - } | |
| 336 | - if($project->end_date!='0000-00-00 00:00:00'){ | |
| 337 | - if(!empty($wppm_date_setting)){ | |
| 338 | - $proj_end_date = $peDate->format($wppm_date_setting); | |
| 339 | - }else{ | |
| 340 | - $proj_end_date = isset($project->end_date) ? $project->end_date: "" ; | |
| 341 | - } | |
| 342 | - } | |
| 267 | + $proj_start_date = $project->start_date; | |
| 268 | + $proj_end_date = $project->end_date; | |
| 343 | 269 | } elseif($wppm_project_time == 0){ |
| 344 | 270 | $psDate = new DateTime($project->start_date); |
| 345 | 271 | $peDate = new DateTime($project->end_date); |
| 346 | 272 | $proj_start_date = $psDate->format('Y-m-d'); |
| 347 | 273 | $proj_end_date = $peDate->format('Y-m-d'); |
| 348 | - if($project->start_date=='0000-00-00 00:00:00'){ | |
| 349 | - if($wppm_date_setting=='Y-m-d H:i:s'){ | |
| 350 | - $proj_start_date = '0000-00-00'; | |
| 351 | - }elseif($wppm_date_setting=='d-m-Y H:i:s'){ | |
| 352 | - $proj_start_date = '00-00-0000'; | |
| 353 | - }elseif($wppm_date_setting=='m-d-Y H:i:s'){ | |
| 354 | - $proj_start_date = '00-00-0000'; | |
| 355 | - }else{ | |
| 356 | - $proj_start_date = '0000-00-00'; | |
| 357 | - } | |
| 358 | - } | |
| 359 | - if($project->end_date=='0000-00-00 00:00:00'){ | |
| 360 | - if($wppm_date_setting=='Y-m-d H:i:s'){ | |
| 361 | - $proj_end_date = '0000-00-00'; | |
| 362 | - }elseif($wppm_date_setting=='d-m-Y H:i:s'){ | |
| 363 | - $proj_end_date = '00-00-0000'; | |
| 364 | - }elseif($wppm_date_setting=='m-d-Y H:i:s'){ | |
| 365 | - $proj_end_date = '00-00-0000'; | |
| 366 | - }else{ | |
| 367 | - $proj_end_date = '0000-00-00'; | |
| 368 | - } | |
| 369 | - | |
| 370 | - }if($project->start_date!='0000-00-00 00:00:00'){ | |
| 371 | - if($wppm_date_setting=='Y-m-d H:i:s'){ | |
| 372 | - $proj_start_date = $psDate->format('Y-m-d'); | |
| 373 | - }elseif($wppm_date_setting=='d-m-Y H:i:s'){ | |
| 374 | - $proj_start_date = $psDate->format('d-m-Y'); | |
| 375 | - }elseif($wppm_date_setting=='m-d-Y H:i:s'){ | |
| 376 | - $proj_start_date = $psDate->format('m-d-Y'); | |
| 377 | - }else{ | |
| 378 | - $proj_start_date = $psDate->format('Y-m-d'); | |
| 379 | - } | |
| 380 | - } | |
| 381 | - if($project->end_date!='0000-00-00 00:00:00'){ | |
| 382 | - if($wppm_date_setting=='Y-m-d H:i:s'){ | |
| 383 | - $proj_end_date = $peDate->format('Y-m-d'); | |
| 384 | - }elseif($wppm_date_setting=='d-m-Y H:i:s'){ | |
| 385 | - $proj_end_date = $peDate->format('d-m-Y'); | |
| 386 | - }elseif($wppm_date_setting=='m-d-Y H:i:s'){ | |
| 387 | - $proj_end_date = $peDate->format('m-d-Y'); | |
| 388 | - }else{ | |
| 389 | - $proj_end_date = $peDate->format('Y-m-d'); | |
| 390 | - } | |
| 391 | - } | |
| 392 | 274 | } |
| 393 | 275 | ?> |
| 394 | 276 | <tr onclick="if(link)wppm_open_project(<?php echo esc_attr($project->id) ?>)"> |
| 395 | 277 | <td class="bulk-selector" onmouseover="link=false;" onmouseout="link=true;"> |
| @@ -399,10 +281,10 @@ | ||
| 399 | 281 | <label for="wppm_bulk_select_<?php echo esc_attr($project->id) ?>"></label> |
| 400 | 282 | </div> |
| 401 | 283 | </div> |
| 402 | 284 | </td> |
| 403 | - <td onmouseover="link=true;"><?php echo esc_html($project->project_name) ?></td> | |
| 404 | - <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($status->name) ?></span></td> | |
| 285 | + <td onmouseover="link=true;"><?php echo esc_html_e($project->project_name,'taskbuilder') ?></td> | |
| 286 | + <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> | |
| 405 | 287 | <td onmouseover="link=true;"> |
| 406 | 288 | <?php |
| 407 | 289 | $i=0; |
| 408 | 290 | if(!empty(array_filter($users))){ |
| @@ -411,9 +293,9 @@ | ||
| 411 | 293 | if( $i <= 4 ){ |
| 412 | 294 | $user_info = get_user_by('id', $user ); |
| 413 | 295 | if(!empty($user_info)){ |
| 414 | 296 | ?> |
| 415 | - <a href="#" title="<?php echo esc_html($user_info->display_name) ?>"> | |
| 297 | + <a href="#" title="<?php echo esc_html_e($user_info->display_name) ?>"> | |
| 416 | 298 | <?php echo get_avatar($user_info->ID, 25, "mysteryman");?> |
| 417 | 299 | </a> <?php |
| 418 | 300 | } |
| 419 | 301 | } |
| @@ -418,9 +300,9 @@ | ||
| 418 | 300 | } |
| 419 | 301 | } |
| 420 | 302 | } |
| 421 | 303 | } else{ |
| 422 | - esc_html_e('None','taskbuilder'); | |
| 304 | + _e('None','wp_projects'); | |
| 423 | 305 | } |
| 424 | 306 | if($i > 4){ |
| 425 | 307 | ?> |
| 426 | 308 | <a href="#" class="wppm_avatar"> |
| @@ -427,28 +309,14 @@ | ||
| 427 | 309 | <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span> |
| 428 | 310 | </a> |
| 429 | 311 | <?php } ?> |
| 430 | 312 | </td> |
| 431 | - <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($category) ? esc_html($category): "" ?></td> | |
| 432 | - <?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0){ ?> | |
| 313 | + <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($category) ? esc_html_e($category,'taskbuilder'): "" ?></td> | |
| 314 | + <?php if($wppm_default_project_date==1){ ?> | |
| 433 | 315 | <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td> |
| 434 | - <?php | |
| 435 | - 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')) { | |
| 436 | - $style = "color:#FF0000"; | |
| 437 | - } else { | |
| 438 | - $style = "color:#2C3E50"; | |
| 439 | - } ?> | |
| 440 | - <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> | |
| 316 | + <?php $style = ($project->status!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?> | |
| 317 | + <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):"" ?></td></span> | |
| 441 | 318 | <?php } ?> |
| 442 | - <?php if($wppm_deafault_time_duration_project==1){ ?> | |
| 443 | - <?php | |
| 444 | - 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')) { | |
| 445 | - $style = "color:#FF0000"; | |
| 446 | - } else { | |
| 447 | - $style = "color:#2C3E50"; | |
| 448 | - } ?> | |
| 449 | - <td onmouseover="link=true;" class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($wppm_proj_duration) ? esc_html($wppm_proj_duration):"" ?></span></td> | |
| 450 | - <?php } ?> | |
| 451 | 319 | <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td> |
| 452 | 320 | <td onmouseover="link=true;" class="wppm_delete_action"> |
| 453 | 321 | <?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"; ?> |
| 454 | 322 | <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> |
| @@ -539,12 +407,8 @@ | ||
| 539 | 407 | }); |
| 540 | 408 | jQuery("#wppm_project_end_date_th").hover(function(){ |
| 541 | 409 | jQuery('#wppm_chevron_sort_up_project_end_date_img').show(); |
| 542 | 410 | jQuery('#wppm_chevron_sort_down_project_end_date_img').hide(); |
| 543 | - }); | |
| 544 | - jQuery("#wppm_project_time_duration_th").hover(function(){ | |
| 545 | - jQuery('#wppm_chevron_sort_up_project_time_duration_img').show(); | |
| 546 | - jQuery('#wppm_chevron_sort_down_project_time_duration_img').hide(); | |
| 547 | 411 | }); |
| 548 | 412 | jQuery(".wppm_delete_action").on("click", function(e){ |
| 549 | 413 | e.preventDefault(); |
| 550 | 414 | return false; |