Mercurial > agora
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 |
rev | line source |
---|---|
107 | 1 (function ($) { |
2 // Handle showing the login popup | |
3 var handleLoginLink = function () { | |
4 var loginLink = $('.login-link'); | |
5 | |
6 if (loginLink.length) { | |
7 loginLink.click(function () { | |
8 $('#login-popup').show(); | |
9 | |
10 return false; | |
11 }); | |
12 | |
13 $('#login-popup').click(function (event) { | |
14 // Only catch events in the outer, overlay div | |
15 if (event.target === this) { | |
16 $(this).hide(); | |
17 } | |
18 }); | |
19 } | |
20 }; | |
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 | 48 $(document).ready(function () { |
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 | 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 |