PluginProbe ʕ •ᴥ•ʔ
LatePoint – Calendar Booking Plugin for Appointments and Events / 5.1.3
LatePoint – Calendar Booking Plugin for Appointments and Events v5.1.3
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
105 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_init_calendars(){
14 latepoint_check_horizontal_calendar_scroll();
15 jQuery('.os-calendar-settings-extra .latecheckbox').lateCheckbox();
16
17
18 jQuery('.calendar-settings-toggler').on('click', function(){
19 jQuery('.os-calendar-settings-form').toggleClass('show-extra-settings');
20 return false;
21 });
22
23 jQuery('.os-calendar-settings-form').on('change', 'select[name="calendar_settings[view]"]', function(){
24 jQuery(this).closest('.calendar-wrapper').attr('data-view', jQuery(this).val());
25 });
26
27 jQuery('.os-calendar-settings-form').on('change', 'select, input, .latecheckbox ', function(){
28 latepoint_reload_calendar_view();
29 });
30
31
32 jQuery('.calendar-view-wrapper').on('click', '.weekly-calendar-agent-selector', function(){
33 jQuery('.weekly-calendar-agent-selector.selected').removeClass('selected');
34 jQuery(this).addClass('selected');
35 jQuery('.os-calendar-settings-form input[name="calendar_settings[selected_agent_id]"]').val(jQuery(this).data('agent-id'));
36 jQuery('.agent-weekly-calendar.selected').removeClass('selected');
37 jQuery('.agent-weekly-calendar[data-agent-id="'+jQuery(this).data('agent-id')+'"]').addClass('selected');
38 return false;
39 });
40
41 jQuery('.calendar-view-wrapper').on('click', '.daily-calendar-action-navigation-btn', function(){
42 jQuery(this).addClass('os-loading');
43 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery(this).data('target-date')).trigger('change');
44 return false;
45 });
46
47 jQuery('.calendar-view-wrapper').on('click', '.daily-availability-calendar .os-day', function(){
48 jQuery('.os-monthly-calendar-days-w .os-day.selected').removeClass('selected');
49 jQuery(this).addClass('selected');
50 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery(this).data('date')).trigger('change');
51 return false;
52 });
53
54
55 jQuery('.os-calendar-today-btn').on('click', function(){
56 jQuery(this).addClass('os-loading');
57 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery(this).data('target-date')).trigger('change');
58 return false;
59 });
60
61 jQuery('.os-calendar-prev-btn').on('click', function(){
62 jQuery(this).addClass('os-loading');
63 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery('input[name="prev_target_date"]').val()).trigger('change');
64 return false;
65 });
66
67 jQuery('.os-calendar-next-btn').on('click', function(){
68 jQuery(this).addClass('os-loading');
69 jQuery('input[name="calendar_settings[target_date_string]"]').val(jQuery('input[name="next_target_date"]').val()).trigger('change');
70 return false;
71 });
72 }
73
74 function latepoint_reload_calendar_view(){
75 let $calendar_wrapper = jQuery('.calendar-view-wrapper');
76 if(!$calendar_wrapper.length) return;
77 $calendar_wrapper.addClass('os-loading');
78
79 let calendar_settings = new FormData(jQuery('form.os-calendar-settings-form')[0]);
80
81 let data = new FormData();
82 data.append('params', latepoint_formdata_to_url_encoded_string(calendar_settings));
83 data.append('action', latepoint_helper.route_action);
84 data.append('route_name', $calendar_wrapper.data('route'));
85 data.append('return_format', 'json');
86
87 jQuery.ajax({
88 type: "post",
89 dataType: "json",
90 processData: false,
91 contentType: false,
92 url: latepoint_timestamped_ajaxurl(),
93 data: data,
94 success: function (response) {
95 if (response.status === "success") {
96 $calendar_wrapper.html(response.message).removeClass('os-loading');
97 jQuery('.os-calendar-today-btn, .os-calendar-prev-btn, .os-calendar-next-btn').removeClass('os-loading');
98 jQuery('.os-current-month-label .current-month').text(response.top_date_label);
99 jQuery('.os-current-month-label .current-year').text(response.top_date_year);
100 latepoint_check_horizontal_calendar_scroll();
101 }
102 }
103 });
104
105 }