Changeset 26966 for main/trunk/greenstone3/web/interfaces/default/js
- Timestamp:
- 2013-02-26T16:39:06+13:00 (11 years ago)
- Location:
- main/trunk/greenstone3/web/interfaces/default/js
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/default/js/debug_scripts.js
r26924 r26966 248 248 } 249 249 }); 250 251 undoButton = $("<input type=\"button\" value=\"Undo\">"); 252 undoButton.click(function() 253 { 254 if(_isVisualEditor) 255 { 256 _vEditor.undo(); 257 } 258 else 259 { 260 _editor.undo(); 261 } 262 }); 250 263 251 264 var clear = $("<span>"); … … 259 272 buttonDiv.append(_saveButton); 260 273 buttonDiv.append(_swapEditorButton); 274 buttonDiv.append(undoButton); 261 275 262 276 _mainDiv.append(toolBarDiv); -
main/trunk/greenstone3/web/interfaces/default/js/visual-xml-editor.js
r26927 r26966 28 28 _overList.freeSpaces = new Array(); 29 29 30 var _transactions = new Array(); 31 30 32 this.getXML = function() 31 33 { 32 34 return _xml; 35 } 36 37 this.undo = function() 38 { 39 if(_transactions.length > 0) 40 { 41 var t = _transactions.pop(); 42 //Undo an added element 43 if(t.type == "addElem") 44 { 45 $(t.vElem.data("parentVEElement").getXMLNode()).remove(); 46 t.vElem.remove(); 47 resizeAll(); 48 } 49 //Undo a removed or moved element 50 else if(t.type == "remMvElem") 51 { 52 var parent = t.vElemParent; 53 var pos = t.vElemPos; 54 var elem = t.vElem; 55 if(pos == 0) 56 { 57 parent.prepend(elem); 58 $(parent.parent().data("parentVEElement").getXMLNode()).prepend(elem.data("parentVEElement").getXMLNode()); 59 } 60 else if(pos == parent.children(".veElement").length - 1) 61 { 62 parent.children(".veElement").eq(pos - 1).after(elem); 63 $(parent.children(".veElement").eq(pos - 1).data("parentVEElement").getXMLNode()).after(elem.data("parentVEElement").getXMLNode()); 64 } 65 else 66 { 67 parent.children(".veElement").eq(pos).before(elem); 68 $(parent.children(".veElement").eq(pos).data("parentVEElement").getXMLNode()).before(elem.data("parentVEElement").getXMLNode()); 69 } 70 resizeAll(); 71 } 72 //Undo an added attribute 73 else if(t.type == "addAttr") 74 { 75 if(t.row) 76 { 77 t.row.remove(); 78 } 79 } 80 //Undo a removed or edited attribute 81 else if(t.type == "editAttr") 82 { 83 t.elem.removeAttribute(t.newName); 84 t.elem.setAttribute(t.name, t.value); 85 if(t.row) 86 { 87 t.row.children("td").eq(0).text(t.name); 88 t.row.children("td").eq(1).text(t.value); 89 } 90 } 91 //Undo a removed or edited attribute 92 else if(t.type == "remAttr") 93 { 94 t.elem.setAttribute(t.name, t.value); 95 if(t.rowParent) 96 { 97 t.rowParent.append(t.row); 98 } 99 } 100 //Undo edited text 101 else if(t.type == "editText") 102 { 103 t.elem.nodeValue = t.value; 104 if(t.vElem) 105 { 106 t.vElem.text(t.value); 107 } 108 } 109 } 33 110 } 34 111 … … 391 468 link.click(function() 392 469 { 393 var nameCell = cell.parent().children("td").eq(0);394 var valueCell = cell.parent().children("td").eq(1);470 var nameCell = _row.children("td").eq(0); 471 var valueCell = _row.children("td").eq(1); 395 472 if(link.text() == "edit") 396 473 { … … 433 510 _xmlElem.setAttribute(name, value); 434 511 512 _transactions.push({type:"editAttr", elem:_xmlElem, row:_row, newName:name, name:_name, value:_value}); 513 435 514 _name = name; 436 515 _value = value; … … 447 526 link.click(function() 448 527 { 528 _transactions.push({type:"remAttr", elem:_xmlElem, row:_row, rowParent:_row.parent(), name:_name, value:_value}); 449 529 _xmlElem.removeAttribute(_name); 450 _row. remove();530 _row.detach(); 451 531 }); 452 532 cell.append(link); … … 609 689 "stop":function(event, ui) 610 690 { 691 var transactionType = (_div.data("toolbar")) ? "addElem" : "remMvElem"; 611 692 _div.data("dragging", false); 612 693 _div.data("toolbar", false); … … 649 730 $(xmlNode).append(_xmlNode); 650 731 } 732 _transactions.push({type:transactionType, vElemParent:_origDDParent, vElemPos:_origDDPosition, vElem:_div}); 651 733 } 652 734 } … … 726 808 { 727 809 var newAtt = new VEAttribute(null, _xmlNode, "", ""); 728 attributeTable.append(newAtt.getAsTableRow()); 810 var row = newAtt.getAsTableRow(); 811 attributeTable.append(row); 812 _transactions.push({type:"addAttr", row:row}) 729 813 }); 730 814 _infoDiv.append(addButton); … … 748 832 if(editButton.text() == "edit text") 749 833 { 834 nodeText.data("prevTextValue", nodeText.text()); 750 835 var textArea = $("<textarea>"); 751 836 textArea.val(nodeText.text()); … … 756 841 else 757 842 { 843 _transactions.push({type:"editText", elem:_xmlNode, vElem: nodeText, value:nodeText.data("prevTextValue")}); 758 844 var textArea = nodeText.find("textarea"); 759 845 var newValue = textArea.val();
Note:
See TracChangeset
for help on using the changeset viewer.