PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 1.2.0
JetBackup – Backup, Restore & Migrate v1.2.0
3.1.23.6 3.1.23.5 3.1.23.3 3.1.22.4 3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / public / js / sgschedule.js
backup / public / js Last commit date
Chart.bundle.min.js 6 years ago bootstrap-switch.min.js 6 years ago bootstrap.min.js 6 years ago deactivationSurvey.js 6 years ago jquery-ui.js 6 years ago jquery.fileupload.js 6 years ago jquery.iframe-transport.js 6 years ago jquery.rateyo.js 6 years ago jstree.checkbox.js 6 years ago jstree.min.js 6 years ago jstree.types.js 6 years ago jstree.wholerow.js 6 years ago less.min.js 6 years ago main.js 6 years ago sgNoticeDismiss.js 6 years ago sgbackup.js 6 years ago sgcloud.js 6 years ago sgdiscount.js 6 years ago sglicense.js 6 years ago sglogin.js 6 years ago sgrequesthandler.js 6 years ago sgrequesthandler.wordpress.js 6 years ago sgschedule.js 6 years ago sgsettings.js 6 years ago
sgschedule.js
207 lines
1 BG_SCHEDULE_INTERVAL_HOURLY = 0;
2 BG_SCHEDULE_INTERVAL_DAILY = 1;
3 BG_SCHEDULE_INTERVAL_WEEKLY = 2;
4 BG_SCHEDULE_INTERVAL_MONTHLY = 3;
5 BG_SCHEDULE_INTERVAL_YEARLY = 4;
6
7 jQuery(document).ready( function() {
8 sgBackup.initTablePagination();
9 sgBackup.initScheduleCreation();
10 });
11
12 sgBackup.initScheduleCreation = function() {
13 sgBackup.initScheduleSwitchButtons();
14 sgBackup.initManulBackupRadioInputs();
15 sgBackup.initManualBackupTooltips();
16 sgBackup.toggleDaySelection();
17 sgBackup.initIntervalSelection();
18 }
19
20 sgBackup.removeSchedule = function (id){
21 var ajaxHandler = new sgRequestHandler('schedule', {remove: true, id: id});
22
23 if (!confirm(BG_SCHEDULE_STRINGS.confirm)) {
24 return false;
25 }
26
27 ajaxHandler.callback = function(response){
28 jQuery('.alert').remove();
29
30 if(typeof response.success !== 'undefined'){
31 location.reload();
32 }
33 else{
34 //if error
35 var alert = sgBackup.alertGenerator(BG_SCHEDULE_STRINGS.deletionError, 'alert-danger');
36 jQuery('.sg-schedule-container legend').after(alert);
37 }
38
39 sgBackup.scrollToElement('.alert');
40 };
41 ajaxHandler.run();
42 }
43
44 sgBackup.initIntervalSelection = function() {
45 if (jQuery('#sg-schedule-interval').val() == BG_SCHEDULE_INTERVAL_WEEKLY) {
46 jQuery('#sg-schedule-day-of-week-select').show();
47 }
48 else if(jQuery('#sg-schedule-interval').val() == BG_SCHEDULE_INTERVAL_MONTHLY) {
49 jQuery('#sg-schedule-day-of-month-select').show();
50 }
51
52 jQuery('#sg-schedule-interval').on('change', function(){
53 if (jQuery(this).val() == BG_SCHEDULE_INTERVAL_WEEKLY) {
54 jQuery('#sg-schedule-day-of-month-select').hide();
55 jQuery('#sg-schedule-day-of-week-select').show();
56 }
57 else if (jQuery(this).val() == BG_SCHEDULE_INTERVAL_MONTHLY) {
58 jQuery('#sg-schedule-day-of-week-select').hide();
59 jQuery('#sg-schedule-day-of-month-select').show();
60 }
61 else {
62 sgBackup.toggleDaySelection();
63 }
64 });
65 }
66
67 sgBackup.toggleDaySelection = function(){
68 jQuery('#sg-schedule-day-of-week-select').hide();
69 jQuery('#sg-schedule-day-of-month-select').hide();
70 }
71
72 sgBackup.prependErrorMsg = function(alert) {
73 if (typeof jQuery('#sg-schedule-id').val() === 'undefined') {
74 jQuery('.sg-schedule-container legend').after(alert);
75 }
76 else {
77 jQuery('#sg-modal .modal-header').prepend(alert);
78 }
79 }
80
81 //SGSchedule AJAX callback
82 sgBackup.schedule = function(){
83 var error = [];
84 var scheduleForm = jQuery('form[data-type=schedule]');
85
86 //Validation
87 jQuery('.alert').remove();
88 if(jQuery('input[type=radio][name=backupType]:checked').val() == 2) {
89 if (jQuery('.sg-custom-option:checked').length <= 0) {
90 error.push(BG_SCHEDULE_STRINGS.invalidBackupOption);
91 }
92 //Check if any file is selected
93 if (jQuery('input[type=checkbox][name=backupFiles]:checked').length > 0) {
94 if (jQuery('.sg-custom-backup-files input:checkbox:checked').length <= 0) {
95 error.push(BG_SCHEDULE_STRINGS.invalidDirectorySelected);
96 }
97 }
98 }
99 //Check if any cloud is selected
100 if(jQuery('input[type=checkbox][name=backupCloud]:checked').length > 0) {
101 if(jQuery('.sg-custom-backup-cloud input:checkbox:checked').length <= 0) {
102 error.push(BG_SCHEDULE_STRINGS.invalidCloud);
103 }
104 }
105 //If any error show it and abort ajax
106 if(error.length){
107 var alert = sgBackup.alertGenerator(error, 'alert-danger');
108 sgBackup.prependErrorMsg(alert);
109 sgBackup.scrollToElement('.alert');
110 return false;
111 }
112
113 //Before sending
114 jQuery('#sg-save-schedule').attr('disabled','disabled');
115 jQuery('#sg-save-schedule').html(BG_SCHEDULE_STRINGS.savingInProgress);
116
117 //On Success
118 var ajaxHandler = new sgRequestHandler('schedule', scheduleForm.serialize());
119 ajaxHandler.dataIsObject = false;
120 ajaxHandler.callback = function(response){
121 jQuery('.alert').remove();
122 if(typeof response.success !== 'undefined'){
123 var alert = sgBackup.alertGenerator(BG_SCHEDULE_STRINGS.successMessage, 'alert-success');
124 sgBackup.prependErrorMsg(alert);
125 location.reload();
126 }
127 else{
128 //if error
129 var alert = sgBackup.alertGenerator(response, 'alert-danger');
130 sgBackup.prependErrorMsg(alert);
131 }
132
133 //Always
134 jQuery('#sg-save-schedule').removeAttr('disabled','disabled');
135 jQuery('#sg-save-schedule').html(BG_SCHEDULE_STRINGS.saveButtonText);
136 sgBackup.scrollToElement('.alert');
137 };
138 ajaxHandler.run();
139 };
140
141 sgBackup.initScheduleSwitchButtons = function() {
142 jQuery('.sg-switch').bootstrapSwitch();
143 if(jQuery('.sg-switch').is(':checked'))
144 {
145 jQuery('.sg-schedule-settings').show();
146 }
147 jQuery('.sg-switch').on('switchChange.bootstrapSwitch', function (event, state) {
148 var url = jQuery(this).attr('data-remote');
149 if(state) {
150 var isFeatureAvailable = new sgRequestHandler('isFeatureAvailable', {sgFeature: "SCHEDULE"});
151 isFeatureAvailable.callback = function(response) {
152 jQuery('.alert').remove();
153 if (typeof response.success !== 'undefined') {
154 //Show or Hide settings panel
155 jQuery('.sg-schedule-settings').fadeIn();
156 }
157 else {
158 var alert = sgBackup.alertGenerator(response.error, 'alert-warning');
159 jQuery('.sg-schedule-container legend').after(alert);
160 jQuery('.sg-switch').bootstrapSwitch('state', false);
161 }
162 }
163
164 isFeatureAvailable.run();
165 }
166 else {
167 var ajaxHandler = new sgRequestHandler('schedule', {remove: true});
168 ajaxHandler.run();
169 jQuery('.sg-schedule-settings').fadeOut();
170 }
171 });
172 };
173
174 sgBackup.initManulBackupRadioInputs = function(){
175 jQuery('input[type=radio][name=backupType]').off('change').on('change', function(){
176 jQuery('.sg-custom-backup').fadeToggle();
177 jQuery('.sg-custom-backup').children().find('input[class^=sg-custom]').removeAttr('checked');
178 jQuery('.sg-custom-backup-files').hide();
179 });
180 jQuery('input[type=checkbox][name=backupFiles], input[type=checkbox][name=backupCloud], input[type=checkbox][name=backupDatabase]').off('change').on('change', function(){
181 var sgCheckBoxWrapper = jQuery(this).closest('.checkbox').find('.sg-checkbox');
182 sgCheckBoxWrapper.fadeToggle();
183 if(jQuery(this).attr('name') == 'backupFiles') {
184 sgCheckBoxWrapper.find('input[type=checkbox]').attr('checked', 'checked');
185 }
186 });
187 jQuery('input[type=radio][name=backupDBType]').off('change').on('change',function(){
188 var sgCheckBoxWrapper = jQuery(this).closest('.checkbox').find('.sg-custom-backup-tables');
189 if(jQuery('input[type=radio][name=backupDBType]:checked').val() == '2'){
190 sgCheckBoxWrapper.find('input[type=checkbox]').not("[disabled]").prop('checked', true)
191 sgCheckBoxWrapper.fadeIn();
192 }else{
193 sgCheckBoxWrapper.fadeOut();
194 sgCheckBoxWrapper.find('input[type=checkbox][current="true"]').not("[disabled]").prop('checked', true)
195 sgCheckBoxWrapper.find('input[type=checkbox][current="false"]').prop('checked', false)
196 }
197 })
198 }
199
200 sgBackup.initManualBackupTooltips = function(){
201 jQuery('[for=cloud-ftp]').tooltip();
202 jQuery('[for=cloud-dropbox]').tooltip();
203 jQuery('[for=cloud-gdrive]').tooltip();
204 jQuery('[for=cloud-one-drive]').tooltip();
205 jQuery('[for=cloud-amazon]').tooltip();
206 }
207