| @@ -12,19 +12,21 @@ | ||
| 12 | 12 | $categories = $wpdb->get_results($sql); |
| 13 | 13 | $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true ); |
| 14 | 14 | $wppm_rich_text_editor = get_option('wppm_rich_text_editor'); |
| 15 | 15 | $wppm_toolbar_actions = get_option('wppm_toolbar_actions'); |
| 16 | -if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options') || $current_user->ID && $current_user->has_cap('wppm_manager'))) { | |
| 16 | +$wppm_can_create_project = ( $current_user->ID && $current_user->has_cap('wppm_admin') ) || $current_user->has_cap('manage_options') || ( $current_user->ID && $current_user->has_cap('wppm_manager') ); | |
| 17 | +$wppm_can_create_project = apply_filters( 'wppm_can_create_project', $wppm_can_create_project, $current_user->ID ); | |
| 18 | +if (!$wppm_can_create_project) { | |
| 17 | 19 | exit; |
| 18 | 20 | } |
| 19 | 21 | ?> |
| 20 | -<form class='wppm_add_new_project wppm_bootstrap' onsubmit="return wppm_create_project();" id="wppm_add_new_project" method="post"> | |
| 22 | +<form class='wppm_add_new_project wppm_bootstrap' id="wppm_add_new_project" method="post"> | |
| 21 | 23 | <div class="wppm_headers row"> |
| 22 | 24 | <div class="col-sm-12"> |
| 23 | 25 | <span class="wppm-heading-inline" style="margin-left:15px;"> |
| 24 | 26 | <?php echo esc_html_e('Create Project','taskbuilder');?> |
| 25 | 27 | </span> |
| 26 | - <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?> | |
| 28 | + <?php if($wppm_can_create_project){ ?> | |
| 27 | 29 | <span class="wppm-add-new-btn btn-primary" id="wppm_add_new_proj" onclick="wppm_add_new_project()" ><span style="margin-right:5px;"></span><span><?php echo esc_html_e('+Create Project','taskbuilder');?></span></span> |
| 28 | 30 | <?php } ?> |
| 29 | 31 | <span class="wppm-add-new-btn btn-primary" id="wppm_project_list" onclick="wppm_get_project_list()" ><span style="margin-right:5px;"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/list-symbol.svg'); ?>" alt="list-symbol"></span><span><?php echo esc_html_e('Project List','taskbuilder');?></span></span> |
| 30 | 32 | </div> |
| @@ -100,8 +102,9 @@ | ||
| 100 | 102 | <div class="col-sm-12"> |
| 101 | 103 | <ui class="wppm_filter_display_users_container"></ui> |
| 102 | 104 | </div> |
| 103 | 105 | </div> |
| 106 | + <?php do_action('wppm_after_project_fields_in_new_project_form');?> | |
| 104 | 107 | <?php if( $wppm_public_projects_permission==1) { ?> |
| 105 | 108 | <div id="wppm_public_projects_permission" class="row"> |
| 106 | 109 | <div class="col-sm-12"> |
| 107 | 110 | <span class="wppm_form_field_label"><b> |
| @@ -113,9 +116,9 @@ | ||
| 113 | 116 | </div> |
| 114 | 117 | <?php } ?> |
| 115 | 118 | <div class="row"> |
| 116 | 119 | <div class="wppm_frm_submit col-sm-12"> |
| 117 | - <button type="submit" class="wppm-submit-btn" id="wppm-submit-proj-btn"><?php echo esc_html_e('Add Project','taskbuilder'); ?></button> | |
| 120 | + <button type="submit" class="wppm-submit-btn" id="wppm-submit-proj-btn" onclick="wppm_create_project(event)"><?php echo esc_html_e('Add Project','taskbuilder'); ?></button> | |
| 118 | 121 | <button type="button" class="wppm_reset_btn" id="wppm_submit_proj_reset_btn" onclick="wppm_add_new_project()"><?php echo esc_html_e('Reset Form','taskbuilder') ?></button> |
| 119 | 122 | <input type="hidden" name="action" value="wppm_create_project" /> |
| 120 | 123 | <input type="hidden" name="_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_create_project' ) ); ?>"> |
| 121 | 124 | </div> |
| @@ -228,28 +231,40 @@ | ||
| 228 | 231 | function wppm_remove_user(e){ |
| 229 | 232 | jQuery(e).parent().parent().remove(); |
| 230 | 233 | } |
| 231 | 234 | |
| 232 | -function wppm_create_project(){ | |
| 233 | - if(!jQuery('#wppm_project_name').val()){ | |
| 234 | - alert("<?php esc_js(__('Project title is required','taskbuilder'))?>"); | |
| 235 | - return false; | |
| 236 | - } | |
| 237 | - var dataform = new FormData(jQuery('#wppm_add_new_project')[0]); | |
| 238 | - var is_tinymce = (typeof tinyMCE != "undefined") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden(); | |
| 239 | - var description = is_tinymce && tinymce.get('wppm_proj_description') ? tinyMCE.get('wppm_proj_description').getContent() : jQuery('#wppm_proj_description').val().trim(); | |
| 240 | - dataform.append('wppm_proj_description', description); | |
| 241 | - jQuery(document).trigger('wppm_create_project_dataform', [dataform]); | |
| 242 | - jQuery('#wppm_project_container').html(wppm_admin.loading_html); | |
| 243 | - <?php //echo do_action('wppm_create_project_dataform');?> | |
| 244 | - jQuery.ajax({ | |
| 245 | - url: wppm_admin.ajax_url, | |
| 246 | - type: 'POST', | |
| 247 | - data: dataform, | |
| 248 | - processData: false, | |
| 249 | - contentType: false | |
| 250 | - }) | |
| 251 | - .done(function (response_str) { | |
| 252 | - wppm_get_project_list(); | |
| 253 | - }); | |
| 235 | +function wppm_create_project(e){ | |
| 236 | + e.preventDefault(); // Always prevent default | |
| 237 | + | |
| 238 | + if (!jQuery('#wppm_project_name').val()) { | |
| 239 | + alert('Project title is required'); | |
| 240 | + return false; | |
| 241 | + } | |
| 242 | + var dataform = new FormData(jQuery('#wppm_add_new_project')[0]); | |
| 243 | + var is_tinymce = (typeof tinyMCE != "undefined") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden(); | |
| 244 | + var description = is_tinymce && tinymce.get('wppm_proj_description') ? tinyMCE.get('wppm_proj_description').getContent() : jQuery('#wppm_proj_description').val().trim(); | |
| 245 | + dataform.append('wppm_proj_description', description); | |
| 246 | + var validation = { | |
| 247 | + isValid: true | |
| 248 | + }; | |
| 249 | + jQuery(document).trigger('wppm_create_project_js_function', [ | |
| 250 | + dataform, | |
| 251 | + validation | |
| 252 | + ]); | |
| 253 | + if(!validation.isValid){ | |
| 254 | + return false; | |
| 255 | + } | |
| 256 | + jQuery(document).trigger('wppm_create_project_dataform', [dataform]); | |
| 257 | + jQuery('#wppm_project_container').html(wppm_admin.loading_html); | |
| 258 | + <?php //echo do_action('wppm_create_project_dataform');?> | |
| 259 | + jQuery.ajax({ | |
| 260 | + url: wppm_admin.ajax_url, | |
| 261 | + type: 'POST', | |
| 262 | + data: dataform, | |
| 263 | + processData: false, | |
| 264 | + contentType: false | |
| 265 | + }) | |
| 266 | + .done(function (response_str) { | |
| 267 | + wppm_get_project_list(); | |
| 268 | + }); | |
| 254 | 269 | } |
| 255 | 270 | </script> |