<table width="100%" cellspacing=0 cellpadding=0>

  [% IF conf == "computed" %]
    [% tmp      = obj.get_computed_config(c.obj_db) %]
    [% keys     = tmp.0 %]
    [% obj_conf = tmp.1 %]
  [% ELSE %]
    [% keys     = obj.get_sorted_keys() %]
    [% obj_conf = obj.conf %]
  [% END %]

  [% FOREACH key = keys %]
    [% NEXT IF obj.default.exists(key) && obj.default.$key.type == "DEPRECATED" %]
    [% IF duplicate_keys.exists(key) && key != 'use' && key != 'register' && key != 'name' %]
      [% class = "conf_attr_used" %]
    [% ELSE %]
      [% class = "conf_attr_unused" %]
    [% END %]
    [% IF obj.default.exists(key) && obj.default.$key.type == 'LIST' && obj_conf.$key.size > 0 && obj_conf.$key.0.substr(0,1) == '+' %]
      [% class = "conf_attr_unused" %]
    [% END %]
    [% IF loop.even %]
        [% SET loopclass="dataEven" %]
    [% ELSE %]
        [% SET loopclass="dataOdd" %]
    [% END %]
    <tr class="[% loopclass %]">
      <td class='dataVar [% loopclass +%] [%+ class %] conf_row' align="left" width="170">[% key %]</td>
      <td class='dataVal [% loopclass %] conf_row'>
        [% PROCESS _conf_object_row.tt nr = loop.count edit = 0 defaults = obj.default key = key obj_conf = obj_conf %]
      </td>
    </tr>
    [% SET duplicate_keys.$key = 1 %]
  [% END %]

  [% IF obj.comments.size() > 0 %]
    [% IF loopclass=="dataEven" %]
        [% SET loopclass="dataOdd" %]
    [% ELSE %]
        [% SET loopclass="dataEven" %]
    [% END %]
    <tr>
      <td class='dataVar [% loopclass %] conf_row' align="left" style="border-bottom: 0px;">comments</td>
      <td class='dataVar [% loopclass %] conf_row' style="border-bottom: 0px;"></td>
    </tr>
    <tr>
      <td class='dataVal [% loopclass %] conf_row' colspan=2><pre style="max-width: 600px; overflow: visible;">[% escape_html(obj.comments.join("\n")) %]</pre></td>
    </tr>
  [% END %]

</table>
