Files
goreportcard/templates/home.html
2020-02-11 17:56:38 +09:00

208 lines
6.6 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Go Report Card | Go project code quality report cards</title>
<link rel="stylesheet" href="/assets/bulma.0.0.23.min.css">
<link rel="stylesheet" href="/assets/goreportcard.css">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '[[ .google_analytics_key ]]', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<div id="notifications">
</div>
<header class="header">
<div class="container">
<!-- Left side -->
<div class="header-left">
<a class="header-item" href="/">
<h3 class="title">Go Report Card</h3>
</a>
</div>
<!-- Hamburger menu (on mobile) -->
<span class="header-toggle">
<span></span>
<span></span>
<span></span>
</span>
<!-- Right side -->
<div class="header-right header-menu">
<span class="header-item">
<a href="/high_scores">High Scores</a>
</span>
<span class="header-item">
<a href="https://github.com/gojp/goreportcard">GitHub</a>
</span>
<span class="header-item">
<a href="/supporters"><b>Supporters</b></a>
</span>
<span class="header-item">
<a href="/about">About</a>
</span>
</div>
</div>
</header>
<section class="hero is-primary is-medium has-text-centered gopher">
<div class="hero-content">
<div class="container">
<h2 class="subtitle">
Enter the <strong>go get</strong> path to the project below:
</h2>
<form method="POST" action="/checks" id="check_form">
<div>
<p class="url">
<input name="repo" type="text" class="input-box" placeholder="github.com/gojp/goreportcard"/>
</p>
</div>
<div>
<button type="submit" class="button btn-test is-large" href="#" role="button">Generate Report</button>
</div>
</form>
</div>
</div>
</section>
<section class="section container-suggestions">
<div class="container">
<div class="columns">
<div class="column is-half">
<table class="table">
<thead>
<tr>
<th>Sponsored Report Cards</th>
</tr>
</thead>
<tbody>
<tr>
<td class="table-link"><a href="https://www.patreon.com/goreportcard">[Your Repo Here!]</a></td>
</tr>
</tbody>
</table>
</div>
<div class="column is-half">
<table class="table">
<thead>
<tr>
<th>Recently Generated</th>
</tr>
</thead>
<tbody>
[[ range .Recent ]]
<tr>
<td class="table-link"><a href="/report/[[ . ]]">[[ . ]]</td>
</tr>
[[ end ]]
</tbody>
</table>
</div>
</div>
</div>
</section>
<section class="section container-results hidden">
<div class="container">
<div class="columns results-text">
</div>
<div class="columns">
<div class="column is-quarter">
<nav class="menu results">
</nav>
<div class="container-update">
</div>
</div>
<div class="column">
<div class="results-details">
</div>
</div>
</div>
</div>
</section>
[[ template "footer" . ]]
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.11/handlebars.min.js" integrity="sha256-+JMHsXRyeTsws/tzbIh5YHQxRdKCuNjmvNcTFtY6DLc=" crossorigin="anonymous"></script>
<script id="template-alert" type="text/x-handlebars-template">
<div class="notification is-warning">
<button class="delete"></button>
{{{message}}}
</div>
</div>
</script>
<script type="text/javascript">
var loading = false;
// initialize handlebars templates
var templates = {};
$("script[id^=template]").each(function(){
var name = $(this).attr("id").substring(9);
var source = $(this).html();
templates[name] = Handlebars.compile(source);
});
function alertMessage(msg){
var html = templates.alert({message: msg});
var $alert = $(html);
$alert.find(".delete").on("click", function(){
$(this).closest(".notification").remove();
});
$("#notifications").children().remove();
$alert.hide();
$alert.appendTo("#notifications");
$alert.slideDown();
}
var loadData = function(getRequest){
loading = true;
var $form = $(this),
url = $form.attr("action"),
method = $form.attr("method"),
data = {};
$form.serializeArray().map(function(x){data[x.name] = x.value;});
if(!data["repo"]) {
alertMessage("Input cannot be empty. Please enter a valid repository path");
return false;
}
$("#check_form .button").addClass("is-loading");
$.ajax({
type: getRequest ? "GET" : "POST",
url: url,
data: data,
dataType: "json"
}).fail(function(xhr, status, err){
alertMessage("There was an error processing your request: " + xhr.responseText);
}).done(function(data, textStatus, jqXHR){
if (data.redirect) {
window.location.href = data.redirect;
}
}).always(function(){
loading = false;
$("a.refresh-button").removeClass("is-loading");
$("#check_form .button").removeClass("is-loading");
});
return false;
};
// on ready
$(function(){
// handle form submission
$("form#check_form").submit(loadData);
});
</script>
</body>
</html>