bd5e0b6ea5b60f6d9301d61ce551e24156090cc3
[roojs1] / docs / src / Roo_bootstrap_ButtonUploader.js.html
1 <html><head><title>Roo/bootstrap/ButtonUploader.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
2 <span class="jsdoc-comment">/*
3 * Licence: LGPL
4 */
5
6 /**
7  * @class Roo.bootstrap.ButtonUploader
8  * @extends Roo.bootstrap.Button
9  * Bootstrap Button Uploader class - it's a button which when you add files to it
10  *
11  * 
12  * @cfg {Number} errorTimeout default 3000
13  * @cfg {Array}  images  an array of ?? Img objects ??? when loading existing files..
14  * @cfg {Array}  html The button text.
15  * @cfg {Boolean}  multiple (default true) Should the upload allow multiple files to be uploaded.
16  *
17  * @constructor
18  * Create a new CardUploader
19  * @param {Object} config The config object
20  */
21
22 </span><span class="jsdoc-var">Roo.bootstrap.ButtonUploader </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">){
23
24
25
26     </span><span class="jsdoc-var">Roo.bootstrap.ButtonUploader.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">);
27
28
29      </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
30          </span><span class="jsdoc-comment">// raw events
31         /**
32          * @event beforeselect
33          * When button is pressed, before show upload files dialog is shown
34          * @param {Roo.bootstrap.UploaderButton} this
35          *
36          */
37         </span><span class="jsdoc-string">'beforeselect' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
38          </span><span class="jsdoc-comment">/**
39          * @event fired when files have been selected, 
40          * When a the download link is clicked
41          * @param {Roo.bootstrap.UploaderButton} this
42          * @param {Array} Array of files that have been uploaded
43          */
44         </span><span class="jsdoc-string">'uploaded' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
45
46     </span><span class="jsdoc-syntax">});
47 };
48
49 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.ButtonUploader</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.bootstrap.Button</span><span class="jsdoc-syntax">,  {
50
51
52     </span><span class="jsdoc-var">errorTimeout </span><span class="jsdoc-syntax">: 3000,
53
54     </span><span class="jsdoc-var">images </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
55
56     </span><span class="jsdoc-var">fileCollection </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
57     </span><span class="jsdoc-var">allowBlank </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
58
59     </span><span class="jsdoc-var">multiple </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
60
61     </span><span class="jsdoc-var">getAutoCreate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
62     {
63         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">im </span><span class="jsdoc-syntax">= {
64             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'input'</span><span class="jsdoc-syntax">,
65             </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'file'</span><span class="jsdoc-syntax">,
66             </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'d-none  roo-card-upload-selector'
67
68         </span><span class="jsdoc-syntax">};
69         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.multiple</span><span class="jsdoc-syntax">) {
70             </span><span class="jsdoc-var">im.multiple </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'multiple'</span><span class="jsdoc-syntax">;
71         }
72
73         </span><span class="jsdoc-keyword">return  </span><span class="jsdoc-syntax">{
74             </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'div' </span><span class="jsdoc-syntax">,
75             </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">: [
76                 </span><span class="jsdoc-var">Roo.bootstrap.Button.prototype.getAutoCreate.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">),
77                 </span><span class="jsdoc-var">im
78
79             </span><span class="jsdoc-syntax">]
80         };
81
82
83     },
84
85
86     </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
87     {
88
89         </span><span class="jsdoc-var">Roo.bootstrap.Button.prototype.initEvents.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
90
91
92
93
94
95         </span><span class="jsdoc-var">this.urlAPI </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">window.createObjectURL </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">) ||
96                                 (</span><span class="jsdoc-var">window.URL </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">URL.revokeObjectURL </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">URL</span><span class="jsdoc-syntax">) ||
97                                 (</span><span class="jsdoc-var">window.webkitURL </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">webkitURL</span><span class="jsdoc-syntax">);
98
99
100
101
102         </span><span class="jsdoc-var">this.selectorEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.roo-card-upload-selector'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
103
104         </span><span class="jsdoc-var">this.selectorEl.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'change'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onFileSelected</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
105
106
107
108     },
109
110
111     </span><span class="jsdoc-var">onClick </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">)
112     {
113         </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
114
115         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'beforeselect'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) {
116             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
117         }
118
119         </span><span class="jsdoc-var">this.selectorEl.dom.click</span><span class="jsdoc-syntax">();
120
121     },
122
123     </span><span class="jsdoc-var">onFileSelected </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">)
124     {
125         </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
126
127         </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.selectorEl.dom.files</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">this.selectorEl.dom.files.length</span><span class="jsdoc-syntax">){
128             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
129         }
130         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">files </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Array.prototype.slice.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.selectorEl.dom.files</span><span class="jsdoc-syntax">);
131         </span><span class="jsdoc-var">this.selectorEl.dom.reset</span><span class="jsdoc-syntax">();
132
133         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'uploaded'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">files </span><span class="jsdoc-syntax">);
134
135     },
136
137
138
139
140     </span><span class="jsdoc-comment">/**
141      * addCard - add an Attachment to the uploader
142      * @param data - the data about the image to upload
143      *
144      * {
145           id : 123
146           title : &quot;Title of file&quot;,
147           is_uploaded : false,
148           src : &quot;http://.....&quot;,
149           srcfile : { the File upload object },
150           mimetype : file.type,
151           preview : false,
152           is_deleted : 0
153           .. any other data...
154         }
155      *
156      * 
157     */
158
159     </span><span class="jsdoc-var">reset</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
160     {
161
162          </span><span class="jsdoc-var">this.selectorEl
163     </span><span class="jsdoc-syntax">}
164
165
166
167
168 });
169  </span></code></body></html>