pages.js 7.0 KB

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