PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 6.0.7
Taskbuilder – Project Management & Task Management Tool With Kanban Board v6.0.7
6.0.7 6.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 All 59 releases
← All changes | includes/admin/projects/wppm_add_new_project.php +41 -26 5.0.4 → 6.0.7 View file →
@@ -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>