annotate app/assets/javascripts/init.tabs.js @ 191:4e409ac7082d

Also expires the page upon deletion.
author Edho Arief <edho@myconan.net>
date Sat, 23 Feb 2013 14:53:47 +0900
parents 601c608637e7
children c054f01477c4
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() {
129
0785824a20b9 Return immediately if not in pastes#show.
Edho Arief <edho@myconan.net>
parents: 128
diff changeset
2 if ($('#paste-show').length !== 1) {
0785824a20b9 Return immediately if not in pastes#show.
Edho Arief <edho@myconan.net>
parents: 128
diff changeset
3 return;
0785824a20b9 Return immediately if not in pastes#show.
Edho Arief <edho@myconan.net>
parents: 128
diff changeset
4 }
136
b327d80c5ff9 Fixed indentation and spaces.
Edho Arief <edho@myconan.net>
parents: 135
diff changeset
5 var update_state = function() {
b327d80c5ff9 Fixed indentation and spaces.
Edho Arief <edho@myconan.net>
parents: 135
diff changeset
6 var paste = $('#paste'),
b327d80c5ff9 Fixed indentation and spaces.
Edho Arief <edho@myconan.net>
parents: 135
diff changeset
7 mode = paste.data('mode'),
b327d80c5ff9 Fixed indentation and spaces.
Edho Arief <edho@myconan.net>
parents: 135
diff changeset
8 width = paste.data('width'),
b327d80c5ff9 Fixed indentation and spaces.
Edho Arief <edho@myconan.net>
parents: 135
diff changeset
9 qstring = '#!' + mode + '.' + width;
137
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
10 if (width == 'auto') {
144
b56ad3caed6d Remove hash on `#!plain.auto`.
Edho Arief <edho@myconan.net>
parents: 141
diff changeset
11 if (mode == 'plain') {
b56ad3caed6d Remove hash on `#!plain.auto`.
Edho Arief <edho@myconan.net>
parents: 141
diff changeset
12 qstring = ' ';
b56ad3caed6d Remove hash on `#!plain.auto`.
Edho Arief <edho@myconan.net>
parents: 141
diff changeset
13 } else {
146
601c608637e7 Accidentally +.
Edho Arief <edho@myconan.net>
parents: 144
diff changeset
14 qstring = '#!' + mode;
134
3c777dbd6b11 Moved function declarations to beginning.
Edho Arief <edho@myconan.net>
parents: 133
diff changeset
15 }
137
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
16 }
141
2104f0c477c0 Use replaceState afterall for browsers supporting it.
Edho Arief <edho@myconan.net>
parents: 140
diff changeset
17 if (history.replaceState) {
2104f0c477c0 Use replaceState afterall for browsers supporting it.
Edho Arief <edho@myconan.net>
parents: 140
diff changeset
18 history.replaceState(null, '', qstring);
2104f0c477c0 Use replaceState afterall for browsers supporting it.
Edho Arief <edho@myconan.net>
parents: 140
diff changeset
19 } else {
2104f0c477c0 Use replaceState afterall for browsers supporting it.
Edho Arief <edho@myconan.net>
parents: 140
diff changeset
20 window.location = qstring;
2104f0c477c0 Use replaceState afterall for browsers supporting it.
Edho Arief <edho@myconan.net>
parents: 140
diff changeset
21 }
140
13ada93ad6a2 Return false on update state.
Edho Arief <edho@myconan.net>
parents: 137
diff changeset
22 return false;
137
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
23 },
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
24 paste_resize = function(size) {
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
25 var paste = $('#paste'),
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
26 title = $('#paste-resize a.btn');
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
27 title.html(title.html().replace(/(auto|\d+px)/, size));
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
28 if (size == 'auto') {
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
29 paste.css('width', '');
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
30 paste.data('width', size);
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
31 } else {
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
32 paste.css('width', size);
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
33 paste.data('width', size);
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
34 }
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
35 update_state();
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
36 },
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
37 paste_resize_menu_handler = function() {
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
38 paste_resize($(this).data('size'));
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
39 $('.open').removeClass('open');
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
40 return false;
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
41 },
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
42 paste_mode_state_handler = function() {
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
43 $('#paste').data('mode', $(this).prop('href').split('#')[1]);
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
44 update_state();
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
45 },
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
46 init_state = function() {
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
47 mode = window.location.hash.substr(2).split('.');
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
48 if (mode[0] == 'highlight') { $('#paste-mode a:eq(1)').click(); }
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
49 else if (mode[0] == 'markdown') { $('#paste-mode a:eq(2)').click(); };
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
50 if (mode[1] && mode[1].match(/^\d+px$/)) { paste_resize(mode[1]); }
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
51 },
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
52 init_tabs_base = function() {
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
53 var raw = $('#plain pre').text(),
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
54 markdown = $('#markdown div');
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
55 markdown.html(marked(raw));
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
56 $('#highlight pre').text(raw);
135
0cd87e69dd65 Reorganize.
Edho Arief <edho@myconan.net>
parents: 134
diff changeset
57
137
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
58 markdown.find('pre').addClass('prettyprint');
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
59 markdown.find('a').prop('rel', 'nofollow');
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
60 prettyPrint();
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
61 },
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
62 init_tabs_menu = function() {
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
63 $('#paste-mode a').click(paste_mode_state_handler);
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
64 $('#paste-resize ul a').click(paste_resize_menu_handler);
3241fe970c13 Yet another indentation fix.
Edho Arief <edho@myconan.net>
parents: 136
diff changeset
65 };
104
9825e51ba30f Minor reorganization.
Edho Arief <edho@myconan.net>
parents: 103
diff changeset
66
135
0cd87e69dd65 Reorganize.
Edho Arief <edho@myconan.net>
parents: 134
diff changeset
67 init_tabs_base();
0cd87e69dd65 Reorganize.
Edho Arief <edho@myconan.net>
parents: 134
diff changeset
68 init_tabs_menu();
0cd87e69dd65 Reorganize.
Edho Arief <edho@myconan.net>
parents: 134
diff changeset
69 init_state();
0cd87e69dd65 Reorganize.
Edho Arief <edho@myconan.net>
parents: 134
diff changeset
70 update_state();
59
1833de28583a Turns out the init file is required.
Edho Arief <edho@myconan.net>
parents:
diff changeset
71 });