PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 6.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v6.0.6
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 1.0.5 All 58 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.6, at includes/admin/projects/wppm_add_new_project.php

268 lines 13.8 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 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'))) {
17 exit;
18 }
19 ?>
20 <form class='wppm_add_new_project wppm_bootstrap' id="wppm_add_new_project" method="post">
21 <div class="wppm_headers row">
22 <div class="col-sm-12">
23 <span class="wppm-heading-inline" style="margin-left:15px;">
24 <?php echo esc_html_e('Create Project','taskbuilder');?>
25 </span>
26 <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?>
27 <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 <?php } ?>
29 <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 </div>
31 </div>
32 <div id='wppm_frm_field_container'>
33 <div class="row">
34 <div class="wppm_project_frm_fields col-sm-12">
35 <span class="wppm_form_field_label"><b><?php echo esc_html_e('Name','taskbuilder'); ?></b></span>
36 <span style="color:#ff0000;">*</span>
37 <br>
38 <input name="name" class="form-control" id="wppm_project_name" type="text" size="40" aria-required="true"><br>
39 </div>
40 </div>
41 <?php if($wppm_default_project_date==1){ ?>
42 <div class="row">
43 <div class="wppm_project_frm_fields col-sm-6">
44 <span class="wppm_form_field_label"><b>
45 <?php echo esc_html_e('Start date','taskbuilder'); ?>
46 </b>
47 </span><br>
48 <input name="wppm_start_date" class="form-control" id="wppm_start_date" type="text" value="" size="40" aria-required="true"><br>
49 </div>
50 <div class="wppm_project_frm_fields col-sm-6">
51 <span class="wppm_form_field_label"><b>
52 <?php echo esc_html_e('End date','taskbuilder'); ?>
53 </b>
54 </span><br>
55 <input name="wppm_end_date" id="wppm_end_date" class="form-control" type="text" value="" size="40" aria-required="true"><br>
56 </div>
57 </div>
58 <?php } ?>
59 <div class="row">
60 <div class="wppm_project_frm_fields col-sm-12">
61 <span class="wppm_form_field_label"><b>
62 <b>
63 <?php echo esc_html_e('Description','taskbuilder'); ?>
64 </b>
65 </span><br>
66 <textarea id="wppm_proj_description" name="wppm_proj_description">
67 </textarea>
68 <br>
69 </div>
70 </div>
71 <div class="row">
72 <div class="wppm_project_frm_fields col-sm-12">
73 <span class="wppm_form_field_label"><b>
74 <b>
75 <?php echo esc_html_e('Category','taskbuilder'); ?>
76 </b>
77 </span><br>
78 <select id="wppm_create_project_category" name="wppm_create_project_category" class="form-control">
79 <option value=""></option><?php
80 if(!empty($categories)){
81 foreach ($categories as $category){
82 echo '<option value="'.esc_attr($category->id).'">'.esc_html(stripcslashes($category->name)).'</option>';
83 }
84 }
85 ?>
86 </select><br><br>
87 </div>
88 </div>
89 <div class="row">
90 <div class="wppm_project_frm_fields col-sm-12">
91 <span class="wppm_form_field_label"><b>
92 <b>
93 <?php echo esc_html_e('Assign User','taskbuilder'); ?>
94 </b>
95 </span><br>
96 <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');?>">
97 <br>
98 </div>
99 <div id="wppm_display_users" class="row">
100 <div class="col-sm-12">
101 <ui class="wppm_filter_display_users_container"></ui>
102 </div>
103 </div>
104 <?php do_action('wppm_after_project_fields_in_new_project_form');?>
105 <?php if( $wppm_public_projects_permission==1) { ?>
106 <div id="wppm_public_projects_permission" class="row">
107 <div class="col-sm-12">
108 <span class="wppm_form_field_label"><b>
109 <input type="checkbox" name="wppm_public_project"" />
110 <label id="wppm_public_project_label"><?php echo esc_html_e('Make Project Public','taskbuilder'); ?></label>
111 </b>
112 </span><br>
113 </div>
114 </div>
115 <?php } ?>
116 <div class="row">
117 <div class="wppm_frm_submit col-sm-12">
118 <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>
119 <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>
120 <input type="hidden" name="action" value="wppm_create_project" />
121 <input type="hidden" name="_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_create_project' ) ); ?>">
122 </div>
123 </div>
124 </div>
125 </form>
126 <script>
127 jQuery( document ).ready( function( jQuery ) {
128 jQuery("#wppm_start_date").flatpickr({
129 enableTime: <?php echo ($wppm_project_time == 1) ? 'true' : 'false' ?>,
130 dateFormat: "Y-m-d <?php echo ($wppm_project_time == 1) ? 'H:i': '' ?>"
131 });
132 jQuery("#wppm_end_date").flatpickr({
133 enableTime: <?php echo ($wppm_project_time==1) ? 'true' : 'false' ?>,
134 dateFormat: "Y-m-d <?php echo ($wppm_project_time==1) ? 'H:i': '' ?>"
135 });<?php
136 if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){
137 $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :"";
138 $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :"";
139 $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :"";
140 $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :"";
141 $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)? ' alignleft aligncenter alignright ' :"";
142 $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :"";
143 $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :"";
144 $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :"";
145 $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :"";
146 $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :"";
147 $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :"";
148 $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :"";
149 $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :"";
150 $toolbar = trim("$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough");?>
151 tinymce.remove();
152 tinymce.init({
153 selector:'#wppm_proj_description',
154 body_id: 'wppm_proj_description',
155 directionality : '<?php //echo 'rtl'; ?>',
156 menubar: false,
157 statusbar: false,
158 height : '200',
159 width : '100%',
160 plugins: [
161 'lists link image directionality paste textcolor'
162 ],
163 image_advtab: true,
164 toolbar: '<?php echo esc_js( $toolbar ); ?>',
165 branding: false,
166 autoresize_bottom_margin: 20,
167 browser_spellcheck : true,
168 relative_urls : false,
169 paste_as_text: true,
170 remove_script_host : false,
171 convert_urls : true,
172 setup: function (editor) {
173 }
174 });
175 <?php } ?>
176 jQuery("input[name='wppm_assigned_user']").keypress(function(e) {
177 //Enter key
178 if (e.which == 13) {
179 return false;
180 }
181 });
182 jQuery( ".wppm_assign_users" ).autocomplete({
183 minLength: 1,
184 appendTo: jQuery('.wppm_assign_users').parent(),
185 source: function( request, response ) {
186 var term = request.term;
187 request = {
188 action: 'wppm_filter_autocomplete',
189 term : term,
190 field : 'users_name',
191 }
192 jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {
193 response(data);
194 });
195 },
196 select: function (event, ui) {
197 var html_str = '<div id="wppm_user_container_'+ui.item.user_id+'" class="row wppm_user_display_container">'
198 +'<div class="flex-container col-sm-3">'
199 +'<span class="wppm_filter_display_text">'
200 +ui.item.label
201 +'<input type="hidden" name="user_names[]" value="'+ui.item.user_id+'">'
202 +'</span>'
203 +'</div>'
204 +'<div class="col-sm-3 wppm_user_role">'
205 +'<select size="sm" class="form-control" id="wppm_select_user_role_'+ui.item.user_id+'" name="wppm_select_user_role_'+ui.item.user_id+'">'+
206 <?php
207 if(!empty($wppm_users_role)){
208 foreach($wppm_users_role as $key=>$role){
209 foreach($role as $k=>$val){
210 ?>'<option value="<?php echo esc_attr($key) ?>"><?php echo esc_html($role['label']) ?></option>'+<?php
211 }
212 }
213 }
214 ?>
215 '</select>'
216 +'</div>'
217 +'<div class="col-sm-3 wppm_delete_user_icon">'
218 +'<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>'
219 +'</div>'
220 +'</div>';
221 jQuery('#wppm_display_users .wppm_filter_display_users_container').append(html_str);
222 jQuery(this).val(''); return false;
223 }
224 }).focus(function() {
225 jQuery(this).autocomplete("search", "");
226 });
227 });
228
229 function wppm_remove_user(e){
230 jQuery(e).parent().parent().remove();
231 }
232
233 function wppm_create_project(e){
234 e.preventDefault(); // Always prevent default
235
236 if (!jQuery('#wppm_project_name').val()) {
237 alert('Project title is required');
238 return false;
239 }
240 var dataform = new FormData(jQuery('#wppm_add_new_project')[0]);
241 var is_tinymce = (typeof tinyMCE != "undefined") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();
242 var description = is_tinymce && tinymce.get('wppm_proj_description') ? tinyMCE.get('wppm_proj_description').getContent() : jQuery('#wppm_proj_description').val().trim();
243 dataform.append('wppm_proj_description', description);
244 var validation = {
245 isValid: true
246 };
247 jQuery(document).trigger('wppm_create_project_js_function', [
248 dataform,
249 validation
250 ]);
251 if(!validation.isValid){
252 return false;
253 }
254 jQuery(document).trigger('wppm_create_project_dataform', [dataform]);
255 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
256 <?php //echo do_action('wppm_create_project_dataform');?>
257 jQuery.ajax({
258 url: wppm_admin.ajax_url,
259 type: 'POST',
260 data: dataform,
261 processData: false,
262 contentType: false
263 })
264 .done(function (response_str) {
265 wppm_get_project_list();
266 });
267 }
268 </script>