Changeset 7943


Ignore:
Timestamp:
May 4, 2021, 2:23:19 PM (2 years ago)
Author:
Nicklas Nordborg
Message:

Merged BASE 3.18.1 to the trunk.

Location:
trunk
Files:
101 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/build.xml

    r7926 r7943  
    6969  <property name="base.minorversion" value="19" />
    7070  <property name="base.maintenanceversion" value="0" />
    71   <property name="base.versionsuffix" value="" />
     71  <property name="base.versionsuffix" value="-dev" />
    7272  <property name="base.version"
    7373    value="${base.majorversion}.${base.minorversion}.${base.maintenanceversion}" />
  • trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/Cell.java

    r7908 r7943  
    337337    boolean overflowed = !disableOverflowCheck && maxCharacters > 0 && content.length() > maxCharacters &&
    338338      HTML.textLength(content) > maxCharacters;
     339    boolean isStickyCol = table.isColumnSticky(getColumn());
    339340
    340341    StringBuilder sb = new StringBuilder();
    341342    sb.append("\t<td");
    342     if (getClazz() != null || getSubclass() != null)
     343    if (getClazz() != null || getSubclass() != null || isStickyCol)
    343344    {
    344345      sb.append(" class=\"");
    345346      if (getClass() != null) sb.append(getClazz());
    346347      if (getSubclass() != null) sb.append(" ").append(getSubclass());
     348      if (isStickyCol) sb.append(" sticky-col bg-filled-100");
    347349      sb.append("\"");
    348350    }
  • trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/ColumnDef.java

    r7907 r7943  
    691691      boolean isSortable = isSortable() && table.getSc() != null &&  table.getItem() != null;
    692692      boolean isVisible = table.isColumnVisible(getId());
     693      boolean isStickyCol = table.isColumnSticky(getId());
    693694      boolean hasFilter = false;
    694695      if (isFilterable)
     
    714715        StringBuilder sb = new StringBuilder();
    715716        sb.append("<th");
    716         addIdAndStyles(sb, allowColumnDrag ? "table-col-draggable" : null);
     717        addIdAndStyles(sb, allowColumnDrag ? "table-col-draggable" : null, isStickyCol ? "sticky-col bg-filled-100" : null);
    717718        addDynamicAttributes(sb);
    718719        if (allowColumnDrag)
     
    767768         
    768769          sb = new StringBuilder();
    769           sb.append("<th class=\"propertyfilter\">");
     770          sb.append("<th class=\"propertyfilter"+(isStickyCol ? " sticky-col bg-filled-100" : "")+"\">");
    770771          if (isPermission)
    771772          {
  • trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/ColumnSubtitles.java

    r7905 r7943  
    8888        sb.append(">\n");
    8989        int colspan = table.numHeaderColumns()-table.numVisibleColumns();
     90        if (table.hasStickyHeaders() && colspan > 0)
     91        {
     92          sb.append("<th class=\"row-index bg-filled-100\"></th>");
     93          colspan--;
     94        }
    9095        if (colspan > 0)
    9196        {
  • trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/Row.java

    r7884 r7943  
    123123  public Row()
    124124  {
    125     super(null);
     125    super("row");
    126126  }
    127127 
  • trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/Table.java

    r7905 r7943  
    7070      subcontext=...
    7171      action=...
     72      stickyheaders=...
    7273      dragcolumns=true|false|null
    7374   &gt;
     
    198199      The name of the current subcontext. Used by some child taglibs for
    199200      generating context sensitive information (ie. PresetSelector).
     201    </td>
     202  </tr>
     203  <tr>
     204    <td>stickyheaders</td>
     205    <td>-</td>
     206    <td>no</td>
     207    <td>
     208      Enable sticky headers and optionally set the name of a sticky column.
     209      Do not set this attribute if the table should not have sticky headers.
    200210    </td>
    201211  </tr>
     
    271281 
    272282  /**
     283    If sticky headers is enabled or not.
     284  */
     285  private boolean stickyHeaders = false;
     286
     287  /**
     288    The id of a column that is "sticky".
     289  */
     290  private String stickyCol = null;
     291 
     292  /**
    273293    Number of filter rows in the table.
    274294  */
     
    337357  }
    338358
     359  /**
     360    @since 3.18.1
     361  */
     362  public void setStickyheaders(String stickyCol)
     363  {
     364    this.stickyCol = stickyCol;
     365    this.stickyHeaders = true;
     366  }
     367 
     368  /**
     369    @since 3.18.1
     370  */
     371  public boolean hasStickyHeaders()
     372  {
     373    return stickyHeaders;
     374  }
     375 
     376  /**
     377    @since 3.18.1
     378  */
     379  public String getStickyCol()
     380  {
     381    return stickyCol;
     382  }
     383 
     384 
    339385  private Boolean dragColumns;
    340386 
     
    495541    return visibleColumns;
    496542  }
     543  boolean isColumnSticky(String columnId)
     544  {
     545    return stickyHeaders && columnId.equals(stickyCol);
     546  }
    497547  Formatter<?> getFormatter(String columnId)
    498548  {
     
    552602    for (String column : visibleColumns)
    553603    {
    554       sb.append("<th class=\"subtitle\">");
     604      sb.append("<th class=\"subtitle"+(isColumnSticky(column)?" sticky-col bg-filled-100":"")+"\">");
    555605      String content = columnSubtitle.get(column);
    556606      if (content != null)
     
    708758    StringBuilder sb = new StringBuilder();
    709759    sb.append("<div ");
    710     addIdAndStyles(sb, "auto-init");
     760    addIdAndStyles(sb, "auto-init", hasStickyHeaders() ? "sticky-headers" : null);
    711761    sb.append(" data-auto-init=\"table\"");
    712762    addDynamicAttributes(sb);
  • trunk/src/core/net/sf/basedb/core/DerivedBioAssay.java

    r7642 r7943  
    710710  {
    711711    return getDbControl().getItem(Job.class, getData().getJob());
     712  }
     713 
     714  /**
     715    Set the job on this derived bioassay that was used to create or import
     716    data for it.
     717 
     718    @param job The job or null to clear the existing job
     719    @throws PermissionDeniedException If the logged in user doesn't have
     720      write permission
     721    @since 3.18.1
     722  */
     723  public void setJob(Job job)
     724    throws PermissionDeniedException
     725  {
     726    checkPermission(Permission.WRITE);
     727    if (job != null) job.checkPermission(Permission.USE);
     728    getData().setJob(job == null ? null : job.getData());
    712729  }
    713730 
  • trunk/src/core/net/sf/basedb/core/data/DerivedBioAssayData.java

    r6996 r7943  
    244244  /**
    245245    Get the job used to create this bioassay set.
    246     @hibernate.many-to-one column="`job_id`" not-null="false" update="false" outer-join="false"
     246    @hibernate.many-to-one column="`job_id`" not-null="false" outer-join="false"
    247247  */
    248248  public JobData getJob()
  • trunk/www/WEB-INF/base.tld

    r7414 r7943  
    559559    </attribute>
    560560  </tag>
     561  <tag>
     562    <name>input</name>
     563    <tag-class>net.sf.basedb.clients.web.taglib.Input</tag-class>
     564    <body-content>JSP</body-content>
     565    <attribute>
     566      <name>id</name>
     567      <rtexprvalue>true</rtexprvalue>
     568    </attribute>
     569    <attribute>
     570      <name>clazz</name>
     571      <rtexprvalue>true</rtexprvalue>
     572    </attribute>
     573    <attribute>
     574      <name>subclass</name>
     575      <rtexprvalue>true</rtexprvalue>
     576    </attribute>
     577    <attribute>
     578      <name>style</name>
     579      <rtexprvalue>true</rtexprvalue>
     580    </attribute>
     581    <attribute>
     582      <name>type</name>
     583      <required>true</required>
     584      <rtexprvalue>true</rtexprvalue>
     585    </attribute>
     586    <attribute>
     587      <name>name</name>
     588      <required>true</required>
     589      <rtexprvalue>true</rtexprvalue>
     590    </attribute>
     591    <attribute>
     592      <name>value</name>
     593      <rtexprvalue>true</rtexprvalue>
     594    </attribute>
     595    <attribute>
     596      <name>checked</name>
     597      <rtexprvalue>true</rtexprvalue>
     598    </attribute>
     599    <attribute>
     600      <name>title</name>
     601      <rtexprvalue>true</rtexprvalue>
     602    </attribute>
     603    <attribute>
     604      <name>visible</name>
     605      <rtexprvalue>true</rtexprvalue>
     606    </attribute>
     607    <attribute>
     608      <name>tabindex</name>
     609      <rtexprvalue>true</rtexprvalue>
     610    </attribute>
     611    <dynamic-attributes>true</dynamic-attributes>
     612  </tag>
    561613</taglib>
  • trunk/www/WEB-INF/table.tld

    r7908 r7943  
    9595      <rtexprvalue>true</rtexprvalue>
    9696    </attribute>
     97    <attribute>
     98      <name>stickyheaders</name>
     99      <rtexprvalue>true</rtexprvalue>
     100    </attribute>
    97101    <dynamic-attributes>true</dynamic-attributes>
    98102  </tag>
  • trunk/www/admin/annotationtypecategories/list_categories.jsp

    r7914 r7943  
    134134      filterrows="<%=cc.getFilterRows()%>"
    135135      subclass="fulltable"
     136      stickyheaders="name"
    136137      >
    137138      <tbl:hidden
     
    299300        <tbl:headers>
    300301          <tbl:headerrow>
    301             <tbl:header colspan="3" />
     302            <tbl:header clazz="row-index bg-filled-100" />
    302303            <tbl:columnheaders />
    303304          </tbl:headerrow>
     
    310311            %>
    311312            <tbl:headerrow>
    312               <tbl:header subclass="index" />
    313               <tbl:header
    314                 subclass="check"
    315                 visible="<%=mode.hasCheck()%>"
    316                 ><base:icon
    317                   subclass="link table-check"
    318                   image="check_uncheck.png"
    319                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    320                   visible="<%=lastRow%>"
    321                 /></tbl:header>
    322               <tbl:header
    323                 subclass="check"
    324                 visible="<%=mode.hasRadio()%>"
    325                 />
    326               <tbl:header
    327                 subclass="icons"
    328                 visible="<%=mode.hasIcons()%>"
    329                 >
    330                 <base:icon
    331                   subclass="link table-filter-row-action"
    332                   image="add.png"
    333                   tooltip="Add extra filter row"
    334                   visible="<%=lastRow%>"
    335                 /><base:icon
    336                   subclass="link table-filter-row-action"
    337                   image="remove.png"
    338                   tooltip="Remove this filter row"
    339                   visible="<%=numRows > 1 || numFilters > 0 %>"
    340                   data-remove-row="<%=filterNo%>"
    341                 />
     313              <tbl:header subclass="row-index bg-filled-100">
     314                <div class="index-<%=mode.getName()%>">
     315                  <div class="index"></div>
     316                  <div class="check">
     317                    <base:icon
     318                      subclass="link table-check"
     319                      image="check_uncheck.png"
     320                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     321                      visible="<%=lastRow && mode.hasCheck()%>"
     322                    />
     323                  </div>
     324                  <div class="icons">
     325                    <base:icon
     326                      subclass="link table-filter-row-action"
     327                      image="add.png"
     328                      tooltip="Add extra filter row"
     329                      visible="<%=lastRow%>"
     330                    /><base:icon
     331                      subclass="link table-filter-row-action"
     332                      image="remove.png"
     333                      tooltip="Remove this filter row"
     334                      visible="<%=numRows > 1 || numFilters > 0 %>"
     335                      data-remove-row="<%=filterNo%>"
     336                    />
     337                  </div>
     338                </div>
    342339              </tbl:header>
    343340              <tbl:propertyfilter row="<%=filterNo%>" />
     
    379376              %>
    380377              <tbl:row>
    381                 <tbl:header
    382                   clazz="index"
    383                   ><%=index%></tbl:header>
    384                 <tbl:header
    385                   clazz="check"
    386                   visible="<%=mode.hasCheck()%>"
    387                   ><input
    388                     type="checkbox"
    389                     name="<%=itemId%>"
    390                     value="<%=itemId%>"
    391                     title="<%=name%>"
    392                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    393                   ></tbl:header>
    394                 <tbl:header
    395                   clazz="check"
    396                   visible="<%=mode.hasRadio()%>"
    397                   ><input
    398                     type="radio"
    399                     name="item_id"
    400                     value="<%=itemId%>"
    401                     title="<%=name%>"
    402                     <%=selectedItemId == itemId ? "checked" : ""%>
    403                   ></tbl:header>
    404                 <tbl:header
    405                   clazz="icons"
    406                   visible="<%=mode.hasIcons()%>"
    407                   ><base:icon
    408                     image="deleted.png"
    409                     id="<%="delete."+itemId %>"
    410                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    411                     data-item-id="<%=itemId%>"
    412                     tooltip="This item has been scheduled for deletion"
    413                     visible="<%=item.isRemoved()%>"
    414                   /><base:icon
    415                     image="shared.png"
    416                     id="<%="share."+itemId %>"
    417                     subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
    418                     data-item-id="<%=itemId%>"
    419                     tooltip="This item is shared to other users, groups and/or projects"
    420                     visible="<%=item.isShared()%>"
    421                   />&nbsp;</tbl:header>
     378                <tbl:header clazz="row-index bg-filled-100">
     379                  <div class="index-<%=mode.getName()%>">
     380                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     381                    <div class="check">
     382                      <base:input
     383                        type="checkbox"
     384                        name="<%=itemId%>"
     385                        value="<%=itemId%>"
     386                        title="<%=name%>"
     387                        checked="<%=cc.getSelected().contains(itemId)%>"
     388                        visible="<%=mode.hasCheck()%>"
     389                      />
     390                      <base:input
     391                        type="radio"
     392                        name="item_id"
     393                        value="<%=itemId%>"
     394                        title="<%=name%>"
     395                        checked="<%=selectedItemId == itemId%>"
     396                        visible="<%=mode.hasRadio()%>"
     397                      />
     398                    </div>
     399                    <div class="icons">
     400                      <base:icon
     401                        image="deleted.png"
     402                        id="<%="delete."+itemId %>"
     403                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     404                        data-item-id="<%=itemId%>"
     405                        tooltip="This item has been scheduled for deletion"
     406                        visible="<%=item.isRemoved()%>"
     407                      /><base:icon
     408                        image="shared.png"
     409                        id="<%="share."+itemId %>"
     410                        subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
     411                        data-item-id="<%=itemId%>"
     412                        tooltip="This item is shared to other users, groups and/or projects"
     413                        visible="<%=item.isShared()%>"
     414                      />
     415                    </div>
     416                  </div>
     417                </tbl:header>
    422418                <tbl:cell column="name"><div
    423419                  class="link table-item"
  • trunk/www/admin/annotationtypes/list_annotationtypes.jsp

    r7914 r7943  
    176176      filterrows="<%=cc.getFilterRows()%>"
    177177      subclass="fulltable"
     178      stickyheaders="name"
    178179      >
    179180      <tbl:hidden
     
    498499        <tbl:headers>
    499500          <tbl:headerrow>
    500             <tbl:header colspan="3" />
     501            <tbl:header clazz="row-index bg-filled-100" />
    501502            <tbl:columnheaders />
    502503          </tbl:headerrow>
     
    509510            %>
    510511            <tbl:headerrow>
    511               <tbl:header subclass="index" />
    512               <tbl:header
    513                 subclass="check"
    514                 visible="<%=mode.hasCheck()%>"
    515                 ><base:icon
    516                   subclass="link table-check"
    517                   image="check_uncheck.png"
    518                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    519                   visible="<%=lastRow%>"
    520                 /></tbl:header>
    521               <tbl:header
    522                 subclass="check"
    523                 visible="<%=mode.hasRadio()%>"
    524                 />
    525               <tbl:header
    526                 subclass="icons"
    527                 visible="<%=mode.hasIcons()%>"
    528                 >
    529                 <base:icon
    530                   subclass="link table-filter-row-action"
    531                   image="add.png"
    532                   tooltip="Add extra filter row"
    533                   visible="<%=lastRow%>"
    534                 /><base:icon
    535                   subclass="link table-filter-row-action"
    536                   image="remove.png"
    537                   tooltip="Remove this filter row"
    538                   visible="<%=numRows > 1 || numFilters > 0 %>"
    539                   data-remove-row="<%=filterNo%>"
    540                 />
     512              <tbl:header subclass="row-index bg-filled-100">
     513                <div class="index-<%=mode.getName()%>">
     514                  <div class="index"></div>
     515                  <div class="check">
     516                    <base:icon
     517                      subclass="link table-check"
     518                      image="check_uncheck.png"
     519                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     520                      visible="<%=lastRow && mode.hasCheck()%>"
     521                    />
     522                  </div>
     523                  <div class="icons">
     524                    <base:icon
     525                      subclass="link table-filter-row-action"
     526                      image="add.png"
     527                      tooltip="Add extra filter row"
     528                      visible="<%=lastRow%>"
     529                    /><base:icon
     530                      subclass="link table-filter-row-action"
     531                      image="remove.png"
     532                      tooltip="Remove this filter row"
     533                      visible="<%=numRows > 1 || numFilters > 0 %>"
     534                      data-remove-row="<%=filterNo%>"
     535                    />
     536                  </div>
     537                </div>
    541538              </tbl:header>
    542539              <tbl:propertyfilter row="<%=filterNo%>" />
     
    580577              %>
    581578              <tbl:row>
    582                 <tbl:header
    583                   clazz="index"
    584                   ><%=index%></tbl:header>
    585                 <tbl:header
    586                   clazz="check"
    587                   visible="<%=mode.hasCheck()%>"
    588                   ><input
    589                     type="checkbox"
    590                     name="<%=itemId%>"
    591                     value="<%=itemId%>"
    592                     title="<%=name%>"
    593                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    594                   ></tbl:header>
    595                 <tbl:header
    596                   clazz="check"
    597                   visible="<%=mode.hasRadio()%>"
    598                   ><input
    599                     type="radio"
    600                     name="item_id"
    601                     value="<%=itemId%>"
    602                     title="<%=name%>"
    603                     <%=selectedItemId == itemId ? "checked" : ""%>
    604                   ></tbl:header>
    605                 <tbl:header
    606                   clazz="icons"
    607                   visible="<%=mode.hasIcons()%>"
    608                   ><base:icon
    609                     image="deleted.png"
    610                     id="<%="delete."+itemId %>"
    611                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    612                     data-item-id="<%=itemId%>"
    613                     tooltip="This item has been scheduled for deletion"
    614                     visible="<%=item.isRemoved()%>"
    615                   /><base:icon
    616                     image="shared.png"
    617                     id="<%="share."+itemId %>"
    618                     subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
    619                     data-item-id="<%=itemId%>"
    620                     tooltip="This item is shared to other users, groups and/or projects"
    621                     visible="<%=item.isShared()%>"
    622                   />&nbsp;</tbl:header>
     579                <tbl:header clazz="row-index bg-filled-100">
     580                  <div class="index-<%=mode.getName()%>">
     581                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     582                    <div class="check">
     583                      <base:input
     584                        type="checkbox"
     585                        name="<%=itemId%>"
     586                        value="<%=itemId%>"
     587                        title="<%=name%>"
     588                        checked="<%=cc.getSelected().contains(itemId)%>"
     589                        visible="<%=mode.hasCheck()%>"
     590                      />
     591                      <base:input
     592                        type="radio"
     593                        name="item_id"
     594                        value="<%=itemId%>"
     595                        title="<%=name%>"
     596                        checked="<%=selectedItemId == itemId%>"
     597                        visible="<%=mode.hasRadio()%>"
     598                      />
     599                    </div>
     600                    <div class="icons">
     601                      <base:icon
     602                        image="deleted.png"
     603                        id="<%="delete."+itemId %>"
     604                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     605                        data-item-id="<%=itemId%>"
     606                        tooltip="This item has been scheduled for deletion"
     607                        visible="<%=item.isRemoved()%>"
     608                      /><base:icon
     609                        image="shared.png"
     610                        id="<%="share."+itemId %>"
     611                        subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
     612                        data-item-id="<%=itemId%>"
     613                        tooltip="This item is shared to other users, groups and/or projects"
     614                        visible="<%=item.isShared()%>"
     615                      />
     616                    </div>
     617                  </div>
     618                </tbl:header>
    623619                <tbl:cell column="name"><div
    624620                  class="link table-item"
  • trunk/www/admin/clients/help/list_help.jsp

    r7914 r7943  
    129129      filterrows="<%=cc.getFilterRows()%>"
    130130      subclass="fulltable"
     131      stickyheaders="name"
    131132      >
    132133      <tbl:hidden
     
    263264        <tbl:headers>
    264265          <tbl:headerrow>
    265             <tbl:header colspan="3" />
     266            <tbl:header clazz="row-index bg-filled-100" />
    266267            <tbl:columnheaders />
    267268          </tbl:headerrow>
     
    274275            %>
    275276            <tbl:headerrow>
    276               <tbl:header subclass="index" />
    277               <tbl:header
    278                 subclass="check"
    279                 visible="<%=mode.hasCheck()%>"
    280                 ><base:icon
    281                   subclass="link table-check"
    282                   image="check_uncheck.png"
    283                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    284                   visible="<%=lastRow%>"
    285                 /></tbl:header>
    286               <tbl:header
    287                 subclass="check"
    288                 visible="<%=mode.hasRadio()%>"
    289                 />
    290               <tbl:header
    291                 subclass="icons"
    292                 visible="<%=mode.hasIcons()%>"
    293                 >
    294                 <base:icon
    295                   subclass="link table-filter-row-action"
    296                   image="add.png"
    297                   tooltip="Add extra filter row"
    298                   visible="<%=lastRow%>"
    299                 /><base:icon
    300                   subclass="link table-filter-row-action"
    301                   image="remove.png"
    302                   tooltip="Remove this filter row"
    303                   visible="<%=numRows > 1 || numFilters > 0 %>"
    304                   data-remove-row="<%=filterNo%>"
    305                 />
     277              <tbl:header subclass="row-index bg-filled-100">
     278                <div class="index-<%=mode.getName()%>">
     279                  <div class="index"></div>
     280                  <div class="check">
     281                    <base:icon
     282                      subclass="link table-check"
     283                      image="check_uncheck.png"
     284                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     285                      visible="<%=lastRow && mode.hasCheck()%>"
     286                    />
     287                  </div>
     288                  <div class="icons">
     289                    <base:icon
     290                      subclass="link table-filter-row-action"
     291                      image="add.png"
     292                      tooltip="Add extra filter row"
     293                      visible="<%=lastRow%>"
     294                    /><base:icon
     295                      subclass="link table-filter-row-action"
     296                      image="remove.png"
     297                      tooltip="Remove this filter row"
     298                      visible="<%=numRows > 1 || numFilters > 0 %>"
     299                      data-remove-row="<%=filterNo%>"
     300                    />
     301                  </div>
     302                </div>
    306303              </tbl:header>
    307304              <tbl:propertyfilter row="<%=filterNo%>" />
     
    339336              %>
    340337              <tbl:row>
    341                 <tbl:header
    342                   clazz="index"
    343                   ><%=index%></tbl:header>
    344                 <tbl:header
    345                   clazz="check"
    346                   visible="<%=mode.hasCheck()%>"
    347                   ><input
    348                       type="checkbox"
    349                       name="<%=itemId%>"
    350                       value="<%=itemId%>"
    351                       title="TODO"
    352                       <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    353                     ></tbl:header>
    354                 <tbl:header
    355                   clazz="check"
    356                   visible="<%=mode.hasRadio()%>"
    357                   ><input
    358                       type="radio"
    359                       name="item_id"
    360                       value="<%=itemId%>"
    361                       title="TODO"
    362                       <%=selectedItemId == itemId ? "checked" : ""%>
    363                     ></tbl:header>
    364                 <tbl:header
    365                   clazz="icons"
    366                   visible="<%=mode.hasIcons()%>"
    367                   ><base:help helpid="<%=item.getExternalId()%>" tooltip="Preview this help text"
    368                   />&nbsp;</tbl:header>
     338                <tbl:header clazz="row-index bg-filled-100">
     339                  <div class="index-<%=mode.getName()%>">
     340                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     341                    <div class="check">
     342                      <base:input
     343                        type="checkbox"
     344                        name="<%=itemId%>"
     345                        value="<%=itemId%>"
     346                        title="<%=name%>"
     347                        checked="<%=cc.getSelected().contains(itemId)%>"
     348                        visible="<%=mode.hasCheck()%>"
     349                      />
     350                      <base:input
     351                        type="radio"
     352                        name="item_id"
     353                        value="<%=itemId%>"
     354                        title="<%=name%>"
     355                        checked="<%=selectedItemId == itemId%>"
     356                        visible="<%=mode.hasRadio()%>"
     357                      />
     358                    </div>
     359                    <div class="icons">
     360                      <base:help helpid="<%=item.getExternalId()%>" tooltip="Preview this help text" />
     361                    </div>
     362                  </div>
     363                </tbl:header>
    369364                <tbl:cell column="name"><div
    370365                  class="link table-item"
  • trunk/www/admin/clients/list_clients.jsp

    r7914 r7943  
    119119      filterrows="<%=cc.getFilterRows()%>"
    120120      subclass="fulltable"
     121      stickyheaders="name"
    121122      >
    122123      <tbl:hidden
     
    294295        <tbl:headers>
    295296          <tbl:headerrow>
    296             <tbl:header colspan="3" />
     297            <tbl:header clazz="row-index bg-filled-100" />
    297298            <tbl:columnheaders />
    298299          </tbl:headerrow>
     
    305306            %>
    306307            <tbl:headerrow>
    307               <tbl:header subclass="index" />
    308               <tbl:header
    309                 subclass="check"
    310                 visible="<%=mode.hasCheck()%>"
    311                 ><base:icon
    312                   subclass="link table-check"
    313                   image="check_uncheck.png"
    314                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    315                   visible="<%=lastRow%>"
    316                 /></tbl:header>
    317               <tbl:header
    318                 subclass="check"
    319                 visible="<%=mode.hasRadio()%>"
    320                 />
    321               <tbl:header
    322                 subclass="icons"
    323                 visible="<%=mode.hasIcons()%>"
    324                 >
    325                 <base:icon
    326                   subclass="link table-filter-row-action"
    327                   image="add.png"
    328                   tooltip="Add extra filter row"
    329                   visible="<%=lastRow%>"
    330                 /><base:icon
    331                   subclass="link table-filter-row-action"
    332                   image="remove.png"
    333                   tooltip="Remove this filter row"
    334                   visible="<%=numRows > 1 || numFilters > 0 %>"
    335                   data-remove-row="<%=filterNo%>"
    336                 />
     308              <tbl:header subclass="row-index bg-filled-100">
     309                <div class="index-<%=mode.getName()%>">
     310                  <div class="index"></div>
     311                  <div class="check">
     312                    <base:icon
     313                      subclass="link table-check"
     314                      image="check_uncheck.png"
     315                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     316                      visible="<%=lastRow && mode.hasCheck()%>"
     317                    />
     318                  </div>
     319                  <div class="icons">
     320                    <base:icon
     321                      subclass="link table-filter-row-action"
     322                      image="add.png"
     323                      tooltip="Add extra filter row"
     324                      visible="<%=lastRow%>"
     325                    /><base:icon
     326                      subclass="link table-filter-row-action"
     327                      image="remove.png"
     328                      tooltip="Remove this filter row"
     329                      visible="<%=numRows > 1 || numFilters > 0 %>"
     330                      data-remove-row="<%=filterNo%>"
     331                    />
     332                  </div>
     333                </div>
    337334              </tbl:header>
    338335              <tbl:propertyfilter row="<%=filterNo%>" />
     
    374371              %>
    375372              <tbl:row>
    376                 <tbl:header
    377                   clazz="index"
    378                   ><%=index%></tbl:header>
    379                 <tbl:header
    380                   clazz="check"
    381                   visible="<%=mode.hasCheck()%>"
    382                   ><input
    383                     type="checkbox"
    384                     name="<%=itemId%>"
    385                     value="<%=itemId%>"
    386                     title="<%=name%>"
    387                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    388                   ></tbl:header>
    389                 <tbl:header
    390                   clazz="check"
    391                   visible="<%=mode.hasRadio()%>"
    392                   ><input
    393                     type="radio"
    394                     name="item_id"
    395                     value="<%=itemId%>"
    396                     title="<%=name%>"
    397                     <%=selectedItemId == itemId ? "checked" : ""%>
    398                   ></tbl:header>
    399                 <tbl:header
    400                   clazz="icons"
    401                   visible="<%=mode.hasIcons()%>"
    402                   ><base:icon
    403                     image="deleted.png"
    404                     id="<%="delete."+itemId %>"
    405                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    406                     data-item-id="<%=itemId%>"
    407                     tooltip="This item has been scheduled for deletion"
    408                     visible="<%=item.isRemoved()%>"
    409                   /><base:icon
    410                     image="shared.png"
    411                     id="<%="share."+itemId %>"
    412                     subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
    413                     data-item-id="<%=itemId%>"
    414                     tooltip="This item is shared to other users, groups and/or projects"
    415                     visible="<%=item.isShared()%>"
    416                   />&nbsp;</tbl:header>
     373                <tbl:header clazz="row-index bg-filled-100">
     374                  <div class="index-<%=mode.getName()%>">
     375                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     376                    <div class="check">
     377                      <base:input
     378                        type="checkbox"
     379                        name="<%=itemId%>"
     380                        value="<%=itemId%>"
     381                        title="<%=name%>"
     382                        checked="<%=cc.getSelected().contains(itemId)%>"
     383                        visible="<%=mode.hasCheck()%>"
     384                      />
     385                      <base:input
     386                        type="radio"
     387                        name="item_id"
     388                        value="<%=itemId%>"
     389                        title="<%=name%>"
     390                        checked="<%=selectedItemId == itemId%>"
     391                        visible="<%=mode.hasRadio()%>"
     392                      />
     393                    </div>
     394                    <div class="icons">
     395                      <base:icon
     396                        image="deleted.png"
     397                        id="<%="delete."+itemId %>"
     398                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     399                        data-item-id="<%=itemId%>"
     400                        tooltip="This item has been scheduled for deletion"
     401                        visible="<%=item.isRemoved()%>"
     402                      /><base:icon
     403                        image="shared.png"
     404                        id="<%="share."+itemId %>"
     405                        subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
     406                        data-item-id="<%=itemId%>"
     407                        tooltip="This item is shared to other users, groups and/or projects"
     408                        visible="<%=item.isShared()%>"
     409                      />
     410                    </div>
     411                  </div>
     412                </tbl:header>
    417413                <tbl:cell column="name"><div
    418414                  class="link table-item"
  • trunk/www/admin/datafiletypes/list_filetypes.jsp

    r7914 r7943  
    155155      filterrows="<%=cc.getFilterRows()%>"
    156156      subclass="fulltable"
     157      stickyheaders="name"
    157158      >
    158159      <tbl:hidden
     
    326327        <tbl:headers>
    327328          <tbl:headerrow>
    328             <tbl:header colspan="3" />
     329            <tbl:header clazz="row-index bg-filled-100" />
    329330            <tbl:columnheaders />
    330331          </tbl:headerrow>
     
    337338            %>
    338339            <tbl:headerrow>
    339               <tbl:header subclass="index" />
    340               <tbl:header
    341                 subclass="check"
    342                 visible="<%=mode.hasCheck()%>"
    343                 ><base:icon
    344                   subclass="link table-check"
    345                   image="check_uncheck.png"
    346                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    347                   visible="<%=lastRow%>"
    348                 /></tbl:header>
    349               <tbl:header
    350                 subclass="check"
    351                 visible="<%=mode.hasRadio()%>"
    352                 />
    353               <tbl:header
    354                 subclass="icons"
    355                 visible="<%=mode.hasIcons()%>"
    356                 >
    357                 <base:icon
    358                   subclass="link table-filter-row-action"
    359                   image="add.png"
    360                   tooltip="Add extra filter row"
    361                   visible="<%=lastRow%>"
    362                 /><base:icon
    363                   subclass="link table-filter-row-action"
    364                   image="remove.png"
    365                   tooltip="Remove this filter row"
    366                   visible="<%=numRows > 1 || numFilters > 0 %>"
    367                   data-remove-row="<%=filterNo%>"
    368                 />
     340              <tbl:header subclass="row-index bg-filled-100">
     341                <div class="index-<%=mode.getName()%>">
     342                  <div class="index"></div>
     343                  <div class="check">
     344                    <base:icon
     345                      subclass="link table-check"
     346                      image="check_uncheck.png"
     347                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     348                      visible="<%=lastRow && mode.hasCheck()%>"
     349                    />
     350                  </div>
     351                  <div class="icons">
     352                    <base:icon
     353                      subclass="link table-filter-row-action"
     354                      image="add.png"
     355                      tooltip="Add extra filter row"
     356                      visible="<%=lastRow%>"
     357                    /><base:icon
     358                      subclass="link table-filter-row-action"
     359                      image="remove.png"
     360                      tooltip="Remove this filter row"
     361                      visible="<%=numRows > 1 || numFilters > 0 %>"
     362                      data-remove-row="<%=filterNo%>"
     363                    />
     364                  </div>
     365                </div>
    369366              </tbl:header>
    370367              <tbl:propertyfilter row="<%=filterNo%>" />
     
    402399              %>
    403400              <tbl:row>
    404                 <tbl:header
    405                   clazz="index"
    406                   ><%=index%></tbl:header>
    407                 <tbl:header
    408                   clazz="check"
    409                   visible="<%=mode.hasCheck()%>"
    410                   ><input
    411                     type="checkbox"
    412                     name="<%=itemId%>"
    413                     value="<%=itemId%>"
    414                     title="<%=name%>"
    415                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    416                   ></tbl:header>
    417                 <tbl:header
    418                   clazz="check"
    419                   visible="<%=mode.hasRadio()%>"
    420                   ><input
    421                     type="radio"
    422                     name="item_id"
    423                     value="<%=itemId%>"
    424                     title="<%=name%>"
    425                     <%=selectedItemId == itemId ? "checked" : ""%>
    426                   ></tbl:header>
    427                 <tbl:header
    428                   clazz="icons"
    429                   visible="<%=mode.hasIcons()%>"
    430                   ><base:icon
    431                     image="deleted.png"
    432                     id="<%="delete."+itemId %>"
    433                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    434                     data-item-id="<%=itemId%>"
    435                     tooltip="This item has been scheduled for deletion"
    436                     visible="<%=item.isRemoved()%>"
    437                   />&nbsp;</tbl:header>
     401                <tbl:header clazz="row-index bg-filled-100">
     402                  <div class="index-<%=mode.getName()%>">
     403                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     404                    <div class="check">
     405                      <base:input
     406                        type="checkbox"
     407                        name="<%=itemId%>"
     408                        value="<%=itemId%>"
     409                        title="<%=name%>"
     410                        checked="<%=cc.getSelected().contains(itemId)%>"
     411                        visible="<%=mode.hasCheck()%>"
     412                      />
     413                      <base:input
     414                        type="radio"
     415                        name="item_id"
     416                        value="<%=itemId%>"
     417                        title="<%=name%>"
     418                        checked="<%=selectedItemId == itemId%>"
     419                        visible="<%=mode.hasRadio()%>"
     420                      />
     421                    </div>
     422                    <div class="icons">
     423                      <base:icon
     424                        image="deleted.png"
     425                        id="<%="delete."+itemId %>"
     426                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     427                        data-item-id="<%=itemId%>"
     428                        tooltip="This item has been scheduled for deletion"
     429                        visible="<%=item.isRemoved()%>"
     430                      />
     431                    </div>
     432                  </div>
     433                </tbl:header>
    438434                <tbl:cell column="name"><div
    439435                  class="link table-item"
  • trunk/www/admin/diskusage/list_groups.jsp

    r7914 r7943  
    158158      filterrows="<%=cc.getFilterRows()%>"
    159159      subclass="fulltable"
     160      stickyheaders="name"
    160161      >
    161162      <tbl:hidden
     
    240241        <tbl:headers>
    241242          <tbl:headerrow>
    242             <tbl:header colspan="3" />
     243            <tbl:header clazz="row-index bg-filled-100" />
    243244            <tbl:columnheaders />
    244245          </tbl:headerrow>
     
    251252            %>
    252253            <tbl:headerrow>
    253               <tbl:header subclass="index" />
    254               <tbl:header
    255                 subclass="check"
    256                 visible="<%=mode.hasCheck()%>"
    257                 ><base:icon
    258                   subclass="link table-check"
    259                   image="check_uncheck.png"
    260                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    261                   visible="<%=lastRow%>"
    262                 /></tbl:header>
    263               <tbl:header
    264                 subclass="check"
    265                 visible="<%=mode.hasRadio()%>"
    266                 />
    267               <tbl:header
    268                 subclass="icons"
    269                 visible="<%=mode.hasIcons()%>"
    270                 >
    271                 <base:icon
    272                   subclass="link table-filter-row-action"
    273                   image="add.png"
    274                   tooltip="Add extra filter row"
    275                   visible="<%=lastRow%>"
    276                 /><base:icon
    277                   subclass="link table-filter-row-action"
    278                   image="remove.png"
    279                   tooltip="Remove this filter row"
    280                   visible="<%=numRows > 1 || numFilters > 0 %>"
    281                   data-remove-row="<%=filterNo%>"
    282                 />
     254              <tbl:header subclass="row-index bg-filled-100">
     255                <div class="index-<%=mode.getName()%>">
     256                  <div class="index"></div>
     257                  <div class="check">
     258                    <base:icon
     259                      subclass="link table-check"
     260                      image="check_uncheck.png"
     261                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     262                      visible="<%=lastRow && mode.hasCheck()%>"
     263                    />
     264                  </div>
     265                  <div class="icons">
     266                    <base:icon
     267                      subclass="link table-filter-row-action"
     268                      image="add.png"
     269                      tooltip="Add extra filter row"
     270                      visible="<%=lastRow%>"
     271                    /><base:icon
     272                      subclass="link table-filter-row-action"
     273                      image="remove.png"
     274                      tooltip="Remove this filter row"
     275                      visible="<%=numRows > 1 || numFilters > 0 %>"
     276                      data-remove-row="<%=filterNo%>"
     277                    />
     278                  </div>
     279                </div>
    283280              </tbl:header>
    284281              <tbl:propertyfilter row="<%=filterNo%>" />
     
    315312              %>
    316313              <tbl:row>
    317                 <tbl:header
    318                   clazz="index"
    319                   ><%=index%></tbl:header>
    320                 <tbl:header
    321                   clazz="check"
    322                   visible="<%=mode.hasCheck()%>"
    323                   ><input
    324                     type="checkbox"
    325                     name="<%=itemId%>"
    326                     value="<%=itemId%>"
    327                     title="<%=name%>"
    328                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    329                   ></tbl:header>
    330                 <tbl:header
    331                   clazz="check"
    332                   visible="<%=mode.hasRadio()%>"
    333                   ><input
    334                     type="radio"
    335                     name="item_id"
    336                     value="<%=itemId%>"
    337                     title="<%=name%>"
    338                     <%=selectedItemId == itemId ? "checked" : ""%>
    339                   ></tbl:header>
    340                 <tbl:header
    341                   clazz="icons"
    342                   visible="<%=mode.hasIcons()%>"
    343                   ><base:icon
    344                     image="deleted.png"
    345                     tooltip="This item has been scheduled for deletion"
    346                     visible="<%=item.isRemoved()%>"
    347                   />&nbsp;</tbl:header>
     314                <tbl:header clazz="row-index bg-filled-100">
     315                  <div class="index-<%=mode.getName()%>">
     316                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     317                    <div class="check">
     318                      <base:input
     319                        type="checkbox"
     320                        name="<%=itemId%>"
     321                        value="<%=itemId%>"
     322                        title="<%=name%>"
     323                        checked="<%=cc.getSelected().contains(itemId)%>"
     324                        visible="<%=mode.hasCheck()%>"
     325                      />
     326                      <base:input
     327                        type="radio"
     328                        name="item_id"
     329                        value="<%=itemId%>"
     330                        title="<%=name%>"
     331                        checked="<%=selectedItemId == itemId%>"
     332                        visible="<%=mode.hasRadio()%>"
     333                      />
     334                    </div>
     335                    <div class="icons">
     336                      <base:icon
     337                        image="deleted.png"
     338                        tooltip="This item has been scheduled for deletion"
     339                        visible="<%=item.isRemoved()%>"
     340                      />
     341                    </div>
     342                  </div>
     343                </tbl:header>
    348344                <tbl:cell column="name"><div
    349345                  class="link auto-init"
  • trunk/www/admin/diskusage/list_users.jsp

    r7914 r7943  
    158158      filterrows="<%=cc.getFilterRows()%>"
    159159      subclass="fulltable"
     160      stickyheaders="name"
    160161      >
    161162      <tbl:hidden
     
    369370        <tbl:headers>
    370371          <tbl:headerrow>
    371             <tbl:header colspan="3" />
     372            <tbl:header clazz="row-index bg-filled-100" />
    372373            <tbl:columnheaders />
    373374          </tbl:headerrow>
     
    380381            %>
    381382            <tbl:headerrow>
    382               <tbl:header subclass="index" />
    383               <tbl:header
    384                 subclass="check"
    385                 visible="<%=mode.hasCheck()%>"
    386                 ><base:icon
    387                   subclass="link table-check"
    388                   image="check_uncheck.png"
    389                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    390                   visible="<%=lastRow%>"
    391                 /></tbl:header>
    392               <tbl:header
    393                 subclass="check"
    394                 visible="<%=mode.hasRadio()%>"
    395                 />
    396               <tbl:header
    397                 subclass="icons"
    398                 visible="<%=mode.hasIcons()%>"
    399                 >
    400                 <base:icon
    401                   subclass="link table-filter-row-action"
    402                   image="add.png"
    403                   tooltip="Add extra filter row"
    404                   visible="<%=lastRow%>"
    405                 /><base:icon
    406                   subclass="link table-filter-row-action"
    407                   image="remove.png"
    408                   tooltip="Remove this filter row"
    409                   visible="<%=numRows > 1 || numFilters > 0 %>"
    410                   data-remove-row="<%=filterNo%>"
    411                 />
     383              <tbl:header subclass="row-index bg-filled-100">
     384                <div class="index-<%=mode.getName()%>">
     385                  <div class="index"></div>
     386                  <div class="check">
     387                    <base:icon
     388                      subclass="link table-check"
     389                      image="check_uncheck.png"
     390                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     391                      visible="<%=lastRow && mode.hasCheck()%>"
     392                    />
     393                  </div>
     394                  <div class="icons">
     395                    <base:icon
     396                      subclass="link table-filter-row-action"
     397                      image="add.png"
     398                      tooltip="Add extra filter row"
     399                      visible="<%=lastRow%>"
     400                    /><base:icon
     401                      subclass="link table-filter-row-action"
     402                      image="remove.png"
     403                      tooltip="Remove this filter row"
     404                      visible="<%=numRows > 1 || numFilters > 0 %>"
     405                      data-remove-row="<%=filterNo%>"
     406                    />
     407                  </div>
     408                </div>
    412409              </tbl:header>
    413410              <tbl:propertyfilter row="<%=filterNo%>" />
     
    444441              %>
    445442              <tbl:row>
    446                 <tbl:header
    447                   clazz="index"
    448                   ><%=index%></tbl:header>
    449                 <tbl:header
    450                   clazz="check"
    451                   visible="<%=mode.hasCheck()%>"
    452                   ><input
    453                     type="checkbox"
    454                     name="<%=itemId%>"
    455                     value="<%=itemId%>"
    456                     title="<%=name%>"
    457                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    458                   ></tbl:header>
    459                 <tbl:header
    460                   clazz="check"
    461                   visible="<%=mode.hasRadio()%>"
    462                   ><input
    463                     type="radio"
    464                     name="item_id"
    465                     value="<%=itemId%>"
    466                     title="<%=name%>"
    467                     <%=selectedItemId == itemId ? "checked" : ""%>
    468                   ></tbl:header>
    469                 <tbl:header
    470                   clazz="icons"
    471                   visible="<%=mode.hasIcons()%>"
    472                   ><base:icon
    473                     image="deleted.png"
    474                     tooltip="This item has been scheduled for deletion"
    475                     visible="<%=item.isRemoved()%>"
    476                   /><base:icon
    477                     subclass="link auto-init"
    478                     data-auto-init="impersonate-user"
    479                     data-user-id="<%=itemId%>"
    480                     image="login.png"
    481                     tooltip="Login as this user"
    482                     visible="<%=impersonatePermission%>"
    483                   /></tbl:header>
     443                <tbl:header clazz="row-index bg-filled-100">
     444                  <div class="index-<%=mode.getName()%>">
     445                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     446                    <div class="check">
     447                      <base:input
     448                        type="checkbox"
     449                        name="<%=itemId%>"
     450                        value="<%=itemId%>"
     451                        title="<%=name%>"
     452                        checked="<%=cc.getSelected().contains(itemId)%>"
     453                        visible="<%=mode.hasCheck()%>"
     454                      />
     455                      <base:input
     456                        type="radio"
     457                        name="item_id"
     458                        value="<%=itemId%>"
     459                        title="<%=name%>"
     460                        checked="<%=selectedItemId == itemId%>"
     461                        visible="<%=mode.hasRadio()%>"
     462                      />
     463                    </div>
     464                    <div class="icons">
     465                      <base:icon
     466                        image="deleted.png"
     467                        tooltip="This item has been scheduled for deletion"
     468                        visible="<%=item.isRemoved()%>"
     469                      /><base:icon
     470                        subclass="link auto-init"
     471                        data-auto-init="impersonate-user"
     472                        data-user-id="<%=itemId%>"
     473                        image="login.png"
     474                        tooltip="Login as this user"
     475                        visible="<%=impersonatePermission%>"
     476                      />
     477                    </div>
     478                  </div>
     479                </tbl:header>
    484480                <tbl:cell column="name"><div
    485481                  class="link auto-init"
  • trunk/www/admin/extensions/wizard.jsp

    r7564 r7943  
    7272  <base:head scripts="table.js,~wizard.js" styles="table.css">
    7373  <style>
    74     .ignored-header td
     74    #ignored-header td
    7575    {
    7676      font-weight: bold;
     
    7979      border-top-width: 1px;
    8080      border-bottom-width: 1px;
     81      border-top-color: inherit;
     82      border-bottom-color: inherit;
    8183      padding: 1px 2px;
    8284    }
     
    9496  <h1>Extensions and plug-ins installation wizard <base:help helpid="extensions.install-wizard" /></h1>
    9597  <div class="content">
    96   <tbl:table id="scan" subclass="fulltable" action="index.jsp" >
     98  <tbl:table id="scan" subclass="fulltable" stickyheaders="<%=null%>" action="index.jsp" >
    9799    <tbl:columndef id="file" title="File" />
    98100    <tbl:columndef id="status" title="Status" style="text-align: center;"/>
     
    253255      {
    254256        %>
    255         <tr class="ignored-header bg-filled-100">
     257        <tr id="ignored-header" class="ignored-header bg-filled-100">
    256258          <td colspan="2">Ignored files (<%=ignoredFiles.size() %>)</td>
    257259          <td class="cell" style="text-align: center;">Install</td>
  • trunk/www/admin/extravaluetypes/list_extravaluetypes.jsp

    r7914 r7943  
    133133      filterrows="<%=cc.getFilterRows()%>"
    134134      subclass="fulltable"
     135      stickyheaders="name"
    135136      >
    136137      <tbl:hidden
     
    334335        <tbl:headers>
    335336          <tbl:headerrow>
    336             <tbl:header colspan="3" />
     337            <tbl:header clazz="row-index bg-filled-100" />
    337338            <tbl:columnheaders />
    338339          </tbl:headerrow>
     
    345346            %>
    346347            <tbl:headerrow>
    347               <tbl:header subclass="index" />
    348               <tbl:header
    349                 subclass="check"
    350                 visible="<%=mode.hasCheck()%>"
    351                 ><base:icon
    352                   subclass="link table-check"
    353                   image="check_uncheck.png"
    354                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    355                   visible="<%=lastRow%>"
    356                 /></tbl:header>
    357               <tbl:header
    358                 subclass="check"
    359                 visible="<%=mode.hasRadio()%>"
    360                 />
    361               <tbl:header
    362                 subclass="icons"
    363                 visible="<%=mode.hasIcons()%>"
    364                 >
    365                 <base:icon
    366                   subclass="link table-filter-row-action"
    367                   image="add.png"
    368                   tooltip="Add extra filter row"
    369                   visible="<%=lastRow%>"
    370                 /><base:icon
    371                   subclass="link table-filter-row-action"
    372                   image="remove.png"
    373                   tooltip="Remove this filter row"
    374                   visible="<%=numRows > 1 || numFilters > 0 %>"
    375                   data-remove-row="<%=filterNo%>"
    376                 />
     348              <tbl:header subclass="row-index bg-filled-100">
     349                <div class="index-<%=mode.getName()%>">
     350                  <div class="index"></div>
     351                  <div class="check">
     352                    <base:icon
     353                      subclass="link table-check"
     354                      image="check_uncheck.png"
     355                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     356                      visible="<%=lastRow && mode.hasCheck()%>"
     357                    />
     358                  </div>
     359                  <div class="icons">
     360                    <base:icon
     361                      subclass="link table-filter-row-action"
     362                      image="add.png"
     363                      tooltip="Add extra filter row"
     364                      visible="<%=lastRow%>"
     365                    /><base:icon
     366                      subclass="link table-filter-row-action"
     367                      image="remove.png"
     368                      tooltip="Remove this filter row"
     369                      visible="<%=numRows > 1 || numFilters > 0 %>"
     370                      data-remove-row="<%=filterNo%>"
     371                    />
     372                  </div>
     373                </div>
    377374              </tbl:header>
    378375              <tbl:propertyfilter row="<%=filterNo%>" />
     
    410407              %>
    411408              <tbl:row>
    412                 <tbl:header
    413                   clazz="index"
    414                   ><%=index%></tbl:header>
    415                 <tbl:header
    416                   clazz="check"
    417                   visible="<%=mode.hasCheck()%>"
    418                   ><input
    419                     type="checkbox"
    420                     name="<%=itemId%>"
    421                     value="<%=itemId%>"
    422                     title="<%=name%>"
    423                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    424                   ></tbl:header>
    425                 <tbl:header
    426                   clazz="check"
    427                   visible="<%=mode.hasRadio()%>"
    428                   ><input
    429                     type="radio"
    430                     name="item_id"
    431                     value="<%=itemId%>"
    432                     title="<%=name%>"
    433                     <%=selectedItemId == itemId ? "checked" : ""%>
    434                   ></tbl:header>
    435                 <tbl:header
    436                   clazz="icons"
    437                   visible="<%=mode.hasIcons()%>"
    438                   ><base:icon
    439                     image="deleted.png"
    440                     id="<%="delete."+itemId %>"
    441                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    442                     data-item-id="<%=itemId%>"
    443                     tooltip="This item has been scheduled for deletion"
    444                     visible="<%=item.isRemoved()%>"
    445                   />&nbsp;</tbl:header>
     409                <tbl:header clazz="row-index bg-filled-100">
     410                  <div class="index-<%=mode.getName()%>">
     411                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     412                    <div class="check">
     413                      <base:input
     414                        type="checkbox"
     415                        name="<%=itemId%>"
     416                        value="<%=itemId%>"
     417                        title="<%=name%>"
     418                        checked="<%=cc.getSelected().contains(itemId)%>"
     419                        visible="<%=mode.hasCheck()%>"
     420                      />
     421                      <base:input
     422                        type="radio"
     423                        name="item_id"
     424                        value="<%=itemId%>"
     425                        title="<%=name%>"
     426                        checked="<%=selectedItemId == itemId%>"
     427                        visible="<%=mode.hasRadio()%>"
     428                      />
     429                    </div>
     430                    <div class="icons">
     431                      <base:icon
     432                        image="deleted.png"
     433                        id="<%="delete."+itemId %>"
     434                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     435                        data-item-id="<%=itemId%>"
     436                        tooltip="This item has been scheduled for deletion"
     437                        visible="<%=item.isRemoved()%>"
     438                      />
     439                    </div>
     440                  </div>
     441                </tbl:header>
    446442                <tbl:cell column="name"><div
    447443                  class="link table-item"
  • trunk/www/admin/groups/list_groups.jsp

    r7914 r7943  
    135135      filterrows="<%=cc.getFilterRows()%>"
    136136      subclass="fulltable"
     137      stickyheaders="name"
    137138      >
    138139      <tbl:hidden
     
    314315        <tbl:headers>
    315316          <tbl:headerrow>
    316             <tbl:header colspan="3" />
     317            <tbl:header clazz="row-index bg-filled-100" />
    317318            <tbl:columnheaders />
    318319          </tbl:headerrow>
     
    325326            %>
    326327            <tbl:headerrow>
    327               <tbl:header subclass="index" />
    328               <tbl:header
    329                 subclass="check"
    330                 visible="<%=mode.hasCheck()%>"
    331                 ><base:icon
    332                   subclass="link table-check"
    333                   image="check_uncheck.png"
    334                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    335                   visible="<%=lastRow%>"
    336                 /></tbl:header>
    337               <tbl:header
    338                 subclass="check"
    339                 visible="<%=mode.hasRadio()%>"
    340                 />
    341               <tbl:header
    342                 subclass="icons"
    343                 visible="<%=mode.hasIcons()%>"
    344                 >
    345                 <base:icon
    346                   subclass="link table-filter-row-action"
    347                   image="add.png"
    348                   tooltip="Add extra filter row"
    349                   visible="<%=lastRow%>"
    350                 /><base:icon
    351                   subclass="link table-filter-row-action"
    352                   image="remove.png"
    353                   tooltip="Remove this filter row"
    354                   visible="<%=numRows > 1 || numFilters > 0 %>"
    355                   data-remove-row="<%=filterNo%>"
    356                 />
     328              <tbl:header subclass="row-index bg-filled-100">
     329                <div class="index-<%=mode.getName()%>">
     330                  <div class="index"></div>
     331                  <div class="check">
     332                    <base:icon
     333                      subclass="link table-check"
     334                      image="check_uncheck.png"
     335                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     336                      visible="<%=lastRow && mode.hasCheck()%>"
     337                    />
     338                  </div>
     339                  <div class="icons">
     340                    <base:icon
     341                      subclass="link table-filter-row-action"
     342                      image="add.png"
     343                      tooltip="Add extra filter row"
     344                      visible="<%=lastRow%>"
     345                    /><base:icon
     346                      subclass="link table-filter-row-action"
     347                      image="remove.png"
     348                      tooltip="Remove this filter row"
     349                      visible="<%=numRows > 1 || numFilters > 0 %>"
     350                      data-remove-row="<%=filterNo%>"
     351                    />
     352                  </div>
     353                </div>
    357354              </tbl:header>
    358355              <tbl:propertyfilter row="<%=filterNo%>" />
     
    390387              %>
    391388              <tbl:row>
    392                 <tbl:header
    393                   clazz="index"
    394                   ><%=index%></tbl:header>
    395                 <tbl:header
    396                   clazz="check"
    397                   visible="<%=mode.hasCheck()%>"
    398                   ><input
    399                     type="checkbox"
    400                     name="<%=itemId%>"
    401                     value="<%=itemId%>"
    402                     title="<%=name%>"
    403                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    404                   ></tbl:header>
    405                 <tbl:header
    406                   clazz="check"
    407                   visible="<%=mode.hasRadio()%>"
    408                   ><input
    409                     type="radio"
    410                     name="item_id"
    411                     value="<%=itemId%>"
    412                     title="<%=name%>"
    413                     <%=selectedItemId == itemId ? "checked" : ""%>
    414                   ></tbl:header>
    415                 <tbl:header
    416                   clazz="icons"
    417                   visible="<%=mode.hasIcons()%>"
    418                   ><base:icon
    419                     image="deleted.png"
    420                     id="<%="delete."+itemId %>"
    421                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    422                     data-item-id="<%=itemId%>"
    423                     tooltip="This item has been scheduled for deletion"
    424                     visible="<%=item.isRemoved()%>"
    425                   /><base:icon
    426                     image="systemitem.png"
    427                     tooltip="This item is a system item"
    428                     visible="<%=item.isSystemItem()%>"
    429                   />&nbsp;</tbl:header>
     389                <tbl:header clazz="row-index bg-filled-100">
     390                  <div class="index-<%=mode.getName()%>">
     391                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     392                    <div class="check">
     393                      <base:input
     394                        type="checkbox"
     395                        name="<%=itemId%>"
     396                        value="<%=itemId%>"
     397                        title="<%=name%>"
     398                        checked="<%=cc.getSelected().contains(itemId)%>"
     399                        visible="<%=mode.hasCheck()%>"
     400                      />
     401                      <base:input
     402                        type="radio"
     403                        name="item_id"
     404                        value="<%=itemId%>"
     405                        title="<%=name%>"
     406                        checked="<%=selectedItemId == itemId%>"
     407                        visible="<%=mode.hasRadio()%>"
     408                      />
     409                    </div>
     410                    <div class="icons">
     411                      <base:icon
     412                        image="deleted.png"
     413                        id="<%="delete."+itemId %>"
     414                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     415                        data-item-id="<%=itemId%>"
     416                        tooltip="This item has been scheduled for deletion"
     417                        visible="<%=item.isRemoved()%>"
     418                      /><base:icon
     419                        image="systemitem.png"
     420                        tooltip="This item is a system item"
     421                        visible="<%=item.isSystemItem()%>"
     422                      />
     423                    </div>
     424                  </div>
     425                </tbl:header>
    430426                <tbl:cell column="name"><div
    431427                  class="link table-item"
  • trunk/www/admin/hardware/list_hardware.jsp

    r7914 r7943  
    139139      filterrows="<%=cc.getFilterRows()%>"
    140140      subclass="fulltable"
     141      stickyheaders="name"
    141142      >
    142143      <tbl:hidden
     
    351352        <tbl:headers>
    352353          <tbl:headerrow>
    353             <tbl:header colspan="3" />
     354            <tbl:header clazz="row-index bg-filled-100" />
    354355            <tbl:columnheaders />
    355356          </tbl:headerrow>
     
    362363            %>
    363364            <tbl:headerrow>
    364               <tbl:header subclass="index" />
    365               <tbl:header
    366                 subclass="check"
    367                 visible="<%=mode.hasCheck()%>"
    368                 ><base:icon
    369                   subclass="link table-check"
    370                   image="check_uncheck.png"
    371                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    372                   visible="<%=lastRow%>"
    373                 /></tbl:header>
    374               <tbl:header
    375                 subclass="check"
    376                 visible="<%=mode.hasRadio()%>"
    377                 />
    378               <tbl:header
    379                 subclass="icons"
    380                 visible="<%=mode.hasIcons()%>"
    381                 >
    382                 <base:icon
    383                   subclass="link table-filter-row-action"
    384                   image="add.png"
    385                   tooltip="Add extra filter row"
    386                   visible="<%=lastRow%>"
    387                 /><base:icon
    388                   subclass="link table-filter-row-action"
    389                   image="remove.png"
    390                   tooltip="Remove this filter row"
    391                   visible="<%=numRows > 1 || numFilters > 0 %>"
    392                   data-remove-row="<%=filterNo%>"
    393                 />
     365              <tbl:header subclass="row-index bg-filled-100">
     366                <div class="index-<%=mode.getName()%>">
     367                  <div class="index"></div>
     368                  <div class="check">
     369                    <base:icon
     370                      subclass="link table-check"
     371                      image="check_uncheck.png"
     372                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     373                      visible="<%=lastRow && mode.hasCheck()%>"
     374                    />
     375                  </div>
     376                  <div class="icons">
     377                    <base:icon
     378                      subclass="link table-filter-row-action"
     379                      image="add.png"
     380                      tooltip="Add extra filter row"
     381                      visible="<%=lastRow%>"
     382                    /><base:icon
     383                      subclass="link table-filter-row-action"
     384                      image="remove.png"
     385                      tooltip="Remove this filter row"
     386                      visible="<%=numRows > 1 || numFilters > 0 %>"
     387                      data-remove-row="<%=filterNo%>"
     388                    />
     389                  </div>
     390                </div>
    394391              </tbl:header>
    395392              <tbl:propertyfilter row="<%=filterNo%>" />
     
    431428              %>
    432429              <tbl:row>
    433                 <tbl:header
    434                   clazz="index"
    435                   ><%=index%></tbl:header>
    436                 <tbl:header
    437                   clazz="check"
    438                   visible="<%=mode.hasCheck()%>"
    439                   ><input
    440                     type="checkbox"
    441                     name="<%=itemId%>"
    442                     value="<%=itemId%>"
    443                     title="<%=name%>"
    444                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    445                   ></tbl:header>
    446                 <tbl:header
    447                   clazz="check"
    448                   visible="<%=mode.hasRadio()%>"
    449                   ><input
    450                     type="radio"
    451                     name="item_id"
    452                     value="<%=itemId%>"
    453                     title="<%=name%>"
    454                     <%=selectedItemId == itemId ? "checked" : ""%>
    455                   ></tbl:header>
    456                 <tbl:header
    457                   clazz="icons"
    458                   visible="<%=mode.hasIcons()%>"
    459                   ><base:icon
    460                     image="deleted.png"
    461                     id="<%="delete."+itemId %>"
    462                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    463                     data-item-id="<%=itemId%>"
    464                     tooltip="This item has been scheduled for deletion"
    465                     visible="<%=item.isRemoved()%>"
    466                   /><base:icon
    467                     image="shared.png"
    468                     id="<%="share."+itemId %>"
    469                     subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
    470                     data-item-id="<%=itemId%>"
    471                     tooltip="This item is shared to other users, groups and/or projects"
    472                     visible="<%=item.isShared()%>"
    473                   />&nbsp;</tbl:header>
     430                <tbl:header clazz="row-index bg-filled-100">
     431                  <div class="index-<%=mode.getName()%>">
     432                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     433                    <div class="check">
     434                      <base:input
     435                        type="checkbox"
     436                        name="<%=itemId%>"
     437                        value="<%=itemId%>"
     438                        title="<%=name%>"
     439                        checked="<%=cc.getSelected().contains(itemId)%>"
     440                        visible="<%=mode.hasCheck()%>"
     441                      />
     442                      <base:input
     443                        type="radio"
     444                        name="item_id"
     445                        value="<%=itemId%>"
     446                        title="<%=name%>"
     447                        checked="<%=selectedItemId == itemId%>"
     448                        visible="<%=mode.hasRadio()%>"
     449                      />
     450                    </div>
     451                    <div class="icons">
     452                      <base:icon
     453                        image="deleted.png"
     454                        id="<%="delete."+itemId %>"
     455                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     456                        data-item-id="<%=itemId%>"
     457                        tooltip="This item has been scheduled for deletion"
     458                        visible="<%=item.isRemoved()%>"
     459                      /><base:icon
     460                        image="shared.png"
     461                        id="<%="share."+itemId %>"
     462                        subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
     463                        data-item-id="<%=itemId%>"
     464                        tooltip="This item is shared to other users, groups and/or projects"
     465                        visible="<%=item.isShared()%>"
     466                      />
     467                    </div>
     468                  </div>
     469                </tbl:header>
    474470                <tbl:cell column="name"><div
    475471                  class="link table-item"
  • trunk/www/admin/itemsubtypes/list_subtypes.jsp

    r7914 r7943  
    144144      filterrows="<%=cc.getFilterRows()%>"
    145145      subclass="fulltable"
     146      stickyheaders="name"
    146147      >
    147148      <tbl:hidden
     
    316317        <tbl:headers>
    317318          <tbl:headerrow>
    318             <tbl:header colspan="3" />
     319            <tbl:header clazz="row-index bg-filled-100" />
    319320            <tbl:columnheaders />
    320321          </tbl:headerrow>
     
    327328            %>
    328329            <tbl:headerrow>
    329               <tbl:header subclass="index" />
    330               <tbl:header
    331                 subclass="check"
    332                 visible="<%=mode.hasCheck()%>"
    333                 ><base:icon
    334                   subclass="link table-check"
    335                   image="check_uncheck.png"
    336                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    337                   visible="<%=lastRow%>"
    338                 /></tbl:header>
    339               <tbl:header
    340                 subclass="check"
    341                 visible="<%=mode.hasRadio()%>"
    342                 />
    343               <tbl:header
    344                 subclass="icons"
    345                 visible="<%=mode.hasIcons()%>"
    346                 >
    347                 <base:icon
    348                   subclass="link table-filter-row-action"
    349                   image="add.png"
    350                   tooltip="Add extra filter row"
    351                   visible="<%=lastRow%>"
    352                 /><base:icon
    353                   subclass="link table-filter-row-action"
    354                   image="remove.png"
    355                   tooltip="Remove this filter row"
    356                   visible="<%=numRows > 1 || numFilters > 0 %>"
    357                   data-remove-row="<%=filterNo%>"
    358                 />
     330              <tbl:header subclass="row-index bg-filled-100">
     331                <div class="index-<%=mode.getName()%>">
     332                  <div class="index"></div>
     333                  <div class="check">
     334                    <base:icon
     335                      subclass="link table-check"
     336                      image="check_uncheck.png"
     337                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     338                      visible="<%=lastRow && mode.hasCheck()%>"
     339                    />
     340                  </div>
     341                  <div class="icons">
     342                    <base:icon
     343                      subclass="link table-filter-row-action"
     344                      image="add.png"
     345                      tooltip="Add extra filter row"
     346                      visible="<%=lastRow%>"
     347                    /><base:icon
     348                      subclass="link table-filter-row-action"
     349                      image="remove.png"
     350                      tooltip="Remove this filter row"
     351                      visible="<%=numRows > 1 || numFilters > 0 %>"
     352                      data-remove-row="<%=filterNo%>"
     353                    />
     354                  </div>
     355                </div>
    359356              </tbl:header>
    360357              <tbl:propertyfilter row="<%=filterNo%>" />
     
    394391              %>
    395392              <tbl:row>
    396                 <tbl:header
    397                   clazz="index"
    398                   ><%=index%></tbl:header>
    399                 <tbl:header
    400                   clazz="check"
    401                   visible="<%=mode.hasCheck()%>"
    402                   ><input
    403                     type="checkbox"
    404                     name="<%=itemId%>"
    405                     value="<%=itemId%>"
    406                     title="<%=name%>"
    407                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    408                   ></tbl:header>
    409                 <tbl:header
    410                   clazz="check"
    411                   visible="<%=mode.hasRadio()%>"
    412                   ><input
    413                     type="radio"
    414                     name="item_id"
    415                     value="<%=itemId%>"
    416                     title="<%=name%>"
    417                     <%=selectedItemId == itemId ? "checked" : ""%>
    418                   ></tbl:header>
    419                 <tbl:header
    420                   clazz="icons"
    421                   visible="<%=mode.hasIcons()%>"
    422                   ><base:icon
    423                     image="deleted.png"
    424                     id="<%="delete."+itemId %>"
    425                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    426                     data-item-id="<%=itemId%>"
    427                     tooltip="This item has been scheduled for deletion"
    428                     visible="<%=item.isRemoved()%>"
    429                   /><base:icon
    430                     image="systemitem.png"
    431                     tooltip="This item is a system item"
    432                     visible="<%=item.isSystemItem()%>"
    433                   />&nbsp;</tbl:header>
     393                <tbl:header clazz="row-index bg-filled-100">
     394                  <div class="index-<%=mode.getName()%>">
     395                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     396                    <div class="check">
     397                      <base:input
     398                        type="checkbox"
     399                        name="<%=itemId%>"
     400                        value="<%=itemId%>"
     401                        title="<%=name%>"
     402                        checked="<%=cc.getSelected().contains(itemId)%>"
     403                        visible="<%=mode.hasCheck()%>"
     404                      />
     405                      <base:input
     406                        type="radio"
     407                        name="item_id"
     408                        value="<%=itemId%>"
     409                        title="<%=name%>"
     410                        checked="<%=selectedItemId == itemId%>"
     411                        visible="<%=mode.hasRadio()%>"
     412                      />
     413                    </div>
     414                    <div class="icons">
     415                      <base:icon
     416                        image="deleted.png"
     417                        id="<%="delete."+itemId %>"
     418                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     419                        data-item-id="<%=itemId%>"
     420                        tooltip="This item has been scheduled for deletion"
     421                        visible="<%=item.isRemoved()%>"
     422                      /><base:icon
     423                        image="systemitem.png"
     424                        tooltip="This item is a system item"
     425                        visible="<%=item.isSystemItem()%>"
     426                      />
     427                    </div>
     428                  </div>
     429                </tbl:header>
    434430                <tbl:cell column="name"><div
    435431                  class="link table-item"
  • trunk/www/admin/jobagents/list_agents.jsp

    r7914 r7943  
    126126      filterrows="<%=cc.getFilterRows()%>"
    127127      subclass="fulltable"
     128      stickyheaders="name"
    128129      >
    129130      <tbl:hidden
     
    333334        <tbl:headers>
    334335          <tbl:headerrow>
    335             <tbl:header colspan="3" />
     336            <tbl:header clazz="row-index bg-filled-100" />
    336337            <tbl:columnheaders />
    337338          </tbl:headerrow>
     
    344345            %>
    345346            <tbl:headerrow>
    346               <tbl:header subclass="index" />
    347               <tbl:header
    348                 subclass="check"
    349                 visible="<%=mode.hasCheck()%>"
    350                 ><base:icon
    351                   subclass="link table-check"
    352                   image="check_uncheck.png"
    353                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    354                   visible="<%=lastRow%>"
    355                 /></tbl:header>
    356               <tbl:header
    357                 subclass="check"
    358                 visible="<%=mode.hasRadio()%>"
    359                 />
    360               <tbl:header
    361                 subclass="icons"
    362                 visible="<%=mode.hasIcons()%>"
    363                 >
    364                 <base:icon
    365                   subclass="link table-filter-row-action"
    366                   image="add.png"
    367                   tooltip="Add extra filter row"
    368                   visible="<%=lastRow%>"
    369                 /><base:icon
    370                   subclass="link table-filter-row-action"
    371                   image="remove.png"
    372                   tooltip="Remove this filter row"
    373                   visible="<%=numRows > 1 || numFilters > 0 %>"
    374                   data-remove-row="<%=filterNo%>"
    375                 />
     347              <tbl:header subclass="row-index bg-filled-100">
     348                <div class="index-<%=mode.getName()%>">
     349                  <div class="index"></div>
     350                  <div class="check">
     351                    <base:icon
     352                      subclass="link table-check"
     353                      image="check_uncheck.png"
     354                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     355                      visible="<%=lastRow && mode.hasCheck()%>"
     356                    />
     357                  </div>
     358                  <div class="icons">
     359                    <base:icon
     360                      subclass="link table-filter-row-action"
     361                      image="add.png"
     362                      tooltip="Add extra filter row"
     363                      visible="<%=lastRow%>"
     364                    /><base:icon
     365                      subclass="link table-filter-row-action"
     366                      image="remove.png"
     367                      tooltip="Remove this filter row"
     368                      visible="<%=numRows > 1 || numFilters > 0 %>"
     369                      data-remove-row="<%=filterNo%>"
     370                    />
     371                  </div>
     372                </div>
    376373              </tbl:header>
    377374              <tbl:propertyfilter row="<%=filterNo%>" />
     
    413410              %>
    414411              <tbl:row>
    415                 <tbl:header
    416                   clazz="index"
    417                   ><%=index%></tbl:header>
    418                 <tbl:header
    419                   clazz="check"
    420                   visible="<%=mode.hasCheck()%>"
    421                   ><input
    422                     type="checkbox"
    423                     name="<%=itemId%>"
    424                     value="<%=itemId%>"
    425                     title="<%=name%>"
    426                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    427                   ></tbl:header>
    428                 <tbl:header
    429                   clazz="check"
    430                   visible="<%=mode.hasRadio()%>"
    431                   ><input
    432                     type="radio"
    433                     name="item_id"
    434                     value="<%=itemId%>"
    435                     title="<%=name%>"
    436                     <%=selectedItemId == itemId ? "checked" : ""%>
    437                   ></tbl:header>
    438                 <tbl:header
    439                   clazz="icons"
    440                   visible="<%=mode.hasIcons()%>"
    441                   ><base:icon
    442                     image="deleted.png"
    443                     id="<%="delete."+itemId %>"
    444                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    445                     data-item-id="<%=itemId%>"
    446                     tooltip="This item has been scheduled for deletion"
    447                     visible="<%=item.isRemoved()%>"
    448                   /><base:icon
    449                     image="shared.png"
    450                     id="<%="share."+itemId %>"
    451                     subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
    452                     data-item-id="<%=itemId%>"
    453                     tooltip="This item is shared to other users, groups and/or projects"
    454                     visible="<%=item.isShared()%>"
    455                   />&nbsp;</tbl:header>
     412                <tbl:header clazz="row-index bg-filled-100">
     413                  <div class="index-<%=mode.getName()%>">
     414                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     415                    <div class="check">
     416                      <base:input
     417                        type="checkbox"
     418                        name="<%=itemId%>"
     419                        value="<%=itemId%>"
     420                        title="<%=name%>"
     421                        checked="<%=cc.getSelected().contains(itemId)%>"
     422                        visible="<%=mode.hasCheck()%>"
     423                      />
     424                      <base:input
     425                        type="radio"
     426                        name="item_id"
     427                        value="<%=itemId%>"
     428                        title="<%=name%>"
     429                        checked="<%=selectedItemId == itemId%>"
     430                        visible="<%=mode.hasRadio()%>"
     431                      />
     432                    </div>
     433                    <div class="icons">
     434                      <base:icon
     435                        image="deleted.png"
     436                        id="<%="delete."+itemId %>"
     437                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     438                        data-item-id="<%=itemId%>"
     439                        tooltip="This item has been scheduled for deletion"
     440                        visible="<%=item.isRemoved()%>"
     441                      /><base:icon
     442                        image="shared.png"
     443                        id="<%="share."+itemId %>"
     444                        subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
     445                        data-item-id="<%=itemId%>"
     446                        tooltip="This item is shared to other users, groups and/or projects"
     447                        visible="<%=item.isShared()%>"
     448                      />
     449                    </div>
     450                  </div>
     451                </tbl:header>
    456452                <tbl:cell column="name"><div
    457453                  class="link table-item"
  • trunk/www/admin/mimetypes/list_mimetypes.jsp

    r7914 r7943  
    124124      filterrows="<%=cc.getFilterRows()%>"
    125125      subclass="fulltable"
     126      stickyheaders="name"
    126127      >
    127128      <tbl:hidden
     
    290291        <tbl:headers>
    291292          <tbl:headerrow>
    292             <tbl:header colspan="3" />
     293            <tbl:header clazz="row-index bg-filled-100" />
    293294            <tbl:columnheaders />
    294295          </tbl:headerrow>
     
    301302            %>
    302303            <tbl:headerrow>
    303               <tbl:header subclass="index" />
    304               <tbl:header
    305                 subclass="check"
    306                 visible="<%=mode.hasCheck()%>"
    307                 ><base:icon
    308                   subclass="link table-check"
    309                   image="check_uncheck.png"
    310                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    311                   visible="<%=lastRow%>"
    312                 /></tbl:header>
    313               <tbl:header
    314                 subclass="check"
    315                 visible="<%=mode.hasRadio()%>"
    316                 />
    317               <tbl:header
    318                 subclass="icons"
    319                 visible="<%=mode.hasIcons()%>"
    320                 >
    321                 <base:icon
    322                   subclass="link table-filter-row-action"
    323                   image="add.png"
    324                   tooltip="Add extra filter row"
    325                   visible="<%=lastRow%>"
    326                 /><base:icon
    327                   subclass="link table-filter-row-action"
    328                   image="remove.png"
    329                   tooltip="Remove this filter row"
    330                   visible="<%=numRows > 1 || numFilters > 0 %>"
    331                   data-remove-row="<%=filterNo%>"
    332                 />
     304              <tbl:header subclass="row-index bg-filled-100">
     305                <div class="index-<%=mode.getName()%>">
     306                  <div class="index"></div>
     307                  <div class="check">
     308                    <base:icon
     309                      subclass="link table-check"
     310                      image="check_uncheck.png"
     311                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     312                      visible="<%=lastRow && mode.hasCheck()%>"
     313                    />
     314                  </div>
     315                  <div class="icons">
     316                    <base:icon
     317                      subclass="link table-filter-row-action"
     318                      image="add.png"
     319                      tooltip="Add extra filter row"
     320                      visible="<%=lastRow%>"
     321                    /><base:icon
     322                      subclass="link table-filter-row-action"
     323                      image="remove.png"
     324                      tooltip="Remove this filter row"
     325                      visible="<%=numRows > 1 || numFilters > 0 %>"
     326                      data-remove-row="<%=filterNo%>"
     327                    />
     328                  </div>
     329                </div>
    333330              </tbl:header>
    334331              <tbl:propertyfilter row="<%=filterNo%>" />
     
    366363              %>
    367364              <tbl:row>
    368                 <tbl:header
    369                   clazz="index"
    370                   ><%=index%></tbl:header>
    371                 <tbl:header
    372                   clazz="check"
    373                   visible="<%=mode.hasCheck()%>"
    374                   ><input
    375                     type="checkbox"
    376                     name="<%=itemId%>"
    377                     value="<%=itemId%>"
    378                     title="<%=name%>"
    379                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    380                   ></tbl:header>
    381                 <tbl:header
    382                   clazz="check"
    383                   visible="<%=mode.hasRadio()%>"
    384                   ><input
    385                     type="radio"
    386                     name="item_id"
    387                     value="<%=itemId%>"
    388                     title="<%=name%>"
    389                     <%=selectedItemId == itemId ? "checked" : ""%>
    390                   ></tbl:header>
    391                 <tbl:header
    392                   clazz="icons"
    393                   visible="<%=mode.hasIcons()%>"
    394                   ><base:icon
    395                     image="deleted.png"
    396                     id="<%="delete."+itemId %>"
    397                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    398                     data-item-id="<%=itemId%>"
    399                     tooltip="This item has been scheduled for deletion"
    400                     visible="<%=item.isRemoved()%>"
    401                   />&nbsp;</tbl:header>
     365                <tbl:header clazz="row-index bg-filled-100">
     366                  <div class="index-<%=mode.getName()%>">
     367                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     368                    <div class="check">
     369                      <base:input
     370                        type="checkbox"
     371                        name="<%=itemId%>"
     372                        value="<%=itemId%>"
     373                        title="<%=name%>"
     374                        checked="<%=cc.getSelected().contains(itemId)%>"
     375                        visible="<%=mode.hasCheck()%>"
     376                      />
     377                      <base:input
     378                        type="radio"
     379                        name="item_id"
     380                        value="<%=itemId%>"
     381                        title="<%=name%>"
     382                        checked="<%=selectedItemId == itemId%>"
     383                        visible="<%=mode.hasRadio()%>"
     384                      />
     385                    </div>
     386                    <div class="icons">
     387                      <base:icon
     388                        image="deleted.png"
     389                        id="<%="delete."+itemId %>"
     390                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     391                        data-item-id="<%=itemId%>"
     392                        tooltip="This item has been scheduled for deletion"
     393                        visible="<%=item.isRemoved()%>"
     394                      />
     395                    </div>
     396                  </div>
     397                </tbl:header>
    402398                <tbl:cell column="extension"><div
    403399                  class="link table-item"
  • trunk/www/admin/news/list_news.jsp

    r7914 r7943  
    118118      filterrows="<%=cc.getFilterRows()%>"
    119119      subclass="fulltable"
     120      stickyheaders="name"
    120121      >
    121122      <tbl:hidden
     
    283284        <tbl:headers>
    284285          <tbl:headerrow>
    285             <tbl:header colspan="3" />
     286            <tbl:header clazz="row-index bg-filled-100" />
    286287            <tbl:columnheaders />
    287288          </tbl:headerrow>
     
    294295            %>
    295296            <tbl:headerrow>
    296               <tbl:header subclass="index" />
    297               <tbl:header
    298                 subclass="check"
    299                 visible="<%=mode.hasCheck()%>"
    300                 ><base:icon
    301                   subclass="link table-check"
    302                   image="check_uncheck.png"
    303                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    304                   visible="<%=lastRow%>"
    305                 /></tbl:header>
    306               <tbl:header
    307                 subclass="check"
    308                 visible="<%=mode.hasRadio()%>"
    309                 />
    310               <tbl:header
    311                 subclass="icons"
    312                 visible="<%=mode.hasIcons()%>"
    313                 >
    314                 <base:icon
    315                   subclass="link table-filter-row-action"
    316                   image="add.png"
    317                   tooltip="Add extra filter row"
    318                   visible="<%=lastRow%>"
    319                 /><base:icon
    320                   subclass="link table-filter-row-action"
    321                   image="remove.png"
    322                   tooltip="Remove this filter row"
    323                   visible="<%=numRows > 1 || numFilters > 0 %>"
    324                   data-remove-row="<%=filterNo%>"
    325                 />
     297              <tbl:header subclass="row-index bg-filled-100">
     298                <div class="index-<%=mode.getName()%>">
     299                  <div class="index"></div>
     300                  <div class="check">
     301                    <base:icon
     302                      subclass="link table-check"
     303                      image="check_uncheck.png"
     304                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     305                      visible="<%=lastRow && mode.hasCheck()%>"
     306                    />
     307                  </div>
     308                  <div class="icons">
     309                    <base:icon
     310                      subclass="link table-filter-row-action"
     311                      image="add.png"
     312                      tooltip="Add extra filter row"
     313                      visible="<%=lastRow%>"
     314                    /><base:icon
     315                      subclass="link table-filter-row-action"
     316                      image="remove.png"
     317                      tooltip="Remove this filter row"
     318                      visible="<%=numRows > 1 || numFilters > 0 %>"
     319                      data-remove-row="<%=filterNo%>"
     320                    />
     321                  </div>
     322                </div>
    326323              </tbl:header>
    327324              <tbl:propertyfilter row="<%=filterNo%>" />
     
    358355              %>
    359356              <tbl:row>
    360                 <tbl:header
    361                   clazz="index"
    362                   ><%=index%></tbl:header>
    363                 <tbl:header
    364                   clazz="check"
    365                   visible="<%=mode.hasCheck()%>"
    366                   ><input
    367                     type="checkbox"
    368                     name="<%=itemId%>"
    369                     value="<%=itemId%>"
    370                     title="<%=name%>"
    371                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    372                   ></tbl:header>
    373                 <tbl:header
    374                   clazz="check"
    375                   visible="<%=mode.hasRadio()%>"
    376                   ><input
    377                     type="radio"
    378                     name="item_id"
    379                     value="<%=itemId%>"
    380                     title="<%=name%>"
    381                     <%=selectedItemId == itemId ? "checked" : ""%>
    382                   ></tbl:header>
    383                 <tbl:header
    384                   clazz="icons"
    385                   visible="<%=mode.hasIcons()%>"
    386                   ><base:icon
    387                     image="deleted.png"
    388                     id="<%="delete."+itemId %>"
    389                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    390                     data-item-id="<%=itemId%>"
    391                     tooltip="This item has been scheduled for deletion"
    392                     visible="<%=item.isRemoved()%>"
    393                   />&nbsp;</tbl:header>
     357                <tbl:header clazz="row-index bg-filled-100">
     358                  <div class="index-<%=mode.getName()%>">
     359                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     360                    <div class="check">
     361                      <base:input
     362                        type="checkbox"
     363                        name="<%=itemId%>"
     364                        value="<%=itemId%>"
     365                        title="<%=name%>"
     366                        checked="<%=cc.getSelected().contains(itemId)%>"
     367                        visible="<%=mode.hasCheck()%>"
     368                      />
     369                      <base:input
     370                        type="radio"
     371                        name="item_id"
     372                        value="<%=itemId%>"
     373                        title="<%=name%>"
     374                        checked="<%=selectedItemId == itemId%>"
     375                        visible="<%=mode.hasRadio()%>"
     376                      />
     377                    </div>
     378                    <div class="icons">
     379                      <base:icon
     380                        image="deleted.png"
     381                        id="<%="delete."+itemId %>"
     382                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     383                        data-item-id="<%=itemId%>"
     384                        tooltip="This item has been scheduled for deletion"
     385                        visible="<%=item.isRemoved()%>"
     386                      />
     387                    </div>
     388                  </div>
     389                </tbl:header>
    394390                <tbl:cell column="name"><div
    395391                  class="link table-item"
  • trunk/www/admin/platforms/list_platforms.jsp

    r7914 r7943  
    127127      filterrows="<%=cc.getFilterRows()%>"
    128128      subclass="fulltable"
     129      stickyheaders="name"
    129130      >
    130131      <tbl:hidden
     
    288289        <tbl:headers>
    289290          <tbl:headerrow>
    290             <tbl:header colspan="3" />
     291            <tbl:header clazz="row-index bg-filled-100" />
    291292            <tbl:columnheaders />
    292293          </tbl:headerrow>
     
    299300            %>
    300301            <tbl:headerrow>
    301               <tbl:header subclass="index" />
    302               <tbl:header
    303                 subclass="check"
    304                 visible="<%=mode.hasCheck()%>"
    305                 ><base:icon
    306                   subclass="link table-check"
    307                   image="check_uncheck.png"
    308                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    309                   visible="<%=lastRow%>"
    310                 /></tbl:header>
    311               <tbl:header
    312                 subclass="check"
    313                 visible="<%=mode.hasRadio()%>"
    314                 />
    315               <tbl:header
    316                 subclass="icons"
    317                 visible="<%=mode.hasIcons()%>"
    318                 >
    319                 <base:icon
    320                   subclass="link table-filter-row-action"
    321                   image="add.png"
    322                   tooltip="Add extra filter row"
    323                   visible="<%=lastRow%>"
    324                 /><base:icon
    325                   subclass="link table-filter-row-action"
    326                   image="remove.png"
    327                   tooltip="Remove this filter row"
    328                   visible="<%=numRows > 1 || numFilters > 0 %>"
    329                   data-remove-row="<%=filterNo%>"
    330                 />
     302              <tbl:header subclass="row-index bg-filled-100">
     303                <div class="index-<%=mode.getName()%>">
     304                  <div class="index"></div>
     305                  <div class="check">
     306                    <base:icon
     307                      subclass="link table-check"
     308                      image="check_uncheck.png"
     309                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     310                      visible="<%=lastRow && mode.hasCheck()%>"
     311                    />
     312                  </div>
     313                  <div class="icons">
     314                    <base:icon
     315                      subclass="link table-filter-row-action"
     316                      image="add.png"
     317                      tooltip="Add extra filter row"
     318                      visible="<%=lastRow%>"
     319                    /><base:icon
     320                      subclass="link table-filter-row-action"
     321                      image="remove.png"
     322                      tooltip="Remove this filter row"
     323                      visible="<%=numRows > 1 || numFilters > 0 %>"
     324                      data-remove-row="<%=filterNo%>"
     325                    />
     326                  </div>
     327                </div>
    331328              </tbl:header>
    332329              <tbl:propertyfilter row="<%=filterNo%>" />
     
    365362              %>
    366363              <tbl:row>
    367                 <tbl:header
    368                   clazz="index"
    369                   ><%=index%></tbl:header>
    370                 <tbl:header
    371                   clazz="check"
    372                   visible="<%=mode.hasCheck()%>"
    373                   ><input
    374                     type="checkbox"
    375                     name="<%=itemId%>"
    376                     value="<%=itemId%>"
    377                     title="<%=name%>"
    378                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    379                   ></tbl:header>
    380                 <tbl:header
    381                   clazz="check"
    382                   visible="<%=mode.hasRadio()%>"
    383                   ><input
    384                     type="radio"
    385                     name="item_id"
    386                     value="<%=itemId%>"
    387                     title="<%=name%>"
    388                     <%=selectedItemId == itemId ? "checked" : ""%>
    389                   ></tbl:header>
    390                 <tbl:header
    391                   clazz="icons"
    392                   visible="<%=mode.hasIcons()%>"
    393                   ><base:icon
    394                     image="deleted.png"
    395                     id="<%="delete."+itemId %>"
    396                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    397                     data-item-id="<%=itemId%>"
    398                     tooltip="This item has been scheduled for deletion"
    399                     visible="<%=item.isRemoved()%>"
    400                   />&nbsp;</tbl:header>
     364                <tbl:header clazz="row-index bg-filled-100">
     365                  <div class="index-<%=mode.getName()%>">
     366                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     367                    <div class="check">
     368                      <base:input
     369                        type="checkbox"
     370                        name="<%=itemId%>"
     371                        value="<%=itemId%>"
     372                        title="<%=name%>"
     373                        checked="<%=cc.getSelected().contains(itemId)%>"
     374                        visible="<%=mode.hasCheck()%>"
     375                      />
     376                      <base:input
     377                        type="radio"
     378                        name="item_id"
     379                        value="<%=itemId%>"
     380                        title="<%=name%>"
     381                        checked="<%=selectedItemId == itemId%>"
     382                        visible="<%=mode.hasRadio()%>"
     383                      />
     384                    </div>
     385                    <div class="icons">
     386                      <base:icon
     387                        image="deleted.png"
     388                        id="<%="delete."+itemId %>"
     389                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     390                        data-item-id="<%=itemId%>"
     391                        tooltip="This item has been scheduled for deletion"
     392                        visible="<%=item.isRemoved()%>"
     393                      />
     394                    </div>
     395                  </div>
     396                </tbl:header>
    401397                <tbl:cell column="name"><div
    402398                  class="link table-item"
  • trunk/www/admin/platforms/variants/list_variants.jsp

    r7914 r7943  
    143143      filterrows="<%=cc.getFilterRows()%>"
    144144      subclass="fulltable"
     145      stickyheaders="name"
    145146      >
    146147      <tbl:hidden
     
    311312        <tbl:headers>
    312313          <tbl:headerrow>
    313             <tbl:header colspan="3" />
     314            <tbl:header clazz="row-index bg-filled-100" />
    314315            <tbl:columnheaders />
    315316          </tbl:headerrow>
     
    322323            %>
    323324            <tbl:headerrow>
    324               <tbl:header subclass="index" />
    325               <tbl:header
    326                 subclass="check"
    327                 visible="<%=mode.hasCheck()%>"
    328                 ><base:icon
    329                   subclass="link table-check"
    330                   image="check_uncheck.png"
    331                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    332                   visible="<%=lastRow%>"
    333                 /></tbl:header>
    334               <tbl:header
    335                 subclass="check"
    336                 visible="<%=mode.hasRadio()%>"
    337                 />
    338               <tbl:header
    339                 subclass="icons"
    340                 visible="<%=mode.hasIcons()%>"
    341                 >
    342                 <base:icon
    343                   subclass="link table-filter-row-action"
    344                   image="add.png"
    345                   tooltip="Add extra filter row"
    346                   visible="<%=lastRow%>"
    347                 /><base:icon
    348                   subclass="link table-filter-row-action"
    349                   image="remove.png"
    350                   tooltip="Remove this filter row"
    351                   visible="<%=numRows > 1 || numFilters > 0 %>"
    352                   data-remove-row="<%=filterNo%>"
    353                 />
     325              <tbl:header subclass="row-index bg-filled-100">
     326                <div class="index-<%=mode.getName()%>">
     327                  <div class="index"></div>
     328                  <div class="check">
     329                    <base:icon
     330                      subclass="link table-check"
     331                      image="check_uncheck.png"
     332                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     333                      visible="<%=lastRow && mode.hasCheck()%>"
     334                    />
     335                  </div>
     336                  <div class="icons">
     337                    <base:icon
     338                      subclass="link table-filter-row-action"
     339                      image="add.png"
     340                      tooltip="Add extra filter row"
     341                      visible="<%=lastRow%>"
     342                    /><base:icon
     343                      subclass="link table-filter-row-action"
     344                      image="remove.png"
     345                      tooltip="Remove this filter row"
     346                      visible="<%=numRows > 1 || numFilters > 0 %>"
     347                      data-remove-row="<%=filterNo%>"
     348                    />
     349                  </div>
     350                </div>
    354351              </tbl:header>
    355352              <tbl:propertyfilter row="<%=filterNo%>" />
     
    388385              %>
    389386              <tbl:row>
    390                 <tbl:header
    391                   clazz="index"
    392                   ><%=index%></tbl:header>
    393                 <tbl:header
    394                   clazz="check"
    395                   visible="<%=mode.hasCheck()%>"
    396                   ><input
    397                     type="checkbox"
    398                     name="<%=itemId%>"
    399                     value="<%=itemId%>"
    400                     title="<%=name%>"
    401                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    402                   ></tbl:header>
    403                 <tbl:header
    404                   clazz="check"
    405                   visible="<%=mode.hasRadio()%>"
    406                   ><input
    407                     type="radio"
    408                     name="item_id"
    409                     value="<%=itemId%>"
    410                     title="<%=name%>"
    411                     <%=selectedItemId == itemId ? "checked" : ""%>
    412                   ></tbl:header>
    413                 <tbl:header
    414                   clazz="icons"
    415                   visible="<%=mode.hasIcons()%>"
    416                   ><base:icon
    417                     image="deleted.png"
    418                     id="<%="delete."+itemId %>"
    419                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    420                     data-item-id="<%=itemId%>"
    421                     tooltip="This item has been scheduled for deletion"
    422                     visible="<%=item.isRemoved()%>"
    423                   />&nbsp;</tbl:header>
     387                <tbl:header clazz="row-index bg-filled-100">
     388                  <div class="index-<%=mode.getName()%>">
     389                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     390                    <div class="check">
     391                      <base:input
     392                        type="checkbox"
     393                        name="<%=itemId%>"
     394                        value="<%=itemId%>"
     395                        title="<%=name%>"
     396                        checked="<%=cc.getSelected().contains(itemId)%>"
     397                        visible="<%=mode.hasCheck()%>"
     398                      />
     399                      <base:input
     400                        type="radio"
     401                        name="item_id"
     402                        value="<%=itemId%>"
     403                        title="<%=name%>"
     404                        checked="<%=selectedItemId == itemId%>"
     405                        visible="<%=mode.hasRadio()%>"
     406                      />
     407                    </div>
     408                    <div class="icons">
     409                      <base:icon
     410                        image="deleted.png"
     411                        id="<%="delete."+itemId %>"
     412                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     413                        data-item-id="<%=itemId%>"
     414                        tooltip="This item has been scheduled for deletion"
     415                        visible="<%=item.isRemoved()%>"
     416                      />
     417                    </div>
     418                  </div>
     419                </tbl:header>
    424420                <tbl:cell column="name"><div
    425421                  class="link table-item"
  • trunk/www/admin/pluginconfigurations/list_configurations.jsp

    r7914 r7943  
    145145      filterrows="<%=cc.getFilterRows()%>"
    146146      subclass="fulltable"
     147      stickyheaders="name"
    147148      >
    148149      <tbl:hidden
     
    334335        <tbl:headers>
    335336          <tbl:headerrow>
    336             <tbl:header colspan="3" />
     337            <tbl:header clazz="row-index bg-filled-100" />
    337338            <tbl:columnheaders />
    338339          </tbl:headerrow>
     
    345346            %>
    346347            <tbl:headerrow>
    347               <tbl:header subclass="index" />
    348               <tbl:header
    349                 subclass="check"
    350                 visible="<%=mode.hasCheck()%>"
    351                 ><base:icon
    352                   subclass="link table-check"
    353                   image="check_uncheck.png"
    354                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    355                   visible="<%=lastRow%>"
    356                 /></tbl:header>
    357               <tbl:header
    358                 subclass="check"
    359                 visible="<%=mode.hasRadio()%>"
    360                 />
    361               <tbl:header
    362                 subclass="icons"
    363                 visible="<%=mode.hasIcons()%>"
    364                 >
    365                 <base:icon
    366                   subclass="link table-filter-row-action"
    367                   image="add.png"
    368                   tooltip="Add extra filter row"
    369                   visible="<%=lastRow%>"
    370                 /><base:icon
    371                   subclass="link table-filter-row-action"
    372                   image="remove.png"
    373                   tooltip="Remove this filter row"
    374                   visible="<%=numRows > 1 || numFilters > 0 %>"
    375                   data-remove-row="<%=filterNo%>"
    376                 />
     348              <tbl:header subclass="row-index bg-filled-100">
     349                <div class="index-<%=mode.getName()%>">
     350                  <div class="index"></div>
     351                  <div class="check">
     352                    <base:icon
     353                      subclass="link table-check"
     354                      image="check_uncheck.png"
     355                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     356                      visible="<%=lastRow && mode.hasCheck()%>"
     357                    />
     358                  </div>
     359                  <div class="icons">
     360                    <base:icon
     361                      subclass="link table-filter-row-action"
     362                      image="add.png"
     363                      tooltip="Add extra filter row"
     364                      visible="<%=lastRow%>"
     365                    /><base:icon
     366                      subclass="link table-filter-row-action"
     367                      image="remove.png"
     368                      tooltip="Remove this filter row"
     369                      visible="<%=numRows > 1 || numFilters > 0 %>"
     370                      data-remove-row="<%=filterNo%>"
     371                    />
     372                  </div>
     373                </div>
    377374              </tbl:header>
    378375              <tbl:propertyfilter row="<%=filterNo%>" />
     
    424421              %>
    425422              <tbl:row>
    426                 <tbl:header
    427                   clazz="index"
    428                   ><%=index%></tbl:header>
    429                 <tbl:header
    430                   clazz="check"
    431                   visible="<%=mode.hasCheck()%>"
    432                   ><input
    433                     type="checkbox"
    434                     name="<%=itemId%>"
    435                     value="<%=itemId%>"
    436                     title="<%=name%>"
    437                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    438                   ></tbl:header>
    439                 <tbl:header
    440                   clazz="check"
    441                   visible="<%=mode.hasRadio()%>"
    442                   ><input
    443                     type="radio"
    444                     name="item_id"
    445                     value="<%=itemId%>"
    446                     title="<%=name%>"
    447                     <%=selectedItemId == itemId ? "checked" : ""%>
    448                   ></tbl:header>
    449                 <tbl:header
    450                   clazz="icons"
    451                   visible="<%=mode.hasIcons()%>"
    452                   ><base:icon
    453                     image="deleted.png"
    454                     id="<%="delete."+itemId %>"
    455                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    456                     data-item-id="<%=itemId%>"
    457                     tooltip="This item has been scheduled for deletion"
    458                     visible="<%=item.isRemoved()%>"
    459                   /><base:icon
    460                     image="shared.png"
    461                     id="<%="share."+itemId %>"
    462                     subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
    463                     data-item-id="<%=itemId%>"
    464                     tooltip="This item is shared to other users, groups and/or projects"
    465                     visible="<%=item.isShared()%>"
    466                   />&nbsp;</tbl:header>
     423                <tbl:header clazz="row-index bg-filled-100">
     424                  <div class="index-<%=mode.getName()%>">
     425                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     426                    <div class="check">
     427                      <base:input
     428                        type="checkbox"
     429                        name="<%=itemId%>"
     430                        value="<%=itemId%>"
     431                        title="<%=name%>"
     432                        checked="<%=cc.getSelected().contains(itemId)%>"
     433                        visible="<%=mode.hasCheck()%>"
     434                      />
     435                      <base:input
     436                        type="radio"
     437                        name="item_id"
     438                        value="<%=itemId%>"
     439                        title="<%=name%>"
     440                        checked="<%=selectedItemId == itemId%>"
     441                        visible="<%=mode.hasRadio()%>"
     442                      />
     443                    </div>
     444                    <div class="icons">
     445                      <base:icon
     446                        image="deleted.png"
     447                        id="<%="delete."+itemId %>"
     448                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     449                        data-item-id="<%=itemId%>"
     450                        tooltip="This item has been scheduled for deletion"
     451                        visible="<%=item.isRemoved()%>"
     452                      /><base:icon
     453                        image="shared.png"
     454                        id="<%="share."+itemId %>"
     455                        subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
     456                        data-item-id="<%=itemId%>"
     457                        tooltip="This item is shared to other users, groups and/or projects"
     458                        visible="<%=item.isShared()%>"
     459                      />
     460                    </div>
     461                  </div>
     462                </tbl:header>
    467463                <tbl:cell column="name"><div
    468464                  class="link table-item"
  • trunk/www/admin/plugindefinitions/list_plugins.jsp

    r7914 r7943  
    154154      filterrows="<%=cc.getFilterRows()%>"
    155155      subclass="fulltable"
     156      stickyheaders="name"
    156157      >
    157158      <tbl:hidden
     
    488489        <tbl:headers>
    489490          <tbl:headerrow>
    490             <tbl:header colspan="3" />
     491            <tbl:header clazz="row-index bg-filled-100" />
    491492            <tbl:columnheaders />
    492493          </tbl:headerrow>
     
    499500            %>
    500501            <tbl:headerrow>
    501               <tbl:header subclass="index" />
    502               <tbl:header
    503                 subclass="check"
    504                 visible="<%=mode.hasCheck()%>"
    505                 ><base:icon
    506                   subclass="link table-check"
    507                   image="check_uncheck.png"
    508                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    509                   visible="<%=lastRow%>"
    510                 /></tbl:header>
    511               <tbl:header
    512                 subclass="check"
    513                 visible="<%=mode.hasRadio()%>"
    514                 />
    515               <tbl:header
    516                 subclass="icons"
    517                 visible="<%=mode.hasIcons()%>"
    518                 >
    519                 <base:icon
    520                   subclass="link table-filter-row-action"
    521                   image="add.png"
    522                   tooltip="Add extra filter row"
    523                   visible="<%=lastRow%>"
    524                 /><base:icon
    525                   subclass="link table-filter-row-action"
    526                   image="remove.png"
    527                   tooltip="Remove this filter row"
    528                   visible="<%=numRows > 1 || numFilters > 0 %>"
    529                   data-remove-row="<%=filterNo%>"
    530                 />
     502              <tbl:header subclass="row-index bg-filled-100">
     503                <div class="index-<%=mode.getName()%>">
     504                  <div class="index"></div>
     505                  <div class="check">
     506                    <base:icon
     507                      subclass="link table-check"
     508                      image="check_uncheck.png"
     509                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     510                      visible="<%=lastRow && mode.hasCheck()%>"
     511                    />
     512                  </div>
     513                  <div class="icons">
     514                    <base:icon
     515                      subclass="link table-filter-row-action"
     516                      image="add.png"
     517                      tooltip="Add extra filter row"
     518                      visible="<%=lastRow%>"
     519                    /><base:icon
     520                      subclass="link table-filter-row-action"
     521                      image="remove.png"
     522                      tooltip="Remove this filter row"
     523                      visible="<%=numRows > 1 || numFilters > 0 %>"
     524                      data-remove-row="<%=filterNo%>"
     525                    />
     526                  </div>
     527                </div>
    531528              </tbl:header>
    532529              <tbl:propertyfilter row="<%=filterNo%>" />
     
    570567              %>
    571568              <tbl:row>
    572                 <tbl:header
    573                   clazz="index"
    574                   ><%=index%></tbl:header>
    575                 <tbl:header
    576                   clazz="check"
    577                   visible="<%=mode.hasCheck()%>"
    578                   ><input
    579                     type="checkbox"
    580                     name="<%=itemId%>"
    581                     value="<%=itemId%>"
    582                     title="<%=name%>"
    583                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    584                   ></tbl:header>
    585                 <tbl:header
    586                   clazz="check"
    587                   visible="<%=mode.hasRadio()%>"
    588                   ><input
    589                     type="radio"
    590                     name="item_id"
    591                     value="<%=itemId%>"
    592                     title="<%=name%>"
    593                     <%=selectedItemId == itemId ? "checked" : ""%>
    594                   ></tbl:header>
    595                 <tbl:header
    596                   clazz="icons"
    597                   visible="<%=mode.hasIcons()%>"
    598                   ><base:icon
    599                     image="deleted.png"
    600                     id="<%="delete."+itemId %>"
    601                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    602                     data-item-id="<%=itemId%>"
    603                     tooltip="This item has been scheduled for deletion"
    604                     visible="<%=item.isRemoved()%>"
    605                   /><base:icon
    606                     image="shared.png"
    607                     id="<%="share."+itemId %>"
    608                     subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
    609                     data-item-id="<%=itemId%>"
    610                     tooltip="This item is shared to other users, groups and/or projects"
    611                     visible="<%=item.isShared()%>"
    612                   />&nbsp;</tbl:header>
     569                <tbl:header clazz="row-index bg-filled-100">
     570                  <div class="index-<%=mode.getName()%>">
     571                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     572                    <div class="check">
     573                      <base:input
     574                        type="checkbox"
     575                        name="<%=itemId%>"
     576                        value="<%=itemId%>"
     577                        title="<%=name%>"
     578                        checked="<%=cc.getSelected().contains(itemId)%>"
     579                        visible="<%=mode.hasCheck()%>"
     580                      />
     581                      <base:input
     582                        type="radio"
     583                        name="item_id"
     584                        value="<%=itemId%>"
     585                        title="<%=name%>"
     586                        checked="<%=selectedItemId == itemId%>"
     587                        visible="<%=mode.hasRadio()%>"
     588                      />
     589                    </div>
     590                    <div class="icons">
     591                      <base:icon
     592                        image="deleted.png"
     593                        id="<%="delete."+itemId %>"
     594                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     595                        data-item-id="<%=itemId%>"
     596                        tooltip="This item has been scheduled for deletion"
     597                        visible="<%=item.isRemoved()%>"
     598                      /><base:icon
     599                        image="shared.png"
     600                        id="<%="share."+itemId %>"
     601                        subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
     602                        data-item-id="<%=itemId%>"
     603                        tooltip="This item is shared to other users, groups and/or projects"
     604                        visible="<%=item.isShared()%>"
     605                      />
     606                    </div>
     607                  </div>
     608                </tbl:header>
    613609                <tbl:cell column="name"><div
    614610                  class="link table-item"
  • trunk/www/admin/plugintypes/list_plugintypes.jsp

    r7914 r7943  
    128128      filterrows="<%=cc.getFilterRows()%>"
    129129      subclass="fulltable"
     130      stickyheaders="name"
    130131      >
    131132      <tbl:hidden
     
    281282        <tbl:headers>
    282283          <tbl:headerrow>
    283             <tbl:header colspan="3" />
     284            <tbl:header clazz="row-index bg-filled-100" />
    284285            <tbl:columnheaders />
    285286          </tbl:headerrow>
     
    292293            %>
    293294            <tbl:headerrow>
    294               <tbl:header subclass="index" />
    295               <tbl:header
    296                 subclass="check"
    297                 visible="<%=mode.hasCheck()%>"
    298                 ><base:icon
    299                   subclass="link table-check"
    300                   image="check_uncheck.png"
    301                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    302                   visible="<%=lastRow%>"
    303                 /></tbl:header>
    304               <tbl:header
    305                 subclass="check"
    306                 visible="<%=mode.hasRadio()%>"
    307                 />
    308               <tbl:header
    309                 subclass="icons"
    310                 visible="<%=mode.hasIcons()%>"
    311                 >
    312                 <base:icon
    313                   subclass="link table-filter-row-action"
    314                   image="add.png"
    315                   tooltip="Add extra filter row"
    316                   visible="<%=lastRow%>"
    317                 /><base:icon
    318                   subclass="link table-filter-row-action"
    319                   image="remove.png"
    320                   tooltip="Remove this filter row"
    321                   visible="<%=numRows > 1 || numFilters > 0 %>"
    322                   data-remove-row="<%=filterNo%>"
    323                 />
     295              <tbl:header subclass="row-index bg-filled-100">
     296                <div class="index-<%=mode.getName()%>">
     297                  <div class="index"></div>
     298                  <div class="check">
     299                    <base:icon
     300                      subclass="link table-check"
     301                      image="check_uncheck.png"
     302                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     303                      visible="<%=lastRow && mode.hasCheck()%>"
     304                    />
     305                  </div>
     306                  <div class="icons">
     307                    <base:icon
     308                      subclass="link table-filter-row-action"
     309                      image="add.png"
     310                      tooltip="Add extra filter row"
     311                      visible="<%=lastRow%>"
     312                    /><base:icon
     313                      subclass="link table-filter-row-action"
     314                      image="remove.png"
     315                      tooltip="Remove this filter row"
     316                      visible="<%=numRows > 1 || numFilters > 0 %>"
     317                      data-remove-row="<%=filterNo%>"
     318                    />
     319                  </div>
     320                </div>
    324321              </tbl:header>
    325322              <tbl:propertyfilter row="<%=filterNo%>" />
     
    357354              %>
    358355              <tbl:row>
    359                 <tbl:header
    360                   clazz="index"
    361                   ><%=index%></tbl:header>
    362                 <tbl:header
    363                   clazz="check"
    364                   visible="<%=mode.hasCheck()%>"
    365                   ><input
    366                     type="checkbox"
    367                     name="<%=itemId%>"
    368                     value="<%=itemId%>"
    369                     title="<%=name%>"
    370                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    371                   ></tbl:header>
    372                 <tbl:header
    373                   clazz="check"
    374                   visible="<%=mode.hasRadio()%>"
    375                   ><input
    376                     type="radio"
    377                     name="item_id"
    378                     value="<%=itemId%>"
    379                     title="<%=name%>"
    380                     <%=selectedItemId == itemId ? "checked" : ""%>
    381                   ></tbl:header>
    382                 <tbl:header
    383                   clazz="icons"
    384                   visible="<%=mode.hasIcons()%>"
    385                   ><base:icon
    386                     image="deleted.png"
    387                     id="<%="delete."+itemId %>"
    388                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    389                     data-item-id="<%=itemId%>"
    390                     tooltip="This item has been scheduled for deletion"
    391                     visible="<%=item.isRemoved()%>"
    392                   />&nbsp;</tbl:header>
     356                <tbl:header clazz="row-index bg-filled-100">
     357                  <div class="index-<%=mode.getName()%>">
     358                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     359                    <div class="check">
     360                      <base:input
     361                        type="checkbox"
     362                        name="<%=itemId%>"
     363                        value="<%=itemId%>"
     364                        title="<%=name%>"
     365                        checked="<%=cc.getSelected().contains(itemId)%>"
     366                        visible="<%=mode.hasCheck()%>"
     367                      />
     368                      <base:input
     369                        type="radio"
     370                        name="item_id"
     371                        value="<%=itemId%>"
     372                        title="<%=name%>"
     373                        checked="<%=selectedItemId == itemId%>"
     374                        visible="<%=mode.hasRadio()%>"
     375                      />
     376                    </div>
     377                    <div class="icons">
     378                      <base:icon
     379                        image="deleted.png"
     380                        id="<%="delete."+itemId %>"
     381                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     382                        data-item-id="<%=itemId%>"
     383                        tooltip="This item has been scheduled for deletion"
     384                        visible="<%=item.isRemoved()%>"
     385                      />
     386                    </div>
     387                  </div>
     388                </tbl:header>
    393389                <tbl:cell column="name"><div
    394390                  class="link table-item"
  • trunk/www/admin/protocols/list_protocol.jsp

    r7914 r7943  
    139139      filterrows="<%=cc.getFilterRows()%>"
    140140      subclass="fulltable"
     141      stickyheaders="name"
    141142      >
    142143      <tbl:hidden
     
    360361        <tbl:headers>
    361362          <tbl:headerrow>
    362             <tbl:header colspan="3" />
     363            <tbl:header clazz="row-index bg-filled-100" />
    363364            <tbl:columnheaders />
    364365          </tbl:headerrow>
     
    371372            %>
    372373            <tbl:headerrow>
    373               <tbl:header subclass="index" />
    374               <tbl:header
    375                 subclass="check"
    376                 visible="<%=mode.hasCheck()%>"
    377                 ><base:icon
    378                   subclass="link table-check"
    379                   image="check_uncheck.png"
    380                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    381                   visible="<%=lastRow%>"
    382                 /></tbl:header>
    383               <tbl:header
    384                 subclass="check"
    385                 visible="<%=mode.hasRadio()%>"
    386                 />
    387               <tbl:header
    388                 subclass="icons"
    389                 visible="<%=mode.hasIcons()%>"
    390                 >
    391                 <base:icon
    392                   subclass="link table-filter-row-action"
    393                   image="add.png"
    394                   tooltip="Add extra filter row"
    395                   visible="<%=lastRow%>"
    396                 /><base:icon
    397                   subclass="link table-filter-row-action"
    398                   image="remove.png"
    399                   tooltip="Remove this filter row"
    400                   visible="<%=numRows > 1 || numFilters > 0 %>"
    401                   data-remove-row="<%=filterNo%>"
    402                 />
     374              <tbl:header subclass="row-index bg-filled-100">
     375                <div class="index-<%=mode.getName()%>">
     376                  <div class="index"></div>
     377                  <div class="check">
     378                    <base:icon
     379                      subclass="link table-check"
     380                      image="check_uncheck.png"
     381                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     382                      visible="<%=lastRow && mode.hasCheck()%>"
     383                    />
     384                  </div>
     385                  <div class="icons">
     386                    <base:icon
     387                      subclass="link table-filter-row-action"
     388                      image="add.png"
     389                      tooltip="Add extra filter row"
     390                      visible="<%=lastRow%>"
     391                    /><base:icon
     392                      subclass="link table-filter-row-action"
     393                      image="remove.png"
     394                      tooltip="Remove this filter row"
     395                      visible="<%=numRows > 1 || numFilters > 0 %>"
     396                      data-remove-row="<%=filterNo%>"
     397                    />
     398                  </div>
     399                </div>
    403400              </tbl:header>
    404401              <tbl:propertyfilter row="<%=filterNo%>" />
     
    440437              %>
    441438              <tbl:row>
    442                 <tbl:header
    443                   clazz="index"
    444                   ><%=index%></tbl:header>
    445                 <tbl:header
    446                   clazz="check"
    447                   visible="<%=mode.hasCheck()%>"
    448                   ><input
    449                     type="checkbox"
    450                     name="<%=itemId%>"
    451                     value="<%=itemId%>"
    452                     title="<%=name%>"
    453                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    454                   ></tbl:header>
    455                 <tbl:header
    456                   clazz="check"
    457                   visible="<%=mode.hasRadio()%>"
    458                   ><input
    459                     type="radio"
    460                     name="item_id"
    461                     value="<%=itemId%>"
    462                     title="<%=name%>"
    463                     <%=selectedItemId == itemId ? "checked" : ""%>
    464                   ></tbl:header>
    465                 <tbl:header
    466                   clazz="icons"
    467                   visible="<%=mode.hasIcons()%>"
    468                   ><base:icon
    469                     image="deleted.png"
    470                     id="<%="delete."+itemId %>"
    471                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    472                     data-item-id="<%=itemId%>"
    473                     tooltip="This item has been scheduled for deletion"
    474                     visible="<%=item.isRemoved()%>"
    475                   /><base:icon
    476                     image="shared.png"
    477                     id="<%="share."+itemId %>"
    478                     subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
    479                     data-item-id="<%=itemId%>"
    480                     tooltip="This item is shared to other users, groups and/or projects"
    481                     visible="<%=item.isShared()%>"
    482                   />&nbsp;</tbl:header>
     439                <tbl:header clazz="row-index bg-filled-100">
     440                  <div class="index-<%=mode.getName()%>">
     441                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     442                    <div class="check">
     443                      <base:input
     444                        type="checkbox"
     445                        name="<%=itemId%>"
     446                        value="<%=itemId%>"
     447                        title="<%=name%>"
     448                        checked="<%=cc.getSelected().contains(itemId)%>"
     449                        visible="<%=mode.hasCheck()%>"
     450                      />
     451                      <base:input
     452                        type="radio"
     453                        name="item_id"
     454                        value="<%=itemId%>"
     455                        title="<%=name%>"
     456                        checked="<%=selectedItemId == itemId%>"
     457                        visible="<%=mode.hasRadio()%>"
     458                      />
     459                    </div>
     460                    <div class="icons">
     461                      <base:icon
     462                        image="deleted.png"
     463                        id="<%="delete."+itemId %>"
     464                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     465                        data-item-id="<%=itemId%>"
     466                        tooltip="This item has been scheduled for deletion"
     467                        visible="<%=item.isRemoved()%>"
     468                      /><base:icon
     469                        image="shared.png"
     470                        id="<%="share."+itemId %>"
     471                        subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
     472                        data-item-id="<%=itemId%>"
     473                        tooltip="This item is shared to other users, groups and/or projects"
     474                        visible="<%=item.isShared()%>"
     475                      />
     476                    </div>
     477                  </div>
     478                </tbl:header>
    483479                <tbl:cell column="name"><div
    484480                  class="link table-item"
  • trunk/www/admin/quantities/list_quantities.jsp

    r7914 r7943  
    126126      filterrows="<%=cc.getFilterRows()%>"
    127127      subclass="fulltable"
     128      stickyheaders="name"
    128129      >
    129130      <tbl:hidden
     
    273274        <tbl:headers>
    274275          <tbl:headerrow>
    275             <tbl:header colspan="3" />
     276            <tbl:header clazz="row-index bg-filled-100" />
    276277            <tbl:columnheaders />
    277278          </tbl:headerrow>
     
    284285            %>
    285286            <tbl:headerrow>
    286               <tbl:header subclass="index" />
    287               <tbl:header
    288                 subclass="check"
    289                 visible="<%=mode.hasCheck()%>"
    290                 ><base:icon
    291                   subclass="link table-check"
    292                   image="check_uncheck.png"
    293                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    294                   visible="<%=lastRow%>"
    295                 /></tbl:header>
    296               <tbl:header
    297                 subclass="check"
    298                 visible="<%=mode.hasRadio()%>"
    299                 />
    300               <tbl:header
    301                 subclass="icons"
    302                 visible="<%=mode.hasIcons()%>"
    303                 >
    304                 <base:icon
    305                   subclass="link table-filter-row-action"
    306                   image="add.png"
    307                   tooltip="Add extra filter row"
    308                   visible="<%=lastRow%>"
    309                 /><base:icon
    310                   subclass="link table-filter-row-action"
    311                   image="remove.png"
    312                   tooltip="Remove this filter row"
    313                   visible="<%=numRows > 1 || numFilters > 0 %>"
    314                   data-remove-row="<%=filterNo%>"
    315                 />
     287              <tbl:header subclass="row-index bg-filled-100">
     288                <div class="index-<%=mode.getName()%>">
     289                  <div class="index"></div>
     290                  <div class="check">
     291                    <base:icon
     292                      subclass="link table-check"
     293                      image="check_uncheck.png"
     294                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     295                      visible="<%=lastRow && mode.hasCheck()%>"
     296                    />
     297                  </div>
     298                  <div class="icons">
     299                    <base:icon
     300                      subclass="link table-filter-row-action"
     301                      image="add.png"
     302                      tooltip="Add extra filter row"
     303                      visible="<%=lastRow%>"
     304                    /><base:icon
     305                      subclass="link table-filter-row-action"
     306                      image="remove.png"
     307                      tooltip="Remove this filter row"
     308                      visible="<%=numRows > 1 || numFilters > 0 %>"
     309                      data-remove-row="<%=filterNo%>"
     310                    />
     311                  </div>
     312                </div>
    316313              </tbl:header>
    317314              <tbl:propertyfilter row="<%=filterNo%>" />
     
    350347              %>
    351348              <tbl:row>
    352                 <tbl:header
    353                   clazz="index"
    354                   ><%=index%></tbl:header>
    355                 <tbl:header
    356                   clazz="check"
    357                   visible="<%=mode.hasCheck()%>"
    358                   ><input
    359                     type="checkbox"
    360                     name="<%=itemId%>"
    361                     value="<%=itemId%>"
    362                     title="<%=name%>"
    363                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    364                   ></tbl:header>
    365                 <tbl:header
    366                   clazz="check"
    367                   visible="<%=mode.hasRadio()%>"
    368                   ><input
    369                     type="radio"
    370                     name="item_id"
    371                     value="<%=itemId%>"
    372                     title="<%=name%>"
    373                     <%=selectedItemId == itemId ? "checked" : ""%>
    374                   ></tbl:header>
    375                 <tbl:header
    376                   clazz="icons"
    377                   visible="<%=mode.hasIcons()%>"
    378                   ><base:icon
    379                     image="deleted.png"
    380                     id="<%="delete."+itemId %>"
    381                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    382                     data-item-id="<%=itemId%>"
    383                     tooltip="This item has been scheduled for deletion"
    384                     visible="<%=item.isRemoved()%>"
    385                   /><base:icon
    386                     image="systemitem.png"
    387                     tooltip="This item is a system item"
    388                     visible="<%=item.isSystemItem()%>"
    389                   />&nbsp;</tbl:header>
     349                <tbl:header clazz="row-index bg-filled-100">
     350                  <div class="index-<%=mode.getName()%>">
     351                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     352                    <div class="check">
     353                      <base:input
     354                        type="checkbox"
     355                        name="<%=itemId%>"
     356                        value="<%=itemId%>"
     357                        title="<%=name%>"
     358                        checked="<%=cc.getSelected().contains(itemId)%>"
     359                        visible="<%=mode.hasCheck()%>"
     360                      />
     361                      <base:input
     362                        type="radio"
     363                        name="item_id"
     364                        value="<%=itemId%>"
     365                        title="<%=name%>"
     366                        checked="<%=selectedItemId == itemId%>"
     367                        visible="<%=mode.hasRadio()%>"
     368                      />
     369                    </div>
     370                    <div class="icons">
     371                      <base:icon
     372                        image="deleted.png"
     373                        id="<%="delete."+itemId %>"
     374                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     375                        data-item-id="<%=itemId%>"
     376                        tooltip="This item has been scheduled for deletion"
     377                        visible="<%=item.isRemoved()%>"
     378                      /><base:icon
     379                        image="systemitem.png"
     380                        tooltip="This item is a system item"
     381                        visible="<%=item.isSystemItem()%>"
     382                      />
     383                    </div>
     384                  </div>
     385                </tbl:header>
    390386                <tbl:cell column="name"><div
    391387                  class="link table-item"
  • trunk/www/admin/quota/list_quota.jsp

    r7914 r7943  
    118118      filterrows="<%=cc.getFilterRows()%>"
    119119      subclass="fulltable"
     120      stickyheaders="name"
    120121      >
    121122      <tbl:hidden
     
    248249        <tbl:headers>
    249250          <tbl:headerrow>
    250             <tbl:header colspan="3" />
     251            <tbl:header clazz="row-index bg-filled-100" />
    251252            <tbl:columnheaders />
    252253          </tbl:headerrow>
     
    259260            %>
    260261            <tbl:headerrow>
    261               <tbl:header subclass="index" />
    262               <tbl:header
    263                 subclass="check"
    264                 visible="<%=mode.hasCheck()%>"
    265                 ><base:icon
    266                   subclass="link table-check"
    267                   image="check_uncheck.png"
    268                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    269                   visible="<%=lastRow%>"
    270                 /></tbl:header>
    271               <tbl:header
    272                 subclass="check"
    273                 visible="<%=mode.hasRadio()%>"
    274                 />
    275               <tbl:header
    276                 subclass="icons"
    277                 visible="<%=mode.hasIcons()%>"
    278                 >
    279                 <base:icon
    280                   subclass="link table-filter-row-action"
    281                   image="add.png"
    282                   tooltip="Add extra filter row"
    283                   visible="<%=lastRow%>"
    284                 /><base:icon
    285                   subclass="link table-filter-row-action"
    286                   image="remove.png"
    287                   tooltip="Remove this filter row"
    288                   visible="<%=numRows > 1 || numFilters > 0 %>"
    289                   data-remove-row="<%=filterNo%>"
    290                 />
     262              <tbl:header subclass="row-index bg-filled-100">
     263                <div class="index-<%=mode.getName()%>">
     264                  <div class="index"></div>
     265                  <div class="check">
     266                    <base:icon
     267                      subclass="link table-check"
     268                      image="check_uncheck.png"
     269                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     270                      visible="<%=lastRow && mode.hasCheck()%>"
     271                    />
     272                  </div>
     273                  <div class="icons">
     274                    <base:icon
     275                      subclass="link table-filter-row-action"
     276                      image="add.png"
     277                      tooltip="Add extra filter row"
     278                      visible="<%=lastRow%>"
     279                    /><base:icon
     280                      subclass="link table-filter-row-action"
     281                      image="remove.png"
     282                      tooltip="Remove this filter row"
     283                      visible="<%=numRows > 1 || numFilters > 0 %>"
     284                      data-remove-row="<%=filterNo%>"
     285                    />
     286                  </div>
     287                </div>
    291288              </tbl:header>
    292289              <tbl:propertyfilter row="<%=filterNo%>" />
     
    325322              %>
    326323              <tbl:row>
    327                 <tbl:header
    328                   clazz="index"
    329                   ><%=index%></tbl:header>
    330                 <tbl:header
    331                   clazz="check"
    332                   visible="<%=mode.hasCheck()%>"
    333                   ><input
    334                     type="checkbox"
    335                     name="<%=itemId%>"
    336                     value="<%=itemId%>"
    337                     title="<%=name%>"
    338                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    339                   ></tbl:header>
    340                 <tbl:header
    341                   clazz="check"
    342                   visible="<%=mode.hasRadio()%>"
    343                   ><input
    344                     type="radio"
    345                     name="item_id"
    346                     value="<%=itemId%>"
    347                     title="<%=name%>"
    348                     <%=selectedItemId == itemId ? "checked" : ""%>
    349                   ></tbl:header>
    350                 <tbl:header
    351                   clazz="icons"
    352                   visible="<%=mode.hasIcons()%>"
    353                   ><base:icon
    354                     image="deleted.png"
    355                     id="<%="delete."+itemId %>"
    356                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    357                     data-item-id="<%=itemId%>"
    358                     tooltip="This item has been scheduled for deletion"
    359                     visible="<%=item.isRemoved()%>"
    360                   /><base:icon
    361                     image="systemitem.png"
    362                     tooltip="This item is a system item"
    363                     visible="<%=item.isSystemItem()%>"
    364                   />&nbsp;</tbl:header>
     324                <tbl:header clazz="row-index bg-filled-100">
     325                  <div class="index-<%=mode.getName()%>">
     326                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     327                    <div class="check">
     328                      <base:input
     329                        type="checkbox"
     330                        name="<%=itemId%>"
     331                        value="<%=itemId%>"
     332                        title="<%=name%>"
     333                        checked="<%=cc.getSelected().contains(itemId)%>"
     334                        visible="<%=mode.hasCheck()%>"
     335                      />
     336                      <base:input
     337                        type="radio"
     338                        name="item_id"
     339                        value="<%=itemId%>"
     340                        title="<%=name%>"
     341                        checked="<%=selectedItemId == itemId%>"
     342                        visible="<%=mode.hasRadio()%>"
     343                      />
     344                    </div>
     345                    <div class="icons">
     346                      <base:icon
     347                        image="deleted.png"
     348                        id="<%="delete."+itemId %>"
     349                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     350                        data-item-id="<%=itemId%>"
     351                        tooltip="This item has been scheduled for deletion"
     352                        visible="<%=item.isRemoved()%>"
     353                      /><base:icon
     354                        image="systemitem.png"
     355                        tooltip="This item is a system item"
     356                        visible="<%=item.isSystemItem()%>"
     357                      />
     358                    </div>
     359                  </div>
     360                </tbl:header>
    365361                <tbl:cell column="name"><div
    366362                  class="link table-item"
  • trunk/www/admin/quotatypes/list_quotatypes.jsp

    r7914 r7943  
    116116      filterrows="<%=cc.getFilterRows()%>"
    117117      subclass="fulltable"
     118      stickyheaders="name"
    118119      >
    119120      <tbl:hidden
     
    223224        <tbl:headers>
    224225          <tbl:headerrow>
    225             <tbl:header colspan="3" />
     226            <tbl:header clazz="row-index bg-filled-100" />
    226227            <tbl:columnheaders />
    227228          </tbl:headerrow>
     
    234235            %>
    235236            <tbl:headerrow>
    236               <tbl:header subclass="index" />
    237               <tbl:header
    238                 subclass="check"
    239                 visible="<%=mode.hasCheck()%>"
    240                 ><base:icon
    241                   subclass="link table-check"
    242                   image="check_uncheck.png"
    243                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    244                   visible="<%=lastRow%>"
    245                 /></tbl:header>
    246               <tbl:header
    247                 subclass="check"
    248                 visible="<%=mode.hasRadio()%>"
    249                 />
    250               <tbl:header
    251                 subclass="icons"
    252                 visible="<%=mode.hasIcons()%>"
    253                 >
    254                 <base:icon
    255                   subclass="link table-filter-row-action"
    256                   image="add.png"
    257                   tooltip="Add extra filter row"
    258                   visible="<%=lastRow%>"
    259                 /><base:icon
    260                   subclass="link table-filter-row-action"
    261                   image="remove.png"
    262                   tooltip="Remove this filter row"
    263                   visible="<%=numRows > 1 || numFilters > 0 %>"
    264                   data-remove-row="<%=filterNo%>"
    265                 />
     237              <tbl:header subclass="row-index bg-filled-100">
     238                <div class="index-<%=mode.getName()%>">
     239                  <div class="index"></div>
     240                  <div class="check">
     241                    <base:icon
     242                      subclass="link table-check"
     243                      image="check_uncheck.png"
     244                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     245                      visible="<%=lastRow && mode.hasCheck()%>"
     246                    />
     247                  </div>
     248                  <div class="icons">
     249                    <base:icon
     250                      subclass="link table-filter-row-action"
     251                      image="add.png"
     252                      tooltip="Add extra filter row"
     253                      visible="<%=lastRow%>"
     254                    /><base:icon
     255                      subclass="link table-filter-row-action"
     256                      image="remove.png"
     257                      tooltip="Remove this filter row"
     258                      visible="<%=numRows > 1 || numFilters > 0 %>"
     259                      data-remove-row="<%=filterNo%>"
     260                    />
     261                  </div>
     262                </div>
    266263              </tbl:header>
    267264              <tbl:propertyfilter row="<%=filterNo%>" />
     
    297294              %>
    298295              <tbl:row>
    299                 <tbl:header
    300                   clazz="index"
    301                   ><%=index%></tbl:header>
    302                 <tbl:header
    303                   clazz="check"
    304                   visible="<%=mode.hasCheck()%>"
    305                   ><input
    306                     type="checkbox"
    307                     name="<%=itemId%>"
    308                     value="<%=itemId%>"
    309                     title="<%=name%>"
    310                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    311                   ></tbl:header>
    312                 <tbl:header
    313                   clazz="check"
    314                   visible="<%=mode.hasRadio()%>"
    315                   ><input
    316                     type="radio"
    317                     name="item_id"
    318                     value="<%=itemId%>"
    319                     title="<%=name%>"
    320                     <%=selectedItemId == itemId ? "checked" : ""%>
    321                   ></tbl:header>
    322                 <tbl:header
    323                   clazz="icons"
    324                   visible="<%=mode.hasIcons()%>"
    325                   ><base:icon
    326                     image="systemitem.png"
    327                     tooltip="This item is a system item"
    328                     visible="<%=item.isSystemItem()%>"
    329                   />&nbsp;</tbl:header>
     296                <tbl:header clazz="row-index bg-filled-100">
     297                  <div class="index-<%=mode.getName()%>">
     298                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     299                    <div class="check">
     300                      <base:input
     301                        type="checkbox"
     302                        name="<%=itemId%>"
     303                        value="<%=itemId%>"
     304                        title="<%=name%>"
     305                        checked="<%=cc.getSelected().contains(itemId)%>"
     306                        visible="<%=mode.hasCheck()%>"
     307                      />
     308                      <base:input
     309                        type="radio"
     310                        name="item_id"
     311                        value="<%=itemId%>"
     312                        title="<%=name%>"
     313                        checked="<%=selectedItemId == itemId%>"
     314                        visible="<%=mode.hasRadio()%>"
     315                      />
     316                    </div>
     317                    <div class="icons">
     318                      <base:icon
     319                        image="systemitem.png"
     320                        tooltip="This item is a system item"
     321                        visible="<%=item.isSystemItem()%>"
     322                      />
     323                    </div>
     324                  </div>
     325                </tbl:header>
    330326                <tbl:cell column="name"><div
    331327                  class="link table-item"
  • trunk/www/admin/reporterclonetemplates/list_templates.jsp

    r7914 r7943  
    119119      filterrows="<%=cc.getFilterRows()%>"
    120120      subclass="fulltable"
     121      stickyheaders="name"
    121122      >
    122123      <tbl:hidden
     
    290291        <tbl:headers>
    291292          <tbl:headerrow>
    292             <tbl:header colspan="3" />
     293            <tbl:header clazz="row-index bg-filled-100" />
    293294            <tbl:columnheaders />
    294295          </tbl:headerrow>
     
    301302            %>
    302303            <tbl:headerrow>
    303               <tbl:header subclass="index" />
    304               <tbl:header
    305                 subclass="check"
    306                 visible="<%=mode.hasCheck()%>"
    307                 ><base:icon
    308                   subclass="link table-check"
    309                   image="check_uncheck.png"
    310                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    311                   visible="<%=lastRow%>"
    312                 /></tbl:header>
    313               <tbl:header
    314                 subclass="check"
    315                 visible="<%=mode.hasRadio()%>"
    316                 />
    317               <tbl:header
    318                 subclass="icons"
    319                 visible="<%=mode.hasIcons()%>"
    320                 >
    321                 <base:icon
    322                   subclass="link table-filter-row-action"
    323                   image="add.png"
    324                   tooltip="Add extra filter row"
    325                   visible="<%=lastRow%>"
    326                 /><base:icon
    327                   subclass="link table-filter-row-action"
    328                   image="remove.png"
    329                   tooltip="Remove this filter row"
    330                   visible="<%=numRows > 1 || numFilters > 0 %>"
    331                   data-remove-row="<%=filterNo%>"
    332                 />
     304              <tbl:header subclass="row-index bg-filled-100">
     305                <div class="index-<%=mode.getName()%>">
     306                  <div class="index"></div>
     307                  <div class="check">
     308                    <base:icon
     309                      subclass="link table-check"
     310                      image="check_uncheck.png"
     311                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     312                      visible="<%=lastRow && mode.hasCheck()%>"
     313                    />
     314                  </div>
     315                  <div class="icons">
     316                    <base:icon
     317                      subclass="link table-filter-row-action"
     318                      image="add.png"
     319                      tooltip="Add extra filter row"
     320                      visible="<%=lastRow%>"
     321                    /><base:icon
     322                      subclass="link table-filter-row-action"
     323                      image="remove.png"
     324                      tooltip="Remove this filter row"
     325                      visible="<%=numRows > 1 || numFilters > 0 %>"
     326                      data-remove-row="<%=filterNo%>"
     327                    />
     328                  </div>
     329                </div>
    333330              </tbl:header>
    334331              <tbl:propertyfilter row="<%=filterNo%>" />
     
    370367              %>
    371368              <tbl:row>
    372                 <tbl:header
    373                   clazz="index"
    374                   ><%=index%></tbl:header>
    375                 <tbl:header
    376                   clazz="check"
    377                   visible="<%=mode.hasCheck()%>"
    378                   ><input
    379                     type="checkbox"
    380                     name="<%=itemId%>"
    381                     value="<%=itemId%>"
    382                     title="<%=name%>"
    383                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    384                   ></tbl:header>
    385                 <tbl:header
    386                   clazz="check"
    387                   visible="<%=mode.hasRadio()%>"
    388                   ><input
    389                     type="radio"
    390                     name="item_id"
    391                     value="<%=itemId%>"
    392                     title="<%=name%>"
    393                     <%=selectedItemId == itemId ? "checked" : ""%>
    394                   ></tbl:header>
    395                 <tbl:header
    396                   clazz="icons"
    397                   visible="<%=mode.hasIcons()%>"
    398                   ><base:icon
    399                     image="deleted.png"
    400                     id="<%="delete."+itemId %>"
    401                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    402                     data-item-id="<%=itemId%>"
    403                     tooltip="This item has been scheduled for deletion"
    404                     visible="<%=item.isRemoved()%>"
    405                   /><base:icon
    406                     image="shared.png"
    407                     id="<%="share."+itemId %>"
    408                     subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
    409                     data-item-id="<%=itemId%>"
    410                     tooltip="This item is shared to other users, groups and/or projects"
    411                     visible="<%=item.isShared()%>"
    412                   />&nbsp;</tbl:header>
     369                <tbl:header clazz="row-index bg-filled-100">
     370                  <div class="index-<%=mode.getName()%>">
     371                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     372                    <div class="check">
     373                      <base:input
     374                        type="checkbox"
     375                        name="<%=itemId%>"
     376                        value="<%=itemId%>"
     377                        title="<%=name%>"
     378                        checked="<%=cc.getSelected().contains(itemId)%>"
     379                        visible="<%=mode.hasCheck()%>"
     380                      />
     381                      <base:input
     382                        type="radio"
     383                        name="item_id"
     384                        value="<%=itemId%>"
     385                        title="<%=name%>"
     386                        checked="<%=selectedItemId == itemId%>"
     387                        visible="<%=mode.hasRadio()%>"
     388                      />
     389                    </div>
     390                    <div class="icons">
     391                      <base:icon
     392                        image="deleted.png"
     393                        id="<%="delete."+itemId %>"
     394                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     395                        data-item-id="<%=itemId%>"
     396                        tooltip="This item has been scheduled for deletion"
     397                        visible="<%=item.isRemoved()%>"
     398                      /><base:icon
     399                        image="shared.png"
     400                        id="<%="share."+itemId %>"
     401                        subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
     402                        data-item-id="<%=itemId%>"
     403                        tooltip="This item is shared to other users, groups and/or projects"
     404                        visible="<%=item.isShared()%>"
     405                      />
     406                    </div>
     407                  </div>
     408                </tbl:header>
    413409                <tbl:cell column="name"><div
    414410                  class="link table-item"
  • trunk/www/admin/reportertypes/list_reportertypes.jsp

    r7914 r7943  
    118118      filterrows="<%=cc.getFilterRows()%>"
    119119      subclass="fulltable"
     120      stickyheaders="name"
    120121      >
    121122      <tbl:hidden
     
    244245        <tbl:headers>
    245246          <tbl:headerrow>
    246             <tbl:header colspan="3" />
     247            <tbl:header clazz="row-index bg-filled-100" />
    247248            <tbl:columnheaders />
    248249          </tbl:headerrow>
     
    255256            %>
    256257            <tbl:headerrow>
    257               <tbl:header subclass="index" />
    258               <tbl:header
    259                 subclass="check"
    260                 visible="<%=mode.hasCheck()%>"
    261                 ><base:icon
    262                   subclass="link table-check"
    263                   image="check_uncheck.png"
    264                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    265                   visible="<%=lastRow%>"
    266                 /></tbl:header>
    267               <tbl:header
    268                 subclass="check"
    269                 visible="<%=mode.hasRadio()%>"
    270                 />
    271               <tbl:header
    272                 subclass="icons"
    273                 visible="<%=mode.hasIcons()%>"
    274                 >
    275                 <base:icon
    276                   subclass="link table-filter-row-action"
    277                   image="add.png"
    278                   tooltip="Add extra filter row"
    279                   visible="<%=lastRow%>"
    280                 /><base:icon
    281                   subclass="link table-filter-row-action"
    282                   image="remove.png"
    283                   tooltip="Remove this filter row"
    284                   visible="<%=numRows > 1 || numFilters > 0 %>"
    285                   data-remove-row="<%=filterNo%>"
    286                 />
     258              <tbl:header subclass="row-index bg-filled-100">
     259                <div class="index-<%=mode.getName()%>">
     260                  <div class="index"></div>
     261                  <div class="check">
     262                    <base:icon
     263                      subclass="link table-check"
     264                      image="check_uncheck.png"
     265                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     266                      visible="<%=lastRow && mode.hasCheck()%>"
     267                    />
     268                  </div>
     269                  <div class="icons">
     270                    <base:icon
     271                      subclass="link table-filter-row-action"
     272                      image="add.png"
     273                      tooltip="Add extra filter row"
     274                      visible="<%=lastRow%>"
     275                    /><base:icon
     276                      subclass="link table-filter-row-action"
     277                      image="remove.png"
     278                      tooltip="Remove this filter row"
     279                      visible="<%=numRows > 1 || numFilters > 0 %>"
     280                      data-remove-row="<%=filterNo%>"
     281                    />
     282                  </div>
     283                </div>
    287284              </tbl:header>
    288285              <tbl:propertyfilter row="<%=filterNo%>" />
     
    320317              %>
    321318              <tbl:row>
    322                 <tbl:header
    323                   clazz="index"
    324                   ><%=index%></tbl:header>
    325                 <tbl:header
    326                   clazz="check"
    327                   visible="<%=mode.hasCheck()%>"
    328                   ><input
    329                     type="checkbox"
    330                     name="<%=itemId%>"
    331                     value="<%=itemId%>"
    332                     title="<%=name%>"
    333                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    334                   ></tbl:header>
    335                 <tbl:header
    336                   clazz="check"
    337                   visible="<%=mode.hasRadio()%>"
    338                   ><input
    339                     type="radio"
    340                     name="item_id"
    341                     value="<%=itemId%>"
    342                     title="<%=name%>"
    343                     <%=selectedItemId == itemId ? "checked" : ""%>
    344                   ></tbl:header>
    345                 <tbl:header
    346                   clazz="icons"
    347                   visible="<%=mode.hasIcons()%>"
    348                   ><base:icon
    349                     image="deleted.png"
    350                     id="<%="delete."+itemId %>"
    351                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    352                     data-item-id="<%=itemId%>"
    353                     tooltip="This item has been scheduled for deletion"
    354                     visible="<%=item.isRemoved()%>"
    355                   />&nbsp;</tbl:header>
     319                <tbl:header clazz="row-index bg-filled-100">
     320                  <div class="index-<%=mode.getName()%>">
     321                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     322                    <div class="check">
     323                      <base:input
     324                        type="checkbox"
     325                        name="<%=itemId%>"
     326                        value="<%=itemId%>"
     327                        title="<%=name%>"
     328                        checked="<%=cc.getSelected().contains(itemId)%>"
     329                        visible="<%=mode.hasCheck()%>"
     330                      />
     331                      <base:input
     332                        type="radio"
     333                        name="item_id"
     334                        value="<%=itemId%>"
     335                        title="<%=name%>"
     336                        checked="<%=selectedItemId == itemId%>"
     337                        visible="<%=mode.hasRadio()%>"
     338                      />
     339                    </div>
     340                    <div class="icons">
     341                      <base:icon
     342                        image="deleted.png"
     343                        id="<%="delete."+itemId %>"
     344                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     345                        data-item-id="<%=itemId%>"
     346                        tooltip="This item has been scheduled for deletion"
     347                        visible="<%=item.isRemoved()%>"
     348                      />
     349                    </div>
     350                  </div>
     351                </tbl:header>
    356352                <tbl:cell column="name"><div
    357353                  class="link table-item"
  • trunk/www/admin/roles/list_roles.jsp

    r7914 r7943  
    128128      filterrows="<%=cc.getFilterRows()%>"
    129129      subclass="fulltable"
     130      stickyheaders="name"
    130131      >
    131132      <tbl:hidden
     
    281282        <tbl:headers>
    282283          <tbl:headerrow>
    283             <tbl:header colspan="3" />
     284            <tbl:header clazz="row-index bg-filled-100" />
    284285            <tbl:columnheaders />
    285286          </tbl:headerrow>
     
    292293            %>
    293294            <tbl:headerrow>
    294               <tbl:header subclass="index" />
    295               <tbl:header
    296                 subclass="check"
    297                 visible="<%=mode.hasCheck()%>"
    298                 ><base:icon
    299                   subclass="link table-check"
    300                   image="check_uncheck.png"
    301                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    302                   visible="<%=lastRow%>"
    303                 /></tbl:header>
    304               <tbl:header
    305                 subclass="check"
    306                 visible="<%=mode.hasRadio()%>"
    307                 />
    308               <tbl:header
    309                 subclass="icons"
    310                 visible="<%=mode.hasIcons()%>"
    311                 >
    312                 <base:icon
    313                   subclass="link table-filter-row-action"
    314                   image="add.png"
    315                   tooltip="Add extra filter row"
    316                   visible="<%=lastRow%>"
    317                 /><base:icon
    318                   subclass="link table-filter-row-action"
    319                   image="remove.png"
    320                   tooltip="Remove this filter row"
    321                   visible="<%=numRows > 1 || numFilters > 0 %>"
    322                   data-remove-row="<%=filterNo%>"
    323                 />
     295              <tbl:header subclass="row-index bg-filled-100">
     296                <div class="index-<%=mode.getName()%>">
     297                  <div class="index"></div>
     298                  <div class="check">
     299                    <base:icon
     300                      subclass="link table-check"
     301                      image="check_uncheck.png"
     302                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     303                      visible="<%=lastRow && mode.hasCheck()%>"
     304                    />
     305                  </div>
     306                  <div class="icons">
     307                    <base:icon
     308                      subclass="link table-filter-row-action"
     309                      image="add.png"
     310                      tooltip="Add extra filter row"
     311                      visible="<%=lastRow%>"
     312                    /><base:icon
     313                      subclass="link table-filter-row-action"
     314                      image="remove.png"
     315                      tooltip="Remove this filter row"
     316                      visible="<%=numRows > 1 || numFilters > 0 %>"
     317                      data-remove-row="<%=filterNo%>"
     318                    />
     319                  </div>
     320                </div>
    324321              </tbl:header>
    325322              <tbl:propertyfilter row="<%=filterNo%>" />
     
    357354              %>
    358355              <tbl:row>
    359                 <tbl:header
    360                   clazz="index"
    361                   ><%=index%></tbl:header>
    362                 <tbl:header
    363                   clazz="check"
    364                   visible="<%=mode.hasCheck()%>"
    365                   ><input
    366                     type="checkbox"
    367                     name="<%=itemId%>"
    368                     value="<%=itemId%>"
    369                     title="<%=name%>"
    370                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    371                   ></tbl:header>
    372                 <tbl:header
    373                   clazz="check"
    374                   visible="<%=mode.hasRadio()%>"
    375                   ><input
    376                     type="radio"
    377                     name="item_id"
    378                     value="<%=itemId%>"
    379                     title="<%=name%>"
    380                     <%=selectedItemId == itemId ? "checked" : ""%>
    381                   ></tbl:header>
    382                 <tbl:header
    383                   clazz="icons"
    384                   visible="<%=mode.hasIcons()%>"
    385                   ><base:icon
    386                     image="deleted.png"
    387                     id="<%="delete."+itemId %>"
    388                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    389                     data-item-id="<%=itemId%>"
    390                     tooltip="This item has been scheduled for deletion"
    391                     visible="<%=item.isRemoved()%>"
    392                   /><base:icon
    393                     image="systemitem.png"
    394                     tooltip="This item is a system item"
    395                     visible="<%=item.isSystemItem()%>"
    396                   />&nbsp;</tbl:header>
     356                <tbl:header clazz="row-index bg-filled-100">
     357                  <div class="index-<%=mode.getName()%>">
     358                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     359                    <div class="check">
     360                      <base:input
     361                        type="checkbox"
     362                        name="<%=itemId%>"
     363                        value="<%=itemId%>"
     364                        title="<%=name%>"
     365                        checked="<%=cc.getSelected().contains(itemId)%>"
     366                        visible="<%=mode.hasCheck()%>"
     367                      />
     368                      <base:input
     369                        type="radio"
     370                        name="item_id"
     371                        value="<%=itemId%>"
     372                        title="<%=name%>"
     373                        checked="<%=selectedItemId == itemId%>"
     374                        visible="<%=mode.hasRadio()%>"
     375                      />
     376                    </div>
     377                    <div class="icons">
     378                      <base:icon
     379                        image="deleted.png"
     380                        id="<%="delete."+itemId %>"
     381                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     382                        data-item-id="<%=itemId%>"
     383                        tooltip="This item has been scheduled for deletion"
     384                        visible="<%=item.isRemoved()%>"
     385                      /><base:icon
     386                        image="systemitem.png"
     387                        tooltip="This item is a system item"
     388                        visible="<%=item.isSystemItem()%>"
     389                      />
     390                    </div>
     391                  </div>
     392                </tbl:header>
    397393                <tbl:cell column="name"><div
    398394                  class="link table-item"
  • trunk/www/admin/services/services.jsp

    r7605 r7943  
    5252      subclass="fulltable topborder"
    5353      columns="all"
     54      stickyheaders="<%=null%>"
    5455      >
    5556      <tbl:columndef
  • trunk/www/admin/software/list_software.jsp

    r7914 r7943  
    139139      filterrows="<%=cc.getFilterRows()%>"
    140140      subclass="fulltable"
     141      stickyheaders="name"
    141142      >
    142143      <tbl:hidden
     
    351352        <tbl:headers>
    352353          <tbl:headerrow>
    353             <tbl:header colspan="3" />
     354            <tbl:header clazz="row-index bg-filled-100" />
    354355            <tbl:columnheaders />
    355356          </tbl:headerrow>
     
    362363            %>
    363364            <tbl:headerrow>
    364               <tbl:header subclass="index" />
    365               <tbl:header
    366                 subclass="check"
    367                 visible="<%=mode.hasCheck()%>"
    368                 ><base:icon
    369                   subclass="link table-check"
    370                   image="check_uncheck.png"
    371                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    372                   visible="<%=lastRow%>"
    373                 /></tbl:header>
    374               <tbl:header
    375                 subclass="check"
    376                 visible="<%=mode.hasRadio()%>"
    377                 />
    378               <tbl:header
    379                 subclass="icons"
    380                 visible="<%=mode.hasIcons()%>"
    381                 >
    382                 <base:icon
    383                   subclass="link table-filter-row-action"
    384                   image="add.png"
    385                   tooltip="Add extra filter row"
    386                   visible="<%=lastRow%>"
    387                 /><base:icon
    388                   subclass="link table-filter-row-action"
    389                   image="remove.png"
    390                   tooltip="Remove this filter row"
    391                   visible="<%=numRows > 1 || numFilters > 0 %>"
    392                   data-remove-row="<%=filterNo%>"
    393                 />
     365              <tbl:header subclass="row-index bg-filled-100">
     366                <div class="index-<%=mode.getName()%>">
     367                  <div class="index"></div>
     368                  <div class="check">
     369                    <base:icon
     370                      subclass="link table-check"
     371                      image="check_uncheck.png"
     372                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     373                      visible="<%=lastRow && mode.hasCheck()%>"
     374                    />
     375                  </div>
     376                  <div class="icons">
     377                    <base:icon
     378                      subclass="link table-filter-row-action"
     379                      image="add.png"
     380                      tooltip="Add extra filter row"
     381                      visible="<%=lastRow%>"
     382                    /><base:icon
     383                      subclass="link table-filter-row-action"
     384                      image="remove.png"
     385                      tooltip="Remove this filter row"
     386                      visible="<%=numRows > 1 || numFilters > 0 %>"
     387                      data-remove-row="<%=filterNo%>"
     388                    />
     389                  </div>
     390                </div>
    394391              </tbl:header>
    395392              <tbl:propertyfilter row="<%=filterNo%>" />
     
    431428              %>
    432429              <tbl:row>
    433                 <tbl:header
    434                   clazz="index"
    435                   ><%=index%></tbl:header>
    436                 <tbl:header
    437                   clazz="check"
    438                   visible="<%=mode.hasCheck()%>"
    439                   ><input
    440                     type="checkbox"
    441                     name="<%=itemId%>"
    442                     value="<%=itemId%>"
    443                     title="<%=name%>"
    444                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    445                   ></tbl:header>
    446                 <tbl:header
    447                   clazz="check"
    448                   visible="<%=mode.hasRadio()%>"
    449                   ><input
    450                     type="radio"
    451                     name="item_id"
    452                     value="<%=itemId%>"
    453                     title="<%=name%>"
    454                     <%=selectedItemId == itemId ? "checked" : ""%>
    455                   ></tbl:header>
    456                 <tbl:header
    457                   clazz="icons"
    458                   visible="<%=mode.hasIcons()%>"
    459                   ><base:icon
    460                     image="deleted.png"
    461                     id="<%="delete."+itemId %>"
    462                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    463                     data-item-id="<%=itemId%>"
    464                     tooltip="This item has been scheduled for deletion"
    465                     visible="<%=item.isRemoved()%>"
    466                   /><base:icon
    467                     image="shared.png"
    468                     id="<%="share."+itemId %>"
    469                     subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
    470                     data-item-id="<%=itemId%>"
    471                     tooltip="This item is shared to other users, groups and/or projects"
    472                     visible="<%=item.isShared()%>"
    473                   />&nbsp;</tbl:header>
     430                <tbl:header clazz="row-index bg-filled-100">
     431                  <div class="index-<%=mode.getName()%>">
     432                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     433                    <div class="check">
     434                      <base:input
     435                        type="checkbox"
     436                        name="<%=itemId%>"
     437                        value="<%=itemId%>"
     438                        title="<%=name%>"
     439                        checked="<%=cc.getSelected().contains(itemId)%>"
     440                        visible="<%=mode.hasCheck()%>"
     441                      />
     442                      <base:input
     443                        type="radio"
     444                        name="item_id"
     445                        value="<%=itemId%>"
     446                        title="<%=name%>"
     447                        checked="<%=selectedItemId == itemId%>"
     448                        visible="<%=mode.hasRadio()%>"
     449                      />
     450                    </div>
     451                    <div class="icons">
     452                      <base:icon
     453                        image="deleted.png"
     454                        id="<%="delete."+itemId %>"
     455                        subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
     456                        data-item-id="<%=itemId%>"
     457                        tooltip="This item has been scheduled for deletion"
     458                        visible="<%=item.isRemoved()%>"
     459                      /><base:icon
     460                        image="shared.png"
     461                        id="<%="share."+itemId %>"
     462                        subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
     463                        data-item-id="<%=itemId%>"
     464                        tooltip="This item is shared to other users, groups and/or projects"
     465                        visible="<%=item.isShared()%>"
     466                      />
     467                    </div>
     468                  </div>
     469                </tbl:header>
    474470                <tbl:cell column="name"><div
    475471                  class="link table-item"
  • trunk/www/admin/users/list_users.jsp

    r7914 r7943  
    127127    <ext:scripts context="<%=jspContext%>" />
    128128    <ext:stylesheets context="<%=jspContext%>" />
     129    <style>
     130    .row-index
     131    {
     132      width: 8.5em !important;
     133    }
     134    .row-index > div
     135    {
     136      grid-template-columns: 1fr 20px 52px !important;
     137    }
     138    </style>
    129139  </base:head>
    130140 
     
    142152      filterrows="<%=cc.getFilterRows()%>"
    143153      subclass="fulltable"
     154      stickyheaders="name"
    144155      >
    145156      <tbl:hidden
     
    457468        <tbl:headers>
    458469          <tbl:headerrow>
    459             <tbl:header colspan="3" />
     470            <tbl:header clazz="row-index bg-filled-100" />
    460471            <tbl:columnheaders />
    461472          </tbl:headerrow>
     
    468479            %>
    469480            <tbl:headerrow>
    470               <tbl:header subclass="index" />
    471               <tbl:header
    472                 subclass="check"
    473                 visible="<%=mode.hasCheck()%>"
    474                 ><base:icon
    475                   subclass="link table-check"
    476                   image="check_uncheck.png"
    477                   tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
    478                   visible="<%=lastRow%>"
    479                 /></tbl:header>
    480               <tbl:header
    481                 subclass="check"
    482                 visible="<%=mode.hasRadio()%>"
    483                 />
    484               <tbl:header
    485                 subclass="icons"
    486                 visible="<%=mode.hasIcons()%>"
    487                 >
    488                 <base:icon
    489                   subclass="link table-filter-row-action"
    490                   image="add.png"
    491                   tooltip="Add extra filter row"
    492                   visible="<%=lastRow%>"
    493                 /><base:icon
    494                   subclass="link table-filter-row-action"
    495                   image="remove.png"
    496                   tooltip="Remove this filter row"
    497                   visible="<%=numRows > 1 || numFilters > 0 %>"
    498                   data-remove-row="<%=filterNo%>"
    499                 />
     481              <tbl:header subclass="row-index bg-filled-100">
     482                <div class="index-<%=mode.getName()%>">
     483                  <div class="index"></div>
     484                  <div class="check">
     485                    <base:icon
     486                      subclass="link table-check"
     487                      image="check_uncheck.png"
     488                      tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)"
     489                      visible="<%=lastRow && mode.hasCheck()%>"
     490                    />
     491                  </div>
     492                  <div class="icons">
     493                    <base:icon
     494                      subclass="link table-filter-row-action"
     495                      image="add.png"
     496                      tooltip="Add extra filter row"
     497                      visible="<%=lastRow%>"
     498                    /><base:icon
     499                      subclass="link table-filter-row-action"
     500                      image="remove.png"
     501                      tooltip="Remove this filter row"
     502                      visible="<%=numRows > 1 || numFilters > 0 %>"
     503                      data-remove-row="<%=filterNo%>"
     504                    />
     505                  </div>
     506                </div>
    500507              </tbl:header>
    501508              <tbl:propertyfilter row="<%=filterNo%>" />
     
    533540              %>
    534541              <tbl:row>
    535                 <tbl:header
    536                   clazz="index"
    537                   ><%=index%></tbl:header>
    538                 <tbl:header
    539                   clazz="check"
    540                   visible="<%=mode.hasCheck()%>"
    541                   ><input
    542                     type="checkbox"
    543                     name="<%=itemId%>"
    544                     value="<%=itemId%>"
    545                     title="<%=name%>"
    546                     <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    547                   ></tbl:header>
    548                 <tbl:header
    549                   clazz="check"
    550                   visible="<%=mode.hasRadio()%>"
    551                   ><input
    552                     type="radio"
    553                     name="item_id"
    554                     value="<%=itemId%>"
    555                     title="<%=name%>"
    556                     <%=selectedItemId == itemId ? "checked" : ""%>
    557                   ></tbl:header>
    558                 <tbl:header
    559                   clazz="icons"
    560                   visible="<%=mode.hasIcons()%>"
    561                   ><base:icon
    562                     image="deleted.png"
    563                     id="<%="delete."+itemId %>"
    564                     subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
    565                     data-item-id="<%=itemId%>"
    566                     tooltip="This item has been scheduled for deletion"
    567                     visible="<%=item.isRemoved()%>"
    568                   /><base:icon
    569                     image="systemitem.png"
    570                     tooltip="This item is a system item"
    571                     visible="<%=item.isSystemItem()%>"
    572                   /><base:icon
    573                     image="login.png"
    574                     id="<%="impersonate."+itemId %>"
    575                     tooltip="Login as this user"
    576                     subclass="auto-init"
    577                     data-auto-init="impersonate"
    578                     data-item-id="<%=itemId %>"
    579                     visible="<%=impersonatePermission%>"
    580                   /><base:icon
    581                     image="copy.png"
    582                     id="<%="clone."+itemId %>"
    583                     tooltip="Create a new user using settings from this user as a template"
    584                     subclass="auto-init"
    585                     data-auto-init="clone"
    586                     data-item-id="<%=itemId %>"
    587                     visible="<%=createPermission%>"
    588                   />&nbsp;</tbl:header>
     542                <tbl:header clazz="row-index bg-filled-100">
     543                  <div class="index-<%=mode.getName()%>">
     544                    <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
     545                    <div class="check">
     546                      <base:input
     547                        type="checkbox"
     548                        name="<%=itemId%>"
     549                        value="<%=itemId%>"
     550                        title="<%=name%>"
     551                        checked="<%=cc.getSelected().contains(itemId)%>"
     552                        visible="<%=mode.hasCheck()%>"
     553                      />
     554                      <base:input
     555                        type="radio"
     556                        name="item_id"
     557                        value="<%=itemId%>"
     558                        title="<%=name%>"
     559                        checked="<%=selectedItemId == itemId%>"
     560                        visible="<%=mode.hasRadio()%>"
     561                      />
     562                    </div>
     563                    <div class="icons">
     564                      <base:icon
     565                        image="deleted.png"
     566