blob: 8096d1672b634be7199ac1b29db3a43dc794c685 [file] [log] [blame]
var languages = {
"java" : "https://github.com/eclipse/paho.mqtt.java",
"python" : "https://github.com/eclipse/paho.mqtt.python"
}
var snippets;
var snippetSearchValue = "";
getIndex();
// Add Watcher to Search Box
setInterval(function() { updateSearch($('#snippet-search').val()); }, 100);
function updateSearch(value){
if(snippetSearchValue !== value){
snippetSearchValue = value.toLowerCase();
var snippetSearchTags = snippetSearchValue.split(/[ ,]+/).filter(Boolean);
for(var key in snippets){
if(tagCompare(key.toLowerCase(),snippetSearchTags)){
$(".snippet-" + snippets[key]['classIndex']).removeClass('hidden');
} else {
$(".snippet-" + snippets[key]['classIndex']).addClass('hidden');
}
}
}
}
function tagCompare(sup, sub){
for(var i = 0; i < sub.length; i++){
if(sup.indexOf(sub[i]) === -1){
return false;
}
}
return true;
}
function updatePage(snippet_name){
if(!isEmpty(snippet_name)){
loadSnippet(snippet_name)
} else {
showIndex();
}
}
function loadSnippet(snippet_name){
// Set the title of the page
setTitle(snippet_name);
document.title = "Paho Examples: " + snippet_name;
// Hide/Show divs
$('.snippet-index').hide();
$('.snippet').show();
var snippet = snippets[snippet_name];
var language = snippet['language'];
$('.snippet-desc').text(snippet['description']);
$('.snippet-lang').html(language + ' - <a href="' + languages[language] + '" target="_blank">' + languages[language] + '</a>');
//$('.snippet-json').text(JSON.stringify(snippet,null,'\t'));
$('.prettyprinted').removeClass('prettyprinted');
$('.snippet-code').load('snippets/' + snippet['file'], function(){
// Re-run Pretty Print
PR.prettyPrint()
});
//var tagString = snippet['tags'].join(", ");
//$('.snippet-tags').text(tagString);
}
function setTitle(new_title){
$('snippet-title-text').text(new_title);
}
function getIndex(){
$.getJSON("https://jpwsutton.github.io/paho-examples/index.json", function(data) {
var items = []
snippets = data;
var index = 0;
$.each(data, function(key, val){
items.push("<div class=\"item col-xs-4 col-lg-4 snippet-" + index + "\">\
<div class=\"panel panel-default\">\
<div class=\"panel-heading\">\
<a href='#" + key + "'><h3 class=\"panel-title\">" + key + "</h3></a>\
</div>\
<div class=\"panel-body\">\
" + val["description"]+ "\
</div>\
</div>\
</div>");
snippets[key]['classIndex'] = index;
++index;
});
// $.each(data, function(key, val){
// items.push( "<li id='" + key + "'><a href='#" + key + "'>" + key + "</a></li>" );
// });
$( ".snippet-list" ).html(items.join( "" ));
// If we are currently on a specific snippet, load it
var snippetName = window.location.hash.substr(1);
if(!isEmpty(snippetName)){
loadSnippet(snippetName)
} else {
showIndex();
}
});
}
function showIndex(){
// Set Title of page
setTitle("Paho Example Snippets");
document.title = "Paho Examples";
// Hide/Show Divs
$('.snippet').hide();
$('.snippet-index').show();
}
$(window).on('hashchange', function() {
var snippetName = window.location.hash.substr(1);
updatePage(snippetName);
});
function isEmpty(str) {
return (!str || 0 === str.length);
}