actions.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /*App.Actions.cancel_ip_form = function(){
  2. alert(1);
  3. }*/
  4. App.Actions.show_subform = function(evt)
  5. {
  6. var elm = $(evt.target);
  7. var ref = elm.hasClass('row') ? elm : elm.parents('.row');
  8. var ref_subform = ref.next('.subform');
  9. if (ref_subform.length > 0) {
  10. ref_subform.remove();
  11. }
  12. if ('undefined' != typeof App.Pages[App.Env.world].showSubform) {
  13. App.Pages[App.Env.world].showSubform(ref);
  14. }
  15. // TODO: probably general way to embed subforms
  16. }
  17. App.Actions.close_subform = function(evt)
  18. {
  19. var elm = $(evt.target);
  20. var ref = elm.hasClass('subform') ? elm : elm.parents('.subform');
  21. var parent_ref = ref.prev('.row');
  22. if (parent_ref.length > 0) {
  23. parent_ref.find('.show-records').removeClass('hidden');
  24. }
  25. ref.remove();
  26. }
  27. App.Actions.view_template_settings = function(evt)
  28. {
  29. alert('TODO');
  30. }
  31. App.Actions.add_subrecord_dns = function(evt)
  32. {
  33. var elm = $(evt.target);
  34. var ref = elm.hasClass('subform') ? elm : elm.parents('.subform');
  35. if (ref.length > 0) {
  36. var tpl = App.HTML.Build.dns_subrecord({});
  37. ref.find('.add-box').after(tpl.finalize());
  38. App.Helpers.updateScreen();
  39. }
  40. }
  41. App.Actions.delete_subentry = function(evt)
  42. {
  43. var sure = confirm(App.i18n.getMessage('confirm'));
  44. if (!sure) {
  45. return;
  46. }
  47. var elm = $(evt.target);
  48. var ref = elm.hasClass('subrow') ? elm : elm.parents('.subrow');
  49. ref.effect('puff', {}, 300, function(){ref.remove();})
  50. }
  51. /**
  52. * Embeds new item form
  53. * if exits custom method (App.Pages[ENVIRONMENT_NAME].newForm)
  54. * custom method will be executes instead of default one
  55. */
  56. App.Actions.new_entry = function() {
  57. if ('undefined' != typeof App.Pages[App.Env.world].new_entry) {
  58. App.Pages[App.Env.world].new_entry();
  59. } else {
  60. var form_id = App.Constants[App.Env.world + '_FORM_ID'];
  61. $('#'+form_id).remove();
  62. var build_method = App.Env.getWorldName() + '_form';
  63. var tpl = App.HTML.Build[build_method]({}, form_id);
  64. App.Ref.CONTENT.prepend(tpl);
  65. App.Helpers.updateScreen();
  66. }
  67. }
  68. // do_action_save
  69. App.Actions.save_form = function(evt) {
  70. var elm = $(evt.target);
  71. elm = elm.parents('.b-new-entry');
  72. var elm_id = App.Env.world + '_FORM_ID';
  73. var build_method = App.Env.getWorldName() + '_entry';
  74. if (elm.attr('id') == App.Constants[elm_id]) { // NEW ITEM
  75. var values = App.Helpers.getFormValues(elm);
  76. if(App.Validate.form(values, $('#'+elm_id))) {
  77. App.Model.add(values, source);
  78. var tpl = App.HTML.Build[build_method](values, 'new');
  79. $('#' + App.Constants[elm_id]).replaceWith(tpl);
  80. }
  81. }
  82. else { // OLD ITEM, UPDATING IT
  83. var source = $(elm).find('.source').val();
  84. var values = App.Helpers.getFormValues(elm);
  85. if(App.Validate.form(values, $('#'+elm_id))) {
  86. App.Model.update(values, source);
  87. var tpl = App.HTML.Build[build_method](values);
  88. elm.replaceWith(tpl);
  89. }
  90. }
  91. App.Helpers.updateScreen();
  92. }
  93. // do_action_edit
  94. App.Actions.edit = function(evt) {
  95. var elm = $(evt.target);
  96. elm = elm.hasClass('row') ? elm : elm.parents('.row');
  97. App.Pages[App.Env.world].edit(elm);
  98. App.Helpers.updateScreen();
  99. }
  100. // do_cancel_form
  101. App.Actions.cancel_form = function(evt, params) {
  102. var elm = $(evt.target);
  103. elm = elm.parents('.b-new-entry');
  104. var form_id = App.Constants[App.Env.world + '_FORM_ID'];
  105. if (elm.attr('id') == form_id) {
  106. $('#' + form_id).remove();
  107. }
  108. else {
  109. var options = App.Helpers.evalJSON(elm.find('.source').val());
  110. var entry_name = App.Env.world.toLowerCase() + '_entry';
  111. var tpl = App.HTML.Build[entry_name](options);
  112. elm.replaceWith(tpl);
  113. }
  114. App.Helpers.updateScreen();
  115. }
  116. // do_action_form_help
  117. App.Actions.showFormHelp = function(evt) {
  118. var tpl_name = App.Env.world + '_form';
  119. var tpl = App.Templates.get(tpl_name, 'help');
  120. App.View.popup(tpl.finalize());
  121. }
  122. // do_action_entry_help
  123. App.Actions.showEntryHelp = function(evt) {
  124. var tpl_name = App.Env.world + '_entry';
  125. var tpl = App.Templates.get(tpl_name, 'help');
  126. App.View.popup(tpl.finalize());
  127. }
  128. App.Actions.embedSubform = function(evt) {
  129. var tpl = App.Templates.get('subform', App.Env.getWorldName());
  130. }
  131. App.Actions.close_popup = function()
  132. {
  133. App.View.closePopup();
  134. }
  135. App.Actions.save_dns_subrecords = function(evt)
  136. {
  137. var elm = $(evt.target);
  138. var ref = elm.hasClass('subform') ? elm : elm.parents('.subform');
  139. var records = [];
  140. ref.find('.subrow').each(function(i, o){
  141. records[records.length++] = App.Helpers.getFormValuesFromElement(o);
  142. });
  143. fb.warn($.toJSON(records));
  144. }