JSFiddle - React, Tailwind, and code Playground

by Stas_P

HTML

<script src="http://localhost:8080/jrio-client/optimized-scripts/client/jrio.js"></script>

<div id="search">
    <input id="search-query" type="input" placeholder="Enter text here"/>
    <button id="search-button">Search</button>
    <span id="info">The results will be highlighted in yellow!</span>
</div>
<ul id="search-results"></ul>
<div id="reportContainer"></div>

CSS

body {
    background-color: lightgreen;
}

#search {
    margin-bottom: 10px;
}

#info {
    font-family: Arial;
    font-size: 12px;
}

#info, .jr_search_result > span {
    background-color: yellow;
}

.gotoPage {
    color: blue;
    cursor: pointer;
}

JavaScript

jrio.config({
    server : "http://localhost:8080/jrio",
    scripts : "http://localhost:8080/jrio-client/optimized-scripts",
    locale: "en_US"
});

jrio(function(jrioClient) {
	var report = jrioClient.report({
    	resource: "/samples/reports/TableReport",
        container: "#reportContainer",
        error: handleError,
    });
    
    var $resultsContainer = $("#search-results");
    $("#search-button").click(function(){
        report.search({
            text: $("#search-query").val(),
            caseSensitive: false,
            wholeWordsOnly: false        	
        }).done(function(results) {
        	var $elem;
                
            $resultsContainer.empty();
            if (!results.length) {
            	$elem = $("<li class='jr_search_result'><span>The search did not return any results!</span></li>");
				$resultsContainer.append($elem);
            } else {
	            report.refresh();
                for (var i = 0; i < results.length; i++) {
                	$elem = $("<li>Found " + results[i].hitCount + " results on page: <span class='gotoPage' data-page='" + results[i].page +"'>#" + results[i].page + "<span></li>");
                    $resultsContainer.append($elem);
            	}
            
            }
        }).fail(handleError);
    });
    
    $resultsContainer.on("click", ".gotoPage", function(evt) {
    	report.pages($(this).data("page"))
        	.run()
            .fail(handleError);
    });
    
    function handleError(err){
        alert(err.message);
    }
});