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()};
};