Guest User

Untitled

a guest
Feb 21st, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.01 KB | None | 0 0
  1. /***********************************/
  2. /* JS by gonchuki - (c)soho - 2006 */
  3. /***********************************/
  4.  
  5. var Dynatable = new Class ({
  6. initialize: function() {
  7. if (!document.getElementsByTagName){ return; }
  8.  
  9. $$('a.link_delete').each(function(anchor) {
  10. anchor.onclick = function() { myDynatable.delete_item(this); return false; }
  11. })
  12.  
  13. $$('a.link_cancel').each(function(anchor) {
  14. anchor.onclick = function() { myDynatable.close_form(this); return false; }
  15. })
  16.  
  17. $$('a.link_show').each(function(anchor) {
  18. anchor.onclick = function() { myDynatable.show_form(this); return false; }
  19. })
  20. },
  21.  
  22. delete_item: function(sohoLink) {
  23. var table = find_parent(sohoLink, 'TABLE');
  24. var tr = find_parent(sohoLink, 'TR');
  25.  
  26. $ES('td', tr).each(function(td) {
  27. new fx.Style(td, 'opacity', {duration:500}).custom(1, 0);
  28. });
  29. (function() {
  30. tr.parentNode.removeChild(tr);
  31.  
  32. /* checkea si la tabla esta vacia y muestra un item por default */
  33. if (table.getElementsByTagName('TD')[0] == null) {
  34. var thead = new Element('thead');
  35. var tr2 = new Element('tr');
  36. var td = new Element('td');
  37.  
  38. td.innerHTML = 'esta lista está vacía';
  39.  
  40. tr2.appendChild(td);
  41. thead.appendChild(tr2);
  42. table.appendChild(thead);
  43. }
  44.  
  45. }).delay(500);
  46.  
  47. },
  48.  
  49. show_form: function(sohoLink) {
  50. var box_outer = find_parent(sohoLink, 'DIV');
  51. var box_wrap = $E('div.box_wrap', box_outer);
  52.  
  53. box_wrap.setStyle('display', 'block');
  54. new fx.Height(box_wrap).toggle();
  55. new fx.Style(box_wrap, 'opacity', {duration:500}).custom(0, 1);
  56. new fx.Style(sohoLink, 'opacity', {duration:500}).custom(1, 0);
  57. },
  58.  
  59. close_form: function(sohoLink) {
  60. var box_in = find_parent(sohoLink, 'DIV');
  61. var box_out = find_parent(box_in, 'DIV');
  62. var box_wrap = find_parent(box_out, 'DIV');
  63. var box_outer = find_parent(box_wrap, 'DIV');
  64.  
  65. new fx.Height(box_wrap).toggle();
  66. new fx.Style(box_wrap, 'opacity', {duration:500}).custom(1, 0);
  67. new fx.Style($E('a.link_show', box_outer), 'opacity', {duration:500}).custom(0, 1);
  68. },
  69.  
  70. submit: function(form) {
  71. /* cambiar el method a form.method si se va a correr contra un script de server */
  72. //alert(form.toQueryString());
  73. alert(form.toQueryString());
  74. //new ajax(form.action, { postBody: form.toQueryString(), method: 'get', onComplete: myDynatable.ajax_callback }).request();
  75. //new ajax('../inc/xml/ejemplo_web.xml', { postBody: form.toQueryString(), method: 'get' }).request();
  76. //return(false);
  77. },
  78.  
  79. ajax_callback: function(responseText, responseXML) {
  80. var result = responseXML.getElementsByTagName('result')[0];
  81. var table = $('dynatable_' + result.getAttribute('for'));
  82. var tbody = $E('tbody', table);
  83.  
  84. var tr = new Element("tr");
  85.  
  86. for (var i = 0; i < result.getElementsByTagName('field').length; i++) {
  87. var field = result.getElementsByTagName('field')[i].firstChild.nodeValue;
  88.  
  89. var td = new Element("td");
  90.  
  91. /* oink */
  92. if (i == 1) {
  93. switch (result.getAttribute('for')) {
  94. case 'web':
  95. case 'email':
  96. td.innerHTML = '<span class="no_bold">capacidad<span>&nbsp;';
  97. break;
  98. }
  99. }
  100.  
  101. td.innerHTML += field;
  102. tr.appendChild(td);
  103. }
  104.  
  105. var td = new Element("td");
  106. var del = new Element("a");
  107. del.setAttribute('href', 'javascript:;');
  108. del.className = 'link_delete';
  109. del.onclick = function() { myDynatable.delete_item(this); return false; }
  110.  
  111. switch (result.getAttribute('for')) {
  112. case 'mac':
  113. del.innerHTML = 'X';
  114. break;
  115. case 'email':
  116. del.innerHTML = 'Eliminar Casilla';
  117. break;
  118. case 'web':
  119. del.innerHTML = 'Eliminar P&aacute;gina';
  120. break;
  121. default:
  122. del.innerHTML = 'Eliminar';
  123. break;
  124. }
  125.  
  126. td.appendChild(del);
  127. tr.appendChild(td);
  128.  
  129. tbody.appendChild(tr);
  130.  
  131. myDynatable.close_form($E('a.link_cancel', find_parent(table, 'DIV')));
  132. }
  133. })
  134.  
  135. function initDynatable() { myDynatable = new Dynatable(); }
  136.  
  137. Window.onDomReady( function(){ initDynatable(); } );
Add Comment
Please, Sign In to add comment