pages.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. App.Pages.init = function()
  2. {
  3. if ('undefined' == typeof App.Env.initialParams) { // first run
  4. App.Ajax.request('MAIN.getInitial', {}, function(reply) {
  5. App.Env.initialParams = reply.data;
  6. App.Helpers.updateInitial();
  7. if (!App.Env.initialParams.auth_user.admin) {
  8. var head= document.getElementsByTagName('head')[0];
  9. var script= document.createElement('script');
  10. script.type= 'text/javascript';
  11. script.src= App.Helpers.generateUrl('js/user_templates.js?'+Math.random());
  12. head.appendChild(script);
  13. }
  14. });
  15. }
  16. App.Pages.prepareHTML();
  17. $('.section.active').removeClass('active');
  18. $('#'+App.Env.world).addClass('active');
  19. if (cookieEnabled()) {
  20. setCookie('tab', App.Env.world);
  21. }
  22. }
  23. App.Pages.prepareHTML = function()
  24. {
  25. App.Actions.reset_batch();
  26. $('#actions-toolbar .stats-subbar').remove();
  27. $('#actions-toolbar .do_action_new_entry').removeClass('hidden');
  28. $('.active').removeClass('active');
  29. $('.row-filters').removeClass('hidden');
  30. if ('undefined' != typeof App.Pages[App.Env.world].prepareHTML) {
  31. App.Pages[App.Env.world].prepareHTML();
  32. }
  33. else {
  34. App.Model[App.Env.world].loadList();
  35. }
  36. $('#new-entry-keyword').text(App.Helpers.getHumanTabName());
  37. document.title = 'Vesta | ' + App.Helpers.getHumanTabName();
  38. App.Tmp[App.Env.world + '_selected_records'] = 0;
  39. }
  40. App.Pages.DNS.showSubform = function(ref)
  41. {
  42. App.Helpers.showLoading();
  43. var data = ref.find('.source:first').val();
  44. App.Ajax.request('DNS.getListRecords', {
  45. spell: data
  46. }, function(reply) {
  47. var tpl = App.Templates.get('SUBFORM', 'dns');
  48. var tpl_records = App.HTML.Build.dns_records(reply.data);
  49. tpl.set(':SUBRECORDS', tpl_records);
  50. $(ref).find('.show-records').addClass('hidden');
  51. $(ref).after(tpl.finalize());
  52. App.Helpers.updateScreen();
  53. });
  54. }
  55. App.Pages.USER.new_entry = function(evt)
  56. {
  57. var form_id = App.Constants[App.Env.world + '_FORM_ID'];
  58. $('#'+form_id).remove();
  59. var build_method = App.Env.getWorldName() + '_form';
  60. var tpl = App.HTML.Build[build_method]({}, form_id);
  61. var box = $('<div>').html(tpl);
  62. $(box).find('.suspended').addClass('hidden');
  63. App.Ref.CONTENT.prepend($(box).html());
  64. App.Helpers.updateScreen();
  65. $('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden');
  66. }
  67. App.Pages.WEB_DOMAIN.new_entry = function(evt)
  68. {
  69. var form_id = App.Constants[App.Env.world + '_FORM_ID'];
  70. $('#'+form_id).remove();
  71. var build_method = App.Env.getWorldName() + '_form';
  72. var tpl = App.HTML.Build[build_method]({}, form_id);
  73. var box = $('<div>').html(tpl);
  74. $(box).find('.suspended').addClass('hidden');
  75. App.Ref.CONTENT.prepend($(box).html());
  76. //App.Ref.CONTENT.prepend(tpl);
  77. App.Helpers.updateScreen();
  78. $('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden');
  79. var ssl_key_upload = App.HTML.Build.ssl_key_file();
  80. var ssl_cert_upload = App.HTML.Build.ssl_cert_file();
  81. $('#'+form_id).find('.ssl-key-input-dummy:first').replaceWith(ssl_key_upload);
  82. $('#'+form_id).find('.ssl-cert-input-dummy:first').replaceWith(ssl_cert_upload);
  83. }
  84. App.Pages.WEB_DOMAIN.edit = function(evt)
  85. {
  86. var elm = $(evt.target);
  87. elm = elm.hasClass('row') ? elm : elm.parents('.row');
  88. var options = elm.find('.source').val();
  89. var build_method = App.Env.getWorldName() + '_form';
  90. var tpl = App.HTML.Build[build_method](options);
  91. // ssls uploads
  92. var ssl_key_upload = App.HTML.Build.ssl_key_file();
  93. var ssl_cert_upload = App.HTML.Build.ssl_cert_file();
  94. tpl = tpl.replace('<span class="ssl-key-input-dummy">...</span>', ssl_key_upload);
  95. tpl = tpl.replace('<span class="ssl-cert-input-dummy">...</span>', ssl_cert_upload);
  96. elm.replaceWith(tpl);
  97. App.Helpers.disableNotEditable();
  98. App.Helpers.updateScreen();
  99. }
  100. App.Pages.WEB_DOMAIN.setSSL = function(type, frame)
  101. {
  102. var txt = App.Helpers.evalJSON(content);
  103. var ref = frame.frameElement;
  104. $(ref).next('textarea').val(frame.document.getElementById('result').value);
  105. }
  106. App.Pages.loadBackups = function()
  107. {
  108. App.Env.world = 'BACKUPS';
  109. App.Pages.prepareHTML();
  110. }
  111. App.Pages.BACKUPS.prepareHTML = function()
  112. {
  113. $('#primary-nav-box .active').removeClass('active');
  114. $('#BACKUPS').addClass('active');
  115. $('#new-entry-keyword').text(App.Helpers.getHumanTabName());
  116. document.title = 'Vesta | ' + App.Helpers.getHumanTabName();
  117. App.Ajax.request('MAIN.getBackups', {}, function(reply) {
  118. if (!reply.result) {
  119. App.Herlers.alert('Backups list failed to load. Please try again a bit later');
  120. }
  121. App.Ref.CONTENT.html(App.HTML.Build.backup_list(reply.data));
  122. App.Helpers.updateScreen();
  123. //$('#content').html(App.HTML.Build.backup_list(reply.data));
  124. });
  125. }
  126. App.Pages.loadStats = function()
  127. {
  128. App.Env.world = 'STATS';
  129. App.Pages.prepareHTML();
  130. }
  131. App.Pages.STATS.prepareHTML = function()
  132. {
  133. $('.row-filters').addClass('hidden');
  134. $('#actions-toolbar .do_action_new_entry').addClass('hidden');
  135. $('#actions-toolbar .stats-subbar').remove();
  136. $('#actions-toolbar .do_action_new_entry').after(App.Templates.get('SUBMENU', 'stats').finalize());
  137. $('#primary-nav-box .active').removeClass('active');
  138. $('#STATS').addClass('active');
  139. $('#new-entry-keyword').text(App.Helpers.getHumanTabName());
  140. document.title = 'Vesta | ' + App.Helpers.getHumanTabName();
  141. App.Ajax.request('STATS.getList', {}, function(reply) {
  142. if (!reply.result) {
  143. App.Herlers.alert('Stats list failed to load. Please try again a bit later');
  144. }
  145. App.Ref.CONTENT.html(App.HTML.Build.stats_list(reply.data));
  146. App.Helpers.updateScreen();
  147. //$('#content').html(App.HTML.Build.backup_list(reply.data));
  148. });
  149. }