EPrints Technical Mailing List Archive

Message: #07950

< 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

All good :o)

Although I probably should have said 'use a phrase' - and linked to a phrase where the link URL is inserted via a pin e.g.


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: 13 August 2019 09:32
To: John Salter <J.Salter@leeds.ac.uk>
Cc: eprints-tech@ecs.soton.ac.uk <eprints-tech@ecs.soton.ac.uk>
Subject: 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 );

"message", $frag);


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


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


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.


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->{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->{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.