Mercurial > zeropaste
annotate app/assets/javascripts/init.tabs.js @ 114:b72f99d7b8cf
Dynamic url based on options selected.
Yes, I'm having too much fun.
author | Edho Arief <edho@myconan.net> |
---|---|
date | Mon, 12 Nov 2012 13:31:18 +0700 |
parents | 2b1041e8c35e |
children | 546381cf83c2 |
rev | line source |
---|---|
59
1833de28583a
Turns out the init file is required.
Edho Arief <edho@myconan.net>
parents:
diff
changeset
|
1 $(document).ready(function() { |
110
e8c632b0eb80
Check if current location is a show paste before triggering tabs js.
Edho Arief <edho@myconan.net>
parents:
109
diff
changeset
|
2 if ($('#paste-tabs').length == 1) { |
e8c632b0eb80
Check if current location is a show paste before triggering tabs js.
Edho Arief <edho@myconan.net>
parents:
109
diff
changeset
|
3 raw = $('#plain pre').text(); |
104 | 4 |
110
e8c632b0eb80
Check if current location is a show paste before triggering tabs js.
Edho Arief <edho@myconan.net>
parents:
109
diff
changeset
|
5 $('#highlight pre').text(raw); |
e8c632b0eb80
Check if current location is a show paste before triggering tabs js.
Edho Arief <edho@myconan.net>
parents:
109
diff
changeset
|
6 window.prettyPrint && prettyPrint(); |
104 | 7 |
110
e8c632b0eb80
Check if current location is a show paste before triggering tabs js.
Edho Arief <edho@myconan.net>
parents:
109
diff
changeset
|
8 $('#markdown div').html(marked(raw)); |
e8c632b0eb80
Check if current location is a show paste before triggering tabs js.
Edho Arief <edho@myconan.net>
parents:
109
diff
changeset
|
9 |
114
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
10 update_state = function() { |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
11 var paste = $('#paste'), |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
12 mode = paste.data('mode'), |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
13 width = paste.data('width'), |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
14 qstring = '?' + mode + '.' + width; |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
15 if ((mode == 'plain') && (width == 'full')) { |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
16 qstring = '?'; |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
17 } |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
18 history.replaceState(null, '', qstring); |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
19 }; |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
20 |
112
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
21 paste_resize = function(size) { |
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
22 var paste = $('#paste'), |
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
23 title = $('#tab-resize a.btn'); |
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
24 title.html(title.html().replace(/(full|\d+px)/, size)); |
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
25 if (size == 'full') { |
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
26 paste.css('width', ''); |
114
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
27 paste.data('width', size); |
112
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
28 } else { |
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
29 paste.css('width', size); |
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
30 paste.data('width', size); |
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
31 } |
114
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
32 update_state(); |
112
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
33 } |
108
a949b71c9afb
Allows paste content width resize.
Edho Arief <edho@myconan.net>
parents:
104
diff
changeset
|
34 |
114
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
35 $('#paste-tabs > li > a').click(function() { |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
36 $('#paste').data('mode', $(this).prop('href').split('#')[1]); |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
37 update_state(); |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
38 }); |
110
e8c632b0eb80
Check if current location is a show paste before triggering tabs js.
Edho Arief <edho@myconan.net>
parents:
109
diff
changeset
|
39 $('#tab-resize ul a').click(function() { |
112
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
40 paste_resize($(this).data('size')); |
110
e8c632b0eb80
Check if current location is a show paste before triggering tabs js.
Edho Arief <edho@myconan.net>
parents:
109
diff
changeset
|
41 }); |
112
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
42 |
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
43 mode = window.location.search.substr(1).split('.'); |
114
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
44 if (mode[0] == 'highlight') { $('#paste-tabs li:eq(1) a').click(); } |
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
45 else if (mode[0] == 'markdown') { $('#paste-tabs li:eq(2) a').click(); } |
112
2b1041e8c35e
Allows parameter-based width passing. Requires switching to .search.
Edho Arief <edho@myconan.net>
parents:
111
diff
changeset
|
46 if (mode[1] && mode[1].match(/^\d+px$/)) { paste_resize(mode[1]); } |
114
b72f99d7b8cf
Dynamic url based on options selected.
Edho Arief <edho@myconan.net>
parents:
112
diff
changeset
|
47 |
110
e8c632b0eb80
Check if current location is a show paste before triggering tabs js.
Edho Arief <edho@myconan.net>
parents:
109
diff
changeset
|
48 } |
59
1833de28583a
Turns out the init file is required.
Edho Arief <edho@myconan.net>
parents:
diff
changeset
|
49 }); |