PluginProbe
Booking Calendar / 11.2
Booking Calendar v11.2
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 / page-setup / _src / setup_show.js

setup_show.js in Booking Calendar 11.2, at includes/page-setup/_src/setup_show.js

302 lines 11.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 "use strict";
2
3 /**
4 * Parameters usually defined in Ajax Response or Front-End for == _wpbc_settings.get_all_params__setup_wizard():
5 *
6 * In Front-End side as JavaScript :: wpbc_ajx__setup_wizard_page__send_request_with_params( { 'current_step': 'date_availability', 'do_action': 'none', 'ui_clicked_element_id': 'btn__toolbar__buttons_prior' } );
7 *
8 * After Ajax response in setup_ajax.js as :: _wpbc_settings.set_params_arr__setup_wizard( response_data[ 'ajx_data' ] );
9 *
10 */
11
12 // =====================================================================================================================
13 // == Set Request for Ajax ==
14 // =====================================================================================================================
15 /**
16 * Send Ajax Request after Updating Request Parameters
17 *
18 * @param params_arr
19 *
20 * Example 1:
21 *
22 * wpbc_ajx__setup_wizard_page__send_request_with_params( {
23 * 'page_num': page_number
24 * } );
25 * Example 2:
26 *
27 * wpbc_ajx__setup_wizard_page__send_request_with_params( {
28 * 'current_step': '{{data.steps[ data.current_step ].prior}}',
29 * 'do_action': 'none',
30 * 'ui_clicked_element_id': 'btn__toolbar__buttons_prior'
31 * } );
32 *
33 */
34 function wpbc_ajx__setup_wizard_page__send_request_with_params ( params_arr ){
35
36 // Define Params Array to Request
37 _wpbc_settings.set_params_arr__setup_wizard( params_arr );
38
39 // Send Ajax Request
40 wpbc_ajx__setup_wizard_page__send_request();
41 }
42 // Example 1: wpbc_ajx__setup_wizard_page__send_request_with_params( { 'page_num': page_number } );
43 // Example 2: wpbc_ajx__setup_wizard_page__send_request_with_params( { 'current_step': 'date_availability', 'do_action': 'none', 'ui_clicked_element_id': 'btn__toolbar__buttons_prior' } );
44
45
46 // =====================================================================================================================
47 // == Show / Hide Content ==
48 // =====================================================================================================================
49 /**
50 * Show Main Content ... _wpbc_settings.get_all_params__setup_wizard() - must be defined!
51 */
52 function wpbc_setup_wizard_page__show_content() {
53
54 var wpbc_template__stp_wiz__main_content = wp.template( 'wpbc_template__stp_wiz__main_content' );
55
56 jQuery( _wpbc_settings.get_param__other( 'container__main_content' ) ).html( wpbc_template__stp_wiz__main_content( _wpbc_settings.get_all_params__setup_wizard() ) );
57
58 // Hide 'Processing' Notice
59 jQuery( '.wpbc_processing.wpbc_spin').parent().parent().parent().parent( '[id^="wpbc_notice_"]' ).hide();
60
61 //var header_menu_text = ' Step ' + wpbc_setup_wizard_page__get_actual_step_number() + ' / ' + wpbc_setup_wizard_page__get_steps_count();
62 //jQuery( '.wpbc_header_menu_tabs .nav-tab-active .nav-tab-text').html( header_menu_text );
63 //
64 //jQuery( '.wpbc_navigation_menu_left_item ' ).removeClass( 'wpbc_active' );
65 //jQuery( '#' + _wpbc_settings.get_param__setup_wizard( 'current_step' ) ).addClass( 'wpbc_active' );
66
67 // Recheck Full Screen mode, by removing top tab
68 wpbc_check_full_screen_mode();
69
70 // Scroll to top
71 // wpbc_scroll_to( '.wpbc_page_top__header_tabs' );
72 wpbc_scroll_to( '.wpbc__container_place__steps_for_timeline' );
73 }
74
75 /**
76 * Hide Main Content
77 */
78 function wpbc_setup_wizard_page__hide_content(){
79
80 jQuery( _wpbc_settings.get_param__other( 'container__main_content' ) ).html( '' );
81 }
82
83
84 /**
85 * Update Plugin menu progress -> Progress line at "Left Main Menu"
86 */
87 function wpbc_setup_wizard_page__update_plugin_menu_progress( plugin_menu__setup_progress__html ){
88 if ( 'undefined' != typeof (plugin_menu__setup_progress__html) ){
89 jQuery( '.setup_wizard_page_container' ).parent().html( plugin_menu__setup_progress__html );
90 }
91 }
92
93 // ---------------------------------------------------------------------------------------------------------------------
94 // == Steps Number Functions ==
95 // Gets data in _wpbc_settings.get_all_params__setup_wizard().steps
96 // which defined in setup_ajax.php Ajax
97 // as $data_arr ['steps'] = new WPBC_SETUP_WIZARD_STEPS(); $this->get_steps_arr(); from setup_steps.php structure.
98 // ---------------------------------------------------------------------------------------------------------------------
99
100 function wpbc_setup_wizard_page__get_steps_count() {
101
102 var params_arr = _wpbc_settings.get_all_params__setup_wizard().steps
103 var steps_count = 0
104 _.each( params_arr, function ( p_val, p_key, p_data ) {
105 steps_count++;
106 } );
107 return steps_count;
108 }
109
110 function wpbc_setup_wizard_page__get_actual_step_number() {
111
112 var setup_params = _wpbc_settings.get_all_params__setup_wizard();
113 var params_arr = setup_params.steps;
114 var current_step = setup_params.current_step;
115 var step_number = 1;
116 var found_step = false;
117
118 _.each( params_arr, function ( p_val, p_key, p_data ) {
119 if ( p_key === current_step ) {
120 found_step = true;
121 return false;
122 }
123 step_number++;
124 } );
125
126 return found_step ? step_number : 1;
127 }
128
129 function wpbc_setup_wizard_page__update_steps_status( steps_is_done_arr ){
130
131 var params_arr = _wpbc_settings.get_all_params__setup_wizard().steps
132
133 _.each( steps_is_done_arr, function ( p_val, p_key, p_data ) {
134 if ( "undefined" !== typeof ( params_arr[ p_key ] ) ) {
135 params_arr[ p_key ].is_done = (true === steps_is_done_arr[ p_key ]);
136 }
137 } );
138
139 return params_arr;
140
141 }
142
143
144 function wpbc_setup_wizard_page__is_all_steps_completed(){
145
146 var params_arr = _wpbc_settings.get_all_params__setup_wizard().steps
147 var status = true;
148
149 _.each( params_arr, function ( p_val, p_key, p_data ) {
150 if ( ! p_val.is_done ){
151 status = false;
152 }
153 } );
154
155 return status;
156 }
157
158
159 /**
160 * Define UI hooks for elements, after showing in Ajax.
161 *
162 * Because each time, when we show content in Ajax, all Hooks needs re-defined.
163 */
164 function wpbc_setup_wizard_page__define_ui_hooks(){
165
166 // -----------------------------------------------------------------------------------------------------------------
167 // Tooltips
168 if ( 'function' === typeof( wpbc_define_tippy_tooltips ) ) {
169 var parent_css_class = _wpbc_settings.get_param__other( 'container__main_content' ) + ' '
170 wpbc_define_tippy_tooltips( parent_css_class );
171 }
172
173 // -----------------------------------------------------------------------------------------------------------------
174 // Change Radio Containers
175 jQuery( '.wpbc_ui_radio_choice_input' ).on( 'change', function( event ){
176
177 wpbc_ui_el__radio_container_selection( this );
178
179 //wpbc_ajx__setup_wizard_page__send_request_with_params( { 'page_items_count': jQuery( this ).val(), 'page_num': 1 } );
180 } );
181
182 jQuery( '.wpbc_ui_radio_choice_input' ).each(function (index ){
183 wpbc_ui_el__radio_container_selection( this );
184 });
185
186 // Define ability to click on Radio Containers (not only radio-buttons)
187 jQuery( '.wpbc_ui_radio_container' ).on( 'click', function( event ){
188 wpbc_ui_el__radio_container_click( this );
189 } );
190
191 // -----------------------------------------------------------------------------------------------------------------
192
193
194 }
195
196
197 // ---------------------------------------------------------------------------------------------------------------------
198 // == M e s s a g e ==
199 // ---------------------------------------------------------------------------------------------------------------------
200
201 /**
202 * Show message in content
203 *
204 * @param message Message HTML
205 * @param params = {
206 * ['type'] 'warning' | 'info' | 'error' | 'success' default: 'warning'
207 * ['container'] '.wpbc_ajx_cstm__section_left' default: _wpbc_settings.get_param__other( 'container__main_content')
208 * ['is_append'] true | false default: true
209 * }
210 * Example:
211 * var html_id = wpbc_setup_wizard_page__show_message( 'You can test days selection in calendar', 'info', '.wpbc_ajx_cstm__section_left', true );
212 *
213 *
214 * @returns string - HTML ID
215 */
216 function wpbc_setup_wizard_page__show_message( message, params = {} ){
217
218 var params_default = {
219 'type' : 'warning',
220 'container': _wpbc_settings.get_param__other( 'container__main_content'),
221 'is_append': true,
222 'style' : 'text-align:left;',
223 'delay' : 0
224 };
225 _.each( params, function ( p_val, p_key, p_data ){
226 params_default[ p_key ] = p_val;
227 } );
228 params = params_default;
229
230 var unique_div_id = new Date();
231 unique_div_id = 'wpbc_notice_' + unique_div_id.getTime();
232
233 var alert_class = 'notice ';
234 if ( params['type'] == 'error' ){
235 alert_class += 'notice-error ';
236 message = '<i style="margin-right: 0.5em;color: #d63638;" class="menu_icon icon-1x wpbc_icn_report_gmailerrorred"></i>' + message;
237 }
238 if ( params['type'] == 'warning' ){
239 alert_class += 'notice-warning ';
240 message = '<i style="margin-right: 0.5em;color: #e9aa04;" class="menu_icon icon-1x wpbc_icn_warning"></i>' + message;
241 }
242 if ( params['type'] == 'info' ){
243 alert_class += 'notice-info ';
244 }
245 if ( params['type'] == 'success' ){
246 alert_class += 'notice-info alert-success updated ';
247 message = '<i style="margin-right: 0.5em;color: #64aa45;" class="menu_icon icon-1x wpbc_icn_done_outline"></i>' + message;
248 }
249
250 message = '<div id="' + unique_div_id + '" class="wpbc-settings-notice ' + alert_class + '" style="' + params[ 'style' ] + '">' + message + '</div>';
251
252 if ( params['is_append'] ){
253 jQuery( params['container'] ).append( message );
254 } else {
255 jQuery( params['container'] ).html( message );
256 }
257
258 params['delay'] = parseInt( params['delay'] );
259 if ( params['delay'] > 0 ){
260
261 var closed_timer = setTimeout( function (){
262 jQuery( '#' + unique_div_id ).fadeOut( 1500 );
263 }
264 , params[ 'delay' ]
265 );
266 }
267 return unique_div_id;
268 }
269
270
271 // ---------------------------------------------------------------------------------------------------------------------
272 // == Support Functions - Spin Icon in Top Bar Menu -> ' Initial Setup' ==
273 // ---------------------------------------------------------------------------------------------------------------------
274
275 /**
276 * Spin button in Filter toolbar - Start
277 */
278 function wpbc_setup_wizard_page_reload_button__spin_start(){
279 return false; // Currently disabled, maybe activate it for some other element.
280 jQuery( '#wpbc_initial_setup_top_menu_item .menu_icon.wpbc_spin').removeClass( 'wpbc_animation_pause' );
281 }
282
283 /**
284 * Spin button in Filter toolbar - Pause
285 */
286 function wpbc_setup_wizard_page_reload_button__spin_pause(){
287 jQuery( '#wpbc_initial_setup_top_menu_item .menu_icon.wpbc_spin' ).addClass( 'wpbc_animation_pause' );
288 }
289
290 /**
291 * Spin button in Filter toolbar - is Spinning ?
292 *
293 * @returns {boolean}
294 */
295 function wpbc_setup_wizard_page_reload_button__is_spin(){
296 if ( jQuery( '#wpbc_initial_setup_top_menu_item .menu_icon.wpbc_spin' ).hasClass( 'wpbc_animation_pause' ) ){
297 return true;
298 } else {
299 return false;
300 }
301 }
302