summaryrefslogtreecommitdiff
path: root/js/dojo-1.6/dojox/form/uploader/Base.xd.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/dojo-1.6/dojox/form/uploader/Base.xd.js')
-rw-r--r--js/dojo-1.6/dojox/form/uploader/Base.xd.js137
1 files changed, 137 insertions, 0 deletions
diff --git a/js/dojo-1.6/dojox/form/uploader/Base.xd.js b/js/dojo-1.6/dojox/form/uploader/Base.xd.js
new file mode 100644
index 0000000..705bd28
--- /dev/null
+++ b/js/dojo-1.6/dojox/form/uploader/Base.xd.js
@@ -0,0 +1,137 @@
+/*
+ Copyright (c) 2004-2011, 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
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["provide", "dojox.form.uploader.Base"],
+["require", "dijit._Widget"],
+["require", "dijit._Templated"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.form.uploader.Base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.form.uploader.Base"] = true;
+dojo.provide("dojox.form.uploader.Base");
+
+dojo.require("dijit._Widget");
+dojo.require("dijit._Templated");
+
+dojo.declare("dojox.form.uploader.Base", [dijit._Widget, dijit._Templated], {
+ //
+ // 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(){
+ //console.log("connectForm...", this.url, !!this.uploadUrl, !!this.getForm())
+
+ this.url = this.getUrl();
+
+ if(!this._fcon && !!this.getForm()){
+ this._fcon = true;
+ this.connect(this.form, "onsubmit", function(evt){
+ dojo.stopEvent(evt);
+ this.submit(dojo.formToObject(this.form));
+ });
+ //console.log("----------------form connected:", this.url)
+ }
+ //console.log("form:", this.form, this.url);
+ },
+
+ supports: function(what){
+ // summary:
+ // Does feature testing for uploader capabilities. (No browser sniffing - yay)
+ //
+ if(!this._hascache){
+ this._hascache = {
+ testDiv: dojo.create("div"),
+ testInput: dojo.create("input", {type:"file"}),
+ xhr:!!window.XMLHttpRequest ? new XMLHttpRequest() : {}
+ };
+ dojo.style(this._hascache.testDiv, "opacity", .7);
+ }
+ switch(what){
+ case "FormData":
+ return !!window.FormData;
+ case "sendAsBinary":
+ return !!this._hascache.xhr.sendAsBinary;
+ case "opacity":
+ return dojo.style(this._hascache.testDiv, "opacity") == .7;
+ case "multiple":
+ if(this.force == "flash" || this.force == "iframe") return false;
+ var res = dojo.attr(this._hascache.testInput, "multiple");
+ return res===true || res===false; // IE will be undefined
+ }
+ 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
+ }
+});
+
+}
+
+}};});