Guest User

Untitled

a guest
Jan 23rd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1. // Algunas variables y constantes globales
  2. var saveActionColumn = 9;
  3. var debtColumn = 5;
  4. var yuiAmountCellHeader = "yui-dt1-th-di_amount ";
  5. var highlightedClassName = "highlighted";
  6. var coolCursorClassName = "coolCursor";
  7. var updatedRecord = "none";
  8. var previousAmountValue;
  9.  
  10. var onInitDraggableTable = function(event) {
  11. var recordSet = this.getRecordSet();
  12. var columnSet = this.getColumnSet();
  13.  
  14. var rowLenght = recordSet.getLength() - 1;
  15. var columnsLenght = columnSet.keys.length - 1;
  16.  
  17. var cell;
  18.  
  19. for(rowCounter = 0 ; rowCounter <= rowLenght ; rowCounter++){
  20. for(columnCounter = 0 ; columnCounter <= columnsLenght ; columnCounter++){
  21. cell = this.getTdEl({
  22. record: recordSet.getRecord(rowCounter),
  23. column: columnSet.getColumn(columnCounter)
  24. })
  25. // Si es la celda de monto la convierto en draggueable
  26. if (cell.headers == yuiAmountCellHeader) {
  27. var cellMoving = new YAHOO.util.DDProxy(cell);
  28.  
  29. cellMoving.isTarget = false;
  30.  
  31. // Configuramos un cursor especial para que vean que es draggeable
  32. YAHOO.util.Dom.addClass(cell, coolCursorClassName);
  33.  
  34. cellMoving.onMouseDown = function(ev) {
  35. var target = YAHOO.util.Event.getTarget(ev);
  36.  
  37. resetAmountValue();
  38. unpaint();
  39. removeSaveImage();
  40. paint(target.parentNode);
  41.  
  42. selectedRecord = table2.yuiDataTableInstance.getRecord(target);
  43. srcRow = table2.yuiDataTableInstance.getTrEl(target);
  44. };
  45.  
  46. cellMoving.onDragOver = function(ev) {
  47. YAHOO.util.Dom.addClass(arguments[1], highlightedClassName);
  48. }
  49.  
  50. cellMoving.onDragOut = function() {
  51. YAHOO.util.Dom.removeClass(arguments[1], highlightedClassName);
  52. }
  53.  
  54. cellMoving.onDragDrop = function(ev) {
  55. //YAHOO.util.DragDropMgr.stopDrag(ev,true);
  56. var dataSource = selectedRecord.getData();
  57. var recordTarget = table.yuiDataTableInstance.getRecord(arguments[1]);
  58. var data = dataSource["di_amount"];
  59. previousAmountValue = recordTarget.getData()["di_currentDebt"];
  60. updatedRecord = recordTarget;
  61. table.yuiDataTableInstance.updateCell(recordTarget, debtColumn , data);
  62. // Enciendo el diskette
  63. showSaveImage(recordTarget);
  64. };
  65. }
  66. }
  67. }
  68. }
  69.  
  70. var onCellSelect = function(ev) {
  71. // Volvemos atras con el valor que se quedo pegado
  72. resetAmountValue();
  73. // Despintamos la seleccion
  74. unpaint();
  75. // Quitamos el diskette para salvar
  76. removeSaveImage();
  77. // Pintamos la nueva seleccion
  78. paint(YAHOO.util.Event.getTarget(ev));
  79. };
  80.  
  81. var onInitDroppableTable = function(event) {
  82. // Seteo los targets (las filas droppeables)
  83. var records = table.yuiDataTableInstance.getRecordSet().getLength();
  84. for (var i = 0; i < records; ++i) {
  85. var targetRow = new YAHOO.util.DDTarget(table.yuiDataTableInstance.getTrEl(i));
  86. }
  87. }
  88.  
  89. // Verificamos permisos para actualizacion antes de hacer nada
  90. if (isAccAuthorized("UPDATE-CURRENT-SITUATION-ITEM")) {
  91. table.yuiDataTableInstance.subscribe('initEvent', onInitDroppableTable);
  92. table2.yuiDataTableInstance.subscribe('cellClickEvent', onCellSelect);
  93. table2.yuiDataTableInstance.subscribe('initEvent', onInitDraggableTable);
  94. }
  95. // ********************************************************************************************
  96. // ** Helpers
  97. // ********************************************************************************************
  98.  
  99. // Pinto de naranja la celda elegida en caso de que sea la de monto
  100. function paint(cell) {
  101. if (cell.headers == yuiAmountCellHeader) {
  102. YAHOO.util.Dom.addClass(cell, highlightedClassName);
  103. }
  104. }
  105.  
  106. // Despinto todos elementos previamente seleccionados en las tablas
  107. function unpaint() {
  108. var elements = $("." + highlightedClassName);
  109. for (var j = 0; j < elements.length; j++) {
  110. YAHOO.util.Dom.removeClass(elements[j], highlightedClassName);
  111. }
  112. }
Add Comment
Please, Sign In to add comment