module S3SwfUpload::ViewHelpers
Public Instance Methods
s3_swf_upload_tag(options = {})
click to toggle source
# File lib/s3_swf_upload/view_helpers.rb, line 3 def s3_swf_upload_tag(options = {}) buttonWidth = options[:buttonWidth] || 100 buttonHeight = options[:buttonHeight] || 30 flashVersion = options[:height] || '9.0.0' queueSizeLimit = options[:queueSizeLimit] || 100 fileSizeLimit = options[:fileSizeLimit] || 524288000 fileTypes = options[:fileTypes] || '*.*' fileTypeDescs = options[:fileTypeDescs] || 'All Files' selectMultipleFiles = options.has_key?(:selectMultipleFiles) ? options[:selectMultipleFiles] : true keyPrefix = options[:keyPrefix] || '' signaturePath = options[:signaturePath] || '/s3_uploads.xml' swfFilePath = options[:swfFilePath] || '/flash/s3_upload.swf' buttonUpPath = options[:buttonUpPath] || '/flash/s3_up_button.gif' buttonOverPath = options[:buttonOverPath] || '/flash/s3_over_button.gif' buttonDownPath = options[:buttonDownPath] || '/flash/s3_down_button.gif' onFileAdd = options[:onFileAdd] || false onFileRemove = options[:onFileRemove] || false onFileSizeLimitReached = options[:onFileSizeLimitReached] || false onFileNotInQueue = options[:onFileNotInQueue] || false onQueueChange = options[:onQueueChange] || false onQueueClear = options[:onQueueClear] || false onQueueSizeLimitReached = options[:onQueueSizeLimitReached] || false onQueueEmpty = options[:onQueueEmpty] || false onUploadingStop = options[:onUploadingStop] || false onUploadingStart = options[:onUploadingStart] || false onUploadingFinish = options[:onUploadingFinish] || false onSignatureOpen = options[:onSignatureOpen] || false onSignatureProgress = options[:onSignatureProgress] || false onSignatureHttpStatus = options[:onSignatureHttpStatus] || false onSignatureComplete = options[:onSignatureComplete] || false onSignatureSecurityError= options[:onSignatureSecurityError] || false onSignatureIOError = options[:onSignatureIOError] || false onSignatureXMLError = options[:onSignatureXMLError] || false onUploadOpen = options[:onUploadOpen] || false onUploadProgress = options[:onUploadProgress] || false onUploadHttpStatus = options[:onUploadHttpStatus] || false onUploadComplete = options[:onUploadComplete] || false onUploadIOError = options[:onUploadIOError] || false onUploadSecurityError = options[:onUploadSecurityError] || false onUploadError = options[:onUploadError] || false @include_s3_upload ||= false @count ||= 1 out = '' if Rails.version < '3.1.0' if !@include_s3_upload out << javascript_include_tag('s3_upload') @include_s3_upload = true end end out << "\n<script type=\"text/javascript\">\n" out << "var s3_swf_#{@count}_object = s3_swf_init('s3_swf_#{@count}', {\n" out << "buttonWidth: #{buttonWidth},\n" if buttonWidth out << "buttonHeight: #{buttonHeight},\n" if buttonHeight out << "flashVersion: '#{flashVersion}',\n" if flashVersion out << "queueSizeLimit: #{queueSizeLimit},\n" if queueSizeLimit out << "fileSizeLimit: #{fileSizeLimit},\n" if fileSizeLimit out << "fileTypes: '#{fileTypes}',\n" if fileTypes out << "fileTypeDescs: '#{fileTypeDescs}',\n" if fileTypeDescs out << "selectMultipleFiles: #{selectMultipleFiles.to_s},\n" out << "keyPrefix: '#{keyPrefix}',\n" if keyPrefix out << "signaturePath: '#{signaturePath}',\n" if signaturePath out << "swfFilePath: '#{swfFilePath}',\n" if swfFilePath out << "buttonUpPath: '#{buttonUpPath}',\n" if buttonUpPath out << "buttonOverPath: '#{buttonOverPath}',\n" if buttonOverPath out << "buttonDownPath: '#{buttonDownPath}',\n" if buttonDownPath out << "swfVarObj: 's3_swf_#{@count}_object',\n" out << %(onFileAdd: function(file){ #{onFileAdd} },) if onFileAdd out << %(onFileRemove: function(file){ #{onFileRemove} },) if onFileRemove out << %(onFileSizeLimitReached: function(file){ #{onFileSizeLimitReached} },) if onFileSizeLimitReached out << %(onFileNotInQueue: function(file){ #{onFileNotInQueue} },) if onFileNotInQueue out << %(onQueueChange: function(queue){ #{onQueueChange} },) if onQueueChange out << %(onQueueSizeLimitReached: function(queue){ #{onQueueSizeLimitReached} },) if onQueueSizeLimitReached out << %(onQueueEmpty: function(queue){ #{onQueueEmpty} },) if onQueueEmpty out << %(onQueueClear: function(queue){ #{onQueueClear} },) if onQueueClear out << %(onUploadingStart: function(){ #{onUploadingStart} },) if onUploadingStart out << %(onUploadingStop: function(){ #{onUploadingStop} },) if onUploadingStop out << %(onUploadingFinish: function(){ #{onUploadingFinish} },) if onUploadingFinish out << %(onSignatureOpen: function(file,event){ #{onSignatureOpen} },) if onSignatureOpen out << %(onSignatureProgress: function(file,progress_event){ #{onSignatureProgress} },) if onSignatureProgress out << %(onSignatureSecurityError: function(file,security_error_event){ #{onSignatureSecurityError} },) if onSignatureSecurityError out << %(onSignatureComplete: function(file,event){ #{onSignatureComplete} },) if onSignatureComplete out << %(onSignatureIOError: function(file,io_error_event){ #{onSignatureIOError} },) if onSignatureIOError out << %(onSignatureHttpStatus: function(file,http_status_event){ #{onSignatureHttpStatus} },) if onSignatureHttpStatus out << %(onSignatureXMLError: function(file,error_message){ #{onSignatureXMLError} },) if onSignatureXMLError out << %(onUploadError: function(upload_options,error){ #{onUploadError} },) if onUploadError out << %(onUploadOpen: function(upload_options,event){ #{onUploadOpen} },) if onUploadOpen out << %(onUploadProgress: function(upload_options,progress_event){ #{onUploadProgress} },) if onUploadProgress out << %(onUploadIOError: function(upload_options,io_error_event){ #{onUploadIOError} },) if onUploadIOError out << %(onUploadHttpStatus: function(upload_options,http_status_event){ #{onUploadHttpStatus} },) if onUploadHttpStatus out << %(onUploadSecurityError: function(upload_options,security_error_event){ #{onUploadSecurityError} },) if onUploadSecurityError out << %(onUploadComplete: function(upload_options,event){ #{onUploadComplete} },) if onUploadComplete # This closes out the object (no comma) out << "foo: 'bar'" out << "});\n" out << "</script>\n" out << "<div id=\"s3_swf_#{@count}\">\n" out << "Please <a href=\"http://www.adobe.com/go/getflashplayer\">Update</a> your Flash Player to Flash v#{flashVersion} or higher...\n" out << "</div>\n" @count += 1 out end