Quick trick: "RT at a glance"

If you don’t like the default index.html “RT at a glance” page (for
example, we wanted more information from " 10 highest priority tickets I
own…" and " 10 highest priority tickets I requested…"), you can modify
what they display based on the various Elements called.

For example, we wanted Priority and Due Date listed for tickets we owned:

go to $RT_DIR/share/html/Elements and make the following changes:
diff MyTickets MyTickets-premod
31,32d30
<

<&|/l&>Due Date</&>
< <&|/l&>Priority</&>
64,69d61
<
< <%$Ticket->DueObj->AsString%>
<
<
< <%$Ticket->Priority%>
<

We also wanted more info on tickets we opened:

diff MyRequests MyRequests-premod
32,33d31
<

<&|/l&>Due Date</&>
< <&|/l&>Priority</&>
64,69d61
<
< <%$Ticket->DueObj->AsString%>
<
<
< <%$Ticket->Priority%>
<

Hope someone finds this useful!

I and our users vote for Priority field at home page.
So we vote for inclusion it in mainline.

John Jasen wrote:

John Jasen wrote:

If you don’t like the default index.html “RT at a glance” page (for
example, we wanted more information from " 10 highest priority tickets I
own…" and " 10 highest priority tickets I requested…"), you can modify
what they display based on the various Elements called.

I actually opted to split out the “New” vs “Open” tickets, and to
display “Stalled” tickets.

I made index.html look like:

<& /Elements/Header, Title=>“Start page”, Refresh =>
$session{‘home_refresh_inte
rval’} &>
<& /Elements/Tabs, current_toptab => ‘’ &>

<& /Elements/CustomHomepageHeader, %ARGS &> <& /Elements/MyNew &>
<& /Elements/MyOpen &>
<& /Elements/MyStalled &>
<& /Elements/MyRequests &>
<& /Elements/Quicksearch &>
<& /Elements/Refresh, Name => 'HomeRefreshInterval', Default => $session {'home_ refresh_interval'} &>
<%init> if ($ARGS{'HomeRefreshInterval'}) { $session{'home_refresh_interval'} = $ARGS{'HomeRefreshInterval'}; }

Then made MyOpen, MyNew and MyStalled out of MyTickets, modifying the
status each searches for.

For us, this makes recognizing that there is a new ticket much easier,
and we can also watch our stalled tickets without periodically doing a
search for them.

Russ Johnson
Stargate Online
Home: http://www.dimstar.net
LDP: http://ldp.dimstar.net

Russ Johnson wrote:

John Jasen wrote:

If you don’t like the default index.html “RT at a glance” page (for
example, we wanted more information from " 10 highest priority
tickets I own…" and " 10 highest priority tickets I requested…"),
you can modify what they display based on the various Elements called.

I actually opted to split out the “New” vs “Open” tickets, and to
display “Stalled” tickets.

I made index.html look like:

<& /Elements/Header, Title=>“Start page”, Refresh =>
$session{‘home_refresh_inte
rval’} &>
<& /Elements/Tabs, current_toptab => ‘’ &>

<& /Elements/CustomHomepageHeader, %ARGS &> <& /Elements/MyNew &>
<& /Elements/MyOpen &>
<& /Elements/MyStalled &>
<& /Elements/MyRequests &>
<& /Elements/Quicksearch &>
<& /Elements/Refresh, Name => 'HomeRefreshInterval', Default => $session {'home_ refresh_interval'} &>
<%init> if ($ARGS{'HomeRefreshInterval'}) { $session{'home_refresh_interval'} = $ARGS{'HomeRefreshInterval'}; }

Then made MyOpen, MyNew and MyStalled out of MyTickets, modifying the
status each searches for.

For us, this makes recognizing that there is a new ticket much easier,
and we can also watch our stalled tickets without periodically doing a
search for them.

As I see all people customise home page, but all of them have to change
RT’s Mason pages, add ellements or do copy-paste…
It would be really good to do flexible home page layout customisation.

Something like this:
User say in some way - “I want block with Tickets with status open or
new ordered by priority then queue and status, block must contain next
Ticket fields: Subj, Requestor…”

You approach is successful, but it’s copy-paste job.

As I see all people customise home page, but all of them have to change
RT’s Mason pages, add ellements or do copy-paste…
It would be really good to do flexible home page layout customisation.

Something like this:
User say in some way - “I want block with Tickets with status open or
new ordered by priority then queue and status, block must contain next
Ticket fields: Subj, Requestor…”

Fully customisable user interface would be terribly nice, wouldn’t it?
I can’t promise when it’s going to hit the mainline, but I expect that
chunks of RT’s homepage will look something like this in the future:

% my $rows = 10;
% my $search = RT::Tickets->new($session{‘CurrentUser’});
% $search->FromSQL(‘Requestors = "’.$session{CurrentUser}->EmailAddress.‘" AND (Status = “new” OR Status = “open”)’);
% $search->OrderBy( FIELD => ‘Priority’, ORDER => ‘descending’);
% $search->RowsPerPage($rows);
<& /Elements/View/CollectionAsTable, Collection => $search, Attributes=>[
{Name => ‘id’,Link => ‘/Ticket/Display.html?id=##id##’},
{Name => ‘Subject’,Link => ‘/Ticket/Display.html?id=##id##’},
‘Priority’, ‘Owner’],
Title => loc(‘My [_1] highest priority requested tickets’, $rows) &>

Please do note that this is a first cut that hasn’t yet been settled
upon nor had its syntax tweaked. But I do have dev code that uses this
and works :wink: When it’s more ready for public scrutiny, don’t worry, I’ll
let the public scrutinize it.

Request Tracker — Best Practical Solutions – Trouble Ticketing. Free.

Jesse Vincent wrote:

As I see all people customise home page, but all of them have to change
RT’s Mason pages, add ellements or do copy-paste…
It would be really good to do flexible home page layout customisation.

Something like this:
User say in some way - “I want block with Tickets with status open or
new ordered by priority then queue and status, block must contain next
Ticket fields: Subj, Requestor…”

Fully customisable user interface would be terribly nice, wouldn’t it?
I can’t promise when it’s going to hit the mainline, but I expect that
chunks of RT’s homepage will look something like this in the future:

% my $rows = 10;
% my $search = RT::Tickets->new($session{‘CurrentUser’});
% $search->FromSQL(‘Requestors = "’.$session{CurrentUser}->EmailAddress.’" AND (Status = “new” OR Status = “open”)’);
% $search->OrderBy( FIELD => ‘Priority’, ORDER => ‘descending’);
% $search->RowsPerPage($rows);
<& /Elements/View/CollectionAsTable, Collection => $search, Attributes=>[
{Name => ‘id’,Link => ‘/Ticket/Display.html?id=##id##’},
{Name => ‘Subject’,Link => ‘/Ticket/Display.html?id=##id##’},
‘Priority’, ‘Owner’],
Title => loc(‘My [_1] highest priority requested tickets’, $rows) &>

Please do note that this is a first cut that hasn’t yet been settled
upon nor had its syntax tweaked. But I do have dev code that uses this
and works :wink: When it’s more ready for public scrutiny, don’t worry, I’ll
let the public scrutinize it.

I really glad to see that work is going on. I become bored without
commits :slight_smile: