Changeset 29085 for main

Show
Ignore:
Timestamp:
29.05.2014 14:30:09 (6 years ago)
Author:
kjdon
Message:

several changes. need to encodeURI the orig value too, before passing to metadataChanges. Have moved sendBuildRequest definition up so I can call it separately, not as the callback funciton in setMetadataLoop - if we have deleted some elements, but not made any other changes, then this wasn't being called, and the deletions weren't making their way into the index. Use row.hide to disappear the row when click remove. row.css didn't seem to work. need to set changedElem.original value after getting out the previous original.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/default/js/documentmaker_scripts_util.js

    r29077 r29085  
    211211    } 
    212212 
    213     var changes = de.Changes.getChangedEditableSections(); 
    214     var metadataChanges = new Array(); 
    215      
    216     for(var i = 0; i < changes.length; i++) 
    217     { 
    218         var changedElem = changes[i]; 
    219          
    220         //Save metadata  
    221         if(gs.functions.hasClass(changedElem, "metaTableCell"))  
    222         { 
    223             //Get document ID 
    224             var currentElem = changedElem; 
    225             while((currentElem = currentElem.parentNode).tagName != "TABLE"); 
    226             var docID = currentElem.getAttribute("id").substring(4); 
    227  
    228             //Get metadata name 
    229             var row = changedElem.parentNode; 
    230             var cells = row.getElementsByTagName("TD"); 
    231             var nameCell = cells[0]; 
    232             var name = nameCell.innerHTML; 
    233             var value = changedElem.innerHTML; 
    234             value = value.replace(/&nbsp;/g, " "); 
    235             value = encodeURI(value); 
    236  
    237             changedElem.originalValue = changedElem.innerHTML; 
    238             metadataChanges.push({collection:collection, docID:docID, name:name, value:value, orig:changedElem.originalValue}); 
    239             addCollectionToBuild(collection); 
    240         } 
    241         //Save content 
    242         else if(gs.functions.hasClass(changedElem, "renderedText")) 
    243         { 
    244             var section = changedElem.parentDiv.parentItem; 
    245             saveTransaction('{"operation":"setText", "text":"' + changedElem.innerHTML.replace(/"/g, "\\\"").replace(/&/g, "%26") + '", "collection":"' + section.collection + '", "oid":"' + section.nodeID + '"}'); 
    246             addCollectionToBuild(section.collection); 
    247         } 
    248         else if(gs.functions.hasClass(changedElem, "sectionText")) 
    249         { 
    250             var id = changedElem.getAttribute("id"); 
    251             var sectionID = id.substring(4); 
    252             saveTransaction('{"operation":"setText", "text":"' + changedElem.innerHTML.replace(/"/g, "\\\"").replace(/&/g, "%26") + '", "collection":"' + gs.cgiParams.c + '", "oid":"' + sectionID + '"}'); 
    253             addCollectionToBuild(gs.cgiParams.c); 
    254         } 
    255     } 
    256      
    257213    var sendBuildRequest = function() 
    258214    { 
     
    314270        } 
    315271    } 
     272 
     273    var changes = de.Changes.getChangedEditableSections(); 
     274    var metadataChanges = new Array(); 
     275    if (changes.length == 0) { 
     276      sendBuildRequest(); 
     277      return; 
     278    } 
     279     
     280    for(var i = 0; i < changes.length; i++) 
     281    { 
     282        var changedElem = changes[i]; 
     283         
     284        //Save metadata      
     285        if(gs.functions.hasClass(changedElem, "metaTableCell"))  
     286        { 
     287            //Get document ID 
     288            var currentElem = changedElem; 
     289            while((currentElem = currentElem.parentNode).tagName != "TABLE"); 
     290            var docID = currentElem.getAttribute("id").substring(4); 
     291 
     292            //Get metadata name 
     293            var row = changedElem.parentNode; 
     294            var cells = row.getElementsByTagName("TD"); 
     295            var nameCell = cells[0]; 
     296            var name = nameCell.innerHTML; 
     297            var value = changedElem.innerHTML; 
     298            value = value.replace(/&nbsp;/g, " "); 
     299            value = encodeURI(value); 
     300 
     301            var orig = changedElem.originalValue; 
     302            if (orig) { 
     303              orig = orig.replace(/&nbsp;/g, " "); 
     304              orig = encodeURI(orig); 
     305            } 
     306            //changedElem.originalValue = changedElem.innerHTML; 
     307            //metadataChanges.push({collection:collection, docID:docID, name:name, value:value, orig:changedElem.originalValue}); 
     308            metadataChanges.push({collection:collection, docID:docID, name:name, value:value, orig:orig}); 
     309            changedElem.originalValue = changedElem.innerHTML; 
     310            //changedElem.originalValue = value; 
     311            addCollectionToBuild(collection); 
     312        } 
     313        //Save content 
     314        else if(gs.functions.hasClass(changedElem, "renderedText")) 
     315        { 
     316            var section = changedElem.parentDiv.parentItem; 
     317            saveTransaction('{"operation":"setText", "text":"' + changedElem.innerHTML.replace(/"/g, "\\\"").replace(/&/g, "%26") + '", "collection":"' + section.collection + '", "oid":"' + section.nodeID + '"}'); 
     318            addCollectionToBuild(section.collection); 
     319        } 
     320        else if(gs.functions.hasClass(changedElem, "sectionText")) 
     321        { 
     322            var id = changedElem.getAttribute("id"); 
     323            var sectionID = id.substring(4); 
     324            saveTransaction('{"operation":"setText", "text":"' + changedElem.innerHTML.replace(/"/g, "\\\"").replace(/&/g, "%26") + '", "collection":"' + gs.cgiParams.c + '", "oid":"' + sectionID + '"}'); 
     325            addCollectionToBuild(gs.cgiParams.c); 
     326        } 
     327    } 
     328     
     329     
    316330     
    317331    var setMetadataLoop = function(index) 
    318332    { 
     333       
    319334        var change = metadataChanges[index]; 
    320335         
     
    764779        _undoOperations.push(undo); 
    765780        _deletedMetadata.push(row); 
    766         row.css("display", "none"); 
     781        //row.css("display", "none"); 
     782        $(row).hide(); 
    767783    }); 
    768784    newCell.append(removeLink);