Changeset 38395 for main/trunk/greenstone3/web
- Timestamp:
- 2023-11-19T18:27:57+13:00 (7 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/default/js/documentedit_scripts_util.js
r38351 r38395 345 345 } 346 346 347 348 function fillUserCommentTableColumnNames(elem, userCommentsMetaFields) { 349 var currentElem = elem; 350 if(currentElem.tagName != "TABLE") { 351 while((currentElem = currentElem.parentNode).tagName != "TABLE"); 352 } 353 354 var headerRow = currentElem.firstElementChild; // tr 355 var headerCells = headerRow.querySelectorAll("th"); 356 for(var th = 1; th < headerCells.length; th++) { // skip th index=0, which is metapos 357 userCommentsMetaFields.push(headerCells[th].textContent); 358 //console.log("userCommentsMetaFields:" + userCommentsMetaFields[th-1]); 359 } 360 } 347 361 348 362 function saveAndRebuild(rebuild) … … 452 466 453 467 if(userCommentsMetaFields.length == 0) { 454 var headerRow = currentElem.firstElementChild; // tr 455 var headerCells = headerRow.querySelectorAll("th"); 456 for(var th = 1; th < headerCells.length; th++) { // skip th index=0, which is metapos 457 userCommentsMetaFields.push(headerCells[th].textContent); 458 //console.log("userCommentsMetaFields:" + userCommentsMetaFields[th-1]); 459 } 468 fillUserCommentTableColumnNames(currentElem, userCommentsMetaFields); 460 469 } 461 470 … … 520 529 // But since our setMeta calls are always synchronous, happening in sequence, if one setArchivesMeta() call fails 521 530 // we'll not attempt subsequent ones or coll building at the end. 522 531 532 var userCommentsRowsChanged = []; 523 533 for(var i = 0; i < changes.length; i++) 524 534 { … … 531 541 var currentElem = changedElem; 532 542 while((currentElem = currentElem.parentNode).tagName != "TABLE"); 533 var docID = currentElem.getAttribute("id").substring(4); 543 if(currentElem.getAttribute("id").startsWith("usercomments-")) { 544 userCommentsRowsChanged.push(changedElem); 545 continue; 546 } 547 var docID = currentElem.getAttribute("id").substring(4); 534 548 535 549 //Get metadata name … … 586 600 } 587 601 } 588 602 603 if(userCommentsRowsChanged.length > 0) { 604 var docArray = []; 605 //var metatable = []; 606 if(userCommentsMetaFields.length == 0) { 607 fillUserCommentTableColumnNames(userCommentsRowsChanged[0], userCommentsMetaFields); 608 } 609 //alert("Usercomments colnames: " + userCommentsMetaFields); 610 611 var i = 0; 612 for (i = 0; i < userCommentsRowsChanged.length; i++) { 613 // need docID, metaname, metaval, metapos, and set metamode to override 614 615 var changedElem = userCommentsRowsChanged[i]; 616 //console.dir(changedElem); 617 618 var metaval = changedElem.value; //changedElem.textContent; // gets orig value 619 //metaval = metaval.replace(/ /g, " "); 620 621 var currentElem = changedElem; 622 while((currentElem = currentElem.parentNode).tagName != "TABLE"); 623 var docID = currentElem.getAttribute("id").substring("usercomments-".length); 624 625 currentElem = changedElem; 626 while((currentElem = currentElem.parentNode).tagName != "TR"); 627 var metapos = currentElem.firstElementChild.textContent; 628 629 //currentElem = changedElem.parentNode; //TD 630 currentElem = changedElem; 631 while((currentElem = currentElem.parentNode).tagName != "TD"); 632 // count number of previous siblings 633 var th = 0; 634 while((currentElem = currentElem.previousSibling) != null) { 635 th++; 636 } 637 var metaname = userCommentsMetaFields[th-1]; // first column is invisible metapos col 638 639 //alert("docid: " + docID + " metaname: " + metaname + " metaval: " + metaval + " metapos: " + metapos); 640 641 //metatable.push({metaname:metaname,metavalue:metaval,metapos:metapos}); 642 643 docArray.push({ 644 docid:docID, 645 metatable:[{metaname:metaname,metavalue:metaval,metapos:metapos}], 646 metamode:"override" 647 }); 648 } 649 metadataChanges.push({type:'editUserComments',collection:collection,docArray:docArray}); 650 addCollectionToBuild(collection); 651 } 652 589 653 // Check for changes to any map editors in the document 590 654 // NOTE: At present, we don't maintain a list of deletions for the map editor: … … 665 729 ); 666 730 731 } else if (change.type === "editUserComments") { 732 var edit_locations = "import|archives|index"; 733 //alert("editUserComments: " + JSON.stringify(change.docArray)); 734 gs.functions.setMetadataArray( 735 collection, 736 gs.xsltParams.site_name, 737 change.docArray, 738 "override", //metamode 739 edit_locations, 740 function(ajaxResult) { 741 console.log("Edited comments in "+edit_locations); 742 //callbackFunction(); 743 if(!hadErrorResponseOnSave(ajaxResult)) { 744 callbackFunction(); // move on to processing next & eventually rebuild 745 } 746 }, 747 false, // false for asynchronous, see comment in gs.usercomments.addUserComment() 748 function(ajaxError) { 749 console.log("Set usercomments meta FAILED!"); 750 751 var errData = (ajaxError.responseText) ? ajaxError.responseText : ajaxError; 752 //alert(gs.text.dse.setmeta_server_error + ". Set meta failed. Got: " + errData); 753 console.log("A server side error occurred during setMetadataArray. (Is the server running?)\nNot proceeding further with saving and rebuilding. Got error: " + JSON.stringify(errData)); 754 755 alert("A server side error occurred during setMetadataArray. (Is the server running?)\nNot proceeding further with saving and rebuilding. Got error: " + JSON.stringify(errData)); 756 } 757 ); 758 667 759 } else { 668 760 // 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.
Note:
See TracChangeset
for help on using the changeset viewer.