PluginProbe
Booking Calendar / 10.11.3
Booking Calendar v10.11.3
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 10.11.2 All 203 releases
booking / includes / _toolbar_ui / _out / toolbar_ui.js

toolbar_ui.js in Booking Calendar 10.11.3, at includes/_toolbar_ui/_out/toolbar_ui.js

93 lines 15.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 "use strict";
2
3 /**
4 * Encode HTML text to safe HTML entities
5 *
6 * Replace all characters in the given range (unicode 00A0 - 9999, as well as ampersand, greater & less than)
7 * with their html entity equivalents, which is simply &#nnn; where nnn is the unicode value we get from charCodeAt
8 *
9 * @param rawStr
10 * @returns {*}
11 */
12 function wpbc_get_safe_html_text(rawStr) {
13 var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/g, function (i) {
14 return '&#' + i.charCodeAt(0) + ';';
15 });
16 return encodedStr;
17 }
18
19 /**
20 * Change Value and Title of dropdown after clicking on Apply button
21 *
22 * @param params Example: { 'dropdown_id': 'wh_booking_date', 'dropdown_radio_name': 'ui_wh_booking_date_radio' }
23 */
24 function wpbc_ui_dropdown_apply_click(params) {
25 // Get input values of all elements in LI section, where RADIO was selected
26 var filter_ui_dates_arr = jQuery('input[name="' + params['dropdown_radio_name'] + '"]:checked').parents('li').find(':input').map(function () {
27 return wpbc_get_safe_html_text(jQuery(this).val());
28 }).get();
29 if (0 !== filter_ui_dates_arr.length) {
30 // Continue only if radio button was selected, and we are having value
31
32 // Get titles of all elements in LI section, where RADIO was selected
33 var filter_ui_titles_arr = jQuery('input[name="' + params['dropdown_radio_name'] + '"]:checked').parents('li').find(':input').map(function () {
34 if ('text' == jQuery(this).prop('type')) {
35 return jQuery(this).val();
36 }
37 if ('selectbox-one' == jQuery(this).prop('type') || 'select-one' == jQuery(this).prop('type')) {
38 return jQuery(this).find(':selected').text();
39 }
40 if ('radio' == jQuery(this).prop('type') || 'checkbox' == jQuery(this).prop('type')) {
41 var input_selected = jQuery(this).filter(':checked').next('.wpbc_ui_control_label').html();
42 if (undefined == input_selected) {
43 input_selected = jQuery(this).filter(':checked').prev('.wpbc_ui_control_label').html();
44 }
45 return undefined !== input_selected ? input_selected : '';
46 }
47 return jQuery(this).val();
48 }).get();
49
50 // Update Value to dropdown input hidden elements. Such value stringify.
51 jQuery('#' + params['dropdown_id']).val(JSON.stringify(filter_ui_dates_arr));
52
53 // Generate change action, for ability to send Ajax request
54 jQuery('#' + params['dropdown_id']).trigger('change');
55
56 // Get Label of selected Radio button
57 var filter_ui_dates_title = jQuery('input[name="' + params['dropdown_radio_name'] + '"]:checked').next('.wpbc_ui_control_label').html() + ': ';
58
59 // Remove selected value of radio button from beginning, we will use Label title instead
60 filter_ui_titles_arr.shift();
61
62 // Update Title in dropdown
63 var encoded_html_text = wpbc_get_safe_html_text(filter_ui_dates_title + filter_ui_titles_arr.join(' - '));
64 jQuery('#' + params['dropdown_id'] + '_selector .wpbc_selected_in_dropdown').html(encoded_html_text);
65 }
66 jQuery('#' + params['dropdown_id'] + '_container').hide();
67 }
68
69 /**
70 * Close dropdown after clicking on Close button
71 *
72 * @param dropdown_id ID of dropdown
73 */
74 function wpbc_ui_dropdown_close_click(dropdown_id) {
75 jQuery('#' + dropdown_id + '_container').hide();
76 }
77
78 /**
79 * Simple option click on dropdown
80 *
81 * @param params Example: { 'dropdown_id': 'wh_booking_date', 'is_this_simple_list': true, 'value': '5', '_this': this }
82 */
83 function wpbc_ui_dropdown_simple_click(params) {
84 jQuery('#' + params['dropdown_id'] + '_selector .wpbc_selected_in_dropdown').html(jQuery(params['_this']).html());
85 jQuery('#' + params['dropdown_id']).val(JSON.stringify([params['value']]));
86 jQuery('#' + params['dropdown_id'] + '_container li input[type=checkbox],' + '#' + params['dropdown_id'] + '_container li input[type=radio]').prop('checked', false);
87 jQuery('#' + params['dropdown_id']).trigger('change');
88 if (!params['is_this_simple_list']) {
89 jQuery('#' + params['dropdown_id'] + '_container').hide();
90 }
91 }
92 //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZXMvX3Rvb2xiYXJfdWkvX291dC90b29sYmFyX3VpLmpzIiwibmFtZXMiOlsid3BiY19nZXRfc2FmZV9odG1sX3RleHQiLCJyYXdTdHIiLCJlbmNvZGVkU3RyIiwicmVwbGFjZSIsImkiLCJjaGFyQ29kZUF0Iiwid3BiY191aV9kcm9wZG93bl9hcHBseV9jbGljayIsInBhcmFtcyIsImZpbHRlcl91aV9kYXRlc19hcnIiLCJqUXVlcnkiLCJwYXJlbnRzIiwiZmluZCIsIm1hcCIsInZhbCIsImdldCIsImxlbmd0aCIsImZpbHRlcl91aV90aXRsZXNfYXJyIiwicHJvcCIsInRleHQiLCJpbnB1dF9zZWxlY3RlZCIsImZpbHRlciIsIm5leHQiLCJodG1sIiwidW5kZWZpbmVkIiwicHJldiIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0cmlnZ2VyIiwiZmlsdGVyX3VpX2RhdGVzX3RpdGxlIiwic2hpZnQiLCJlbmNvZGVkX2h0bWxfdGV4dCIsImpvaW4iLCJoaWRlIiwid3BiY191aV9kcm9wZG93bl9jbG9zZV9jbGljayIsImRyb3Bkb3duX2lkIiwid3BiY191aV9kcm9wZG93bl9zaW1wbGVfY2xpY2siXSwic291cmNlcyI6WyJpbmNsdWRlcy9fdG9vbGJhcl91aS9fc3JjL3Rvb2xiYXJfdWkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5cclxuLyoqXHJcbiAqIEVuY29kZSBIVE1MIHRleHQgdG8gc2FmZSBIVE1MIGVudGl0aWVzXHJcbiAqXHJcbiAqIFJlcGxhY2UgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIGdpdmVuIHJhbmdlICh1bmljb2RlIDAwQTAgLSA5OTk5LCBhcyB3ZWxsIGFzIGFtcGVyc2FuZCwgZ3JlYXRlciAmIGxlc3MgdGhhbilcclxuICogd2l0aCB0aGVpciBodG1sIGVudGl0eSBlcXVpdmFsZW50cywgd2hpY2ggaXMgc2ltcGx5ICYjbm5uOyB3aGVyZSBubm4gaXMgdGhlIHVuaWNvZGUgdmFsdWUgd2UgZ2V0IGZyb20gY2hhckNvZGVBdFxyXG4gKlxyXG4gKiBAcGFyYW0gcmF3U3RyXHJcbiAqIEByZXR1cm5zIHsqfVxyXG4gKi9cclxuZnVuY3Rpb24gd3BiY19nZXRfc2FmZV9odG1sX3RleHQoIHJhd1N0ciApe1xyXG5cclxuXHR2YXIgZW5jb2RlZFN0ciA9IHJhd1N0ci5yZXBsYWNlKCAvW1xcdTAwQTAtXFx1OTk5OTw+XFwmXS9nLCBmdW5jdGlvbiAoIGkgKXtcclxuXHRcdHJldHVybiAnJiMnICsgaS5jaGFyQ29kZUF0KCAwICkgKyAnOyc7XHJcblx0fSApO1xyXG5cclxuXHRyZXR1cm4gZW5jb2RlZFN0cjtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDaGFuZ2UgVmFsdWUgYW5kIFRpdGxlIG9mIGRyb3Bkb3duIGFmdGVyIGNsaWNraW5nIG9uIEFwcGx5IGJ1dHRvblxyXG4gKlxyXG4gKiBAcGFyYW0gcGFyYW1zXHRFeGFtcGxlOiB7ICdkcm9wZG93bl9pZCc6ICd3aF9ib29raW5nX2RhdGUnLCAnZHJvcGRvd25fcmFkaW9fbmFtZSc6ICd1aV93aF9ib29raW5nX2RhdGVfcmFkaW8nIH1cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfdWlfZHJvcGRvd25fYXBwbHlfY2xpY2soIHBhcmFtcyApe1xyXG5cclxuXHQvLyBHZXQgaW5wdXQgdmFsdWVzIG9mIGFsbCBlbGVtZW50cyBpbiBMSSBzZWN0aW9uLCAgd2hlcmUgUkFESU8gd2FzIHNlbGVjdGVkXHJcblx0dmFyIGZpbHRlcl91aV9kYXRlc19hcnIgPSBqUXVlcnkoICdpbnB1dFtuYW1lPVwiJyArIHBhcmFtc1sgJ2Ryb3Bkb3duX3JhZGlvX25hbWUnIF0gKyAnXCJdOmNoZWNrZWQnIClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQucGFyZW50cyggJ2xpJyApLmZpbmQoICc6aW5wdXQnIClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQubWFwKCBmdW5jdGlvbiAoKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiB3cGJjX2dldF9zYWZlX2h0bWxfdGV4dCggalF1ZXJ5KCB0aGlzICkudmFsKCkgKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9ICkuZ2V0KCk7XHJcblxyXG5cdGlmICggMCAhPT0gZmlsdGVyX3VpX2RhdGVzX2Fyci5sZW5ndGggKXsgIC8vIENvbnRpbnVlIG9ubHkgaWYgcmFkaW8gYnV0dG9uICB3YXMgc2VsZWN0ZWQsIGFuZCB3ZSBhcmUgaGF2aW5nIHZhbHVlXHJcblxyXG5cdFx0Ly8gR2V0IHRpdGxlcyBvZiBhbGwgZWxlbWVudHMgaW4gTEkgc2VjdGlvbiwgIHdoZXJlIFJBRElPIHdhcyBzZWxlY3RlZFxyXG5cdFx0dmFyIGZpbHRlcl91aV90aXRsZXNfYXJyID0galF1ZXJ5KCAnaW5wdXRbbmFtZT1cIicgKyBwYXJhbXNbICdkcm9wZG93bl9yYWRpb19uYW1lJyBdICsgJ1wiXTpjaGVja2VkJyApXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ICBcdC5wYXJlbnRzKCAnbGknICkuZmluZCggJzppbnB1dCcgKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Lm1hcCggZnVuY3Rpb24gKCl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggJ3RleHQnID09IGpRdWVyeSggdGhpcyApLnByb3AoICd0eXBlJyApICl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGpRdWVyeSggdGhpcyApLnZhbCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggKCAnc2VsZWN0Ym94LW9uZScgPT0galF1ZXJ5KCB0aGlzICkucHJvcCggJ3R5cGUnICkgKSB8fCAoICdzZWxlY3Qtb25lJyA9PSBqUXVlcnkoIHRoaXMgKS5wcm9wKCAndHlwZScgKSApICl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGpRdWVyeSggdGhpcyApLmZpbmQoICc6c2VsZWN0ZWQnICkudGV4dCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCggJ3JhZGlvJyA9PSBqUXVlcnkoIHRoaXMgKS5wcm9wKCAndHlwZScgKSApXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0IHx8ICggJ2NoZWNrYm94JyA9PSBqUXVlcnkoIHRoaXMgKS5wcm9wKCAndHlwZScgKSApXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGlucHV0X3NlbGVjdGVkID0galF1ZXJ5KCB0aGlzICkuZmlsdGVyKCc6Y2hlY2tlZCcpLm5leHQoICcud3BiY191aV9jb250cm9sX2xhYmVsJyApLmh0bWwoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIHVuZGVmaW5lZCA9PSBpbnB1dF9zZWxlY3RlZCApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlucHV0X3NlbGVjdGVkID0galF1ZXJ5KCB0aGlzICkuZmlsdGVyKCc6Y2hlY2tlZCcpLnByZXYoICcud3BiY191aV9jb250cm9sX2xhYmVsJyApLmh0bWwoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuICggdW5kZWZpbmVkICE9PSBpbnB1dF9zZWxlY3RlZCApID8gaW5wdXRfc2VsZWN0ZWQgOiAnJztcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGpRdWVyeSggdGhpcyApLnZhbCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSApLmdldCgpO1xyXG5cclxuXHRcdC8vIFVwZGF0ZSBWYWx1ZSB0byAgZHJvcGRvd24gaW5wdXQgaGlkZGVuIGVsZW1lbnRzLiBTdWNoICB2YWx1ZSBzdHJpbmdpZnkuXHJcblx0XHRqUXVlcnkoICcjJyArIHBhcmFtc1sgJ2Ryb3Bkb3duX2lkJyBdICkudmFsKCBKU09OLnN0cmluZ2lmeSggZmlsdGVyX3VpX2RhdGVzX2FyciApICk7XHJcblxyXG5cdFx0Ly8gR2VuZXJhdGUgY2hhbmdlIGFjdGlvbiwgIGZvciBhYmlsaXR5IHRvICBzZW5kIEFqYXggcmVxdWVzdFxyXG5cdFx0alF1ZXJ5KCAnIycgKyBwYXJhbXNbICdkcm9wZG93bl9pZCcgXSApLnRyaWdnZXIoICdjaGFuZ2UnICk7XHJcblxyXG5cdFx0Ly8gR2V0IExhYmVsIG9mIHNlbGVjdGVkIFJhZGlvIGJ1dHRvblxyXG5cdFx0dmFyIGZpbHRlcl91aV9kYXRlc190aXRsZSA9IGpRdWVyeSggJ2lucHV0W25hbWU9XCInICsgcGFyYW1zWyAnZHJvcGRvd25fcmFkaW9fbmFtZScgXSArICdcIl06Y2hlY2tlZCcgKS5uZXh0KCAnLndwYmNfdWlfY29udHJvbF9sYWJlbCcgKS5odG1sKCkgKyAnOiAnO1xyXG5cclxuXHRcdC8vIFJlbW92ZSBzZWxlY3RlZCB2YWx1ZSBvZiByYWRpbyBidXR0b24gZnJvbSBiZWdpbm5pbmcsIHdlIHdpbGwgdXNlIExhYmVsIHRpdGxlIGluc3RlYWRcclxuXHRcdGZpbHRlcl91aV90aXRsZXNfYXJyLnNoaWZ0KCk7XHJcblxyXG5cdFx0Ly8gVXBkYXRlIFRpdGxlIGluIGRyb3Bkb3duXHJcblx0XHR2YXIgZW5jb2RlZF9odG1sX3RleHQgPSB3cGJjX2dldF9zYWZlX2h0bWxfdGV4dCggZmlsdGVyX3VpX2RhdGVzX3RpdGxlICsgZmlsdGVyX3VpX3RpdGxlc19hcnIuam9pbiggJyAtICcgKSApO1xyXG5cdFx0alF1ZXJ5KCAnIycgKyBwYXJhbXNbICdkcm9wZG93bl9pZCcgXSArICdfc2VsZWN0b3IgLndwYmNfc2VsZWN0ZWRfaW5fZHJvcGRvd24nICkuaHRtbCggZW5jb2RlZF9odG1sX3RleHQgKTtcclxuXHR9XHJcblxyXG5cdGpRdWVyeSggJyMnICsgcGFyYW1zWyAnZHJvcGRvd25faWQnIF0gKyAnX2NvbnRhaW5lcicgKS5oaWRlKCk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ2xvc2UgZHJvcGRvd24gYWZ0ZXIgY2xpY2tpbmcgb24gQ2xvc2UgYnV0dG9uXHJcbiAqXHJcbiAqIEBwYXJhbSBkcm9wZG93bl9pZFx0SUQgb2YgZHJvcGRvd25cclxuICovXHJcbmZ1bmN0aW9uIHdwYmNfdWlfZHJvcGRvd25fY2xvc2VfY2xpY2soIGRyb3Bkb3duX2lkICl7XHJcblxyXG5cdGpRdWVyeSggJyMnICsgZHJvcGRvd25faWQgKyAnX2NvbnRhaW5lcicgKS5oaWRlKCk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU2ltcGxlIG9wdGlvbiBjbGljayBvbiBkcm9wZG93blxyXG4gKlxyXG4gKiBAcGFyYW0gcGFyYW1zXHRFeGFtcGxlOiB7ICdkcm9wZG93bl9pZCc6ICd3aF9ib29raW5nX2RhdGUnLCAnaXNfdGhpc19zaW1wbGVfbGlzdCc6IHRydWUsICd2YWx1ZSc6ICc1JywgJ190aGlzJzogdGhpcyB9XHJcbiAqL1xyXG5mdW5jdGlvbiB3cGJjX3VpX2Ryb3Bkb3duX3NpbXBsZV9jbGljayggcGFyYW1zICl7XHJcblxyXG5cdGpRdWVyeSggJyMnICsgcGFyYW1zWyAnZHJvcGRvd25faWQnIF0gKyAnX3NlbGVjdG9yIC53cGJjX3NlbGVjdGVkX2luX2Ryb3Bkb3duJyApLmh0bWwoIGpRdWVyeSggcGFyYW1zWyAnX3RoaXMnIF0gKS5odG1sKCkgKTtcclxuXHJcblx0alF1ZXJ5KCAnIycgKyBwYXJhbXNbICdkcm9wZG93bl9pZCcgXSApLnZhbCggSlNPTi5zdHJpbmdpZnkoIFtwYXJhbXNbICd2YWx1ZScgXV0gKSApO1xyXG5cclxuXHRqUXVlcnkoICcjJyArIHBhcmFtc1sgJ2Ryb3Bkb3duX2lkJyBdICsgJ19jb250YWluZXIgbGkgaW5wdXRbdHlwZT1jaGVja2JveF0sJ1xyXG5cdFx0ICArICcjJyArIHBhcmFtc1sgJ2Ryb3Bkb3duX2lkJyBdICsgJ19jb250YWluZXIgbGkgaW5wdXRbdHlwZT1yYWRpb10nICkucHJvcCggJ2NoZWNrZWQnLCBmYWxzZSApO1xyXG5cclxuXHRqUXVlcnkoICcjJyArIHBhcmFtc1sgJ2Ryb3Bkb3duX2lkJyBdICkudHJpZ2dlciggJ2NoYW5nZScgKTtcclxuXHJcblx0aWYgKCAhIHBhcmFtc1sgJ2lzX3RoaXNfc2ltcGxlX2xpc3QnIF0gKXtcclxuXHRcdGpRdWVyeSggJyMnICsgcGFyYW1zWyAnZHJvcGRvd25faWQnIF0gKyAnX2NvbnRhaW5lcicgKS5oaWRlKCk7XHJcblx0fVxyXG59Il0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUdaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLHVCQUF1QkEsQ0FBRUMsTUFBTSxFQUFFO0VBRXpDLElBQUlDLFVBQVUsR0FBR0QsTUFBTSxDQUFDRSxPQUFPLENBQUUsc0JBQXNCLEVBQUUsVUFBV0MsQ0FBQyxFQUFFO0lBQ3RFLE9BQU8sSUFBSSxHQUFHQSxDQUFDLENBQUNDLFVBQVUsQ0FBRSxDQUFFLENBQUMsR0FBRyxHQUFHO0VBQ3RDLENBQUUsQ0FBQztFQUVILE9BQU9ILFVBQVU7QUFDbEI7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNJLDRCQUE0QkEsQ0FBRUMsTUFBTSxFQUFFO0VBRTlDO0VBQ0EsSUFBSUMsbUJBQW1CLEdBQUdDLE1BQU0sQ0FBRSxjQUFjLEdBQUdGLE1BQU0sQ0FBRSxxQkFBcUIsQ0FBRSxHQUFHLFlBQWEsQ0FBQyxDQUN6RkcsT0FBTyxDQUFFLElBQUssQ0FBQyxDQUFDQyxJQUFJLENBQUUsUUFBUyxDQUFDLENBQ2hDQyxHQUFHLENBQUUsWUFBVztJQUNoQixPQUFPWix1QkFBdUIsQ0FBRVMsTUFBTSxDQUFFLElBQUssQ0FBQyxDQUFDSSxHQUFHLENBQUMsQ0FBRSxDQUFDO0VBQ3ZELENBQUUsQ0FBQyxDQUFDQyxHQUFHLENBQUMsQ0FBQztFQUVsQixJQUFLLENBQUMsS0FBS04sbUJBQW1CLENBQUNPLE1BQU0sRUFBRTtJQUFHOztJQUV6QztJQUNBLElBQUlDLG9CQUFvQixHQUFH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
93