Page History
...
HTML |
---|
<script> function download_file(data, fileName) { var fileData = data; var byteChars = $.base64('decode', fileData); var ab = new ArrayBuffer(byteChars.length); var ia = new Uint8Array(ab); for (var i = 0; i < byteChars.length; i++) { ia[i] = byteChars.charCodeAt(i); } var blob = new Blob([ab], { type: 'application/pdf' }); if (window.navigator.msSaveOrOpenBlob) { // IE hack; see http://msdn.microsoft.com/en-us/library/ie/hh779016.aspx window.navigator.msSaveOrOpenBlob(blob, fileName); } else { var downloadUrl = URL.createObjectURL(blob); $( "#download") .attr({ 'download': fileName, 'href': downloadUrl }); $( "#download")[0].click(); window.history.back(); } }; function getQueryParameters() { var queryParams = {}; var query = window.location.search.substring(1); var pairs = query.split('&'); for (var i = 0; i < pairs.length; i++) { var pair = pairs[i].split('='); var key = decodeURIComponent(pair[0]); var value = decodeURIComponent(pair[1]); queryParams[key] = value; } return queryParams; } function updateMacroOnExistingPage() { console.log("updateMacroOnExistingPage"); var queryParams = getQueryParameters(); console.log("Queryparams: ", queryParams); returnfor (var key in queryParams; } function updateMacroOnExistingPage() { if (queryParams.hasOwnProperty(key)) { console.log("updateMacroOnExistingPage"); var queryParams = getQueryParameters();"QueryParam - key : " + key + " Value: " + queryParams[key]); } } // Define the macro name and parameters based on query parameters var macroName = 'Mineaftaler'; var macroParameters = { include_user_info: true, REST_HTML_URL: 'http://foedus01.nsi.netic.dk:8080/NSI_Aftaler-1.1.1-SNAPSHOT/rest/html', REST_DOWNLOAD_URL: 'http://foedus01.nsi.netic.dk:8080/NSI_Aftaler-1.1.1-SNAPSHOT/rest/base64encodefilebytes' }; // Generate the updated macro markup var updatedMacroMarkup = '{' + macroName + ':'; for (var key in macroParameters) { if (macroParameters.hasOwnProperty(key)) { updatedMacroMarkup += key + '=' + macroParameters[key] + '|'; } } // Remove the trailing '|' character updatedMacroMarkup = updatedMacroMarkup.slice(0, -1); updatedMacroMarkup += '}'; // Page ID of the existing Confluence page var pageId = '33594461'; // Replace with the actual Page ID // Make an AJAX request to retrieve the current page content AJS.$.ajax({ url: '/rest/api/content/' + pageId + '?expand=body.storage,version', type: 'GET', success: function(data) { // Get the current page content console.log("Get content ok - data: ", data); var currentContent = data.body.storage.value; console.log("CurrentContent: ", currentContent); var incParm = "<ac:parameter ac:name=\"include_user_info\">true</ac:parameter>"; var incParm2 = '<ac:parameter ac:name="include_user_info">true</ac:parameter>'; var newParm = "<ac:parameter ac:name=\"include_user_info\">true</ac:parameter><ac:parameter ac:name=\"aftaledokument\">xxx.pdf</ac:parameter>" var result1 = currentContent.indexOf(incParm); var result2 = currentContent.indexOf(incParm2); console.log("Result 1: ", result1); console.log("Result 2: ", result2); var acParms = '<ac:parameter ac:name="REST_HTML_URL">http://foedus01.nsi.netic.dk:8080/NSI_Aftaler-1.1.1-SNAPSHOT/rest/html</ac:parameter>'; acParms = acParms + '<ac:parameter ac:name="REST_DOWNLOAD_URL">http://foedus01.nsi.netic.dk:8080/NSI_Aftaler-1.1.1-SNAPSHOT/rest/base64encodefilebytes</ac:parameter>'; acParms = acParms + '<ac:parameter ac:name="include_user_info">true</ac:parameter>' acParms = acParms + '<ac:parameter ac:name="aftaledokument">xxx.pdf</ac:parameter>' acParms = acParms + '</ac:structured-macro>' // Replace the old macro markup with the updated macro markup // var updatedContent = currentContent.replace(/(\{MineAftaler:[^\}]+\})/g, updatedMacroMarkup); //var updatedContent = currentContent.replace(incParm, newParm); //var strippedContent = currentContent.replace(/<ac:parameter.*<\/ac:structured-macro>/g, acParms); // console.log("strippedContent: ", strippedContent); var updatedContent = currentContent.replace(/<ac:parameter.*<\/ac:structured-macro>/g, acParms); console.log("Updatedcontent: ", updatedContent); // Create a JSON payload for the REST API request to update the page var payload = { version: { number: data.version.number + 1 // Increment this number if you want to update the page content }, type: 'page', title: 'Mine aftaler', body: { storage: { value: updatedContent, representation: 'storage' } } }; // Make an AJAX request to update the page content AJS.$.ajax({ url: '/rest/api/content/' + pageId, type: 'PUT', contentType: 'application/json', data: JSON.stringify(payload), success: function(data) { console.log('Macro on the page updated successfully.'); }, error: function(error) { console.error('Error updating macro on the page:', error); } }); }, error: function(error) { console.error('Error retrieving page content:', error); } }); } AJS.toInit(function() { updateMacroOnExistingPage(); }); </script> |
...