EPrints Technical Mailing List Archive

See the EPrints wiki for instructions on how to join this mailing list and related information.

Message: #07948


< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First

Re: [EP-tech] ScreenProcessor.pm and Admin Screen Messages


Ahhh thanks John.

I'm such a fool! I already had the code I needed from something I did the other month. I just thought I needed to do something different because I was trying to add $frag to add_message rather than just returning it to be added to $page.

There are probably a few unnecessary Perl variables here and I need to replace certain things with their actual parts, but it works:

my $repo = $self->{session};
my $frag = $repo->xml->create_document_fragment;

my $chunk = $self->{session}->make_element( "div", id => "ep_messages" );
my $searchlink = $self->{session}->make_element( "a", class=> "search_link", href="" target=>"_blank" );
$searchlink->appendChild($repo->make_text("bleep bloop blop"));

$chunk->appendChild( $searchlink );
$frag->appendChild( $chunk );

$self->{processor}->add_message(
"message", $frag);

image.png

What a relief that I don't need to go change scary things!

Thanks,
James

On Tue, Aug 13, 2019 at 8:16 AM John Salter <J.Salter@leeds.ac.uk> wrote:
Hi James,
I think you've got all the right parts - you just need to join them all together:
- create the link
- create the text
- append the text to the link
- append the link to the message

Cheers,
John

From: eprints-tech-bounces@ecs.soton.ac.uk <eprints-tech-bounces@ecs.soton.ac.uk> on behalf of James Kerwin via Eprints-tech <eprints-tech@ecs.soton.ac.uk>
Sent: 12 August 2019 14:57:39
To: eprints-tech@ecs.soton.ac.uk <eprints-tech@ecs.soton.ac.uk>
Subject: [EP-tech] ScreenProcessor.pm and Admin Screen Messages
 
Hi All,

I have a button on the admin screen that does something when clicked. Then at the top of the screen a message appears upon completion to provide a url for the user to follow (or that is the plan). It usually present a plain text message, but I want a clickable link. At the moment users would need to copy the message text and paste it into the address bar.

At the moment I can have either text or a link that can't be seen or clicked, but shows up when you inspect the page.

image.png

Here is my code that I've adapted (only the bit in bold is really relevant):

sub add_result_message
{
        my( $self, $ok ) = @_;

        if( $ok )
        {
                #$self->{processor}->add_message( "message",
                        #$self->html_phrase( "aam_link" ) );
#$self->{processor}->add_message(
#"message",
#$self->{repository}->make_text( "Please go to www.google.co.uk to access the AAM Updates.")
#);
#my $messagelink =
my $uri = "www.google.co.uk";
$self->{processor}->add_message( "message",
$self->{repository}->make_text(
$self->{session}->render_link( $uri ))
);
        }


Is there a way that I can alter this to show a clickable text link or am I going to need to go further down the EPrints Rabbit Hole? My alternative approach is to alter render_messages in ScreenProcessor.pm, but I don't really want to do that and I also don't know how to make a local archive copy of this file either as it's a few levels up from the plugins directory.

Any suggestions or alternative approaches are very welcome.

Thanks,
James