diff options
Diffstat (limited to 'js/dojo-1.7.2/dojox/form/uploader/Base.js')
| -rw-r--r-- | js/dojo-1.7.2/dojox/form/uploader/Base.js | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/js/dojo-1.7.2/dojox/form/uploader/Base.js b/js/dojo-1.7.2/dojox/form/uploader/Base.js new file mode 100644 index 0000000..4587c76 --- /dev/null +++ b/js/dojo-1.7.2/dojox/form/uploader/Base.js @@ -0,0 +1,126 @@ +//>>built +define("dojox/form/uploader/Base", [ + "dojo/dom-form", + "dojo/dom-style", + "dojo/dom-construct", + "dojo/dom-attr", + "dojo/has", + "dojo/_base/declare", + "dojo/_base/event", + "dijit/_Widget", + "dijit/_TemplatedMixin", + "dijit/_WidgetsInTemplateMixin" +],function(domForm, domStyle, domConstruct, domAttr, has, declare, event, Widget, TemplatedMixin, WidgetsInTemplateMixin){ + +has.add('FormData', function(){return !!window.FormData;}); +has.add("xhr-sendAsBinary", function(){var xhr=window.XMLHttpRequest && new window.XMLHttpRequest(); return xhr && !!xhr.sendAsBinary;}); +has.add("file-multiple", function(){return !!({'true':1,'false':1}[domAttr.get(document.createElement('input',{type:"file"}), 'multiple')]);}); + + /*===== + Widget = dijit._Widget; + TemplatedMixin = dijit._TemplatedMixin; + WidgetsInTemplateMixin = dijit._WidgetsInTemplateMixin; + =====*/ +return declare("dojox.form.uploader.Base", [Widget, TemplatedMixin, WidgetsInTemplateMixin], { + // + // Version: 1.6 + // + // summary: + // The Base class used for dojox.form.Uploader and dojox.form.uploader.FileList. + // + // description: + // Should not be used as a standalone. To be mixed in with other classes. + // + + getForm: function(){ + // summary: + // Finds the parent form of the Uploader, if it exists. + // + if(!this.form){ + var n = this.domNode; + while(n && n.tagName && n !== document.body){ + if(n.tagName.toLowerCase() == "form"){ + this.form = n; + break; + } + n = n.parentNode; + } + } + return this.form // Node; + }, + + getUrl: function(){ + // summary: + // Finds the URL to upload to, whether it be the action in the parent form, this.url or + // this.uploadUrl + // + if(this.uploadUrl) this.url = this.uploadUrl; + if(this.url) return this.url; + if(this.getForm()) this.url = this.form.action; + return this.url; // String + }, + + + connectForm: function(){ + // summary: + // Internal. Connects to form if there is one. + // + this.url = this.getUrl(); + if(!this._fcon && !!this.getForm()){ + this._fcon = true; + this.connect(this.form, "onsubmit", function(evt){ + event.stop(evt); + this.submit(this.form); + }); + } + }, + + supports: function(what){ + // summary: + // Does feature testing for uploader capabilities. (No browser sniffing - yay) + // + switch(what){ + case "multiple": + if(this.force == "flash" || this.force == "iframe") return false; + return has("file-multiple"); + case "FormData": + return has(what); + case "sendAsBinary": + return has("xhr-sendAsBinary"); + } + return false; // Boolean + }, + getMimeType: function(){ + // summary: + // Returns the mime type that should be used in an HTML5 upload form. Return result + // may change as the current use is very generic. + // + return "application/octet-stream"; //image/gif + }, + getFileType: function(/* String */name){ + // summary: + // Gets the extension of a file + return name.substring(name.lastIndexOf(".")+1).toUpperCase(); // String + }, + convertBytes: function(bytes){ + // summary: + // Converts bytes. Returns an object with all conversions. The "value" property is + // considered the most likely desired result. + // + var kb = Math.round(bytes/1024*100000)/100000; + var mb = Math.round(bytes/1048576*100000)/100000; + var gb = Math.round(bytes/1073741824*100000)/100000; + var value = bytes; + if(kb>1) value = kb.toFixed(1)+" kb"; + if(mb>1) value = mb.toFixed(1)+" mb"; + if(gb>1) value = gb.toFixed(1)+" gb"; + return { + kb:kb, + mb:mb, + gb:gb, + bytes:bytes, + value: value + }; // Object + } +}); +}); |
