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">/*
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
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.
18 * Create a new CardUploader
19 * @param {Object} config The config object
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">){
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">);
29 </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
30 </span><span class="jsdoc-comment">// raw events
33 * When button is pressed, before show upload files dialog is shown
34 * @param {Roo.bootstrap.UploaderButton} this
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
44 </span><span class="jsdoc-string">'uploaded' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
46 </span><span class="jsdoc-syntax">});
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">, {
52 </span><span class="jsdoc-var">errorTimeout </span><span class="jsdoc-syntax">: 3000,
54 </span><span class="jsdoc-var">images </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
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">,
59 </span><span class="jsdoc-var">multiple </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
61 </span><span class="jsdoc-var">getAutoCreate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
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'
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">;
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
79 </span><span class="jsdoc-syntax">]
86 </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
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">);
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">&& </span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">) ||
96 (</span><span class="jsdoc-var">window.URL </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">URL.revokeObjectURL </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">URL</span><span class="jsdoc-syntax">) ||
97 (</span><span class="jsdoc-var">window.webkitURL </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">webkitURL</span><span class="jsdoc-syntax">);
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">();
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">);
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">)
113 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
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">;
119 </span><span class="jsdoc-var">this.selectorEl.dom.click</span><span class="jsdoc-syntax">();
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">)
125 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
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">;
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.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;</span><span class="jsdoc-comment">// hopefully reset..
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">);
140 </span><span class="jsdoc-comment">/**
141 * addCard - add an Attachment to the uploader
142 * @param data - the data about the image to upload
146 title : "Title of file",
148 src : "http://.....",
149 srcfile : { the File upload object },
150 mimetype : file.type,
159 </span><span class="jsdoc-var">reset</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
162 </span><span class="jsdoc-var">this.selectorEl
163 </span><span class="jsdoc-syntax">}
169 </span></code></body></html>