Skip to content

Commit

Permalink
add name form to prevent selecting yourself
Browse files Browse the repository at this point in the history
  • Loading branch information
aaronmitchell committed May 13, 2016
1 parent 623b3ce commit 6eb3512
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 17 deletions.
26 changes: 20 additions & 6 deletions public/pages/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
<title>Find Me a Code Reviewer</title>
<link rel="icon" href="/images/favicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script type="text/javascript" src="/scripts/main.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js" defer></script>
<script src="https:/cdnjs.cloudflare.com/ajax/libs/lodash.js/4.12.0/lodash.min.js" defer></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.1.1/js.cookie.min.js" defer></script>
<script type="text/javascript" src="/scripts/main.js" defer></script>
<style>
#progressBar {
width: 0;
Expand All @@ -22,17 +23,30 @@
<body>
<div class="container">
<div class="row">
<div class="col-md-12" style="text-align: right">
<div class="col-md-12" style="text-align: right; padding-bottom: 100px">
<a href="https://github.com/aaronmitchell/codereviewer">
<img src="/images/logo_github_small.gif" height="30">
</a>
</div>
</div>
<div class="row" style="padding-top: 100px">
<div class="row" id="nameFormRow" hidden>
<div class="col-md-12">
<button type="button" id="find" class="btn btn-primary btn-lg btn-block" style="margin-bottom: 1px;">
<form class="form-horizontal" id="nameForm">
<div class="form-group">
<input type="text" class="form-control" id="name" placeholder="Enter your name" required autocomplete="off">
</div>
</form>
</div>
</div>
<div class="row" id="searchRow" hidden>
<div class="col-md-12">
<button type="button" id="search" class="btn btn-primary btn-lg btn-block" style="margin-bottom: 1px;">
Find Me a Code Reviewer
</button>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div id="searchProgress" class="jumbotron" style="visibility: hidden;height: 195px;">

<p id="progressFlavorText">Generating abstract syntax trees for current workspace...</p>
Expand Down
60 changes: 49 additions & 11 deletions public/scripts/main.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,26 @@
$(document).ready(function () {
var $find = $("#find");
var $nameFormRow = $("#nameFormRow");
var $nameForm = $("#nameForm");
var $name = $("#name");


var $searchRow = $("#searchRow");
var $search = $("#search");
var $searchProgress = $("#searchProgress");
var $progressBar = $("#progressBar");
var $progressFlavorText = $("#progressFlavorText");
var $result = $("#result");
var $resultCandidate = $("#resultCandidate");

var reviewers = [
"Aaron Mitchell (aaron)",
"Stephanie Yang (stpyang)",
"Berk Kapicioglu (berk)",
"Scott Snyder (ss)"
{name: "Aaron Mitchell", alias: "aaron"},
{name: "Stephanie Yang", alias: "stpyang"},
{name: "Berk Kapicioglu", alias: "berk"},
{name: "Scott Snyder", alias: "ss"}
];

$find.click(function () {
$find.attr('disabled', true);
$search.click(function () {
$search.attr('disabled', true);
$searchProgress.css('visibility', 'visible');

var duration = 8000;
Expand All @@ -35,16 +41,48 @@ $(document).ready(function () {
if (now >= animateEnd) {
window.clearInterval(animateInterval);
$searchProgress.hide();
var reviewer = reviewers[Math.floor(Math.random() * 4)];
$resultCandidate.text(reviewer);
var reviewer = reviewers[Math.floor(Math.random() * reviewers.length)];
$resultCandidate.text(reviewer.name + " (" + reviewer.alias + ")");
$result.show();
} else if (now >= animatePhaseThreeStart) {
$progressFlavorText.text("Filtering qualified candidate list...")
} else if (now >= animatePhaseTwoStart) {
$progressFlavorText.text("Analyzing candidates' previous phabricator reviews...")
}
}, 100);

$progressBar.addClass("grow");
})
});

function removeReviewer(name) {
var nameSegments = _.map(name.split(" "), function (segment) {
return segment.toLowerCase();
});
_.remove(reviewers, function (reviewer) {
var reviewerNameSegments = _.union(
_.map(reviewer.name.split(" "), function (segment) {
return segment.toLowerCase();
}),
reviewer.alias
);
return _.intersection(nameSegments, reviewerNameSegments).length !== 0
});
}

$nameForm.submit(function () {
var name = $name.val();
Cookies.set('name', name, {expires: 365});
removeReviewer(name);
$nameForm.hide();
$searchRow.show();
$search.click();
return false;
});

var cookieName = Cookies.get('name');
if (cookieName) {
removeReviewer(cookieName);
$searchRow.show();
} else {
$nameFormRow.show();
}
});

0 comments on commit 6eb3512

Please sign in to comment.