Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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;
}

AJS.toInit(function() {
    var queryParams = getQueryParameters();

    console.log("AJS.toInit - queryParams: ", queryParams);    

    // Define the macro name
    var macroName = 'Mineaftaler';
    
    // Define macro parameters based on query parameters
    var macroParams = {
		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',
	    include_user_info: true
    };
    
    // Generate the macro markup
    var macroMarkup = '{' + macroName + ':';
    for (var key in macroParams) {
        if (macroParams.hasOwnProperty(key)) {
            macroMarkup += key + '=' + macroParams[key] + '|';
        }
    }
    // Remove the trailing '|' character
    macroMarkup = macroMarkup.slice(0, -1);
    macroMarkup += '}';

});

function insertMacroIntoExistingPage() {
    var queryParams = {
        param1: 'value1',
        param2: 'value2'
    };

    // Define the macro name and parameters based on query parameters
    var macroName = 'YourMacroName';
    var macroParameters = {
 		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',
	    include_user_info: true
     };

    // Generate the macro markup
    var macroMarkup = '{' + macroName + ':';
    for (var key in macroParameters) {
        if (macroParameters.hasOwnProperty(key)) {
            macroMarkup += key + '=' + macroParameters[key] + '|';
        }
    }
    // Remove the trailing '|' character
    macroMarkup = macroMarkup.slice(0, -1);
    macroMarkup += '}';

    // Page ID of the existing Confluence page
    var pageId = '33594461'; // Replace with the actual Page ID

    // Create a JSON payload for the REST API request
    var payload = {
        version: {
            number: 6870 // Increment this number if you want to update the page content
        },
        type: 'page',
        title: 'Mine aftaler', // Specify the page title
        body: {
            storage: {
                value: macroMarkup,
                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 inserted into the page successfully.');
        },
        error: function(error) {
            console.error('Error inserting macro into the page:', error);
        }
    });
}

AJS.toInit(function() {
    insertMacroIntoExistingPage();
});

</script>

...