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

(-)a/Koha/SharedContent.pm (+90 lines)
Line 0 Link Here
1
package Koha::SharedContent;
2
3
# Copyright 2016 BibLibre Morgane Alonso
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
use JSON;
22
use HTTP::Request;
23
use LWP::UserAgent;
24
25
our $MANA_IP = "http://10.25.159.107:5000";
26
27
sub manaRequest {
28
    my $mana_request = shift;
29
    my $result;
30
31
    $mana_request->content_type('application/json');
32
    my $userAgent = LWP::UserAgent->new;
33
    my $response  = $userAgent->request($mana_request);
34
35
    if ( $response->code ne "204" ) {
36
        $result = from_json( $response->decoded_content );
37
    }
38
    $result->{code} = $response->code;
39
40
    return $result if ( $response->code =~ /^2..$/ );
41
}
42
43
sub manaNewUserPatchRequest {
44
    my $resource = shift;
45
    my $id       = shift;
46
47
    my $url = "$MANA_IP/$resource/$id.json/newUser";
48
    my $request = HTTP::Request->new( PATCH => $url );
49
50
    return manaRequest($request);
51
}
52
53
sub manaPostRequest {
54
    my $resource = shift;
55
    my $content  = shift;
56
57
    my $url = "$MANA_IP/$resource.json";
58
    my $request = HTTP::Request->new( POST => $url );
59
60
    $content->{bulk_import} = 0;
61
    my $json = to_json( $content, { utf8 => 1 } );
62
    $request->content($json);
63
64
    return manaRequest($request);
65
}
66
67
sub manaGetRequestWithId {
68
    my $resource = shift;
69
    my $id       = shift;
70
71
    my $url = "$MANA_IP/$resource/$id.json";
72
    my $request = HTTP::Request->new( GET => $url );
73
74
    return manaRequest($request);
75
}
76
77
sub manaGetRequest {
78
    my $resource   = shift;
79
    my $parameters = shift;
80
81
    $parameters = join '&',
82
      map { defined $parameters->{$_} ? $_ . "=" . $parameters->{$_} : () }
83
      keys %$parameters;
84
    my $url = "$MANA_IP/$resource.json?$parameters";
85
    my $request = HTTP::Request->new( GET => $url );
86
87
    return manaRequest($request);
88
}
89
90
1;
(-)a/Koha/Subscription/Frequencies.pm (+57 lines)
Line 0 Link Here
1
package Koha::Subscription::Frequencies;
2
3
# Copyright 2016 BibLibre Morgane Alonso
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
use Koha::Database;
22
use Koha::Subscription::Frequency;
23
use base qw(Koha::Objects);
24
25
=head1 NAME
26
27
Koha::Subscription::Frequencies - Koha Subscription::Frequency object set class
28
29
=head1 API
30
31
=head2 Class Methods
32
33
=cut
34
35
=head3 type
36
37
=cut
38
39
sub _type {
40
    return 'SubscriptionFrequency';
41
}
42
43
=head3 object_class
44
45
=cut
46
47
sub object_class {
48
    return 'Koha::Subscription::Frequency';
49
}
50
51
=head1 AUTHOR
52
53
Morgane Alonso <morgane.alonso@biblibre.com>
54
55
=cut
56
57
1;
(-)a/Koha/Subscription/Frequency.pm (+48 lines)
Line 0 Link Here
1
package Koha::Subscription::Frequency;
2
3
# Copyright 2016 BibLibre Morgane Alonso
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
use Koha::Database;
22
use base qw(Koha::Object);
23
24
=head1 NAME
25
26
Koha::Subscription::Frequency - Koha Subscription::Frequency Object class
27
28
=head1 API
29
30
=head2 Class Methods
31
32
=cut
33
34
=head3 type
35
36
=cut
37
38
sub _type {
39
    return 'SubscriptionFrequency';
40
}
41
42
=head1 AUTHOR
43
44
Morgane Alonso <morgane.alonso@biblibre.com>
45
46
=cut
47
48
1;
(-)a/Koha/Subscription/Numberpattern.pm (+48 lines)
Line 0 Link Here
1
package Koha::Subscription::Numberpattern;
2
3
# Copyright 2016 BibLibre Morgane Alonso
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
use Koha::Database;
22
use base qw(Koha::Object);
23
24
=head1 NAME
25
26
Koha::SubscriptionNumberpattern - Koha SubscriptionNumberpattern Object class
27
28
=head1 API
29
30
=head2 Class Methods
31
32
=cut
33
34
=head3 type
35
36
=cut
37
38
sub _type {
39
    return 'SubscriptionNumberpattern';
40
}
41
42
=head1 AUTHOR
43
44
Morgane Alonso <morgane.alonso@biblibre.com>
45
46
=cut
47
48
1;
(-)a/Koha/Subscription/Numberpatterns.pm (+77 lines)
Line 0 Link Here
1
package Koha::Subscription::Numberpatterns;
2
3
# Copyright 2016 BibLibre Morgane Alonso
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
use Koha::Database;
22
use Koha::Subscription::Numberpattern;
23
use base qw(Koha::Objects);
24
25
=head1 NAME
26
27
Koha::SubscriptionNumberpatterns - Koha SubscriptionNumberpattern object set class
28
29
=head1 API
30
31
=head2 Class Methods
32
33
=cut
34
35
=head3 uniqeLabel
36
37
=cut
38
39
sub uniqueLabel {
40
    my ($self, $label) = @_;
41
42
    my $samelabel = Koha::Subscription::Numberpatterns->search({label => $label})->next();
43
    if ($samelabel) {
44
        my $i = 2;
45
        my $newlabel = $samelabel->label . " ($i)";
46
        while (my $othersamelabel = $self->search({label => $newlabel})->next()) {
47
            $i++;
48
            $newlabel = $samelabel->label . " ($i)";
49
        }
50
        $label = $newlabel;
51
    }
52
    return $label;
53
}
54
55
=head3 type
56
57
=cut
58
59
sub _type {
60
    return 'SubscriptionNumberpattern';
61
}
62
63
=head3 object_class
64
65
=cut
66
67
sub object_class {
68
    return 'Koha::Subscription::Numberpattern';
69
}
70
71
=head1 AUTHOR
72
73
Morgane Alonso <morgane.alonso@biblibre.com>
74
75
=cut
76
77
1;
(-)a/installer/data/mysql/atomicupdate/mana_01-add_mana_id_in_subscription.sql (+1 lines)
Line 0 Link Here
1
ALTER TABLE subscription ADD mana_id int(11);
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/mana-subscription-search-result.inc (+46 lines)
Line 0 Link Here
1
[% USE KohaDates %]
2
<table id="mana_results_datatable">
3
    <thead>
