more styling
[roojs1] / docs / src / Roo_htmleditor_FilterLongBr.js.html
1 <html><head><title>Roo/htmleditor/FilterLongBr.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/**
2  * @class Roo.htmleditor.FilterLongBr
3  * BR/BR/BR - keep a maximum of 2...
4  * @constructor
5  * Run a new Long BR Filter
6  * @param {Object} config Configuration options
7  */
8
9 </span><span class="jsdoc-var">Roo.htmleditor.FilterLongBr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">)
10 {
11     </span><span class="jsdoc-comment">// no need to apply config.
12     </span><span class="jsdoc-var">this.walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg.node</span><span class="jsdoc-syntax">);
13 }
14
15 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.htmleditor.FilterLongBr</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.htmleditor.Filter</span><span class="jsdoc-syntax">,
16 {
17
18
19     </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'BR'</span><span class="jsdoc-syntax">,
20
21
22     </span><span class="jsdoc-var">replaceTag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">)
23     {
24
25         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.nextSibling</span><span class="jsdoc-syntax">;
26         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">ps.nodeType </span><span class="jsdoc-syntax">== 3 &amp;&amp; </span><span class="jsdoc-var">ps.nodeValue.trim</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.length </span><span class="jsdoc-syntax">&lt; 1) {
27             </span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ps.nextSibling</span><span class="jsdoc-syntax">;
28         }
29
30         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">&amp;&amp;  [ </span><span class="jsdoc-string">'TD'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'TH'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'LI'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H1'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H2'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H3'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H4'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H5'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H6' </span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.parentNode.tagName</span><span class="jsdoc-syntax">) &gt; -1) {
31             </span><span class="jsdoc-var">node.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// remove last BR inside one fo these tags
32             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
33         }
34
35         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ps.nodeType </span><span class="jsdoc-syntax">!= 1) {
36             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
37         }
38
39         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ps.tagName </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">'BR'</span><span class="jsdoc-syntax">) {
40
41             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
42         }
43
44
45
46
47
48         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">node.previousSibling</span><span class="jsdoc-syntax">) {
49             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
50         }
51         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.previousSibling</span><span class="jsdoc-syntax">;
52
53         </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">ps.nodeType </span><span class="jsdoc-syntax">== 3 &amp;&amp; </span><span class="jsdoc-var">ps.nodeValue.trim</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.length </span><span class="jsdoc-syntax">&lt; 1) {
54             </span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ps.previousSibling</span><span class="jsdoc-syntax">;
55         }
56         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">ps.nodeType </span><span class="jsdoc-syntax">!= 1) {
57             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
58         }
59         </span><span class="jsdoc-comment">// if header or BR before.. then it's a candidate for removal.. - as we only want '2' of these..
60         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">|| [ </span><span class="jsdoc-string">'BR'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H1'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H2'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H3'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H4'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H5'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'H6' </span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ps.tagName</span><span class="jsdoc-syntax">) &lt; 0) {
61             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
62         }
63
64         </span><span class="jsdoc-var">node.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// remove me...
65
66         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// no need to do children
67
68     </span><span class="jsdoc-syntax">}
69
70 });</span></code></body></html>