Skip to content

Commit f78891b

Browse files
committed
fix #1
1 parent 1c489f5 commit f78891b

File tree

3 files changed

+68
-8
lines changed

3 files changed

+68
-8
lines changed

enter.css

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
#tool{
2-
margin-left: 10%;
3-
margin-right: 10%;
42
}
3+
54
#out{
65
width: 90%;
76
}
7+
#out-pretty{
8+
width: 90%;
9+
}
10+
11+
#out-pretty td{
12+
text-align: center;
13+
}
14+
815
.obsolete{
916
color: red;
1017
text-decoration: line-through;

enter.html

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<html xmlns="http://www.w3.org/1999/xhtml">
22
<head>
3-
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script>
3+
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js'></script>
44
<script type='text/javascript' src='enter.js'> </script>
55
<link type="text/css" href="enter.css" rel='stylesheet'/>
66
<title>Multiple Choice Answer Entering</title>
@@ -58,6 +58,9 @@
5858
<input id='number' type='text'/>
5959
<input id='answer' type='text' placeholder='Answer'/>
6060
</div>
61+
<div>
62+
<div id='out-pretty'></div>
63+
</div>
6164
</div>
6265
</body>
6366
</html>

enter.js

+55-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,47 @@
1+
/*jslint plusplus: false, bitwise: true, eqeq: true, unparam: true, white: false, browser: true, onevar: false */
2+
/*global console: true, window: true, chrome: true, $: true, require: true, exports: true, process: true, alert: true*/
13
$(function() {
4+
var KEY_ENTER = 13;
5+
var KEY_SPACE = 32;
6+
function pretty_print_last_line(){
7+
// works for all lines. But we just select the most recent
8+
var lines = $("#out").val().split("\n");
9+
lines = lines.slice(lines.length - 1);
10+
var maxEntries = 0;
11+
var tableRows = $.map(
12+
lines,
13+
function(line){
14+
var lineEntriesString = line.trim().split(/ /g)[2].trim();
15+
console.log(lineEntriesString);
16+
var lineEntries = lineEntriesString.split(/\d+/g).slice(1); // skip the first empty entry
17+
console.log(lineEntries);
18+
maxEntries = Math.max(maxEntries, lineEntries.length);
19+
var tableRow = $("<tr></tr>");
20+
$.each(lineEntries,
21+
function(i, entry){
22+
var tableData = $("<td></td>").text(entry);
23+
tableRow.append(tableData);
24+
});
25+
return tableRow;
26+
}
27+
);
28+
var header = $("<thead/>");
29+
for(var entryNumber = 0; entryNumber < maxEntries; entryNumber++){
30+
header.append($("<td>" + (entryNumber + 1) + "</td>"));
31+
}
32+
var $table = $("<table/>");
33+
$table.append(header);
34+
$.each(tableRows, function(i, row){
35+
$table.append(row);
36+
});
37+
// insert
38+
$("#out-pretty").empty();
39+
$("#out-pretty").append("Pretty current line:");
40+
$("#out-pretty").append($table);
41+
$("#out-pretty tr:even").css("background-color", "#DDDDDD");
42+
$("#out-pretty tr:odd").css("background-color", "#BBBBBB");
43+
$("#out-pretty td:empty").css("background-color", "#FF0000");
44+
}
245
$('#output').focus();
346
var newEntry = function() {
447
var out = $('#out');
@@ -23,7 +66,7 @@ $(function() {
2366
};
2467
$('#number').val(1);
2568
$("#user").add('#id').keydown(function(e) {
26-
if (e.keyCode === 13 || e.keyCode === 32) {
69+
if (e.keyCode === KEY_ENTER || e.keyCode === KEY_SPACE) {
2770
newEntry();
2871
return false;
2972
}
@@ -32,7 +75,7 @@ $(function() {
3275
$('#answer').keydown(function(e) {
3376
var input = $('#answer');
3477
var number = $('#number');
35-
if (e.keyCode === 32 || e.keyCode === 13) {
78+
if (e.keyCode === KEY_SPACE || e.keyCode === KEY_ENTER) {
3679
var out = $('#out');
3780
var inputVal = input.val();
3881
if (inputVal === '') {
@@ -44,14 +87,21 @@ $(function() {
4487
);
4588
number.val(parseInt(number.val(), 10) + 1);
4689
input.val('');
47-
if (e.keyCode === 32) return false;
90+
pretty_print_last_line();
91+
if (e.keyCode === KEY_SPACE) {
92+
return false;
93+
}
4894
}
49-
if (e.keyCode === 13) {
95+
if (e.keyCode === KEY_ENTER) {
5096
$('#number input').val(1);
5197
newEntry();
5298
return false;
5399
}
54-
if (e.keyCode >= 48 && e.keyCode <= 57) return false;
100+
if (e.keyCode >= 48 && e.keyCode <= 57) { // number
101+
alert("You haven entered a number!");
102+
return false;
103+
}
55104
return true;
56105
});
106+
$("input").add("textarea").attr("tabindex", -1);
57107
});

0 commit comments

Comments
 (0)