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

(-)a/acqui/check_duplicate_bookseller_ajax.pl (+54 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);
54
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/supplier.tt (-6 / +42 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
17
    if (companyName == "") {
18
        alert(_("You must specify a name for this vendor."));
19
        return false;
20
    }
21
    else if (patt.test(companyName) ) {
22
        alert(_("The vendor name contains invalid characters."));
23
        return false;
24
    }
25
    else {
26
        // AJAX check for duplicate vendor names
27
        $.ajax({
28
            url: "/cgi-bin/koha/acqui/check_duplicate_bookseller_ajax.pl",
29
            async:false,
30
            method: "post",
31
            data: {companyName : companyName},
32
            dataType: 'json',
33
34
            error: function(xhr) {
35
                alert("Error: \n" + xhr.responseText);
36
            },
37
            success: function(json) {
38
                switch(json.status) {
39
                    case 'UNAUTHORIZED':
40
                        alert(_("Error: Duplicate bookseller verification failed. Insufficient user permissions.."));
41
                        return false;
42
                        break;
43
                    case 'DUPLICATES':
44
                        alert(_("This vendor name already exists in the database."));
45
                        return false;
46
                        break;
47
                    case 'OK':
48
                        f.submit();
49
                        break;
50
                }
51
            },
52
        });
53
    }
17
}
54
}
18
//]]>
55
//]]>
19
</script>
56
</script>
20
- 

Return to bug 7422