4
        <tr>
5
            <th>ISSN</th>
6
            <th class="anti-the">Title</th>
7
            <th>Frequency</th>
8
            <th>Numbering pattern</th>
9
            <th class="NoSort">Number of users</th>
10
            <th class="title-string">Last Import</th>
11
            [% UNLESS search_only %]
12
              <th class="NoSort">Actions</th>
13
            [% END %]
14
        </tr>
15
    </thead>
16
    <tfoot>
17
        <tr>
18
            <td><input type="text" class="dt-filter" data-column_num="0" placeholder="Search ISSN" /></td>
19
            <td><input type="text" class="dt-filter" data-column_num="1" placeholder="Search title" /></td>
20
            <td><input type="text" class="dt-filter" data-column_num="2" placeholder="Search frequency" /></td>
21
            <td><input type="text" class="dt-filter" data-column_num="3" placeholder="Search numbering pattern" /></td>
22
            <td></td>
23
            <td><input type="text" class="dt-filter" data-column_num="5" placeholder="Search last import" /></td>
24
            [% UNLESS search_only %]
25
              <td></td>
26
            [% END %]
27
        </tr>
28
    </tfoot>
29
    <tbody>
30
        [% FOREACH subscription IN subscriptions %]
31
            [% UNLESS subscription.cannotdisplay %]
32
                <tr id="row[% subscription.subscriptionid %]">
33
                    <td>[% IF ( subscription.issn ) %][% subscription.issn %][% END %]</td>
34
                    <td>[% subscription.title %]</a></td>
