Ignore:
Timestamp:
2023-11-23T17:52:35+13:00 (6 months ago)
Author:
anupama
Message:

Don't need to do setMetadataArray on edits in user comment rows that are not just edited but also deleted. (Avoiding the extra work of first editing then deleting the affected user comment row).

Location:
main/trunk/greenstone3/web/interfaces/default/js
Files:
2 edited

Legend:

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

    r38424 r38426  
    44// This function should return usercomments data (only exists for doc root's section) so that
    55// setMetadataArray can be called for doc root and the entire collection rebuilt with the changes
    6 function getUserCommentsEditDataForSaving(userCommentsMetaFields, userCommentsRowsChanged) {
     6function getUserCommentsEditDataForSaving(userCommentsMetaFields, userCommentsRowsChanged,
     7                      docids_to_delCommentsMetapositions) {
    78    // https://medium.com/@martin.crabtree/javascript-tracking-key-value-pairs-using-hashmaps-7de6df598257
    89    // Just using JS object. Not using Map in case it's not always compatible with older
     
    2728    currentElem = changedElem;
    2829    while((currentElem = currentElem.parentNode).tagName != "TR");
    29     var metapos = currentElem.firstElementChild.textContent;       
     30    var metapos = currentElem.firstElementChild.textContent;
     31   
     32    // don't consider edits in user comment rows that have also been marked for deletion
     33    var metapositionsToBeDeleted = docids_to_delCommentsMetapositions[docID];
     34    if(metapositionsToBeDeleted !== undefined) {
     35        // https://www.digitalocean.com/community/tutorials/js-array-search-methods
     36        if(metapositionsToBeDeleted.indexOf(metapos) != -1) {
     37        alert("Discarding edit at metapos " + metapos + " as user comment row is to be deleted.");
     38        continue;
     39        }
     40    }
    3041   
    3142    //currentElem = changedElem.parentNode; //TD
  • main/trunk/greenstone3/web/interfaces/default/js/documentedit_scripts_util.js

    r38424 r38426  
    453453    //addCollectionToBuild(collection);
    454454
    455       var i;
     455    var i;
    456456    for(i = 0; i < _deletedMetadata.length; i++) {
    457457     
     
    460460      //Get document ID
    461461      var currentElem = currentRow;
     462      //console.log("metapos: " + currentElem.firstElementChild.textContent);
    462463      while((currentElem = currentElem.parentNode).tagName != "TABLE");
    463464   
     
    501502    }
    502503
    503    
    504 
    505504  }
    506505
     
    524523        {
    525524            //Get document ID
    526             var currentElem = changedElem;
    527             while((currentElem = currentElem.parentNode).tagName != "TABLE");
     525            var currentElem = changedElem;
     526            while((currentElem = currentElem.parentNode).tagName != "TABLE");
    528527            if(currentElem.getAttribute("id").startsWith("usercomments-")) {
    529528            userCommentsRowsChanged.push(changedElem);
     
    593592    //alert("Usercomments colnames: " + userCommentsMetaFields);
    594593    var docArray = getUserCommentsEditDataForSaving(
    595         userCommentsMetaFields, userCommentsRowsChanged);
     594        userCommentsMetaFields, userCommentsRowsChanged, docids_to_delCommentsMetapositions);
     595        // passing in docids_to_delCommentsMetapositions to cancel any edits in user comment
     596        // rows that have also been marked for deletion.
    596597   
    597598    metadataChanges.push({type:'editUserComments',collection:collection,docArray:docArray});
Note: See TracChangeset for help on using the changeset viewer.