PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 1.3.2
JetBackup – Backup, Restore & Migrate v1.3.2
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 / main.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 popup.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
main.js
467 lines
1 sgBackup = {};
2 sgBackup.isModalOpen = false;
3 SG_CURRENT_ACTIVE_AJAX = '';
4 SG_NOTICE_EXECUTION_TIMEOUT = 'timeout_error';
5 SG_NOTICE_EXECUTION_FREE_TIMEOUT = 'timeout_free_error';
6 SG_NOTICE_MIGRATION_ERROR = 'migration_error';
7 SG_NOTICE_NOT_WRITABLE_ERROR = 'restore_notwritable_error';
8
9 jQuery(window).load(function() {
10 if (jQuery('.sg-active-action-id').length == 0) {
11 sgBackup.showReviewModal();
12 }
13 });
14
15 jQuery(document).ready( function() {
16 jQuery('span[data-toggle=tooltip]').tooltip();
17
18 sgBackup.init();
19
20 jQuery('.sg-badge-warning').on('click', function () {
21 var url = jQuery(this).attr('target-url');
22 if (url) {
23 window.open(url, '_blank');
24 }
25 });
26
27 jQuery("#rateYo").rateYo({
28 rating: 5,
29 fullStar: true,
30 spacing: "3px",
31 starWidth: "16px",
32 starHeight: "16px",
33 rating: 4.5,
34 ratedFill: "#ffffff"
35 });
36
37 if (typeof SG_AJAX_REQUEST_FREQUENCY === 'undefined'){
38 SG_AJAX_REQUEST_FREQUENCY = 2000;
39 }
40
41 sgBackup.hideAjaxSpinner();
42 var notice = "";
43 jQuery('.notice-dismiss').on('click', function() {
44 if (jQuery(this).parent().attr('data-notice-id') == SG_NOTICE_EXECUTION_TIMEOUT) {
45 notice = SG_NOTICE_EXECUTION_TIMEOUT;
46 }
47 else if (jQuery(this).parent().attr('data-notice-id') == SG_NOTICE_EXECUTION_FREE_TIMEOUT) {
48 notice = SG_NOTICE_EXECUTION_TIMEOUT;
49 }
50 else if (jQuery(this).parent().attr('data-notice-id') == SG_NOTICE_MIGRATION_ERROR) {
51 notice = SG_NOTICE_MIGRATION_ERROR;
52 }
53 else if (jQuery(this).parent().attr('data-notice-id') == SG_NOTICE_NOT_WRITABLE_ERROR) {
54 notice = SG_NOTICE_NOT_WRITABLE_ERROR
55 }
56 var sgNoticeClosedHandler = new sgRequestHandler('hideNotice', {notice: notice, token: BG_BACKUP_STRINGS.nonce});
57 sgNoticeClosedHandler.run();
58 });
59
60 //send awake requests only if there is an active action
61 if (jQuery('.sg-active-action-id').length>0) {
62 setInterval(sgBackup.awake, SG_AJAX_REQUEST_FREQUENCY);
63 }
64 });
65
66 sgBackup.awake = function(){
67 var awakeAjaxHandler = new sgRequestHandler('awake', {token: BG_BACKUP_STRINGS.nonce});
68 awakeAjaxHandler.run();
69 }
70
71 //SG init
72 sgBackup.init = function(){
73 sgBackup.initModals();
74 };
75
76 //SG Modal popup logic
77 sgBackup.initModals = function(){
78
79 jQuery('[data-toggle="modal"][href], [data-toggle="modal"][data-remote]').off('click').on('click', function(e) {
80 var param = '';
81 if (typeof jQuery(this).attr('data-sgbp-params') !== 'undefined'){
82 param = jQuery(this).attr('data-sgbp-params');
83 }
84
85 e.preventDefault();
86 var btn = jQuery(this),
87 url = btn.attr('data-remote'),
88 modalName = btn.attr('data-modal-name'),
89 backupType = btn.attr('sg-data-backup-type'),
90 modal = jQuery('#sg-modal');
91 if( modal.length == 0 ) {
92 modal = jQuery('' +
93 '<div class="modal fade" id="sg-modal" tabindex="-1" role="dialog" aria-hidden="true"></div>' +
94 '');
95 body.append(modal);
96 }
97 sgBackup.showAjaxSpinner('#sg-content-wrapper');
98 sgBackup.disableUi();
99
100 var ajaxHandler = new sgRequestHandler(url, {
101 param: param,
102 backupType: backupType,
103 token: BG_BACKUP_STRINGS.nonce
104 });
105
106 ajaxHandler.type = 'GET';
107 ajaxHandler.dataType = 'html';
108 ajaxHandler.callback = function(data, error) {
109 sgBackup.hideAjaxSpinner();
110 sgBackup.enableUi();
111 if (error===false) {
112 jQuery('#sg-modal').append(data);
113 }
114 modal.on('hide.bs.modal', function() {
115 if(SG_CURRENT_ACTIVE_AJAX != '') {
116 if (!confirm(BG_MAIN_STRINGS.confirmCancel)) {
117 return false;
118 }
119 SG_CURRENT_ACTIVE_AJAX.abort();
120 SG_CURRENT_ACTIVE_AJAX = '';
121 }
122 });
123 modal.one('hidden.bs.modal', function() {
124 modal.html('');
125 }).modal('show');
126 sgBackup.didOpenModal(modalName, param);
127 };
128
129 if (modalName == 'ftp-settings' || modalName == 'amazon-settings') {
130 var storage = 'FTP';
131 if (modalName == 'amazon-settings') {
132 storage = 'AMAZON';
133 }
134 error = false;
135 var isFeatureAvailable = new sgRequestHandler('isFeatureAvailable', {sgFeature: storage});
136 isFeatureAvailable.callback = function(response) {
137 if (typeof response.error !== 'undefined') {
138 var alert = sgBackup.alertGenerator(response.error, 'alert-warning');
139 jQuery('.sg-cloud-container legend').after(alert);
140 that.bootstrapSwitch('state', false);
141 sgBackup.hideAjaxSpinner();
142 }
143 else {
144 ajaxHandler.run();
145 }
146 }
147
148 isFeatureAvailable.run();
149 }
150 else {
151 ajaxHandler.run();
152 }
153 });
154 };
155
156 sgBackup.toggleSftpSettings = function() {
157 jQuery('#ftpPort').val('22');
158 jQuery('#sg-sftp-key-file-block').show();
159 jQuery('#sg-browse-key-file-block').hide();
160
161 if (jQuery('#sg-connect-with-key-file').is(':checked') && connectioType=='sftp') {
162 jQuery('#sg-browse-key-file-block').show();
163 }
164 }
165
166 sgBackup.toggleFtpSettings = function() {
167 jQuery('#ftpPort').val('21');
168 jQuery('#sg-sftp-key-file-block').hide();
169 }
170
171 // Show/hide some fields that are needed/not needed for ftp/sftp
172 sgBackup.toggleNeededFtpFields = function(connectioType) {
173 if(connectioType == 'sftp') {
174 sgBackup.toggleSftpSettings();
175
176 }
177 else if(connectioType == 'ftp') {
178 sgBackup.toggleFtpSettings();
179 }
180 }
181
182 sgBackup.didOpenModal = function(modalName, param){
183 if(modalName == 'manual-backup' || modalName == 'manual-restore'){
184 sgBackup.initManulBackupRadioInputs();
185 sgBackup.initManualBackupTooltips();
186 jQuery('#fileSystemTreeContainer').jstree({ 'core' : {
187
188 'data' : {
189 'url' : function (node) {
190 return getAjaxUrl();
191 },
192 'data' : function (node) {
193 var path = node.id;
194 return { action:"backup_guard_getBackupContent", path:path, backupName:param, token: BG_BACKUP_STRINGS.nonce };
195 }
196 }
197 },
198 "plugins" : ["wholerow", "checkbox", "types"],
199 "checkbox" : {
200 "keep_selected_style" : false
201 },
202 "types": {
203 "file": {
204 "icon": "bg-file-icon"
205 },
206 "folder": {
207 "icon": "bg-folder-icon"
208 },
209 "default":{
210 "icon": "bg-no-icon"
211 }
212 }
213 });
214 }
215 else if(modalName == 'import'){
216 sgBackup.initImportTooltips();
217 jQuery('#modal-import-2').hide();
218 jQuery('#modal-import-3').hide();
219 jQuery('#switch-modal-import-pages-back').hide();
220 jQuery('#uploadSgbpFile').hide();
221 if(jQuery('#modal-import-1').length == 0) {
222 sgBackup.toggleDownloadFromPCPage();
223 }
224 sgBackup.initFileUpload();
225 }
226 else if(modalName == 'ftp-settings'){
227 connectioType = jQuery('#sg-connection-method').val();
228 sgBackup.toggleNeededFtpFields(connectioType);
229
230 jQuery('#sg-connection-method').on('change', function(){
231 connectioType = jQuery(this).val();
232 sgBackup.toggleNeededFtpFields(connectioType);
233 });
234
235 jQuery('#sg-connect-with-key-file').on('click', function(){
236 if(jQuery(this).is(':checked')) {
237 jQuery('#sg-browse-key-file-block').show();
238 }
239 else {
240 jQuery('#sg-browse-key-file-block').hide();
241 }
242 })
243
244 sgBackup.initSFTPKeyFileSelection();
245
246 jQuery('#sg-modal').on('hidden.bs.modal', function () {
247 if(sgBackup.isFtpConnected != true) {
248 jQuery('input[data-storage=FTP]').bootstrapSwitch('state', false);
249 }
250 })
251 }
252 else if(modalName == 'amazon-settings') {
253 jQuery('#sg-modal').on('hidden.bs.modal', function () {
254 if(sgBackup.isAmazonConnected != true) {
255 jQuery('input[data-storage=AMAZON]').bootstrapSwitch('state', false);
256 }
257 });
258 jQuery("#bucketType").on("change", function(){
259 jQuery("#bucketType option").each(function()
260 {
261 var name = jQuery(this).val();
262 jQuery(".form-group-"+name).css("display","none");
263 // Add $(this).val() to your list
264 });
265 var selected = jQuery("#bucketType").val();
266 jQuery(".form-group-"+selected).css("display","block");
267 })
268 }
269 else if(modalName == 'manual-review'){
270 var action = 'setReviewPopupState';
271 jQuery('#sgLeaveReview').click(function(){
272 var reviewUrl = jQuery(this).attr('data-review-url');
273 //Never show again
274 var reviewState = 2;
275 var ajaxHandler = new sgRequestHandler(action, {reviewState: reviewState, token: BG_BACKUP_STRINGS.nonce});
276 ajaxHandler.run();
277 window.open(reviewUrl);
278 });
279
280 jQuery('#sgDontAskAgain').click(function(){
281 //Never show again
282 var reviewState = 2;
283 var ajaxHandler = new sgRequestHandler(action, {reviewState: reviewState, token: BG_BACKUP_STRINGS.nonce});
284 ajaxHandler.run();
285 });
286
287 jQuery('#sgAskLater').click(function(){
288 var reviewState = 0;
289 var ajaxHandler = new sgRequestHandler(action, {reviewState: reviewState, token: BG_BACKUP_STRINGS.nonce});
290 ajaxHandler.run();
291 });
292 }
293 else if(modalName == 'create-schedule') {
294 sgBackup.initScheduleCreation();
295 }
296 };
297
298 sgBackup.isAnyOpenModal = function(){
299 return jQuery('#sg-modal').length;
300 };
301
302 sgBackup.alertGenerator = function(content, alertClass){
303 var sgalert = '';
304 sgalert+='<div class="alert alert-dismissible '+alertClass+'">';
305 sgalert+='<button type="button" class="close" data-dismiss="alert">×</button>';
306 if(jQuery.isArray(content)){
307 jQuery.each(content, function(index, value) {
308 sgalert+=value+'<br/>';
309 });
310 }
311 else if(content != ''){
312 sgalert+=content.replace('[','').replace(']','').replace('"','');
313 }
314 sgalert+='</div>';
315 return sgalert;
316 };
317
318 sgBackup.scrollToElement = function(id){
319 if(jQuery(id).position()){
320 if(jQuery(id).position().top < jQuery(window).scrollTop()){
321 //scroll up
322 jQuery('html,body').animate({scrollTop:jQuery(id).position().top}, 1000);
323 }
324 else if(jQuery(id).position().top + jQuery(id).height() > jQuery(window).scrollTop() + (window.innerHeight || document.documentElement.clientHeight)){
325 //scroll down
326 jQuery('html,body').animate({scrollTop:jQuery(id).position().top - (window.innerHeight || document.documentElement.clientHeight) + jQuery(id).height() + 15}, 1000);
327 }
328 }
329 };
330
331 sgBackup.showAjaxSpinner = function(appendToElement){
332 if(typeof appendToElement == 'undefined'){
333 appendToElement = '#sg-wrapper';
334 }
335 jQuery('<div class="sg-spinner"></div>').appendTo(appendToElement);
336 };
337
338 sgBackup.hideAjaxSpinner = function(){
339 jQuery('.sg-spinner').remove();
340 };
341
342 sgBackup.showReviewModal = function(){
343 if(typeof sgShowReview != 'undefined') {
344 jQuery('#sg-review').trigger("click");
345 }
346 };
347
348 sgBackup.initTablePagination = function(){
349 jQuery.fn.sgTablePagination = function(opts){
350 var jQuerythis = this,
351 defaults = {
352 perPage: 7,
353 showPrevNext: false,
354 hidePageNumbers: false,
355 pagerSelector: 'pagination'
356 },
357 settings = jQuery.extend(defaults, opts);
358
359 var listElement = jQuerythis.children('tbody');
360 var perPage = settings.perPage;
361 var children = listElement.children();
362 var pager = jQuery('.pager');
363
364 if (typeof settings.childSelector!="undefined") {
365 children = listElement.find(settings.childSelector);
366 }
367
368 if (typeof settings.pagerSelector!="undefined") {
369 pager = jQuery(settings.pagerSelector);
370 }
371
372 var numItems = children.size();
373 var numPages = Math.ceil(numItems/perPage);
374
375 pager.data("curr",0);
376
377 if (settings.showPrevNext){
378 jQuery('<li><a href="#" class="prev_link">«</a></li>').appendTo(pager);
379 }
380
381 var curr = 0;
382 while(numPages > curr && (settings.hidePageNumbers==false)){
383 jQuery('<li><a href="#" class="page_link">'+(curr+1)+'</a></li>').appendTo(pager);
384 curr++;
385 }
386
387 if(curr<=1){
388 jQuery(settings.pagerSelector).parent('div').hide();
389 jQuery('.page_link').hide();
390 }
391
392 if (settings.showPrevNext){
393 jQuery('<li><a href="#" class="next_link">»</a></li>').appendTo(pager);
394 }
395
396 pager.find('.page_link:first').addClass('active');
397 pager.find('.prev_link').hide();
398 if (numPages<=1) {
399 pager.find('.next_link').hide();
400 }
401 pager.children().eq(1).addClass("active");
402
403 children.hide();
404 children.slice(0, perPage).show();
405
406 pager.find('li .page_link').click(function(){
407 var clickedPage = jQuery(this).html().valueOf()-1;
408 goTo(clickedPage,perPage);
409 return false;
410 });
411 pager.find('li .prev_link').click(function(){
412 previous();
413 return false;
414 });
415 pager.find('li .next_link').click(function(){
416 next();
417 return false;
418 });
419
420 function previous(){
421 var goToPage = parseInt(pager.data("curr")) - 1;
422 goTo(goToPage);
423 }
424
425 function next(){
426 goToPage = parseInt(pager.data("curr")) + 1;
427 goTo(goToPage);
428 }
429
430 function goTo(page){
431 var startAt = page * perPage,
432 endOn = startAt + perPage;
433
434 children.css('display','none').slice(startAt, endOn).show();
435
436 if (page>=1) {
437 pager.find('.prev_link').show();
438 }
439 else {
440 pager.find('.prev_link').hide();
441 }
442
443 if (page<(numPages-1)) {
444 pager.find('.next_link').show();
445 }
446 else {
447 pager.find('.next_link').hide();
448 }
449
450 pager.data("curr",page);
451 pager.children().removeClass("active");
452 pager.children().eq(page+1).addClass("active");
453
454 }
455 };
456 jQuery('table.paginated').sgTablePagination({pagerSelector:'.pagination',showPrevNext:true,hidePageNumbers:false,perPage:7});
457 };
458
459 sgBackup.logout = function()
460 {
461 var ajaxHandler = new sgRequestHandler('logout', {token: BG_BACKUP_STRINGS.nonce});
462 ajaxHandler.callback = function(response){
463 location.reload();
464 };
465 ajaxHandler.run();
466 }
467