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 +46 -28 5.0.1 → 6.0.7 View file →
@@ -7,23 +7,26 @@
7 7 $wppm_project_time = get_option('wppm_project_time');
8 8 $wppm_default_project_date = get_option('wppm_default_project_date');
9 9 $wppm_public_projects_permission = get_option('wppm_public_projects_permission');
10 10 $orderby_sql = sanitize_sql_orderby("name");
11 -$categories = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_project_categories ORDER BY $orderby_sql" );
11 +$sql = "SELECT * FROM {$wpdb->prefix}wppm_project_categories ORDER BY {$orderby_sql}";
12 +$categories = $wpdb->get_results($sql);
12 13 $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
13 14 $wppm_rich_text_editor = get_option('wppm_rich_text_editor');
14 15 $wppm_toolbar_actions = get_option('wppm_toolbar_actions');
15 -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) {
16 19 exit;
17 20 }
18 21 ?>
19 -<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">
20 23 <div class="wppm_headers row">
21 24 <div class="col-sm-12">
22 25 <span class="wppm-heading-inline" style="margin-left:15px;">
23 26 <?php echo esc_html_e('Create Project','taskbuilder');?>
24 27 </span>
25 - <?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){ ?>
26 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>
27 30 <?php } ?>
28 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>
29 32 </div>
@@ -99,8 +102,9 @@
99 102 <div class="col-sm-12">
100 103 <ui class="wppm_filter_display_users_container"></ui>
101 104 </div>
102 105 </div>
106 + <?php do_action('wppm_after_project_fields_in_new_project_form');?>
103 107 <?php if( $wppm_public_projects_permission==1) { ?>
104 108 <div id="wppm_public_projects_permission" class="row">
105 109 <div class="col-sm-12">
106 110 <span class="wppm_form_field_label"><b>
@@ -112,9 +116,9 @@
112 116 </div>
113 117 <?php } ?>
114 118 <div class="row">
115 119 <div class="wppm_frm_submit col-sm-12">
116 - <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>
117 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>
118 122 <input type="hidden" name="action" value="wppm_create_project" />
119 123 <input type="hidden" name="_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_create_project' ) ); ?>">
120 124 </div>
@@ -143,9 +147,10 @@
143 147 $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :"";
144 148 $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :"";
145 149 $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :"";
146 150 $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :"";
147 - $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :""; ?>
151 + $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :"";
152 + $toolbar = trim("$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough");?>
148 153 tinymce.remove();
149 154 tinymce.init({
150 155 selector:'#wppm_proj_description',
151 156 body_id: 'wppm_proj_description',
@@ -157,9 +162,9 @@
157 162 plugins: [
158 163 'lists link image directionality paste textcolor'
159 164 ],
160 165 image_advtab: true,
161 - toolbar: '<?php echo $bold ?> <?php echo $italic ?> <?php echo $underline ?> <?php echo $blockquote?> | <?php echo $align ?> | <?php echo $bullist ?> <?php echo $numlist ?> | <?php echo $rtl ?> | <?php echo $link ?> <?php echo $image ?> | <?php echo $forecolor?> <?php echo $backcolor?> <?php echo $strikethrough ?>',
166 + toolbar: '<?php echo esc_js( $toolbar ); ?>',
162 167 branding: false,
163 168 autoresize_bottom_margin: 20,
164 169 browser_spellcheck : true,
165 170 relative_urls : false,
@@ -226,27 +231,40 @@
226 231 function wppm_remove_user(e){
227 232 jQuery(e).parent().parent().remove();
228 233 }
229 234
230 -function wppm_create_project(){
231 - if(!jQuery('#wppm_project_name').val()){
232 - alert("<?php _e('Project title is required','taskbuilder')?>");
233 - return false;
234 - }
235 - var dataform = new FormData(jQuery('#wppm_add_new_project')[0]);
236 - var is_tinymce = (typeof tinyMCE != "undefined") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();
237 - var description = is_tinymce && tinymce.get('wppm_proj_description') ? tinyMCE.get('wppm_proj_description').getContent() : jQuery('#wppm_proj_description').val().trim();
238 - dataform.append('wppm_proj_description', description);
239 - jQuery('#wppm_project_container').html(wppm_admin.loading_html);
240 - <?php echo do_action('wppm_create_project_dataform');?>
241 - jQuery.ajax({
242 - url: wppm_admin.ajax_url,
243 - type: 'POST',
244 - data: dataform,
245 - processData: false,
246 - contentType: false
247 - })
248 - .done(function (response_str) {
249 - wppm_get_project_list();
250 - });
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 + });
251 269 }
252 270 </script>