| 
      
            Lines 126-344
          $(document).ready(function() {
      
      
        Link Here
      
     | 
  
        
          | 126 | 
           | 
          126 | 
           | 
        
        
          | 127 | 
              var ymd = $.datepicker.formatDate('yy-mm-dd', new Date()); | 
          127 | 
              var ymd = $.datepicker.formatDate('yy-mm-dd', new Date()); | 
        
        
          | 128 | 
           | 
          128 | 
           | 
        
          
            
              | 129 | 
                  var issuesTable;  | 
              129 | 
                  // Don't bother loading table if there are no checkouts to show  | 
            
            
              | 130 | 
                  var drawn = 0;  | 
              130 | 
                  if ( issues_count ) { | 
            
            
              | 131 | 
                  issuesTable = $("#issues-table").dataTable({ | 
              131 | 
                      var issuesTable;  | 
            
            
              | 132 | 
                      "oLanguage": { | 
              132 | 
               | 
            
            
              | 133 | 
                          "sEmptyTable" : MSG_DT_LOADING_RECORDS,  | 
              133 | 
                      if ( checkouts_table_seconds_to_load ) { | 
            
            
              | 134 | 
                      },  | 
              134 | 
                          $('#issues-table').hide(); | 
            
            
              | 135 | 
                      "bAutoWidth": false,  | 
              135 | 
                          $('#issues-table-actions').hide(); | 
            
            
              | 136 | 
                      "sDom": "<'row-fluid'<'span6'><'span6'>r>t<'row-fluid'>t",  | 
              136 | 
                          $('#issues-table-load-now-button').click(function(){ | 
            
            
              | 137 | 
                      "aoColumns": [  | 
              137 | 
                              LoadIssuesTableNow();  | 
            
            
              | 138 | 
                          { | 
              138 | 
                              return false;  | 
            
            
              | 139 | 
                              "mDataProp": function( oObj ) { | 
              139 | 
                          });  | 
            
            
              | 140 | 
                                  if ( oObj.issued_today ) { | 
              140 | 
                          var loadIssuesTableInterval = setInterval(function(){ CountdownIssuesTableLoading(); }, 1000); | 
            
            
              | 141 | 
                                      return "<strong>" + TODAYS_CHECKOUTS + "</strong>";  | 
              141 | 
                      } else { | 
            
            
              | 142 | 
                                  } else { | 
              142 | 
                          $('#issues-table-loading-message').hide(); | 
            
            
              | 143 | 
                                      return "<strong>" + PREVIOUS_CHECKOUTS + "</strong>";  | 
              143 | 
                          LoadIssuesTable();  | 
            
            
              | 144 | 
                                  }  | 
              144 | 
                      }  | 
            
            
              | 145 | 
                              }  | 
              145 | 
                  }  | 
            
            
              | 146 | 
                          },  | 
              146 | 
                    | 
            
            
              | 147 | 
                          { | 
              147 | 
                  function CountdownIssuesTableLoading(){ | 
            
            
              | 148 | 
                              "mDataProp": "date_due",  | 
              148 | 
                      if ( checkouts_table_seconds_to_load ) { | 
            
            
              | 149 | 
                              "bVisible": false,  | 
              149 | 
                          $('#issues-table-loading-count').text( checkouts_table_seconds_to_load ); | 
            
            
               | 
               | 
              150 | 
                          checkouts_table_seconds_to_load--;  | 
            
            
              | 151 | 
                      } else { | 
            
            
              | 152 | 
                          LoadIssuesTableNow();  | 
            
            
              | 153 | 
                      }  | 
            
            
              | 154 | 
                  }  | 
            
            
              | 155 | 
               | 
            
            
              | 156 | 
                  function LoadIssuesTableNow() { | 
            
            
              | 157 | 
                      clearInterval(loadIssuesTableInterval);  | 
            
            
              | 158 | 
                      $('#issues-table-loading-message').hide(); | 
            
            
              | 159 | 
                      $('#issues-table').show(); | 
            
            
              | 160 | 
                      $('#issues-table-actions').show(); | 
            
            
              | 161 | 
                      LoadIssuesTable();  | 
            
            
              | 162 | 
                  }  | 
            
            
              | 163 | 
               | 
            
            
              | 164 | 
                  function LoadIssuesTable() { | 
            
            
              | 165 | 
                      issuesTable = $("#issues-table").dataTable({ | 
            
            
              | 166 | 
                          "oLanguage": { | 
            
            
              | 167 | 
                              "sEmptyTable" : MSG_DT_LOADING_RECORDS,  | 
            
        
          | 150 | 
                      },  | 
          168 | 
                      },  | 
        
          
            
              | 151 | 
                          { | 
              169 | 
                          "bAutoWidth": false,  | 
            
            
              | 152 | 
                              "iDataSort": 1, // Sort on hidden unformatted date due column  | 
              170 | 
                          "sDom": "<'row-fluid'<'span6'><'span6'>r>t<'row-fluid'>t",  | 
            
            
              | 153 | 
                              "mDataProp": function( oObj ) { | 
              171 | 
                          "aoColumns": [  | 
            
            
              | 154 | 
                                  var today = new Date();  | 
              172 | 
                              { | 
            
            
              | 155 | 
                                  var due = new Date( oObj.date_due );  | 
              173 | 
                                  "mDataProp": function( oObj ) { | 
            
            
              | 156 | 
                                  if ( today > due ) { | 
              174 | 
                                      if ( oObj.issued_today ) { | 
            
            
              | 157 | 
                                      return "<span class='overdue'>" + oObj.date_due_formatted + "</span>";  | 
              175 | 
                                          return "<strong>" + TODAYS_CHECKOUTS + "</strong>";  | 
            
            
              | 158 | 
                                  } else { | 
              176 | 
                                      } else { | 
            
            
              | 159 | 
                                      return oObj.date_due_formatted;  | 
              177 | 
                                          return "<strong>" + PREVIOUS_CHECKOUTS + "</strong>";  | 
            
            
               | 
               | 
              178 | 
                                      }  | 
            
        
          | 160 | 
                              }  | 
          179 | 
                              }  | 
        
          
            
              | 161 | 
                              }  | 
              180 | 
                              },  | 
            
            
              | 162 | 
                          },  | 
              181 | 
                              { | 
            
            
              | 163 | 
                          { | 
              182 | 
                                  "mDataProp": "date_due",  | 
            
            
              | 164 | 
                              "mDataProp": function ( oObj ) { | 
              183 | 
                                  "bVisible": false,  | 
            
            
              | 165 | 
                                  title = "<span class='strong'><a href='/cgi-bin/koha/catalogue/detail.pl?biblionumber="  | 
              184 | 
                              },  | 
            
            
              | 166 | 
                                        + oObj.biblionumber  | 
              185 | 
                              { | 
            
            
              | 167 | 
                                        + "'>"  | 
              186 | 
                                  "iDataSort": 1, // Sort on hidden unformatted date due column  | 
            
            
              | 168 | 
                                        + oObj.title;  | 
              187 | 
                                  "mDataProp": function( oObj ) { | 
            
            
              | 169 | 
               | 
              188 | 
                                      var today = new Date();  | 
            
            
              | 170 | 
                                  $.each(oObj.subtitle, function( index, value ) { | 
              189 | 
                                      var due = new Date( oObj.date_due );  | 
            
            
              | 171 | 
                                            title += " " + value.subfield;  | 
              190 | 
                                      if ( today > due ) { | 
            
            
              | 172 | 
                                  });  | 
              191 | 
                                          return "<span class='overdue'>" + oObj.date_due_formatted + "</span>";  | 
            
            
               | 
               | 
              192 | 
                                      } else { | 
            
            
              | 193 | 
                                          return oObj.date_due_formatted;  | 
            
            
              | 194 | 
                                      }  | 
            
            
              | 195 | 
                                  }  | 
            
            
              | 196 | 
                              },  | 
            
            
              | 197 | 
                              { | 
            
            
              | 198 | 
                                  "mDataProp": function ( oObj ) { | 
            
            
              | 199 | 
                                      title = "<span class='strong'><a href='/cgi-bin/koha/catalogue/detail.pl?biblionumber="  | 
            
            
              | 200 | 
                                            + oObj.biblionumber  | 
            
            
              | 201 | 
                                            + "'>"  | 
            
            
              | 202 | 
                                            + oObj.title;  | 
            
        
          | 173 | 
           | 
          203 | 
           | 
        
          
            
              | 174 | 
                                  title += "</a></span>";  | 
              204 | 
                                      $.each(oObj.subtitle, function( index, value ) { | 
            
            
               | 
               | 
              205 | 
                                                title += " " + value.subfield;  | 
            
            
              | 206 | 
                                      });  | 
            
        
          | 175 | 
           | 
          207 | 
           | 
        
          
            
              | 176 | 
                                  if ( oObj.author ) { | 
              208 | 
                                      title += "</a></span>";  | 
            
            
              | 177 | 
                                      title += " " + BY.replace( "_AUTHOR_",  " " + oObj.author );  | 
               | 
               | 
            
            
              | 178 | 
                                  }  | 
            
        
          | 179 | 
           | 
          209 | 
           | 
        
          
            
              | 180 | 
                                  if ( oObj.itemnotes ) { | 
              210 | 
                                      if ( oObj.author ) { | 
            
            
              | 181 | 
                                      var span_class = "";  | 
              211 | 
                                          title += " " + BY.replace( "_AUTHOR_",  " " + oObj.author );  | 
            
            
              | 182 | 
                                      if ( $.datepicker.formatDate('yy-mm-dd', new Date(oObj.issuedate) ) == ymd ) { | 
               | 
               | 
            
            
              | 183 | 
                                          span_class = "circ-hlt";  | 
            
        
          | 184 | 
                                  }  | 
          212 | 
                                  }  | 
        
            
              | 185 | 
                                      title += " - <span class='" + span_class + "'>" + oObj.itemnotes + "</span>"  | 
               | 
               | 
            
            
              | 186 | 
                                  }  | 
            
        
          | 187 | 
           | 
          213 | 
           | 
        
          
            
              | 188 | 
                                  title += " "  | 
              214 | 
                                      if ( oObj.itemnotes ) { | 
            
            
              | 189 | 
                                        + "<a href='/cgi-bin/koha/catalogue/moredetail.pl?biblionumber="  | 
              215 | 
                                          var span_class = "";  | 
            
            
              | 190 | 
                                        + oObj.biblionumber  | 
              216 | 
                                          if ( $.datepicker.formatDate('yy-mm-dd', new Date(oObj.issuedate) ) == ymd ) { | 
            
            
              | 191 | 
                                        + "&itemnumber="  | 
              217 | 
                                              span_class = "circ-hlt";  | 
            
            
              | 192 | 
                                        + oObj.itemnumber  | 
              218 | 
                                          }  | 
            
            
              | 193 | 
                                        + "#"  | 
              219 | 
                                          title += " - <span class='" + span_class + "'>" + oObj.itemnotes + "</span>"  | 
            
            
              | 194 | 
                                        + oObj.itemnumber  | 
              220 | 
                                      }  | 
            
            
              | 195 | 
                                        + "'>"  | 
               | 
               | 
            
            
              | 196 | 
                                        + oObj.barcode  | 
            
            
              | 197 | 
                                        + "</a>";  | 
            
            
              | 198 | 
               | 
            
            
              | 199 | 
                                  return title;  | 
            
            
              | 200 | 
                              }  | 
            
            
              | 201 | 
                          },  | 
            
            
              | 202 | 
                          { "mDataProp": "itemtype" }, | 
            
            
              | 203 | 
                          { "mDataProp": "issuedate_formatted" }, | 
            
            
              | 204 | 
                          { "mDataProp": "branchname" }, | 
            
            
              | 205 | 
                          { "mDataProp": "itemcallnumber" }, | 
            
            
              | 206 | 
                          { | 
            
            
              | 207 | 
                              "mDataProp": function ( oObj ) { | 
            
            
              | 208 | 
                                  if ( ! oObj.charge ) oObj.charge = 0;  | 
            
            
              | 209 | 
                                  return parseFloat(oObj.charge).toFixed(2);  | 
            
            
              | 210 | 
                              }  | 
            
            
              | 211 | 
                          },  | 
            
            
              | 212 | 
                          { | 
            
            
              | 213 | 
                              "mDataProp": function ( oObj ) { | 
            
            
              | 214 | 
                                  if ( ! oObj.price ) oObj.price = 0;  | 
            
            
              | 215 | 
                                  return parseFloat(oObj.price).toFixed(2);  | 
            
            
              | 216 | 
                              }  | 
            
            
              | 217 | 
                          },  | 
            
            
              | 218 | 
                          { | 
            
            
              | 219 | 
                              "bSortable": false,  | 
            
            
              | 220 | 
                              "mDataProp": function ( oObj ) { | 
            
            
              | 221 | 
                                  var content = "";  | 
            
            
              | 222 | 
                                  var span_style = "";  | 
            
            
              | 223 | 
                                  var span_class = "";  | 
            
            
              | 224 | 
               | 
            
            
              | 225 | 
                                  content += "<span>";  | 
            
            
              | 226 | 
                                  content += "<span style='padding: 0 1em;'>" + oObj.renewals_count + "</span>";  | 
            
            
              | 227 | 
               | 
            
            
              | 228 | 
                                  if ( oObj.can_renew ) { | 
            
            
              | 229 | 
                                      // Do nothing  | 
            
            
              | 230 | 
                                  } else if ( oObj.can_renew_error == "on_reserve" ) { | 
            
            
              | 231 | 
                                      content += "<span class='renewals-disabled'>"  | 
            
            
              | 232 | 
                                              + "<a href='/cgi-bin/koha/reserve/request.pl?biblionumber=" + oObj.biblionumber + "'>" + ON_HOLD + "</a>"  | 
            
            
              | 233 | 
                                              + "</span>";  | 
            
            
              | 234 | 
               | 
            
            
              | 235 | 
                                      span_style = "display: none";  | 
            
            
              | 236 | 
                                      span_class = "renewals-allowed";  | 
            
            
              | 237 | 
                                  } else if ( oObj.can_renew_error == "too_many" ) { | 
            
            
              | 238 | 
                                      content += "<span class='renewals-disabled'>"  | 
            
            
              | 239 | 
                                              + NOT_RENEWABLE  | 
            
            
              | 240 | 
                                              + "</span>";  | 
            
            
              | 241 | 
               | 
            
            
              | 242 | 
                                      span_style = "display: none";  | 
            
            
              | 243 | 
                                      span_class = "renewals-allowed";  | 
            
            
              | 244 | 
                                  } else if ( oObj.can_renew_error == "too_soon" ) { | 
            
            
              | 245 | 
                                      content += "<span class='renewals-disabled'>"  | 
            
            
              | 246 | 
                                              + NOT_RENEWABLE_TOO_SOON.format( oObj.can_renew_date )  | 
            
            
              | 247 | 
                                              + "</span>";  | 
            
            
              | 248 | 
               | 
            
            
              | 249 | 
                                      span_style = "display: none";  | 
            
            
              | 250 | 
                                      span_class = "renewals-allowed";  | 
            
            
              | 251 | 
                                  } else { | 
            
            
              | 252 | 
                                      content += "<span class='renewals-disabled'>"  | 
            
            
              | 253 | 
                                              + oObj.can_renew_error  | 
            
            
              | 254 | 
                                              + "</span>";  | 
            
        
          | 255 | 
           | 
          221 | 
           | 
        
          
            
              | 256 | 
                                      span_style = "display: none";  | 
              222 | 
                                      title += " "  | 
            
            
              | 257 | 
                                      span_class = "renewals-allowed";  | 
              223 | 
                                            + "<a href='/cgi-bin/koha/catalogue/moredetail.pl?biblionumber="  | 
            
            
               | 
               | 
              224 | 
                                            + oObj.biblionumber  | 
            
            
              | 225 | 
                                            + "&itemnumber="  | 
            
            
              | 226 | 
                                            + oObj.itemnumber  | 
            
            
              | 227 | 
                                            + "#"  | 
            
            
              | 228 | 
                                            + oObj.itemnumber  | 
            
            
              | 229 | 
                                            + "'>"  | 
            
            
              | 230 | 
                                            + oObj.barcode  | 
            
            
              | 231 | 
                                            + "</a>";  | 
            
            
              | 232 | 
               | 
            
            
              | 233 | 
                                      return title;  | 
            
            
              | 234 | 
                                  }  | 
            
            
              | 235 | 
                              },  | 
            
            
              | 236 | 
                              { "mDataProp": "itemtype" }, | 
            
            
              | 237 | 
                              { "mDataProp": "issuedate_formatted" }, | 
            
            
              | 238 | 
                              { "mDataProp": "branchname" }, | 
            
            
              | 239 | 
                              { "mDataProp": "itemcallnumber" }, | 
            
            
              | 240 | 
                              { | 
            
            
              | 241 | 
                                  "mDataProp": function ( oObj ) { | 
            
            
              | 242 | 
                                      if ( ! oObj.charge ) oObj.charge = 0;  | 
            
            
              | 243 | 
                                      return parseFloat(oObj.charge).toFixed(2);  | 
            
            
              | 244 | 
                                  }  | 
            
            
              | 245 | 
                              },  | 
            
            
              | 246 | 
                              { | 
            
            
              | 247 | 
                                  "mDataProp": function ( oObj ) { | 
            
            
              | 248 | 
                                      if ( ! oObj.price ) oObj.price = 0;  | 
            
            
              | 249 | 
                                      return parseFloat(oObj.price).toFixed(2);  | 
            
        
          | 258 | 
                              }  | 
          250 | 
                              }  | 
        
            
               | 
               | 
              251 | 
                              },  | 
            
            
              | 252 | 
                              { | 
            
            
              | 253 | 
                                  "bSortable": false,  | 
            
            
              | 254 | 
                                  "mDataProp": function ( oObj ) { | 
            
            
              | 255 | 
                                      var content = "";  | 
            
            
              | 256 | 
                                      var span_style = "";  | 
            
            
              | 257 | 
                                      var span_class = "";  | 
            
        
          | 259 | 
           | 
          258 | 
           | 
        
          
            
              | 260 | 
                                  content += "<span class='" + span_class + "' style='" + span_style + "'>"  | 
              259 | 
                                      content += "<span>";  | 
            
            
              | 261 | 
                                          +  "<input type='checkbox' class='renew' id='renew_" + oObj.itemnumber + "' name='renew' value='" + oObj.itemnumber +"'/>"  | 
              260 | 
                                      content += "<span style='padding: 0 1em;'>" + oObj.renewals_count + "</span>";  | 
            
            
              | 262 | 
                                          +  "</span>";  | 
              261 | 
               | 
            
            
               | 
               | 
              262 | 
                                      if ( oObj.can_renew ) { | 
            
            
              | 263 | 
                                          // Do nothing  | 
            
            
              | 264 | 
                                      } else if ( oObj.can_renew_error == "on_reserve" ) { | 
            
            
              | 265 | 
                                          content += "<span class='renewals-disabled'>"  | 
            
            
              | 266 | 
                                                  + "<a href='/cgi-bin/koha/reserve/request.pl?biblionumber=" + oObj.biblionumber + "'>" + ON_HOLD + "</a>"  | 
            
            
              | 267 | 
                                                  + "</span>";  | 
            
            
              | 268 | 
               | 
            
            
              | 269 | 
                                          span_style = "display: none";  | 
            
            
              | 270 | 
                                          span_class = "renewals-allowed";  | 
            
            
              | 271 | 
                                      } else if ( oObj.can_renew_error == "too_many" ) { | 
            
            
              | 272 | 
                                          content += "<span class='renewals-disabled'>"  | 
            
            
              | 273 | 
                                                  + NOT_RENEWABLE  | 
            
            
              | 274 | 
                                                  + "</span>";  | 
            
            
              | 275 | 
               | 
            
            
              | 276 | 
                                          span_style = "display: none";  | 
            
            
              | 277 | 
                                          span_class = "renewals-allowed";  | 
            
            
              | 278 | 
                                      } else if ( oObj.can_renew_error == "too_soon" ) { | 
            
            
              | 279 | 
                                          content += "<span class='renewals-disabled'>"  | 
            
            
              | 280 | 
                                                  + NOT_RENEWABLE_TOO_SOON.format( oObj.can_renew_date )  | 
            
            
              | 281 | 
                                                  + "</span>";  | 
            
            
              | 282 | 
               | 
            
            
              | 283 | 
                                          span_style = "display: none";  | 
            
            
              | 284 | 
                                          span_class = "renewals-allowed";  | 
            
            
              | 285 | 
                                      } else { | 
            
            
              | 286 | 
                                          content += "<span class='renewals-disabled'>"  | 
            
            
              | 287 | 
                                                  + oObj.can_renew_error  | 
            
            
              | 288 | 
                                                  + "</span>";  | 
            
            
              | 289 | 
               | 
            
            
              | 290 | 
                                          span_style = "display: none";  | 
            
            
              | 291 | 
                                          span_class = "renewals-allowed";  | 
            
            
              | 292 | 
                                      }  | 
            
        
          | 263 | 
           | 
          293 | 
           | 
        
          
            
              | 264 | 
                                  if ( oObj.renewals_remaining ) { | 
              294 | 
                                      content += "<span class='" + span_class + "' style='" + span_style + "'>"  | 
            
            
              | 265 | 
                                      content += "<span class='renewals'>(" | 
              295 | 
                                              +  "<input type='checkbox' class='renew' id='renew_" + oObj.itemnumber + "' name='renew' value='" + oObj.itemnumber +"'/>"  | 
            
            
              | 266 | 
                                              + RENEWALS_REMAINING.format( oObj.renewals_remaining, oObj.renewals_allowed )  | 
              296 | 
                                              +  "</span>";  | 
            
            
              | 267 | 
                                              + ")</span>";  | 
               | 
               | 
            
            
              | 268 | 
                                  }  | 
            
        
          | 269 | 
           | 
          297 | 
           | 
        
          
            
              | 270 | 
                                  content += "</span>";  | 
              298 | 
                                      if ( oObj.renewals_remaining ) { | 
            
            
               | 
               | 
              299 | 
                                          content += "<span class='renewals'>(" | 
            
            
              | 300 | 
                                                  + RENEWALS_REMAINING.format( oObj.renewals_remaining, oObj.renewals_allowed )  | 
            
            
              | 301 | 
                                                  + ")</span>";  | 
            
            
              | 302 | 
                                      }  | 
            
            
              | 303 | 
               | 
            
            
              | 304 | 
                                      content += "</span>";  | 
            
        
          | 271 | 
           | 
          305 | 
           | 
        
        
          | 272 | 
           | 
          306 | 
           | 
        
          
            
              | 273 | 
                                  return content;  | 
              307 | 
                                      return content;  | 
            
            
               | 
               | 
              308 | 
                                  }  | 
            
            
              | 309 | 
                              },  | 
            
            
              | 310 | 
                              { | 
            
            
              | 311 | 
                                  "bSortable": false,  | 
            
            
              | 312 | 
                                  "mDataProp": function ( oObj ) { | 
            
            
              | 313 | 
                                      if ( oObj.can_renew_error == "on_reserve" ) { | 
            
            
              | 314 | 
                                          return "<a href='/cgi-bin/koha/reserve/request.pl?biblionumber=" + oObj.biblionumber + "'>" + ON_HOLD + "</a>";  | 
            
            
              | 315 | 
                                      } else { | 
            
            
              | 316 | 
                                          return "<input type='checkbox' class='checkin' id='checkin_" + oObj.itemnumber + "' name='checkin' value='" + oObj.itemnumber +"'></input>";  | 
            
            
              | 317 | 
                                      }  | 
            
            
              | 318 | 
                                  }  | 
            
            
              | 319 | 
                              },  | 
            
            
              | 320 | 
                              { | 
            
            
              | 321 | 
                                  "bVisible": exports_enabled ? true : false,  | 
            
            
              | 322 | 
                                  "bSortable": false,  | 
            
            
              | 323 | 
                                  "mDataProp": function ( oObj ) { | 
            
            
              | 324 | 
                                      return "<input type='checkbox' class='export' id='export_" + oObj.biblionumber + "' name='biblionumbers' value='" + oObj.biblionumber + "' />";  | 
            
            
              | 325 | 
                                  }  | 
            
            
              | 326 | 
                              }  | 
            
            
              | 327 | 
                          ],  | 
            
            
              | 328 | 
                          "fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) { | 
            
            
              | 329 | 
                              var total_charge = 0;  | 
            
            
              | 330 | 
                              var total_price = 0;  | 
            
            
              | 331 | 
                              for ( var i=0; i < aaData.length; i++ ) { | 
            
            
              | 332 | 
                                  total_charge += aaData[i]['charge'] * 1;  | 
            
            
              | 333 | 
                                  total_price  += aaData[i]['price'] * 1;  | 
            
        
          | 274 | 
                          }  | 
          334 | 
                          }  | 
        
            
               | 
               | 
              335 | 
                              var nCells = nRow.getElementsByTagName('td'); | 
            
            
              | 336 | 
                              nCells[1].innerHTML = total_charge.toFixed(2);  | 
            
            
              | 337 | 
                              nCells[2].innerHTML = total_price.toFixed(2);  | 
            
        
          | 275 | 
                      },  | 
          338 | 
                      },  | 
        
          
            
              | 276 | 
                          { | 
              339 | 
                          "bPaginate": false,  | 
            
            
              | 277 | 
                              "bSortable": false,  | 
              340 | 
                          "bProcessing": true,  | 
            
            
              | 278 | 
                              "mDataProp": function ( oObj ) { | 
              341 | 
                          "bServerSide": false,  | 
            
            
              | 279 | 
                                  if ( oObj.can_renew_error == "on_reserve" ) { | 
              342 | 
                          "sAjaxSource": '/cgi-bin/koha/svc/checkouts',  | 
            
            
              | 280 | 
                                      return "<a href='/cgi-bin/koha/reserve/request.pl?biblionumber=" + oObj.biblionumber + "'>" + ON_HOLD + "</a>";  | 
              343 | 
                          "fnServerData": function ( sSource, aoData, fnCallback ) { | 
            
            
              | 281 | 
                                  } else { | 
              344 | 
                              aoData.push( { "name": "borrowernumber", "value": borrowernumber } ); | 
            
            
              | 282 | 
                                      return "<input type='checkbox' class='checkin' id='checkin_" + oObj.itemnumber + "' name='checkin' value='" + oObj.itemnumber +"'></input>";  | 
              345 | 
               | 
            
            
               | 
               | 
              346 | 
                              $.getJSON( sSource, aoData, function (json) { | 
            
            
              | 347 | 
                                  fnCallback(json)  | 
            
            
              | 348 | 
                              } );  | 
            
            
              | 349 | 
                          },  | 
            
            
              | 350 | 
                          "fnInitComplete": function(oSettings) { | 
            
            
              | 351 | 
                              // Disable rowGrouping plugin after first use  | 
            
            
              | 352 | 
                              // so any sorting on the table doesn't use it  | 
            
            
              | 353 | 
                              var oSettings = issuesTable.fnSettings();  | 
            
            
              | 354 | 
               | 
            
            
              | 355 | 
                              for (f = 0; f < oSettings.aoDrawCallback.length; f++) { | 
            
            
              | 356 | 
                                  if (oSettings.aoDrawCallback[f].sName == 'fnRowGrouping') { | 
            
            
              | 357 | 
                                      oSettings.aoDrawCallback.splice(f, 1);  | 
            
            
              | 358 | 
                                      break;  | 
            
        
          | 283 | 
                              }  | 
          359 | 
                              }  | 
        
        
          | 284 | 
                          }  | 
          360 | 
                          }  | 
        
            
               | 
               | 
              361 | 
               | 
            
            
              | 362 | 
                              oSettings.aaSortingFixed = null;  | 
            
        
          | 285 | 
                      },  | 
          363 | 
                      },  | 
        
            
               | 
               | 
              364 | 
                      }).rowGrouping(  | 
            
        
          | 286 | 
                      { | 
          365 | 
                      { | 
        
          
            
              | 287 | 
                              "bVisible": exports_enabled ? true : false,  | 
              366 | 
                              iGroupingOrderByColumnIndex: 0,  | 
            
            
              | 288 | 
                              "bSortable": false,  | 
              367 | 
                              sGroupingColumnSortDirection: "desc"  | 
            
            
              | 289 | 
                              "mDataProp": function ( oObj ) { | 
               | 
               | 
            
            
              | 290 | 
                                  return "<input type='checkbox' class='export' id='export_" + oObj.biblionumber + "' name='biblionumbers' value='" + oObj.biblionumber + "' />";  | 
            
            
              | 291 | 
                              }  | 
            
            
              | 292 | 
                          }  | 
            
            
              | 293 | 
                      ],  | 
            
            
              | 294 | 
                      "fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) { | 
            
            
              | 295 | 
                          var total_charge = 0;  | 
            
            
              | 296 | 
                          var total_price = 0;  | 
            
            
              | 297 | 
                          for ( var i=0; i < aaData.length; i++ ) { | 
            
            
              | 298 | 
                              total_charge += aaData[i]['charge'] * 1;  | 
            
            
              | 299 | 
                              total_price  += aaData[i]['price'] * 1;  | 
            
            
              | 300 | 
                          }  | 
            
            
              | 301 | 
                          var nCells = nRow.getElementsByTagName('td'); | 
            
            
              | 302 | 
                          nCells[1].innerHTML = total_charge.toFixed(2);  | 
            
            
              | 303 | 
                          nCells[2].innerHTML = total_price.toFixed(2);  | 
            
            
              | 304 | 
                      },  | 
            
            
              | 305 | 
                      "bPaginate": false,  | 
            
            
              | 306 | 
                      "bProcessing": true,  | 
            
            
              | 307 | 
                      "bServerSide": false,  | 
            
            
              | 308 | 
                      "sAjaxSource": '/cgi-bin/koha/svc/checkouts',  | 
            
            
              | 309 | 
                      "fnServerData": function ( sSource, aoData, fnCallback ) { | 
            
            
              | 310 | 
                          aoData.push( { "name": "borrowernumber", "value": borrowernumber } ); | 
            
            
              | 311 | 
               | 
            
            
              | 312 | 
                          $.getJSON( sSource, aoData, function (json) { | 
            
            
              | 313 | 
                              fnCallback(json)  | 
            
            
              | 314 | 
                          } );  | 
            
            
              | 315 | 
                      },  | 
            
            
              | 316 | 
                      "fnInitComplete": function(oSettings) { | 
            
            
              | 317 | 
                          // Disable rowGrouping plugin after first use  | 
            
            
              | 318 | 
                          // so any sorting on the table doesn't use it  | 
            
            
              | 319 | 
                          var oSettings = issuesTable.fnSettings();  | 
            
            
              | 320 | 
               | 
            
            
              | 321 | 
                          for (f = 0; f < oSettings.aoDrawCallback.length; f++) { | 
            
            
              | 322 | 
                              if (oSettings.aoDrawCallback[f].sName == 'fnRowGrouping') { | 
            
            
              | 323 | 
                                  oSettings.aoDrawCallback.splice(f, 1);  | 
            
            
              | 324 | 
                                  break;  | 
            
            
              | 325 | 
                              }  | 
            
        
          | 326 | 
                      }  | 
          368 | 
                      }  | 
        
            
               | 
               | 
              369 | 
                      );  | 
            
        
          | 327 | 
           | 
          370 | 
           | 
        
          
            
              | 328 | 
                          oSettings.aaSortingFixed = null;  | 
              371 | 
                      if ( $("#issues-table").length ) { | 
            
            
              | 329 | 
                      },  | 
              372 | 
                          $("#issues-table_processing").position({ | 
            
            
              | 330 | 
                  }).rowGrouping(  | 
              373 | 
                              of: $( "#issues-table" ),  | 
            
            
              | 331 | 
                      { | 
              374 | 
                              collision: "none"  | 
            
            
              | 332 | 
                          iGroupingOrderByColumnIndex: 0,  | 
              375 | 
                          });  | 
            
            
              | 333 | 
                          sGroupingColumnSortDirection: "desc"  | 
               | 
               | 
            
        
          | 334 | 
                  }  | 
          376 | 
                  }  | 
        
            
              | 335 | 
                  );  | 
               | 
               | 
            
            
              | 336 | 
               | 
            
            
              | 337 | 
                  if ( $("#issues-table").length ) { | 
            
            
              | 338 | 
                      $("#issues-table_processing").position({ | 
            
            
              | 339 | 
                          of: $( "#issues-table" ),  | 
            
            
              | 340 | 
                          collision: "none"  | 
            
            
              | 341 | 
                      });  | 
            
        
          | 342 | 
              }  | 
          377 | 
              }  | 
        
        
          | 343 | 
           | 
          378 | 
           | 
        
        
          | 344 | 
              // Don't load relatives' issues table unless it is clicked on  | 
          379 | 
              // Don't load relatives' issues table unless it is clicked on  |