Fix #5681 - fix bootstrap4 detection
[roojs1] / docs / src / Roo_form_ComboCheck.js.html
1 <html><head><title>Roo/form/ComboCheck.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  * RooJS Library 1.1.1
3  * Copyright(c) 2008-2011  Alan Knowles
4  *
5  * License - LGPL
6  */
7
8
9 /**
10  * @class Roo.form.ComboCheck
11  * @extends Roo.form.ComboBox
12  * A combobox for multiple select items.
13  *
14  * FIXME - could do with a reset button..
15  * 
16  * @constructor
17  * Create a new ComboCheck
18  * @param {Object} config Configuration options
19  */
20 </span><span class="jsdoc-var">Roo.form.ComboCheck </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
21     </span><span class="jsdoc-var">Roo.form.ComboCheck.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
22     </span><span class="jsdoc-comment">// should verify some data...
23     // like
24     // hiddenName = required..
25     // displayField = required
26     // valudField == required
27     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">req</span><span class="jsdoc-syntax">= [ </span><span class="jsdoc-string">'hiddenName'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'displayField'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'valueField' </span><span class="jsdoc-syntax">];
28     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
29     </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">req</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
30         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_t</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">) || !</span><span class="jsdoc-var">_t</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">) {
31             </span><span class="jsdoc-keyword">throw </span><span class="jsdoc-string">&quot;Roo.form.ComboCheck : missing value for: &quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">;
32         }
33     });
34
35
36 };
37
38 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.ComboCheck</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.ComboBox</span><span class="jsdoc-syntax">, {
39
40
41     </span><span class="jsdoc-var">editable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
42
43     </span><span class="jsdoc-var">selectedClass</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-menu-item-checked'</span><span class="jsdoc-syntax">,
44
45     </span><span class="jsdoc-comment">// private
46     </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">){
47         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
48
49
50
51         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.tpl</span><span class="jsdoc-syntax">){
52             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'x-combo-list'</span><span class="jsdoc-syntax">;
53
54
55             </span><span class="jsdoc-var">this.tpl </span><span class="jsdoc-syntax">=  </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">({
56                 </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">:  </span><span class="jsdoc-string">'&lt;div class=&quot;'</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'-item x-menu-check-item&quot;&gt;' </span><span class="jsdoc-syntax">+
57                    </span><span class="jsdoc-string">'&lt;img class=&quot;x-menu-item-icon&quot; style=&quot;margin: 0px;&quot; src=&quot;' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.BLANK_IMAGE_URL </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&quot;&gt;' </span><span class="jsdoc-syntax">+
58                    </span><span class="jsdoc-string">'&lt;span&gt;{' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.displayField </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'}&lt;/span&gt;' </span><span class="jsdoc-syntax">+
59                     </span><span class="jsdoc-string">'&lt;/div&gt;'
60
61             </span><span class="jsdoc-syntax">});
62         }
63
64
65         </span><span class="jsdoc-var">Roo.form.ComboCheck.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
66         </span><span class="jsdoc-var">this.view.singleSelect </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
67         </span><span class="jsdoc-var">this.view.multiSelect </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
68         </span><span class="jsdoc-var">this.view.toggleSelect </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
69         </span><span class="jsdoc-var">this.pageTb.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Toolbar.Fill</span><span class="jsdoc-syntax">(), {
70
71             </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Done'</span><span class="jsdoc-syntax">,
72             </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
73             {
74                 </span><span class="jsdoc-var">_t.collapse</span><span class="jsdoc-syntax">();
75             }
76         });
77     },
78
79     </span><span class="jsdoc-var">onViewOver </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
80         </span><span class="jsdoc-comment">// do nothing...
81         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
82
83     },
84
85     </span><span class="jsdoc-var">onViewClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doFocus</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
86         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
87
88     },
89     </span><span class="jsdoc-var">select</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
90         </span><span class="jsdoc-comment">//Roo.log(&quot;SELECT CALLED&quot;);
91     </span><span class="jsdoc-syntax">},
92
93     </span><span class="jsdoc-var">selectByValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">xv</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scrollIntoView</span><span class="jsdoc-syntax">){
94         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ar </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getValueArray</span><span class="jsdoc-syntax">();
95         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sels </span><span class="jsdoc-syntax">= [];
96
97         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ar</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) {
98             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">){
99                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
100             }
101             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findRecord</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.valueField</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
102             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">){
103                 </span><span class="jsdoc-var">sels.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">))
104
105             }
106         },</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
107         </span><span class="jsdoc-var">this.view.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sels</span><span class="jsdoc-syntax">);
108         </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
109     },
110
111
112
113     </span><span class="jsdoc-var">onSelect </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
114        </span><span class="jsdoc-comment">// Roo.log(&quot;onselect Called&quot;);
115        // this is only called by the clear button now..
116         </span><span class="jsdoc-var">this.view.clearSelections</span><span class="jsdoc-syntax">();
117         </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'[]'</span><span class="jsdoc-syntax">);
118         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">this.valueBefore</span><span class="jsdoc-syntax">) {
119             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'change'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.valueBefore</span><span class="jsdoc-syntax">);
120             </span><span class="jsdoc-var">this.valueBefore </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">;
121         }
122     },
123     </span><span class="jsdoc-var">getValueArray </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
124     {
125         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ar </span><span class="jsdoc-syntax">= [] ;
126
127         </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
128             </span><span class="jsdoc-comment">//Roo.log(this.value);
129             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
130                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[];
131             }
132             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ar </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.decode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">);
133             </span><span class="jsdoc-keyword">return  </span><span class="jsdoc-var">ar </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Array </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">ar </span><span class="jsdoc-syntax">: []; </span><span class="jsdoc-comment">//?? valid?
134
135         </span><span class="jsdoc-syntax">} </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
136             </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;\nRoo.form.ComboCheck:getValueArray  invalid data:&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">());
137             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">[];
138         }
139
140     },
141     </span><span class="jsdoc-var">expand </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">()
142     {
143
144         </span><span class="jsdoc-var">Roo.form.ComboCheck.superclass.expand.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
145         </span><span class="jsdoc-var">this.valueBefore </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">;
146         </span><span class="jsdoc-comment">//this.valueBefore = typeof(this.valueBefore) == 'undefined' ? '' : this.valueBefore;
147
148
149     </span><span class="jsdoc-syntax">},
150
151     </span><span class="jsdoc-var">collapse </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
152         </span><span class="jsdoc-var">Roo.form.ComboCheck.superclass.collapse.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
153         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.view.getSelectedIndexes</span><span class="jsdoc-syntax">();
154         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">st </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.store</span><span class="jsdoc-syntax">;
155         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nv </span><span class="jsdoc-syntax">= [];
156         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tv </span><span class="jsdoc-syntax">= [];
157         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
158         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sl</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
159             </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">st.getAt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
160             </span><span class="jsdoc-var">nv.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.valueField</span><span class="jsdoc-syntax">));
161         },</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
162         </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.encode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nv</span><span class="jsdoc-syntax">));
163         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">this.valueBefore</span><span class="jsdoc-syntax">) {
164
165             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'change'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.valueBefore</span><span class="jsdoc-syntax">);
166             </span><span class="jsdoc-var">this.valueBefore </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">;
167         }
168
169     },
170
171     </span><span class="jsdoc-var">setValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
172         </span><span class="jsdoc-comment">// Roo.log(v);
173         </span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
174
175         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">vals </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getValueArray</span><span class="jsdoc-syntax">();
176         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tv </span><span class="jsdoc-syntax">= [];
177         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">vals</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">) {
178             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findRecord</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.valueField</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">);
179             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">){
180                 </span><span class="jsdoc-var">tv.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.data</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.displayField</span><span class="jsdoc-syntax">]);
181             }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.valueNotFoundText </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">){
182                 </span><span class="jsdoc-var">tv.push</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.valueNotFoundText </span><span class="jsdoc-syntax">);
183             }
184         },</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
185        </span><span class="jsdoc-comment">// Roo.log(tv);
186
187         </span><span class="jsdoc-var">Roo.form.ComboBox.superclass.setValue.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">tv.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">', '</span><span class="jsdoc-syntax">));
188         </span><span class="jsdoc-var">this.hiddenField.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
189         </span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
190     }
191
192 });</span></code></body></html>