0
|
1 /**
|
|
2 * Hide Blockquotes plugin script
|
|
3 *
|
|
4 * @licstart The following is the entire license notice for the
|
|
5 * JavaScript code in this file.
|
|
6 *
|
|
7 * Copyright (c) 2012-2014, The Roundcube Dev Team
|
|
8 *
|
|
9 * The JavaScript code in this page is free software: you can redistribute it
|
|
10 * and/or modify it under the terms of the GNU General Public License
|
|
11 * as published by the Free Software Foundation, either version 3 of
|
|
12 * the License, or (at your option) any later version.
|
|
13 *
|
|
14 * @licend The above is the entire license notice
|
|
15 * for the JavaScript code in this file.
|
|
16 */
|
|
17
|
|
18 if (window.rcmail)
|
|
19 rcmail.addEventListener('init', function() { hide_blockquote(); });
|
|
20
|
|
21 function hide_blockquote()
|
|
22 {
|
|
23 var limit = rcmail.env.blockquote_limit;
|
|
24
|
|
25 if (limit <= 0)
|
|
26 return;
|
|
27
|
|
28 $('div.message-part div.pre > blockquote', $('#messagebody')).each(function() {
|
|
29 var div, link, q = $(this),
|
|
30 text = $.trim(q.text()),
|
|
31 res = text.split(/\n/);
|
|
32
|
|
33 if (res.length <= limit) {
|
|
34 // there can be also a block with very long wrapped line
|
|
35 // assume line height = 15px
|
|
36 if (q.height() <= limit * 15)
|
|
37 return;
|
|
38 }
|
|
39
|
|
40 div = $('<blockquote class="blockquote-header">')
|
|
41 .css({'white-space': 'nowrap', overflow: 'hidden', position: 'relative'})
|
|
42 .text(res[0]);
|
|
43
|
|
44 link = $('<span class="blockquote-link"></span>')
|
|
45 .css({position: 'absolute', 'z-Index': 2})
|
|
46 .text(rcmail.get_label('hide_blockquote.show'))
|
|
47 .data('parent', div)
|
|
48 .click(function() {
|
|
49 var t = $(this), parent = t.data('parent'), visible = parent.is(':visible');
|
|
50
|
|
51 t.text(rcmail.get_label(visible ? 'hide' : 'show', 'hide_blockquote'))
|
|
52 .detach().appendTo(visible ? q : parent);
|
|
53
|
|
54 parent[visible ? 'hide' : 'show']();
|
|
55 q[visible ? 'show' : 'hide']();
|
|
56 });
|
|
57
|
|
58 link.appendTo(div);
|
|
59
|
|
60 // Modify blockquote
|
|
61 q.hide().css({position: 'relative'}).before(div);
|
|
62 });
|
|
63 }
|