cancel chunked_upload changes
authorrougeronj
Fri, 30 Nov 2012 16:43:13 +0100
changeset 993 290c591457aa
parent 992 380d3657bc28
child 994 a6a37775a76d
child 1037 09d5115b977f
cancel chunked_upload changes
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html
src/ldt/ldt/static/ldt/js/projectscontents.js
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html	Fri Nov 30 16:40:26 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html	Fri Nov 30 16:43:13 2012 +0100
@@ -14,11 +14,6 @@
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery.textchange.min.js"></script>
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery-ui.min.js"></script>
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/swfupload/swfupload.js"></script>
-  
-  	<script type="text/javascript" src="{{ STATIC_URL }}chunked_uploads/js/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="{{ STATIC_URL }}chunked_uploads/js/jquery.iframe-transport.js"></script>
-	<script type="text/javascript" src="{{ STATIC_URL }}chunked_uploads/js/jquery.fileupload.js"></script>
-	<script type="text/javascript" src="{{ STATIC_URL }}chunked_uploads/js/progress.js"></script>
 	
 	{{ content_form.media.js }}
 {% endblock %}
@@ -64,7 +59,6 @@
 	<link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}css/blueprint/screen.css" type="text/css" media="screen, projection" />
 	<link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}css/blueprint/print.css" type="text/css" media="print" />
 	<link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}/css/workspace.css" type="text/css"/>
-	<link rel="stylesheet" href="{{ STATIC_URL }}chunked_uploads/css/chunked_upload.css" type="text/css"/>
 	
 	
 {% endblock %}
@@ -114,17 +108,14 @@
 		<div>{{ content_form.media_input_type.errors }}{{ content_form.media_input_type.label_tag }}{{content_form.media_input_type}}</div>
 		<div id="media_fields_div">
 			<div id="media_field_link" class="media_fields">{{ content_form.media_obj.errors }}{{ content_form.media_obj.label_tag }}{{content_form.media_obj}}</div>
-			
 			<div id="media_field_upload" class="media_fields">
-				<input type="file" id="fileupload" name="files[]" accept="video/* wmv"/>
-				<button class="Start"><span>{% trans 'Start' %}</span></button>
-				<button class="Stop"><span>{% trans 'Stop' %}</span></button>
-				<button class="cancel"><span>{% trans 'Cancel' %}</span></button>
-				<div class="bar grey stripes">
-  					<span class="progress" style="width: 0%"></span>
-				</div>
+				{{ media_form.media_file.errors }}
+				{% comment %}{{ media_form.media_file.label_tag }}{{media_form.media_file}}{% endcomment %}
+				<div id="upload_btn"></div>
+				<input type="text" name="media-local_file_name" id="id_media-local_file_name" readonly/>
+				<div id="upload_progress_bar"></div>
+				<div id="upload_progress_info"></div>
 			</div>
-			
 			<div id="media_field_url" class="media_fields">{{ media_form.external_src_url.errors }}{{ media_form.external_src_url.label_tag }}{{ media_form.external_src_url }}</div>
 			<div id="media_field_create" class="media_fields">{{ media_form.src.errors }}{{ media_form.src.label_tag }}{{ media_form.src }}</div>
 		</div>
@@ -141,6 +132,7 @@
 		{% endif %}
 	{% include "ldt/ldt_utils/partial/picture.html"%}
 	{% include "ldt/ldt_utils/partial/permissions.html" %}
+
 		
 	<div id="submitcontent" class="span-18 last">
 		<div id="submitcontent-loader" class="span-10">
--- a/src/ldt/ldt/static/ldt/js/projectscontents.js	Fri Nov 30 16:40:26 2012 +0100
+++ b/src/ldt/ldt/static/ldt/js/projectscontents.js	Fri Nov 30 16:43:13 2012 +0100
@@ -460,6 +460,81 @@
     $("#upload_progress_bar").css({ width:"90%", height:"10" });
     
     $('#media_fields_div').height(80);
