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

(-)a/acqui/check_duplicate_bookseller_ajax.pl (+53 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# BibLibre, 2012
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 2 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 strict;
21
use warnings;
22
use CGI;
23
use CGI::Cookie;
24
use JSON;
25
use C4::Auth;
26
use C4::Bookseller qw/GetBookSeller/;
27
use C4::Context;
28
29
my $input = new CGI;
30
print $input->header('application/json');
31
32
# Check the user's permissions
33
my %cookies = fetch CGI::Cookie;
34
my $sessid = $cookies{'CGISESSID'}->value || $input->param('CGISESSID');
35
my ( $auth_status, $auth_sessid ) =
36
  C4::Auth::check_cookie_auth( $sessid, { acquisition => 'order_manage' } );
37
if ( $auth_status ne "ok" ) {
38
    print to_json( { status => 'UNAUTHORIZED' } );
39
    exit 0;
40
}
41
42
my $json;
43
44
# Check if the bookseller already exists.
45
my @booksellers = GetBookSeller('');
46
foreach my $bookseller (@booksellers) {
47
    if ( $input->param('companyName') eq $bookseller->{'name'} ) {
48
        $json->{status} = "DUPLICATES";
49
    }
50
}
51
52
$json->{status} = 'OK' unless defined $json->{status};
53
print to_json($json);
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/supplier.tt (-6 / +55 lines)
Lines 9-19 function confirm_deletion() { Link Here
9
    }
9
    }
10
}
10
}
11
function check(f) {
11
function check(f) {
12
if (f.company.value == "") {
12
// invalid characters
13
    alert(_("You must specify a name for this vendor."));
13
    var patt=/"/g;
14
    return false;
14
    var companyName = f.company.value;
15
}
15
    companyName = companyName.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
16
    f.submit();
16
    [% IF ( id ) %]
17
        var id = "[% id %]";
18
        var originalName = "[% name %]";    // vendor name at the loading of the page (useful when editing)
19
    [% ELSE %]
20
        var id = "";
21
        var originalName = "";
22
    [% END %]
23
24
    if (companyName == "") {
25
        alert(_("You must specify a name for this vendor."));
26
        return false;
27
    }
28
    else if (patt.test(companyName) ) {
29
        alert(_("The vendor name contains invalid characters."));
30
        return false;
31
    }
32
    else {
33
        if ( (id != "") && (companyName == originalName) ) {
34
            // vendor has been modified but name stayed the same -> no need to check for duplicates
35
            f.submit();
36
        }
37
        else {
38
            // AJAX check for duplicate vendor names
39
            $.ajax({
40
                url: "/cgi-bin/koha/acqui/check_duplicate_bookseller_ajax.pl",
41
                async:false,
42
                method: "post",
43
                data: {companyName : companyName},
44
                dataType: 'json',
45
46
                error: function(xhr) {
47
                    alert("Error: \n" + xhr.responseText);
48
                },
49
                success: function(json) {
50
                    switch(json.status) {
51
                        case 'UNAUTHORIZED':
52
                            alert(_("Error: Duplicate bookseller verification failed. Insufficient user permissions."));
53
                            return false;
54
                            break;
55
                        case 'DUPLICATES':
56
                            alert(_("This vendor name already exists in the database."));
57
                            return false;
58
                            break;
59
                        case 'OK':
60
                            f.submit();
61
                            break;
62
                    }
63
                },
64
            });
65
        }
66
    }
17
}
67
}
18
//]]>
68
//]]>
19
</script>
69
</script>
20
- 

Return to bug 7422