annotate static/js/agora.js @ 196:134f726fd62c

Removed extrawhitespaces and moved comments template files to templates folder
author Ahsan Ali Shahid <ahsan.ali.shahid@gmail.com>
date Thu, 04 Jul 2013 15:45:50 +0500
parents fe51ec4eccc1
children a22259c9862e
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
138
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
22 // jQuery plugin for selecting text
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
23 $.fn.selectText = function () {
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
24 var element = this[0];
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
25 var range, selection;
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
26
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
27 if (document.body.createTextRange) {
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
28 range = document.body.createTextRange();
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
29 range.moveToElementText(element);
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
30 range.select();
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
31 } else if (window.getSelection) {
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
32 selection = window.getSelection();
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
33 range = document.createRange();
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
34 range.selectNodeContents(element);
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
35 selection.removeAllRanges();
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
36 selection.addRange(range);
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
37 }
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
38 };
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
39
193
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
40 $.fn.ShowCommentForm = function(id){
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
41 $(this).hide();
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
42 $('#' + id).show();
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
43 };
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
44
107
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
45 $(document).ready(function () {
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
46 handleLoginLink();
137
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
47
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
48 // Add in the line numbers (no JS fallback unfortunately)
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
49 if ($('.snippet').length) {
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
50 var counter = 1;
141
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
51 var lineNumbers = [];
137
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
52
141
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
53 var lines = $('.code-lines').children();
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
54
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
55 for (var i = 0, numLines = lines.length; i < numLines; i++) {
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
56 var line = lines[i];
137
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
57 // Set the top offset to be the same as that of the line
141
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
58 var div = '<p style="top: ' + line.offsetTop + 'px">' +
137
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
59 '<a href="#l' + counter + '">' + counter + '</a></p>';
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
60 counter++;
141
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
61 lineNumbers.push(div);
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
62 }
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
63
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
64 $('.line-counters').append(lineNumbers.join(''));
137
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
65 }
138
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
66
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
67 // Highlight the code when the link is clicked
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
68 $('.highlight-code-lines').click(function () {
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
69 $('.code-lines').selectText();
142
c3c4aaccbcd0 Return false when clicking "Highlight code" link
dellsystem <ilostwaldo@gmail.com>
parents: 141
diff changeset
70
c3c4aaccbcd0 Return false when clicking "Highlight code" link
dellsystem <ilostwaldo@gmail.com>
parents: 141
diff changeset
71 return false;
138
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
72 });
149
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
73
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
74 // Changing syntax highlighting colours
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
75 var currentStyle = $('#change-highlighting').attr('data-default');
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
76 $('#change-highlighting').change(function () {
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
77 var newStyle = $(this).find(':selected').attr('data-name');
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
78
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
79 $('.snippet').removeClass(currentStyle).addClass(newStyle);
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
80 currentStyle = newStyle;
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
81 });
107
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
82 });
193
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
83 }
196
134f726fd62c Removed extrawhitespaces and moved comments template files to templates folder
Ahsan Ali Shahid <ahsan.ali.shahid@gmail.com>
parents: 193
diff changeset
84 )(jQuery);