##// END OF EJS Templates
fix for thread gallery.
rt@lightning -
r250:0afbf21f default
parent child Browse files
Show More
@@ -1,103 +1,105 b''
1 var image_mode = 0;
1 var image_mode = 0;
2 var normal_dom, table_dom;
2 var normal_dom, table_dom;
3
3
4 function add_panel(after)
4 function add_panel(after)
5 {
5 {
6 var nav_top = $(after);
6 var nav_top = $(after);
7 if (nav_top.length === 0) return;
7 if (nav_top.length === 0) return;
8 nav_top = nav_top[0];
8 nav_top = nav_top[0];
9
9
10 var tab_bar = $('<div class="image-mode-tab" role="radiogroup" aria-label="Image mode"></div>');
10 var tab_bar = $('<div class="image-mode-tab" role="radiogroup" aria-label="Image mode"></div>');
11
11
12 var tab;
12 var tab;
13
13
14 tab = $('<input type="radio" class="image-mode-normal" name="image-mode" value="0" checked="checked"/>');
14 tab = $('<input type="radio" class="image-mode-normal" name="image-mode" value="0" checked="checked"/>');
15 tab.on("change", tab_handler);
15 tab.on("change", tab_handler);
16
16
17 var label_normal = gettext('Normal');
17 var label_normal = gettext('Normal');
18 tab = $('<label>' + label_normal + '</label>').prepend(tab);
18 tab = $('<label>' + label_normal + '</label>').prepend(tab);
19 tab_bar.append(tab);
19 tab_bar.append(tab);
20
20
21 tab = $('<input type="radio" class="image-mode-table" name="image-mode" value="1"/>');
21 tab = $('<input type="radio" class="image-mode-table" name="image-mode" value="1"/>');
22 tab.on("change", tab_handler);
22 tab.on("change", tab_handler);
23
23
24 var label_gallery = gettext('Gallery');
24 var label_gallery = gettext('Gallery');
25 tab = $('<label>' + label_gallery + '</label>').prepend(tab);
25 tab = $('<label>' + label_gallery + '</label>').prepend(tab);
26 tab_bar.append(tab);
26 tab_bar.append(tab);
27
27
28 tab_bar.insertAfter(nav_top);
28 tab_bar.insertAfter(nav_top);
29 }
29 }
30
30
31 function tab_handler(ev)
31 function tab_handler(ev)
32 {
32 {
33 var current_el = $(this);
33 var current_el = $(this);
34
34
35 if (!current_el.prop('checked')) return;
35 if (!current_el.prop('checked')) return;
36
36
37 var new_mode = parseInt(current_el.val(), 10);
37 var new_mode = parseInt(current_el.val(), 10);
38 if (new_mode === image_mode) return;
38 if (new_mode === image_mode) return;
39 image_mode = new_mode;
39 image_mode = new_mode;
40
40
41 make_normal_dom();
41 make_normal_dom();
42 make_table_dom();
42 make_table_dom();
43
43
44 switch(new_mode) {
44 switch(new_mode) {
45 case 0:
45 case 0:
46 $('#posts-table').replaceWith(normal_dom);
46 $('#posts-table').replaceWith(normal_dom);
47 break;
47 break;
48 case 1:
48 case 1:
49 $('#posts').replaceWith(table_dom);
49 $('#posts').replaceWith(table_dom);
50 break;
50 break;
51 }
51 }
52 }
52 }
53
53
54 function make_normal_dom()
54 function make_normal_dom()
55 {
55 {
56 if (typeof normal_dom === 'undefined') {
56 if (typeof normal_dom === 'undefined') {
57 normal_dom = $('#posts').clone(true);
57 normal_dom = $('#posts').clone(true);
58 }
58 }
59 }
59 }
60
60
61 function make_table_dom()
61 function make_table_dom()
62 {
62 {
63 if (typeof table_dom !== 'undefined') return;
63 if (typeof table_dom !== 'undefined') return;
64
64
65 table_dom = $('<div id="posts-table"></div>');
65 table_dom = $('<div id="posts-table"></div>');
66 $('#posts > .post > .image > a').each(
66 $('#posts > .post > .image > a').each(
67 function(){
67 function(){
68 table_dom.append(
68 table_dom.append(
69 $(this).clone().attr('target', '_blank')
69 $(this).clone().attr('target', '_blank')
70 );
70 );
71 }
71 }
72 );
72 );
73 //TODO: Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ
74 addImgPreview();
73 }
75 }
74
76
75 function moveCaretToEnd(el) {
77 function moveCaretToEnd(el) {
76 if (typeof el.selectionStart == "number") {
78 if (typeof el.selectionStart == "number") {
77 el.selectionStart = el.selectionEnd = el.value.length;
79 el.selectionStart = el.selectionEnd = el.value.length;
78 } else if (typeof el.createTextRange != "undefined") {
80 } else if (typeof el.createTextRange != "undefined") {
79 el.focus();
81 el.focus();
80 var range = el.createTextRange();
82 var range = el.createTextRange();
81 range.collapse(false);
83 range.collapse(false);
82 range.select();
84 range.select();
83 }
85 }
84 }
86 }
85
87
86 function addQuickReply(postId) {
88 function addQuickReply(postId) {
87 var textToAdd = '>>' + postId + '\n\n';
89 var textToAdd = '>>' + postId + '\n\n';
88 var textAreaId = '#id_text';
90 var textAreaId = '#id_text';
89 $(textAreaId).val($(textAreaId).val()+ textToAdd);
91 $(textAreaId).val($(textAreaId).val()+ textToAdd);
90
92
91 var textarea = document.getElementById('id_text');
93 var textarea = document.getElementById('id_text');
92 $(textAreaId).focus();
94 $(textAreaId).focus();
93 moveCaretToEnd(textarea);
95 moveCaretToEnd(textarea);
94
96
95 $("html, body").animate({ scrollTop: $(textAreaId).offset().top }, "slow");
97 $("html, body").animate({ scrollTop: $(textAreaId).offset().top }, "slow");
96 }
98 }
97
99
98
100
99
101
100 $(document).ready(function(){
102 $(document).ready(function(){
101 add_panel('.navigation_panel');
103 add_panel('.navigation_panel');
102 addRefLinkMap();
104 addRefLinkMap();
103 });
105 });
General Comments 0
You need to be logged in to leave comments. Login now