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

(-)a/Koha/Report.pm (+82 lines)
Line 0 Link Here
1
package Koha::Report;
2
3
# Copyright 2017 Biblibre Baptiste Wojtkowski
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 Carp;
23
24
use Koha::Database;
25
use JSON;
26
use Koha::Reports;
27
28
use base qw(Koha::Object);
29
30
=head1 NAME
31
32
Koha::Report - Koha Report Object Class
33
34
=head1 Ap
35
36
=head2 Class Methods
37
38
=cut
39
40
=head3 type
41
42
=cut
43
44
sub get_search_info {
45
    my $self=shift;
46
    my $sub_mana_info = { 'query' => shift };
47
    return $sub_mana_info;
48
}
49
50
sub get_sharable_info{
51
    my $self=shift;
52
    my $shared_report_id=shift;
53
    my $report = Koha::Reports->find($shared_report_id);
54
    my $sub_mana_info = {
55
        'savedsql' => $report->savedsql,
56
        'report_name' => $report->report_name,
57
        'notes' => $report->notes,
58
        'report_group' => $report->report_group,
59
        'type' => $report->type,
60
    };
61
    return $sub_mana_info;
62
}
63
64
sub new_from_mana{
65
    my $self = shift;
66
    my $data = shift;
67
    delete $data->{exportemail};
68
    delete $data->{kohaversion};
69
    delete $data->{creationdate};
70
    delete $data->{lastimport};
71
    $data->{mana_id} = $data->{id};
72
    delete $data->{id};
73
    delete $data->{nbofusers};
74
    delete $data->{language};
75
    Koha::Report->new($data)->store;
76
}
77
78
sub _type {
79
    return 'SavedSql';
80
}
81
82
1;
(-)a/Koha/Reports.pm (+58 lines)
Line 0 Link Here
1
package Koha::Reports;
2
3
# Copyright 2017 Biblibre Baptiste Wojtkowski
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 Carp;
23
24
use Koha::Database;
25
26
use Koha::Report;
27
28
use base qw(Koha::Objects);
29
30
=head1 NAME
31
32
Koha::Serial - Koha Serial Object class
33
34
=head1 API
35
36
=head2 Class Methods
37
38
=cut
39
40
=head3 type
41
42
=cut
43
44
sub _type {
45
    return 'SavedSql';
46
}
47
48
sub object_class {
49
    return 'Koha::Report';
50
}
51
52
=head1 AUTHOR
53
54
Kyle M Hall <kyle@bywatersolutions.com>
55
56
=cut
57
58
1;
(-)a/Koha/SharedContent.pm (-5 / +61 lines)
Lines 22-28 use JSON; Link Here
22
use HTTP::Request;
22
use HTTP::Request;
23
use LWP::UserAgent;
23
use LWP::UserAgent;
24
24
25
our $MANA_IP = "http://10.25.159.107:5000";
25
use Koha::Serials;
26
use Koha::Reports;
27
28
our $MANA_IP = C4::Context->config('mana_config');
26
29
27
sub manaRequest {
30
sub manaRequest {
28
    my $mana_request = shift;
31
    my $mana_request = shift;
Lines 40-51 sub manaRequest { Link Here
40
    return $result if ( $response->code =~ /^2..$/ );
43
    return $result if ( $response->code =~ /^2..$/ );
41
}
44
}
42
45
43
sub manaNewUserPatchRequest {
46
sub manaIncrementRequest {
44
    my $resource = shift;
47
    my $resource = shift;
45
    my $id       = shift;
48
    my $id       = shift;
46
49
    my $field    = shift;
47
    my $url = "$MANA_IP/$resource/$id.json/newUser";
50
    my $step     = shift;
48
    my $request = HTTP::Request->new( PATCH => $url );
51
    my $param;
52
    $param->{step} = $step || 1;
53
    $param->{id} = $id;
54
    $param->{resource} = $resource;
55
    $param = join '&',
56
       map { defined $param->{$_} ? $_ . "=" . $param->{$_} : () }
57
           keys %$param;
58
    my $url = "$MANA_IP/$resource/$id.json/increment/$field?$param";
59
    my $request = HTTP::Request->new( POST => $url );
49
60
50
    return manaRequest($request);
61
    return manaRequest($request);
51
}
62
}
Lines 64-69 sub manaPostRequest { Link Here
64
    return manaRequest($request);
75
    return manaRequest($request);
65
}
76
}
66
77
78
sub manaShareInfos{
79
    my ($query, $loggedinuser, $ressourceid, $ressourcetype) = @_;
80
    my $mana_language;
81
    if ( $query->param('mana_language') ) {
82
        $mana_language = $query->param('mana_language');
83
    }
84
    else {
85
        my $result = $mana_language = C4::Context->preference('language');
86
    }
87
88
    my $mana_email;
89
    if ( $loggedinuser ne 0 ) {
90
        my $borrower = Koha::Patrons->find($loggedinuser);
91
        $mana_email = $borrower->email
92
          if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) );
93
        $mana_email = $borrower->emailpro
94
          if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) );
95
        $mana_email =
96
          Koha::Libraries->find( C4::Context->userenv->{'branch'} )->branchemail
97
          if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) );
98
    }
99
    $mana_email = C4::Context->preference('KohaAdminEmailAddress')
100
      if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) );
101
    my %versions = C4::Context::get_versions();
102
103
    my $mana_info = {
104
        language    => $mana_language,
105
        kohaversion => $versions{'kohaVersion'},
106
        exportemail => $mana_email
107
    };
108
    my ($ressource, $ressource_mana_info);
109
    my $packages = "Koha::".ucfirst($ressourcetype)."s";
110
    my $package = "Koha::".ucfirst($ressourcetype);
111
    $ressource_mana_info = $package->get_sharable_info($ressourceid);
112
    $ressource_mana_info = { %$ressource_mana_info, %$mana_info };
113
    $ressource = $packages->find($ressourceid);
114
115
    my $result = Koha::SharedContent::manaPostRequest( $ressourcetype,
116
        $ressource_mana_info );
117
    if ( $result and ($result->{code} eq "200" or $result->{code} eq "201") ) {
118
        $ressource->set( { mana_id => $result->{id} } )->store;
119
    }
120
    return $result;
