<%! from os import sep, path from random import randrange %> <%doc> Dec 10, 2010. This Mako junk is very unreadable. This comment marks the beginning of the deprecation of these defs and the writing of attributes on oldCoreObjects.File that replicate and improve upon their functionality. <%def name="fileView(file)"> % if file.MIMEtype in app_globals.allowedFileTypes: % if app_globals.allowedFileTypes[file.MIMEtype]: <% fileType = app_globals.allowedFileTypes[file.MIMEtype] %> % else: <% fileType = file.MIMEtype.split('/')[0] %> % endif % else: <% fileType = u'embedded media' %> % endif ${self.displayFileMetaData(file, fileType)} ${self.displayAssociatedForms(file)} ${self.displayFileButtons(file)} ${self.displayFile(file, fileType)}
<%def name="fileViewShort(file)"> % if app_globals.allowedFileTypes[file.MIMEtype]: <% fileType = app_globals.allowedFileTypes[file.MIMEtype] %> % else: <% fileType = file.MIMEtype.split('/')[0] %> % endif ${self.displayFileMetaData(file, fileType)} ${self.displayFile(file, fileType)}
<%def name="displayFileMetaData(file, fileType)"> % if file.description: % endif % if file.utteranceType: % endif % if file.speaker: % endif % if file.elicitor: % endif % if file.dateElicited: % endif
ID${file.id}
name${file.name}
type${fileType}
size${h.pretty_filesize(file.size)}
description${file.description}
utterance type${file.utteranceType}
enterer${file.enterer.firstName} ${file.enterer.lastName}
speaker${file.speaker.firstName} ${file.speaker.lastName}
elicitor${file.elicitor.firstName} ${file.elicitor.lastName}
date elicited${h.pretty_date(file.dateElicited)}
time entered${h.pretty_date(file.datetimeEntered)}
last updated${h.pretty_date(file.datetimeModified)}
<%def name="displayFileButtons(file)">
update delete associate
<%def name="displayFile(file, fileType)"> <% fileReference = url('retrieve', path=file.name) %>
% if fileType == 'image': <% self.displayImage(file, fileReference) %> % elif fileType == 'audio': <% self.displayAudio(file, fileReference) %> % elif fileType == 'video': <% self.displayVideo(file, fileReference) %> % elif fileType == 'embedded media': ## This should pass control to a def called displayEmbeddedMedia ... <% self.displayTextual(file, fileReference) %> % else: <% self.displayTextual(file, fileReference) %> % endif
<%def name="displayImage(file, fileReference)"> <% fileName = path.splitext(file.name)[0] %> <% buttonID = fileName + 'Button' %> show image <%doc> mp3 ogg wav au/snd aif/aifc/aiff Firefox (Linux, Mac)N Y Y N N Chrome (Linux) Y Y N N N Safari (Mac) Y N N Y N <%def name="displayAudio(file, fileReference)"> ${self.insertAudioJavaScript()} <% fileName = file.name.replace('.', '_') uniqueNo = str(randrange(0,1000)) uniqueFileName = fileName + uniqueNo %> play audio link to audio
<%def name="displayVideo(file, fileReference)"> video to be displayed... <%def name="displayTextual(file, fileReference)"> <% fileExtension = file.name.split('.')[-1] %> link to text <%def name="displayAssociatedForms(file)"> % for form in file.forms:
<% maxLen = 20 transcription = h.clip(form.grammaticality + form.transcription, maxLen) gloss = h.clip(form.glosses[0].glossGrammaticality + form.glosses[0].gloss, maxLen) %> Associated Form ${form.id}: ${h.storageToOutputTranslate(transcription)} ‘${h.literal(gloss)}’
disassociate view
% endfor <%def name="insertAudioJavaScript()">