index.ui.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. window.backup = function(e)
  2. {
  3. if(backupError)
  4. {
  5. zui.Modal.alert(backupError);
  6. return;
  7. }
  8. var backupBtn = $('#actionBar .backup');
  9. backupBtn.toggleClass('loading');
  10. backupBtn.text(getSpaceLoading);
  11. $.get($.createLink('backup', 'ajaxGetDiskSpace'), function(data)
  12. {
  13. backupBtn.toggleClass('loading');
  14. backupBtn.text(startBackup);
  15. if(data)
  16. {
  17. if(data.needSpace > data.freeSpace)
  18. {
  19. zui.Modal.alert(alertTips.replace('NEED_SPACE', (data.needSpace / (1024 * 1024 * 1024)).toFixed(2)));
  20. }
  21. else
  22. {
  23. backupData();
  24. }
  25. }
  26. }, 'json');
  27. }
  28. window.getCellSpan = function(cell)
  29. {
  30. if((cell.col.name == 'time' || cell.col.name == 'actions') && cell.row.data.rowspan)
  31. {
  32. return {rowSpan: cell.row.data.rowspan};
  33. }
  34. }
  35. function backupData()
  36. {
  37. var timeID = null;
  38. $.ajax(
  39. {
  40. url: $.createLink('backup', 'backup', 'reload=yes'),
  41. success: function (data)
  42. {
  43. clearInterval(timeID);
  44. $('#message').append(data);
  45. setTimeout(function(){return loadCurrentPage();}, 2000);
  46. },
  47. error: function(request, textstatus, error)
  48. {
  49. clearInterval(timeID);
  50. if(textstatus == 'timeout') $('#message').append("<p class='text-danger'>" + backupTimeout + '</p>');
  51. setTimeout(function(){return loadCurrentPage();}, 2000);
  52. }
  53. });
  54. zui.Modal.open({id: 'waiting', size: 'sm', backdrop: false});
  55. $('#waiting').addClass('show');
  56. timeID = setInterval(function()
  57. {
  58. $.get($.createLink('backup', 'ajaxGetProgress'), function(data)
  59. {
  60. if(data == '') return;
  61. $('#message').html(data);
  62. });
  63. }, 1000);
  64. }
  65. window.getCellSpan = function(cell)
  66. {
  67. if((cell.col.name == 'time' || cell.col.name == 'actions') && cell.row.data.rowspan)
  68. {
  69. return {rowSpan: cell.row.data.rowspan};
  70. }
  71. };
  72. window.restore = function(name)
  73. {
  74. $.get($.createLink('backup', 'ajaxCheckBackupVersion', 'name=' + name), function(data)
  75. {
  76. zui.Modal.alert({message: data.message, icon:'icon-exclamation-sign', iconClass: 'warning-pale rounded-full icon-2x'}).then((res) =>
  77. {
  78. if(res && data.canRestore)
  79. {
  80. $.ajaxSubmit({url: $.createLink('backup', 'restore', 'file=' + name)}).then(() => loadCurrentPage());
  81. zui.Modal.open({id: 'waiting', size: 'sm', backdrop: false});
  82. $('#waiting').addClass('show');
  83. $('#waiting .modal-body #backupType').html(restoreLang);
  84. $('#waiting .modal-body #message').empty();
  85. }
  86. });
  87. }, 'json');
  88. };
  89. $(document).off('click', '.rmPHPHeader').on('click', '.rmPHPHeader', function(data)
  90. {
  91. if($(this).hasClass('disabled')) return false;
  92. zui.Modal.open({id: 'waiting', size: 'sm', backdrop: false});
  93. $('#waiting').addClass('show');
  94. $('#waiting .modal-body #backupType').html(rmPHPHeaderLang);
  95. $('#waiting .modal-body #message').empty();
  96. });
  97. let deleting = false;
  98. $(document).off('click', '[data-confirm]').on('click', '[data-confirm]', function(){deleting = true;});
  99. $(document).off('click', '.modal [z-key="cancel"]').on('click', '.modal [z-key="cancel"]', function(){deleting = false;});
  100. $(document).off('click', '.modal [data-dismiss="modal"]').on('click', '.modal [data-dismiss="modal"]', function(){deleting = false;});
  101. $(document).off('click', '.modal [z-key="confirm"]').on('click', '.modal [z-key="confirm"]', function()
  102. {
  103. if(deleting) $('#main').addClass('loading');
  104. });
  105. window.backupInProgress = function(backupName)
  106. {
  107. if(!inQuickon) return false;
  108. $('.origin-action').attr('disabled', 'disabled');
  109. loadTable();
  110. $('#main').removeClass('loading');
  111. let intervalId = setInterval(function()
  112. {
  113. $.get($.createLink('system', 'ajaxGetBackupProgress', 'backupName=' + backupName.replace(/-/g, '_')), function(resp)
  114. {
  115. if(resp.status == 'completed' || resp.status.toLowerCase().includes('failed'))
  116. {
  117. loadCurrentPage();
  118. clearInterval(intervalId);
  119. }
  120. }, 'json');
  121. }, 2000);
  122. };
  123. window.restoreInProgress = function(backupName)
  124. {
  125. if(!inQuickon) return false;
  126. $('.origin-action').attr('disabled', 'disabled');
  127. loadTable();
  128. let intervalId = setInterval(function()
  129. {
  130. $.get($.createLink('system', 'ajaxGetRestoreProgress', 'backupName=' + backupName.replace(/-/g, '_')), function(resp)
  131. {
  132. if(resp.status == 'completed' || resp.status.toLowerCase().includes('failed'))
  133. {
  134. loadCurrentPage();
  135. clearInterval(intervalId);
  136. }
  137. }, 'json');
  138. }, 2000);
  139. };
  140. window.deleteInProgress = function(backupName)
  141. {
  142. if(!inQuickon) return false;
  143. loadTable();
  144. let intervalId = setInterval(function()
  145. {
  146. $.get($.createLink('system', 'ajaxGetDeleteProgress', 'backupName=' + backupName.replace(/-/g, '_')), function(resp)
  147. {
  148. if(resp.status == 'completed' || resp.status.toLowerCase().includes('failed'))
  149. {
  150. loadCurrentPage();
  151. clearInterval(intervalId);
  152. }
  153. }, 'json');
  154. }, 2000);
  155. }
  156. window.upgradeInProgress= function()
  157. {
  158. if(!inQuickon) return false;
  159. loadTable();
  160. let intervalId = setInterval(function()
  161. {
  162. $.get($.createLink('system', 'ajaxGetUpgradeProgress'), function(resp)
  163. {
  164. if(resp.result == 'success')
  165. {
  166. loadCurrentPage();
  167. clearInterval(intervalId);
  168. }
  169. }, 'json');
  170. }, 2000);
  171. }