index.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. function mgBytesToSize(bytes) {
  2. var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
  3. if (bytes <= 1) {
  4. if (bytes !== 0) {
  5. var bytes = Number(bytes).toFixed(1);
  6. }
  7. return bytes + ' Byte';
  8. }
  9. var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
  10. var total = bytes / Math.pow(1024, i) ;
  11. if(sizes[i] == 'GB' || sizes[i] == 'TB' ){
  12. return total.toFixed(2)+ ' ' + sizes[i];
  13. }
  14. return Math.round( total, 2) + ' ' + sizes[i];
  15. }
  16. function mgTooltipCpu(tooltipItem, data) {
  17. var used = Number(tooltipItem.yLabel).toFixed(2);
  18. return used + "%";
  19. }
  20. function mgTooltipServerLoad(tooltipItem, data) {
  21. var used = Number(tooltipItem.yLabel).toFixed(2);
  22. return used;
  23. }
  24. function mgTooltipCallbackForMemory(tooltipItem, data) {
  25. return mgBytesToSize(tooltipItem.yLabel) + "/s";
  26. }
  27. function mgTooltipCallbackForNet(tooltipItem, data) {
  28. return mgBytesToSize(tooltipItem.yLabel) + "/s";
  29. }
  30. function mgTooltipCallbackForDisk(tooltipItem, data) {
  31. return mgBytesToSize(tooltipItem.yLabel) + "/s";
  32. }
  33. /*Disk support*/
  34. function pmToggleDiskButton(data) {
  35. let button = $(".pmCreateDiskButton");
  36. if(data.htmlData.createButtonStatus)
  37. {
  38. button.removeClass('hidden');
  39. }
  40. else
  41. {
  42. button.addClass('hidden');
  43. }
  44. }
  45. /*Snapshot support*/
  46. function pmToggleSnapshotButton(data) {
  47. let button = $(".pmCreateSnapshotButton");
  48. if(data.htmlData.createButtonStatus)
  49. {
  50. button.removeClass('hidden');
  51. }
  52. else
  53. {
  54. button.addClass('hidden');
  55. }
  56. }
  57. /*Backup*/
  58. function pmToggleBackupButton(data) {
  59. let button = $(".pmCreateBackupButton");
  60. if(data.htmlData.createButtonStatus)
  61. {
  62. button.removeClass('hidden');
  63. }
  64. else
  65. {
  66. button.addClass('hidden');
  67. }
  68. }
  69. /*Firewall*/
  70. function pmToggleFirewallButton(data) {
  71. let button = $(".pmCreateFirewallButton");
  72. if(data.htmlData.createButtonStatus)
  73. {
  74. button.removeClass('hidden');
  75. }
  76. else
  77. {
  78. button.addClass('hidden');
  79. }
  80. }
  81. function mgLocationReload(data) {
  82. window.location.reload();
  83. }
  84. /* VM delete done*/
  85. function pcVmDeltedAjaxDone(data) {
  86. if(data.htmlData.redirectUrl)
  87. {
  88. window.location.href = data.htmlData.redirectUrl;
  89. }
  90. console.log(data.htmlData.redirectUrl);
  91. console.log(window.location.href);
  92. }
  93. $(document).ready(function () {
  94. //virtual network
  95. var selectizedInstance = $('.pm-virtual-network-content-default .selectized').selectize();
  96. selectizedInstance.each(function(){
  97. this.selectize.destroy();
  98. });
  99. //create
  100. $("#pm-add-new-virtual-network-button").on("click",function (e) {
  101. e.preventDefault();
  102. var content = $('.pm-virtual-network-content-default').clone();
  103. content.removeClass("hidden");
  104. content.removeClass("pm-virtual-network-content-default");
  105. var index = $("#pm-add-new-virtual-network-button").closest('.lu-widget').find('.lu-widget').size();
  106. content.find('select[name="virtualNetwork[id]"]').prop("name","virtualNetwork"+index+"[id]");
  107. content.find('select[name="virtualNetwork[ip]"]').prop("name","virtualNetwork"+index+"[ip]");
  108. $(this).closest('.lu-widget').find('.lu-widget').last().after(content);
  109. $(this).closest('.lu-widget').find('.pm-vn-select').trigger("change");
  110. $(this).closest('.lu-widget').find('.lu-alert').hide();
  111. $(".pm-virtual-network-content-default").parent().find(".lu-alert").hide();
  112. });
  113. //delete
  114. $(".mg-wrapper").delegate(".pm-delete-virtual-network-button","click",function (e) {
  115. e.preventDefault();
  116. $(this).closest('.lu-widget').remove();
  117. if($(".pm-virtual-network-content-default").parent().find(".lu-widget").length <= 1)
  118. {
  119. $(".pm-virtual-network-content-default").parent().find(".lu-alert").show();
  120. }
  121. });
  122. //change
  123. $(".mg-wrapper").delegate(".pm-vn-select","change",function (e) {
  124. var show = '.vn-ip-'+$(this).val();
  125. $(this).closest('.lu-widget__content').find('.pm-vn-ip-select option').hide();
  126. $(this).closest('.lu-widget__content').find(show).show();
  127. var firstOption = $(this).closest('.lu-widget__content').find('.pm-vn-ip-select '+show+':first').val();
  128. $(this).closest('.lu-widget__content').find('.pm-vn-ip-select').val(firstOption);
  129. });
  130. //disk
  131. var selectizedInstance = $('.pm-disk-content-default .selectized').selectize();
  132. selectizedInstance.each(function(){
  133. this.selectize.destroy();
  134. });
  135. //create
  136. $("#pm-add-disk-button").on("click",function (e) {
  137. e.preventDefault();
  138. var content = $('.pm-disk-content-default').clone();
  139. content.removeClass("hidden");
  140. content.removeClass("pm-disk-content-default");
  141. var index = $("#pm-add-disk-button").closest('.lu-widget').find('.lu-widget').size();
  142. content.find('input[name="additionalDiskSize"]').prop("name","additionalDiskSize"+index);
  143. content.find('select[name="additionalDiskBus"]').prop("name","additionalDiskBus"+index);
  144. content.find('select[name="additionalDiskFormat"]').prop("name","additionalDiskFormat"+index);
  145. content.find('select[name="additionalDiskBackup"]').prop("name","additionalDiskBackup"+index);
  146. content.find('input[name="additionalDiskMp"]').prop("name","additionalDiskMp"+index);
  147. $(this).closest('.lu-widget').find('.lu-widget').last().after(content);
  148. $(".pm-disk-content-default ").parent().find(".lu-alert").hide();
  149. });
  150. //delete
  151. $(".mg-wrapper").delegate(".pm-delete-disk-button","click",function (e) {
  152. e.preventDefault();
  153. $(this).closest('.lu-widget').remove();
  154. if($(".pm-disk-content-default ").parent().find(".lu-widget").length <= 1)
  155. {
  156. $(".pm-disk-content-default ").parent().find(".lu-alert").show();
  157. }
  158. });
  159. //cpuPriority change
  160. $(".mg-wrapper").delegate("#cpuPriority","input",function (e) {
  161. e.preventDefault();
  162. var label = $(this).data("label"+$(this).val());
  163. $("#outputcpuPriority").html(label);
  164. });
  165. });
  166. $(".mg-wrapper").on("change", "select[name='macro']", function () {
  167. var disable = $(this).val()!='0';
  168. if(disable){
  169. $("input[name='sport']").closest(".lu-form-group").addClass("disabled");
  170. $("input[name='dport']").closest(".lu-form-group").addClass("disabled");
  171. $("select[name='proto']").closest(".lu-form-group").addClass("disabled");
  172. }else{
  173. $("input[name='sport']").closest(".lu-form-group").removeClass("disabled");
  174. $("input[name='dport']").closest(".lu-form-group").removeClass("disabled");
  175. $("select[name='proto']").closest(".lu-form-group").removeClass("disabled");
  176. }
  177. });
  178. mgEventHandler.on('ModalLoaded', 'updateButton', function(id, params){
  179. if(id != 'updateButton'){
  180. return;
  181. }
  182. $(".mg-wrapper select[name='macro']").trigger('change');
  183. }, 1000);