Koha/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt
Owen Leonard a6abaca8d0 Bug 19653: Move tools templates JavaScript to the footer: Additional tools
This patch modifies the staff client "Additional tools" templates so
that JavaScript is included in the footer instead of the header:

- Calendar
- CSV profiles
- Log viewer
- News
- Task scheduler
- Edit quotes for QOTD feature
- Upload

Note that the log viewer template has been modified so that the
"interface" variable (passed to the template to provide the correct path
to staff client assets) isn't overwritten by an "interface" variable
required by the log viewer.

To test, apply the patch and test the JavaScript-driven features of
each modified template: All button controls, DataTables functionality,
form validation, etc.

Signed-off-by: Claire Gravely <claire.gravely@bsz-bw.de>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2017-12-11 11:34:21 -03:00

408 lines
14 KiB
Text

[% USE Koha %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
[% IF plugin %]
<title>Upload plugin</title>
[% ELSE %]
<title>Koha &rsaquo; Tools &rsaquo; Upload</title>
[% END %]
[% INCLUDE 'doc-head-close.inc' %]
<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
[% BLOCK plugin_pars %]
[% IF plugin %]
<input type="hidden" name="plugin" value="1" />
<input type="hidden" name="index" value="[% index %]" />
[% END %]
[% END %]
[% BLOCK breadcrumbs %]
<div id="breadcrumbs">
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
&rsaquo;
<a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a>
&rsaquo;
<a href="/cgi-bin/koha/tools/upload.pl">Upload</a>
&rsaquo;
<span id="lastbreadcrumb">
[% IF mode=='new' || mode =='deleted'%]
Add new upload or search
[% ELSE %]
Results
[% END %]
</span>
</div>
[% END %]
[% BLOCK form_new %]
<form method="post" action="/cgi-bin/koha/tools/upload.pl" id="uploadfile" enctype="multipart/form-data">
[% PROCESS plugin_pars %]
<fieldset class="rows" id="uploadform">
<legend>Upload new files</legend>
<ol>
<li>
<div id="fileuploadform">
<label for="fileToUpload">Select files: </label>
<input type="file" id="fileToUpload" name="fileToUpload" multiple/>
</div>
</li>
[% IF uploadcategories %]
<li>
<label for="uploadcategory">Category: </label>
<select id="uploadcategory" name="uploadcategory">
[% IF !plugin %]
<option value=""></option>
[% END %]
[% FOREACH cat IN uploadcategories %]
<option value="[% cat.code %]">[% cat.name %]</option>
[% END %]
</select>
</li>
[% END %]
[% IF !plugin %]
<li>
[% IF uploadcategories %]
<div class="hint">Note: For temporary uploads do not select a category.</div>
[% ELSE %]
<div class="hint">Note: No upload categories are defined. Add values to the UPLOAD authorized value category otherwise all uploads will be marked as temporary.</div>
[% END %]
</li>
[% END %]
<li>
[% IF plugin %]
<input type="hidden" id="public" name="public" value="1"/>
[% ELSE %]
<label id="public_cb">Allow public downloads:</label>
<input type="checkbox" id="public" name="public" />
[% END %]
</li>
</ol>
<fieldset class="action">
<button id="fileuploadbutton">Upload</button>
<button id="fileuploadcancel">Cancel</button>
</fieldset>
</fieldset>
<div id="fileuploadpanel">
<div id="fileuploadstatus" class="progress_panel">Upload progress:
<progress id="fileuploadprogress" max="100" value="0">
</progress>
<span class="fileuploadpercent">0</span>%
</div>
<div id="fileuploadfailed"></div>
</div>
</form>
[% END %]
[% BLOCK form_search %]
<form method="post" id="searchfile" action="/cgi-bin/koha/tools/upload.pl" enctype="multipart/form-data">
[% PROCESS plugin_pars %]
<input type="hidden" name="op" value="search"/>
<fieldset class="rows">
<legend>Search uploads by name or hashvalue</legend>
<ol>
<li>
<label for="term">Search term: </label>
<input type="text" id="term" name="term" value=""/>
</li>
</ol>
<fieldset class="action">
<button id="searchbutton" class="submit">Search</button>
</fieldset>
</fieldset>
</form>
[% END %]
[% BLOCK submitter %]
<form id="submitter" style="display:none;" method="post">
[% PROCESS plugin_pars %]
<input type="hidden" name="op" id="op" value=""/>
<input type="hidden" name="id" id="id" value="" />
<input type="hidden" name="msg" id="msg" value="" />
</form>
[% END %]
[% BLOCK closer %]
[% IF plugin %]
<div id="closewindow"><a class="btn btn-default btn-default close" href="#">Close</a></div>
[% END %]
[% END %]
[% BLOCK back %]
[% IF !plugin %]
<form id="back">
<fieldset class="action">
<button class="submit">Back</button>
</fieldset>
</form>
[% END %]
[% END %]
[% BLOCK newsearch %]
<form id="newsearch">
<fieldset class="action">
<button id="new_search">New search</button>
</fieldset>
</form>
[% IF plugin %]
<div id="closewindow"><a class="btn btn-default btn-default close" href="#">Close</a></div>
[% END %]
[% END %]
[% BLOCK table_results %]
<table id="uploadresults">
<thead>
<tr>
<th>Filename</th>
<th>Size</th>
<th>Hashvalue</th>
<th>Category</th>
[% IF !plugin %]<th>Public</th>[% END %]
[% IF !plugin %]<th>Temporary</th>[% END %]
<th class="nosort">Actions</th>
</tr>
</thead>
<tbody>
[% FOREACH record IN uploads %]
<tr>
<td>[% record.filename %]</td>
<td>[% record.filesize %]</td>
<td>[% record.hashvalue %]</td>
<td>[% record.uploadcategorycode %]</td>
[% IF !plugin %]
<td>[% IF record.public %]Yes[% ELSE %]No[% END %]</td>
<td>[% IF record.permanent %]No[% ELSE %]Yes[% END %]</td>
[% END %]
<td class="actions">
[% IF plugin %]
<button class="btn btn-default btn-xs choose_entry" data-record-hashvalue="[% record.hashvalue %]"><i class="fa fa-plus"></i> Choose</button>
[% END %]
<button class="btn btn-default btn-xs download_entry" data-record-id="[% record.id %]"><i class="fa fa-download"></i> Download</button>
[% IF record.owner == owner || CAN_user_tools_upload_manage %]
<button class="btn btn-default btn-xs delete_entry" data-record-id="[% record.id %]"><i class="fa fa-trash"></i> Delete</button>
[% END %]
</td>
</tr>
[% END %]
</tbody>
</table>
[% END %]
<style type="text/css">
#fileuploadstatus,#fileuploadfailed { display : none; }
#fileuploadstatus { margin:.4em; }
#fileuploadprogress { width:150px;height:10px;border:1px solid #666;background:url('[% interface %]/[% theme %]/img/progress.png') -300px 0px no-repeat; }
</style>
</head>
[% IF ( plugin ) %]
<body id="tools_upload" class="tools">
<div class="yui-t7">
<div id="bd">
<div class="yui-g">
[% ELSE %]
<body id="tools_upload" class="tools">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cat-search.inc' %]
[% PROCESS breadcrumbs %]
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
[% END %]
<h1>Upload</h1>
<div class="dialog alert" id="myalerts" style="display:none;"></div>
[% PROCESS submitter %]
[% IF mode == 'new' || mode == 'deleted' %]
[% PROCESS form_new %]
[% PROCESS form_search %]
[% PROCESS closer %]
[% ELSIF mode == 'report' %]
[% IF uploads %]
<h3>Your request gave the following results:</h3>
[% PROCESS table_results %]
[% PROCESS closer %]
[% PROCESS back %]
[% ELSE %]
<h4>Sorry, your request had no results.</h4>
[% PROCESS newsearch %]
[% END %]
[% END %]
</div>
[% IF !plugin %]
</div>
<div class="yui-b noprint">
[% INCLUDE 'tools-menu.inc' %]
</div>
[% END %]
</div>
[% MACRO jsinclude BLOCK %]
<script type="text/javascript" src="[% interface %]/[% theme %]/js/tools-menu.js"></script>
[% INCLUDE 'datatables.inc' %]
<script type="text/javascript">
var errMESSAGES = [
"Error 0: Not in use",
_("This file already exists (in this category)."),
_("File could not be created. Check permissions."),
_("Your koha-conf.xml does not contain a valid upload_path."),
_("No temporary directory found."),
_("File could not be read."),
_("File has been deleted."),
_("File or upload record could not be deleted."),
];
</script>
<script type="text/javascript" src="[% interface %]/[% theme %]/js/file-upload.js"></script>
<script type="text/javascript">
function StartUpload() {
if( $('#fileToUpload').prop('files').length == 0 ) return;
$('#fileToUpload').prop('disabled',true);
$('#fileuploadbutton').hide();
$("#fileuploadcancel").show();
$("#fileuploadfailed").html('');
$("#myalerts").hide('');
$("#myalerts").html('');
$("#fileuploadstatus").show();
$("#uploadedfileid").val('');
$("#searchfile").hide();
$("#lastbreadcrumb").text( _("Add a new upload") );
var cat, xtra='';
if( $("#uploadcategory").val() )
cat = encodeURIComponent( $("#uploadcategory").val() );
if( cat ) xtra= 'category=' + cat + '&';
[% IF plugin %]
xtra = xtra + 'public=1&temp=0';
[% ELSE %]
if( !cat ) xtra = 'temp=1&';
if( $('#public').prop('checked') ) xtra = xtra + 'public=1';
[% END %]
xhr= AjaxUpload( $('#fileToUpload'), $('#fileuploadprogress'), xtra, cbUpload );
}
function CancelUpload() {
if( xhr ) xhr.abort();
$("#fileuploadstatus").hide();
$('#fileToUpload').prop('disabled', false);
$('#fileuploadbutton').show();
$("#fileuploadcancel").hide();
$("#fileuploadfailed").show();
$("#fileuploadfailed").text( _("Upload status: Cancelled ") );
}
function cbUpload( status, fileid, err ) {
$('#fileToUpload').prop('disabled', false);
if( status=='done' ) {
var e = err? JSON.stringify(err): '';
SubmitMe( 'search', fileid, e );
} else {
$('#fileuploadbutton').show();
$("#fileuploadcancel").hide();
$("#fileuploadstatus").hide();
$("#fileuploadfailed").show();
$("#fileuploadfailed").html( _("Upload status: ") +
( status=='failed'? _("Failed"):
( status=='denied'? _("Denied"): status ))
);
ShowAlerts( err );
}
}
function ShowAlerts(err) {
var str = '';
for( var file in err ) {
str= str + '<p>' + file + ': ' +
errMESSAGES[ err[file].code ] + '</p>';
}
if( str ) {
$('#myalerts').html(str);
$('#myalerts').show();
}
}
function CheckSearch() {
if( $("#term").val()=="" ) {
alert( _("Please enter a search term.") );
return false;
}
return true;
}
function SubmitMe(op, id, msg ) {
$("#submitter #op").val( op );
$("#submitter #id").val( id );
$("#submitter #msg").val( msg );
$("#submitter").submit();
}
function DeleteEntry(id) {
if( !confirm( _("Do you really want to delete this upload?") ))
return false;
ClearField();
SubmitMe( 'delete', id );
}
function ClearField() {
[% IF plugin %]
$(window.opener.document).find('#[% index %]').val( '' );
[% END %]
}
function Choose(hashval) {
var res = '[% Koha.Preference('OPACBaseURL') %]';
res = res.replace( /\/$/, '');
res = res + '/cgi-bin/koha/opac-retrieve-file.pl?id=' + hashval;
[% IF index %]
$(window.opener.document).find('#[% index %]').val( res );
[% END %]
window.close();
}
$(document).ready(function() {
$("#uploadresults").dataTable($.extend(true, {}, dataTablesDefaults, {
"aoColumnDefs": [
{ 'bSortable': false, 'aTargets': [ 'nosort' ] }
],
"sPaginationType": "four_button"
}));
[% IF msg %]
ShowAlerts( [% msg %] );
[% END %]
$("#fileuploadcancel").hide();
$("#public_cb").click(function() {
$("#public").click();
});
$("#fileuploadbutton").on("click",function(e){
e.preventDefault();
StartUpload();
});
$("#fileuploadcancel").on("click",function(e){
e.preventDefault();
CancelUpload();
});
$("#searchbutton").on("click",function(){
return CheckSearch();
});
$(".choose_entry").on("click",function(e){
e.preventDefault();
var record_hashvalue = $(this).data("record-hashvalue");
Choose( record_hashvalue );
});
$(".download_entry").on("click",function(e){
e.preventDefault();
var record_id = $(this).data("record-id");
SubmitMe( 'download', record_id );
});
$(".delete_entry").on("click",function(e){
e.preventDefault();
var record_id = $(this).data("record-id");
DeleteEntry( record_id );
});
$("#new_search").on("click",function(e){
e.preventDefault();
SubmitMe('new');
});
});
</script>
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]