PluginProbe
Booking Calendar / 10.11
Booking Calendar v10.11
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 10.11 All 204 releases
booking / includes / page-bookings / booking_listing_row.php

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

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