Changeset 6698


Ignore:
Timestamp:
Jan 30, 2015, 10:38:36 AM (7 years ago)
Author:
Nicklas Nordborg
Message:

References #1912: Add more filter rows in list pages

Implemented in list pages on the lower half of 'View' menu (physical bioassays, derived bioassays, experiments, formulas, reporters and reporter lists).

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/core/net/sf/basedb/core/ItemContext.java

    r6697 r6698  
    429429   
    430430    // We need to copy remaining filter to a new collection
    431     Map<String, PropertyFilterPair> tmp = new HashMap<String, PropertyFilterPair>();
    432    
    433     for (PropertyFilterPair pair : propertyFilters.values())
    434     {
    435       PropertyFilter filter = pair.getEffectiveFilter();
    436       int rowIndex = filter.getRowIndex();
    437       if (rowIndex < filterIndex)
    438       {
    439         // Copy to new collection as is
    440         tmp.put(filter.getProperty() + "@" + rowIndex, pair);
    441       }
    442       else if (rowIndex > filterIndex)
    443       {
    444         rowIndex--;
    445         // Decrease row index by 1 and copy to new collection
    446         if (pair.primary != null) pair.primary.setRowIndex(rowIndex);
    447         if (pair.temporary != null) pair.temporary.setRowIndex(rowIndex);
    448         tmp.put(filter.getProperty() + "@" + rowIndex, pair);
    449       }
    450       // skip filters with rowIndex == filterIndex
     431    if (propertyFilters != null && propertyFilters.size() > 0)
     432    {
     433      Map<String, PropertyFilterPair> tmp = new HashMap<String, PropertyFilterPair>();
     434      for (PropertyFilterPair pair : propertyFilters.values())
     435      {
     436        PropertyFilter filter = pair.getEffectiveFilter();
     437        int rowIndex = filter.getRowIndex();
     438        if (rowIndex < filterIndex)
     439        {
     440          // Copy to new collection as is
     441          tmp.put(filter.getProperty() + "@" + rowIndex, pair);
     442        }
     443        else if (rowIndex > filterIndex)
     444        {
     445          rowIndex--;
     446          // Decrease row index by 1 and copy to new collection
     447          if (pair.primary != null) pair.primary.setRowIndex(rowIndex);
     448          if (pair.temporary != null) pair.temporary.setRowIndex(rowIndex);
     449          tmp.put(filter.getProperty() + "@" + rowIndex, pair);
     450        }
     451        // skip filters with rowIndex == filterIndex
     452      }
     453      propertyFilters = tmp;
    451454    }
    452455    if (numFilterRows > 1) numFilterRows--;
    453     propertyFilters = tmp;
    454456    return numFilterRows;
    455457  }
     
    868870      propertyFilters.clear();
    869871    }
     872    numFilterRows = 1;
    870873  }
    871874 
  • trunk/www/views/derivedbioassays/list_bioassays.jsp

    r6695 r6698  
    172172      sc="<%=sc%>"
    173173      item="<%=itemType%>"
     174      filterrows="<%=cc.getFilterRows()%>"
    174175      subclass="fulltable"
    175176      data-inherited-annotations="true"
     
    469470            <tbl:columnheaders />
    470471          </tbl:headerrow>
    471           <tbl:headerrow>
    472             <tbl:header subclass="index" />
    473             <tbl:header
    474               subclass="check"
    475               visible="<%=mode.hasCheck()%>"
    476               ><base:icon
    477                 id="check.uncheck"
    478                 image="check_uncheck.png"
    479                 tooltip="Check/uncheck all"
    480                  
    481               /></tbl:header>
    482             <tbl:header
    483               subclass="check"
    484               visible="<%=mode.hasRadio()%>"
    485               />
    486             <tbl:header
    487               subclass="icons"
    488               visible="<%=mode.hasIcons()%>"
    489               />
    490             <tbl:propertyfilter />
    491           </tbl:headerrow>
     472          <%
     473          int numFilters = cc.getNumPropertyFilters();
     474          int numRows = cc.getFilterRows();
     475          for (int filterNo = 0; filterNo < numRows; filterNo++)
     476          {
     477            boolean lastRow = filterNo == numRows-1;
     478            %>
     479            <tbl:headerrow>
     480              <tbl:header subclass="index" />
     481              <tbl:header
     482                subclass="check"
     483                visible="<%=mode.hasCheck()%>"
     484                ><base:icon
     485                  id="check.uncheck"
     486                  image="check_uncheck.png"
     487                  tooltip="Check/uncheck all"
     488                  visible="<%=lastRow%>"
     489                /></tbl:header>
     490              <tbl:header
     491                subclass="check"
     492                visible="<%=mode.hasRadio()%>"
     493                />
     494              <tbl:header
     495                subclass="icons"
     496                visible="<%=mode.hasIcons()%>"
     497                >
     498                <base:icon
     499                  id="table-add-filter-row"
     500                  image="add.png"
     501                  tooltip="Add extra filter row"
     502                  visible="<%=lastRow%>"
     503                /><base:icon
     504                  id="<%="remove-filter-row-"+filterNo %>"
     505                  subclass="table-remove-filter-row"
     506                  image="remove.png"
     507                  tooltip="Remove this filter row"
     508                  visible="<%=numRows > 1 || numFilters > 0 %>"
     509                  data-filter-index="<%=filterNo%>"
     510                />
     511              </tbl:header>
     512              <tbl:propertyfilter row="<%=filterNo%>" />
     513            </tbl:headerrow>
     514            <%
     515          }
     516          %>
    492517        </tbl:headers>
    493518        <tbl:rows>
  • trunk/www/views/experiments/list_experiments.jsp

    r6604 r6698  
    121121      sc="<%=sc%>"
    122122      item="<%=itemType%>"
     123      filterrows="<%=cc.getFilterRows()%>"
    123124      subclass="fulltable"
    124125      >
     
    413414            <tbl:columnheaders />
    414415          </tbl:headerrow>
    415           <tbl:headerrow>
    416             <tbl:header subclass="index" />
    417             <tbl:header
    418               subclass="check"
    419               visible="<%=mode.hasCheck()%>"
    420               ><base:icon
    421                 id="check.uncheck"
    422                 image="check_uncheck.png"
    423                 tooltip="Check/uncheck all"
    424                  
    425               /></tbl:header>
    426             <tbl:header
    427               subclass="check"
    428               visible="<%=mode.hasRadio()%>"
    429               />
    430             <tbl:header
    431               subclass="icons"
    432               visible="<%=mode.hasIcons()%>"
    433               />
    434             <tbl:propertyfilter />
    435           </tbl:headerrow>
     416          <%
     417          int numFilters = cc.getNumPropertyFilters();
     418          int numRows = cc.getFilterRows();
     419          for (int filterNo = 0; filterNo < numRows; filterNo++)
     420          {
     421            boolean lastRow = filterNo == numRows-1;
     422            %>
     423            <tbl:headerrow>
     424              <tbl:header subclass="index" />
     425              <tbl:header
     426                subclass="check"
     427                visible="<%=mode.hasCheck()%>"
     428                ><base:icon
     429                  id="check.uncheck"
     430                  image="check_uncheck.png"
     431                  tooltip="Check/uncheck all"
     432                  visible="<%=lastRow%>"
     433                /></tbl:header>
     434              <tbl:header
     435                subclass="check"
     436                visible="<%=mode.hasRadio()%>"
     437                />
     438              <tbl:header
     439                subclass="icons"
     440                visible="<%=mode.hasIcons()%>"
     441                >
     442                <base:icon
     443                  id="table-add-filter-row"
     444                  image="add.png"
     445                  tooltip="Add extra filter row"
     446                  visible="<%=lastRow%>"
     447                /><base:icon
     448                  id="<%="remove-filter-row-"+filterNo %>"
     449                  subclass="table-remove-filter-row"
     450                  image="remove.png"
     451                  tooltip="Remove this filter row"
     452                  visible="<%=numRows > 1 || numFilters > 0 %>"
     453                  data-filter-index="<%=filterNo%>"
     454                />
     455              </tbl:header>
     456              <tbl:propertyfilter row="<%=filterNo%>" />
     457            </tbl:headerrow>
     458            <%
     459          }
     460          %>
    436461        </tbl:headers>
    437462        <tbl:rows>
  • trunk/www/views/formulas/list_formulas.jsp

    r6604 r6698  
    153153      sc="<%=sc%>"
    154154      item="<%=itemType%>"
     155      filterrows="<%=cc.getFilterRows()%>"
    155156      subclass="fulltable"
    156157      >
     
    446447            <tbl:columnheaders />
    447448          </tbl:headerrow>
    448           <tbl:headerrow>
    449             <tbl:header subclass="index" />
    450             <tbl:header
    451               subclass="check"
    452               visible="<%=mode.hasCheck()%>"
    453               ><base:icon
    454                 id="check.uncheck"
    455                 image="check_uncheck.png"
    456                 tooltip="Check/uncheck all"
    457                  
    458               /></tbl:header>
    459             <tbl:header
    460               subclass="check"
    461               visible="<%=mode.hasRadio()%>"
    462               />
    463             <tbl:header
    464               subclass="icons"
    465               visible="<%=mode.hasIcons()%>"
    466               />
    467             <tbl:propertyfilter />
    468           </tbl:headerrow>
     449          <%
     450          int numFilters = cc.getNumPropertyFilters();
     451          int numRows = cc.getFilterRows();
     452          for (int filterNo = 0; filterNo < numRows; filterNo++)
     453          {
     454            boolean lastRow = filterNo == numRows-1;
     455            %>
     456            <tbl:headerrow>
     457              <tbl:header subclass="index" />
     458              <tbl:header
     459                subclass="check"
     460                visible="<%=mode.hasCheck()%>"
     461                ><base:icon
     462                  id="check.uncheck"
     463                  image="check_uncheck.png"
     464                  tooltip="Check/uncheck all"
     465                  visible="<%=lastRow%>"
     466                /></tbl:header>
     467              <tbl:header
     468                subclass="check"
     469                visible="<%=mode.hasRadio()%>"
     470                />
     471              <tbl:header
     472                subclass="icons"
     473                visible="<%=mode.hasIcons()%>"
     474                >
     475                <base:icon
     476                  id="table-add-filter-row"
     477                  image="add.png"
     478                  tooltip="Add extra filter row"
     479                  visible="<%=lastRow%>"
     480                /><base:icon
     481                  id="<%="remove-filter-row-"+filterNo %>"
     482                  subclass="table-remove-filter-row"
     483                  image="remove.png"
     484                  tooltip="Remove this filter row"
     485                  visible="<%=numRows > 1 || numFilters > 0 %>"
     486                  data-filter-index="<%=filterNo%>"
     487                />
     488              </tbl:header>
     489              <tbl:propertyfilter row="<%=filterNo%>" />
     490            </tbl:headerrow>
     491            <%
     492          }
     493          %>
    469494        </tbl:headers>
    470495        <tbl:rows>
  • trunk/www/views/physicalbioassays/list_bioassays.jsp

    r6695 r6698  
    168168      sc="<%=sc%>"
    169169      item="<%=itemType%>"
     170      filterrows="<%=cc.getFilterRows()%>"
    170171      subclass="fulltable"
    171172      data-inherited-annotations="true"
     
    450451            <tbl:columnheaders />
    451452          </tbl:headerrow>
    452           <tbl:headerrow>
    453             <tbl:header subclass="index" />
    454             <tbl:header
    455               subclass="check"
    456               visible="<%=mode.hasCheck()%>"
    457               ><base:icon
    458                 id="check.uncheck"
    459                 image="check_uncheck.png"
    460                 tooltip="Check/uncheck all"
    461               /></tbl:header>
    462             <tbl:header
    463               subclass="check"
    464               visible="<%=mode.hasRadio()%>"
    465               />
    466             <tbl:header
    467               subclass="icons"
    468               visible="<%=mode.hasIcons()%>"
    469               />
    470             <tbl:propertyfilter />
    471           </tbl:headerrow>
     453          <%
     454          int numFilters = cc.getNumPropertyFilters();
     455          int numRows = cc.getFilterRows();
     456          for (int filterNo = 0; filterNo < numRows; filterNo++)
     457          {
     458            boolean lastRow = filterNo == numRows-1;
     459            %>
     460            <tbl:headerrow>
     461              <tbl:header subclass="index" />
     462              <tbl:header
     463                subclass="check"
     464                visible="<%=mode.hasCheck()%>"
     465                ><base:icon
     466                  id="check.uncheck"
     467                  image="check_uncheck.png"
     468                  tooltip="Check/uncheck all"
     469                  visible="<%=lastRow%>"
     470                /></tbl:header>
     471              <tbl:header
     472                subclass="check"
     473                visible="<%=mode.hasRadio()%>"
     474                />
     475              <tbl:header
     476                subclass="icons"
     477                visible="<%=mode.hasIcons()%>"
     478                >
     479                <base:icon
     480                  id="table-add-filter-row"
     481                  image="add.png"
     482                  tooltip="Add extra filter row"
     483                  visible="<%=lastRow%>"
     484                /><base:icon
     485                  id="<%="remove-filter-row-"+filterNo %>"
     486                  subclass="table-remove-filter-row"
     487                  image="remove.png"
     488                  tooltip="Remove this filter row"
     489                  visible="<%=numRows > 1 || numFilters > 0 %>"
     490                  data-filter-index="<%=filterNo%>"
     491                />
     492              </tbl:header>
     493              <tbl:propertyfilter row="<%=filterNo%>" />
     494            </tbl:headerrow>
     495            <%
     496          }
     497          %>
    472498        </tbl:headers>
    473499        <tbl:rows>
  • trunk/www/views/rawbioassays/list_rawbioassays.jsp

    r6697 r6698  
    553553          </tbl:headerrow>
    554554          <%
    555           int numFilters = cc.getFilterRows();
    556           for (int filterNo = 0; filterNo < numFilters; filterNo++)
     555          int numFilters = cc.getNumPropertyFilters();
     556          int numRows = cc.getFilterRows();
     557          for (int filterNo = 0; filterNo < numRows; filterNo++)
    557558          {
    558             boolean lastRow = (filterNo == numFilters-1);
     559            boolean lastRow = filterNo == numRows-1;
    559560            %>
    560561            <tbl:headerrow>
     
    581582                  image="add.png"
    582583                  tooltip="Add extra filter row"
    583                   visible="<%=lastRow %>"
    584                 />
    585                 <base:icon
     584                  visible="<%=lastRow%>"
     585                /><base:icon
    586586                  id="<%="remove-filter-row-"+filterNo %>"
    587587                  subclass="table-remove-filter-row"
    588588                  image="remove.png"
    589589                  tooltip="Remove this filter row"
    590                   visible="<%=cc.getNumPropertyFilters() > 0 || numFilters > 1 %>"
     590                  visible="<%=numRows > 1 || numFilters > 0 %>"
    591591                  data-filter-index="<%=filterNo%>"
    592592                />
  • trunk/www/views/rawbioassays/rawdata/list_rawdata.jsp

    r6604 r6698  
    186186      item="<%=itemType%>"
    187187      subcontext="<%=subContext%>"
     188      filterrows="<%=cc.getFilterRows()%>"
    188189      subclass="fulltable"
    189190      >
     
    317318      <tbl:columndef
    318319        id="reporter.name"
    319         property="reporter.name"
     320        property="$r.name"
     321        exportproperty="reporter.name"
    320322        datatype="string"
    321323        title="[Rep] Name"
     
    327329        id="reporter.externalId"
    328330        clazz="uniquecol"
    329         property="reporter.externalId"
     331        property="$r.externalId"
     332        exportproperty="reporter.externalId"
    330333        datatype="string"
    331334        title="[Rep] ID"
     
    336339      <tbl:columndef
    337340        id="reporter.symbol"
    338         property="reporter.symbol"
     341        property="$r.symbol"
     342        exportproperty="reporter.symbol"
    339343        datatype="string"
    340344        title="[Rep] Gene symbol"
     
    345349      <tbl:columndef
    346350        id="reporter.description"
    347         property="reporter.description"
     351        property="$r.description"
     352        exportproperty="reporter.description"
    348353        datatype="string"
    349354        title="[Rep] Description"
     
    354359      <tbl:columndef
    355360        id="reporter.lastUpdate"
    356         property="reporter.lastUpdate"
     361        property="$r.lastUpdate"
     362        exportproperty="reporter.lastUpdate"
    357363        datatype="timestamp"
    358364        title="[Rep] Last update"
     
    373379      <tbl:columndef
    374380        id="reporter.reporterType"
    375         property="reporter.reporterType"
    376         sortproperty="reporter.reporterType.name"
     381        property="$r.reporterType"
     382        sortproperty="$r.reporterType.name"
    377383        exportproperty="reporter.reporterType.name:string"
    378384        datatype="int"
     
    392398          <tbl:columndef
    393399            id="<%="reporter."+name%>"
    394             property="<%="reporter."+name%>"
     400            property="<%="$r."+name%>"
     401            exportproperty="<%="reporter."+name%>"
    395402            datatype="<%=ep.getType().getStringValue()%>"
    396403            title="<%="[Rep] "+HTML.encodeTags(ep.getTitle())%>"
     
    407414        id="feature.position"
    408415        clazz="uniquecol"
    409         property="feature.position"
     416        property="$f.position"
     417        exportproperty="feature.position"
    410418        datatype="int"
    411419        title="[Feat] Position"
     
    417425        id="feature.externalId"
    418426        clazz="uniquecol"
    419         property="feature.externalId"
     427        property="$f.externalId"
     428        exportproperty="feature.externalId"
    420429        datatype="string"
    421430        title="[Feat] Feature ID"
     
    426435      <tbl:columndef
    427436        id="feature.block"
    428         property="feature.arrayDesignBlock.blockNumber"
     437        property="$f.arrayDesignBlock.blockNumber"
     438        exportproperty="feature.arrayDesignBlock.blockNumber"
    429439        datatype="int"
    430440        title="[Feat] Block"
     
    435445      <tbl:columndef
    436446        id="feature.metaGridX"
    437         property="feature.arrayDesignBlock.metaGridX"
     447        property="$f.arrayDesignBlock.metaGridX"
     448        exportproperty="feature.arrayDesignBlock.metaGridx"
    438449        datatype="int"
    439450        title="[Feat] Meta grid X"
     
    444455      <tbl:columndef
    445456        id="feature.metaGridY"
    446         property="feature.arrayDesignBlock.metaGridY"
     457        property="$f.arrayDesignBlock.metaGridY"
     458        exportproperty="feature.arrayDesignBlock.metaGridY"
    447459        datatype="int"
    448460        title="[Feat] Meta grid Y"
     
    453465      <tbl:columndef
    454466        id="feature.row"
    455         property="feature.row"
     467        property="$f.row"
     468        exportproperty="feature.row"
    456469        datatype="int"
    457470        title="[Feat] Row"
     
    462475      <tbl:columndef
    463476        id="feature.column"
    464         property="feature.column"
     477        property="$f.column"
     478        exportproperty="feature.column"
    465479        datatype="int"
    466480        title="[Feat] Column"
     
    471485      <tbl:columndef
    472486        id="feature.blockSizeX"
    473         property="feature.arrayDesignBlock.blockSizeX"
     487        property="$f.arrayDesignBlock.blockSizeX"
     488        exportproperty="feature.arrayDesignBlock.blockSizeX"
    474489        datatype="int"
    475490        title="[Feat] Block size X"
     
    480495      <tbl:columndef
    481496        id="feature.blockSizeY"
    482         property="feature.arrayDesignBlock.blockSizeY"
     497        property="$f.arrayDesignBlock.blockSizeY"
     498        exportproperty="feature.arrayDesignBlock.blockSizeY"
    483499        datatype="int"
    484500        title="[Feat] Block size Y"
     
    489505      <tbl:columndef
    490506        id="feature.originX"
    491         property="feature.arrayDesignBlock.originX"
     507        property="$f.arrayDesignBlock.originX"
     508        exportproperty="feature.arrayDesignBlock.originX"
    492509        datatype="int"
    493510        title="[Feat] Origin X"
     
    498515      <tbl:columndef
    499516        id="feature.originY"
    500         property="feature.arrayDesignBlock.originY"
     517        property="$f.arrayDesignBlock.originY"
     518        exportproperty="feature.arrayDesignBlock.originY"
    501519        datatype="int"
    502520        title="[Feat] Origin Y"
     
    507525      <tbl:columndef
    508526        id="feature.spacingX"
    509         property="feature.arrayDesignBlock.spacingX"
     527        property="$f.arrayDesignBlock.spacingX"
     528        exportproperty="feature.arrayDesignBlock.spacingX"
    510529        datatype="int"
    511530        title="[Feat] Spacing X"
     
    516535      <tbl:columndef
    517536        id="feature.spacingY"
    518         property="feature.arrayDesignBlock.spacingY"
     537        property="$f.arrayDesignBlock.spacingY"
     538        exportproperty="feature.arrayDesignBlock.spacingY"
    519539        datatype="int"
    520540        title="[Feat] Spacing Y"
     
    525545      <tbl:columndef
    526546        id="well.row"
    527         property="feature.well.row"
     547        property="$f.well.row"
     548        exportproperty="feature.well.row"
    528549        datatype="int"
    529550        title="[Well] Row"
     
    536557      <tbl:columndef
    537558        id="well.column"
    538         property="feature.well.column"
     559        property="$f.well.column"
     560        exportproperty="feature.well.column"
    539561        datatype="int"
    540562        title="[Well] Column"
     
    547569      <tbl:columndef
    548570        id="well.plate"
    549         property="feature.well.plate.name"
     571        property="$f.well.plate.name"
     572        exportproperty="feature.well.plate.name"
    550573        datatype="string"
    551574        title="[Well] Plate"
     
    620643            <tbl:columnheaders />
    621644          </tbl:headerrow>
    622           <tbl:headerrow>
    623             <tbl:header subclass="index" />
    624             <tbl:header
    625               subclass="check"
    626               visible="<%=mode.hasCheck()%>"
    627               ><base:icon
    628                 id="check.uncheck"
    629                 image="check_uncheck.png"
    630                 tooltip="Check/uncheck all"
    631                  
    632               /></tbl:header>
    633             <tbl:header
    634               subclass="check"
    635               visible="<%=mode.hasRadio()%>"
    636               />
    637             <tbl:header
    638               subclass="icons"
    639               visible="<%=mode.hasIcons()%>"
    640               />
    641             <tbl:propertyfilter />
    642           </tbl:headerrow>
     645          <%
     646          int numFilters = cc.getNumPropertyFilters();
     647          int numRows = cc.getFilterRows();
     648          for (int filterNo = 0; filterNo < numRows; filterNo++)
     649          {
     650            boolean lastRow = filterNo == numRows-1;
     651            %>
     652            <tbl:headerrow>
     653              <tbl:header subclass="index" />
     654              <tbl:header
     655                subclass="check"
     656                visible="<%=mode.hasCheck()%>"
     657                ><base:icon
     658                  id="check.uncheck"
     659                  image="check_uncheck.png"
     660                  tooltip="Check/uncheck all"
     661                  visible="<%=lastRow%>"
     662                /></tbl:header>
     663              <tbl:header
     664                subclass="check"
     665                visible="<%=mode.hasRadio()%>"
     666                />
     667              <tbl:header
     668                subclass="icons"
     669                visible="<%=mode.hasIcons()%>"
     670                >
     671                <base:icon
     672                  id="table-add-filter-row"
     673                  image="add.png"
     674                  tooltip="Add extra filter row"
     675                  visible="<%=lastRow%>"
     676                /><base:icon
     677                  id="<%="remove-filter-row-"+filterNo %>"
     678                  subclass="table-remove-filter-row"
     679                  image="remove.png"
     680                  tooltip="Remove this filter row"
     681                  visible="<%=numRows > 1 || numFilters > 0 %>"
     682                  data-filter-index="<%=filterNo%>"
     683                />
     684              </tbl:header>
     685              <tbl:propertyfilter row="<%=filterNo%>" />
     686            </tbl:headerrow>
     687            <%
     688          }
     689          %>
    643690        </tbl:headers>
    644691        <tbl:rows>
  • trunk/www/views/reporterlists/list_reporterlists.jsp

    r6604 r6698  
    112112      sc="<%=sc%>"
    113113      item="<%=itemType%>"
     114      filterrows="<%=cc.getFilterRows()%>"
    114115      subclass="fulltable"
    115116      >
     
    299300            <tbl:columnheaders />
    300301          </tbl:headerrow>
    301           <tbl:headerrow>
    302             <tbl:header subclass="index" />
    303             <tbl:header
    304               subclass="check"
    305               visible="<%=mode.hasCheck()%>"
    306               ><base:icon
    307                 id="check.uncheck"
    308                 image="check_uncheck.png"
    309                 tooltip="Check/uncheck all"
    310                  
    311               /></tbl:header>
    312             <tbl:header
    313               subclass="check"
    314               visible="<%=mode.hasRadio()%>"
    315               />
    316             <tbl:header
    317               subclass="icons"
    318               visible="<%=mode.hasIcons()%>"
    319               />
    320             <tbl:propertyfilter />
    321           </tbl:headerrow>
     302          <%
     303          int numFilters = cc.getNumPropertyFilters();
     304          int numRows = cc.getFilterRows();
     305          for (int filterNo = 0; filterNo < numRows; filterNo++)
     306          {
     307            boolean lastRow = filterNo == numRows-1;
     308            %>
     309            <tbl:headerrow>
     310              <tbl:header subclass="index" />
     311              <tbl:header
     312                subclass="check"
     313                visible="<%=mode.hasCheck()%>"
     314                ><base:icon
     315                  id="check.uncheck"
     316                  image="check_uncheck.png"
     317                  tooltip="Check/uncheck all"
     318                  visible="<%=lastRow%>"
     319                /></tbl:header>
     320              <tbl:header
     321                subclass="check"
     322                visible="<%=mode.hasRadio()%>"
     323                />
     324              <tbl:header
     325                subclass="icons"
     326                visible="<%=mode.hasIcons()%>"
     327                >
     328                <base:icon
     329                  id="table-add-filter-row"
     330                  image="add.png"
     331                  tooltip="Add extra filter row"
     332                  visible="<%=lastRow%>"
     333                /><base:icon
     334                  id="<%="remove-filter-row-"+filterNo %>"
     335                  subclass="table-remove-filter-row"
     336                  image="remove.png"
     337                  tooltip="Remove this filter row"
     338                  visible="<%=numRows > 1 || numFilters > 0 %>"
     339                  data-filter-index="<%=filterNo%>"
     340                />
     341              </tbl:header>
     342              <tbl:propertyfilter row="<%=filterNo%>" />
     343            </tbl:headerrow>
     344            <%
     345          }
     346          %>
    322347        </tbl:headers>
    323348        <tbl:rows>
  • trunk/www/views/reporterlists/reporters/list_reporters.jsp

    r6604 r6698  
    144144      sc="<%=sc%>"
    145145      item="<%=itemType%>"
     146      filterrows="<%=cc.getFilterRows()%>"
    146147      subclass="fulltable"
    147148      >
     
    358359            <tbl:columnheaders />
    359360          </tbl:headerrow>
    360           <tbl:headerrow>
    361             <tbl:header subclass="index" />
    362             <tbl:header
    363               subclass="check"
    364               visible="<%=mode.hasCheck()%>"
    365               ><base:icon
    366                 id="check.uncheck"
    367                 image="check_uncheck.png"
    368                 tooltip="Check/uncheck all"
    369                  
    370               /></tbl:header>
    371             <tbl:header
    372               subclass="check"
    373               visible="<%=mode.hasRadio()%>"
    374               />
    375             <tbl:header
    376               subclass="icons"
    377               visible="<%=mode.hasIcons()%>"
    378               />
    379             <tbl:propertyfilter />
    380           </tbl:headerrow>
     361          <%
     362          int numFilters = cc.getNumPropertyFilters();
     363          int numRows = cc.getFilterRows();
     364          for (int filterNo = 0; filterNo < numRows; filterNo++)
     365          {
     366            boolean lastRow = filterNo == numRows-1;
     367            %>
     368            <tbl:headerrow>
     369              <tbl:header subclass="index" />
     370              <tbl:header
     371                subclass="check"
     372                visible="<%=mode.hasCheck()%>"
     373                ><base:icon
     374                  id="check.uncheck"
     375                  image="check_uncheck.png"
     376                  tooltip="Check/uncheck all"
     377                  visible="<%=lastRow%>"
     378                /></tbl:header>
     379              <tbl:header
     380                subclass="check"
     381                visible="<%=mode.hasRadio()%>"
     382                />
     383              <tbl:header
     384                subclass="icons"
     385                visible="<%=mode.hasIcons()%>"
     386                >
     387                <base:icon
     388                  id="table-add-filter-row"
     389                  image="add.png"
     390                  tooltip="Add extra filter row"
     391                  visible="<%=lastRow%>"
     392                /><base:icon
     393                  id="<%="remove-filter-row-"+filterNo %>"
     394                  subclass="table-remove-filter-row"
     395                  image="remove.png"
     396                  tooltip="Remove this filter row"
     397                  visible="<%=numRows > 1 || numFilters > 0 %>"
     398                  data-filter-index="<%=filterNo%>"
     399                />
     400              </tbl:header>
     401              <tbl:propertyfilter row="<%=filterNo%>" />
     402            </tbl:headerrow>
     403            <%
     404          }
     405          %>
    381406        </tbl:headers>
    382407        <tbl:rows>
  • trunk/www/views/reporters/list_reporters.jsp

    r6604 r6698  
    128128      sc="<%=sc%>"
    129129      item="<%=itemType%>"
     130      filterrows="<%=cc.getFilterRows() %>"
    130131      subclass="fulltable"
    131132      >
     
    348349            <tbl:columnheaders />
    349350          </tbl:headerrow>
    350           <tbl:headerrow>
    351             <tbl:header subclass="index" />
    352             <tbl:header
    353               subclass="check"
    354               visible="<%=mode.hasCheck()%>"
    355               ><base:icon
    356                 id="check.uncheck"
    357                 image="check_uncheck.png"
    358                 tooltip="Check/uncheck all"
    359                  
    360               /></tbl:header>
    361             <tbl:header
    362               subclass="check"
    363               visible="<%=mode.hasRadio()%>"
    364               />
    365             <tbl:header
    366               subclass="icons"
    367               visible="<%=mode.hasIcons()%>"
    368               />
    369             <tbl:propertyfilter />
    370           </tbl:headerrow>
     351          <%
     352          int numFilters = cc.getNumPropertyFilters();
     353          int numRows = cc.getFilterRows();
     354          for (int filterNo = 0; filterNo < numRows; filterNo++)
     355          {
     356            boolean lastRow = filterNo == numRows-1;
     357            %>
     358            <tbl:headerrow>
     359              <tbl:header subclass="index" />
     360              <tbl:header
     361                subclass="check"
     362                visible="<%=mode.hasCheck()%>"
     363                ><base:icon
     364                  id="check.uncheck"
     365                  image="check_uncheck.png"
     366                  tooltip="Check/uncheck all"
     367                  visible="<%=lastRow%>"
     368                /></tbl:header>
     369              <tbl:header
     370                subclass="check"
     371                visible="<%=mode.hasRadio()%>"
     372                />
     373              <tbl:header
     374                subclass="icons"
     375                visible="<%=mode.hasIcons()%>"
     376                >
     377                <base:icon
     378                  id="table-add-filter-row"
     379                  image="add.png"
     380                  tooltip="Add extra filter row"
     381                  visible="<%=lastRow%>"
     382                /><base:icon
     383                  id="<%="remove-filter-row-"+filterNo %>"
     384                  subclass="table-remove-filter-row"
     385                  image="remove.png"
     386                  tooltip="Remove this filter row"
     387                  visible="<%=numRows > 1 || numFilters > 0 %>"
     388                  data-filter-index="<%=filterNo%>"
     389                />
     390              </tbl:header>
     391              <tbl:propertyfilter row="<%=filterNo%>" />
     392            </tbl:headerrow>
     393            <%
     394          }
     395          %>
    371396        </tbl:headers>
    372397        <tbl:rows>
Note: See TracChangeset for help on using the changeset viewer.