← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 3638: jQuery commons lib - Removed ajaxfileupload.js and replaced by jquery.upload-1.0.2.js

 

------------------------------------------------------------
revno: 3638
committer: Hieu <hieu.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2011-05-17 15:40:25 +0700
message:
  jQuery commons lib - Removed ajaxfileupload.js and replaced by jquery.upload-1.0.2.js
removed:
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/ajaxfileupload.js
added:
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/jQuery/jquery.upload-1.0.2.js


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== removed file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/ajaxfileupload.js'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/ajaxfileupload.js	2010-11-16 07:37:56 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/ajaxfileupload.js	1970-01-01 00:00:00 +0000
@@ -1,201 +0,0 @@
-
-jQuery.extend({
-	
-
-    createUploadIframe: function(id, uri)
-	{
-			//create frame
-            var frameId = 'jUploadFrame' + id;
-            
-            if(window.ActiveXObject) {
-                var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
-                if(typeof uri== 'boolean'){
-                    io.src = 'javascript:false';
-                }
-                else if(typeof uri== 'string'){
-                    io.src = uri;
-                }
-            }
-            else {
-                var io = document.createElement('iframe');
-                io.id = frameId;
-                io.name = frameId;
-            }
-            io.style.position = 'absolute';
-            io.style.top = '-1000px';
-            io.style.left = '-1000px';
-
-            document.body.appendChild(io);
-
-            return io			
-    },
-    createUploadForm: function(id, fileElementId)
-	{
-		//create form	
-		var formId = 'jUploadForm' + id;
-		var fileId = 'jUploadFile' + id;
-		var form = $('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');	
-		var oldElement = $('#' + fileElementId);
-		var newElement = $(oldElement).clone();
-		$(oldElement).attr('id', fileId);
-		$(oldElement).before(newElement);
-		$(oldElement).appendTo(form);
-		//set attributes
-		$(form).css('position', 'absolute');
-		$(form).css('top', '-1200px');
-		$(form).css('left', '-1200px');
-		$(form).appendTo('body');		
-		return form;
-    },
-
-    ajaxFileUpload: function(s) {
-        // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout		
-        s = jQuery.extend({}, jQuery.ajaxSettings, s);
-        var id = new Date().getTime()        
-		var form = jQuery.createUploadForm(id, s.fileElementId);
-		var io = jQuery.createUploadIframe(id, s.secureuri);
-		var frameId = 'jUploadFrame' + id;
-		var formId = 'jUploadForm' + id;		
-        // Watch for a new set of requests
-        if ( s.global && ! jQuery.active++ )
-		{
-			jQuery.event.trigger( "ajaxStart" );
-		}            
-        var requestDone = false;
-        // Create the request object
-        var xml = {}   
-        if ( s.global )
-            jQuery.event.trigger("ajaxSend", [xml, s]);
-        // Wait for a response to come back
-        var uploadCallback = function(isTimeout)
-		{			
-			var io = document.getElementById(frameId);
-            try 
-			{				
-				if(io.contentWindow)
-				{
-					 xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
-                	 xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
-					 
-				}else if(io.contentDocument)
-				{
-					 xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
-                	xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
-				}						
-            }catch(e)
-			{
-				jQuery.handleError(s, xml, null, e);
-			}
-            if ( xml || isTimeout == "timeout") 
-			{				
-                requestDone = true;
-                var status;
-                try {
-                    status = isTimeout != "timeout" ? "success" : "error";
-                    // Make sure that the request was successful or notmodified
-                    if ( status != "error" )
-					{
-                        // process the data (runs the xml through httpData regardless of callback)
-                        var data = jQuery.uploadHttpData( xml, s.dataType );    
-                        // If a local callback was specified, fire it and pass it the data
-                        if ( s.success )
-                            s.success( data, status );
-    
-                        // Fire the global callback
-                        if( s.global )
-                            jQuery.event.trigger( "ajaxSuccess", [xml, s] );
-                    } else
-                        jQuery.handleError(s, xml, status);
-                } catch(e) 
-				{
-                    status = "error";
-                    jQuery.handleError(s, xml, status, e);
-                }
-
-                // The request was completed
-                if( s.global )
-                    jQuery.event.trigger( "ajaxComplete", [xml, s] );
-
-                // Handle the global AJAX counter
-                if ( s.global && ! --jQuery.active )
-                    jQuery.event.trigger( "ajaxStop" );
-
-                // Process result
-                if ( s.complete )
-                    s.complete(xml, status);
-
-                jQuery(io).unbind()
-
-                setTimeout(function()
-									{	try 
-										{
-											$(io).remove();
-											$(form).remove();	
-											
-										} catch(e) 
-										{
-											jQuery.handleError(s, xml, null, e);
-										}									
-
-									}, 100)
-
-                xml = null
-
-            }
-        }
-        // Timeout checker
-        if ( s.timeout > 0 ) 
-		{
-            setTimeout(function(){
-                // Check to see if the request is still happening
-                if( !requestDone ) uploadCallback( "timeout" );
-            }, s.timeout);
-        }
-        try 
-		{
-           // var io = $('#' + frameId);
-			var form = $('#' + formId);
-			$(form).attr('action', s.url);
-			$(form).attr('method', 'POST');
-			$(form).attr('target', frameId);
-            if(form.encoding)
-			{
-                form.encoding = 'multipart/form-data';				
-            }
-            else
-			{				
-                form.enctype = 'multipart/form-data';
-            }			
-            $(form).submit();
-
-        } catch(e) 
-		{			
-            jQuery.handleError(s, xml, null, e);
-        }
-        if(window.attachEvent){
-            document.getElementById(frameId).attachEvent('onload', uploadCallback);
-        }
-        else{
-            document.getElementById(frameId).addEventListener('load', uploadCallback, false);
-        } 		
-        return {abort: function () {}};	
-
-    },
-
-    uploadHttpData: function( r, type ) {
-        var data = !type;
-        data = type == "xml" || data ? r.responseXML : r.responseText;
-        // If the type is "script", eval it in global context
-        if ( type == "script" )
-            jQuery.globalEval( data );
-        // Get the JavaScript object, if JSON is used.
-        if ( type == "json" )
-            eval( "data = " + data );
-        // evaluate scripts within html
-        if ( type == "html" )
-            jQuery("<div>").html(data).evalScripts();
-			//alert($('param', data).each(function(){alert($(this).attr('value'));}));
-        return data;
-    }
-})
-

