PluginProbe
Booking Calendar / 11.4.3
Booking Calendar v11.4.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 / __js / client / cal / days_select_custom.js

days_select_custom.js in Booking Calendar 11.4.3, at includes/__js/client/cal/days_select_custom.js

231 lines 8.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * ====================================================================================================================
3 * includes/__js/cal/days_select_custom.js
4 * ====================================================================================================================
5 */
6
7 // FixIn: 9.8.9.2.
8
9 /**
10 * Re-Init Calendar and Re-Render it.
11 *
12 * @param resource_id
13 */
14 function wpbc_cal__re_init( resource_id ){
15
16 // Remove CLASS for ability to re-render and reinit calendar.
17 jQuery( '#calendar_booking' + resource_id ).removeClass( 'hasDatepick' );
18 wpbc_calendar_show( resource_id );
19 }
20
21
22 /**
23 * Re-Init previously saved days selection variables.
24 *
25 * @param resource_id
26 */
27 function wpbc_cal_days_select__re_init( resource_id ){
28
29 _wpbc.calendar__set_param_value( resource_id, 'saved_variable___days_select_initial'
30 , {
31 'dynamic__days_min' : _wpbc.calendar__get_param_value( resource_id, 'dynamic__days_min' ),
32 'dynamic__days_max' : _wpbc.calendar__get_param_value( resource_id, 'dynamic__days_max' ),
33 'dynamic__days_specific' : _wpbc.calendar__get_param_value( resource_id, 'dynamic__days_specific' ),
34 'dynamic__week_days__start': _wpbc.calendar__get_param_value( resource_id, 'dynamic__week_days__start' ),
35 'fixed__days_num' : _wpbc.calendar__get_param_value( resource_id, 'fixed__days_num' ),
36 'fixed__week_days__start' : _wpbc.calendar__get_param_value( resource_id, 'fixed__week_days__start' )
37 }
38 );
39 }
40
41 // ---------------------------------------------------------------------------------------------------------------------
42
43 /**
44 * Set Single Day selection - after page load
45 *
46 * @param resource_id ID of booking resource
47 */
48 function wpbc_cal_ready_days_select__single( resource_id ){
49
50 // Re-define selection, only after page loaded with all init vars
51 jQuery(document).ready(function(){
52
53 // Wait 1 second, just to be sure, that all init vars defined
54 setTimeout(function(){
55
56 wpbc_cal_days_select__single( resource_id );
57
58 }, 1000);
59 });
60 }
61
62 /**
63 * Set Single Day selection
64 * Can be run at any time, when calendar defined - useful for console run.
65 *
66 * @param resource_id ID of booking resource
67 */
68 function wpbc_cal_days_select__single( resource_id ){
69
70 _wpbc.calendar__set_parameters( resource_id, {'days_select_mode': 'single'} );
71
72 wpbc_cal_days_select__re_init( resource_id );
73 wpbc_cal__re_init( resource_id );
74 }
75
76 // ---------------------------------------------------------------------------------------------------------------------
77
78 /**
79 * Set Multiple Days selection - after page load
80 *
81 * @param resource_id ID of booking resource
82 */
83 function wpbc_cal_ready_days_select__multiple( resource_id ){
84
85 // Re-define selection, only after page loaded with all init vars
86 jQuery(document).ready(function(){
87
88 // Wait 1 second, just to be sure, that all init vars defined
89 setTimeout(function(){
90
91 wpbc_cal_days_select__multiple( resource_id );
92
93 }, 1000);
94 });
95 }
96
97
98 /**
99 * Set Multiple Days selection
100 * Can be run at any time, when calendar defined - useful for console run.
101 *
102 * @param resource_id ID of booking resource
103 */
104 function wpbc_cal_days_select__multiple( resource_id ){
105
106 _wpbc.calendar__set_parameters( resource_id, {'days_select_mode': 'multiple'} );
107
108 wpbc_cal_days_select__re_init( resource_id );
109 wpbc_cal__re_init( resource_id );
110 }
111
112
113 // ---------------------------------------------------------------------------------------------------------------------
114
115 /**
116 * Set Fixed Days selection with 1 mouse click - after page load
117 *
118 * @integer resource_id - 1 -- ID of booking resource (calendar) -
119 * @integer days_number - 3 -- number of days to select -
120 * @array week_days__start - [-1] | [ 1, 5] -- { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat }
121 */
122 function wpbc_cal_ready_days_select__fixed( resource_id, days_number, week_days__start = [-1] ){
123
124 // Re-define selection, only after page loaded with all init vars
125 jQuery(document).ready(function(){
126
127 // Wait 1 second, just to be sure, that all init vars defined
128 setTimeout(function(){
129
130 wpbc_cal_days_select__fixed( resource_id, days_number, week_days__start );
131
132 }, 1000);
133 });
134 }
135
136
137 /**
138 * Set Fixed Days selection with 1 mouse click
139 * Can be run at any time, when calendar defined - useful for console run.
140 *
141 * @integer resource_id - 1 -- ID of booking resource (calendar) -
142 * @integer days_number - 3 -- number of days to select -
143 * @array week_days__start - [-1] | [ 1, 5] -- { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat }
144 */
145 function wpbc_cal_days_select__fixed( resource_id, days_number, week_days__start = [-1] ){
146
147 _wpbc.calendar__set_parameters( resource_id, {'days_select_mode': 'fixed'} );
148
149 _wpbc.calendar__set_parameters( resource_id, {'fixed__days_num': parseInt( days_number )} ); // Number of days selection with 1 mouse click
150 _wpbc.calendar__set_parameters( resource_id, {'fixed__week_days__start': week_days__start} ); // { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat }
151
152 wpbc_cal_days_select__re_init( resource_id );
153 wpbc_cal__re_init( resource_id );
154 }
155
156 // ---------------------------------------------------------------------------------------------------------------------
157
158 /**
159 * Set the existing calendar parameters to two-click range mode after page load.
160 * Free uses the unrestricted shared handler; Business Small+ keeps its already initialized advanced range rules.
161 *
162 * @param resource_id ID of booking resource.
163 */
164 function wpbc_cal_ready_days_select__range_mode( resource_id ){
165
166 jQuery(document).ready(function(){
167 setTimeout(function(){
168 wpbc_cal_days_select__range_mode( resource_id );
169 }, 1000);
170 });
171 }
172
173 /**
174 * Switch to two-click range mode without changing any advanced range parameters.
175 *
176 * @param resource_id ID of booking resource.
177 */
178 function wpbc_cal_days_select__range_mode( resource_id ){
179
180 _wpbc.calendar__set_parameters( resource_id, {'days_select_mode': 'dynamic'} );
181
182 wpbc_cal_days_select__re_init( resource_id );
183 wpbc_cal__re_init( resource_id );
184 }
185
186 // ---------------------------------------------------------------------------------------------------------------------
187
188 /**
189 * Set Range Days selection with 2 mouse clicks - after page load
190 *
191 * @integer resource_id - 1 -- ID of booking resource (calendar)
192 * @integer days_min - 7 -- Min number of days to select
193 * @integer days_max - 30 -- Max number of days to select
194 * @array days_specific - [] | [7,14,21,28] -- Restriction for Specific number of days selection
195 * @array week_days__start - [-1] | [ 1, 5] -- { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat }
196 */
197 function wpbc_cal_ready_days_select__range( resource_id, days_min, days_max, days_specific = [], week_days__start = [-1] ){
198
199 // Re-define selection, only after page loaded with all init vars
200 jQuery(document).ready(function(){
201
202 // Wait 1 second, just to be sure, that all init vars defined
203 setTimeout(function(){
204
205 wpbc_cal_days_select__range( resource_id, days_min, days_max, days_specific, week_days__start );
206 }, 1000);
207 });
208 }
209
210 /**
211 * Set Range Days selection with 2 mouse clicks
212 * Can be run at any time, when calendar defined - useful for console run.
213 *
214 * @integer resource_id - 1 -- ID of booking resource (calendar)
215 * @integer days_min - 7 -- Min number of days to select
216 * @integer days_max - 30 -- Max number of days to select
217 * @array days_specific - [] | [7,14,21,28] -- Restriction for Specific number of days selection
218 * @array week_days__start - [-1] | [ 1, 5] -- { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat }
219 */
220 function wpbc_cal_days_select__range( resource_id, days_min, days_max, days_specific = [], week_days__start = [-1] ){
221
222 _wpbc.calendar__set_parameters( resource_id, {'days_select_mode': 'dynamic'} );
223 _wpbc.calendar__set_param_value( resource_id, 'dynamic__days_min' , parseInt( days_min ) ); // Min. Number of days selection with 2 mouse clicks
224 _wpbc.calendar__set_param_value( resource_id, 'dynamic__days_max' , parseInt( days_max ) ); // Max. Number of days selection with 2 mouse clicks
225 _wpbc.calendar__set_param_value( resource_id, 'dynamic__days_specific' , days_specific ); // Example [5,7]
226 _wpbc.calendar__set_param_value( resource_id, 'dynamic__week_days__start' , week_days__start ); // { -1 - Any | 0 - Su, 1 - Mo, 2 - Tu, 3 - We, 4 - Th, 5 - Fr, 6 - Sat }
227
228 wpbc_cal_days_select__re_init( resource_id );
229 wpbc_cal__re_init( resource_id );
230 }
231