Bug 16242 - Move staff client JavaScript out of language directory
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / tools / upload.tt
1 [% INCLUDE 'doc-head-open.inc' %]
2 [% USE Koha %]
3 [% IF plugin %]
4     <title>Upload plugin</title>
5 [% ELSE %]
6     <title>Koha &rsaquo; Tools &rsaquo; Upload</title>
7 [% END %]
8 [% INCLUDE 'doc-head-close.inc' %]
9
10 [% BLOCK plugin_pars %]
11     [% IF plugin %]
12         <input type="hidden" name="plugin" value="1" />
13         <input type="hidden" name="index" value="[% index %]" />
14     [% END %]
15 [% END %]
16
17 [% BLOCK breadcrumbs %]
18     <div id="breadcrumbs">
19         <a href="/cgi-bin/koha/mainpage.pl">Home</a>
20         &rsaquo;
21         <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a>
22         &rsaquo;
23         <a href="/cgi-bin/koha/tools/upload.pl">Upload</a>
24         &rsaquo;
25         <span id="lastbreadcrumb">
26         [% IF mode=='new' || mode =='deleted'%]
27             Add new upload or search
28         [% ELSE %]
29             Results
30         [% END %]
31         </span>
32     </div>
33 [% END %]
34
35 [% BLOCK form_new %]
36     <form method="post" action="[% SCRIPT_NAME %]" id="uploadfile" enctype="multipart/form-data">
37         [% PROCESS plugin_pars %]
38         <fieldset class="rows" id="uploadform">
39         <legend>Upload new files</legend>
40         <ol>
41         <li>
42         <div id="fileuploadform">
43             <label for="fileToUpload">Select files: </label>
44             <input type="file" id="fileToUpload" name="fileToUpload" multiple/>
45         </div>
46         </li>
47         [% IF uploadcategories %]
48             <li>
49                 <label for="uploadcategory">Category: </label>
50                 <select id="uploadcategory" name="uploadcategory">
51                 [% IF !plugin %]
52                     <option value="" disabled hidden selected></option>
53                 [% END %]
54                 [% FOREACH cat IN uploadcategories %]
55                     <option value="[% cat.code %]">[% cat.name %]</option>
56                 [% END %]
57                 </select>
58             </li>
59         [% END %]
60         [% IF !plugin %]
61             <li>
62             [% IF uploadcategories %]
63                 <div class="hint">Note: For temporary uploads do not select a category.</div>
64             [% ELSE %]
65                 <div class="hint">Note: No upload categories have been defined. All uploads will be marked as temporary.</div>
66             [% END %]
67             </li>
68         [% END %]
69         <li>
70             [% IF plugin %]
71                 <input type="hidden" id="public" name="public" value="1"/>
72             [% ELSE %]
73                 <label id="public_cb">Allow public downloads:</label>
74                 <input type="checkbox" id="public" name="public">
75                 </input>
76             [% END %]
77         </li>
78         </ol>
79         <fieldset class="action">
80             <button id="fileuploadbutton" onclick="StartUpload(); return false;">Upload</button>
81             <button id="fileuploadcancel" onclick="CancelUpload(); return false;">Cancel</button>
82         </fieldset>
83         </fieldset>
84         <div id="fileuploadpanel">
85             <div id="fileuploadstatus">Upload progress:
86             <progress id="fileuploadprogress" min="0" max="100" value="0">
87             </progress>
88             <span class="fileuploadpercent">0</span>%
89             </div>
90             <div id="fileuploadfailed"></div>
91         </div>
92     </form>
93 [% END %]
94
95 [% BLOCK form_search %]
96     <form method="post" id="searchfile" action="[% SCRIPT_NAME %]" enctype="multipart/form-data">
97         [% PROCESS plugin_pars %]
98         <input type="hidden" name="op" value="search"/>
99         <fieldset class="rows">
100         <legend>Search uploads by name or hashvalue</legend>
101         <ol>
102         <li>
103             <label for="searchupload">Search term: </label>
104             <input type="text" id="term" name="term" value=""/>
105         </li>
106         <li>
107             <fieldset class="action">
108                 <button id="searchbutton" onclick="return CheckSearch();" class="submit">Search</button>
109             </fieldset>
110         </li>
111         </ol>
112         </fieldset>
113     </form>
114 [% END %]
115
116 [% BLOCK submitter %]
117     <form id="submitter" style="display:none;" method="post">
118         [% PROCESS plugin_pars %]
119         <input type="hidden" name="op" id="op" value=""/>
120         <input type="hidden" name="id" id="id" value="" />
121         <input type="hidden" name="msg" id="msg" value="" />
122     </form>
123 [% END %]
124
125 [% BLOCK closer %]
126     [% IF plugin %]
127         <form id="closer">
128             <fieldset class="action">
129                 <button onclick="window.close();return false;">Close</button>
130             </fieldset>
131         </form>
132     [% END %]
133 [% END %]
134
135 [% BLOCK back %]
136     [% IF !plugin %]
137         <form id="back">
138             <fieldset class="action">
139                 <button class="submit">Back</button>
140             </fieldset>
141         </form>
142     [% END %]
143 [% END %]
144
145 [% BLOCK newsearch %]
146     <form id="newsearch">
147         <fieldset class="action">
148             <button onclick="SubmitMe('new'); return false;">New search</button>
149             [% IF plugin %]
150                 <button onclick="window.close();return false;">Close</button>
151             [% END %]
152         </fieldset>
153     </form>
154 [% END %]
155
156 [% BLOCK table_results %]
157     <table>
158     <thead>
159     <tr>
160         <th>Filename</td>
161         <th>Size</td>
162         <th>Hashvalue</td>
163         <th>Category</td>
164         [% IF !plugin %]<th>Public</td>[% END %]
165         [% IF !plugin %]<th>Temporary</td>[% END %]
166         <th>Actions</td>
167     </tr>
168     </thead>
169     <tbody>
170     [% FOREACH record IN uploads %]
171     <tr>
172         <td>[% record.name %]</td>
173         <td>[% record.filesize %]</td>
174         <td>[% record.hashvalue %]</td>
175         <td>[% record.uploadcategorycode %]</td>
176         [% IF !plugin %]
177             <td>[% IF record.public %]Yes[% ELSE %]No[% END %]</td>
178             <td>[% IF record.permanent %]No[% ELSE %]Yes[% END %]</td>
179         [% END %]
180         <td>
181             [% IF plugin %]
182                 <a href="" onclick="Choose('[% record.hashvalue %]'); return false;">Choose</a>&nbsp;
183             [% END %]
184             <a href="" onclick="SubmitMe( 'download', [% record.id %] ); return false;">Download</a>&nbsp;
185             [% IF record.owner == owner || CAN_user_tools_upload_manage %]
186                 <a href="" onclick="DeleteEntry( [% record.id %] ); return false;">Delete</a>
187             [% END %]
188         </td>
189    </tr>
190    [% END %]
191    </tbody>
192    </table>
193 [% END %]
194
195 <style type="text/css">
196     #fileuploadstatus,#fileuploadfailed { display : none; }
197     #fileuploadstatus { margin:.4em; }
198     #fileuploadprogress { width:150px;height:10px;border:1px solid #666;background:url('[% interface %]/[% theme %]/img/progress.png') -300px 0px no-repeat; }
199 </style>
200
201 <script type="text/javascript">
202 //<![CDATA[
203     var errMESSAGES = [
204         "Error 0: Not in use",
205         _("This file already exists (in this category)."),
206         _("File could not be created. Check permissions."),
207         _("Your koha-conf.xml does not contain a valid upload_path."),
208         _("No temporary directory found."),
209         _("File could not be read."),
210         _("File has been deleted."),
211         _("File could not be deleted."),
212     ];
213 //]]>
214 </script>
215 <script type="text/javascript" src="[% interface %]/[% theme %]/js/file-upload.js"></script>
216 <script type="text/javascript">
217 //<![CDATA[
218 function StartUpload() {
219     if( $('#fileToUpload').prop('files').length == 0 ) return;
220     $('#fileToUpload').prop('disabled',true);
221     $('#fileuploadbutton').hide();
222     $("#fileuploadcancel").show();
223     $("#fileuploadfailed").html('');
224     $("#myalerts").hide('');
225     $("#myalerts").html('');
226     $("#fileuploadstatus").show();
227     $("#uploadedfileid").val('');
228     $("#searchfile").hide();
229     $("#lastbreadcrumb").text( _("Add a new upload") );
230
231     var cat, xtra='';
232     if( $("#uploadcategory").val() )
233         cat = encodeURIComponent( $("#uploadcategory").val() );
234     if( cat ) xtra= 'category=' + cat + '&';
235     [% IF plugin %]
236         xtra = xtra + 'public=1&temp=0';
237     [% ELSE %]
238         if( !cat ) xtra = 'temp=1&';
239         if( $('#public').prop('checked') ) xtra = xtra + 'public=1';
240     [% END %]
241     xhr= AjaxUpload( $('#fileToUpload'), $('#fileuploadprogress'), xtra, cbUpload );
242 }
243 function CancelUpload() {
244     if( xhr ) xhr.abort();
245     $("#fileuploadstatus").hide();
246     $('#fileToUpload').prop('disabled', false);
247     $('#fileuploadbutton').show();
248     $("#fileuploadcancel").hide();
249     $("#fileuploadfailed").show();
250     $("#fileuploadfailed").text( _("Upload status: Cancelled ") );
251 }
252 function cbUpload( status, fileid, err ) {
253     $('#fileToUpload').prop('disabled', false);
254     if( status=='done' ) {
255         var e = err? JSON.stringify(err): '';
256         SubmitMe( 'search', fileid, e );
257     } else {
258         $('#fileuploadbutton').show();
259         $("#fileuploadcancel").hide();
260         $("#fileuploadstatus").hide();
261         $("#fileuploadfailed").show();
262         $("#fileuploadfailed").html( _("Upload status: ") +
263             ( status=='failed'? _("Failed"):
264             ( status=='denied'? _("Denied"): status ))
265         );
266         ShowAlerts( err );
267     }
268 }
269 function ShowAlerts(err) {
270     var str = '';
271     for( var file in err ) {
272         str= str + '<p>' + file + ': ' +
273             errMESSAGES[ err[file] ] + '</p>';
274     }
275     if( str ) {
276         $('#myalerts').html(str);
277         $('#myalerts').show();
278     }
279 }
280 function CheckSearch() {
281     if( $("#term").val()=="" ) {
282         alert( _("Please enter a search term.") );
283         return false;
284     }
285     return true;
286 }
287 function SubmitMe(op, id, msg ) {
288     $("#submitter #op").val( op );
289     $("#submitter #id").val( id );
290     $("#submitter #msg").val( msg );
291     $("#submitter").submit();
292 }
293 function DeleteEntry(id) {
294     if( !confirm( _("Do you really want to delete this upload?") ))
295         return false;
296     ClearField();
297     SubmitMe( 'delete', id );
298 }
299 function ClearField() {
300     [% IF plugin %]
301         $(window.opener.document).find('#[% index %]').val( '' );
302     [% END %]
303 }
304 function Choose(hashval) {
305     var res = '[% Koha.Preference('OPACBaseURL') %]';
306     res = res.replace( /\/$/, '');
307     res = res + '/cgi-bin/koha/opac-retrieve-file.pl?id=' + hashval;
308     [% IF index %]
309         $(window.opener.document).find('#[% index %]').val( res );
310     [% END %]
311     window.close();
312 }
313 $(document).ready(function() {
314     [% IF msg %]
315         ShowAlerts( [% msg %] );
316     [% END %]
317     $("#fileuploadcancel").hide();
318     $("#public_cb").click(function() {
319         $("#public").click();
320     });
321 });
322 //]]>
323 </script>
324 </head>
325
326 <body id="tools_upload" class="tools">
327 [% IF !plugin %]
328     [% INCLUDE 'header.inc' %]
329     [% INCLUDE 'cat-search.inc' %]
330     [% PROCESS breadcrumbs %]
331 [% END %]
332
333 <div id="doc3" class="yui-t2">
334    <div id="bd">
335     <div id="yui-main">
336     <div class="yui-b">
337
338 <h1>Upload</h1>
339 <div class="dialog alert" id="myalerts" style="display:none;"></div>
340
341 [% PROCESS submitter %]
342 [% IF mode == 'new' || mode == 'deleted' %]
343     [% PROCESS form_new %]
344     [% PROCESS form_search %]
345     [% PROCESS closer %]
346 [% ELSIF mode == 'report' %]
347     [% IF uploads %]
348         <h3>Your request gave the following results:</h3>
349         [% PROCESS table_results %]
350         [% PROCESS closer %]
351         [% PROCESS back %]
352     [% ELSE %]
353         <h4>Sorry, your request had no results.</h4>
354         [% PROCESS newsearch %]
355     [% END %]
356 [% END %]
357
358 </div>
359 </div>
360
361 [% IF !plugin %]
362     <div class="yui-b noprint">
363         [% INCLUDE 'tools-menu.inc' %]
364     </div>
365 [% END %]
366
367 </div>
368 [% INCLUDE 'intranet-bottom.inc' %]