Test coverage for vnccollab.theme.browser.wizarduploader
1: from Acquisition import aq_inner
1: from Products.CMFCore.utils import getToolByName
1: from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
1: from Products.ATContentTypes.interfaces import IImageContent
1: from collective.quickupload import siteMessageFactory as _
1: from collective.quickupload.browser.quick_upload import QuickUploadView, \
QuickUploadInit, _listTypesForInterface
2: class WizardUploadView(QuickUploadView):
""" The Wizard Upload View
1: """
1: template = ViewPageTemplateFile("templates/wizard_upload.pt")
1: def script_content(self) :
1: context = aq_inner(self.context)
1: return context.unrestrictedTraverse('@@wizard_upload_init')(for_id = self.uploader_id)
XHR_UPLOAD_JS = """
var fillTitles = %(ul_fill_titles)s;
var fillDescriptions = %(ul_fill_descriptions)s;
var auto = %(ul_auto_upload)s;
addUploadFields_%(ul_id)s = function(file, id) {
var uploader = xhr_%(ul_id)s;
WizardUpload.addUploadFields(uploader, uploader._element, file, id, fillTitles, fillDescriptions);
}
wizardUpload_NextStep_%(ul_id)s = function() {
var uploader = xhr_%(ul_id)s;
WizardUpload.wizardUpload_NextStep(uploader, 'xhr_%(ul_id)s');
}
sendDataAndUpload_%(ul_id)s = function(action) {
var uploader = xhr_%(ul_id)s;
WizardUpload.sendDataAndUpload(uploader, action); //, '%(typeupload)s');
}
clearQueue_%(ul_id)s = function() {
var uploader = xhr_%(ul_id)s;
WizardUpload.clearQueue(uploader, uploader._element);
}
onUploadComplete_%(ul_id)s = function(id, fileName, responseJSON) {
var uploader = xhr_%(ul_id)s;
WizardUpload.onUploadComplete(uploader, uploader._element, id, fileName, responseJSON);
}
createUploader_%(ul_id)s= function(){
xhr_%(ul_id)s = new wizard_qq.WizardFileUploader({
element: jQuery('#%(ul_id)s')[0],
action: '%(context_url)s/@@quick_upload_file',
autoUpload: auto,
onAfterSelect: addUploadFields_%(ul_id)s,
onComplete: onUploadComplete_%(ul_id)s,
allowedExtensions: %(ul_file_extensions_list)s,
sizeLimit: %(ul_xhr_size_limit)s,
simUploadLimit: %(ul_sim_upload_limit)s,
template: '<div class="wizard_qq-uploader">' +
'<div class="wizard_qq-upload-button"></div>' +
'<ul class="wizard_qq-upload-list"></ul>' +
'</div>',
fileTemplate: '<li>' +
'<a class="wizard_qq-upload-cancel" href="#"> </a>' +
'<div class="wizard_qq-upload-infos"><span class="wizard_qq-upload-file"></span>' +
'<span class="wizard_qq-upload-spinner"></span>' +
'<span class="wizard_qq-upload-failed-text">%(ul_msg_failed)s</span></div>' +
'<div class="wizard_qq-upload-size"></div>' +
'</li>',
messages: {
serverError: "%(ul_error_server)s",
serverErrorAlreadyExists: "%(ul_error_already_exists)s {file}",
serverErrorZODBConflict: "%(ul_error_zodb_conflict)s {file}, %(ul_error_try_again)s",
serverErrorNoPermission: "%(ul_error_no_permission)s",
serverErrorDisallowedType: "%(ul_error_disallowed_type)s",
typeError: "%(ul_error_bad_ext)s {file}. %(ul_error_onlyallowed)s {extensions}.",
sizeError: "%(ul_error_file_large)s {file}, %(ul_error_maxsize_is)s {sizeLimit}.",
emptyError: "%(ul_error_empty_file)s {file}, %(ul_error_try_again_wo)s",
missingExtension: "%(ul_error_empty_extension)s {file}"
}
});
}
jQuery(document).ready(createUploader_%(ul_id)s);
1: """
2: class WizardUploadInit(QuickUploadInit):
""" Initialize uploadify js
1: """
1: def __call__(self, for_id="uploader"):
3: self.uploader_id = for_id
3: settings = self.upload_settings()
3: if self.qup_prefs.use_flashupload or self.use_flash_as_fallback():
>>>>>> return FLASH_UPLOAD_JS % settings
3: return XHR_UPLOAD_JS % settings
1: def upload_settings(self):
5: context = aq_inner(self.context)
5: request = self.request
5: try:
5: session = request.get('SESSION', {})
5: mediaupload = session.get('mediaupload',
5: request.get('mediaupload', ''))
5: typeupload = session.get('typeupload',
5: request.get('typeupload', ''))
>>>>>> except SessionDataManagerErr:
>>>>>> logger.debug('Error occurred getting session data. Falling back to '
'request.')
>>>>>> mediaupload = request.get('mediaupload', '')
>>>>>> typeupload = request.get('typeupload', '')
5: portal_url = getToolByName(context, 'portal_url')()
5: settings = dict(
5: portal_url = portal_url,
5: typeupload = '',
5: context_url = context.absolute_url(),
5: physical_path = "/".join(context.getPhysicalPath()),
5: ul_id = self.uploader_id,
5: ul_fill_titles = self.qup_prefs.fill_titles and 'true' or 'false',
5: ul_fill_descriptions = self.qup_prefs.fill_descriptions and 'true' or 'false',
5: ul_auto_upload = self.qup_prefs.auto_upload and 'true' or 'false',
5: ul_size_limit = self.qup_prefs.size_limit and str(self.qup_prefs.size_limit*1024) or '',
5: ul_xhr_size_limit = self.qup_prefs.size_limit and str(self.qup_prefs.size_limit*1024) or '0',
5: ul_sim_upload_limit = str(self.qup_prefs.sim_upload_limit),
5: ul_button_text = self._translate(_(u'Browse')),
5: ul_draganddrop_text = self._translate(_(u'Drag and drop files to upload')),
5: ul_msg_all_sucess = self._translate(_(u'All files uploaded with success.')),
5: ul_msg_some_sucess = self._translate(_(u' files uploaded with success, ')),
5: ul_msg_some_errors = self._translate(_(u" uploads return an error.")),
5: ul_msg_failed = self._translate(_(u"Failed")),
5: ul_error_try_again_wo = self._translate(_(u"please select files again without it.")),
5: ul_error_try_again = self._translate(_(u"please try again.")),
5: ul_error_empty_file = self._translate(_(u"Selected elements contain an empty file or a folder:")),
5: ul_error_empty_extension = self._translate(_(u"This file has no extension:")),
5: ul_error_file_large = self._translate(_(u"This file is too large:")),
5: ul_error_maxsize_is = self._translate(_(u"maximum file size is:")),
5: ul_error_bad_ext = self._translate(_(u"This file has invalid extension:")),
5: ul_error_onlyallowed = self._translate(_(u"Only allowed:")),
5: ul_error_no_permission = self._translate(_(u"You don't have permission to add this content in this place.")),
5: ul_error_disallowed_type = self._translate(_(u"This type of element is not allowed in this folder.",)),
5: ul_error_already_exists = self._translate(_(u"This file already exists with the same name on server:")),
5: ul_error_zodb_conflict = self._translate(_(u"A data base conflict error happened when uploading this file:")),
5: ul_error_server = self._translate(_(u"Server error, please contact support and/or try again.")),
)
5: settings['typeupload'] = typeupload
5: if typeupload :
2: imageTypes = _listTypesForInterface(context, IImageContent)
2: if typeupload in imageTypes :
2: ul_content_types_infos = self.ul_content_types_infos('image')
else :
>>>>>> ul_content_types_infos = self.ul_content_types_infos(mediaupload)
else :
3: ul_content_types_infos = self.ul_content_types_infos(mediaupload)
5: settings['ul_file_extensions'] = ul_content_types_infos[0]
5: settings['ul_file_extensions_list'] = str(ul_content_types_infos[1])
5: settings['ul_file_description'] = ul_content_types_infos[2]
5: return settings