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 +122 -64 1.0.2 → 6.0.7 View file →
@@ -4,17 +4,29 @@
4 4 }
5 5 global $wpdb,$wppmfunction,$current_user;
6 6 $wppm_users_role = get_option('wppm_user_role');
7 7 $wppm_project_time = get_option('wppm_project_time');
8 -$categories = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_project_categories ORDER BY name" );
8 +$wppm_default_project_date = get_option('wppm_default_project_date');
9 +$wppm_public_projects_permission = get_option('wppm_public_projects_permission');
10 +$orderby_sql = sanitize_sql_orderby("name");
11 +$sql = "SELECT * FROM {$wpdb->prefix}wppm_project_categories ORDER BY {$orderby_sql}";
12 +$categories = $wpdb->get_results($sql);
13 +$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
14 +$wppm_rich_text_editor = get_option('wppm_rich_text_editor');
15 +$wppm_toolbar_actions = get_option('wppm_toolbar_actions');
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) {
19 + exit;
20 +}
9 21 ?>
10 -<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">
11 23 <div class="wppm_headers row">
12 24 <div class="col-sm-12">
13 25 <span class="wppm-heading-inline" style="margin-left:15px;">
14 26 <?php echo esc_html_e('Create Project','taskbuilder');?>
15 27 </span>
16 - <?php if($current_user->has_cap('manage_options')){ ?>
28 + <?php if($wppm_can_create_project){ ?>
17 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>
18 30 <?php } ?>
19 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>
20 32 </div>
@@ -27,25 +39,27 @@
27 39 <br>
28 40 <input name="name" class="form-control" id="wppm_project_name" type="text" size="40" aria-required="true"><br>
29 41 </div>
30 42 </div>
43 + <?php if($wppm_default_project_date==1){ ?>
44 + <div class="row">
45 + <div class="wppm_project_frm_fields col-sm-6">
46 + <span class="wppm_form_field_label"><b>
47 + <?php echo esc_html_e('Start date','taskbuilder'); ?>
48 + </b>
49 + </span><br>
50 + <input name="wppm_start_date" class="form-control" id="wppm_start_date" type="text" value="" size="40" aria-required="true"><br>
51 + </div>
52 + <div class="wppm_project_frm_fields col-sm-6">
53 + <span class="wppm_form_field_label"><b>
54 + <?php echo esc_html_e('End date','taskbuilder'); ?>
55 + </b>
56 + </span><br>
57 + <input name="wppm_end_date" id="wppm_end_date" class="form-control" type="text" value="" size="40" aria-required="true"><br>
58 + </div>
59 + </div>
60 + <?php } ?>
31 61 <div class="row">
32 - <div class="wppm_project_frm_fields col-sm-6">
33 - <span class="wppm_form_field_label"><b>
34 - <?php echo esc_html_e('Start date','taskbuilder'); ?>
35 - </b>
36 - </span><br>
37 - <input name="wppm_start_date" class="form-control" id="wppm_start_date" type="text" value="" size="40" aria-required="true"><br>
38 - </div>
39 - <div class="wppm_project_frm_fields col-sm-6">
40 - <span class="wppm_form_field_label"><b>
41 - <?php echo esc_html_e('End date','taskbuilder'); ?>
42 - </b>
43 - </span><br>
44 - <input name="wppm_end_date" id="wppm_end_date" class="form-control" type="text" value="" size="40" aria-required="true"><br>
45 - </div>
46 - </div>
47 - <div class="row">
48 62 <div class="wppm_project_frm_fields col-sm-12">
49 63 <span class="wppm_form_field_label"><b>
50 64 <b>
51 65 <?php echo esc_html_e('Description','taskbuilder'); ?>
@@ -88,13 +102,26 @@
88 102 <div class="col-sm-12">
89 103 <ui class="wppm_filter_display_users_container"></ui>
90 104 </div>
91 105 </div>
106 + <?php do_action('wppm_after_project_fields_in_new_project_form');?>
107 + <?php if( $wppm_public_projects_permission==1) { ?>
108 + <div id="wppm_public_projects_permission" class="row">
109 + <div class="col-sm-12">
110 + <span class="wppm_form_field_label"><b>
111 + <input type="checkbox" name="wppm_public_project"" />
112 + <label id="wppm_public_project_label"><?php echo esc_html_e('Make Project Public','taskbuilder'); ?></label>
113 + </b>
114 + </span><br>
115 + </div>
116 + </div>
117 + <?php } ?>
92 118 <div class="row">
93 119 <div class="wppm_frm_submit col-sm-12">
94 - <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>
95 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>
96 122 <input type="hidden" name="action" value="wppm_create_project" />
123 + <input type="hidden" name="_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_create_project' ) ); ?>">
97 124 </div>
98 125 </div>
99 126 </div>
100 127 </form>
@@ -106,33 +133,49 @@
106 133 });
107 134 jQuery("#wppm_end_date").flatpickr({
108 135 enableTime: <?php echo ($wppm_project_time==1) ? 'true' : 'false' ?>,
109 136 dateFormat: "Y-m-d <?php echo ($wppm_project_time==1) ? 'H:i': '' ?>"
110 - });
111 - tinymce.remove();
112 - tinymce.init({
113 - selector:'#wppm_proj_description',
114 - body_id: 'wppm_proj_description',
115 - directionality : '<?php //echo 'rtl'; ?>',
116 - menubar: false,
117 - statusbar: false,
118 - height : '200',
119 - width : '100%',
120 - plugins: [
121 - 'lists link image directionality paste'
122 - ],
123 - image_advtab: true,
124 - toolbar: 'bold italic underline blockquote | alignleft aligncenter alignright | bullist numlist | rtl | link image',
125 - branding: false,
126 - autoresize_bottom_margin: 20,
127 - browser_spellcheck : true,
128 - relative_urls : false,
129 - paste_as_text: true,
130 - remove_script_host : false,
131 - convert_urls : true,
132 - setup: function (editor) {
133 - }
134 - });
137 + });<?php
138 + if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){
139 + $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :"";
140 + $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :"";
141 + $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :"";
142 + $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :"";
143 + $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)? ' alignleft aligncenter alignright ' :"";
144 + $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :"";
145 + $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :"";
146 + $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :"";
147 + $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :"";
148 + $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :"";
149 + $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :"";
150 + $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :"";
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");?>
153 + tinymce.remove();
154 + tinymce.init({
155 + selector:'#wppm_proj_description',
156 + body_id: 'wppm_proj_description',
157 + directionality : '<?php //echo 'rtl'; ?>',
158 + menubar: false,
159 + statusbar: false,
160 + height : '200',
161 + width : '100%',
162 + plugins: [
163 + 'lists link image directionality paste textcolor'
164 + ],
165 + image_advtab: true,
166 + toolbar: '<?php echo esc_js( $toolbar ); ?>',
167 + branding: false,
168 + autoresize_bottom_margin: 20,
169 + browser_spellcheck : true,
170 + relative_urls : false,
171 + paste_as_text: true,
172 + remove_script_host : false,
173 + convert_urls : true,
174 + setup: function (editor) {
175 + }
176 + });
177 + <?php } ?>
135 178 jQuery("input[name='wppm_assigned_user']").keypress(function(e) {
136 179 //Enter key
137 180 if (e.which == 13) {
138 181 return false;
@@ -188,25 +231,40 @@
188 231 function wppm_remove_user(e){
189 232 jQuery(e).parent().parent().remove();
190 233 }
191 234
192 -function wppm_create_project(){
193 - if(!jQuery('#wppm_project_name').val()){
194 - alert("<?php _e('Project title is required','taskbuilder')?>");
195 - return false;
196 - }
197 - var dataform = new FormData(jQuery('#wppm_add_new_project')[0]);
198 - jQuery('#wppm_project_container').html(wppm_admin.loading_html);
199 - var description = tinyMCE.get('wppm_proj_description').getContent().trim();
200 - dataform.append('wppm_proj_description', description);
201 - jQuery.ajax({
202 - url: wppm_admin.ajax_url,
203 - type: 'POST',
204 - data: dataform,
205 - processData: false,
206 - contentType: false
207 - })
208 - .done(function (response_str) {
209 - wppm_get_project_list();
210 - });
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 + });
211 269 }
212 270 </script>