%!
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.
%doc>
<%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>
<%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>
<%def name="displayFileMetaData(file, fileType)">
ID | ${file.id} |
name | ${file.name} |
type | ${fileType} |
size | ${h.pretty_filesize(file.size)} |
% if file.description:
description | ${file.description} |
% endif
% if file.utteranceType:
utterance type | ${file.utteranceType} |
% endif
enterer | ${file.enterer.firstName} ${file.enterer.lastName} |
% if file.speaker:
speaker | ${file.speaker.firstName} ${file.speaker.lastName} |
% endif
% if file.elicitor:
elicitor | ${file.elicitor.firstName} ${file.elicitor.lastName} |
% endif
% if file.dateElicited:
date elicited | ${h.pretty_date(file.dateElicited)} |
% endif
time entered | ${h.pretty_date(file.datetimeEntered)} |
last updated | ${h.pretty_date(file.datetimeModified)} |
%def>
<%def name="displayFileButtons(file)">
%def>
<%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>
<%def name="displayImage(file, fileReference)">
<% fileName = path.splitext(file.name)[0] %>
<% buttonID = fileName + 'Button' %>
show image
%def>
<%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
%doc>
<%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>
<%def name="displayVideo(file, fileReference)">
video to be displayed...
%def>
<%def name="displayTextual(file, fileReference)">
<% fileExtension = file.name.split('.')[-1] %>
link to text
%def>
<%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)}’
% endfor
%def>
<%def name="insertAudioJavaScript()">
%def>