Bugzilla – Attachment 3315 Details for
Bug 5877
Offline circulation improvements : upload all files, apply at once
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed Patch
0001-Bug-5877-Offline-circulation-improvements-upload-all.patch (text/plain), 11.52 KB, created by
Chris Cormack
on 2011-03-16 02:40:47 UTC
(
hide
)
Description:
Proposed Patch
Filename:
MIME Type:
Creator:
Chris Cormack
Created:
2011-03-16 02:40:47 UTC
Size:
11.52 KB
patch
obsolete
>From f2277769721326907ac573ea8dedf164280a5739 Mon Sep 17 00:00:00 2001 >From: Paul Poulain <paul.poulain@biblibre.com> >Date: Wed, 15 Dec 2010 13:40:52 +0100 >Subject: [PATCH] Bug 5877 : Offline circulation improvements : upload all files, apply at once > >Offline circ : You now can upload all offline files from the Firefox extension. >Once all circ desks have uploaded the file, the librarian can apply all of them, sorted by date. >This avoid the problem of someone issuing an item on desk A, returning it on desk B. >Before this improvement, if desk B uploaded the file before A, the return was applied before the issue, >resulting in the items reamining issued. >--- > .../prog/en/modules/offline_circ/list.tmpl | 97 ++++++++++++++++++++ > offline_circ/list.pl | 57 ++++++++++++ > offline_circ/process.pl | 48 ++++++++++ > offline_circ/service.pl | 60 ++++++++++++ > 4 files changed, 262 insertions(+), 0 deletions(-) > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/list.tmpl > create mode 100755 offline_circ/list.pl > create mode 100755 offline_circ/process.pl > create mode 100755 offline_circ/service.pl > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/list.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/list.tmpl >new file mode 100644 >index 0000000..50fe065 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/list.tmpl >@@ -0,0 +1,97 @@ >+ <!-- TMPL_INCLUDE NAME="doc-head-open.inc" --> >+ <title>Koha › Circulation › Offline Circulation</title> >+ <!-- TMPL_INCLUDE NAME="doc-head-close.inc" --> >+ <script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.tablesorter.min.js"></script> >+ <script type="text/javascript" language="javascript"> >+ $(document).ready(function() { >+ $('#checkall').click(function() { >+ $(":checkbox").attr('checked', $('#checkall').is(':checked')); >+ }); >+ $('#process,#delete').click(function() { >+ var action = $(this).attr("id"); >+ $(":checkbox[name=operationid]:checked").each(function() { >+ var cb = $(this); >+ $.ajax({ >+ url: "process.pl", >+ data: { 'action': action, 'operationid': this.value }, >+ async: false, >+ dataType: "text", >+ success: function(data) { >+ cb.replaceWith(data); >+ }}); >+ }); >+ if( $('#operations tbody :checkbox').size() == 0 ) { >+ $('#actions').hide(); >+ } >+ }); >+ }); >+ </script> >+</head> >+<body> >+ <!-- TMPL_INCLUDE NAME="header.inc" --> >+ <!-- TMPL_INCLUDE NAME="circ-search.inc" --> >+ >+ <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> › Offline Circulation</div> >+ >+ <div id="doc" class="yui-t7"> >+ >+ <div id="bd"> >+ >+ <h2>Offline Circulation</h2> >+ >+ <!-- TMPL_IF NAME="operations" --> >+ >+ <form> >+ >+ <table id="operations"> >+ <thead> >+ <tr> >+ <th><input type="checkbox" name="checkall" id="checkall" /></th> >+ <th>Date</th> >+ <th>Action</th> >+ <th>Barcode</th> >+ <th>Cardnumber</th> >+ </tr> >+ </thead> >+ <tbody> >+ <!-- TMPL_LOOP NAME="operations" --> >+ <tr class="oc-<!-- TMPL_VAR NAME="action" -->"> >+ <td><input type="checkbox" name="operationid" value="<!-- TMPL_VAR NAME="operationid" -->" /></td> >+ <td><!-- TMPL_VAR NAME="timestamp" --></td> >+ <td><!-- TMPL_VAR NAME="action" --></td> >+ <td> >+ <!-- TMPL_IF NAME="biblionumber" --> >+ <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->" title="<!-- TMPL_VAR NAME="bibliotitle" -->"><!-- TMPL_VAR NAME="barcode" --></a> >+ <!-- TMPL_ELSE --> >+ <span class="error"><!-- TMPL_VAR NAME="barcode" --></span> >+ <!-- /TMPL_IF --> >+ </td> >+ <td> >+ <!-- TMPL_IF NAME="actionissue" --> >+ <!-- TMPL_IF NAME="borrowernumber" --> >+ <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->" title="<!-- TMPL_VAR NAME="borrower" -->"><!-- TMPL_VAR NAME="cardnumber" --></a> >+ <!-- TMPL_ELSE --> >+ <span class="error"><!-- TMPL_VAR NAME="cardnumber" --></span> >+ <!-- /TMPL_IF --> >+ <!-- /TMPL_IF --> >+ </td> >+ </tr> >+ <!-- /TMPL_LOOP --> >+ </tbody> >+ </table> >+ >+ <p id="actions">For the selected operations: >+ <input type="button" id="process" value="Process" /> >+ <input type="button" id="delete" value="Delete" /></p> >+ >+ </form> >+ >+ <!-- TMPL_ELSE --> >+ >+ <p>There is no pending offline operations.</p> >+ >+ <!-- /TMPL_IF --> >+ >+ </div> >+ >+ <!-- TMPL_INCLUDE NAME="intranet-bottom.inc" --> >diff --git a/offline_circ/list.pl b/offline_circ/list.pl >new file mode 100755 >index 0000000..e95411a >--- /dev/null >+++ b/offline_circ/list.pl >@@ -0,0 +1,57 @@ >+#!/usr/bin/perl >+ >+# 2009 BibLibre <jeanandre.santoni@biblibre.com> >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it under the >+# terms of the GNU General Public License as published by the Free Software >+# Foundation; either version 2 of the License, or (at your option) any later >+# version. >+# >+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY >+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR >+# A PARTICULAR PURPOSE. See the GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License along with >+# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, >+# Suite 330, Boston, MA 02111-1307 USA >+# >+ >+use CGI; >+use C4::Output; >+use C4::Auth; >+use C4::Koha; >+use C4::Context; >+use C4::Circulation; >+use C4::Branch; >+use C4::Members; >+use C4::Biblio; >+ >+my $query = CGI->new; >+ >+my ($template, $loggedinuser, $cookie) = get_template_and_user({ >+ template_name => "offline_circ/list.tmpl", >+ query => $query, >+ type => "intranet", >+ authnotrequired => 0, >+ flagsrequired => { circulate => "circulate_remaining_permissions" }, >+}); >+ >+my $operations = GetOfflineOperations; >+ >+for (@$operations) { >+ my $biblio = GetBiblioFromItemNumber(undef, $_->{'barcode'}); >+ $_->{'bibliotitle'} = $biblio->{'title'}; >+ $_->{'biblionumber'} = $biblio->{'biblionumber'}; >+ my $borrower = GetMemberDetails(undef,$_->{'cardnumber'}); >+ $_->{'borrowernumber'} = $borrower->{'borrowernumber'}; >+ $_->{'borrower'} = join(' ', $borrower->{'firstname'}, $borrower->{'surname'}); >+ $_->{'actionissue'} = $_->{'action'} eq 'issue'; >+ $_->{'actionreturn'} = $_->{'action'} eq 'return'; >+} >+ >+$template->param(operations => $operations); >+ >+output_html_with_http_headers $query, $cookie, $template->output; >+ >diff --git a/offline_circ/process.pl b/offline_circ/process.pl >new file mode 100755 >index 0000000..e1d1acd >--- /dev/null >+++ b/offline_circ/process.pl >@@ -0,0 +1,48 @@ >+#!/usr/bin/perl >+ >+# 2009 BibLibre <jeanandre.santoni@biblibre.com> >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it under the >+# terms of the GNU General Public License as published by the Free Software >+# Foundation; either version 2 of the License, or (at your option) any later >+# version. >+# >+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY >+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR >+# A PARTICULAR PURPOSE. See the GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License along with >+# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, >+# Suite 330, Boston, MA 02111-1307 USA >+# >+ >+use CGI; >+use C4::Auth; >+use C4::Circulation; >+ >+my $query = CGI->new; >+ >+my ($template, $loggedinuser, $cookie) = get_template_and_user({ >+ template_name => "offline_circ/list.tmpl", >+ query => $query, >+ type => "intranet", >+ authnotrequired => 0, >+ flagsrequired => { circulate => "circulate_remaining_permissions" }, >+}); >+ >+my $operationid = $query->param('operationid'); >+my $action = $query->param('action'); >+my $result; >+ >+if ( $action eq 'process' ) { >+ my $operation = GetOfflineOperation( $operationid ); >+ $result = ProcessOfflineOperation( $operation ); >+} elsif ( $action eq 'delete' ) { >+ $result = DeleteOfflineOperation( $operationid ); >+} >+ >+print CGI::header('-type'=>'text/plain', '-charset'=>'utf-8'); >+print $result; >+ >diff --git a/offline_circ/service.pl b/offline_circ/service.pl >new file mode 100755 >index 0000000..40bd4c7 >--- /dev/null >+++ b/offline_circ/service.pl >@@ -0,0 +1,60 @@ >+#!/usr/bin/perl >+ >+# 2009 BibLibre <jeanandre.santoni@biblibre.com> >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it under the >+# terms of the GNU General Public License as published by the Free Software >+# Foundation; either version 2 of the License, or (at your option) any later >+# version. >+# >+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY >+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR >+# A PARTICULAR PURPOSE. See the GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License along with >+# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, >+# Suite 330, Boston, MA 02111-1307 USA >+# >+ >+use CGI; >+use C4::Auth; >+use C4::Circulation; >+ >+my $cgi = CGI->new; >+ >+# get the status of the user, this will check his credentials and rights >+my ($status, $cookie, $sessionId) = C4::Auth::check_api_auth($cgi, undef); >+ >+my $result; >+ >+if ($status eq 'ok') { # if authentication is ok >+ if ( $cgi->param('pending') eq 'true' ) { # if the 'pending' flag is true, we store the operation in the db instead of directly processing them >+ $result = AddOfflineOperation( >+ $cgi->param('userid') || '', >+ $cgi->param('branchcode') || '', >+ $cgi->param('timestamp') || '', >+ $cgi->param('action') || '', >+ $cgi->param('barcode') || '', >+ $cgi->param('cardnumber') || '', >+ ); >+ } else { >+ $result = ProcessOfflineOperation( >+ { >+ 'userid' => $cgi->param('userid'), >+ 'branchcode' => $cgi->param('branchcode'), >+ 'timestamp' => $cgi->param('timestamp'), >+ 'action' => $cgi->param('action'), >+ 'barcode' => $cgi->param('barcode'), >+ 'cardnumber' => $cgi->param('cardnumber'), >+ } >+ ); >+ } >+} else { >+ $result = "Authentication failed." >+} >+ >+print CGI::header('-type'=>'text/plain', '-charset'=>'utf-8'); >+print $result; >+ >-- >1.7.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 5877
:
3315
|
3400
|
4661
|
4861
|
4862
|
5681
|
5683
|
6540
|
7218
|
7250
|
7618
|
7715
|
7716
|
7717
|
7718
|
7812
|
7960