Skip to content
This repository has been archived by the owner on Feb 3, 2022. It is now read-only.

Commit

Permalink
#31 using remote api for stack browsing instead of local files
Browse files Browse the repository at this point in the history
  • Loading branch information
thelamer committed Dec 9, 2017
1 parent 96c8a6d commit c04859a
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 131 deletions.
8 changes: 7 additions & 1 deletion app.js
Expand Up @@ -224,7 +224,13 @@ io.on('connection', function(socket){
});
// Get remote list of stack definition files from stacks.taisun.io
socket.on('browsestacks', function(page){
request.get({url:'http://localhost/public/stackstemp/stacks.json'},function(error, response, body){
request.get({url:'https://api.taisun.io/stacks'},function(error, response, body){
io.sockets.in(socket.id).emit('stacksresults',JSON.parse(body));
});
});
// Get Stack search results
socket.on('searchstacks', function(string, page){
request.get({url:'https://api.taisun.io/stacks?search=' + string + '&page=' + page},function(error, response, body){
io.sockets.in(socket.id).emit('stacksresults',JSON.parse(body));
});
});
Expand Down
42 changes: 40 additions & 2 deletions public/js/taisun.js
Expand Up @@ -845,6 +845,14 @@ socket.on('localstacks', function(data) {
function renderbrowsestacks(){
$('#pagecontent').empty();
$('#pagecontent').append('\
<form class="form-inline mb-3" onsubmit="return false;">\
<div class="input-group">\
<input type="text" class="form-control" placeholder="Search" id="stacksearch">\
<div class="input-group-btn">\
<button onclick="stacksearch(1)" type="button" class="btn btn-default"><i class="fa fa-search"></i></button>\
</div>\
</div>\
</form>\
<div class="card mb-3">\
<div class="card-header">\
<i class="fa fa-bars"></i>\
Expand All @@ -856,6 +864,11 @@ function renderbrowsestacks(){
</div>\
');
socket.emit('browsestacks', '1');
document.getElementById("stacksearch").addEventListener("keydown", function (e) {
if (e.keyCode === 13) {
stacksearch(1);
}
});
}


Expand All @@ -869,16 +882,41 @@ socket.on('stacksresults', function(data) {
else {
// Create table for taisun results
$('#taisunstacks').append('<table style="width:100%" id="stackstable" class="table table-bordered table-hover"></table>');
$('#stackstable').append('<thead><tr><th></th><th>Name</th><th>Description</th><th></th></tr></thead>');
$('#stackstable').append('<thead><tr><th></th><th>Name</th><th>Description</th><th>Downloads</th><th></th></tr></thead>');
for (i = 0; i < data.stacktemplates.length; i++){
var name = data.stacktemplates[i].name;
var description = data.stacktemplates[i].description;
var iconurl = data.stacktemplates[i].icon;
var dataurl = data.stacktemplates[i].stackdata;
$('#stackstable').append('<tr height="130"><td><center><img src="' + iconurl + '"></center></td><td>' + name + '</td><td>' + description + '</td><td><button type="button" data-toggle="modal" data-target="#modal" style="cursor:pointer;" class="btn btn-primary btn-xs configurestack" value="' + dataurl + '">Configure and Launch <i class="fa fa-rocket"></i></button></td></tr>')
var downloads = data.stacktemplates[i].downloads;
$('#stackstable').append('<tr height="130"><td><center><img src="' + iconurl + '"></center></td><td>' + name + '</td><td>' + description + '</td><td>' + downloads + '</td><td><button type="button" data-toggle="modal" data-target="#modal" style="cursor:pointer;" class="btn btn-primary btn-xs configurestack" value="' + dataurl + '">Configure and Launch <i class="fa fa-rocket"></i></button></td></tr>')
}
// Pagination logic show +2 and -2 pages at the bottom of the table
$('#taisunstacks').append('<ul id="stackpages" class="pagination"></ul>');
for (i = -2; i < 3; i++){
var pagenumber = parseInt(data.page.page) + i;
// If negative page number do not display
if ( pagenumber <= 0){
}
// If current page highlight current
else if ( pagenumber == data.page.page){
$('#stackpages').append('<li class="page-item active"><a class="page-link" onclick="stacksearch(' + pagenumber + ')">' + pagenumber + '</a></li>');
}
// If not current page
else if (parseInt(data.page.num_pages) - pagenumber >= 0){
$('#stackpages').append('<li class="page-item"><a class="page-link" onclick="stacksearch(' + pagenumber + ')">' + pagenumber + '</a></li>');
}
}
}
});
// When stack search button is activated send string to server
function stacksearch(page){
$('#taisunstacks').empty();
// Set the content to a spinner to signify loading
$('#taisunstacks').append('<i class="fa fa-refresh fa-spin" style="font-size:36px"></i>');
socket.emit('searchstacks', $('#stacksearch').val(), page);
}

// Stack destroy modal
function stackdestroymodal(){
modalpurge();
Expand Down
Binary file removed public/stackstemp/nexusemby.png
Binary file not shown.
56 changes: 0 additions & 56 deletions public/stackstemp/nexusemby.yml

This file was deleted.

Binary file removed public/stackstemp/nexusplex.png
Binary file not shown.
56 changes: 0 additions & 56 deletions public/stackstemp/nexusplex.yml

This file was deleted.

16 changes: 0 additions & 16 deletions public/stackstemp/stacks.json

This file was deleted.

0 comments on commit c04859a

Please sign in to comment.