Changeset 27790
- Timestamp:
- 2013-07-09T16:01:44+12:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/default/js/documentmaker_scripts_util.js
r26704 r27790 217 217 var changedElem = changes[i]; 218 218 219 var metadataChanges = new Array(); 220 219 221 //Save metadata 220 222 if(gs.functions.hasClass(changedElem, "metaTableCell")) … … 234 236 value = escape(value); 235 237 236 if(changedElem.originalValue) 237 { 238 gs.functions.setArchivesMetadata(collection, gs.xsltParams.site_name, docID, name, null, value, changedElem.originalValue, "override", function(){console.log("SAVED ARCHIVES");}); 239 } 240 else 241 { 242 gs.functions.setArchivesMetadata(collection, gs.xsltParams.site_name, docID, name, null, value, null, "accumulate", function(){console.log("SAVED ARCHIVES");}); 243 } 238 metadataChanges.push({collection:collection, docID:docID, name:name, value:value, orig:changedElem.originalValue}); 239 244 240 changedElem.originalValue = changedElem.innerHTML; 245 241 addCollectionToBuild(collection); … … 260 256 } 261 257 } 262 263 var request = "["; 264 for(var i = 0; i < _transactions.length; i++) 265 { 266 request += _transactions[i]; 267 if(i != _transactions.length - 1) 268 { 269 request += ","; 270 } 271 } 272 request += "]"; 273 274 var statusID; 275 var ajax = new gs.functions.ajaxRequest(); 276 ajax.open("POST", gs.xsltParams.library_name, true); 277 ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 278 ajax.onreadystatechange = function() 279 { 280 if(ajax.readyState == 4 && ajax.status == 200) 281 { 282 var text = ajax.responseText; 283 var xml = validateXML(text); 284 285 var errorElems; 286 if(!xml || checkForErrors(xml)) 258 259 var sendBuildRequest = function() 260 { 261 var request = "["; 262 for(var i = 0; i < _transactions.length; i++) 263 { 264 request += _transactions[i]; 265 if(i != _transactions.length - 1) 287 266 { 288 alert(gs.text.dse.error_saving); 289 290 var saveButton = document.getElementById("saveButton"); 291 saveButton.innerHTML = gs.text.dse.save_changes; 292 saveButton.disabled = false; 267 request += ","; 268 } 269 } 270 request += "]"; 271 272 var statusID; 273 var ajax = new gs.functions.ajaxRequest(); 274 ajax.open("POST", gs.xsltParams.library_name, true); 275 ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 276 ajax.onreadystatechange = function() 277 { 278 if(ajax.readyState == 4 && ajax.status == 200) 279 { 280 var text = ajax.responseText; 281 var xml = validateXML(text); 293 282 283 var errorElems; 284 if(!xml || checkForErrors(xml)) 285 { 286 alert(gs.text.dse.error_saving); 287 288 var saveButton = document.getElementById("saveButton"); 289 saveButton.innerHTML = gs.text.dse.save_changes; 290 saveButton.disabled = false; 291 292 _statusBar.removeStatus(statusID); 293 return; 294 } 295 294 296 _statusBar.removeStatus(statusID); 295 return;297 buildCollections(_collectionsToBuild); 296 298 } 297 298 _statusBar.removeStatus(statusID); 299 buildCollections(_collectionsToBuild); 300 } 301 } 302 303 if(_collectionsToBuild.length > 0) 304 { 305 var saveButton = document.getElementById("saveButton"); 306 saveButton.innerHTML = gs.text.dse.saving + "..."; 307 saveButton.disabled = true; 308 309 statusID = _statusBar.addStatus(gs.text.dse.modifying_archives + "..."); 310 ajax.send("a=g&rt=r&s=DocumentExecuteTransaction&s1.transactions=" + request); 311 } 299 } 300 301 if(_collectionsToBuild.length > 0) 302 { 303 var saveButton = document.getElementById("saveButton"); 304 saveButton.innerHTML = gs.text.dse.saving + "..."; 305 saveButton.disabled = true; 306 307 statusID = _statusBar.addStatus(gs.text.dse.modifying_archives + "..."); 308 ajax.send("a=g&rt=r&s=DocumentExecuteTransaction&s1.transactions=" + request); 309 } 310 } 311 312 var setMetadataLoop = function(index) 313 { 314 var change = metadataChanges[index]; 315 316 var callbackFunction; 317 if(index + 1 == metadataChanges.length) 318 { 319 callbackFunction = sendBuildRequest; 320 } 321 else 322 { 323 callbackFunction = function(){setMetadataLoop(index + 1)}; 324 } 325 326 if(change.orig) 327 { 328 gs.functions.setArchivesMetadata(change.collection, gs.xsltParams.site_name, change.docID, change.name, null, change.value, change.orig, "override", function(){callbackFunction();}); 329 } 330 else 331 { 332 gs.functions.setArchivesMetadata(change.collection, gs.xsltParams.site_name, change.docID, change.name, null, change.value, null, "accumulate", function(){callbackFunction();}); 333 } 334 } 335 setMetadataLoop(0); 312 336 } 313 337
Note:
See TracChangeset
for help on using the changeset viewer.