View | Details | Raw Unified | Return to bug 8030
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc (+1 lines)
Lines 39-43 Link Here
39
    var SUSPEND_HOLD_ERROR_DATE = _("Unable to suspend hold, invalid date");
39
    var SUSPEND_HOLD_ERROR_DATE = _("Unable to suspend hold, invalid date");
40
    var SUSPEND_HOLD_ERROR_NOT_FOUND = _("Unable to suspend hold, hold not found");
40
    var SUSPEND_HOLD_ERROR_NOT_FOUND = _("Unable to suspend hold, hold not found");
41
    var RESUME_HOLD_ERROR_NOT_FOUND = _("Unable to resume, hold not found");
41
    var RESUME_HOLD_ERROR_NOT_FOUND = _("Unable to resume, hold not found");
42
    var CURRENT = _(" (current) ");
42
//]]>
43
//]]>
43
</script>
44
</script>
(-)a/koha-tmpl/intranet-tmpl/prog/js/holds.js (-23 / +19 lines)
Lines 107-113 $(document).ready(function() { Link Here
107
                                    var setbranch;
107
                                    var setbranch;
108
                                    if( oObj.branches[i].selected ){
108
                                    if( oObj.branches[i].selected ){
109
                                        selectedbranch = " selected='selected' ";
109
                                        selectedbranch = " selected='selected' ";
110
                                        setbranch = " (set) ";
110
                                        setbranch = CURRENT;
111
                                    }
111
                                    }
112
                                    else{
112
                                    else{
113
                                        selectedbranch = '';
113
                                        selectedbranch = '';
Lines 196-223 $(document).ready(function() { Link Here
196
                });
196
                });
197
197
198
                $(".hold_location_select").change(function(){
198
                $(".hold_location_select").change(function(){
199
                    if( confirm( _("Do you want to change the pickup location?") ) ){
199
                    $(this).prop("disabled",true);
200
                        $(this).prop("disabled",true);
200
                    var cur_select = $(this);
201
                        var cur_select = $(this);
201
                    var res_id = $(this).attr('reserve_id');
202
                        $(this).after('<i id="holdwaiter" class="fa fa-circle-o-notch fa-spin fa-lg fa-fw"></i>');
202
                    $(this).after('<div id="updating_reserveno'+res_id+'" class="waiting"><img src="/intranet-tmpl/prog/img/loading-small.gif" alt="" /><span class="waiting_msg"></span></div>');
203
                        var api_url = '/api/v1/holds/'+$(this).attr('reserve_id');
203
                    var api_url = '/api/v1/holds/'+res_id;
204
                        var update_info = JSON.stringify({ branchcode: $(this).val(), priority: parseInt($(this).attr("priority"),10) });
204
                    var update_info = JSON.stringify({ branchcode: $(this).val(), priority: parseInt($(this).attr("priority"),10) });
205
                        $.ajax({
205
                    $.ajax({
206
                            method: "PUT",
206
                        method: "PUT",
207
                            url: api_url,
207
                        url: api_url,
208
                            data: update_info ,
208
                        data: update_info ,
209
                            success: function( data ){ holdsTable.api().ajax.reload(); },
209
                        success: function( data ){ holdsTable.api().ajax.reload(); },
210
                            error: function( jqXHR, textStatus, errorThrown) {
210
                        error: function( jqXHR, textStatus, errorThrown) {
211
                                alert('There was an error:'+textStatus+" "+errorThrown);
211
                            alert('There was an error:'+textStatus+" "+errorThrown);
212
                                cur_select.prop("disabled",false);
212
                            cur_select.prop("disabled",false);
213
                                $("#holdwaiter").remove();
213
                            $("#updating_reserveno"+res_id).remove();
214
                                cur_select.val( cur_select.children('option[selected="selected"]').val() );
214
                            cur_select.val( cur_select.children('option[selected="selected"]').val() );
215
                            },
215
                        },
216
                        });
216
                    });
217
                    }
218
                    else{
219
                        $(this).val( $(this).children('option[selected="selected"]').val()  );
220
                    }
221
                });
217
                });
222
218
223
            });
219
            });
(-)a/svc/hold/update_location (-66 lines)
Lines 1-65 Link Here
1
#!/usr/bin/perl
2
3
# Copyright 2015 ByWater Solutions
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 3 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use Modern::Perl;
21
22
use CGI;
23
use JSON qw(to_json);
24
25
use C4::Context;
26
use C4::Output qw(output_with_http_headers);
27
use C4::Auth qw(check_cookie_auth);
28
use C4::Reserves qw(ModReserve);
29
use Koha::DateUtils qw(dt_from_string);
30
use Koha::Holds;
31
32
my $input = new CGI;
33
34
my ( $auth_status, $sessionID ) =
35
  check_cookie_auth( $input->cookie('CGISESSID'), { circulate => 'circulate_remaining_permissions' } );
36
37
if ( $auth_status ne "ok" ) {
38
    print $input->header(-type => 'text/plain', -status => '403 Forbidden');
39
    exit 0;
40
}
41
42
my $reserve_id = $input->param('reserve_id');
43
my $updated_branch = $input->param('updated_branch');
44
45
my $hold = Koha::Holds->find( $reserve_id );
46
47
unless ( $hold ) {
48
    my $json = to_json( { success => 0, error => "HOLD_NOT_FOUND" } );
49
    output_with_http_headers( $input, undef, $json, "json" );
50
    exit;
51
}
52
53
ModReserve( {
54
                rank => $hold->priority,
55
                reserve_id => $hold->reserve_id,
56
                branchcode => $updated_branch,
57
                itemnumber => $hold->itemnumber,
58
                borrowernumber => $hold->borrowernumber,
59
                biblionumber => $hold->biblionumber
60
            });
61
62
$hold = Koha::Holds->find( $reserve_id );
63
64
my $json = to_json( { success => ( $hold->branchcode eq $updated_branch )  } );
65
output_with_http_headers( $input, undef, $json, "json" );
66
- 

Return to bug 8030