=cut
sub send_entity {
- my ($lang, $loggedinuser, $resourceid, $resourcetype, $content) = @_;
+ my ($lang, $loggedinuser, $resourceid, $resourcetype) = @_;
- unless ( $content ) {
- $content = prepare_entity_data($lang, $loggedinuser, $resourceid, $resourcetype);
- }
+ my $content = prepare_entity_data($lang, $loggedinuser, $resourceid, $resourcetype);
my $result = process_request(build_request('post', $resourcetype, $content));
return $result;
}
+=head3 comment_entity
+
+my $result = Koha::SharedContent::comment_entity($resource_id, $resource_type, $comment);
+
+Send a comment about a Mana entity.
+
+=cut
+
+sub comment_entity {
+ my ($resourceid, $resourcetype, $comment) = @_;
+
+ my $result = process_request(build_request('post', 'resource_comment',
+ { resource_id => $resourceid, resource_type => $resourcetype, message => $comment }));
+
+ return $result;
+}
+
=head2 prepare_entity_data
$data = prepare_entity_data($language, $borrowernumber, $mana_entity_id, $entity_type);
</div>
<div id="mana_comment_failed" class="dialog alert mana_comment_status" style="display:none">
Your comment could not be submitted. Please try again later.
- <div id="mana_comment_errortext"></div>
</div>
\ No newline at end of file
type: "POST",
url: "/cgi-bin/koha/svc/mana/share",
data: { message: manamsg, resource: resource_type, resource_id: target_id },
- datatype: "json",
+ dataType: "json",
})
- .done(function() {
- $(".mana_comment_status").hide();
- $("#mana_comment_success").show();
- })
- .fail(function( error ) {
+ .done(function( data ) {
$(".mana_comment_status").hide();
- $("#mana_comment_errortext").html( error.status + " " + error.statusText );
- $("#mana_comment_failed").show();
+ if (data.code == "201" || data.code == "200") {
+ $("#mana_comment_success").show();
+ } else {
+ $("#mana_comment_failed").show();
+ }
})
.always(function() {
$("#selected_id").val("");
use CGI;
use JSON;
-
my $input = new CGI;
binmode STDOUT, ":encoding(UTF-8)";
print $input->header( -type => 'text/plain', -charset => 'UTF-8' );
}
-my $content;
-$content->{resource_id} = $input->param("resource_id");
-$content->{resource_type} = $input->param("resource");
-$content->{message} = $input->param("message");
-Koha::SharedContent::send_entity('', undef, undef, 'resource_comment', $content);
-my $package = "Koha::".ucfirst($input->param('resource'));
-my $resource;
-my $result;
-eval{
- $result = Koha::SharedContent::get_entity_by_id(
- scalar $input->param('resource'),
- scalar $input->param('id')
- );
-};
-if ( $@ or $result->{code} == 500 ){
- $resource->{errmsg} = "Error: mana access got broken, please try again later\n\n ( error: $@ )";
-}
-else{
- if ( $input->param( 'saveinbase' )) {
- $resource = { id => $package->new_from_mana($result->{data})->id };
- }
- else{
- $resource = $result->{data};
- }
-}
+my $resource_id = $input->param("resource_id");
+my $resource_type = $input->param("resource");
+my $comment = $input->param("message");
+my $result = Koha::SharedContent::comment_entity($resource_id, $resource_type, $comment);
-print(to_json($resource));
+print(to_json($result));
use t::lib::Mocks;
use Test::MockModule;
use Test::MockObject;
-use Test::More tests => 44;
+use Test::More tests => 45;
use Koha::Database;
use Koha::Patrons;
use Koha::Subscriptions;
my $s = Koha::Subscriptions->find($subscription->{subscriptionid});
is($s->mana_id, 5, 'Mana id is set');
+$content = { resource_id => $subscription->{mana_id}, resource_type => 'subscription', message => 'My comment'};
+$result = Koha::SharedContent::comment_entity('resource_comment', $content);
+is($result->{code}, 200, 'Comment success');
+
my $data = Koha::SharedContent::prepare_entity_data(
'',
$loggedinuser->borrowernumber,