Visualize: search when login/logout with SSO sample

Test plugins

by Yuriy Bablyukh

HTML

<script src="http://code.jquery.com/jquery-2.1.0.js"></script>
<!--Provide URL to visualize.js-->
<script type='text/javascript' src="http://build-master.jaspersoft.com:7780/feature-amber-embedded-report-cas/client/visualize.js"></script>
<!--<script type='text/javascript' src="http://localhost:8080/jasperserver-pro/client/visualize.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 value="/public/Samples/Reports/07g.RevenueDetailReport">07g.RevenueDetailReport</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;
}

.datagrid table {
    border-collapse: collapse;
    text-align: left;
    width: 100%;
}
.datagrid {
    font: normal 12px/150% Arial, Helvetica, sans-serif;
    background: #fff;
    overflow: hidden;
    border: 1px solid #006699;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border-radius: 3px;
}
.datagrid table td, .datagrid table th {
    padding: 3px 10px;
}
.datagrid table thead th {
    background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #006699), color-stop(1, #00557F));
    background:-moz-linear-gradient(center top, #006699 5%, #00557F 100%);
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#006699', endColorstr='#00557F');
    background-color:#006699;
    color:#FFFFFF;
    font-size: 15px;
    font-weight: bold;
    border-left: 1px solid #0070A8;
}
.datagrid table thead th:first-child {
    border: none;
}
.datagrid table tbody td {
    color: #00496B;
    border-left: 1px solid #E1EEF4;
    font-size: 12px;
    font-weight: normal;
}
.datagrid table tbody .alt td {
    background: #E1EEF4;
    color: #00496B;
}
.datagrid table tbody td:first-child {
    border-left: none;
}
.datagrid table tbody tr:last-child td {
    border-bottom: none;
}
.datagrid table tfoot td div {
    border-top: 1px solid #006699;
    background: #E1EEF4;
}
.datagrid table tfoot td {
    padding: 0;
    font-size: 12px
}
.datagrid table tfoot td div {
    padding: 2px;
}
.datagrid table tfoot td ul {
    margin: 0;
    padding:0;
    list-style: none;
    text-align: right;
}
.datagrid table tfoot li {
    display: inline;
}
.datagrid table tfoot li a {
    text-decoration: none;
    display: inline-block;
    padding: 2px 8px;
    margin: 1px;
    color: #FFFFFF;
    border: 1px solid #006699;
   ...

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);
                searchRep(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 searchRep( v) {
    v.resourcesSearch({
        folderUri: "/public",
        recursive: true,
        success: renderResults
    })
};

function renderResults(results) {
    console.log(results);
    var tbody = document.getElementById("ResultsTableContent"),
        alt = false,
        html = [];

    for (var i = 0; i < results.length; i++) {
        html.push((alt = !alt) ? '<tr>' : '<tr class="alt">');
        html.push("<td>" + results[i].label + "</td>");
        html.push("<td>" + results[i].uri + "</td>");
        html.push("<td>" + results[i].resourceType + "</td>");
        html.push("<td>" + results[i].creationDate + "</td>");
        html.push("</tr>");
    }
    tbody.innerHTML = html.join("");

}

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

function getAuthData(){
    return {token: $("#token").val()};
};