=== added file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/jQuery/jquery.upload-1.0.2.js'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/jQuery/jquery.upload-1.0.2.js	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/jQuery/jquery.upload-1.0.2.js	2011-05-17 08:40:25 +0000
@@ -0,0 +1,134 @@
+/*
+ * jQuery.upload v1.0.2
+ *
+ * Copyright (c) 2010 lagos
+ * Dual licensed under the MIT and GPL licenses.
+ *
+ * http://lagoscript.org
+ */
+(function($) {
+
+	var uuid = 0;
+
+	$.fn.upload = function(url, data, callback, type) {
+		var self = this, inputs, checkbox, checked,
+			iframeName = 'jquery_upload' + ++uuid,
+			iframe = $('<iframe name="' + iframeName + '" style="position:absolute;top:-9999px" />').appendTo('body'),
+			form = '<form target="' + iframeName + '" method="post" enctype="multipart/form-data" />';
+
+		if ($.isFunction(data)) {
+			type = callback;
+			callback = data;
+			data = {};
+		}
+
+		checkbox = $('input:checkbox', this);
+		checked = $('input:checked', this);
+		form = self.wrapAll(form).parent('form').attr('action', url);
+
+		// Make sure radios and checkboxes keep original values
+		// (IE resets checkd attributes when appending)
+		checkbox.removeAttr('checked');
+		checked.attr('checked', true);
+
+		inputs = createInputs(data);
+		inputs = inputs ? $(inputs).appendTo(form) : null;
+
+		form.submit(function() {
+			iframe.load(function() {
+				var data = handleData(this, type),
+					checked = $('input:checked', self);
+
+				form.after(self).remove();
+				checkbox.removeAttr('checked');
+				checked.attr('checked', true);
+				if (inputs) {
+					inputs.remove();
+				}
+
+				setTimeout(function() {
+					iframe.remove();
+					if (type === 'script') {
+						$.globalEval(data);
+					}
+					if (callback) {
+						callback.call(self, data);
+					}
+				}, 0);
+			});
+		}).submit();
+
+		return this;
+	};
+
+	function createInputs(data) {
+		return $.map(param(data), function(param) {
+			return '<input type="hidden" name="' + param.name + '" value="' + param.value + '"/>';
+		}).join('');
+	}
+
+	function param(data) {
+		if ($.isArray(data)) {
+			return data;
+		}
+		var params = [];
+
+		function add(name, value) {
+			params.push({name:name, value:value});
+		}
+
+		if (typeof data === 'object') {
+			$.each(data, function(name) {
+				if ($.isArray(this)) {
+					$.each(this, function() {
+						add(name, this);
+					});
+				} else {
+					add(name, $.isFunction(this) ? this() : this);
+				}
+			});
+		} else if (typeof data === 'string') {
+			$.each(data.split('&'), function() {
+				var param = $.map(this.split('='), function(v) {
+					return decodeURIComponent(v.replace(/\+/g, ' '));
+				});
+
+				add(param[0], param[1]);
+			});
+		}
+
+		return params;
+	}
+
+	function handleData(iframe, type) {
+		var data, contents = $(iframe).contents().get(0);
+
+		if ($.isXMLDoc(contents) || contents.XMLDocument) {
+			return contents.XMLDocument || contents;
+		}
+		data = $(contents).find('body').html();
+
+		switch (type) {
+			case 'xml':
+				data = parseXml(data);
+				break;
+			case 'json':
+				//data = window.eval('(' + data + ')');
+				data = jQuery.parseJSON( data );
+				break;
+		}
+		return data;
+	}
+
+	function parseXml(text) {
+		if (window.DOMParser) {
+			return new DOMParser().parseFromString(text, 'application/xml');
+		} else {
+			var xml = new ActiveXObject('Microsoft.XMLDOM');
+			xml.async = false;
+			xml.loadXML(text);
+			return xml;
+		}
+	}
+
+})(jQuery);
\ No newline at end of file