blob: 81ed10d981788532c660e91e5d3397b996962ff9 [file] [log] [blame]
window.org_eclipse_osbp_utils_vaadin_saiku_SaikuRenderer = function() {
// Replace the normal jQuery getScript function with one that supports
// debugging and which references the script files as external resources
// rather than inline.
/* */ jQuery.extend({
getScript: function(url, callback) {
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = url;
// Handle Script loading
{
var done = false;
// Attach handlers for all browsers
script.onload = script.onreadystatechange = function(){
if ( !done && (!this.readyState ||
this.readyState == "loaded" || this.readyState == "complete") ) {
done = true;
if (callback)
callback();
// Handle memory leak in IE
script.onload = script.onreadystatechange = null;
}
};
}
head.appendChild(script);
// We handle everything using the script element injection
return undefined;
}
});
// saikuCreationCode = "";
//setCreationCode(this.getState().saikuCreationCode);
//this.onStateChange = function() {
// setCreationCode(this.getState().saikuCreationCode);
//}
//eval(saikuCreationCode);
var element = this.getElement();
var root = d3.select(element);
root.append("div").attr("id", "header").attr("class", "hide").attr("style", "display:none");
root.append("div").attr("class", "processing_container");
var processingDiv = root.append("div").attr("class", "processing");
var processingInnerDiv = processingDiv.append("div").attr("class", "processing_inner");
processingInnerDiv.append("span").attr("class", "saiku_logo");
var processingContentDiv = processingInnerDiv.append("div").attr("class", "processing_content");
processingContentDiv.append("span").attr("class", "processing_image").text("\&nbsp\;");
processingContentDiv.append("span").attr("class", "processing_message i18n").text("Loading...");
var body = d3.select("body")
addJQueryTScriptElementToBody(root, "template-toolbar", this.getState().saikuJQueryTemplateToolbarCode);
addJQueryTScriptElementToBody(root, "template-upgrade", this.getState().saikuJQueryTemplateUpgradeCode);
addJQueryTScriptElementToBody(root, "template-logincount", this.getState().saikuJQueryTemplateLogincountCode);
addJQueryTScriptElementToBody(root, "template-cubes", this.getState().saikuJQueryTemplateCubesCode);
addJQueryTScriptElementToBody(root, "template-dimensions", this.getState().saikuJQueryTemplateDimensionsCode);
addJQueryTScriptElementToBody(root, "template-measures", this.getState().saikuJQueryTemplateMeasuresCode);
addJQueryTScriptElementToBody(root, "template-calculated-measures", this.getState().saikuJQueryTemplateCalculatedMeasuresCode);
addJQueryTScriptElementToBody(root, "template-calculated-member", this.getState().saikuJQueryTemplateCalculatedMemberCode);
addJQueryTScriptElementToBody(root, "template-workspace", this.getState().saikuJQueryTemplateWorkspaceCode);
addJQueryTScriptElementToBody(root, "template-attributes", this.getState().saikuJQueryTemplateAttributesCode);
addJQueryTScriptElementToBody(root, "template-workspace-dropzones", this.getState().saikuJQueryTemplateWorkspaceDropzonesCode);
addJQueryTScriptElementToBody(root, "template-workspace-toolbar", this.getState().saikuJQueryTemplateWorkspaceToolbarCode);
addJQueryTScriptElementToBody(root, "template-query-toolbar", this.getState().saikuJQueryTemplateQueryToolbarCode);
addJQueryTScriptElementToBody(root, "template-open-dialog", this.getState().saikuJQueryTemplateOpenDialogCode);
addJQueryTScriptElementToBody(root, "template-repository-objects", this.getState().saikuJQueryTemplateRepositoryObjectsCode);
addJQueryTScriptElementToBody(root, "template-repository-folder", this.getState().saikuJQueryTemplateRepositoryFolderCode);
addJQueryTScriptElementToBody(root, "template-folder-lazyload", this.getState().saikuJQueryTemplateRepositoryFolderLazyloadCode);
addJQueryTScriptElementToBody(root, "template-repository-file", this.getState().saikuJQueryTemplateRepositoryFileCode);
addJQueryTScriptElementToBody(root, "template-selections", this.getState().saikuJQueryTemplateSelectionsCode);
addJQueryTScriptElementToBody(root, "template-selections-totals", this.getState().saikuJQueryTemplateSelectionsTotalsCode);
addJQueryTScriptElementToBody(root, "template-selections-options", this.getState().saikuJQueryTemplateSelectionsOptionsCode);
addJQueryTScriptElementToBody(root, "template-permissions", this.getState().saikuJQueryTemplatePermissionsCode);
addJQueryTScriptElementToBody(root, "template-permissions-rolelist", this.getState().saikuJQueryTemplatePermissionsRolelistCode);
addJQueryTScriptElementToBody(root, "template-drillthrough", this.getState().saikuJQueryTemplateDrillthroughCode);
addJQueryTScriptElementToBody(root, "template-drillacross", this.getState().saikuJQueryTemplateDrillacrossCode);
addJQueryTScriptElementToBody(root, "template-drillthrough-list", this.getState().saikuJQueryTemplateDrillthroughListCode);
addJQueryTScriptElementToBody(root, "template-drillthrough-dimensions", this.getState().saikuJQueryTemplateDrillthroughDimensionsCode);
addJQueryTScriptElementToBody(root, "template-drillthrough-measures", this.getState().saikuJQueryTemplateDrillthroughMeasuresCode);
//body.append("script").attr("src", "VAADIN/themes/osbp/plugin/saiku.osgi/resources/js/ga.js").attr("type", "text/javascript")
//eval(this.getState().saikuJsJQueryPlaceHolderCode);
//root.append("script").attr("type", "text/javascript").text(this.getState().saikuJsJQueryPlaceHolderCode);
/*window.document.dispatchEvent(new Event('DOMContentLoaded', {
bubbles: true,
cancelable: true
}));
document.addEventListener("DOMContentLoaded", ready);
document.addEventListener('readystatechange', () => log('readyState:' + document.readyState));*/
// Use the handy event callback
document.addEventListener( "DOMContentLoaded", completed );
// A fallback to window.onload, that will always work
window.addEventListener( "load", completed );
jQuery.isReady = false;
jQuery.ready();
}
// The ready event handler and self cleanup method
function completed() {
document.removeEventListener( "DOMContentLoaded", completed );
window.removeEventListener( "load", completed );
jQuery.ready();
}
function addJQueryTScriptElementToBody(element, templateId, code) {
element.append("script").attr("id", templateId).attr("type", "text/x-jquery-tmpl").text(code);
}
function ready() {
alert('DOM is ready');
}