PluginProbe
Booking Calendar / 10.15.7
Booking Calendar v10.15.7
11.9 11.8.4 11.8.3 11.8.2 11.8.1 11.8 11.7 11.6.1 11.6 11.5 11.4.3 11.4.2 11.4.1 11.4 11.3 11.2.1 11.2 11.1 11.0 10.15.7 10.15.6 10.1.3 10.10 10.10.1 10.10.2 All 205 releases
booking / includes / page-bookings / booking_listing_row.php

booking_listing_row.php in Booking Calendar 10.15.7, at includes/page-bookings/booking_listing_row.php

701 lines 30.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Booking Listing Template - Booking Row
4 *
5 * @version 1.0
6 * @package Any
7 * @category Templates for Booking Listing
8 * @author wpdevelop
9 *
10 * @web-site https://wpbookingcalendar.com/
11 * @email [email protected]
12 *
13 * @modified 2025-03-24
14 */
15
16 if ( ! defined( 'ABSPATH' ) ) {
17 exit; // Exit, if accessed directly.
18 }
19
20 function wpbc_template__booking_listing_header() {
21
22 // Header
23 ?><script type="text/html" id="tmpl-wpbc_ajx_booking_list_header">
24 <div class="wpbc__list__head wpbc_selectable_head">
25 <div class="wpbc__list__row">
26 <div class="wpbc__list__col wpbc_col_id check-column">
27 <div class="content_text"><input type="checkbox" /></div>
28 </div>
29 <div class="wpbc__list__col">
30 <div class="content_text"><?php WPBC_Listing_Actions__Bulk_Actions::get_button(); ?></div>
31 <div class="wpbc_ui_el__divider"><div class="wpbc_ui_el__vertical_space"></div></div>
32 <div class="content_text"><?php WPBC_Listing_Filters__Expand_Colapse_All::get_button(); ?></div>
33 </div>
34 <div class="wpbc__list__col col__right">
35 <div class="content_text"><?php WPBC_Listing_Filters__Sort_By::get_button(); ?></div>
36 <div class="wpbc_ui_el__divider"><div class="wpbc_ui_el__vertical_line"></div></div>
37 <div class="wpbc_ajx_booking_pagination_header wpbc__list__col"></div>
38 </div>
39 </div>
40 </div>
41 </script><?php
42 }
43
44 /**
45 * Footer Template for listing Table.
46 *
47 * @return void
48 */
49 function wpbc_template__booking_listing_footer() {
50
51 // Footer.
52 ?>
53 <script type="text/html" id="tmpl-wpbc_ajx_booking_list_footer">
54 <div class="wpbc__list__foot wpbc_selectable_foot">
55 <div class="wpbc__list__row">
56 <?php /* ?>
57 <div class="wpbc__list__col wpbc_col_id check-column">
58 <div class="content_text"><input type="checkbox"/></div>
59 </div>
60 <?php */ ?>
61 <div class="wpbc__list__col col__right">
62 <div class="wpbc_ajx_booking_pagination_footer wpbc__list__col"></div>
63 </div>
64 </div>
65 </div>
66 </script>
67 <?php
68 }
69
70
71 function wpbc_template__booking_listing_row() {
72
73 // Rows.
74 ?>
75 <script type="text/html" id="tmpl-wpbc_ajx_booking_list_row">
76 <div id="row_id_{{{data.parsed_fields.booking_id}}}"
77 class="wpbc_listing_usual_row wpbc_list_row wpbc_row wpbc_ui_el__listing_row
78 <# if ( '1' === data.parsed_fields.trash ) { #> wpbc_row_booking_trash <# } #>
79 <# if ( '1' == data.approved ) { #>wpbc_row_booking_approved<# } else { #>wpbc_row_booking_pending<# } #>
80 ">
81 <?php wpbc_for_booking_template__action_read(); ?>
82 <span class="wpbc_row_wrap max_height_a">
83 <div class="wpbc_a_row wpbc_a_row__booking wpbc_a_row_nowrap">
84 <div class="wpbc_a_col wpbc_a_col__check check-column "><?php wpbc_template__booking_listing_row__section_col__checkrow(); ?></div>
85 <div class="wpbc_a_col wpbc_a_col__dates"><?php wpbc_template__booking_listing_row__section_col__dates(); ?></div>
86 <div class="wpbc_a_col wpbc_a_col__data wpbc_a_overflow_hide">
87 <div class="wpbc_a_row wpbc_a_row_nowrap">
88 <div class="wpbc_a_col wpbc_a_col__details_lables wpbc_a_overflow_hide">
89 <div class="wpbc_a_row">
90 <div class="wpbc_a_col"><?php wpbc_template__booking_listing_row__section_col__booking_data(); ?></div>
91 </div>
92 <div class="wpbc_a_row">
93 <div class="wpbc_a_col"><?php wpbc_template__booking_listing_row__section_col__labels(); ?></div>
94 </div>
95 </div>
96 <div class="wpbc_a_col wpbc_a_col__cost"><?php wpbc_template__booking_listing_row__section_col__cost(); ?></div>
97 <div class="wpbc_a_col wpbc_a_col__action"><?php wpbc_template__booking_listing_row__section_col__action_button(); ?></div>
98 </div>
99 <div class="wpbc_a_row wpbc_a_row__notes">
100 <div class="wpbc_a_col"><?php wpbc_template__booking_listing_row__section_col__note_readonly(); ?></div>
101 </div>
102 <div class="wpbc_a_row wpbc_a_row__system">
103 <div class="wpbc_a_col"><?php wpbc_template__booking_listing_row__section_col__sys_info(); ?></div>
104 </div>
105 <?php wpbc_template__booking_listing_row__section_col__hidden_fields(); ?>
106 </div>
107 </div>
108 </span>
109 </div>
110 </script>
111 <?php
112
113 /**
114 * data objet = { "booking_db": {
115 "booking_id": "3",
116 "trash": "0",
117 "sync_gid": "",
118 "is_new": "0",
119 "status": "",
120 "sort_date": "2022-02-03 12:00:01",
121 "modification_date": "2022-03-14 17:48:23",
122 "form": "selectbox-one^rangetime2^12:00 - 14:00~text^name2^Anthony~text^secondname2^Gomez~text^email2^[email protected]~text^address2^144 Hitchcock Rd~text^city2^Jacksonville~text^postcode2^38374~text^country2^US~text^phone2^988-48-45~selectbox-one^visitors2^3~checkbox^children2[]^2~textarea^details2^",
123 "hash": "993086af7a382f3956e6a0010932c856",
124 "booking_type": "2",
125 "remark": null,
126 "cost": "58.00",
127 "pay_status": "",
128 "pay_request": "0"
129 },
130 "id": "3",
131 "approved": "0",
132 "dates": [ "2022-02-03 12:00:01", "2022-02-03 14:00:02" ],
133 "child_id": [ "", "" ],
134 "short_dates": [ "2022-02-03 12:00:01", "-", "2022-02-03 14:00:02" ],
135 "short_dates_child_id": [ "", "", "" ],
136 "parsed_fields": {
137 "rangetime": "12:00 PM - 2:00 PM",
138 "name": "Anthony",
139 "secondname": "Gomez",
140 "email": "[email protected]",
141 "address": "144 Hitchcock Rd",
142 "city": "Jacksonville",
143 "postcode": "38374",
144 "country": "US",
145 "phone": "988-48-45",
146 "visitors": "3",
147 "children": "2",
148 "details": "",
149 "booking_id": "3",
150 "trash": "0",
151 "sync_gid": "",
152 "is_new": "0",
153 "status": "",
154 "sort_date": "2022-02-03 12:00:01",
155 "modification_date": "March 14, 2022 5:48 PM",
156 "hash": "993086af7a382f3956e6a0010932c856",
157 "booking_type": "2",
158 "cost": "58.00",
159 "pay_status": "",
160 "pay_request": "0",
161 "id": "3",
162 "approved": "0"
163 },
164 "templates": {
165 "form_show": "<div class=\"standard-content-form\"> \r\n\t<strong>First Name</strong>:<span class=\"fieldvalue\">Anthony</span>&nbsp;&nbsp; \r\n\t<strong>Last Name</strong>:<span class=\"fieldvalue\">Gomez</span>&nbsp;&nbsp; \r\n\t<strong>Email</strong>:<span class=\"fieldvalue\">[email protected]</span>&nbsp;&nbsp; \r\n\t<strong>Adults</strong>:<span class=\"fieldvalue\"> 3</span>&nbsp;&nbsp; \r\n\t<strong>Children</strong>:<span class=\"fieldvalue\"> 2</span>&nbsp;&nbsp; \r\n\t<strong>Details</strong>:&nbsp;&nbsp;<span class=\"fieldvalue\"> </span> \r\n</div>"
166 },
167 "__search_request_keyword__": ""
168 }
169 */
170 }
171
172 // ---------------------------------------------------------------------------------------------------------------------
173 // Booking Row Elements
174 // ---------------------------------------------------------------------------------------------------------------------
175 function wpbc_template__booking_listing_row__section_col__checkrow(){
176
177 ?>
178 <div class="content_text"><input type="checkbox"/></div>
179 <?php
180 }
181
182 function wpbc_template__booking_listing_row__section_col__dates() {
183
184 ?>
185 <div class="booking_dates_small booking_dates_expand_section" style="<# /* if ( 'short' !== wpbc_ajx_booking_listing.search_get_param('ui_usr__dates_short_wide') ) { #>display: none;<# } */ #>" >
186 <div class="content_text">{{{data.templates.short_dates_content}}}</div>
187 </div>
188 <div class="booking_dates_full booking_dates_expand_section" style="<# /* if ( 'wide' !== wpbc_ajx_booking_listing.search_get_param('ui_usr__dates_short_wide') ) { #>display: none;<# } */ #>" >
189 <div class="content_text">{{{data.templates.wide_dates_content}}}</div>
190 </div>
191 <div class="wpbc_btn_expand_down">
192 <a class="wpbc_btn_expand_down_a"
193 href="javascript:void(0)"
194 onclick="javascript:jQuery(this).parents('.wpbc_row_wrap').toggleClass('max_height_a');jQuery( this ).find('.menu_icon').toggle();">
195 <i class="menu_icon icon-1x wpbc_icn_expand_more" title="<?php echo esc_js( __( 'Expand', 'booking' ) ); ?>"></i>
196 <i class="menu_icon icon-1x wpbc_icn_expand_less" title="<?php echo esc_js( __( 'Colapse', 'booking' ) ); ?>" style="display:none;"></i>
197 </a>
198 </div>
199 <?php
200 }
201
202 function wpbc_template__booking_listing_row__section_col__booking_data(){
203
204 ?>
205 <div class="wpbc_listing_col wpbc_col_data">
206 <div class="content_text">
207 <#
208 var booking_details_simple = data.templates.form_show_simple;
209 var booking_details = data.templates.form_show;
210 var booking_keyword = data[ '__search_request_keyword__' ];
211 booking_details = wpbc_get_highlighted_search_keyword( booking_details, booking_keyword );
212 booking_details_simple = wpbc_get_highlighted_search_keyword( booking_details_simple, booking_keyword );
213 #>
214 <a title="<?php echo esc_js( __( 'Expand', 'booking' ) ); ?>"
215 href="javascript:void(0)"
216 onclick="javascript:jQuery(this).parents('.wpbc_row_wrap').toggleClass('max_height_a');jQuery(this).parents('.wpbc_row_wrap').find('.wpbc_btn_expand_down_a .menu_icon').toggle();"
217 class="booking_details_simple__expand"
218 ><div class="booking_details_simple">{{{booking_details_simple}}}</div></a>
219 <span <?php /* ?>
220 title="<?php echo esc_js( __( 'Collapse', 'booking' ) ); ?>"
221 href="javascript:void(0)"
222 onclick="javascript:jQuery(this).parents('.wpbc_row_wrap').toggleClass('max_height_a');jQuery(this).parents('.wpbc_row_wrap').find('.wpbc_btn_expand_down_a .menu_icon').toggle();"
223 <?php // FixIn: 10.11.3.2 */ ?>
224 class="booking_details_simple__expand"
225 ><div class="booking_details_full">{{{booking_details}}}</div></span>
226 </div>
227 </div>
228 <?php
229 }
230
231 function wpbc_template__booking_listing_row__section_col__labels(){
232
233 ?>
234 <div class="wpbc_listing_col wpbc_col_booking_labels wpbc_col_labels">
235 <div class="content_text">
236 <span class="wpbc_label wpbc_label_booking_id"><span class="label_sup">ID:</span>{{data['parsed_fields']['booking_id']}}</span><?php
237 ?>
238 <#
239 if ( '<?php echo esc_js(__( 'Resource not exist', 'booking' )); ?>' == data.parsed_fields.resource_title ) {
240 #><span class="wpbc_label wpbc_label_resource wpbc_label_deleted_resource">{{{data.parsed_fields.resource_title}}}</span><#
241 } else if ( '' != data.parsed_fields.resource_title ) {
242 #><a href="javascript:void(0)" class="wpbc_label_link " title='<?php echo esc_attr( __( 'Change resource', 'booking' ) ); ?>'
243 onclick="wpbc_boo_listing__click__change_booking_resource( {{data['parsed_fields']['booking_id']}}, {{data['parsed_fields']['resource_id']}} );">
244 <span class="wpbc_label wpbc_label_resource">{{{data.parsed_fields.resource_title}}}</span></a><#
245 }
246
247 if ( '' != data.templates.payment_label_template ) {
248 #><a href="javascript:void(0)" class="wpbc_label_link " title='<?php echo esc_attr( __( 'Update payment status', 'booking' ) ); ?>'
249 onclick="javascript:wpbc_boo_listing__click__set_payment_status( {{data.parsed_fields.booking_id}}, '{{data.parsed_fields.pay_status}}' );">
250 {{{data.templates.payment_label_template}}}
251 </a><#
252 }
253
254 if ( '' != data.parsed_fields.sync_gid ) {
255 #><span class="wpbc_label wpbc_label_imported"><i class="menu_icon icon-1x wpbc_icn_cloud_download system_update_alt"></i><?php echo esc_js(__( 'Imported', 'booking' )); ?></span><#
256 }
257
258 #><span class="wpbc_label wpbc_label_trash<# if ( '1' != data.parsed_fields.trash ) { #> hidden_items <# } #>"><i style="color: #f6efe8;" class="menu_icon icon-1x wpbc_icn_delete_forever"></i><?php echo esc_js(__( 'In Trash', 'booking' )); ?></span><#
259
260 #><span class="wpbc_label wpbc_label_approved<# if ( '0' == data.approved ) { #> hidden_items <# } #>"><i style="color: #def5d4;" class="menu_icon icon-1x wpbc_icn_done_all"></i><?php echo esc_js(__( 'Approved', 'booking' )); ?></span><#
261 #><span class="wpbc_label wpbc_label_pending<# if ( '1' == data.approved ) { #> hidden_items <# } #>"><i style="color: #f6efe8;" class="menu_icon icon-1x wpbc_icn_hourglass_empty"></i><?php echo esc_js(__( 'Pending', 'booking' )); ?></span><#
262
263 #><?php
264
265
266 $labels = get_bk_option( 'wpbc_ajx_booking_labels' );
267 $labels = explode( "\n", $labels );
268 $labels = array_map( 'trim', $labels );
269
270 // Check for Labels and colors.
271 foreach ( $labels as $label ) {
272
273 if ( ( ! empty( $label ) ) && ( false !== strpos( ':', $label ) ) ) {
274 list( $label, $color, $text_color ) = explode( ':', $label );
275 } else {
276 $color = '';
277 $text_color = '';
278 }
279
280 if ( ! empty( $label ) ) {
281 ?><span class="wpbc_label" style="color:<?php echo esc_attr( $text_color ); ?>;background-color:<?php echo esc_attr( $color ); ?>;">{{{data.parsed_fields<?php
282 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
283 echo $label;
284 ?>}}}</span><?php
285 }
286 }
287
288 // Predefined internal Labels.
289 ?>
290 <#
291 if ( ( undefined != data._paid )
292 && ( -1 != data._paid.toLowerCase().indexOf( 'refund' ) )
293 ) {
294 #><span class="wpbc_label booking_label__refund"><?php echo esc_js(__('Refund','booking')); ?></span><#
295 }
296 console.log( 'row listing', data ); // LISTING_ROWS
297 #>
298 </div>
299 </div>
300 <?php
301 }
302
303 function wpbc_template__booking_listing_row__section_col__note_readonly(){
304
305 if ( ! class_exists( 'wpdev_bk_personal' ) ) {
306 return false;
307 }
308
309 $booking_action = 'set_booking_note';
310
311 $el_id = 'ui_btn_' . $booking_action . '__note_readonly';
312
313 if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
314 return false;
315 }
316
317 $params_textarea = array(
318 'id' => "{$booking_action}_text_{{data.parsed_fields.booking_id}}",
319 'name' => "{$booking_action}_text_{{data.parsed_fields.booking_id}}",
320 'label' => '',
321 'style' => '',
322 'class' => "{$booking_action}_text",
323 'disabled' => ! false,
324 'attr' => array(),
325 'rows' => '3',
326 'cols' => '50',
327 'placeholder' => '',
328 'value' => '{{{data.parsed_fields.remark}}}',
329 'is_escape_value' => true,
330 //, 'onfocus' => "console.log( 'ON FOCUS:', jQuery( this ).val() , 'in element:' , jQuery( this ) );" // JavaScript code.
331 //, 'onchange' => "console.log( 'ON CHANGE:', jQuery( this ).val() , 'in element:' , jQuery( this ) );" // JavaScript code.
332 );
333
334 ?>
335 <div class="wpbc_listing_col wpbc_col_note_readonly">
336 <div class="content_text">
337 <div class="ui_remark_section ui_remark_section__note_readonly is_expand_remarks_<?php //echo ($is_expand_remarks) ? 'on' : 'off'; ?>"
338 style="<# if ( 'Off' === wpbc_ajx_booking_listing.search_get_param('ui_usr__is_expand_remarks') ) { #>display0: none;<# } #><# if ( '' == data.parsed_fields.remark.trim() ) { #>display: none;<# } #>"
339 >
340 <label><?php esc_html_e( 'Notes', 'booking' ); ?></label>
341 <a href="javascript:void(0)"
342 onclick="javascript:wpbc_boo_listing__click__set_booking_note( {{data.parsed_fields.booking_id}}, jQuery( '#set_booking_note_text_{{data.parsed_fields.booking_id}}').val() );"
343 style="text-de"
344 >
345 <span><?php esc_html_e('Edit note','booking'); ?>&nbsp;</span>
346 <i class="menu_icon icon-1x wpbc_icn_edit"></i>
347 </a>
348 <?php
349 wpbc_flex_textarea( $params_textarea );
350 ?>
351 </div>
352 </div>
353 </div>
354 <?php
355 }
356
357 function wpbc_template__booking_listing_row__section_col__sys_info(){
358
359 ?>
360 <div class="wpbc_listing_col wpbc_col_sys_info">
361 <div class="content_text">
362 <div class="wpbc_actions_sysinfo">
363 <span class="sysinfo_id"><?php echo esc_js(__( 'Booking ID', 'booking' )); ?>: <strong>{{data['parsed_fields']['booking_id']}}</strong></span><div class="wpbc_ui_el__vetical_line sysinfo_id"></div>
364 <span class="sysinfo_edited"><?php echo esc_js(__( 'Edited', 'booking' )); ?>: <strong>{{data['parsed_fields']['modification_date']}}</strong></span><div class="wpbc_ui_el__vetical_line sysinfo_edited"></div>
365 <span class="sysinfo_created"><?php echo esc_js(__( 'Created', 'booking' )); ?>: <strong>{{data['parsed_fields']['creation_date']}}</strong></span><div class="wpbc_ui_el__vetical_line sysinfo_created"></div>
366 <span class="sysinfo_hash"><?php echo esc_js(__( 'Hash', 'booking' )); ?>: <strong>{{data['parsed_fields']['hash']}}</strong></span><div class="wpbc_ui_el__vetical_line sysinfo_hash"></div>
367 <span class="sysinfo_sync_id"><?php echo esc_js(__( 'Sync ID', 'booking' )); ?>: <strong>{{data['parsed_fields']['sync_id']}}</strong></span>
368 </div>
369 </div>
370 </div>
371 <?php
372 }
373
374 function wpbc_template__booking_listing_row__section_col__hidden_fields(){
375 ?>
376 <#
377 var selected_locale_value = '';
378 if (
379 ( 'undefined' !== typeof( data.parsed_fields.booking_options) )
380 && ( 'undefined' !== typeof( data.parsed_fields.booking_options.booking_meta_locale ) )
381 ){
382 var selected_locale_value = data.parsed_fields.booking_options.booking_meta_locale;
383 }
384 #>
385 <input type="hidden" id="locale_for_booking{{data['parsed_fields']['booking_id']}}" name="locale_for_booking{{data['parsed_fields']['booking_id']}}" value="{{selected_locale_value}}" />
386 <?php
387 }
388
389 function wpbc_template__booking_listing_row__section_col__cost() {
390
391 if ( ! class_exists( 'wpdev_bk_biz_s' ) ) {
392 return false;
393 }
394
395 ?>
396 <div class="wpbc_listing_col wpbc_col_cost">
397 <a href="javascript:void(0)"
398 onclick="javascript:wpbc_boo_listing__click__set_booking_cost( {{data.parsed_fields.booking_id}}, '{{data.parsed_fields.cost}}' );">
399 {{{data.parsed_fields.currency_symbol}}}
400 {{data.parsed_fields.cost}}
401 </a>
402 </div>
403 <?php
404 }
405
406 function wpbc_template__booking_listing_row__section_col__action_button() {
407
408 ?>
409 <div class="wpbc_listing_col wpbc_col_action">
410 <?php
411 wpbc_template__booking_listing__el__btn_action()
412 ?>
413 </div>
414 <?php
415 }
416
417 // ---------------------------------------------------------------------------------------------------------------------
418 // Action Button
419 // ---------------------------------------------------------------------------------------------------------------------
420
421 function wpbc_template__booking_listing__el__btn_action(){
422
423 $el_arr = array(
424 'title' => '',
425 'font_icon' => 'wpbc_icn_more_vert',
426 'position' => 'right',
427 'has_down_arrow' => false,
428 'container_style' => 'position:absolute;',
429 'items' => array(),
430 );
431
432 $el_arr['items'][] = array( 'type' => 'html', 'html' => wpbc_template__booking_listing__action_approved() );
433 $el_arr['items'][] = array( 'type' => 'html', 'html' => wpbc_template__booking_listing__action_pending() );
434 $el_arr['items'][] = array( 'type' => 'divider' );
435 $el_arr['items'][] = array( 'type' => 'html', 'html' => wpbc_template__booking_listing__action_edit_booking() );
436 $el_arr['items'][] = array( 'type' => 'html', 'html' => WPBC_Action_Booking_Note::get_button() );
437 $el_arr['items'][] = array( 'type' => 'html', 'html' => wpbc_template__booking_listing__action_print() );
438 if ( class_exists( 'wpdev_bk_biz_s' ) ) {
439 $el_arr['items'][] = array( 'type' => 'header', 'title' => __( 'Collect Payment', 'booking' ) );
440 $el_arr['items'][] = array( 'type' => 'html', 'html' => WPBC_Action_Payment_Request::get_button() );
441 $el_arr['items'][] = array( 'type' => 'divider' );
442 $el_arr['items'][] = array( 'type' => 'header', 'title' => __( 'Payment Price and Status', 'booking' ) );
443 $el_arr['items'][] = array( 'type' => 'html', 'html' => WPBC_Action_Booking_Cost::get_button() );
444 $el_arr['items'][] = array( 'type' => 'html', 'html' => WPBC_Action_Payment_Satatus::get_button() );
445 }
446 $el_arr['items'][] = array( 'type' => 'divider' );
447 $el_arr['items'][] = array( 'type' => 'html', 'html' => wpbc_template__booking_listing__action_add_google_calendar() );
448 $el_arr['items'][] = array( 'type' => 'html', 'html' => WPBC_Action_Change_Resource::get_button() );
449 $el_arr['items'][] = array( 'type' => 'html', 'html' => WPBC_Action_Duplicate_Booking::get_button() );
450 $el_arr['items'][] = array( 'type' => 'html', 'html' => WPBC_Action_Change_Locale::get_button() );
451 $el_arr['items'][] = array( 'type' => 'divider' );
452 $el_arr['items'][] = array( 'type' => 'html', 'html' => wpbc_template__booking_listing__action_trash() );
453 $el_arr['items'][] = array( 'type' => 'html', 'html' => wpbc_template__booking_listing__action_trash_restore() );
454 $el_arr['items'][] = array( 'type' => 'html', 'html' => wpbc_template__booking_listing__action_delete() );
455
456 $el_arr = apply_filters( 'wpbc_template__booking_listing__el__btn_action' , $el_arr );
457
458 wpbc_ui_el__dropdown_menu( $el_arr );
459 }
460
461 // ---------------------------------------------------------------------------------------------------------------------
462 // -- Action for Options in Dropdown Menu
463 // ---------------------------------------------------------------------------------------------------------------------
464
465 /**
466 * -- Approve -- Option for "Actions Dropdown Menu"
467 *
468 * @return string
469 */
470 function wpbc_template__booking_listing__action_approved() {
471
472 $booking_action = 'set_booking_approved';
473 if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
474 return false;
475 }
476 $html_for_drop_down_option = "<# if ( '0' == data['approved']) { #>";
477 $html_for_drop_down_option .= "<a class=\"ul_dropdown_menu_li_action ul_dropdown_menu_li_action_" . $booking_action . "\"
478 href=\"javascript:void(0)\"
479 onclick=\"wpbc_ajx_booking_ajax_action_request( {
480 'booking_action' : '{$booking_action}',
481 'booking_id' : {{data['parsed_fields']['booking_id']}}
482 } );
483 wpbc_button_enable_loading_icon( this );\"
484 >" .
485 esc_js( __( 'Approve', 'booking' ) ) .
486 "<i class='menu_icon icon-1x wpbc_icn_done_all'></i>" .
487 '</a>';
488 $html_for_drop_down_option .= '<# } #>';
489
490 return $html_for_drop_down_option;
491 }
492
493 /**
494 * -- Pending -- Option for "Actions Dropdown Menu"
495 *
496 * @return string
497 */
498 function wpbc_template__booking_listing__action_pending() {
499
500 $booking_action = 'set_booking_pending';
501 if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
502 return false;
503 }
504
505 $html_for_drop_down_option = "<# if ( '1' == data['approved']) { #>";
506 $html_for_drop_down_option .= "<a class=\"ul_dropdown_menu_li_action ul_dropdown_menu_li_action_" . $booking_action . "\"
507 href=\"javascript:void(0)\"
508 onclick=\"if ( ! wpbc_is_modal_accessible( '#wpbc_modal__set_booking_pending__section' ) ) {
509 return false;
510 }
511 jQuery( '.wpbc_modal__title__reason__booking_id' ).html( 'ID: ' + {{data.parsed_fields.booking_id}} );
512 jQuery( '#wpbc_modal__set_booking_pending__booking_id').val('{{data.parsed_fields.booking_id}}');
513 jQuery( '#wpbc_modal__set_booking_pending__section' ).wpbc_my_modal( 'show' );
514 jQuery( '#wpbc_modal__set_booking_pending__value' ).trigger( 'focus' );
515 \"
516 >" .
517 esc_js( __( 'Set as Pending', 'booking' ) ) .
518 "<i class='menu_icon icon-1x wpbc_icn_hourglass_empty'></i>" .
519 '</a>';
520 $html_for_drop_down_option .= '<# } #>';
521
522 return $html_for_drop_down_option;
523 }
524
525 /**
526 * -- Edit Booking -- Option for "Actions Dropdown Menu"
527 *
528 * @return string
529 */
530 function wpbc_template__booking_listing__action_edit_booking() {
531
532 $booking_action = 'edit_booking';
533
534 if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
535 return false;
536 }
537
538 $edit_booking_url = 'admin.php?page=' . wpbc_get_new_booking_url( false, false );
539 $edit_booking_url .= '&booking_type={{data.parsed_fields.resource_id}}&booking_hash={{data.parsed_fields.hash}}&parent_res=1';
540 $edit_booking_url .= '&booking_form={{data.parsed_fields.wpbc_custom_booking_form}}'; // FixIn: 9.4.3.12.
541 $edit_booking_url .= '&is_show_payment_form=Off'; // FixIn: 9.9.0.38.
542 // FixIn: 10.10.1.2 $edit_booking_url .= ( 'Off' !== get_bk_option( 'booking_is_resource_no_update__during_editing' ) ) ? '&resource_no_update=1' : ''; // FixIn: 9.4.2.3.
543
544 $html_for_drop_down_option = "<a href='" . $edit_booking_url . "'
545 class=\"ul_dropdown_menu_li_action ul_dropdown_menu_li_action_" . $booking_action .
546 " <# if ( '' == data['parsed_fields']['hash']) { #>wpbc_field_disabled<# } #>\" >" .
547 esc_js( __( 'Edit booking', 'booking' ) ) .
548 "<i class='menu_icon icon-1x wpbc_icn_draw'></i>" .
549 '</a>';
550
551 return $html_for_drop_down_option;
552 }
553
554 /**
555 * -- Add to Google Calendar -- Option for "Actions Dropdown Menu"
556 *
557 * @return string
558 */
559 function wpbc_template__booking_listing__action_add_google_calendar() {
560
561 $booking_action = 'booking_add_google_calendar';
562
563 if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
564 return false;
565 }
566
567 $edit_booking_url = '{{{data.parsed_fields.google_calendar_link}}}';
568
569 $html_for_drop_down_option = "<a href='" . $edit_booking_url . "'
570 target='_blank'
571 class='ul_dropdown_menu_li_action ul_dropdown_menu_li_action_" . $booking_action . "' >" .
572 esc_js( __( 'Add to Google Calendar', 'booking' ) ) .
573 "<i class='menu_icon icon-1x wpbc_icn_event'></i>" .
574 '</a>';
575
576 return $html_for_drop_down_option;
577 }
578
579 /**
580 * -- Trash -- Option for "Actions Dropdown Menu"
581 *
582 * @return string
583 */
584 function wpbc_template__booking_listing__action_trash() {
585
586 $booking_action = 'move_booking_to_trash';
587
588 if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
589 return false;
590 }
591
592 $html_for_drop_down_option = "<# if ( '0' == data['parsed_fields']['trash'] ) { #>";
593 $html_for_drop_down_option .= "<a class=\"ul_dropdown_menu_li_action ul_dropdown_menu_li_action_" . $booking_action . "\"
594 href=\"javascript:void(0)\"
595 onclick=\"if ( ! wpbc_is_modal_accessible( '#wpbc_modal__move_booking_to_trash__section' ) ) {
596 return false;
597 }
598 jQuery( '#wpbc_modal__move_booking_to_trash__booking_id').val('{{data.parsed_fields.booking_id}}');
599 jQuery( '.wpbc_modal__title__reason__booking_id' ).html( 'ID: ' + {{data['parsed_fields']['booking_id']}} );
600 jQuery( '#wpbc_modal__move_booking_to_trash__section' ).wpbc_my_modal( 'show' );
601 jQuery( '#wpbc_modal__move_booking_to_trash__value' ).trigger( 'focus' );
602 \"
603 >" .
604 esc_js( __( 'Reject - move to trash', 'booking' ) ) .
605 "<i class='menu_icon icon-1x wpbc_icn_delete_outline'></i>" .
606 '</a>';
607 $html_for_drop_down_option .= '<# } #>';
608
609 return $html_for_drop_down_option;
610 }
611
612 /**
613 * -- Restore -- Option for "Actions Dropdown Menu"
614 *
615 * @return string
616 */
617 function wpbc_template__booking_listing__action_trash_restore() {
618
619 $booking_action = 'restore_booking_from_trash';
620
621 if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
622 return false;
623 }
624
625 $html_for_drop_down_option = "<# if ( '1' == data['parsed_fields']['trash'] ) { #>";
626 $html_for_drop_down_option .= "<a class=\"ul_dropdown_menu_li_action ul_dropdown_menu_li_action_" . $booking_action . "\"
627 href=\"javascript:void(0)\"
628 onclick=\"if ( ! wpbc_is_modal_accessible( '#wpbc_modal__restore_booking_from_trash__section' ) ) {
629 return false;
630 }
631 jQuery( '#wpbc_modal__restore_booking_from_trash__booking_id').val('{{data.parsed_fields.booking_id}}');
632 jQuery( '.wpbc_modal__title__reason__booking_id' ).html( 'ID: ' + {{data.parsed_fields.booking_id}} );
633 jQuery( '#wpbc_modal__restore_booking_from_trash__section' ).wpbc_my_modal( 'show' );
634 jQuery( '#wpbc_modal__restore_booking_from_trash__value' ).trigger( 'focus' );
635 \"
636 >" .
637 esc_js( __( 'Restore', 'booking' ) ) .
638 "<i class='menu_icon icon-1x wpbc_icn_rotate_left'></i>" .
639 '</a>';
640 $html_for_drop_down_option .= '<# } #>';
641
642 return $html_for_drop_down_option;
643 }
644
645 /**
646 * -- Completely Delete -- Option for "Actions Dropdown Menu"
647 *
648 * @return string
649 */
650 function wpbc_template__booking_listing__action_delete() {
651
652 $booking_action = 'delete_booking_completely';
653
654 if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
655 return false;
656 }
657
658 $html_for_drop_down_option = "<# if ( '1' == data['parsed_fields']['trash'] ) { #>";
659 $html_for_drop_down_option .= "<a class=\"ul_dropdown_menu_li_action ul_dropdown_menu_li_action_" . $booking_action . "\"
660 href=\"javascript:void(0)\"
661 onclick=\"if ( ! wpbc_is_modal_accessible( '#wpbc_modal__delete_booking_completely__section' ) ) {
662 return false;
663 }
664 jQuery( '#wpbc_modal__delete_booking_completely__booking_id').val('{{data.parsed_fields.booking_id}}');
665 jQuery( '.wpbc_modal__title__reason__booking_id' ).html( 'ID: ' + {{data['parsed_fields']['booking_id']}} );
666 jQuery( '#wpbc_modal__delete_booking_completely__section' ).wpbc_my_modal( 'show' );
667 jQuery( '#wpbc_modal__delete_booking_completely__value' ).trigger( 'focus' );
668 \"
669 >" .
670 esc_js( __( 'Completely Delete', 'booking' ) ) .
671 "<i class='menu_icon icon-1x wpbc_icn_close'></i>" .
672 '</a>';
673 $html_for_drop_down_option .= '<# } #>';
674
675 return $html_for_drop_down_option;
676 }
677
678 /**
679 * -- Print one booking -- Option for "Actions Dropdown Menu"
680 *
681 * @return string
682 */
683 function wpbc_template__booking_listing__action_print() {
684
685 $booking_action = 'set_print';
686
687 if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
688 return false;
689 }
690
691 $html_for_drop_down_option = "<a class=\"ul_dropdown_menu_li_action ul_dropdown_menu_li_action_" . $booking_action . "\"
692 href=\"javascript:void(0)\"
693 onclick=\"wpbc_print_dialog__show( {{data['parsed_fields']['booking_id']}} );\"
694 >" .
695 esc_js( __( 'Print', 'booking' ) ) .
696 "<i class='menu_icon icon-1x wpbc_icn_print'></i>" .
697 '</a>';
698
699 return $html_for_drop_down_option;
700 }
701