nice minimal example node server serving outstanding issues
This commit is contained in:
parent
47868fad8a
commit
f095be9b1a
10
app.coffee
10
app.coffee
|
@ -33,15 +33,15 @@ app.configure 'production', ->
|
||||||
app.use express.errorHandler()
|
app.use express.errorHandler()
|
||||||
|
|
||||||
# Routes
|
# Routes
|
||||||
app.get '/', (req, res) ->
|
app.get '/issues', (req, res) ->
|
||||||
https.request(options, (response) ->
|
https.request(options, (response) ->
|
||||||
if response.statusCode is 200
|
if response.statusCode is 200
|
||||||
str = ""
|
json = ""
|
||||||
response.on "data", (chunk) -> str += chunk
|
response.on "data", (chunk) -> json += chunk
|
||||||
|
|
||||||
response.on "end", ->
|
response.on "end", ->
|
||||||
res.render 'index',
|
res.render 'issues',
|
||||||
'issues': str
|
'issues': JSON.parse json
|
||||||
, (html) -> res.send html, 'Content-Type': 'text/html', 200
|
, (html) -> res.send html, 'Content-Type': 'text/html', 200
|
||||||
).end()
|
).end()
|
||||||
|
|
||||||
|
|
228
index.html
228
index.html
|
@ -1,228 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
||||||
<meta charset="utf-8">
|
|
||||||
|
|
||||||
<title>GitHub Issues Burndown Chart</title>
|
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/style.css">
|
|
||||||
|
|
||||||
<script src="js/jquery-1.7.2.min.js"></script>
|
|
||||||
<script src="js/burndown.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<header class="navbar blue blue2 navbar-fixed-top">
|
|
||||||
<div class="navbar-inner">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<ul class="nav pull-left">
|
|
||||||
<li class="active"><a href="#"><i class="icon-white icon-fire"></i> Burn down</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="nav pull-right">
|
|
||||||
<li><a href="#"><i class="icon-white icon-book"></i> Core InterMine Project</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<section class="container-fluid pad40">
|
|
||||||
<section class="row-fluid">
|
|
||||||
<div class="span2 sideBar">
|
|
||||||
<br>
|
|
||||||
<ul>
|
|
||||||
<li class="active">
|
|
||||||
<figure>
|
|
||||||
<i class="icon-fire"></i> Burn down <span class="badge badge-warning">0.7</span>
|
|
||||||
</figure>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<figure>
|
|
||||||
<i class="icon-tasks"></i> Projects <span class="badge badge-info">4</span>
|
|
||||||
</figure>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<section class="span10 content borBox"><div class="row-fluid">
|
|
||||||
<div class="page-header">
|
|
||||||
<h1>Burn down chart <small>to keep us on track</small></h1>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<div class="row-fluid">
|
|
||||||
<div class="span12">
|
|
||||||
<table class="table table-bordered">
|
|
||||||
<thead>
|
|
||||||
<tr><th>#</th>
|
|
||||||
<th>Date</th>
|
|
||||||
<th>Title</th>
|
|
||||||
<th>Description</th>
|
|
||||||
<th>Amount Due</th>
|
|
||||||
<th>Actions</th>
|
|
||||||
<th><input id="checkall" type="checkbox"></th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td>1</td>
|
|
||||||
<td>4/3/12</td>
|
|
||||||
<td>Yammer-Design</td>
|
|
||||||
<td>Design new logo for Yammer.Inc</td>
|
|
||||||
<td>$450</td>
|
|
||||||
<td>
|
|
||||||
<div class="btn-group sharp" data-toggle="radio">
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-shopping-cart"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-pencil"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-eye-open"></i></button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><input type="checkbox"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>2</td>
|
|
||||||
<td>4/3/12</td>
|
|
||||||
<td>Yammer-Design</td>
|
|
||||||
<td>Design new logo for Yammer.Inc</td>
|
|
||||||
<td>$450</td>
|
|
||||||
<td>
|
|
||||||
<div class="btn-group sharp" data-toggle="radio">
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-shopping-cart"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-pencil"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-eye-open"></i></button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><input type="checkbox"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>3</td>
|
|
||||||
<td>4/3/12</td>
|
|
||||||
<td>Yammer-Design</td>
|
|
||||||
<td>Design new logo for Yammer.Inc</td>
|
|
||||||
<td>$450</td>
|
|
||||||
<td>
|
|
||||||
<div class="btn-group sharp" data-toggle="radio">
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-shopping-cart"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-pencil"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-eye-open"></i></button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><input type="checkbox"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>4</td>
|
|
||||||
<td>4/3/12</td>
|
|
||||||
<td>Yammer-Design</td>
|
|
||||||
<td>Design new logo for Yammer.Inc</td>
|
|
||||||
<td>$450</td>
|
|
||||||
<td>
|
|
||||||
<div class="btn-group sharp" data-toggle="radio">
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-shopping-cart"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-pencil"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-eye-open"></i></button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><input type="checkbox"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>5</td>
|
|
||||||
<td>4/3/12</td>
|
|
||||||
<td>Yammer-Design</td>
|
|
||||||
<td>Design new logo for Yammer.Inc</td>
|
|
||||||
<td>$450</td>
|
|
||||||
<td>
|
|
||||||
<div class="btn-group sharp" data-toggle="radio">
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-shopping-cart"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-pencil"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-eye-open"></i></button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><input type="checkbox"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>6</td>
|
|
||||||
<td>4/3/12</td>
|
|
||||||
<td>Yammer-Design</td>
|
|
||||||
<td>Design new logo for Yammer.Inc</td>
|
|
||||||
<td>$450</td>
|
|
||||||
<td>
|
|
||||||
<div class="btn-group sharp" data-toggle="radio">
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-shopping-cart"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-pencil"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-eye-open"></i></button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><input type="checkbox"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>7</td>
|
|
||||||
<td>4/3/12</td>
|
|
||||||
<td>Yammer-Design</td>
|
|
||||||
<td>Design new logo for Yammer.Inc</td>
|
|
||||||
<td>$450</td>
|
|
||||||
<td>
|
|
||||||
<div class="btn-group sharp" data-toggle="radio">
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-shopping-cart"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-pencil"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-eye-open"></i></button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><input type="checkbox"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>8</td>
|
|
||||||
<td>4/3/12</td>
|
|
||||||
<td>Yammer-Design</td>
|
|
||||||
<td>Design new logo for Yammer.Inc</td>
|
|
||||||
<td>$450</td>
|
|
||||||
<td>
|
|
||||||
<div class="btn-group sharp" data-toggle="radio">
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-shopping-cart"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-pencil"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-eye-open"></i></button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><input type="checkbox"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>9</td>
|
|
||||||
<td>4/3/12</td>
|
|
||||||
<td>Yammer-Design</td>
|
|
||||||
<td>Design new logo for Yammer.Inc</td>
|
|
||||||
<td>$450</td>
|
|
||||||
<td>
|
|
||||||
<div class="btn-group sharp" data-toggle="radio">
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-shopping-cart"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-pencil"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-eye-open"></i></button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><input type="checkbox"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>10</td>
|
|
||||||
<td>4/3/12</td>
|
|
||||||
<td>Yammer-Design</td>
|
|
||||||
<td>Design new logo for Yammer.Inc</td>
|
|
||||||
<td>$450</td>
|
|
||||||
<td>
|
|
||||||
<div class="btn-group sharp" data-toggle="radio">
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-shopping-cart"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-pencil"></i></button>
|
|
||||||
<button class="btn btn-mini btn-success"><i class="icon-white icon-eye-open"></i></button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td><input type="checkbox"></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</section>
|
|
||||||
</section>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,12 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Express</title>
|
|
||||||
<link rel="stylesheet" href="/stylesheets/style.css"/>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Express</h1>
|
|
||||||
<p>Welcome to Express</p>
|
|
||||||
<code><%- @issues %></code>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
|
||||||
|
<title>Burndown App</title>
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" type="text/css" href="css/style.css">
|
||||||
|
|
||||||
|
<script src="js/jquery-1.7.2.min.js"></script>
|
||||||
|
<script src="js/burndown.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="navbar blue blue2 navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<ul class="nav pull-left">
|
||||||
|
<li><a><i class="icon-white icon-fire"></i> Burndown App</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav pull-right">
|
||||||
|
<li><a><i class="icon-white icon-book"></i> Core InterMine Project</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<section class="container-fluid pad40">
|
||||||
|
<section class="row-fluid">
|
||||||
|
<div class="span2 sideBar">
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<figure>
|
||||||
|
<i class="icon-signal"></i> Burndown Chart <span class="badge badge-warning">0.7</span>
|
||||||
|
</figure>
|
||||||
|
</li>
|
||||||
|
<li class="active">
|
||||||
|
<figure>
|
||||||
|
<i class="icon-tasks"></i> Issues <span class="badge badge-info"><%= @issues.length %></span>
|
||||||
|
</figure>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<section class="span10 content borBox">
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="page-header">
|
||||||
|
<h1>List of outstanding issues</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="span12">
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th>Title</th>
|
||||||
|
<th>Opened</th>
|
||||||
|
<th>Updated</th>
|
||||||
|
<th>Opened By</th>
|
||||||
|
<th>Assigned To</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% for issue in @issues: %>
|
||||||
|
<tr>
|
||||||
|
<td><%= issue.number %></td>
|
||||||
|
<td><%= issue.title %></td>
|
||||||
|
<td><%= issue.created_at %></td>
|
||||||
|
<td><%= issue.updated_at %></td>
|
||||||
|
<td><%= issue.user.login %></td>
|
||||||
|
<td><%= issue.assignee?.login %></td>
|
||||||
|
<td>
|
||||||
|
<a target="_new" href="<%= issue.html_url %>">
|
||||||
|
<button class="btn btn-mini btn-success"><i class="icon-white icon-eye-open"></i></button>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue