1 <html><head><title>/home/alan/gitlive/roojs1/Roo/data/Field.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">/*
4 * Copyright(c) 2006-2007, Ext JS, LLC.
6 * Originally Released Under LGPL - original licence link has changed is not relivant.
9 * <script type="text/javascript">
13 </span><span class="jsdoc-var">Roo.data.Field </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">){
14 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"string"</span><span class="jsdoc-syntax">){
15 </span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">= {</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">};
17 </span><span class="jsdoc-var">Roo.apply</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">);
19 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.type</span><span class="jsdoc-syntax">){
20 </span><span class="jsdoc-var">this.type </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">"auto"</span><span class="jsdoc-syntax">;
23 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">st </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.data.SortTypes</span><span class="jsdoc-syntax">;
24 </span><span class="jsdoc-comment">// named sortTypes are supported, here we look them up
25 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">this.sortType </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"string"</span><span class="jsdoc-syntax">){
26 </span><span class="jsdoc-var">this.sortType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">st</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.sortType</span><span class="jsdoc-syntax">];
29 </span><span class="jsdoc-comment">// set default sortType for strings and dates
30 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.sortType</span><span class="jsdoc-syntax">){
31 </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.type</span><span class="jsdoc-syntax">){
32 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">"string"</span><span class="jsdoc-syntax">:
33 </span><span class="jsdoc-var">this.sortType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">st.asUCString</span><span class="jsdoc-syntax">;
34 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
35 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">"date"</span><span class="jsdoc-syntax">:
36 </span><span class="jsdoc-var">this.sortType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">st.asDate</span><span class="jsdoc-syntax">;
37 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
38 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
39 </span><span class="jsdoc-var">this.sortType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">st.none</span><span class="jsdoc-syntax">;
43 </span><span class="jsdoc-comment">// define once
44 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">stripRe </span><span class="jsdoc-syntax">= /[\$,%]/g;
46 </span><span class="jsdoc-comment">// prebuilt conversion function for this field, instead of
47 // switching every time we're reading a value
48 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.convert</span><span class="jsdoc-syntax">){
49 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cv</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dateFormat </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.dateFormat</span><span class="jsdoc-syntax">;
50 </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.type</span><span class="jsdoc-syntax">){
51 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">:
52 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">"auto"</span><span class="jsdoc-syntax">:
53 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">:
54 </span><span class="jsdoc-var">cv </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">){ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">; };
55 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
56 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">"string"</span><span class="jsdoc-syntax">:
57 </span><span class="jsdoc-var">cv </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">){ </span><span class="jsdoc-keyword">return </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">) ? </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">); };
58 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
59 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">"int"</span><span class="jsdoc-syntax">:
60 </span><span class="jsdoc-var">cv </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">){
61 </span><span class="jsdoc-keyword">return </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">&& </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">?
62 </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">stripRe</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">), 10) : </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
64 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
65 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">"float"</span><span class="jsdoc-syntax">:
66 </span><span class="jsdoc-var">cv </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">){
67 </span><span class="jsdoc-keyword">return </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">&& </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">?
68 </span><span class="jsdoc-var">parseFloat</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">String</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">stripRe</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">), 10) : </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
70 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
71 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">"bool"</span><span class="jsdoc-syntax">:
72 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">"boolean"</span><span class="jsdoc-syntax">:
73 </span><span class="jsdoc-var">cv </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">){ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">"true" </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">== 1; };
74 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
75 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">"date"</span><span class="jsdoc-syntax">:
76 </span><span class="jsdoc-var">cv </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">){
77 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
78 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
80 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">){
81 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
83 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dateFormat</span><span class="jsdoc-syntax">){
84 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dateFormat </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"timestamp"</span><span class="jsdoc-syntax">){
85 </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">*1000);
87 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Date.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dateFormat</span><span class="jsdoc-syntax">);
89 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">parsed </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Date.parse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
90 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">parsed </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">parsed</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
92 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
95 </span><span class="jsdoc-var">this.convert </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cv</span><span class="jsdoc-syntax">;
99 </span><span class="jsdoc-var">Roo.data.Field.prototype </span><span class="jsdoc-syntax">= {
100 </span><span class="jsdoc-var">dateFormat</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
101 </span><span class="jsdoc-var">defaultValue</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">,
102 </span><span class="jsdoc-var">mapping</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
103 </span><span class="jsdoc-var">sortType </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
104 </span><span class="jsdoc-var">sortDir </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"ASC"
105 </span><span class="jsdoc-syntax">};</span></code></body></html>