PluginProbe ʕ •ᴥ•ʔ
Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress / 5.1.91
Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress v5.1.91
5.6.8 5.6.7 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 1 year ago _chart.js 1 year ago _customers.js 1 year ago _orders.js 1 year ago _processes.js 1 year ago _steps.js 1 year ago _stripe_connect.js 1 year ago main.js 1 year ago updates.js 1 year ago
_calendar.js
143 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 jQuery('.calendar-settings-toggler').on('click', function(){
57 jQuery('.os-calendar-settings-form').toggleClass('show-extra-settings');
58 return false;
59 });
60
61 jQuery('.os-calendar-settings-form').on('change', 'select[name="calendar_settings[view]"]', function(){
62 jQuery(this).closest('.calendar-wrapper').attr('data-view', jQuery(this).val());
63 });
64
65 jQuery('.os-calendar-settings-form').on('change', 'select, input, .latecheckbox ', function(){
66 latepoint_reload_calendar_view();
67 });
68
69
70 jQuery('.calendar-view-wrapper').on('click', '.weekly-calendar-agent-selector', function(){
71 jQuery('.weekly-calendar-agent-selector.selected').removeClass('selected');
72 jQuery(this).addClass('selected');
73 jQuery('.os-calendar-settings-form input[name="calendar_settings[selected_agent_id]"]').val(jQuery(this).data('agent-id'));
74 jQuery('.agent-weekly-calendar.selected').removeClass('selected');
75 jQuery('.agent-weekly-calendar[data-agent-id="'+jQuery(this).data('agent-id')+'"]').addClass('selected');
76 return false;
77 });
78
79 jQuery('.calendar-view-wrapper').on('click', '.daily-calendar-action-navigation-btn', function(){
80 jQuery(this).addClass('os-loading');
81 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery(this).data('target-date')).trigger('change');
82 return false;
83 });
84
85 jQuery('.calendar-view-wrapper').on('click', '.daily-availability-calendar .os-day', function(){
86 jQuery('.os-monthly-calendar-days-w .os-day.selected').removeClass('selected');
87 jQuery(this).addClass('selected');
88 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery(this).data('date')).trigger('change');
89 return false;
90 });
91
92
93 jQuery('.os-calendar-today-btn').on('click', function(){
94 jQuery(this).addClass('os-loading');
95 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery(this).data('target-date')).trigger('change');
96 return false;
97 });
98
99 jQuery('.os-calendar-prev-btn').on('click', function(){
100 jQuery(this).addClass('os-loading');
101 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery('input[name="prev_target_date"]').val()).trigger('change');
102 return false;
103 });
104
105 jQuery('.os-calendar-next-btn').on('click', function(){
106 jQuery(this).addClass('os-loading');
107 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery('input[name="next_target_date"]').val()).trigger('change');
108 return false;
109 });
110 }
111
112 function latepoint_reload_calendar_view(){
113 let $calendar_wrapper = jQuery('.calendar-view-wrapper');
114 if(!$calendar_wrapper.length) return;
115 $calendar_wrapper.addClass('os-loading');
116
117 let calendar_settings = new FormData(jQuery('form.os-calendar-settings-form')[0]);
118
119 let data = new FormData();
120 data.append('params', latepoint_formdata_to_url_encoded_string(calendar_settings));
121 data.append('action', latepoint_helper.route_action);
122 data.append('route_name', $calendar_wrapper.data('route'));
123 data.append('return_format', 'json');
124
125 jQuery.ajax({
126 type: "post",
127 dataType: "json",
128 processData: false,
129 contentType: false,
130 url: latepoint_timestamped_ajaxurl(),
131 data: data,
132 success: function (response) {
133 if (response.status === "success") {
134 $calendar_wrapper.html(response.message).removeClass('os-loading');
135 jQuery('.os-calendar-today-btn, .os-calendar-prev-btn, .os-calendar-next-btn').removeClass('os-loading');
136 jQuery('.os-current-month-label .current-month').text(response.top_date_label);
137 jQuery('.os-current-month-label .current-year').text(response.top_date_year);
138 latepoint_check_horizontal_calendar_scroll();
139 }
140 }
141 });
142
143 }