PluginProbe ʕ •ᴥ•ʔ
LatePoint – Calendar Booking Plugin for Appointments and Events / 5.2.11
LatePoint – Calendar Booking Plugin for Appointments and Events v5.2.11
5.6.6 5.6.5 5.6.4 5.6.3 5.6.2 5.6.1 5.6.0 5.5.2 5.5.1 5.5.0 5.4.2 trunk 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.1.91 5.1.92 5.1.93 5.1.94 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1
latepoint / lib / assets / javascripts / bin / admin / _calendar.js
latepoint / lib / assets / javascripts / bin / admin Last commit date
_agents.js 1 year ago _calendar.js 9 months ago _chart.js 9 months ago _customers.js 1 year ago _customers_import.js 9 months ago _orders.js 9 months ago _processes.js 1 year ago _steps.js 9 months ago _stripe_connect.js 1 year ago main.js 5 months ago updates.js 3 months ago
_calendar.js
151 lines
1 /*
2 * Copyright (c) 2023 LatePoint LLC. All rights reserved.
3 */
4
5 function latepoint_check_horizontal_calendar_scroll(){
6 if(jQuery('.daily-availability-calendar.horizontal-calendar').length){
7 if(jQuery('.daily-availability-calendar.horizontal-calendar').width() < 700){
8 jQuery('.daily-availability-calendar.horizontal-calendar').scrollLeft(jQuery('.os-day.selected').index() * jQuery('.os-day.selected').width());
9 }
10 }
11 }
12
13 function latepoint_calendar_custom_period_created(){
14 latepoint_reload_calendar_view();
15 latepoint_lightbox_close();
16 }
17
18 function latepoint_init_calendar_quick_actions(){
19 latepoint_init_input_masks(jQuery('.quick-calendar-action-settings'));
20
21 jQuery('.quick-calendar-action-day-off').on('click', function(){
22 jQuery('.quick-calendar-actions-wrapper').addClass('showing-settings');
23 jQuery('.quick-calendar-actions').hide();
24 jQuery('.quick-calendar-action-settings').removeClass('setting-slot-off').addClass('setting-day-off');
25 jQuery('.quick-calendar-action-settings input[name="blocked_period_settings[full_day_off]"]').val('yes');
26 jQuery('.quick-calendar-action-toggle.selected').removeClass('selected');
27 jQuery('.quick-calendar-action-toggle[data-period-type="full"]').addClass('selected');
28
29 return false;
30 });
31 jQuery('.quick-calendar-action-slot-off').on('click', function(){
32 jQuery('.quick-calendar-actions-wrapper').addClass('showing-settings');
33 jQuery('.quick-calendar-actions').hide();
34 jQuery('.quick-calendar-action-settings').removeClass('setting-day-off').addClass('setting-slot-off');
35 jQuery('.quick-calendar-action-settings input[name="blocked_period_settings[full_day_off]"]').val('no');
36 jQuery('.quick-calendar-action-toggle.selected').removeClass('selected');
37 jQuery('.quick-calendar-action-toggle[data-period-type="partial"]').addClass('selected');
38 return false;
39 });
40
41 jQuery('.quick-calendar-action-toggle').on('click', function(){
42 if(jQuery(this).data('period-type') === 'full'){
43 jQuery('.quick-calendar-action-day-off').trigger('click');
44 }else{
45 jQuery('.quick-calendar-action-slot-off').trigger('click');
46 }
47 return false;
48 });
49 }
50
51 function latepoint_init_calendars(){
52 latepoint_check_horizontal_calendar_scroll();
53 jQuery('.os-calendar-settings-extra .latecheckbox').lateCheckbox();
54
55
56
57 jQuery('.os-calendar-view-toggle').on('click', '.os-calendar-view-option', function(){
58 jQuery(this).closest('.os-calendar-view-toggle').find('.os-calendar-view-option.os-selected').removeClass('os-selected')
59 jQuery(this).addClass('os-selected');
60 jQuery('input[name="' + jQuery(this).closest('.os-calendar-view-toggle').data('update-element-by-name') + '"]').val(jQuery(this).data('value')).trigger('change');
61 return false;
62 });
63
64 jQuery('.calendar-settings-toggler').on('click', function(){
65 jQuery('.os-calendar-settings-form').toggleClass('show-extra-settings');
66 return false;
67 });
68
69 jQuery('.os-calendar-settings-form').on('change', 'input[name="calendar_settings[view]"]', function(){
70 jQuery(this).closest('.calendar-wrapper').attr('data-view', jQuery(this).val());
71 });
72
73 jQuery('.os-calendar-settings-form').on('change', 'select, input, .latecheckbox ', function(){
74 latepoint_reload_calendar_view();
75 });
76
77
78 jQuery('.calendar-view-wrapper').on('click', '.weekly-calendar-agent-selector', function(){
79 jQuery('.weekly-calendar-agent-selector.selected').removeClass('selected');
80 jQuery(this).addClass('selected');
81 jQuery('.os-calendar-settings-form input[name="calendar_settings[selected_agent_id]"]').val(jQuery(this).data('agent-id'));
82 jQuery('.agent-weekly-calendar.selected').removeClass('selected');
83 jQuery('.agent-weekly-calendar[data-agent-id="'+jQuery(this).data('agent-id')+'"]').addClass('selected');
84 return false;
85 });
86
87 jQuery('.calendar-view-wrapper').on('click', '.daily-calendar-action-navigation-btn', function(){
88 jQuery(this).addClass('os-loading');
89 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery(this).data('target-date')).trigger('change');
90 return false;
91 });
92
93 jQuery('.calendar-view-wrapper').on('click', '.daily-availability-calendar .os-day', function(){
94 jQuery('.os-monthly-calendar-days-w .os-day.selected').removeClass('selected');
95 jQuery(this).addClass('selected');
96 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery(this).data('date')).trigger('change');
97 return false;
98 });
99
100
101 jQuery('.os-calendar-today-btn').on('click', function(){
102 jQuery(this).addClass('os-loading');
103 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery(this).data('target-date')).trigger('change');
104 return false;
105 });
106
107 jQuery('.os-calendar-prev-btn').on('click', function(){
108 jQuery(this).addClass('os-loading');
109 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery('input[name="prev_target_date"]').val()).trigger('change');
110 return false;
111 });
112
113 jQuery('.os-calendar-next-btn').on('click', function(){
114 jQuery(this).addClass('os-loading');
115 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery('input[name="next_target_date"]').val()).trigger('change');
116 return false;
117 });
118 }
119
120 function latepoint_reload_calendar_view(){
121 let $calendar_wrapper = jQuery('.calendar-view-wrapper');
122 if(!$calendar_wrapper.length) return;
123 $calendar_wrapper.addClass('os-loading');
124
125 let calendar_settings = new FormData(jQuery('form.os-calendar-settings-form')[0]);
126
127 let data = new FormData();
128 data.append('params', latepoint_formdata_to_url_encoded_string(calendar_settings));
129 data.append('action', latepoint_helper.route_action);
130 data.append('route_name', $calendar_wrapper.data('route'));
131 data.append('return_format', 'json');
132
133 jQuery.ajax({
134 type: "post",
135 dataType: "json",
136 processData: false,
137 contentType: false,
138 url: latepoint_timestamped_ajaxurl(),
139 data: data,
140 success: function (response) {
141 if (response.status === "success") {
142 $calendar_wrapper.html(response.message).removeClass('os-loading');
143 jQuery('.os-calendar-today-btn, .os-calendar-prev-btn, .os-calendar-next-btn').removeClass('os-loading');
144 jQuery('.os-current-month-label .current-month').text(response.top_date_label);
145 jQuery('.os-current-month-label .current-year').text(response.top_date_year);
146 latepoint_check_horizontal_calendar_scroll();
147 }
148 }
149 });
150
151 }