JRS-1591: examples to check global scope pollution

by Yuriy Bablyukh

HTML

<!-- 3'd party libs -->
<script type='text/javascript' src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.11/require.min.js"></script>
<script>
    require.config({
    "paths": {
        "jquery": "http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery",
        "underscore": "http://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash",
        "mustache": "http://cdnjs.cloudflare.com/ajax/libs/mustache.js/0.7.2/mustache",
        "backbone": "http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone",
        "jquery.ui": "http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.4/jquery-ui"
    },

    "shim":{

        "mustache":{
            exports:'Mustache'
        },

        "jquery.ui":{
            deps:["jquery"],
            exports: "jQuery"
        }
    }
});
</script>

<!-- Load visualize.js -->
<script type='text/javascript' src="http://localhost:8080/test/visualize.js"></script>
<select id="selected_resource" name="report">
    <option value="/public/advr">advr</option>
    <option value="/public/Samples/Reports/1._Geographic_Results_by_Segment_Report">1._Geographic_Results_by_Segment_Report</option>    
    <option value="/public/Samples/Reports/2_Sales_Mix_by_Demographic_Report">2_Sales_Mix_by_Demographic_Report</option>
    <option value="/public/Samples/Reports/3_Store_Segment_Performance_Report">3_Store_Segment_Performance_Report</option>
    <option value="/public/Samples/Reports/04._Product_Results_by_Store_Type_Report">04._Product_Results_by_Store_Type_Report</option>
    <option value="/public/Samples/Reports/AllAccounts">AllAccounts</option>
    <option value="/public/Samples/Reports/5g.AccountsReport">5g.AccountsReport</option>
    <option value="/public/Samples/Reports/06g.ProfitDetailReport">06g.ProfitDetailReport</option>
    <option value="/public/Samples/Reports/ProfitDetailReport">ProfitDetailReport</option>
    <option value="/public/Samples/Reports/07g.RevenueDetailReport">07g.RevenueDetailReport</option>
   ...

JavaScript

require(["jquery.ui", "backbone", "underscore", "mustache"], function($, Backbone, _, Mustache) {
 
        
var uri = $("#selected_resource").val();

createReport(uri);

$("#selected_resource").change(function () {
    $("#container").html("");
    createReport($("#selected_resource").val());
});

//create and render report to specific container
function createReport(rep) {
    visualize({
        auth: {
            name: "superuser",
            password: "superuser",
            organization: ""
        }
    },function (v) {

        v("#container").report({
            resource: rep,
            error: function (err) {
                alert(err.message);
            }
        });

    });
}    
})