Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Algunas variables y constantes globales
- var saveActionColumn = 9;
- var debtColumn = 5;
- var yuiAmountCellHeader = "yui-dt1-th-di_amount ";
- var highlightedClassName = "highlighted";
- var coolCursorClassName = "coolCursor";
- var updatedRecord = "none";
- var previousAmountValue;
- var onInitDraggableTable = function(event) {
- var recordSet = this.getRecordSet();
- var columnSet = this.getColumnSet();
- var rowLenght = recordSet.getLength() - 1;
- var columnsLenght = columnSet.keys.length - 1;
- var cell;
- for(rowCounter = 0 ; rowCounter <= rowLenght ; rowCounter++){
- for(columnCounter = 0 ; columnCounter <= columnsLenght ; columnCounter++){
- cell = this.getTdEl({
- record: recordSet.getRecord(rowCounter),
- column: columnSet.getColumn(columnCounter)
- })
- // Si es la celda de monto la convierto en draggueable
- if (cell.headers == yuiAmountCellHeader) {
- var cellMoving = new YAHOO.util.DDProxy(cell);
- cellMoving.isTarget = false;
- // Configuramos un cursor especial para que vean que es draggeable
- YAHOO.util.Dom.addClass(cell, coolCursorClassName);
- cellMoving.onMouseDown = function(ev) {
- var target = YAHOO.util.Event.getTarget(ev);
- resetAmountValue();
- unpaint();
- removeSaveImage();
- paint(target.parentNode);
- selectedRecord = table2.yuiDataTableInstance.getRecord(target);
- srcRow = table2.yuiDataTableInstance.getTrEl(target);
- };
- cellMoving.onDragOver = function(ev) {
- YAHOO.util.Dom.addClass(arguments[1], highlightedClassName);
- }
- cellMoving.onDragOut = function() {
- YAHOO.util.Dom.removeClass(arguments[1], highlightedClassName);
- }
- cellMoving.onDragDrop = function(ev) {
- //YAHOO.util.DragDropMgr.stopDrag(ev,true);
- var dataSource = selectedRecord.getData();
- var recordTarget = table.yuiDataTableInstance.getRecord(arguments[1]);
- var data = dataSource["di_amount"];
- previousAmountValue = recordTarget.getData()["di_currentDebt"];
- updatedRecord = recordTarget;
- table.yuiDataTableInstance.updateCell(recordTarget, debtColumn , data);
- // Enciendo el diskette
- showSaveImage(recordTarget);
- };
- }
- }
- }
- }
- var onCellSelect = function(ev) {
- // Volvemos atras con el valor que se quedo pegado
- resetAmountValue();
- // Despintamos la seleccion
- unpaint();
- // Quitamos el diskette para salvar
- removeSaveImage();
- // Pintamos la nueva seleccion
- paint(YAHOO.util.Event.getTarget(ev));
- };
- var onInitDroppableTable = function(event) {
- // Seteo los targets (las filas droppeables)
- var records = table.yuiDataTableInstance.getRecordSet().getLength();
- for (var i = 0; i < records; ++i) {
- var targetRow = new YAHOO.util.DDTarget(table.yuiDataTableInstance.getTrEl(i));
- }
- }
- // Verificamos permisos para actualizacion antes de hacer nada
- if (isAccAuthorized("UPDATE-CURRENT-SITUATION-ITEM")) {
- table.yuiDataTableInstance.subscribe('initEvent', onInitDroppableTable);
- table2.yuiDataTableInstance.subscribe('cellClickEvent', onCellSelect);
- table2.yuiDataTableInstance.subscribe('initEvent', onInitDraggableTable);
- }
- // ********************************************************************************************
- // ** Helpers
- // ********************************************************************************************
- // Pinto de naranja la celda elegida en caso de que sea la de monto
- function paint(cell) {
- if (cell.headers == yuiAmountCellHeader) {
- YAHOO.util.Dom.addClass(cell, highlightedClassName);
- }
- }
- // Despinto todos elementos previamente seleccionados en las tablas
- function unpaint() {
- var elements = $("." + highlightedClassName);
- for (var j = 0; j < elements.length; j++) {
- YAHOO.util.Dom.removeClass(elements[j], highlightedClassName);
- }
- }
Add Comment
Please, Sign In to add comment