On 2011-12-07 22:16, Ruslan Zakirov wrote:
On Wed, Dec 7, 2011 at 10:11 PM, Gerard FENELON<[email protected]>  wrote:
Hi

I am using RT3.8.8

I have a CF where the "Link value to" contains

http://cvsweb/__CustomField__

RT generates a link but if I click on the link I get a 404 error using
Firefox.
I am pretty sure that I saw this work when I first set it up with RT 3.6

If I look at the generated source of the page, I see

<td class="value">
<a href="http://cvsweb/aaaa%2Fbbbb%2Fcccc%2Fdddd"; target="_new">
aaaa/bbbb/cccc/dddd</a>
</td>

The code is in share/html/Elements/ShowCustomFields

    my $linked = $value->LinkValueTo;
     if ( defined $linked&&  length $linked ) {
         my $linked = $m->interp->apply_escapes( $linked, 'h' );
         $m->out('<a href="'. $linked .'" target="_new">');
     }

The code for RT3.6.10 shows
     my $linked = $cf->LinkValueTo;
     if ( $linked ) {
         $m->out('<a href="'. $value->LinkValueTo .'" target="_new">');
     }

How can I tell Mason not to escape '/' and still escape the rest ?

Escaping you have problem with is not happening here. Take a look into
lib/RT/ObjectCustomFieldValue.pm, method _FillInTemplateURL.

Thanks Ruslan

is it safe to change
    CustomField => { value => sub { $_[0]->Content }, escape => 1 },
to
    CustomField => { value => sub { $_[0]->Content } },
in _FillInTemplateURL ?

Or should I change
    $$ref =~ s/([^a-zA-Z0-9_.!~*'()-])/uc sprintf("%%%02X", ord($1))/eg;
to
    $$ref =~ s/([^a-zA-Z0-9_.!~*'()\/-])/uc sprintf("%%%02X", ord($1))/eg;
in RT::Interface::Web::EscapeURI ?

Gerard

--------
RT Training Sessions (http://bestpractical.com/services/training.html)
* Boston  March 5 & 6, 2012

Reply via email to