[pLog-svn] r6190 - in plog/trunk: js/ui templates/admin
mark at devel.lifetype.net
mark at devel.lifetype.net
Wed Feb 27 05:24:24 EST 2008
Author: mark
Date: 2008-02-27 05:24:24 -0500 (Wed, 27 Feb 2008)
New Revision: 6190
Modified:
plog/trunk/js/ui/upload.js
plog/trunk/templates/admin/edittemplate.template
plog/trunk/templates/admin/newtemplatefile_form.template
Log:
It is a quite big change.
I need to modify the upload.js to follow the new event model of SWFupload 2.0.2.
Modified: plog/trunk/js/ui/upload.js
===================================================================
--- plog/trunk/js/ui/upload.js 2008-02-27 08:00:18 UTC (rev 6189)
+++ plog/trunk/js/ui/upload.js 2008-02-27 10:24:24 UTC (rev 6190)
@@ -36,42 +36,40 @@
{
Lifetype.UI.Upload.swfu = new SWFUpload({
// Backend settings
- upload_target_url: params.url, // Relative to the SWF file
+ upload_url: params.url, // Relative to the SWF file
file_post_name: params.fieldName,
// Flash file settings
file_size_limit : (params.fileSizeLimit / 1024 ),
- file_types : "*.*", // or you could use something like: "*.doc;*.wpd;*.pdf",
- file_types_description : "All Files",
- //file_upload_limit : "1",
- begin_upload_on_queue : false,
- use_server_data_event : true,
- validate_files: true,
+ file_types : params.validFiles, // or you could use something like: "*.doc;*.wpd;*.pdf",
+ file_types_description : "Template Files",
// Event handler settings
file_queued_handler: Lifetype.UI.Upload.fileQueued,
- file_progress_handler : Lifetype.UI.Upload.uploadProgress,
- file_complete_handler : Lifetype.UI.Upload.uploadFileComplete,
- queue_complete_handler : Lifetype.UI.Upload.uploadQueueComplete,
- error_handler : Lifetype.UI.Upload.uploadError,
- file_validation_handler : Lifetype.UI.Upload.fileValidator,
+ file_queue_error_handler: Lifetype.UI.Upload.fileQueueError,
+ // Upload handler settings
+ upload_progress_handler : Lifetype.UI.Upload.uploadProgress,
+ upload_success_handler : Lifetype.UI.Upload.uploadSuccess,
+ upload_error_handler : Lifetype.UI.Upload.uploadError,
+
+ // Queue handler settings
+ upload_complete_handler : Lifetype.UI.Upload.uploadComplete,
+
// Flash Settings
- flash_url : Lifetype.Config.getValue( "base_url") + "/flash/swfupload/swfupload-r6.2.swf", // Relative to this file
+ flash_url : Lifetype.Config.getValue( "base_url") + "/flash/swfupload/swfupload_f9.swf", // Relative to this file
+ // Graceful Degradation settings
+ swfupload_element_id : params.swfuploadElement,
+ degraded_element_id : params.degradedElement,
+
// UI settings
- ui_function: Lifetype.UI.Upload.showUI,
- ui_container_id : params.container,
- degraded_container_id : "degradedUI",
+ swfupload_loaded_handler: Lifetype.UI.Upload.showUI,
// Debug settings
debug: false
});
- // This is a setting that my Handlers will use. It's not part of SWFUpload
- // But I can add it to the SWFUpload object and then use it where I need to
- Lifetype.UI.Upload.swfu.addSetting("progress_target", "fsUploadProgress");
-
// reset the counter
Lifetype.UI.Upload.totalSize = 0;
@@ -87,7 +85,7 @@
// place our 'browse...' link
var browseLink = document.createElement( 'a' );
browseLink.href = '#';
- browseLink.onclick = Lifetype.UI.Upload.browse;
+ browseLink.onclick = Lifetype.UI.Upload.selectFiles;
browseLink.appendChild( document.createTextNode( tr("browse" )));
// place our container for the queue
@@ -97,7 +95,7 @@
queueContainer.appendChild( ul );
// append all the elements to the main container
- var container = Lifetype.Dom.$( Lifetype.UI.Upload.params.container );
+ var container = Lifetype.Dom.$( Lifetype.UI.Upload.params.swfuploadElement );
container.appendChild( browseLink );
container.appendChild( queueContainer );
@@ -108,22 +106,12 @@
upload.type = 'button';
upload.name = btn.name;
upload.value = btn.value;
- upload.onclick = Lifetype.UI.Upload.uploadQueue;
+ upload.onclick = Lifetype.UI.Upload.startUpload;
upload.className = btn.className;
btn.parentNode.replaceChild( upload, btn );
-
- this.showUI(); // Let SWFUpload finish loading the UI.
}
/**
- * Validates file names against the given pattern
- */
-Lifetype.UI.Upload.fileValidator = function( file )
-{
- return( true );
-}
-
-/**
* Queue a new file
*/
Lifetype.UI.Upload.fileQueued = function( file, queuelength )
@@ -141,11 +129,6 @@
listingfiles.appendChild(li);
- var queueinfo = document.getElementById("queueinfo");
- queueinfo.innerHTML = queuelength + " files queued";
- document.getElementById(Lifetype.UI.Upload.swfu.movieName + "UploadBtn").style.display = "block";
- document.getElementById("cancelqueuebtn").style.display = "block";
-
// increase the total size
Lifetype.UI.Upload.totalSize += file.size;
}
@@ -166,7 +149,7 @@
/**
* Starts the upload process
*/
-Lifetype.UI.Upload.uploadQueue = function()
+Lifetype.UI.Upload.startUpload = function()
{
Lifetype.UI.Upload.swfu.startUpload();
}
@@ -174,9 +157,9 @@
/**
* Show the browse dialog
*/
-Lifetype.UI.Upload.browse = function()
+Lifetype.UI.Upload.selectFiles = function()
{
- Lifetype.UI.Upload.swfu.browse();
+ Lifetype.UI.Upload.swfu.selectFiles();
}
/**
@@ -188,81 +171,73 @@
*
* :TODO: this needs to be improved
*/
-Lifetype.UI.Upload.uploadError = function(error_code, fileObj, message)
+Lifetype.UI.Upload.uploadError = function(file, error_code, message)
{
- var file = fileObj;
switch(error_code) {
- case SWFUpload.ERROR_CODE_QUEUE_LIMIT_EXCEEDED:
- alert( tr( 'swfu_error_queue_limit_exceeded' ));
- return;
+ case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
+ Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_http_error' ));
break;
- case SWFUpload.ERROR_CODE_MISSING_UPLOAD_TARGET:
- alert( tr( 'swfu_error_configuration_error' ));
- this.debugMessage("Error Code: No backend file, File name: " + file.name + ", Message: " + message);
- return;
+ case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
+ Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_missing_upload_failed' ));
break;
- case SWFUpload.ERROR_CODE_FILE_EXCEEDS_SIZE_LIMIT:
- alert( pr( 'swfu_error_file_too_big', Lifetype.UI.Misc.nicerFileSize( Lifetype.UI.Upload.swfu.getSetting( 'file_size_limit' ) * 1024 )));
- this.debugMessage("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- return;
+ case SWFUpload.UPLOAD_ERROR.IO_ERROR:
+ Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_io_error' ));
break;
- case SWFUpload.ERROR_CODE_ZERO_BYTE_FILE:
- alert( tr( 'swfu_error_empty_file' ));
- this.debugMessage("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- return;
+ case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
+ Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_security_error' ));
break;
- case SWFUpload.ERROR_CODE_UPLOAD_LIMIT_EXCEEDED:
- alert( tr( 'swfu_error_upload_limit_exceeded' ));
- this.debugMessage("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- return;
+ case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
+ Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_upload_limit_exceeded' ));
break;
- case SWFUpload.ERROR_CODE_INVALID_FILETYPE:
- alert( tr( 'swfu_error_invalid_filetype' ));
- this.debugMessage("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- return;
+ case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
+ Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_upload_failed' ));
break;
- case SWFUpload.ERROR_CODE_HTTP_ERROR:
- //alert( pr( 'swfu_error_http_error', file.name ));
- Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_http_error' ));
- this.debugMessage("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
+ case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:
+ Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_specified_fiel_id_not_found' ));
break;
- case SWFUpload.ERROR_CODE_UPLOAD_FAILED:
- //alert( pr( 'swfu_error_upload_failed', file.name ));
- Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_upload_failed' ));
- this.debugMessage("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
+ case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
+ Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_file_validation_failed' ));
break;
- case SWFUpload.ERROR_CODE_IO_ERROR:
- //alert( pr( 'swfu_error_server_error', file.name ));
- Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_server_error' ));
- this.debugMessage("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
+ case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
+ Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_file_cacnelled' ));
break;
- case SWFUpload.ERROR_CODE_SECURITY_ERROR:
- //alert( pr( 'swfu_error_security', file.name ));
- Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_security' ));
- this.debugMessage("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
+ case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
+ Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_upload_stopped' ));
break;
default:
- //alert( pr( 'swfu_error_generic', file.name ));
Lifetype.UI.Upload._setFileError( file, tr( 'swfu_error_generic' ));
- this.debugMessage("Error Code: " + error_code + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
- return;
break;
}
}
/**
- * @param file
- * @param position
- * @param queuelength
+ * Error handler
+ *
+ * @param error_code
+ * @param fileObj
+ * @param message
+ *
+ * :TODO: this needs to be improved
*/
-Lifetype.UI.Upload.uploadFileStart = function(file, position, queuelength)
+Lifetype.UI.Upload.fileQueueError = function(file, error_code, message)
{
- var li = document.getElementById(file.id);
- li.className += " fileUploading";
-
- // hide the cancel button, we don't allow to cancel at this point anymore
- var cancelButton = Lifetype.Dom.$( 'deletebtn' );
- cancelButton.style.display = 'none';
+ switch(error_code) {
+ case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
+ alert(file.name+': '+tr( 'swfu_error_queue_limit_exceeded' ));
+ break;
+ case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
+ alert(file.name+': '+tr( 'swfu_error_file_exceeds_size_limit' ));
+ break;
+ case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
+ alert(file.name+': '+tr( 'swfu_error_zero_byte_file' ));
+ break;
+ case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
+ alert(file.name+': '+tr( 'swfu_error_invalid_filetype' ));
+ break;
+ default:
+ alert(file.name+': '+tr( 'swfu_error_generic' ));
+ break;
+ }
}
/**
@@ -300,7 +275,7 @@
* @param serverData If use_server_data_event is set to 'true', this will contain
* the output that was returned by the server
*/
-Lifetype.UI.Upload.uploadFileComplete = function( file, serverData )
+Lifetype.UI.Upload.uploadSuccess = function( file, serverData )
{
// if the file was loaded in one go, uploadProgress will not be called,
// so we need to make sure that we fill the progress bar completely to
@@ -364,8 +339,10 @@
/**
* Event generated when the whole queue has been uploaded
*/
-Lifetype.UI.Upload.uploadQueueComplete = function()
+Lifetype.UI.Upload.uploadComplete = function()
{
// notify other code that the queue has been completely uploaded
- Lifetype.UI.Upload.Events.allFilesUploaded.fire( { upload:Lifetype.UI.Upload.swfu } );
+ var stats = Lifetype.UI.Upload.swfu.getStats();
+ if( stats.files_queued == 0 )
+ Lifetype.UI.Upload.Events.allFilesUploaded.fire( { upload:Lifetype.UI.Upload.swfu } );
}
\ No newline at end of file
Modified: plog/trunk/templates/admin/edittemplate.template
===================================================================
--- plog/trunk/templates/admin/edittemplate.template 2008-02-27 08:00:18 UTC (rev 6189)
+++ plog/trunk/templates/admin/edittemplate.template 2008-02-27 10:24:24 UTC (rev 6190)
@@ -3,7 +3,9 @@
<link rel="stylesheet" href="js/editor/lifetypeeditor.css" type="text/css" />
<link rel="stylesheet" href="js/ui/assets/upload/upload.css" type="text/css" />
{js src="js/editor/lifetypeeditor.js"}
-{js src="js/swfupload/swfupload-r6.2.js"}
+{js src="js/swfupload/swfupload.js"}
+{js src="js/swfupload/plugins/swfupload.graceful_degradation.js"}
+{js src="js/swfupload/plugins/swfupload.queue.js"}
{js src="js/ui/upload.js"}
{js src="js/ui/pages/templateeditor.js"}
{check_perms adminperm=add_template}
Modified: plog/trunk/templates/admin/newtemplatefile_form.template
===================================================================
--- plog/trunk/templates/admin/newtemplatefile_form.template 2008-02-27 08:00:18 UTC (rev 6189)
+++ plog/trunk/templates/admin/newtemplatefile_form.template 2008-02-27 10:24:24 UTC (rev 6190)
@@ -11,13 +11,16 @@
</div>
{** container for the flash-based uploader **}
<div id="flashUI" style="display: none;">
+ {eval var=$smarty.cookies.$session assign=sessionId}
<script type="text/javascript">
Lifetype.UI.Upload.init( {literal}{{/literal}
- container:'flashUI',
- fieldName:'templateFile',
+ swfuploadElement:'flashUI',
+ degradedElement:'degradedUI',
+ fieldName:'templateFile',
uploadButton:'addFile',
fileSizeLimit: {$config->getValue("maximum_file_upload_size")},
- validFiles: '{$config->getValue("template_editor_editable_extensions")}', url:'{$url->getAdminUrl()}?op=uploadTemplateFile&path='+Lifetype.Dom.$('currentPath').value+'&output=flash&templateId='+Lifetype.Dom.$('templateId').value+'&{$session}={$smarty.cookies.LThttplocalhosttrunk}'{literal}}{/literal});
+ validFiles: '{$config->getValue("template_editor_editable_extensions")}',
+ url:'{$url->getAdminUrl()}?op=uploadTemplateFile&path='+Lifetype.Dom.$('currentPath').value+'&output=flash&templateId='+Lifetype.Dom.$('templateId').value+'&{$session}={$sessionId}'{literal}}{/literal});
</script>
</div>
</div>
More information about the pLog-svn
mailing list