package EnsEMBL::Web::Component::UserData::ShareURL; use strict; use warnings; no warnings "uninitialized"; use base qw(EnsEMBL::Web::Component::UserData); use EnsEMBL::Web::Tools::Encryption qw(checksum); sub _init { my $self = shift; $self->cacheable( 0 ); $self->ajaxable( 0 ); } sub caption { my $self = shift; return 'Shareable URL'; } sub content { my $self = shift; my $object = $self->object; my @shares = grep { $_ } ($self->object->param('share_id')); my $share_ref = join ';', ( map { ($_ =~ /^\d+$/) ? "share_ref=000000$_-". checksum($_) : "share_ref=$_" } @shares ); my $url = $self->object->species_defs->ENSEMBL_BASE_URL . $self->object->param('_referer'); $url .= $self->object->param('_referer') =~ /\?/ ? ';' : '?'; $url .= $share_ref; my $html = qq(<p class="space-below">To share this data, use the URL:</p> <p class="space-below"><a href="$url">$url</a></p> <p class="space-below">Please note that this link will expire after 72 hours.</p> ); return $html; } 1;