+    
+    // We init the swfupload object
+    swfupload = new SWFUpload({
+        debug: false,
+        
+        upload_url: url_upload,
+        flash_url: media_prefix+"swf/swfupload.swf",
+        
+        post_params: post_added_params,
+        
+        button_placeholder_id: "upload_btn",
+        button_width: "60",
+        button_height: "16",
+        button_cursor: SWFUpload.CURSOR.HAND,
+        button_text : '<span class="btnText">' + btn_label + '</span>',
+        button_text_style : ".btnText { font-size: 12; font-family: Arial; }",
+        
+        file_types : "*.flv;*.f4v;*.mp4;*.mov;*.mp3",
+        file_types_description : "Media Files (flv, f4v, mov H264, mp4, mp3)",
+        file_upload_limit : "1",
+        file_queue_limit : "1",
+        
+        upload_error_handler : uploadError,
+        upload_start_handler : function(file) {
+            try {
+                if($('#upload_progress_info').children().size()>0){
+                    $('#progress_info').remove();
+                }
+                $('#upload_progress_info').append('<p id="progress_info"><a href="javascript:cancelSwfUpload()">' + cancel_label + '.</a></p>');
+            }
+            catch (ex) {
+                //this.debug(ex);
+            }
+        },
+        upload_progress_handler : uploadProgress,
+        upload_success_handler : function() {
+                try {
+                    if($('#upload_progress_info').children().size()>0){
+                        $('#progress_info').remove();
+                    }
+                    $('#upload_progress_info').append('<p id="progress_info">' + success_label + '.</p>');
+                    $("#upload_progress_bar > div").css({ 'background': '#90ffa8' });
+                    window.upload_from_local_done = true;
+                    // Now that the file is uploaded, we submit the form if asked
+                    if(window.submit_asked==true){
+                        $('#my_form').submit();
+                    }
+                    else{
+                        // We ask the uploaded media's duration
+                        if(window.ask_duration_url){
+                            $.ajax({
+                                type: "GET",
+                                url: window.ask_duration_url,
+                                data: "filename="+ $('#id_media-local_file_name').val(),
+                                cache: false,
+                                success: function(data, status, request){
+                                    if(data && data!=""){
+                                        $('#id_content-duration').val(data);
+                                    }
+                                }
+                            });
+                        }
+                    }
+                }
+                catch (ex) {
+                    //this.debug(ex);
+                }
+            },
+        file_queued_handler : displayUploadPath,
+        file_dialog_complete_handler: function() { 
+            window.submit_asked = false;
+            this.startUpload();
+        }
+        //upload_complete_handler: function() { this.startUpload(); },
+    });
 }
 function displayUploadPath(file) {
     try {
@@ -469,6 +544,62 @@
         //this.debug(ex);
     }
 }
+function startLocalUpload(){
+    swfupload.startUpload();
+}
+function uploadProgress(file, bytesLoaded, bytesTotal) {
+    try {
+        var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
+        $("#upload_progress_bar").progressbar({ value: percent });
+    }
+    catch (ex) {
+        //this.debug(ex);
+    }
+}
+function cancelSwfUpload(){
+    swfupload.cancelUpload();
+    if($('#media_field_upload').has($('#cancelupload')).length==0){
+        $('#cancelupload').remove();
+    }
+}
+function uploadError(file, errorCode, message) {
+    try {
+        if($('#upload_progress_info').children().size()>0){
+            $('#progress_info').remove();
+        }
+        switch (errorCode) {
+        case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
+            $('#upload_progress_info').append('<p id="progress_info">' + "Error Code: HTTP Error, File name: " + file.name + ", Message: " + message + '</p>');
+            break;
+        case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
+            $('#upload_progress_info').append('<p id="progress_info">' + "Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message + '</p>');
+            break;
+        case SWFUpload.UPLOAD_ERROR.IO_ERROR:
+            $('#upload_progress_info').append('<p id="progress_info">' + "Error Code: IO Error, File name: " + file.name + ", Message: " + message + '</p>');
+            break;
+        case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
+            $('#upload_progress_info').append('<p id="progress_info">' + "Error Code: Security Error, File name: " + file.name + ", Message: " + message + '</p>');
+            break;
+        case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
+            $('#upload_progress_info').append('<p id="progress_info">' + "Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message + '</p>');
+            break;
+        case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
+            $('#upload_progress_info').append('<p id="progress_info">' + "Error Code: File Validation Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message + '</p>');
+            break;
+        case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
+            $('#upload_progress_info').append('<p id="progress_info">' + "Error Code: FILE_CANCELLED" + '</p>');
+            break;
+        case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
+            $('#upload_progress_info').append('<p id="progress_info">' + "STOPPED" + '</p>');
+            break;
+        default:
+            $('#upload_progress_info').append('<p id="progress_info">' + "unhandled error: File name: " + file.name + ", File size: " + file.size + ", Message: " + message + '</p>');
+            break;
+        }
+    } catch (ex) {
+        //this.debug(ex);
+    }
+}
 
 // Test the value of the URL from the form to load a picture in case it is a youtube video
 function testUrlValue(e){