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
taskbuilder / includes / admin / projects / wppm_add_new_project.php

wppm_add_new_project.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 6.0.7, at includes/admin/projects/wppm_add_new_project.php

270 lines 13.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit; // Exit if accessed directly
4 }
5 global $wpdb,$wppmfunction,$current_user;
6 $wppm_users_role = get_option('wppm_user_role');
7 $wppm_project_time = get_option('wppm_project_time');
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 }
21 ?>
22 <form class='wppm_add_new_project wppm_bootstrap' id="wppm_add_new_project" method="post">
23 <div class="wppm_headers row">
24 <div class="col-sm-12">
25 <span class="wppm-heading-inline" style="margin-left:15px;">
26 <?php echo esc_html_e('Create Project','taskbuilder');?>
27 </span>
28 <?php if($wppm_can_create_project){ ?>
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>
30 <?php } ?>
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>
32 </div>
33 </div>
34 <div id='wppm_frm_field_container'>
35 <div class="row">
36 <div class="wppm_project_frm_fields col-sm-12">
37 <span class="wppm_form_field_label"><b><?php echo esc_html_e('Name','taskbuilder'); ?></b></span>
38 <span style="color:#ff0000;">*</span>
39 <br>
40 <input name="name" class="form-control" id="wppm_project_name" type="text" size="40" aria-required="true"><br>
41 </div>
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 } ?>
61 <div class="row">
62 <div class="wppm_project_frm_fields col-sm-12">
63 <span class="wppm_form_field_label"><b>
64 <b>
65 <?php echo esc_html_e('Description','taskbuilder'); ?>
66 </b>
67 </span><br>
68 <textarea id="wppm_proj_description" name="wppm_proj_description">
69 </textarea>
70 <br>
71 </div>
72 </div>
73 <div class="row">
74 <div class="wppm_project_frm_fields col-sm-12">
75 <span class="wppm_form_field_label"><b>
76 <b>
77 <?php echo esc_html_e('Category','taskbuilder'); ?>
78 </b>
79 </span><br>
80 <select id="wppm_create_project_category" name="wppm_create_project_category" class="form-control">
81 <option value=""></option><?php
82 if(!empty($categories)){
83 foreach ($categories as $category){
84 echo '<option value="'.esc_attr($category->id).'">'.esc_html(stripcslashes($category->name)).'</option>';
85 }
86 }
87 ?>
88 </select><br><br>
89 </div>
90 </div>
91 <div class="row">
92 <div class="wppm_project_frm_fields col-sm-12">
93 <span class="wppm_form_field_label"><b>
94 <b>
95 <?php echo esc_html_e('Assign User','taskbuilder'); ?>
96 </b>
97 </span><br>
98 <input class="form-control wppm_assign_users ui-autocomplete-input" name="wppm_assigned_user" type="text" autocomplete="off" placeholder= "<?php echo esc_attr__('Search User...','taskbuilder');?>">
99 <br>
100 </div>
101 <div id="wppm_display_users" class="row">
102 <div class="col-sm-12">
103 <ui class="wppm_filter_display_users_container"></ui>
104 </div>
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 } ?>
118 <div class="row">
119 <div class="wppm_frm_submit col-sm-12">
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>
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>
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' ) ); ?>">
124 </div>
125 </div>
126 </div>
127 </form>
128 <script>
129 jQuery( document ).ready( function( jQuery ) {
130 jQuery("#wppm_start_date").flatpickr({
131 enableTime: <?php echo ($wppm_project_time == 1) ? 'true' : 'false' ?>,
132 dateFormat: "Y-m-d <?php echo ($wppm_project_time == 1) ? 'H:i': '' ?>"
133 });
134 jQuery("#wppm_end_date").flatpickr({
135 enableTime: <?php echo ($wppm_project_time==1) ? 'true' : 'false' ?>,
136 dateFormat: "Y-m-d <?php echo ($wppm_project_time==1) ? 'H:i': '' ?>"
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 } ?>
178 jQuery("input[name='wppm_assigned_user']").keypress(function(e) {
179 //Enter key
180 if (e.which == 13) {
181 return false;
182 }
183 });
184 jQuery( ".wppm_assign_users" ).autocomplete({
185 minLength: 1,
186 appendTo: jQuery('.wppm_assign_users').parent(),
187 source: function( request, response ) {
188 var term = request.term;
189 request = {
190 action: 'wppm_filter_autocomplete',
191 term : term,
192 field : 'users_name',
193 }
194 jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {
195 response(data);
196 });
197 },
198 select: function (event, ui) {
199 var html_str = '<div id="wppm_user_container_'+ui.item.user_id+'" class="row wppm_user_display_container">'
200 +'<div class="flex-container col-sm-3">'
201 +'<span class="wppm_filter_display_text">'
202 +ui.item.label
203 +'<input type="hidden" name="user_names[]" value="'+ui.item.user_id+'">'
204 +'</span>'
205 +'</div>'
206 +'<div class="col-sm-3 wppm_user_role">'
207 +'<select size="sm" class="form-control" id="wppm_select_user_role_'+ui.item.user_id+'" name="wppm_select_user_role_'+ui.item.user_id+'">'+
208 <?php
209 if(!empty($wppm_users_role)){
210 foreach($wppm_users_role as $key=>$role){
211 foreach($role as $k=>$val){
212 ?>'<option value="<?php echo esc_attr($key) ?>"><?php echo esc_html($role['label']) ?></option>'+<?php
213 }
214 }
215 }
216 ?>
217 '</select>'
218 +'</div>'
219 +'<div class="col-sm-3 wppm_delete_user_icon">'
220 +'<span onclick="wppm_remove_user_from_project('+ui.item.user_id+');"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>'
221 +'</div>'
222 +'</div>';
223 jQuery('#wppm_display_users .wppm_filter_display_users_container').append(html_str);
224 jQuery(this).val(''); return false;
225 }
226 }).focus(function() {
227 jQuery(this).autocomplete("search", "");
228 });
229 });
230
231 function wppm_remove_user(e){
232 jQuery(e).parent().parent().remove();
233 }
234
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 });
269 }
270 </script>