Bug 20036: Switch single-column templates to Bootstrap grid: Offline circulation
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / offline_circ / process_koc.tt
1 [% SET footerjs = 1 %]
2 [% INCLUDE 'doc-head-open.inc' %]
3 <title>Koha &rsaquo; Circulation &rsaquo; Offline circulation file upload</title>
4 [% INCLUDE 'doc-head-close.inc' %]
5 </head>
6
7 <body id="ocirc_process_koc" class="circ ocirc">
8 [% INCLUDE 'header.inc' %]
9 [% INCLUDE 'circ-search.inc' %]
10
11 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> &rsaquo; [% IF ( transactions_loaded ) %] <a href="/cgi-bin/koha/offline_circ/process_koc.pl">Offline circulation file upload</a> &rsaquo; Results[% ELSE %] Offline circulation file upload[% END %]</div>
12
13 <div class="main container-fluid">
14     <div class="row">
15         <div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
16
17 [% IF ( transactions_loaded ) %]
18   <h2>Koha offline circulation</h2>
19   <p>Your data was processed. Here are the results:</p>
20   [% FOREACH message IN messages %]
21     [% IF ( message.message ) %]
22         <div class="dialog alert">
23                 [% IF ( message.ERROR_file_version ) %]<p>Warning: This file is version [% message.upload_version %], but I only know how to import version [% message.current_version %]. I'll try my best.</p>[% END %]
24         </div>
25         [% END %]
26         [% IF ( message.ERROR_no_borrower_from_item ) %]<p>Warning: Unable to determine patron from item barcode ([% message.badbarcode %]). Cannot check in.</p>[% END %]
27         [% IF ( message.issue ) %]<p>Checked out <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% message.biblionumber %]">[% message.title |html %]</a> ([% message.barcode %]) to <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% message.borrowernumber %]">[% message.firstname %] [% message.surname %]</a> ([% message.cardnumber %]): [% message.datetime %]</p>[% END %]
28         [% IF ( message.renew ) %]<p>Renewed <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% message.biblionumber %]">[% message.title |html %]</a>  ([% message.barcode %]) for <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% message.borrowernumber %]">[% message.firstname %] [% message.surname %]</a> ([% message.cardnumber %]): [% message.datetime %]</p>[% END %]
29         [% IF ( message.return ) %]<p>Checked in <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% message.biblionumber %]">[% message.title |html %]</a> ([% message.barcode %]) from <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% message.borrowernumber %]">[% message.firstname %] [% message.surname %]</a> ([% message.cardnumber %]): [% message.datetime %]</p>[% END %]
30         [% IF ( message.payment ) %]<p>Accepted payment ([% message.amount %]) from <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% message.borrowernumber %]">[% message.firstname %] [% message.surname %]</a> ([% message.cardnumber %]): [% message.datetime %]</p>[% END %]
31   [% END %]
32 [% ELSE %]
33    <h2>Upload offline circulation data</h2>
34
35    <div id="fileuploadform">
36      <form method="post" action="/cgi-bin/koha/offline_circ/process_koc.pl" enctype="multipart/form-data" class="validated">
37                 <fieldset class="brief">
38        <ol><li><label for="fileToUpload">Choose .koc file: </label>
39             <input class="required" required="required" type="file" id="fileToUpload" size="50" name="fileToUpload" />
40             <span class="required">Required</span>
41        </li></ol>
42        <fieldset class="action"><input type="button" class="submit" value="Upload file" id="upload_file" /></fieldset>
43            </fieldset>
44      </form>
45      <div id="fileuploadstatus" class="progress_panel" style="display:none">Upload progress: <progress id="fileuploadprogress" max="100" value="0"></progress> <span class="fileuploadpercent">0</span>%</div>
46      <div id="fileuploadfailed" style="display:none"></div>
47    </div>
48
49    <form action="enqueue_koc.pl" id="processfile" method="post" enctype="multipart/form-data">
50      <input type="hidden" name="uploadedfileid" id="uploadedfileid" value="" />
51      <input type="submit" value="Add to offline circulation queue" id="queueformsubmit" />
52    </form>
53
54    <form action="process_koc.pl" id="enqueuefile" method="post" enctype="multipart/form-data">
55      <input type="hidden" name="uploadedfileid" id="uploadedfileid" value="" />
56      <input type="hidden" name="runinbackground" id="runinbackground" value="" />
57      <input type="hidden" name="completedJobID" id="completedJobID" value="" />
58      <!-- <input type="submit" value="Apply directly" id="mainformsubmit" /> -->
59      <!-- FIXME: Job freezes when submitted, disabling button as a temporary mitigation -->
60      <div id="jobstatus" style="display:none">Job progress: <div id="jobprogress"></div> <span id="jobprogresspercent">0</span>%</div>
61      <div id="jobfailed" style="display:none"></div>
62    </form>
63 [% END %]
64
65
66     </div>
67 </div>
68
69 [% MACRO jsinclude BLOCK %]
70     <script type="text/javascript" src="[% interface %]/[% theme %]/js/background-job-progressbar_[% KOHA_VERSION %].js"></script>
71     <script type="text/javascript" src="[% interface %]/[% theme %]/js/file-upload_[% KOHA_VERSION %].js"></script>
72     <script type="text/javascript">
73         var xhr;
74         $(document).ready(function(){
75             $("#enqueuefile").hide();
76             $("#processfile").hide();
77             $("#upload_file").on("click",function(){
78                 StartUpload();
79             });
80             $("#queueformsubmit").on("click",function(){
81                 var processfile = document.getElementById("processfile");
82                 return CheckForm( processfile );
83             });
84             $("#mainformsubmit").on("click",function(){
85                 var enqueuefile = document.getElementById("enqueuefile");
86                 return CheckForm( enqueuefile );
87             });
88         });
89
90         function StartUpload() {
91             if( $('#fileToUpload').prop('files').length == 0 ) return;
92             $('#fileuploadform input.submit').prop('disabled',true);
93             $("#fileuploadfailed").hide();
94             $("#processfile").hide();
95             $("#fileuploadstatus").show();
96             $("form#processfile #uploadedfileid").val('');
97             $("form#enqueuefile #uploadedfileid").val('');
98             xhr= AjaxUpload( $('#fileToUpload'), $('#fileuploadprogress'), 'temp=1', cbUpload );
99         }
100
101         function cbUpload( status, fileid, errors ) {
102             if( status=='done' ) {
103                 $("form#processfile #uploadedfileid").val( fileid );
104                 $("form#enqueuefile #uploadedfileid").val( fileid );
105                 $('#fileToUpload').prop('disabled',true);
106                 $("#processfile").show();
107                 $("#enqueuefile").show();
108             } else {
109                 var errMsgs = [ _("Error code 0 not used"), _("File already exists"), _("Directory is not writeable"), _("Root directory for uploads not defined"), _("Temporary directory for uploads not defined") ];
110                 var errCode = errors[$('#fileToUpload').prop('files')[0].name].code;
111                 $("#fileuploadstatus").hide();
112                 $("#fileuploadfailed").show();
113                 $("#fileuploadfailed").text( _("Upload status: ") +
114                     ( status=='failed'? _("Failed") + " - (" + errCode + ") " + errMsgs[errCode]:
115                     ( status=='denied'? _("Denied"): status ))
116                 );
117             }
118         }
119
120         function CheckForm(f) {
121             if (f.uploadedfileid.value == '') {
122                 alert(_("Please upload a file first."));
123             } else {
124                 $("#fileuploadstatus").hide();
125                 $("#fileuploadform").slideUp();
126                 $("#mainformsubmit").prop('disabled',true);
127                 $("#queueformsubmit").prop('disabled',true);
128                 return submitBackgroundJob(f);
129             }
130             return false;
131         }
132     </script>
133 [% END %]
134
135 [% INCLUDE 'intranet-bottom.inc' %]