Mercurial > agora-palash
annotate static/js/agora.js @ 208:a22259c9862e
Removed redundant code for ratings field and add a separate template file for ratings field. Now ratings will be handled by Jquery.
author | Ahsan Ali Shahid <ahsan.ali.shahid@gmail.com> |
---|---|
date | Wed, 21 Aug 2013 03:52:06 +0500 |
parents | 134f726fd62c |
children |
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 |
107 | 45 $(document).ready(function () { |
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 | 82 }); |
208
a22259c9862e
Removed redundant code for ratings field and add a separate template file for ratings field. Now ratings will be handled by Jquery.
Ahsan Ali Shahid <ahsan.ali.shahid@gmail.com>
parents:
196
diff
changeset
|
83 $("input[name=Rate]").change(function() |
a22259c9862e
Removed redundant code for ratings field and add a separate template file for ratings field. Now ratings will be handled by Jquery.
Ahsan Ali Shahid <ahsan.ali.shahid@gmail.com>
parents:
196
diff
changeset
|
84 { |
a22259c9862e
Removed redundant code for ratings field and add a separate template file for ratings field. Now ratings will be handled by Jquery.
Ahsan Ali Shahid <ahsan.ali.shahid@gmail.com>
parents:
196
diff
changeset
|
85 $("#rate_form").submit(); |
a22259c9862e
Removed redundant code for ratings field and add a separate template file for ratings field. Now ratings will be handled by Jquery.
Ahsan Ali Shahid <ahsan.ali.shahid@gmail.com>
parents:
196
diff
changeset
|
86 }); |
193
fe51ec4eccc1
Added necessary css and Javascript code for the comment system
ahsanalishahid <ahsan.ali.shahid@gmail.com>
parents:
149
diff
changeset
|
87 } |
196
134f726fd62c
Removed extrawhitespaces and moved comments template files to templates folder
Ahsan Ali Shahid <ahsan.ali.shahid@gmail.com>
parents:
193
diff
changeset
|
88 )(jQuery); |