e572b2b3d704401f8aef95140e8ed8dcd895fa8d
[koha-equinox.git] / koha-tmpl / intranet-tmpl / prog / en / modules / tools / batch_extend_due_dates.tt
1 [% USE raw %]
2 [% USE Asset %]
3 [% SET footerjs = 1 %]
4 [% USE Branches %]
5 [% USE Categories %]
6 [% USE KohaDates %]
7 [% USE ItemTypes %]
8 [% PROCESS 'html_helpers.inc' %]
9
10 [% INCLUDE 'doc-head-open.inc' %]
11 <title>Koha &rsaquo; Tools &rsaquo; Batch extend due dates</title>
12 [% INCLUDE 'doc-head-close.inc' %]
13 [% Asset.css("css/humanmsg.css") | $raw %]
14 </head>
15
16 <body id="tools_batch_extend_due_dates" class="tools">
17     [% INCLUDE 'header.inc' %]
18     [% INCLUDE 'cat-search.inc' %]
19
20     <div id="breadcrumbs">
21         <a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo;
22         <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo;
23         <a href="/cgi-bin/koha/tools/batch_extend_due_dates.pl">Batch extend due dates</a>
24     </div>
25
26     <div class="main container-fluid">
27         <div class="row">
28             <div class="col-sm-10 col-sm-push-2">
29                 <main>
30
31                     <h1>Batch extend due dates</h1>
32
33                     [% IF ( messages ) %]
34                         <div class="dialog message">
35
36                             [% FOREACH message IN messages %]
37                                 [% IF message.type == 'success' %]
38                                     <div><i class="fa fa-check success"></i>
39                                 [% ELSIF message.type == 'warning' %]
40                                     <div><i class="fa fa-warning warn"></i>
41                                 [% ELSIF message.type == 'error' %]
42                                     <div><i class="fa fa-exclamation error"></i>
43                                 [% END %]
44                                 [% IF message.error %]
45                                     (The error was: [% message.error | html %]. See the Koha logfile for more information).
46                                 [% END %]
47                                 </div>
48                             [% END %]
49
50                         </div> <!-- .dialog.message -->
51                     [% END %]
52
53                     [% IF view == 'form' %]
54                         <form method="post" enctype="multipart/form-data" action="/cgi-bin/koha/tools/batch_extend_due_dates.pl" id="extend_due_dates_form">
55                             <fieldset class="rows">
56                                 <legend>Checkout criteria:</legend>
57                                 <ol>
58                                     <li>
59                                         <label for="categorycodes">Patrons' categories: </label>
60                                         [% SET categories = Categories.all() %]
61                                         <select id="categorycodes" name="categorycodes" multiple="multiple">
62                                             [% FOREACH cat IN categories %]
63                                                 <option value="[% cat.categorycode | html %]">[% cat.description | html %]</option>
64                                             [% END %]
65                                         </select>
66                                     </li>
67
68                                     <li>
69                                         <label for="branchcodes">Libraries: </label>
70                                         <select name="branchcodes" id="branchcodes" multiple="multiple">
71                                             [% PROCESS options_for_libraries libraries => Branches.all() %]
72                                         </select>
73                                     </li>
74
75                                     <li>
76                                         <label for="from_due_date">Due date from: </label>
77                                         <input type="text" size="10" id="from" name="from_due_date" class="datepickerfrom" />
78                                     </li>
79
80                                     <li>
81                                         <label for="to_due_date">Due date to:</label>
82                                         <input type="text" size="10" id="to" name="to_due_date" class="datepickerto" />
83                                     </li>
84                                 </ol>
85                             </fieldset>
86                             <fieldset class="rows">
87                                 <legend>New due date:</legend>
88                                 <ol>
89                                     <li>
90                                         <label for="new_hard_due_date">Hard due date: </label>
91                                         <input type="text" size="10" id="new_hard_due_date" name="new_hard_due_date" class="datepicker" />
92                                     </li>
93
94                                     <li>
95                                         <label for="due_date_days">Or add number of days:</label>
96                                         <input type="text" size="10" id="due_date_days" name="due_date_days"/>
97                                     </li>
98                                 </ol>
99                             </fieldset>
100                             <fieldset class="action">
101                                 <input type="hidden" name="op" value="list" />
102                                 <input type="submit" value="Continue" class="button" />
103                                 <a class="cancel" href="/cgi-bin/koha/tools/tools-home.pl">Cancel</a>
104                             </fieldset>
105                         </form> <!-- /#extend_due_dates_form -->
106                     [% ELSIF view == 'list' %]
107                         [% IF checkouts.count %]
108                             <form action="/cgi-bin/koha/tools/batch_extend_due_dates.pl" method="post" id="process">
109                                 <div id="toolbar">
110                                     <a id="selectall" href="#"><i class="fa fa-check"></i> Select all</a>
111                                     | <a id="clearall" href="#"><i class="fa fa-remove"></i> Clear all</a>
112                                 </div>
113                                 <table id="checkouts">
114                                     <thead>
115                                         <tr>
116                                             <th>&nbsp;</th>
117                                             <th>Due date</th>
118                                             <th>Title</th>
119                                             <th>Item type</th>
120                                             <th>Home library</th>
121                                             <th>Checked out on</th>
122                                             <th>Checked out from</th>
123                                             <th>New due date</th>
124                                         </tr>
125                                     </thead>
126                                     <tbody>
127                                         [% FOR checkout IN checkouts %]
128                                             <tr>
129                                                 <td><input type="checkbox" name="issue_id" value="[% checkout.issue_id | html %]" /></td>
130                                                 <td>[% checkout.date_due | $KohaDates as_due_date => 1 %]</td>
131                                                 <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% checkout.item.biblio.biblionumber | uri %]">[% checkout.item.biblio.title | html %]</a></td>
132                                                 <td>[% ItemTypes.GetDescription( checkout.item.effective_itemtype ) | html %]</td>
133                                                 <td>[% checkout.item.home_branch.branchname | html %]</td>
134                                                 <td>[% checkout.issuedate | $KohaDates %]</td>
135                                                 <td>[% Branches.GetName( checkout.branchcode ) | html %]</td>
136                                                 <td>
137                                                     [% new_due_dates.shift | $KohaDates as_due_date => 1 %]
138                                                 </td>
139                                             </tr>
140                                         [% END %]
141                                     </tbody>
142                                 </table> <!-- /#checkouts -->
143                                 <div class="note"><i class="fa fa-exclamation"></i> Reminder: this action will modify all selected checkouts!</div>
144                                 <fieldset class="action">
145                                     <input type="hidden" name="op" value="modify" />
146                                     <input type="hidden" name="new_hard_due_date" value="[% new_hard_due_date | $KohaDates %]" />
147                                     <input type="hidden" name="due_date_days" value="[% due_date_days | html %]" />
148                                     <input type="submit" value="Modify selected checkouts" class="button" />
149                                     <a class="cancel" href="/cgi-bin/koha/tools/batch_extend_due_dates.pl">Cancel</a>
150                                 </fieldset>
151                             </form> <!-- /#process -->
152                         [% ELSE %]
153                             <div class="dialog message">
154                                 No checkouts for the selected filters.
155                             </div>
156                         [% END %]
157                     [% ELSIF view == 'report' %]
158                         <div class="dialog message">
159                             Due dates have been modified!
160                         </div>
161
162                         <table id="checkouts_result">
163                             <thead>
164                                 <tr>
165                                     <th>Due date</th>
166                                     <th>Title</th>
167                                     <th>Item type</th>
168                                     <th>Home library</th>
169                                     <th>Checked out on</th>
170                                     <th>Checked out from</th>
171                                 </tr>
172                             </thead>
173                             <tbody>
174                                 [% FOR checkout IN checkouts %]
175                                     <tr>
176                                         <td>[% checkout.date_due | $KohaDates as_due_date => 1 %]</td>
177                                         <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% checkout.item.biblio.biblionumber | uri %]">[% checkout.item.biblio.title | html %]</a></td>
178                                         <td>[% ItemTypes.GetDescription( checkout.item.effective_itemtype ) | html %]</td>
179                                         <td>[% checkout.item.home_branch.branchname | html %]</td>
180                                         <td>[% checkout.issuedate | $KohaDates %]</td>
181                                         <td>[% Branches.GetName( checkout.branchcode ) | html %]</td>
182                                     </tr>
183                                 [% END %]
184                             </tbody>
185                         </table> <!-- /#checkouts_result -->
186                     [% END %]
187                 </main>
188             </div> <!-- /.col-sm-10.col-sm-push-2 -->
189
190             <div class="col-sm-2 col-sm-pull-10">
191                 <aside>
192                     [% INCLUDE 'tools-menu.inc' %]
193                 </aside>
194             </div> <!-- /.col-sm-2.col-sm-pull-10 -->
195         </div> <!-- /.row -->
196
197 [% MACRO jsinclude BLOCK %]
198     [% Asset.js("js/tools-menu.js") | $raw %]
199     [% INCLUDE 'calendar.inc' %]
200     [% INCLUDE 'datatables.inc' %]
201     [% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %]
202     [% Asset.js("lib/jquery/plugins/humanmsg.js") | $raw %]
203     <script>
204         $(document).ready(function() {
205
206             $("#selectall").click(function(e) {
207                 e.preventDefault();
208                 $("#checkouts").checkCheckboxes();
209             });
210             $("#clearall").click(function(e) {
211                 e.preventDefault();
212                 $("#checkouts").unCheckCheckboxes();
213             });
214             $("#selectall").click();
215
216             $("table#checkouts").dataTable($.extend(true, {}, dataTablesDefaults, {
217                 "aoColumnDefs": [
218                     { "aTargets": [0, 3], "bSortable": false, "bSearchable": false },
219                     { "aTargets": [1], "sType": "num-html" }
220                 ],
221                 "sDom": 't',
222                 "aaSorting": [],
223                 "bPaginate": false
224             }));
225
226             $("table#checkouts_result").dataTable($.extend(true, {}, dataTablesDefaults, {
227                 "aoColumnDefs": [
228                     { "aTargets": [0, 3], "bSortable": false, "bSearchable": false },
229                     { "aTargets": [1], "sType": "num-html" }
230                 ],
231                 "sDom": 't',
232                 "aaSorting": [],
233                 "bPaginate": false
234             }));
235
236             $("#extend_due_dates_form").on('submit', function(e) {
237                 var new_hard_due_date = $("#new_hard_due_date").val();
238                 var due_date_days = $("#due_date_days").val();
239                 if (new_hard_due_date && due_date_days ) {
240                     e.preventDefault();
241                     alert(_("You must fill only one of the two due date options"));
242                     return false;
243                 } else if ( !new_hard_due_date && !due_date_days ) {
244                     e.preventDefault();
245                     alert(_("You must fill at least one of the two due date options"));
246                     return false;
247                 }
248
249                 return true;
250             });
251
252             $("#process").on('submit', function(e) {
253                 if ($("input[type=checkbox][name='issue_id']:checked").length == 0) {
254                     e.preventDefault();
255                     alert(_("Please select at least one checkout to process"));
256                     return false;
257                 }
258                 return true;
259             });
260
261         });
262     </script>
263 [% END %]
264
265 [% INCLUDE 'intranet-bottom.inc' %]