/* Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: http://dojotoolkit.org/license for details */ if(!dojo._hasResource["dojox.form.uploader.FileList"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojox.form.uploader.FileList"] = true; dojo.provide("dojox.form.uploader.FileList"); dojo.require("dojox.form.uploader.Base"); dojo.declare("dojox.form.uploader.FileList", [dojox.form.uploader.Base], { // // Version: 1.6 // // summary: // A simple widget that provides a list of the files currently selected by // dojox.form.Uploader // // description: // There is a required CSS file: resources/UploaderFileList.css. // This is a very simple widget, and not beautifully styled. It is here mainly for test // cases, but could very easily be used, extended, modified, or copied. // // uploaderId: String // The id of the dojox.form.Uploader to connect to. uploaderId:"", // uploader: dojox.form.Uploader // The dojox.form.Uploader to connect to. Use either this property of unploaderId. This // property is populated if uploaderId is used. // uploader:null, // headerIndex: String // The label for the index column. // headerIndex:"#", // headerType: String // The label for the file type column. // headerType:"Type", // headerFilename: String // The label for the file name column. // headerFilename:"File Name", // headerFilesize: String // The label for the file size column. // headerFilesize:"Size", _upCheckCnt:0, rowAmt:0, templateString: '
' + '
0%
' + ''+ ''+ ''+ '
${headerIndex}${headerType}${headerFilename}${headerFilesize}
'+ '
'+ '
'+ '
' , postCreate: function(){ this.setUploader(); this.hideProgress(); }, reset: function(){ // summary: // Clears all rows of items. Happens automatically if Uploader is reset, but you // could call this directly. // for(var i=0;i4){ console.warn("uploader not found for ID ", this.uploaderId); return; } if(this.uploader){ this.connect(this.uploader, "onChange", "_onUploaderChange"); this.connect(this.uploader, "reset", "reset"); this.connect(this.uploader, "onBegin", function(){ this.showProgress(true); }); this.connect(this.uploader, "onProgress", "_progress"); this.connect(this.uploader, "onComplete", function(){ setTimeout(dojo.hitch(this, function(){ this.hideProgress(true); }), 1250); }); }else{ this._upCheckCnt++; setTimeout(dojo.hitch(this, "setUploader"), 250); } }, hideProgress: function(/* Boolean */animate){ var o = animate ? { ani:true, endDisp:"none", beg:15, end:0 } : { endDisp:"none", ani:false }; this._hideShowProgress(o); }, showProgress: function(/* Boolean */animate){ var o = animate ? { ani:true, endDisp:"block", beg:0, end:15 } : { endDisp:"block", ani:false }; this._hideShowProgress(o); }, _progress: function(/* Object */ customEvent){ this.percentTextNode.innerHTML = customEvent.percent; dojo.style(this.percentBarNode, "width", customEvent.percent); }, _hideShowProgress: function(o){ var node = this.progressNode; var onEnd = function(){ dojo.style(node, "display", o.endDisp); } if(o.ani){ dojo.style(node, "display", "block"); dojo.animateProperty({ node: node, properties:{ height:{ start:o.beg, end:o.end, units:"px" } }, onEnd:onEnd }).play(); }else{ onEnd(); } }, _onUploaderChange: function(fileArray){ this.reset(); dojo.forEach(fileArray, function(f, i){ this._addRow(i+1, this.getFileType(f.name), f.name, f.size); }, this) }, _addRow: function(index, type, name, size){ var c, r = this.listNode.insertRow(-1); c = r.insertCell(-1); dojo.addClass(c, "dojoxUploaderIndex"); c.innerHTML = index; c = r.insertCell(-1); dojo.addClass(c, "dojoxUploaderIcon"); c.innerHTML = type; c = r.insertCell(-1); dojo.addClass(c, "dojoxUploaderFileName"); c.innerHTML = name; c = r.insertCell(-1); dojo.addClass(c, "dojoxUploaderSize"); c.innerHTML = this.convertBytes(size).value; this.rowAmt++; } }); }