annotate static/js/agora.js @ 137:00c71a6192de

Make line numbers work for real This commit has a very long and tragic backstory. For details: http://dellsystem.me/posts/line-numbering/
author dellsystem <ilostwaldo@gmail.com>
date Sat, 29 Sep 2012 18:03:07 -0400
parents 2bca07be6e51
children 4d358e1e3014
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
107
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
1 (function ($) {
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
2 // Handle showing the login popup
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
3 var handleLoginLink = function () {
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
4 var loginLink = $('.login-link');
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
5
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
6 if (loginLink.length) {
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
7 loginLink.click(function () {
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
8 $('#login-popup').show();
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
9
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
10 return false;
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
11 });
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
12
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
13 $('#login-popup').click(function (event) {
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
14 // Only catch events in the outer, overlay div
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
15 if (event.target === this) {
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
16 $(this).hide();
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
17 }
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
18 });
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
19 }
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
20 };
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
21
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
22 $(document).ready(function () {
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
23 handleLoginLink();
137
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
24
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
25 // Add in the line numbers (no JS fallback unfortunately)
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
26 if ($('.snippet').length) {
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
27 var counter = 1;
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
28
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
29 $('.code-lines').children().each(function () {
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
30 // Set the top offset to be the same as that of the line
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
31 var div = '<p style="top: ' + this.offsetTop + 'px">' +
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
32 '<a href="#l' + counter + '">' + counter + '</a></p>';
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
33 counter++;
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
34 $('.line-counters').append(div);
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
35 });
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
36 }
107
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
37 });
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
38 })(jQuery);