Customize Lookup.html

Hello !

I’m trying to add a field on the RTIR Lookup.html page with Callbacks, but it doesn’t work. I must have missed something…

I’m trying to add a field that, when I put in a URL or IP, redirects me to the “Countermeasure” ticket search, which may or may not contain the URL or IP. But it’s not displayed.

The content of the Callback file :

<form action="Lookup.html" method="get" target="_blank">
  <div class="form-row">
    <div class="col-2">
      <span class="current-value form-control"><%loc('Blocked :')%>:</span>
% foreach my $arg ( grep exists $ARGS{$_}, @PassArguments ) {
    <input type="hidden" name="<% $arg %>" value="<% $ARGS{ $arg } %>" />
% }
    <div class="col-4">
      <input class="form-control" type="text" name="q" value="<% $q %>" />
    <div class="col-auto">
      <input class="form-control btn btn-primary button" type="submit" value="<%loc('Go')%>" />
$q => ''
@PassArguments => ()

The name of the file is ToolFormBlock and his location inside the docker container is /opt/rt5/local/html/Callbacks/Blocker/Tools/Lookup.html.

For information, I use the FireFart docker image of RTIR.

I’m not an RTIR user so I can’t help with this one specifically, but just to check: have you flushed the Mason cache? Also make sure that the callback name ToolFormBlock matches the case of the callback in the Lookup.html code.

How can I flush the Mason cache ?

Depends on where you’ve got things installed, but if your installation is like our RT5 installs its probably in /opt/rt5/var/mason_data/obj. We have a local script called kickrt that removes this and also restarts the web and database servers Just In Case:


rm -rf /opt/rt5/var/mason_data/obj; 
service httpd stop; 
service mysqld restart;
service httpd start;

Hi !

As said in my first post, RTIR is containerized in a Docker container.

And so, as I’m using volumes to add a Callback file, I use the script provided by FireFart to restart the containers:


# this only restarts prod without pulling in new images

set -euf -o pipefail


if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
. "$DIR/"



docker compose -f docker-compose.yml stop
docker compose -f docker-compose.yml rm -f -v -s
docker compose -f docker-compose.yml up -d --remove-orphans
docker image prune -f

I’ve looked in the code of Lookup.html and I can’t find much related to the formatting of the Callback file name :

The only place I can find anything related to filename formatting is in this particular file:

With this code :

my $tools = RT->Config->Get('RTIRResearchTools') || ();

<div class="row">
  <div class="col-6">
% for my $tool (@$tools) {
%     if ($m->comp_exists('ToolForm' . $tool)) {
%         $m->comp('ToolForm' . $tool, %ARGS);
%    }
% }

% unless ( $ARGS{ HideResults } ) {
<div class="row">
  <div class="col-12">
for my $tool (@$tools) {
    if ($m->comp_exists('ToolResults' . $tool)) {
        $m->comp('ToolResults' . $tool, %ARGS);
% }

I might be misunderstanding what you doing here, but a quick peek at that link you supplied for Lookup.html doesn’t appear to include a Callback named ToolFormBlock? Looks like the options you have are BeforeCurrent, AfterCurrent, BeforeTools or AfterTools. You need to call your file one of those I think.

In that case, I don’t understand how I can have ToolFormTraceroute and ToolFormWhois on the Lookup.html page…

Knowing that in my Docker container, it’s the same structure as in the github repositories.

I’d guess (and remember I don’t use RTIR!) that might be because those two do appear as components in the same directory - rtir/html/RTIR/Tools/Elements at 5.0-trunk · bestpractical/rtir · GitHub

I can’t see ToolFormBlock in there?

This is normal that you can’t see ToolFormBlock in there, that’s because this is the official repository of RTIR from BestPractical.