/*!
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/**
* @constructor
*/
function widgetize() {
var self = this;
this.getInputFormWithHtml = function (inputId, htmlEmbed) {
return ' ';
};
this.getEmbedUrl = function (parameters, exportFormat) {
var copyParameters = {};
for (var variableName in parameters) {
copyParameters[variableName] = parameters[variableName];
}
copyParameters['moduleToWidgetize'] = parameters['module'];
copyParameters['actionToWidgetize'] = parameters['action'];
delete copyParameters['action'];
delete copyParameters['module'];
var sourceUrl;
sourceUrl = document.location.protocol + '//' + document.location.hostname + (document.location.port == '' ? '' : (':' + document.location.port)) + document.location.pathname + '?';
sourceUrl += "module=Widgetize" +
"&action=" + exportFormat +
"&" + piwikHelper.getQueryStringFromParameters(copyParameters) +
"&idSite=" + piwik.idSite +
"&period=" + piwik.period +
"&date=" + broadcast.getValueFromUrl('date') +
"&disableLink=1&widget=1";
return sourceUrl;
};
this.htmlentities = function (s) {
return s.replace(/[<>&]/g, function (m) { return "&" + m.charCodeAt(0) + ";"; });
};
this.callbackAddExportButtonsUnderWidget = function (widgetUniqueId, loadedWidgetElement) {
var widget = widgetsHelper.getWidgetObjectFromUniqueId(widgetUniqueId);
var widgetParameters = widget['parameters'];
var exportButtonsElement = $('');
var urlIframe = self.getEmbedUrl(widgetParameters, "iframe");
// We first build the HTML code that will load the widget in an IFRAME
var widgetIframeHtml = '' +
'' +
'
';
// Add the input field containing the widget in an Iframe
$(exportButtonsElement).append(
'' +
'› Embed Iframe ' +
'' +
self.getInputFormWithHtml('iframeEmbed', widgetIframeHtml) +
' ' +
'
' +
''
);
// We then replace the div iframeDivToExport with the actual Iframe html
$('#iframeDivToExport')
.html(widgetIframeHtml);
// Finally we append the content to the parent widget DIV
$(loadedWidgetElement)
.parent()
.append(exportButtonsElement);
// JS is buggy at least on IE
//var widgetJS = '