run:R W Run
DIR
2026-04-08 19:41:33
R W Run
DIR
2026-04-08 19:29:28
R W Run
38.7 KB
2026-04-08 19:26:24
R W Run
1.49 KB
2026-04-08 19:26:23
R W Run
4.72 KB
2026-04-08 19:26:25
R W Run
3.02 KB
2026-04-08 19:26:25
R W Run
10.78 KB
2026-04-08 19:26:25
R W Run
7.35 KB
2026-04-08 19:26:23
R W Run
11.6 KB
2026-04-08 19:26:22
R W Run
10.43 KB
2026-04-08 19:26:24
R W Run
26.35 KB
2026-04-08 19:26:25
R W Run
12.68 KB
2026-04-08 19:26:24
R W Run
1.94 KB
2026-04-08 19:26:24
R W Run
7.14 KB
2026-04-08 19:26:24
R W Run
1.16 KB
2026-04-08 19:26:24
R W Run
4.77 KB
2026-04-08 19:26:22
R W Run
3.56 KB
2026-04-08 19:26:24
R W Run
5.43 KB
2026-04-08 19:26:23
R W Run
4.04 KB
2026-04-08 19:26:23
R W Run
11.09 KB
2026-04-08 19:26:23
R W Run
10.93 KB
2026-04-08 19:26:25
R W Run
8.78 KB
2026-04-08 19:26:23
R W Run
3.09 KB
2026-04-08 19:26:22
R W Run
38.75 KB
2026-04-08 19:26:24
R W Run
4.62 KB
2026-04-08 19:26:24
R W Run
1.9 KB
2026-04-08 19:26:24
R W Run
23.06 KB
2026-04-08 19:26:23
R W Run
6.79 KB
2026-04-08 19:26:22
R W Run
72.3 KB
2026-04-08 19:26:24
R W Run
42 By
2026-04-08 19:26:23
R W Run
69.61 KB
2026-04-08 19:26:23
R W Run
35.35 KB
2026-04-08 19:26:22
R W Run
425.48 KB
2026-04-08 19:26:25
R W Run
77.13 KB
2026-04-08 19:26:24
R W Run
1.42 KB
2026-04-08 19:26:22
R W Run
20.26 KB
2026-04-08 19:26:25
R W Run
94.89 KB
2026-04-08 19:26:24
R W Run
22.42 KB
2026-04-08 19:26:24
R W Run
18.09 KB
2026-04-08 19:26:23
R W Run
4.6 KB
2026-04-08 19:26:23
R W Run
3.56 KB
2026-04-08 19:26:24
R W Run
16.76 KB
2026-04-08 19:26:24
R W Run
5.18 KB
2026-04-08 19:26:23
R W Run
31.03 KB
2026-04-08 19:26:25
R W Run
96.29 KB
2026-04-08 19:26:25
R W Run
41.33 KB
2026-04-08 19:26:22
R W Run
2.76 KB
2026-04-08 19:26:25
R W Run
error_log
📄ConfigBackups.js
1jQuery(document).ready(function() {
2 var backupsContainer = jQuery('.database-backups');
3
4 backupsContainer.find('.activate').on('click', function() {
5 var self = jQuery(this),
6 form = self.parent('form'),
7 type = self.data('type'),
8 request = form.serialize();
9
10 self.prop('disabled', true).addClass('disabled');
11
12 request += '&action=save&activate=1&type=' + type + '&token=' + csrfToken;
13 WHMCS.http.jqClient.post(
14 window.location.href,
15 request,
16 function(data) {
17 if (data.success === true) {
18 jQuery.growl.notice(
19 {
20 title: data.successMessageTitle,
21 message: data.successMessage
22 }
23 );
24 form.find('.save, .deactivate-start').removeClass('hidden');
25 self.addClass('hidden');
26 jQuery('#' + type + 'Label').toggleClass('label-default label-success').text(data.activeText);
27 } else {
28 jQuery.growl.error(
29 {
30 title: data.errorMessageTitle,
31 message: data.errorMessage
32 }
33 );
34 }
35 },
36 'json'
37 ).always(function() {
38 self.prop('disabled', false).removeClass('disabled');
39 });
40 });
41
42 backupsContainer.find('.save').on('click', function() {
43 var self = jQuery(this),
44 form = self.parent('form'),
45 type = self.data('type'),
46 request = form.serialize();
47
48
49 self.prop('disabled', true).addClass('disabled');
50
51 request += '&action=save&type=' + type + '&token=' + csrfToken;
52 WHMCS.http.jqClient.post(
53 window.location.href,
54 request,
55 function(data) {
56 if (data.success === true) {
57 jQuery.growl.notice(
58 {
59 title: data.successMessageTitle,
60 message: data.successMessage
61 }
62 );
63 } else {
64 jQuery.growl.error(
65 {
66 title: data.errorMessageTitle,
67 message: data.errorMessage
68 }
69 );
70 }
71 },
72 'json'
73 ).always(function() {
74 self.prop('disabled', false).removeClass('disabled');
75 });
76 });
77
78 backupsContainer.find('.test').on('click', function() {
79 var self = jQuery(this),
80 form = self.parent('form'),
81 type = self.data('type'),
82 request = form.serialize();
83
84 self.prop('disabled', true).addClass('disabled');
85 jQuery('#' + type + 'Container').removeClass('hidden');
86 request += '&action=test&type=' + type + '&token=' + csrfToken;
87 jQuery('#' + type + 'Test').hide()
88 .removeClass('hidden alert-success alert-danger')
89 .addClass('alert-default')
90 .find('.extra-text').addClass('hidden').text('').end()
91 .find('.default-text').removeClass('hidden').end()
92 .slideDown('fast');
93 WHMCS.http.jqClient.post(
94 window.location.href,
95 request,
96 function(data) {
97 if (data.success === true) {
98 jQuery('#' + type + 'Test')
99 .addClass('alert-success')
100 .removeClass('alert-default alert-danger')
101 .find('.default-text').addClass('hidden').end()
102 .find('.extra-text').text(data.successMessage).removeClass('hidden').end()
103 .delay(3000).slideUp('slow');
104 form.find('.activate').prop('disabled', false).removeClass('disabled');
105 } else {
106 jQuery('#' + type + 'Test')
107 .addClass('alert-danger')
108 .removeClass('alert-default alert-success')
109 .find('.default-text').addClass('hidden').end()
110 .find('.extra-text').text(data.errorMessageTitle + ': ' + data.errorMessage).removeClass('hidden').end()
111 .delay(3000).slideUp('slow');
112 }
113 },
114 'json'
115 ).always(function() {
116 self.prop('disabled', false).removeClass('disabled');
117 jQuery('#' + type + 'Container').addClass('hidden');
118 });
119
120 });
121
122 backupsContainer.find('.deactivate-start').on('click', function() {
123 var self = jQuery(this),
124 form = self.parent('form'),
125 type = self.data('type'),
126 modal = jQuery('#modalConfirmDeactivate');
127
128
129 jQuery('#confirmDeactivateYes').data('type', type);
130 modal.modal('show');
131 });
132
133 jQuery('#modalConfirmDeactivate').find('.deactivate').on('click', function() {
134 var self = jQuery(this),
135 modal = jQuery('#modalConfirmDeactivate'),
136 form = modal.parent('form'),
137 type = self.data('type'),
138 request = 'action=deactivate&type=' + type + '&token=' + csrfToken,
139 mainForm = jQuery('.deactivate-start[data-type="' + type + '"]').parent('form');
140
141 self.prop('disabled', true).addClass('disabled');
142
143 WHMCS.http.jqClient.post(
144 window.location.href,
145 request,
146 function(data) {
147 if (data.success === true) {
148 jQuery.growl.notice(
149 {
150 title: data.successMessageTitle,
151 message: data.successMessage
152 }
153 );
154 mainForm.find('.save, .deactivate-start').addClass('hidden');
155 mainForm.find('.activate').removeClass('hidden').prop('disabled', true);
156 if (type === 'email') {
157 mainForm.find('.activate').prop('disabled', false);
158 }
159 jQuery('#' + type + 'Label').toggleClass('label-default label-success').text(data.inactiveText);
160 } else {
161 jQuery.growl.error(
162 {
163 title: data.errorMessageTitle,
164 message: data.errorMessage
165 }
166 );
167 }
168 },
169 'json'
170 ).always(function() {
171 self.prop('disabled', false).removeClass('disabled');
172 modal.modal('hide');
173 });
174 });
175
176 backupsContainer.find('#inputDestination').on('change', function() {
177 var destinationData = jQuery('#destinationData'),
178 value = jQuery(this).val();
179
180 if (value !== 'homedir' && destinationData.hasClass('hidden')) {
181 destinationData.hide().removeClass('hidden').slideDown('fast');
182 } else if (value === 'homedir' && !(destinationData.hasClass('hidden'))) {
183 destinationData.slideUp('fast').addClass('hidden');
184 }
185 });
186});
187