<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; " class="">I did think about using SQL to do value manipulation/combination, and this <i class="">does</i> solve the problem of simple combinations (like the one I proposed), but it feels <i class="">wrong</i>. I'm trying to understand the code, and it looks like current implementations do not contemplate post-retrieval value manipulation in perl (e.g., by hook).<div class=""><br class=""></div><div class="">I'm debating writing/submitting a patch. Are there good reasons for me not to attempt this? I'm surprised this doesn't exist already, but that may indicate a lack of need.</div><div class=""><br class=""></div><div class="">I am considering implementing something like this:</div><div class=""><br class=""></div><div class=""><font class="Apple-style-span" face="'Courier New'">sub buglist_columns {<br class="">    my ( $self, $args ) = @_;<br class="">    my $columns = $args->{columns};<br class=""></font></div><div class=""><font class="Apple-style-span" face="'Courier New'">    $columns->{'rep_platform_hidden'} = {<br class="">        name => '</font><span class="Apple-style-span" style="font-family: 'Courier New'; ">rep_platform</span><font class="Apple-style-span" face="'Courier New'">',</font><div class=""><div class=""><font class="Apple-style-span" face="'Courier New'">        title => 'Hardware (Hidden)',</font></div></div><div class=""><div class=""><font class="Apple-style-span" face="'Courier New'"><b><i>        # New (optional) attribute indicating whether the</i></b></font></div><div class=""><b><i><font class="Apple-style-span" face="'Courier New'">        #</font><span class="Apple-style-span" style="font-family: 'Courier New'; "> </span><span class="Apple-style-span" style="font-family: 'Courier New'; ">column</span><span class="Apple-style-span" style="font-family: 'Courier New'; "> value will be displayed in buglist.cgi,</span></i></b></div><div class=""><b><i><font class="Apple-style-span" face="'Courier New'">        #</font><span class="Apple-style-span" style="font-family: 'Courier New'; "> </span><span class="Apple-style-span" style="font-family: 'Courier New'; ">or</span><span class="Apple-style-span" style="font-family: 'Courier New'; "> whether the column will merely be added to</span></i></b></div><div class=""><b><i><font class="Apple-style-span" face="'Courier New'">        #</font><span class="Apple-style-span" style="font-family: 'Courier New'; "> </span><span class="Apple-style-span" style="font-family: 'Courier New'; ">the</span><span class="Apple-style-span" style="font-family: 'Courier New'; "> SQL query (alternate name candidates could</span></i></b></div><div class=""><b><i><span class="Apple-style-span" style="font-family: 'Courier New'; ">        # be "hidden", "no_display", etc.)</span></i></b></div></div><div class=""></div><div class=""><font class="Apple-style-span" face="'Courier New'"><b><i>        <span class="">sql_only</span> => 1,</i></b></font></div></div><div class=""><font class="Apple-style-span" face="'Courier New'">    };</font></div><div class=""><font class="Apple-style-span" face="'Courier New'">    $columns->{'op_sys</font><span class="Apple-style-span" style="font-family: 'Courier New'; ">_hidden</span><span class="Apple-style-span" style="font-family: 'Courier New'; ">'} = {</span></div><div class=""><font class="Apple-style-span" face="'Courier New'">        name => '</font><span class="Apple-style-span" style="font-family: 'Courier New'; ">op_sys</span><font class="Apple-style-span" face="'Courier New'">',</font><div class=""><div class=""><font class="Apple-style-span" face="'Courier New'">        title => 'OS (Hidden)',</font></div></div><div class=""><div class=""><span class="Apple-style-span" style="font-family: 'Courier New'; "><b><i>        </i></b></span><span class="Apple-style-span" style="font-family: 'Courier New'; "><b><i><span class="">sql_only</span></i></b></span><span class="Apple-style-span" style="font-family: 'Courier New'; "><b><i> => 1,</i></b></span></div></div></div><div class=""><font class="Apple-style-span" face="'Courier New'">    };</font></div><div class=""><font class="Apple-style-span" face="'Courier New'">    $columns->{'env'} = {<br class="">        name => '</font><span class="Apple-style-span" style="font-family: 'Courier New'; ">NULL</span><font class="Apple-style-span" face="'Courier New'">',</font><div class=""><div class=""><font class="Apple-style-span" face="'Courier New'">        title => 'Env',</font></div></div><div class=""><div class=""><span class="Apple-style-span" style="font-family: 'Courier New'; ">    };</span></div></div></div><div class=""><font class="Apple-style-span" face="'Courier New'">}</font></div><div class=""><font class="Apple-style-span" face="'Courier New'"><br></font></div><div class=""><font class="Apple-style-span" face="'Courier New'"><b><i># New hook called for each DB row retrieved in buglist.cgi</i></b></font></div><div class=""><font class="Apple-style-span" face="'Courier New'">sub buglist_process_row {</font></div><span class="Apple-style-span" style="font-family: 'Courier New'; ">    my ( $self, $args ) = @_;</span><span class="Apple-style-span" style="font-family: 'Courier New'; "><br class=""></span><span class="Apple-style-span" style="font-family: 'Courier New'; ">    my $row_hash = $args->{row_hash};</span><div><font class="Apple-style-span" face="'Courier New'">    if (exists $row_hash->{env}) {<br></font><div><span class="Apple-style-span" style="font-family: 'Courier New'; ">        $row_hash->{env} = sprintf('%s (%s)',</span></div><div><span class="Apple-style-span" style="font-family: 'Courier New'; ">            $row_hash->{rep_platform_hidden},</span></div><div><span class="Apple-style-span" style="font-family: 'Courier New'; ">            $row_hash->{op_sys_hidden}</span><span class="Apple-style-span" style="font-family: 'Courier New'; ">);</span></div><div><span class="Apple-style-span" style="font-family: 'Courier New'; ">    }</span></div><div><div class=""><font class="Apple-style-span" face="'Courier New'">}</font></div><div class=""><br class=""></div><div class="">Thoughts?</div><div class=""><br class=""></div><div class=""><br class=""><div>
    --Matt<br class="">