35
                    <td>[% IF ( subscription.sfdescription ) %][% subscription.sfdescription %][% END %]</td>
36
                    <td>[% IF ( subscription.numberingmethod ) %][% subscription.numberingmethod %][% END %]</td>
37
                    <td>[% IF ( subscription.nbofusers ) %][% subscription.nbofusers %][% END %]</td>
38
                    <td><span title="[% subscription.lastimport %]">[% subscription.lastimport | $KohaDates %]</span></td>
39
                    [% UNLESS search_only %]
40
                      <td><a style="cursor:pointer" onclick="mana_use([% subscription.id %])"> <i class="fa fa-inbox"></i> Use</a></td>
41
                    [% END %]
42
                </tr>
43
            [% END %]
44
        [% END %]
45
    </tbody>
46
</table>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/mana-subscription-search-result.tt (+1 lines)
Line 0 Link Here
1
[% INCLUDE 'mana-subscription-search-result.inc' %]
(-)a/svc/mana/search (+62 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# Copyright 2016 BibLibre Morgane Alonso
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it
8
# under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 3 of the License, or
10
# (at your option) any later version.
11
#
12
# Koha is distributed in the hope that it will be useful, but
13
# WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
# GNU General Public License for more details.
16
#
17
# You should have received a copy of the GNU General Public License
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
#
20
21
use strict;
22
use warnings;
23
24
use Koha::SharedContent;
25
use Koha::Subscription;
26
use C4::Auth qw(check_cookie_auth), qw(get_template_and_user);
27
use C4::Output qw( output_with_http_headers );
28
29
use CGI;
30
use JSON;
31
32
my $input = new CGI;
33
34
my ( $auth_status, $sessionID ) =
35
  check_cookie_auth( $input->cookie('CGISESSID'),
36
    { serials => 'create_subscription' } );
37
38
if ( $auth_status ne "ok" ) {
39
    exit 0;
40
}
41
42
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
43
    {
44
        template_name   => "serials/mana-subscription-search-result.tt",
45
        query           => $input,
46
        type            => "intranet",
47
        authnotrequired => 0,
48
49
        # flagsrequired   => { serials => $permission },
50
        flagsrequired => { serials => 'create_subscription' },
51
        debug         => 1,
52
    }
53
);
54
55
my $biblionumber = $input->param('biblionumber');
56
57
my $sub_mana_info = Koha::Subscription::get_search_info($biblionumber);
58
my $result =
59
  Koha::SharedContent::manaGetRequest( "subscription", $sub_mana_info );
60
$template->param( subscriptions => $result->{data} );
61
62
output_with_http_headers $input, $cookie, $template->output, 'json';
(-)a/svc/mana/use (+48 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# Copyright 2016 BibLibre Morgane Alonso
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it
8
# under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 3 of the License, or
10
# (at your option) any later version.
11
#
12
# Koha is distributed in the hope that it will be useful, but
13
# WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
# GNU General Public License for more details.
16
#
17
# You should have received a copy of the GNU General Public License
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
#
20
21
use strict;
22
use warnings;
23
24
use Koha::SharedContent;
25
use C4::Auth qw(check_cookie_auth);
26
27
use CGI;
28
use JSON;
29
30
31
my $input = new CGI;
32
binmode STDOUT, ":encoding(UTF-8)";
33
print $input->header( -type => 'text/plain', -charset => 'UTF-8' );
34
35
my ( $auth_status, $sessionID ) =
36
  check_cookie_auth( $input->cookie('CGISESSID'),
37
    { serials => 'create_subscription' } );
38
39
if ( $auth_status ne "ok" ) {
40
    exit 0;
41
}
42
43
my $result = Koha::SharedContent::manaGetRequestWithId("subscription", $input->param('id') );
44
45
my $subscription;
46
$subscription = $result->{data};
47
48
print(to_json($subscription));
(-)a/t/db_dependent/Serials/GetFictiveIssueNumber.t (-2 lines)
Lines 1-6 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
2
3
4
use C4::Context;
3
use C4::Context;
5
use Test::More tests => 18;
4
use Test::More tests => 18;
6
use Modern::Perl;
5
use Modern::Perl;
7
- 

Return to bug 17047