Visualize: login/logout with SSO sample

Test plugins

HTML

<script src="http://code.jquery.com/jquery-2.1.0.js"></script>
<!--Provide URL to visualize.js-->
<script type='text/javascript' src="http://localhost:8082/jasperserver-pro/client/visualize.js"></script>
<!--<script type='text/javascript' src="http://localhost:8080/jasperserver-pro/client/visualize.js"></script>-->
<script type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">></script>

<div>
            <label class="control input text" for="j_username">
                <span class="wrap">Authentication Token:</span>
                <input id="token" disabled="true" name="token" type="text" autocapitalize="off" value="ST-40-CZeUUnGPxEqgScNbxh9l-sso-cas.eng.jaspersoft.com"/>
            </label>
    <button id="login" disabled="true">Login</button>
    <button id="logout" disabled="true">Logout</button>
    <span class="message error">Authentication Error</span>
    <span class="message success">Logged in</span>
    <span class="message logout">Logged out</span>
        </div>
<select id="selected_resource" disabled="true" name="report">
    <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...

CSS

.control {
display: block;
}
.control.input.text > .wrap {
	display:block;
}
.control > input{
    width: 360px;
}
.error, .logout{
    color: red;
}
.success{
    color: green;
}
.message{
    display: none;
}

JavaScript

visualize(
    function(v){
        $("#selected_resource").change(function () {
            $("#container").html("");
            createReport($("#selected_resource").val(), v);
        });
        $("#login").click(function(){
            v.login(getAuthData()).done(function(){
                createReport($("#selected_resource").val(),v);
                showMessage(".success");
            }).fail(function(){showMessage(".error");});
        });
        $("#logout").click(function(){
            v.logout().always(function(){showMessage(".logout");});
        });
        $(':disabled').prop('disabled', false);
    }
);

//create and render report to specific container
function createReport(uri, v) {
    v("#container").report({
        resource: uri,
        error: function (err) {
            alert(err.message);
            }
     });
};

function showMessage(selector){
    $(".message").hide();
    $(selector).show();
};

function getAuthData(){
		var ssoToken = ajax.call(url: "http://localhost:8080/cas", parameter: {username: "jcsupport", password: "P@ssword123"});

    return {token: $(ssoToken).val()};
};