Changeset 38411 for main/trunk
- Timestamp:
- 2023-11-20T21:13:41+13:00 (7 months ago)
- 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
r38410 r38411 4 4 // This function should return all the doc sections' (actually only root section's) usercomments data so that 5 5 // setArchivesMetadata can be called for root section and the entire collection rebuilt with the changes 6 function getUserCommentsEditDataForSaving(userCommentsMetaFields, userCommentsRowsChanged) { 7 var docArray = []; 8 6 function getUserCommentsEditDataForSaving(userCommentsMetaFields, userCommentsRowsChanged) { 7 // https://medium.com/@martin.crabtree/javascript-tracking-key-value-pairs-using-hashmaps-7de6df598257 8 // Just using JS object. Not using Map in case it's not always compatible with older 9 // browsers we still support on 32 bit linux. 10 var docIDs_to_metatable_map = {}; 11 12 9 13 var i = 0; 10 14 for (i = 0; i < userCommentsRowsChanged.length; i++) { … … 15 19 16 20 var metaval = changedElem.value; //changedElem.textContent; // gets orig value 17 metaval = metaval.replace(/ /g, " "); 21 metaval = metaval.replace(/ /g, " "); // copied from docedit_scripts_utl, when procsesing the array called changes. 18 22 19 23 var currentElem = changedElem; … … 37 41 //alert("docid: " + docID + " metaname: " + metaname + " metaval: " + metaval + " metapos: " + metapos); 38 42 43 // https://dmitripavlutin.com/check-if-object-has-property-javascript/ 44 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/null 45 if(docIDs_to_metatable_map[docID] === undefined) { 46 docIDs_to_metatable_map[docID] = []; 47 } 48 docIDs_to_metatable_map[docID].push({metaname:metaname,metavalue:metaval,metapos:metapos}); 49 } 50 51 var docids = Object.keys(docIDs_to_metatable_map); 52 i = 0; 53 var docArray = []; 54 for(i = 0; i < docids.length; i++) { 55 var docid = docids[i]; 56 var metatable = docIDs_to_metatable_map[docid]; 39 57 docArray.push({ 40 docid:doc ID,41 metatable: [{metaname:metaname,metavalue:metaval,metapos:metapos}],58 docid:docid, 59 metatable:metatable, 42 60 metamode:"override" 43 61 }); 44 62 } 45 63 46 64 return docArray; 47 65 } … … 50 68 cell = $(cell); 51 69 var doc_id = cell.attr("id").substring(6); 52 //console.log("HERE I AM: id = " + doc_id);53 70 54 71 var edit_usercomments_table = document.getElementById("usercomments-"+doc_id); -
main/trunk/greenstone3/web/interfaces/default/js/documentedit_scripts_util.js
r38410 r38411 445 445 var metadataChanges = new Array(); 446 446 447 var delCommentsMetapositions = []; 447 var docids_to_delCommentsMetapositions = {}; 448 449 //var delCommentsMetapositions = []; 448 450 var userCommentsMetaFields = []; 449 451 var _docid; … … 451 453 //addCollectionToBuild(collection); 452 454 453 for(var i = 0; i < _deletedMetadata.length; i++) { 455 var i; 456 for(i = 0; i < _deletedMetadata.length; i++) { 454 457 455 458 var currentRow = _deletedMetadata[i]; … … 471 474 // get metapos; collumn names in first row are metanames 472 475 var metapos = currentRow.firstElementChild.textContent; 473 delCommentsMetapositions.push(metapos); 476 if(docids_to_delCommentsMetapositions[docID] === undefined) { 477 docids_to_delCommentsMetapositions[docID] = []; 478 } 479 //delCommentsMetapositions.push(metapos); 480 docids_to_delCommentsMetapositions[docID].push(metapos); 481 482 474 483 //console.log("docID : " + docID + " - metapos: " + metapos); 475 484 } … … 492 501 removeFromParent(currentRow); 493 502 } 503 504 var docids = Object.keys(docids_to_delCommentsMetapositions); 505 var docArray = []; 506 for(i = 0; i < docids.length; i++) { //if(docids.length > 0) { 507 var _docid = docids[i]; 508 var delCommentsMetapositions = docids_to_delCommentsMetapositions[_docid]; 509 494 510 495 511 // build up the data structure for all the usercomments to be deleted … … 512 528 var doc_rec = { 513 529 docid: _docid, 514 metatable: [username_rec, timestamp_rec, comment_rec], 515 //metamode: "accumulate" 530 metatable: [username_rec, timestamp_rec, comment_rec] 516 531 }; 517 518 var docArray = [doc_rec]; 519 metadataChanges.push({type:'deleteUserComments', docID:docID, docArray:docArray}); 520 addCollectionToBuild(collection); 532 533 docArray.push(doc_rec); 521 534 } 535 } 536 537 if(docArray.length > 0) {// or if(docids.length > 0) 538 metadataChanges.push({type:'deleteUserComments', docArray:docArray}); 539 addCollectionToBuild(collection); 540 } 541 // clear used up vars https://bobbyhadz.com/blog/javascript-clear-object-delete-all-properties 542 docArray = []; 543 docids_to_delCommentsMetapositions = {}; 544 docids = []; 522 545 } 523 546 … … 611 634 metadataChanges.push({type:'editUserComments',collection:collection,docArray:docArray}); 612 635 addCollectionToBuild(collection); 636 docArray = []; // clear it 613 637 } 614 638
Note:
See TracChangeset
for help on using the changeset viewer.