JSFiddle - React, Tailwind, and code Playground

by srikar7

HTML

<script src="http://underscorejs.org/underscore.js"></script>
<script src="http://code.jquery.com/jquery-2.1.0.js"></script>
<!-- Provide the URL to visualize.js -->
<script src="http://localhost:8081/jasperserver-pro/client/visualize.js"></script>
<div id="main"></div>

JavaScript

visualize({
    auth: {
        name: "joeuser",
        password: "joeuser",
        organization: "organization_1"
    }
}, function (v) {

    var reportOptions = collectReportProperties({
        resource: "/public/Samples/Reports/AccountList",
        linkOptions: {
            beforeRender: function (linkToElemPairs) {
                linkToElemPairs.forEach(showCursor);
            },
            events: {
                "click": function (ev, link) {
                    if (link.type == "ReportExecution") {
                        openInNewTab({
                            resource: link.parameters._report,
                            params: convertToReportParams(link.parameters)
                        });
                    }
                    console.log(link);
                }
            }
        },
        error: function (err) {
            alert(err.message);
        }
    });

    v("#main").report(reportOptions);


    function collectReportProperties(reportProperties) {
        var newProperties = findReportProperties(location.href);
        reportProperties =  _.extend(reportProperties, newProperties);
        console.log('Report Properties:', reportProperties);
        return reportProperties;
    }
    
    function convertToReportParams(linkParams){
        return _.chain(linkParams)
                .pairs()
                .map(function (pair){
                    var key = pair[0],
                        val = pair[1];
                    if (!_.isArray(val)){
                        return [key, [val]];
                    }
                    return pair;
                })
                .object()
                .value();
    }

    function findReportProperties(url) {
        var parser = document.createElement('a');
        parser.href = url;

        var urlParams = parser.search,
            result = {};

        if (urlParams) {
            result = paramsFromUrlQueryParams(urlParams);
        }

        return result;
...