views/backend/generator/fields/modal_fileupload.tt
<div id="upload_file" class="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>[% h.loc("forms.${type}.field.dropzone.edit_modal.heading") %]</h3>
</div>
<form enctype="multipart/form-data" name="upLoad" id="upLoad">
<div class="modal-body">
<input type="hidden" name="file_id" id="id_file_id" value="" />
<input type="hidden" name="tempid" id="id_temp_id" value="" />
<input type="hidden" name="cancel" value="" />
<h4>[% h.loc("forms.${type}.field.dropzone.edit_modal.heading_file") %]</h4>
<div class="form-group">
<label class="text" id="fileNameTag">
[% h.loc("forms.${type}.field.dropzone.edit_modal.current_file") %]
<input type="text" name="fileName" id="id_fileName" value="" readonly="readonly" class="form-control"/>
</label>
</div>
<div class="form-group">
<strong>[% h.loc("forms.${type}.field.dropzone.edit_modal.relation") %]</strong><br />
<select name="relation" class="form-control" id="id_select_relation">
<option value="main_file"[% IF !relation %] selected="selected"[% END %]>[% lf.relation.main_file.select %]</option>
[% FOREACH rel IN h.config.lists.relations_file %]
<option value="[% rel.relation | html %]"[% IF rel.relation == relation %] selected="selected"[% END %]>[% lf.relation.${rel.relation}.select %]</option>
[% END %]
</select>
</div>
<h4>Access Level</h4>
<div class="form-group col-md-offset-1">
<script type="text/javascript">
<!--
function oamode(f, flag) {
if (flag) {
f.accessEmbargo.checked=false;
f.accessEmbargo.disabled=true;
f.embargo.disabled=true;
} else {
f.accessEmbargo.disabled=false;
}
}
//-->
</script>
<label class="radio">
<input type="radio" name="accessLevel" id="id_accessLevel_openAccess" value="open_access" onclick="oamode(this.form, true);"/> [% h.loc("forms.${type}.field.dropzone.edit_modal.access.open_access") %]
</label>
<label class="radio">
<input type="radio" name="accessLevel" id="id_accessLevel_local" value="local" onclick="oamode(this.form,false);" /> [% h.loc("forms.${type}.field.dropzone.edit_modal.access.local") %]
</label>
<label class="radio">
<input type="radio" name="accessLevel" id="id_accessLevel_admin" value="closed" onclick="oamode(this.form,false);" /> [% h.loc("forms.${type}.field.dropzone.edit_modal.access.closed") %]
</label>
<label class="radio">
<input type="radio" name="accessLevel" id="id_accessLevel_request" value="request" onclick="oamode(this.form,false);" /> [% h.loc("forms.${type}.field.dropzone.edit_modal.access.request_a_copy") %]
</label>
<input type="email" class="form-control" name="rac_email" id="id_rac_email" placeholder="[% h.loc("forms.${type}.field.dropzone.edit_modal.access.rac_email") | html %]" value="">
<label class="checkbox control-label">
<input type="checkbox" name="accessEmbargo" id="id_accessEmbargo" value="1" />[% h.loc("forms.${type}.field.dropzone.edit_modal.access.embargo") %]<br />
</label>
<select id="id_embargo_to" name="embargo_to" class="form-control">
<option value="open_access">[% h.loc("forms.${type}.field.dropzone.edit_modal.access.open_access") %]</option>
<option value="local">[% h.loc("forms.${type}.field.dropzone.edit_modal.access.local") %]</option>
</select>
<input type="text" class="form-control" name="embargo" id="id_embargo" placeholder="YYYY-MM-DD" value="" size="10" maxlength="10">
</div>
<h4>[% h.loc("forms.${type}.field.dropzone.edit_modal.additional_information.heading") %]</h4>
<div class="form-group">
<strong>[% h.loc("forms.${type}.field.dropzone.edit_modal.additional_information.title") %]</strong><br />
<input type="text" name="title" id="id_fileTitle" value="" class="form-control" />
</div>
<div class="form-group">
<strong>[% h.loc("forms.${type}.field.dropzone.edit_modal.additional_information.description") %]</strong><br />
<textarea name="description" id="id_fileDescription" class="form-control" rows="3">[% description %]</textarea>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success" name="finalSubmit" id="fileSubmit"><span class="fa fa-check"></span> [% h.loc("forms.button.save") %]</button>
<button type="button" class="btn btn-warning" data-dismiss="modal" aria-hidden="true"><span class="fa fa-times"></span> [% h.loc("forms.button.cancel") %]</button>
</div>
</form>
</div>
</div>
</div>
<script>
$('#fileSubmit').click( function() {
var data = Object();
data.file_id = $('#id_file_id').val();
data.tempid = $('#id_temp_id').val();
data.file_name = $('#id_fileName').val();
data.relation = $('#id_select_relation').val();
data.title = $('#id_fileTitle').val();
data.description = $('#id_fileDescription').val();
data.date_updated = 'now';
data.rac_email = $('#id_rac_email').val();
// Open access
if ($('#id_accessLevel_openAccess').is(':checked')) {
data.access_level = 'open_access';
}
// Local access
else if ($('#id_accessLevel_local').is(':checked') ){
data.access_level = 'local';
}
// Closed access
else if ($('#id_accessLevel_admin').is(':checked')) {
data.access_level = 'closed';
}
// Request a copy
else if ($('#id_accessLevel_request').is(':checked')) {
data.access_level = 'request';
if ($('#id_rac_email').val()){
data.rac_email = $('#id_rac_email').val();
}
}
// Add an embargo?
if ($('#id_embargo').val() && $('#id_embargo').val().match(/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/) && $('#id_accessEmbargo').is(':checked')) {
data.embargo = $('#id_embargo').val();
}
if ($('#id_embargo_to').val() && data.embargo) {
data.embargo_to = $('#id_embargo_to').val();
}
var use_file_id = data.file_id ? data.file_id : data.tempid;
var namediv = $('#' + use_file_id + ' div.padded');
namediv.html('');
namediv.html('<span class="fa fa-file text-muted"></span> <span class="text-muted"><strong>' + data.file_name + '</strong></span>');
var accessLevel;
// Open access
if(data.access_level == "open_access"){
accessLevel = "[% lf.$type.field.dropzone.access.open_access %]";
}
// Local access
else if(data.access_level == "local"){
accessLevel = "[% lf.$type.field.dropzone.access.local %]";
if (data.embargo) {
accessLevel += "<br />([% lf.$type.field.dropzone.access.until %] " +
data.embargo +
")";
}
}
// Closed access
else if(data.access_level == "closed"){
accessLevel = "[% lf.$type.field.dropzone.access.closed %]";
if (data.embargo) {
accessLevel += "<br />([% lf.$type.field.dropzone.access.until %] " +
data.embargo +
")";
}
}
// rac
else if(data.access_level == "request"){
accessLevel = "[% lf.$type.field.dropzone.access.request_a_copy %]";
if (data.embargo) {
accessLevel += "<br />([% lf.$type.field.dropzone.access.until %] " +
data.embargo +
")";
}
}
var rac = "";
if(data.access_level == 'request'){
if(data.rac_email){
rac += " (" + data.rac_email + ")";
}
rac += "</div>";
}
$('#access_' + use_file_id).html(accessLevel);
$('#updated_' + use_file_id).html(data.date_updated);
$('#creator_' + use_file_id).html(data.creator);
$('#relation_' + use_file_id).html(data.relation);
$('#file_' + use_file_id).val(JSON.stringify(data));
if(data.access_level != 'request'){
$('#rac_' + use_file_id).html("");
}
else{
$('#rac_' + use_file_id).html(rac);
}
$('#upLoad')[0].reset();
$('#upLoad').find('input[type="hidden"]').val('');
$('#upload_file').modal('hide');
return false;
});
$('#id_accessEmbargo').bind('change', function(){
if($(this).is(':checked')){
$('#id_embargo').prop('disabled',false);
}
else {
$('#id_embargo').prop('disabled',true);
}
});
$('*[data-dismiss="modal"]').click(function(){
$('#upLoad')[0].reset();
$('#upLoad').find('input[type="hidden"]').val('');
$('#upload_file').modal('hide');
});
</script>