[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EP-tech] Sending email when item is made live



https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.eprints.org%2Fw%2FSending_user_messages&data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C496f63bb97774165247208d7e69b09ad%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&sdata=RehnUeiDgMdHcznQaaC931dwysLPl1gf0%2FHjXw8ORHQ%3D&reserved=0

you want the message if the user clicked a button on screen, the link
you cited act on a status change which is instead an asyncronous
operation (it is performed outside the page flow).

You've to replace the actual screen action (for example "Move to the
repository" which is EPrint::Move (*)) with another one that perform the
add_message() after calling the action directly

(*)
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feprints%2Feprints%2Fblob%2F3.3%2Fperl_lib%2FEPrints%2FPlugin%2FScreen%2FEPrint%2FMove.pm&data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C496f63bb97774165247208d7e69b09ad%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&sdata=a2CqU3kzjM9YJhJ6lznG7NZ7Li9Lrn9o67AQlyCws5Y%3D&reserved=0

sub action_move_archive
{
 ??? my( $self ) = @_;

 ??? my $ok = $self->{processor}->{eprint}->move_to_archive;

 ??? $self->add_result_message( $ok );
}

$self->{processor}->{eprint}->move_to_archive perform the status change
and activate the trigger but you can't know about trigger result because
it is done elsewhere (the epindexer deamon!) <- important!

At the end, you've to add the event (not the trigger, take a look to the
doi datacite plugin on how to do it (*)) in the code of in the screen
plugin and then the event, when triggered, will have the pluginid and
action set, so you can check where the triggered event came from, and
send/not send the email based on your logic.

(*)
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feprintsug%2FDataCiteDoi%2Fblob%2Fmaster%2Flib%2Fplugins%2FEPrints%2FPlugin%2FScreen%2FEPrint%2FStaff%2FCoinDOI.pm%23L97&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C496f63bb97774165247208d7e69b09ad%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=3WDaB11ISXtACDrhhR0kMijqkYhEnmht4Wu80S%2Bw0Xs%3D&amp;reserved=0

 ??????????? $repository->dataset( "event_queue" )->create_dataobj({
 ??????????????? pluginid => "Event::DataCiteEvent",
 ??????????????? action => "datacite_doi",
 ??????????????? params => [$eprint->internal_uri],
 ??????????? }); <- here replace with Eprint::Move and move_to_archive

Il 22/04/20 10:05, Stenger, Avischai via Eprints-tech ha scritto:
> Hi 2 all,
>
> I am using this Method: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.eprints.org%2Fw%2FSending_email_when_item_is_made_live_or_deposited&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C496f63bb97774165247208d7e69b09ad%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=FbbvFiV2IoxAcRUihEE7SKtrQepyA%2BjDEB3q2KnNdLY%3D&amp;reserved=0
>
> And it work fine, but I cannot get a ?mailsend_OK /mailsend_Not_OK?  message to be shown on the user Screen. How do I get this done? I find no ?object" with the add_message() funtion
>
>
> Tnks and a healthy day
>
>
> avi
>
>
> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
> *** Archive: https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.eprints.org%2Ftech.php%2F&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C496f63bb97774165247208d7e69b09ad%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=hFRTukNerDhcESNLO%2BywJgQyKCpGWlJAQMtBIGguE90%3D&amp;reserved=0
> *** EPrints community wiki: https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwiki.eprints.org%2F&amp;data=01%7C01%7Ceprints-tech%40ecs.soton.ac.uk%7C496f63bb97774165247208d7e69b09ad%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=sKe2DiLjnSg6ClwtV6wdrqP%2Bxg9K6r8YTvLBN53tQCI%3D&amp;reserved=0

--
Yuri Carrer

  CAB - Centro di Ateneo per le Biblioteche, Universit? di Padova
  Tel: 049/827 9712 - Via Beato Pellegrino, 28 - Padova