annotate static/js/agora.js @ 193:fe51ec4eccc1

Added necessary css and Javascript code for the comment system
author ahsanalishahid <ahsan.ali.shahid@gmail.com>
date Tue, 02 Jul 2013 02:01:02 +0500
parents cdfc1d269a75
children 134f726fd62c
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
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
45
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
46 };
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
47
107
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
48 $(document).ready(function () {
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
49 handleLoginLink();
137
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
50
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
51 // Add in the line numbers (no JS fallback unfortunately)
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
52 if ($('.snippet').length) {
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
53 var counter = 1;
141
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
54 var lineNumbers = [];
137
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
55
141
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
56 var lines = $('.code-lines').children();
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
57
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
58 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
59 var line = lines[i];
137
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
60 // 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
61 var div = '<p style="top: ' + line.offsetTop + 'px">' +
137
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
62 '<a href="#l' + counter + '">' + counter + '</a></p>';
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
63 counter++;
141
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
64 lineNumbers.push(div);
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
65 }
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
66
2a2078bd334c Optimise Javascript for adding line numbers
dellsystem <ilostwaldo@gmail.com>
parents: 138
diff changeset
67 $('.line-counters').append(lineNumbers.join(''));
137
00c71a6192de Make line numbers work for real
dellsystem <ilostwaldo@gmail.com>
parents: 107
diff changeset
68 }
138
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
69
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
70 // 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
71 $('.highlight-code-lines').click(function () {
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
72 $('.code-lines').selectText();
142
c3c4aaccbcd0 Return false when clicking "Highlight code" link
dellsystem <ilostwaldo@gmail.com>
parents: 141
diff changeset
73
c3c4aaccbcd0 Return false when clicking "Highlight code" link
dellsystem <ilostwaldo@gmail.com>
parents: 141
diff changeset
74 return false;
138
4d358e1e3014 Add "highlight code" link, to easily select code
dellsystem <ilostwaldo@gmail.com>
parents: 137
diff changeset
75 });
149
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
76
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
77 // Changing syntax highlighting colours
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
78 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
79 $('#change-highlighting').change(function () {
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
80 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
81
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
82 $('.snippet').removeClass(currentStyle).addClass(newStyle);
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
83 currentStyle = newStyle;
cdfc1d269a75 Move syntax-highlighting JS to static/js/agora.js
dellsystem <ilostwaldo@gmail.com>
parents: 142
diff changeset
84 });
107
2bca07be6e51 Add login popup box
dellsystem <ilostwaldo@gmail.com>
parents:
diff changeset
85 });
193
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
86
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
87
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
88
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
89 }
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
90 )(jQuery);
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
91
fe51ec4eccc1 Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents: 149
diff changeset
92