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