<br class="">

</div>

<br class=""><div><div class="">On Jan 6, 2013, at 23:38, Byron Jones wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" class="">
<div bgcolor="#FFFFFF" text="#000000" class="">Matthew Bogosian wrote:
<blockquote cite="mid:AAB20BA1-2F7E-46B1-8220-F22562588355@columbia.edu" type="cite">
  <pre wrap="" class="">1. How do I use multiple source columns to create a single output column in buglist.cgi?
2. How do I format values after retrieval but before display in buglist.cgi (ideally using only hooks without modifying default templates)?</pre>
</blockquote>
something like this (untested):<br class="">
<br class="">
sub buglist_columns {<br class="">
    my ($self, $args) = @_;<br class="">
    my $columns = $args->{columns};<br class="">
    $columns->{'env'} = {<br class="">
        name => "CONCAT(rep_platform, ' (', op_sys, ')')",<br class="">
        title => 'Env',<br class="">
    };<br class="">
}<br class="">
<br class="">
you'll also need to add env to 
template/en/default/hook/global/field-descs-end.none.tmpl:<br class="">
<br class="">
[% IF in_template_var %]<br class="">
  [% vars.field_descs.env = "Env" %]<br class="">
[% END %]<br class="">
<br class="">
<br class="">
<div class="moz-signature">-- <br class="">
<span style="color: rgb(192, 192, 192);" class="">byron - <a href="irc:glob" class="moz-txt-link-freetext">irc:glob</a> - 
<a href="http://bugzilla.mozilla.org" class="">bugzilla.mozilla.org</a> team -</span><br style="color: rgb(192, 192, 192);" class="">


<br style="color: rgb(192, 192, 192);" class="">

</div>
</div>
</blockquote></div><br class=""></div></div></div></body></html>