Ignore:
Timestamp:
2019-03-02T19:41:08+13:00 (5 years ago)
Author:
ak19
Message:

Save and rebuild works with map, but as with save shortcut key on map editor, the metamode ends up as accumulate still in doc.xml. Some other issues (not related to saveandrebuild) need fixing up like a popup about unsaved changes appearing even after save and rebuild has finished and possibly more things).

File:
1 edited

Legend:

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

    r32770 r32838  
    447447
    448448  var changes = changesToUpdate();
     449 
    449450  //Clean changes
    450451  editableInitStates = editableLastStates;
     452 
    451453    for(var i = 0; i < changes.length; i++)
    452454    {
    453455        var changedElem = changes[i];
    454         //Save metadata     
     456        //Save metadata
     457       
    455458        if(gs.functions.hasClass(changedElem, "metaTableCellArea"))
    456459        {
     
    514517    }
    515518
     519    // Check for changes to any map editors in the document
     520    var modified_map_editors_data = getDocMapsEditDataForSaving(gs.cgiParams.c); // collection 
     521    for(var i = 0; i < modified_map_editors_data.length; i++) {     
     522        metadataChanges.push(modified_map_editors_data[i]); // of the form { collection: gs.cgiParams.c, docID: nodeID, name:"GSP.mapOverlay", metapos: 0, value: <stringifiedJSON> }
     523        addCollectionToBuild(gs.cgiParams.c); // collection
     524    }
     525
     526   
    516527   
    517528    var processChangesLoop = function(index)
    518529    {
    519      
    520530        var change = metadataChanges[index];
    521        
     531               
    522532        var callbackFunction;
    523533        if(index + 1 == metadataChanges.length)
     
    532542            gs.functions.removeArchivesMetadata(collection, gs.xsltParams.site_name, change.docID, change.name, null, encodeDelimiters(change.value), function(){callbackFunction();});
    533543        } else {
    534           if(change.orig)
     544          // Checking "if(change.metapos)" doesn't work for us as it becomes false when the property doesn't exist AND when the property is 0. But metapos IS 0 for us.
     545          // https://ultimatecourses.com/blog/methods-to-determine-if-an-object-has-a-given-property
     546          if('metapos' in change && change.metapos === 0) {// && change.metapos === 0) { // for maps
     547               
     548                // collection, site, documentID, metadataName, metadataPosition, metadataValue, prevMetadataValue, metamode, responseFunction               
     549                //console.log("@@@ metapos! change: ", change);
     550                gs.functions.setArchivesMetadata(change.collection, gs.xsltParams.site_name, change.docID, change.name, change.metapos, change.value /*TODO: encodeDelimiters(change.value)*/, null, "override", function(){callbackFunction();});
     551            }
     552          else if(change.orig)
    535553            {
    536554            gs.functions.setArchivesMetadata(change.collection, gs.xsltParams.site_name, change.docID, change.name, null, encodeDelimiters(change.value), encodeDelimiters(change.orig), "override", function(){callbackFunction();});
Note: See TracChangeset for help on using the changeset viewer.