121
}
122
67
sub manaGetRequestWithId {
123
sub manaGetRequestWithId {
68
    my $resource = shift;
124
    my $resource = shift;
69
    my $id       = shift;
125
    my $id       = shift;
(-)a/Koha/Subscription.pm (+2 lines)
Lines 58-63 sub biblio { Link Here
58
=cut
58
=cut
59
59
60
sub get_search_info {
60
sub get_search_info {
61
    my $self=shift;
61
    my $searched_sub_id = shift;
62
    my $searched_sub_id = shift;
62
    my $biblio = Koha::Biblios->find( { 'biblionumber' => $searched_sub_id } );
63
    my $biblio = Koha::Biblios->find( { 'biblionumber' => $searched_sub_id } );
63
    my $biblioitem =
64
    my $biblioitem =
Lines 73-78 sub get_search_info { Link Here
73
}
74
}
74
75
75
sub get_sharable_info {
76
sub get_sharable_info {
77
    my $self = shift;
76
    my $shared_sub_id = shift;
78
    my $shared_sub_id = shift;
77
    my $subscription  = Koha::Subscriptions->find($shared_sub_id);
79
    my $subscription  = Koha::Subscriptions->find($shared_sub_id);
78
    my $biblio        = Koha::Biblios->find( $subscription->biblionumber );
80
    my $biblio        = Koha::Biblios->find( $subscription->biblionumber );
(-)a/etc/koha-conf.xml (+4 lines)
Lines 146-151 __PAZPAR2_TOGGLE_XML_POST__ Link Here
146
 <!-- Path to the config file for SMS::Send -->
146
 <!-- Path to the config file for SMS::Send -->
147
 <sms_send_config>__KOHA_CONF_DIR__/sms_send/</sms_send_config>
147
 <sms_send_config>__KOHA_CONF_DIR__/sms_send/</sms_send_config>
148
148
149
 <!-- URL of the mana KB server -->
150
 <!-- alternative value http://mana-test.koha-community.org to query the test server -->
151
 <mana_config>http://mana-kb.koha-community.org</mana_config>
152
149
 <!-- Configuration for Plack -->
153
 <!-- Configuration for Plack -->
150
 <plack_max_requests>50</plack_max_requests>
154
 <plack_max_requests>50</plack_max_requests>
151
 <plack_workers>2</plack_workers>
155
 <plack_workers>2</plack_workers>
(-)a/installer/data/mysql/atomicupdate/mana_01-add_mana_id_in_subscription.sql (+1 lines)
Line 1 Link Here
1
ALTER TABLE subscription ADD mana_id int(11);
1
ALTER TABLE subscription ADD mana_id int(11);
2
ALTER TABLE saved_sql ADD mana_id int(11);
(-)a/installer/data/mysql/atomicupdate/mana_02-add_Mana_syspref.sql (-1 / +1 lines)
Line 1 Link Here
1
INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES ('Mana', '1', 'request to Mana Webservice. Mana centralize commun information between other Koha to facilitate the creation of new subscriptions, vendors, report queries etc... You can search, share, import and comment the content of Mana.', NULL, 'YesNo');
1
INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES ('Mana','2', 0|1|2,'request to Mana Webservice. Mana centralize commun information between other Koha to facilitate the creation of new subscriptions, vendors, report queries etc... You can search, share, import and comment the content of Mana.','Choice');
(-)a/installer/data/mysql/atomicupdate/mana_03-add_mana_autoshare.sql (+2 lines)
Line 0 Link Here
1
INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES
2
('AutoShareWithMana','subscription','','defines datas automatically shared with mana','multiple');
(-)a/installer/data/mysql/sysprefs.sql (+1 lines)
Lines 60-65 INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` Link Here
60
('AutoCreateAuthorities','0',NULL,'Automatically create authorities that do not exist when cataloging records.','YesNo'),
60
('AutoCreateAuthorities','0',NULL,'Automatically create authorities that do not exist when cataloging records.','YesNo'),
61
('AutoEmailOpacUser','0',NULL,'Sends notification emails containing new account details to patrons - when account is created.','YesNo'),
61
('AutoEmailOpacUser','0',NULL,'Sends notification emails containing new account details to patrons - when account is created.','YesNo'),
62
('AutoEmailPrimaryAddress','OFF','email|emailpro|B_email|cardnumber|OFF','Defines the default email address where \'Account Details\' emails are sent.','Choice'),
62
('AutoEmailPrimaryAddress','OFF','email|emailpro|B_email|cardnumber|OFF','Defines the default email address where \'Account Details\' emails are sent.','Choice'),
63
('AutoShareWithMana','subscription','','defines datas automatically shared with mana','multiple'),
63
('AutoLocation','0',NULL,'If ON, IP authentication is enabled, blocking access to the staff client from unauthorized IP addresses','YesNo'),
64
('AutoLocation','0',NULL,'If ON, IP authentication is enabled, blocking access to the staff client from unauthorized IP addresses','YesNo'),
64
('AutomaticItemReturn','1',NULL,'If ON, Koha will automatically set up a transfer of this item to its homebranch','YesNo'),
65
('AutomaticItemReturn','1',NULL,'If ON, Koha will automatically set up a transfer of this item to its homebranch','YesNo'),
65
('autoMemberNum','1','','If ON, patron number is auto-calculated','YesNo'),
66
('autoMemberNum','1','','If ON, patron number is auto-calculated','YesNo'),
(-)a/koha-tmpl/intranet-tmpl/prog/css/staff-global.css (+6 lines)
Lines 299-304 table+table { Link Here
299
.highlighted-row,
299
.highlighted-row,
300
.highlighted-row td { background-color: #FFD000 !important }
300
.highlighted-row td { background-color: #FFD000 !important }
301
301
302
.warned-row,
303
.warned-row td { background-color: #FF9000 !important }
304
305
.high-warned-row,
306
.high-warned-row td { background-color: #FF0000 !important }
307
302
tbody tr:nth-child(odd) td {
308
tbody tr:nth-child(odd) td {
303
	background-color : #F3F3F3;
309
	background-color : #F3F3F3;
304
    border : 1px solid #BCBCBC;
310
    border : 1px solid #BCBCBC;
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/mana-subscription-search-result.inc (-46 lines)
Lines 1-46 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/includes/mana/mana-report-search-result.inc (+83 lines)
Line 0 Link Here
1
[% USE KohaDates %]
2
[% USE Koha %]
3
[% USE AuthorisedValues %]
4
[% USE Branches %]
5
6
<table id="mana_results_datatable" width=100%>
7
    <thead>
8
        <tr>
9
            <th>Report Name</th>
10
            <th class="anti-the" width=35%>Notes</th>
11
            <th>Type</th>
12
            <th title="number of libraries using this pattern"># of users</th>
13
            <th class="title-string" title="last time a library used this pattern">Last import</th>
14
            <th> Comments </th>
15
            [% UNLESS search_only %]
16
              <th class="NoSort">Actions</th>
17
            [% END %]
18
        </tr>
19
    </thead>
20
    <tbody>
21
        [% FOREACH report IN reports %]
22
            [% UNLESS report.cannotdisplay %]
23
                <tr id="row[% report.id %]"
24
                     [% IF report.nbofcomment > highWarned  %]
25
                        class = "high-warned-row"
26
                     [% ELSIF report.nbofcomment > warned  %]
27
                        class = "warned-row"
28
                     [% ELSIF report.nbofcomment > lowWarned  %]
29
                        class = "highlighted-row"
30
                     [% END %]
31
                >
32
                    <input hidden class="rowid" value="[% report.id %]">
33
                    <td>[% IF ( report.report_name ) %][% report.report_name %][% END %]</td>
34
                    <td title="[% report.savedsql %]"><div>
35
                        [% IF report.notes.length > 200 %]
36
                            [% report.notes.substr(0,200) %]<a class="showbutton">Show More</a></div><div hidden>
37
                        [% END %]
38
                            [% report.notes %]
39
                        [% IF report.notes.length > 200 %]
40
                            <a class="hidebutton">Show Less</a></div> </td>
41
                        [% END %]
42
                    <td> [% report.type %] </td>
43
                    <td>[% IF ( report.nbofusers ) %][% report.nbofusers %][% END %]</td>
44
                    <td><span title="[% report.lastimport %]">[% report.lastimport | $KohaDates %]</span></td>
45
		    <td>[% FOREACH comment IN report.comments %][% comment.message %] ([% comment.nb %]) <br>[% END %]</td>
46
47
                    [% UNLESS search_only %]
48
                      <td>
49
                          <button onclick="mana_use([% report.id %])"> <i class="fa fa-inbox"></i> Use</button>
50
                          <input hidden type="text" id="selectedcomment">
51
                          <select>
52
                              <option selected disabled>Report mistake</option>
53
                              [% FOREACH comment IN report.comments %]
54
                                  <option class="actionreport1" value="[% comment.id %]" onclick="mana_increment('[% comment.id %]', 'resource_comment', 'nb')"> [% comment.message %] ([% comment.nb %])
55
                              [% END %]
56
                                  <option data-toggle="modal" onclick="($('#selected_id').val($('.rowid').val()))" data-target="#comment_box"> other
57
                          </select>
58
                          <button hidden class="actionreport2" hidden> Cancel</button>
59
                      </td>
60
                    [% END %]
61
                </tr>
62
            [% END %]
63
        [% END %]
64
    </tbody>
65
</table>
66
67
<div id="comment_box" class="modal" tabindex="-1" role="dialog" aria-labelledby="mana_search_result_label" style="display: none;">
68
    <div class="modal-dialog modal-lg" style="width: 30%">
69
        <div class="modal-content" style="">
70
            <div class="modal-header">
71
                <button type="button" id="commentCloseButton" class="closebtn"  aria-hidden="true">×</button>
72
                <h3 id="mana_submit_comment"> Please enter a new commment (max 35 caracters)</h3>
73
            </div>
74
            <div class="modal-body">
75
                <form>
76
                    <input hidden id="selected_id" value="">
77
                    <input type="text" id="manamsg">
78
                </form>
79
                <button id="CommentButton"> Comment </button>
80
            </div>
81
        </div>
82
    </div>
83
</div>
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/mana/mana-subscription-search-result.inc (+82 lines)
Line 0 Link Here
1
[% USE KohaDates %]
2
[% USE Koha %]
3
[% USE AuthorisedValues %]
4
[% USE Branches %]
5
6
7
8
<table id="mana_results_datatable" width=100%>
9
    <thead>
10
        <tr>
11
            <th>ISSN</th>
12
            <th class="anti-the" width=50%>Title</th>
13
            <th> Published by </th>
14
            <th>Frequency</th>
15
            <th>Numbering pattern</th>
16
            <th title="number of libraries using this pattern"># of users</th>
17
            <th class="title-string" title="last time a library used this pattern">Last import</th>
18
            <th> Comments </th>
19
            [% UNLESS search_only %]
20
              <th class="NoSort">Actions</th>
21
            [% END %]
22
        </tr>
23
    </thead>
24
    <tbody>
25
        [% FOREACH subscription IN subscriptions %]
26
            [% UNLESS subscription.cannotdisplay %]
27
                <tr id="row[% subscription.subscriptionid %]"
28
                     [% IF subscription.nbofcomment > highWarned  %]
29
                        class = "high-warned-row" title="this resource has been reported more than [% highWarned %] times, take care!"
30
                     [% ELSIF subscription.nbofcomment > warned  %]
31
                        class = "warned-row" title="this resource has been reported more than [% warned %] times, take care!"
32
                     [% ELSIF subscription.nbofcomment > lowWarned  %]
33
                        class = "highlighted-row" title="this resource has been reported more than [% lowWarned %] times, take care!"
34
                     [% END %]
35
                >
36
                <input hidden class="rowid" value="[% subscription.id %]">
37
                    <td>[% IF ( subscription.issn ) %][% subscription.issn %][% END %]</td>
38
                    <td>[% subscription.title %]</a></td>
39
                    <td>[% IF ( subscription.publishercode ) %][% subscription.publishercode %][% END %]</td>
40
                    <td>[% IF ( subscription.sfdescription ) %][% subscription.sfdescription %][% END %]</td>
41
                    <td>[% IF ( subscription.numberingmethod ) %][% subscription.numberingmethod %][% END %]</td>
42
                    <td>[% IF ( subscription.nbofusers ) %][% subscription.nbofusers %][% END %]</td>
43
                    <td><span title="[% subscription.lastimport %]">[% subscription.lastimport | $KohaDates %]</span></td>
44
		    <td>[% FOREACH comment IN subscription.comments %][% comment.message %] ([% comment.nb %]) <br>[% END %]</td>
45
46
                    [% UNLESS search_only %]
47
                      <td>
48
                          <button onclick="mana_use([% subscription.id %])"> <i class="fa fa-inbox"></i> Use</button>
49
                          <input hidden type="text" id="selectedcomment">
50
                          <select>
51
                              <option selected disabled>Report mistake</option>
52
                              [% FOREACH comment IN subscription.comments %]
53
                                  <option class="actionreport1" value="[% comment.id %]" onclick="mana_increment('[% comment.id %]', 'resource_comment', 'nb')"> [% comment.message %] ([% comment.nb %])
54
                              [% END %]
55
                                  <option data-toggle="modal" onclick="($('#selected_id').val($('.rowid').val()))" data-target="#comment_box"> other
56
                          </select>
57
                          <button hidden class="actionreport2" hidden> Cancel</button>
58
                      </td>
59
                    [% END %]
60
                </tr>
61
            [% END %]
62
        [% END %]
63
    </tbody>
64
</table>
65
66
<div id="comment_box" class="modal" tabindex="-1" role="dialog" aria-labelledby="mana_search_result_label" style="display: none;">
67
    <div class="modal-dialog modal-lg" style="width: 30%">
68
        <div class="modal-content" style="">
69
            <div class="modal-header">
70
                <button type="button" id="commentCloseButton" class="closebtn" aria-hidden="true">×</button>
71
                <h3 id="mana_submit_comment"> Please enter a new commment (max 35 caracters)</h3>
72
            </div>
73
            <div class="modal-body">
74
                <form>
75
                    <input hidden id="selected_id" value="">
76
                    <input type="text" id="manamsg"> Comment:
77
                </form>
78
                <button id="CommentButton"> Comment </button>
79
            </div>
80
        </div>
81
    </div>
82
</div>
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc (-9 / +7 lines)
Lines 7-17 Link Here
7
            [% ELSE %]
7
            [% ELSE %]
8
                <div class="btn-group"><a id="newsubscription" class="btn btn-default btn-sm" href="/cgi-bin/koha/serials/subscription-add.pl"><i class="fa fa-plus"></i> New subscription</a></div>
8
                <div class="btn-group"><a id="newsubscription" class="btn btn-default btn-sm" href="/cgi-bin/koha/serials/subscription-add.pl"><i class="fa fa-plus"></i> New subscription</a></div>
9
            [% END %]
9
            [% END %]
10
            [% IF Koha.Preference('Mana') %]
10
            [% IF Koha.Preference('Mana') and Koha.Preference('AutoShareWithMana').grep('subscription').size == 0 %]
11
                [% IF one_language_enabled==0 or mana_id %]
11
                [% IF one_language_enabled==0 or mana_id %]
12
                    <div class="btn-group"><a data-toggle="modal" data-toggle="tooltip" title="Your email address will be associated to your sharing." data-target="#mana_share_modal" class="btn btn-small"><i class="fa fa-share-alt"></i> Share</a></div>
12
                    <div class="btn-group"><a data-toggle="modal" data-toggle="tooltip" title="Share the subscription with other librairies. Your email address will be associated to your sharing." data-target="#mana_share_modal" class="btn btn-default btn-sm"><i class="fa fa-share-alt"></i> Share</a></div>
13
                [% ELSE %]
13
                [% ELSE %]
14
                    <div class="btn-group" data-toggle="tooltip" title="Your email address will be associated to your sharing."><a class="btn btn-small" onclick="share()"><i class="fa fa-share-alt"></i> Share</a></div>
14
                    <div class="btn-group" data-toggle="tooltip" title="Share the subscription with other libraries. Your email address will be associated to your sharing."><a class="btn btn-default btn-sm" onclick="share()"><i class="fa fa-share-alt"></i> Share</a></div>
15
                [% END %]
15
                [% END %]
16
            [% END %]
16
            [% END %]
17
        [% END %]
17
        [% END %]
Lines 80-97 Link Here
80
            <div class="modal-body">
80
            <div class="modal-body">
81
                [% IF (mana_id) %]
81
                [% IF (mana_id) %]
82
                    <div class="alert">
82
                    <div class="alert">
83
                        <p>Your subscription is already linked with a Mana subscription model. Share it if you have made modifications, otherwide it will do nothing.</p>
83
                        <p>Your subscription is already linked with a Mana subscription model. Share it if you have made modifications, otherwise it will do nothing.</p>
84
                    </div>
84
                    </div>
85
                [% END %]
85
                [% END %]
86
                [% IF ( languages_loop ) %]
86
                [% IF ( languages_loop ) %]
87
                    [% UNLESS ( one_language_enabled ) %]
87
                    [% UNLESS ( one_language_enabled ) %]
88
                        <div class="rows">
88
                        <div class="rows">
89
                            <p>The frequency and the numberpattern of [% bibliotitle %] are :</p>
89
                                <li><span class="label">Frequency: </span>
90
                            <ol>
91
                                <li><span class="label">Frequency : </span>
92
                                        [% frequency.description %]
90
                                        [% frequency.description %]
93
                                </li>
91
                                </li>
94
                                <li><span class="label">Number pattern : </span>
92
                                <li><span class="label">Number pattern: </span>
95
                                    [% numberpattern.label %]
93
                                    [% numberpattern.label %]
96
                                </li>
94
                                </li>
97
                            </ol>
95
                            </ol>
Lines 99-105 Link Here
99
                        <div class="rows">
97
                        <div class="rows">
100
                            <form method="get" id="mana_share_form" action="/cgi-bin/koha/serials/subscription-detail.pl" class="validated" >
98
                            <form method="get" id="mana_share_form" action="/cgi-bin/koha/serials/subscription-detail.pl" class="validated" >
101
                                <fieldset>
99
                                <fieldset>
102
                                    <label for="mana_language">Language of your sharing :</label>
100
                                    <label for="mana_language">Language:</label>
103
                                    <select id="mana_language" name="mana_language">
101
                                    <select id="mana_language" name="mana_language">
104
                                        [% FOREACH languages_loo IN languages_loop %]
102
                                        [% FOREACH languages_loo IN languages_loop %]
105
                                            [% IF ( languages_loo.group_enabled ) %]
103
                                            [% IF ( languages_loo.group_enabled ) %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/admin-home.tt (+8 lines)
Lines 13-18 Link Here
13
<div id="doc" class="yui-t7">
13
<div id="doc" class="yui-t7">
14
    <div id="bd">
14
    <div id="bd">
15
        <div id="yui-main" class="sysprefs">
15
        <div id="yui-main" class="sysprefs">
16
            [% IF ( Koha.Preference('Mana') == 2) %]
17
                <fieldset>
18
                    <p><center> You haven't decided if you want to activate Mana Knowlede Base, please let us know by clicking<center></p>
19
                    <a href=/cgi-bin/koha/admin/preferences.pl?tab=&op=search&searchfield=request+to+mana+webservice><center>Here</center></a>
20
                </fieldset>
21
           [% END %]
22
23
16
            <div class="yui-g"><h1>Koha administration</h1></div>
24
            <div class="yui-g"><h1>Koha administration</h1></div>
17
            <div class="yui-g">
25
            <div class="yui-g">
18
26
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/web_services.pref (-3 / +9 lines)
Lines 57-65 Web services: Link Here
57
        -
57
        -
58
            - pref: Mana
58
            - pref: Mana
59
              choices:
59
              choices:
60
                  yes: Enable
60
                  0: Disable
61
                  no: Disable
61
                  1: Enable
62
            - request to Mana Webservice. Mana centralize commun information between other Koha to facilitate the creation of new subscriptions, vendors, report queries etc... You can search, share, import and comment the content of Mana.
62
                  2: No, let me think about it
63
            - request to Mana Webservice. Mana centralize commun information between other Koha to facilitate the creation of new subscriptions, vendors, report queries etc... You can search, share, import and comment the content of Mana. The informations shared with Mana KB are shared under the CC-0 license. More infos about CC-0 license on https://creativecommons.org/choose/zero/
64
        -
65
            - 'Fields automatically shared with mana'
66
            - pref: AutoShareWithMana
67
              multiple:
68
                subscription: Subscriptions
63
    Reporting:
69
    Reporting:
64
        -
70
        -
65
            - Only return
71
            - Only return
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/mana/mana-report-search-result.tt (+1 lines)
Line 0 Link Here
1
[% INCLUDE 'mana/mana-report-search-result.inc' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/mana/mana-subscription-search-result.tt (+1 lines)
Line 0 Link Here
1
[% INCLUDE 'mana/mana-subscription-search-result.inc' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tt (-6 / +281 lines)
Lines 130-135 canned reports and writing custom SQL reports.</p> Link Here
130
    </div>
130
    </div>
131
[% END %]
131
[% END %]
132
132
133
<div id="mana_search_result" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="mana_search_result_label" style="width: 100%; left:0%; margin-left: auto; display: none;">
134
    <div class="modal-dialog modal-lg">
135
        <div class="modal-content">
136
            <div class="modal-header">
137
                <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
138
                <h3 id="mana_search_result_label"> Mana Search</h3>
139
            </div>
140
            <div>
141
                <form id="search_form" style="margin-left: 5%">
142
                    Please enter a few key words:
143
                    <input type=text id=mana_search_field>
144
                    <input type=button class="mana_search_button" value="Search">
145
                </form>
146
                <div class="modal-body">
147
                </div>
148
            </div>
149
        </div>
150
    </div>
151
</div>
152
133
[% IF ( saved1 ) %]
153
[% IF ( saved1 ) %]
134
[% IF ( savedreports ) %]<h1>Saved reports</h1>
154
[% IF ( savedreports ) %]<h1>Saved reports</h1>
135
155
Lines 147-152 canned reports and writing custom SQL reports.</p> Link Here
147
                <option value="">All</option>
167
                <option value="">All</option>
148
            </select>
168
            </select>
149
        </div>
169
        </div>
170
<div style="display:inline-block">
171
    [% IF (manamsg == 'success') %]
172
     <div id="mana_search" class="dialog message">
173
        <p> Shared successfully! Thanks for your help.</p>
174
    </div>
175
    [% ELSIF (manamsg == 'fail') %]
176
     <div id="mana_search" class="dialog message">
177
        <p> An error occured while sharing, please try again later.</p>
178
    </div>
179
    [% END %]
180
181
   [% IF (Koha.Preference('Mana') == 1) %]
182
    <div id="mana_search" class="dialog message">
183
        <p> You want more reports? Check the Mana Knowledge Base <p> <a style="cursor:pointer" data-toggle="modal" data-target="#mana_search_result">Quick Search</a></p>
184
    </div>
185
    [% END %]
186
187
</script>
188
<h1> [% savedreport.sql %]</h1>
150
<form action="/cgi-bin/koha/reports/guided_reports.pl" id="reports_form" method="post">
189
<form action="/cgi-bin/koha/reports/guided_reports.pl" id="reports_form" method="post">
151
<input type="hidden" name="phase" value="Delete Multiple" />
190
<input type="hidden" name="phase" value="Delete Multiple" />
152
        <table id="table_reports">
191
        <table id="table_reports">
Lines 174-196 canned reports and writing custom SQL reports.</p> Link Here
174
            <tbody>
213
            <tbody>
175
                [% FOREACH savedreport IN savedreports %]
214
                [% FOREACH savedreport IN savedreports %]
176
                    [% UNLESS ( loop.odd ) %]<tr class="odd">[% ELSE %]<tr>[% END %]
215
                    [% UNLESS ( loop.odd ) %]<tr class="odd">[% ELSE %]<tr>[% END %]
177
                        <td>
216
                        <td class="report_checkbox">
178
                            [% IF ( CAN_user_reports_delete_reports ) %] <!-- not break CSS -->
217
                            [% IF ( CAN_user_reports_delete_reports ) %] <!-- not break CSS -->
179
                                <input type="checkbox" name="ids" value="[% savedreport.id %]" />
218
                                <input type="checkbox" name="ids" value="[% savedreport.id %]" />
180
                            [% END %]
219
                            [% END %]
220
                        <input hidden class="report_sql" value="[% savedreport.savedsql %]">
181
                        </td>
221
                        </td>
182
                        <td><label for="ids">[% savedreport.id %]</label></td>
222
                        <td class="report_id"><label for="ids">[% savedreport.id %]</label></td>
183
                        <td>
223
                        <td class="report_name">
184
                            [% IF ( savedreport.report_name ) %]
224
                            [% IF ( savedreport.report_name ) %]
185
                                [% savedreport.report_name %]
225
                                [% savedreport.report_name %]
186
                            [% ELSE %]
226
                            [% ELSE %]
187
                                [ no name ]
227
                                [ no name ]
188
                            [% END %]
228
                            [% END %]
189
                        </td>
229
                        </td>
190
                        <td>[% savedreport.type %]</td>
230
                        <td class="report_type">[% savedreport.type %]</td>
191
                        <td>[% savedreport.groupname %]</td>
231
                        <td class="report_group">[% savedreport.groupname %]</td>
192
                        <td>[% savedreport.subgroupname %]</td>
232
                        <td>[% savedreport.subgroupname %]</td>
193
                        <td>[% savedreport.notes %]</td>
233
                        <td class="report_notes">[% savedreport.notes %]</td>
194
                        <td>[% savedreport.borrowersurname %][% IF ( savedreport.borrowerfirstname ) %], [% savedreport.borrowerfirstname %][% END %] ([% savedreport.borrowernumber %])</td>
234
                        <td>[% savedreport.borrowersurname %][% IF ( savedreport.borrowerfirstname ) %], [% savedreport.borrowerfirstname %][% END %] ([% savedreport.borrowernumber %])</td>
195
                        <td><span title="[% savedreport.date_created %]">[% savedreport.date_created | $KohaDates %]</span></td>
235
                        <td><span title="[% savedreport.date_created %]">[% savedreport.date_created | $KohaDates %]</span></td>
196
                        <td><span title="[% savedreport.last_modified %]">[% savedreport.last_modified | $KohaDates with_hours => 1 %]</span></td>
236
                        <td><span title="[% savedreport.last_modified %]">[% savedreport.last_modified | $KohaDates with_hours => 1 %]</span></td>
Lines 239-244 canned reports and writing custom SQL reports.</p> Link Here
239
                                            <li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=[% savedreport.id %]&amp;phase=Edit%20SQL"><i class="fa fa-pencil"></i> Edit</a></li>
279
                                            <li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=[% savedreport.id %]&amp;phase=Edit%20SQL"><i class="fa fa-pencil"></i> Edit</a></li>
240
                                            <li><a title="Duplicate this saved report" href="/cgi-bin/koha/reports/guided_reports.pl?phase=Create report from SQL&amp;sql=[% savedreport.savedsql |uri %]&amp;reportname=[% savedreport.report_name |uri %]&amp;notes=[% savedreport.notes |uri %]"><i class="fa fa-copy"></i> Duplicate</a></li>
280
                                            <li><a title="Duplicate this saved report" href="/cgi-bin/koha/reports/guided_reports.pl?phase=Create report from SQL&amp;sql=[% savedreport.savedsql |uri %]&amp;reportname=[% savedreport.report_name |uri %]&amp;notes=[% savedreport.notes |uri %]"><i class="fa fa-copy"></i> Duplicate</a></li>
241
                                        [% END %]
281
                                        [% END %]
282
                                        [% IF (Koha.Preference('Mana') == 1) %]
283
                                            <li><a class="ShareButton" data-toggle="modal" href="#mana_share_report" title="Share your report with Mana Knowledge Base"><i class="fa fa-share-alt"></i> Share</a></li>
284
                                        [% END %]
242
                                        <li><a href="/cgi-bin/koha/tools/scheduler.pl?id=[% savedreport.id %]"><i class="fa fa-clock-o"></i> Schedule</a></li>
285
                                        <li><a href="/cgi-bin/koha/tools/scheduler.pl?id=[% savedreport.id %]"><i class="fa fa-clock-o"></i> Schedule</a></li>
243
                                        [% IF ( CAN_user_reports_delete_reports ) %]
286
                                        [% IF ( CAN_user_reports_delete_reports ) %]
244
                                            <li><a class="confirmdelete" title="Delete this saved report" href="/cgi-bin/koha/reports/guided_reports.pl?reports=[% savedreport.id %]&amp;phase=Delete%20Saved"><i class="fa fa-trash"></i> Delete</a></li>
287
                                            <li><a class="confirmdelete" title="Delete this saved report" href="/cgi-bin/koha/reports/guided_reports.pl?reports=[% savedreport.id %]&amp;phase=Delete%20Saved"><i class="fa fa-trash"></i> Delete</a></li>
Lines 251-256 canned reports and writing custom SQL reports.</p> Link Here
251
                [% END %]
294
                [% END %]
252
            </tbody>
295
            </tbody>
253
        </table>
296
        </table>
297
</div>
254
        [% IF ( CAN_user_reports_delete_reports ) %]
298
        [% IF ( CAN_user_reports_delete_reports ) %]
255
        <fieldset class="action">
299
        <fieldset class="action">
256
            <input type="submit" value="Delete selected" />
300
            <input type="submit" value="Delete selected" />
Lines 291-296 canned reports and writing custom SQL reports.</p> Link Here
291
[% END %]
335
[% END %]
292
[% END %]
336
[% END %]
293
337
338
<div id="mana_share_report" class="modal fade" tabindex="-1" role="dialog" arialabelledby="mana_share_modal_label" style="display: none;">
339
    <div class="modal-dialog">
340
        <div class="modal-content">
341
            <div class="modal-header">
342
                <h3 id="mana_share_modal_label">Share with Mana</h3>
343
            </div>
344
            <div class="modal-body">
345
                [% IF (mana_id) %]
346
                    <div class="alert">
347
                        <p>Your subscription is already linked with a Mana subscription model. Share it if you have made modifications, otherwise it will do nothing.</p>
348
                    </div>
349
                [% END %]
350
                [% IF ( languages_loop ) %]
351
                    [% UNLESS ( one_language_enabled ) %]
352
                        <label id="noteerror" type="hidden">Please enter a report name and descriptive note before sharing (minimum 20 characters)</label>
353
                        <div id="shared_infos" class="rows">
354
                                <li> <span class="label">Id: </span><div id="shared_id"></div>
355
                                </li>
356
                                <li> <span class="label">Name: </span><div id="shared_name"></div>
357
                                </li>
358
                                <li> <span class="label">SQL: </span><div id="shared_sql"></div>
359
                                </li>
360
                                <li> <span class="label">Group: </span><div id="shared_group"></div>
361
                                </li>
362
                                <li> <span class="label">Type: </span><div id="shared_type"></div>
363
                                </li>
364
                                <li> <span class="label">Notes: </span><div id="shared_notes"></div>
365
                                </li>
366
367
                        </div>
368
                        <div class="rows">
369
                            <form method="post" id="mana_share_form" action="/cgi-bin/koha/reports/guided_reports.pl?phase=Share" class="validated" >
370
                                <input type="hidden" name="phase" value="Share">
371
372
                                <fieldset>
373
                                    <label for="mana_language">Language:</label>
374
                                    <select id="mana_language" name="mana_language">
375
                                        [% FOREACH languages_loo IN languages_loop %]
376
                                            [% IF ( languages_loo.group_enabled ) %]
377
                                                [% IF ( languages_loo.plural ) %]
378
                                                    [% FOREACH sublanguages_loo IN languages_loo.sublanguages_loop %]
379
                                                        [% IF ( sublanguages_loo.enabled ) %]
380
                                                            [% IF ( sublanguages_loo.sublanguage_current ) %]
381
                                                                <option value="[% languages_loo.rfc4646_subtag %]" selected>
382
                                                                    [% sublanguages_loo.native_description %]
383
                                                                    [% sublanguages_loo.script_description %]
384
                                                                    [% sublanguages_loo.region_description %]
385
386
                                                                    [% sublanguages_loo.variant_description %]
387
                                                                    ([% sublanguages_loo.rfc4646_subtag %])
388
                                                                </option>
389
                                                            [% ELSE %]
390
                                                                <option value="[% languages_loo.rfc4646_subtag %]">
391
                                                                    [% sublanguages_loo.native_description %]
392
                                                                    [% sublanguages_loo.script_description %]
393
                                                                    [% sublanguages_loo.region_description %]
394
                                                                    [% sublanguages_loo.variant_description %]
395
                                                                    ([% sublanguages_loo.rfc4646_subtag %])
396
                                                                </option>
397
                                                            [% END %]
398
                                                        [% END %]
399
                                                    [% END %]
400
                                                [% ELSE %]
401
                                                    [% IF ( languages_loo.group_enabled ) %]
402
                                                        [% IF ( languages_loo.current ) %]
403
                                                            <option value="[% languages_loo.rfc4646_subtag %]" selected>
404
                                                                [% IF ( languages_loo.native_description ) %]
405
                                                                    [% languages_loo.native_description %]
406
                                                                [% ELSE %]
407
                                                                    [% languages_loo.rfc4646_subtag %]
408
                                                                [% END %]
409
                                                            </option>
410
                                                        [% ELSE %]
411
                                                            <option value="[% languages_loo.rfc4646_subtag %]">
412
                                                                [% IF ( languages_loo.native_description ) %]
413
                                                                    [% languages_loo.native_description %]
414
                                                                [% ELSE %]
415
                                                                    [% languages_loo.rfc4646_subtag %]
416
                                                                [% END %]
417
                                                            </option>
418
                                                        [% END %]
419
                                                    [% END %]
420
                                                [% END %]
421
                                            [% END %]
422
                                        [% END %]
423
                                    </select>
424
                                    <input type="hidden" id="reportid" name="reportid" value="[% savedreport.id %]"/>
425
                                </fieldset>
426
                            </form>
427
                        </div>
428
                    [% END %]
429
                [% END %]
430
            </div>
431
            <div class="modal-footer">
432
                <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
433
                [% IF one_language_enabled==0 %]
434
                    <button id="ManaShareButton" type="submit" form="mana_share_form" class="btn btn-primary">Share</button>
435
                [% ELSE %]
436
                    <div id="ManaShareButton" class="btn-group"><a class="btn btn-primary"'onclick="share()">Share</a></div>
437
                [% END %]
438
            </div>
439
        </div>
440
    </div>
441
</div>
442
294
443
295
[% IF ( build1 ) %]
444
[% IF ( build1 ) %]
296
[% IF ( cache_error) %]
445
[% IF ( cache_error) %]
Lines 958-963 Sub report:<select name="subreport"> Link Here
958
            }
1107
            }
959
        }
1108
        }
960
1109
1110
        function share() {
1111
            window.location="/cgi-bin/koha/reports/guided_reports.pl?phase=Save";
1112
        }
1113
961
        $(document).ready(function(){
1114
        $(document).ready(function(){
962
            $('#limit').change(function() {
1115
            $('#limit').change(function() {
963
                $('#limitselect').submit();
1116
                $('#limitselect').submit();
Lines 968-973 Sub report:<select name="subreport"> Link Here
968
                window.history.back();
1121
                window.history.back();
969
            });
1122
            });
970
1123
1124
            $(".mana_search_button").on("click",function(){
1125
                mana_search($(this).prev().val());
1126
            });
1127
1128
            $(".ShareButton").on("click", function(){
1129
                if($(this).closest("tr").find(".report_notes").text().length < 20 || $(this).closest("tr").find(".report_name").text().length < 20){
1130
                    $("#shared_infos").hide();
1131
                    $("#ManaShareButton").hide();
1132
                    $("#noterror").show();
1133
                }
1134
                else{
1135
                    $("#shared_id").html($(this).closest("tr").find(".report_id").text());
1136
                    $("#shared_name").html($(this).closest("tr").find(".report_name").text());
1137
                    $("#shared_sql").html($(this).closest("tr").find(".report_sql").val());
1138
                    $("#shared_type").html($(this).closest("tr").find(".report_type").text());
1139
                    $("#shared_group").html($(this).closest("tr").find(".report_group").text());
1140
                    $("#shared_notes").html($(this).closest("tr").find(".report_notes").text());
1141
                }
1142
            });
1143
1144
            $('#search_form').submit(function () {
1145
                return false;
1146
            });
1147
971
            $("#addColumn").on("click",function(){
1148
            $("#addColumn").on("click",function(){
972
                addColumn();
1149
                addColumn();
973
            });
1150
            });
Lines 1152-1157 Sub report:<select name="subreport"> Link Here
1152
                return confirmDelete(MSG_CONFIRM_DELETE);
1329
                return confirmDelete(MSG_CONFIRM_DELETE);
1153
            });
1330
            });
1154
        });
1331
        });
1332
        function mana_increment(mana_id, resourcename, fieldvalue, stepvalue = 1){
1333
            $.ajax( {
1334
                type: "POST",
1335
                url: "/cgi-bin/koha/svc/mana/addvaluetofield",
1336
                data: {id: mana_id, field: fieldvalue, resource: resourcename, step: stepvalue},
1337
                datatype: "json",
1338
            }).done( function() {
1339
            }).fail( function(){ });
1340
        }
1341
1342
        function mana_use( mana_id ){
1343
            $.ajax( {
1344
                type:"POST",
1345
                url: "/cgi-bin/koha/svc/mana/use",
1346
                data: {id:mana_id, resource: 'report', saveinbase: 1},
1347
                dataType: "json",
1348
            })
1349
            .done( function (result){
1350
                window.location = ("/cgi-bin/koha/reports/guided_reports.pl?reports=").concat(result.id).concat("&amp;phase=Show%20SQL");
1351
            })
1352
            .fail( function ( foo, msg, longmsg){
1353
            });
1354
        }
1355
1356
        function mana_search( textquery ){
1357
            $.ajax({
1358
                type: "POST",
1359
                url: "/cgi-bin/koha/svc/mana/search",
1360
                data: {biblionumber: $("#biblionumber").val(), resource: 'report', id: textquery, usecomments: 1},
1361
                dataType: "html",
1362
            })
1363
            .done( function( result ) {
1364
                $("#mana_search_result .modal-body").html(result);
1365
                $("#mana_search_result_label").text("Results from Mana Knowledge Base");
1366
                $("#mana_results_datatable").dataTable($.extend(true, {}, dataTablesDefaults,{
1367
                    "sPaginationType":"four_button",
1368
                    "autoWidth": false,
1369
                    "columnDefs": [
1370
                        { "width": "35%", "targets": 1 }
1371
                    ],
1372
                    "aoColumnDefs": [
1373
                        { 'bSortable': false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
1374
                        { "sType": "title-string", "aTargets" : [ "title-string" ] },
1375
                        { 'sType': "anti-the", 'aTargets' : [ 'anti-the'] }
1376
                    ]
1377
                }));
1378
                if($("td.dataTables_empty").length == 0){
1379
                     $("#mana_search").show();
1380
                }
1381
1382
                $( "select[class='actionreport1']" ).show();
1383
                $( "button[class='actionreport2']" ).hide();
1384
                $("#CommentButton").on("click", function(){
1385
                    var resource_type = "report";
1386
                    var target_id = $("#selected_id").val();
1387
                    var manamsg = $("#manamsg").val();
1388
                    mana_comment(target_id, manamsg, resource_type);
1389
                    $("#comment_box").modal("hide");
1390
                });
1391
1392
                $(".showbutton").on("click", function(){
1393
                    $(this).parent().hide();
1394
                    $(this).parent().next().show();
1395
                });
1396
1397
                $("a[class='hidebutton']").on("click", function(){
1398
                    $(this).parent().hide();
1399
                    $(this).parent().prev().show();
1400
                });
1401
1402
                $("#commentCloseButton").on("click", function(){
1403
                    $("#comment_box").modal("hide");
1404
                });
1405
1406
                $(".actionreport1").on("click", function(){
1407
                    $("#selectedcomment").val($(this).val());
1408
                    $(this).parent("select").hide();
1409
                    $(this).parent("select").next().show();
1410
                });
1411
1412
                $(".actionreport2").on("click", function(){
1413
                    $(this).hide();
1414
                    $(this).prev().show();
1415
                    mana_increment($("#selectedcomment").val(), 'resource_comment', 'nb', -1);
1416
                });
1417
            }).fail( function( result ){
1418
            });
1419
        }
1420
1421
        function mana_comment( target_id, manamsg, resource_type ){
1422
            $.ajax( {
1423
                type: "POST",
1424
                url: "/cgi-bin/koha/svc/mana/share",
1425
                data: {message: manamsg, resource: resource_type , resource_id: target_id},
1426
                datatype: "json",
1427
            })
1428
        }
1429
1155
        function addColumn() {
1430
        function addColumn() {
1156
            $("#availableColumns option:selected").clone().appendTo("#selectedColumns").attr("selected", "selected");
1431
            $("#availableColumns option:selected").clone().appendTo("#selectedColumns").attr("selected", "selected");
1157
        }
1432
        }
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/mana-subscription-search-result.tt (-1 lines)
Line 1 Link Here
1
[% INCLUDE 'mana-subscription-search-result.inc' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt (-6 / +13 lines)
Lines 8-14 Link Here
8
<style type="text/css">
8
<style type="text/css">
9
fieldset.rows li.radio { width: 100%; } /* override staff-global.css */
9
fieldset.rows li.radio { width: 100%; } /* override staff-global.css */
10
.yui-u li p label.widelabel {
10
.yui-u li p label.widelabel {
11
    width: 300px;  /* not enough for IE7 apparently */
11
width: 300px;  /* not enough for IE7 apparently */
12
}
12
}
13
</style>
13
</style>
14
</head>
14
</head>
Lines 205-212 fieldset.rows li.radio { width: 100%; } /* override staff-global.css */ Link Here
205
205
206
                <div id="page_2">
206
                <div id="page_2">
207
                    <div class="yui-u first">
207
                    <div class="yui-u first">
208
                [% IF ( Koha.Preference('Mana') == 2) %]
209
                    <fieldset>
210
                        <p><center>You haven't activated the Mana Knowledge Base, click
211
                        <a href=/cgi-bin/koha/admin/preferences.pl?tab=&op=search&searchfield=request+to+mana+webservice>here</a>
212
                         to configure.</center></p>
213
                    </fieldset>
214
                [% END %]
215
208
                        <div id="mana_search" class="dialog message">
216
                        <div id="mana_search" class="dialog message">
209
                            <p>Frequency and Numbering pattern have been already proposed for this subscription on Mana. To show results, click <a style="cursor:pointer" data-toggle="modal" data-target="#mana_search_result">Here</a></p>
217
                            <p>Subscription found on Mana Knowledge Base:</p><p> <a style="cursor:pointer" data-toggle="modal" data-target="#mana_search_result">Quick fill</a></p>
210
                        </div>
218
                        </div>
211
                        <div id="subscription_form_planning">
219
                        <div id="subscription_form_planning">
212
                            <fieldset class="rows">
220
                            <fieldset class="rows">
Lines 493-509 fieldset.rows li.radio { width: 100%; } /* override staff-global.css */ Link Here
493
        </div>
501
        </div>
494
    </div>
502
    </div>
495
</div>
503
</div>
496
<div id="mana_search_result" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="mana_search_result_label" style="width: 90%; left:5%; margin-left: auto; display: none;">
504
505
<div id="mana_search_result" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="mana_search_result_label" style="width: 100%; left:0%; margin-left: auto; display: none;">
497
    <div class="modal-dialog modal-lg">
506
    <div class="modal-dialog modal-lg">
498
        <div class="modal-content">
507
        <div class="modal-content">
499
            <div class="modal-header">
508
            <div class="modal-header">
509
                <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
500
                <h3 id="mana_search_result_label"></h3>
510
                <h3 id="mana_search_result_label"></h3>
501
            </div>
511
            </div>
502
            <div class="modal-body">
512
            <div class="modal-body">
503
            </div>
513
            </div>
504
            <div class="modal-footer">
505
                <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
506
            </div>
507
        </div>
514
        </div>
508
    </div>
515
    </div>
509
</div>
516
</div>
(-)a/koha-tmpl/intranet-tmpl/prog/js/subscription-add.js (-5 / +59 lines)
Lines 396-409 function mana_search() { Link Here
396
    $.ajax({
396
    $.ajax({
397
        type: "POST",
397
        type: "POST",
398
        url: "/cgi-bin/koha/svc/mana/search",
398
        url: "/cgi-bin/koha/svc/mana/search",
399
        data: {biblionumber : $("#biblionumber").val()},
399
        data: {id: $("#biblionumber").val(), resource: 'subscription', usecomments: 1},
400
        dataType: "html",
400
        dataType: "html",
401
    })
401
    })
402
    .done( function( result ) {
402
    .done( function( result ) {
403
    $("#mana_search_result .modal-body").html(result);
403
        $("#mana_search_result .modal-body").html(result);
404
        $("#mana_search_result_label").text("Results from Mana");
404
        $("#mana_search_result_label").text("Results from Mana Knowledge Base");
405
        $("#mana_results_datatable").dataTable($.extend(true, {}, dataTablesDefaults, {
405
        $("#mana_results_datatable").dataTable($.extend(true, {}, dataTablesDefaults, {
406
            "sPaginationType": "four_button",
406
            "sPaginationType": "four_button",
407
            "order":[[4, "desc"], [5, "desc"]],
408
            "autoWidth": false,
409
            "columnDefs": [
410
                { "width": "35%", "targets": 1 }
411
            ],
407
            "aoColumnDefs": [
412
            "aoColumnDefs": [
408
                { 'bSortable': false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
413
                { 'bSortable': false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
409
                { "sType": "title-string", "aTargets" : [ "title-string" ] },
414
                { "sType": "title-string", "aTargets" : [ "title-string" ] },
Lines 413-429 function mana_search() { Link Here
413
        if($("td.dataTables_empty").length == 0){
418
        if($("td.dataTables_empty").length == 0){
414
            $("#mana_search").show();
419
            $("#mana_search").show();
415
        }
420
        }
421
        $( "select[class='actionreport1']" ).show();
422
        $( "button[class='actionreport2']" ).hide();
423
424
        $("#CommentButton").on("click", function(){
425
            var resource_type = "subscription";
426
            var target_id = $("#selected_id").val();
427
            var manamsg = $("#manamsg").val();
428
            mana_comment(target_id, manamsg, resource_type);
429
            $("#comment_box").modal("hide");
430
        });
431
432
        $("#commentCloseButton").on("click", function(){
433
            $("#comment_box").modal("hide");
434
        });
435
436
        $(".actionreport1").on("click", function(){
437
            $("#selectedcomment").val($(this).val());
438
            $(this).parent("select").hide();
439
            $(this).parent("select").next().show();
440
        });
441
442
        $(".actionreport2").on("click", function(){
443
            $(this).hide();
444
            $(this).prev().show();
445
            mana_increment($("#selectedcomment").val(), 'resource_comment', 'nb', -1);
446
        });
447
416
    }).fail(function(result){
448
    }).fail(function(result){
417
    });
449
    });
418
}
450
}
419
451
452
function mana_comment( target_id, manamsg, resource_type ){
453
    $.ajax( {
454
        type: "POST",
455
        url: "/cgi-bin/koha/svc/mana/share",
456
        data: {message: manamsg, resource: resource_type , resource_id: target_id},
457
        datatype: "json",
458
    })
459
}
460
461
function mana_increment(mana_id, resource, fieldvalue, stepvalue = 1){
462
    $.ajax( {
463
        type: "POST",
464
        url: "/cgi-bin/koha/svc/mana/addvaluetofield",
465
        data: {id: mana_id, resource: resource, field: fieldvalue, step: stepvalue},
466
        datatype: "json",
467
    })
468
}
469
420
function mana_use(mana_id){
470
function mana_use(mana_id){
421
    $("tr").removeClass("selected");
471
    $("tr").removeClass("selected");
422
    $("#row"+mana_id).addClass("selected");
472
    $("#row"+mana_id).addClass("selected");
423
    $.ajax( {
473
    $.ajax( {
424
        type: "POST",
474
        type: "POST",
425
        url: "/cgi-bin/koha/svc/mana/use",
475
        url: "/cgi-bin/koha/svc/mana/use",
426
        data: {id : mana_id},
476
        data: {id: mana_id, resource: 'subscription'},
427
        dataType: "json",
477
        dataType: "json",
428
    })
478
    })
429
    .done(function(result){
479
    .done(function(result){
Lines 497-502 function removeDisabledAttr() { Link Here
497
}
547
}
498
548
499
$(document).ready(function() {
549
$(document).ready(function() {
550
    mana_search();
551
    $("#myid").on("click", function(){
552
        debugger;
553
    })
500
    $("#displayexample").hide();
554
    $("#displayexample").hide();
501
    $("#mana_search_result").modal("hide");
555
    $("#mana_search_result").modal("hide");
502
    $("#aqbooksellerid").on('keypress', function(e) {
556
    $("#aqbooksellerid").on('keypress', function(e) {
Lines 606-612 $(document).ready(function() { Link Here
606
    });
660
    });
607
    $("#subscription_add_next").on("click",function(){
661
    $("#subscription_add_next").on("click",function(){
608
        if ( Check_page1() ){
662
        if ( Check_page1() ){
609
            [% IF Koha.Preference('Mana') %]
663
            [% IF Koha.Preference('Mana') == 1 %]
610
                mana_search();
664
                mana_search();
611
            [% END %]
665
            [% END %]
612
            show_page_2();
666
            show_page_2();
(-)a/reports/guided_reports.pl (-1 / +12 lines)
Lines 37-42 use Koha::AuthorisedValues; Link Here
37
use Koha::BiblioFrameworks;
37
use Koha::BiblioFrameworks;
38
use Koha::Libraries;
38
use Koha::Libraries;
39
use Koha::Patron::Categories;
39
use Koha::Patron::Categories;
40
use Koha::SharedContent;
40
41
41
=head1 NAME
42
=head1 NAME
42
43
Lines 144-149 elsif ( $phase eq 'Build new' ) { Link Here
144
        }
145
        }
145
    }
146
    }
146
    $template->param(
147
    $template->param(
148
        'manamsg' => $input->param('manamsg')||'',
147
        'saved1' => 1,
149
        'saved1' => 1,
148
        'savedreports' => $reports,
150
        'savedreports' => $reports,
149
        'usecache' => $usecache,
151
        'usecache' => $usecache,
Lines 539-545 elsif ( $phase eq 'Build report' ) { Link Here
539
541
540
elsif ( $phase eq 'Save' ) {
542
elsif ( $phase eq 'Save' ) {
541
    # Save the report that has just been built
543
    # Save the report that has just been built
542
    my $area           = $input->param('area');
544
    my $area = $input->param('area');
543
    my $sql  = $input->param('sql');
545
    my $sql  = $input->param('sql');
544
    my $type = $input->param('type');
546
    my $type = $input->param('type');
545
    $template->param(
547
    $template->param(
Lines 643-648 elsif ( $phase eq 'Save Report' ) { Link Here
643
                    cache_expiry   => $cache_expiry,
645
                    cache_expiry   => $cache_expiry,
644
                    public         => $public,
646
                    public         => $public,
645
                } );
647
                } );
648
646
                logaction( "REPORTS", "ADD", $id, "$name | $sql" ) if C4::Context->preference("ReportsLog");
649
                logaction( "REPORTS", "ADD", $id, "$name | $sql" ) if C4::Context->preference("ReportsLog");
647
            $template->param(
650
            $template->param(
648
                'save_successful' => 1,
651
                'save_successful' => 1,
Lines 653-658 elsif ( $phase eq 'Save Report' ) { Link Here
653
    }
656
    }
654
}
657
}
655
658
659
elsif ($phase eq 'Share'){
660
    my $result = Koha::SharedContent::manaShareInfos($input, $borrowernumber, $input->param('reportid'), 'report');
661
    if ( $result and ($result->{code} eq "200" or $result->{code} eq "201") ) {
662
        print $input->redirect("/cgi-bin/koha/reports/guided_reports.pl?phase=Use%20saved&manamsg=success");
663
    }else{
664
        print $input->redirect("/cgi-bin/koha/reports/guided_reports.pl?phase=Use%20saved&manamsg=fail");
665
    }
666
}
656
elsif ($phase eq 'Run this report'){
667
elsif ($phase eq 'Run this report'){
657
    # execute a saved report
668
    # execute a saved report
658
    my $limit      = $input->param('limit') || 20;
669
    my $limit      = $input->param('limit') || 20;
(-)a/serials/subscription-add.pl (-3 / +6 lines)
Lines 376-382 sub redirect_add_subscription { Link Here
376
    my $mana_id;
376
    my $mana_id;
377
    if ( $query->param('mana_id') ne "" ) {
377
    if ( $query->param('mana_id') ne "" ) {
378
        $mana_id = $query->param('mana_id');
378
        $mana_id = $query->param('mana_id');
379
        Koha::SharedContent::manaNewUserPatchRequest("subscription",$mana_id);
379
        Koha::SharedContent::manaIncrementRequest("subscription",$mana_id, "nbofusers");
380
    }
380
    }
381
    else {
381
    else {
382
        $mana_id = undef;
382
        $mana_id = undef;
Lines 403-409 sub redirect_add_subscription { Link Here
403
        $staffdisplaycount, $opacdisplaycount, $graceperiod, $location, $enddate,
403
        $staffdisplaycount, $opacdisplaycount, $graceperiod, $location, $enddate,
404
        $skip_serialseq, $mana_id
404
        $skip_serialseq, $mana_id
405
    );
405
    );
406
406
    if ( grep { $_ eq "subscription" } split(/,/, C4::Context->preference('AutoShareWithMana')) ){
407
        my $result = Koha::SharedContent::manaShareInfos( $query, $loggedinuser, $subscriptionid, 'subscription');
408
        $template->param( mana_code => $result->{code} );
409
    }
407
    my $additional_fields = Koha::AdditionalField->all( { tablename => 'subscription' } );
410
    my $additional_fields = Koha::AdditionalField->all( { tablename => 'subscription' } );
408
    insert_additional_fields( $additional_fields, $biblionumber, $subscriptionid );
411
    insert_additional_fields( $additional_fields, $biblionumber, $subscriptionid );
409
412
Lines 463-469 sub redirect_mod_subscription { Link Here
463
    my $mana_id;
466
    my $mana_id;
464
    if ( defined( $query->param('mana_id') ) ) {
467
    if ( defined( $query->param('mana_id') ) ) {
465
        $mana_id = $query->param('mana_id');
468
        $mana_id = $query->param('mana_id');
466
        Koha::SharedContent::manaNewUserPatchRequest("subscription",$mana_id);
469
        Koha::SharedContent::manaIncrementRequest("subscription",$mana_id, "nbofusers");
467
    }
470
    }
468
    else {
471
    else {
469
        $mana_id = undef;
472
        $mana_id = undef;
(-)a/serials/subscription-detail.pl (-37 / +2 lines)
Lines 100-143 if ($op eq 'del') { Link Here
100
    }
100
    }
101
}
101
}
102
elsif ( $op and $op eq "share" ) {
102
elsif ( $op and $op eq "share" ) {
103
    my $mana_language;
103
    my $result = Koha::SharedContent::manaShareInfos($query, $loggedinuser, $subscriptionid, 'subscription');
104
    if ( $query->param('mana_language') ) {
105
        $mana_language = $query->param('mana_language');
106
    }
107
    else {
108
        $mana_language = C4::Context->preference('language');
109
    }
110
111
    my $mana_email;
112
    if ( $loggedinuser ne 0 ) {
113
        my $borrower = Koha::Patrons->find($loggedinuser);
114
        $mana_email = $borrower->email
115
          if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) );
116
        $mana_email = $borrower->emailpro
117
          if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) );
118
        $mana_email =
119
          Koha::Libraries->find( C4::Context->userenv->{'branch'} )->branchemail
120
          if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) );
121
    }
122
    $mana_email = C4::Context->preference('KohaAdminEmailAddress')
123
      if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) );
124
    my %versions = C4::Context::get_versions();
125
126
    my $mana_info = {
127
        language    => $mana_language,
128
        kohaversion => $versions{'kohaVersion'},
129
        exportemail => $mana_email
130
    };
131
    my $sub_mana_info = Koha::Subscription::get_sharable_info($subscriptionid);
132
    $sub_mana_info = { %$sub_mana_info, %$mana_info };
133
    my $result = Koha::SharedContent::manaPostRequest( "subscription",
134
        $sub_mana_info );
135
    if ( $result->{code} eq "200" and $result->{code} eq "201" ) {
136
        my $subscription = Koha::Subscriptions->find($subscriptionid);
137
        $subscription->set( { mana_id => $result->{id} } )->store;
138
        $subs->{mana_id} = $result->{id};
139
    }
140
    $template->param( mana_code => $result->{code} );
104
    $template->param( mana_code => $result->{code} );
105
    $subs->{mana_id} = $result->{id};
141
}
106
}
142
107
143
my $hasRouting = check_routing($subscriptionid);
108
my $hasRouting = check_routing($subscriptionid);
(-)a/svc/mana/addvaluetofield (+42 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# Copyright 2017 BibLibre Baptiste Wojtkowski
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 Modern::Perl;
22
23
use Koha::SharedContent;
24
use C4::Auth qw(check_cookie_auth);
25
26
use CGI;
27
use JSON;
28
29
30
my $input = new CGI;
31
binmode STDOUT, ":encoding(UTF-8)";
32
print $input->header( -type => 'text/plain', -charset => 'UTF-8' );
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
my $result = Koha::SharedContent::manaIncrementRequest($input->param('resource'), $input->param('id'), $input->param('field'), $input->param('step') );
42
return $result;
(-)a/svc/mana/search (-8 / +23 lines)
Lines 18-25 Link Here
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
#
19
#
20
20
21
use strict;
21
use Modern::Perl;
22
use warnings;
23
22
24
use Koha::SharedContent;
23
use Koha::SharedContent;
25
use Koha::Subscription;
24
use Koha::Subscription;
Lines 39-47 if ( $auth_status ne "ok" ) { Link Here
39
    exit 0;
38
    exit 0;
40
}
39
}
41
40
41
my $templatename;
42
$templatename = "mana/mana-".$input->param( "resource" )."-search-result.tt";
43
42
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
44
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
43
    {
45
    {
44
        template_name   => "serials/mana-subscription-search-result.tt",
46
        template_name   => $templatename,
45
        query           => $input,
47
        query           => $input,
46
        type            => "intranet",
48
        type            => "intranet",
47
        authnotrequired => 0,
49
        authnotrequired => 0,
Lines 52-62 my ( $template, $loggedinuser, $cookie ) = get_template_and_user( Link Here
52
    }
54
    }
53
);
55
);
54
56
55
my $biblionumber = $input->param('biblionumber');
57
my ($identifier, $sub_mana_info);
58
$identifier = $input->param('id');
59
$template->param( lowWarned => 5, warned => 10, highWarned => 20);
60
my $package = "Koha::".ucfirst($input->param( 'resource' ));
61
$sub_mana_info = $package->get_search_info($identifier);
62
63
$sub_mana_info->{ usecomments } = $input->param('usecomments');
64
my $resourcename = $input->param('resource');
65
my $result = Koha::SharedContent::manaGetRequest( $resourcename, $sub_mana_info);
66
my $nbofcomment;
67
foreach my $resource (@{ $result->{data} }){
68
    $nbofcomment = 0;
69
    foreach my $comment (@{ $resource->{comments} }){
70
        $nbofcomment += $comment->{nb};
71
    }
72
    $resource->{nbofcomment} = $nbofcomment;
73
}
56
74
57
my $sub_mana_info = Koha::Subscription::get_search_info($biblionumber);
75
$template->param( $input->param('resource')."s" => $result->{data} );
58
my $result =
59
  Koha::SharedContent::manaGetRequest( "subscription", $sub_mana_info );
60
$template->param( subscriptions => $result->{data} );
61
76
62
output_with_http_headers $input, $cookie, $template->output, 'json';
77
output_with_http_headers $input, $cookie, $template->output, 'json';
(-)a/svc/mana/share (+47 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# Copyright 2017 BibLibre Baptiste Wojtkowski
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 Modern::Perl;
22
23
use Koha::SharedContent;
24
use C4::Auth qw(check_cookie_auth);
25
26
use CGI;
27
use JSON;
28
29
30
my $input = new CGI;
31
binmode STDOUT, ":encoding(UTF-8)";
32
print $input->header( -type => 'text/plain', -charset => 'UTF-8' );
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
43
my $content;
44
$content->{resource_id} = $input->param("resource_id");
45
$content->{resource_type} = $input->param("resource");
46
$content->{message} = $input->param("message");
47
Koha::SharedContent::manaPostRequest('resource_comment', $content);
(-)a/svc/mana/use (-8 / +12 lines)
Lines 18-28 Link Here
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
#
19
#
20
20
21
use strict;
21
use Modern::Perl;
22
use warnings;
23
22
24
use Koha::SharedContent;
23
use Koha::SharedContent;
25
use C4::Auth qw(check_cookie_auth);
24
use C4::Auth qw(check_cookie_auth);
25
use Koha::Report;
26
26
27
use CGI;
27
use CGI;
28
use JSON;
28
use JSON;
Lines 40-48 if ( $auth_status ne "ok" ) { Link Here
40
    exit 0;
40
    exit 0;
41
}
41
}
42
42
43
my $result = Koha::SharedContent::manaGetRequestWithId("subscription", $input->param('id') );
43
my $result = Koha::SharedContent::manaGetRequestWithId($input->param('resource'), $input->param('id') );
44
my $package = "Koha::".ucfirst($input->param('resource'));
45
my $resource;
44
46
45
my $subscription;
47
if ( $input->param( 'saveinbase' )) {
46
$subscription = $result->{data};
48
    $resource = { id => $package->new_from_mana($result->{data})->id };
47
49
}
48
print(to_json($subscription));
50
else{
51
    $resource = $result->{data};
52
}
53
print(to_json($resource));
49
- 

Return to bug 17047