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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
9825e51ba30f Minor reorganization.
Edho Arief <edho@myconan.net>
parents: 103
diff changeset
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
9825e51ba30f Minor reorganization.
Edho Arief <edho@myconan.net>
parents: 103
diff changeset
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 });