Changeset 7442


Ignore:
Timestamp:
Feb 2, 2018, 9:50:11 AM (4 years ago)
Author:
Nicklas Nordborg
Message:

References #2108: Add support for setting a job on raw bioassays with file-only platform

Changes to the view and list pages for raw bioassays and derived bioassays.

  • Added "Job type" to the list pages since it may make sense to filter on this property.
  • The view pages for raw bioassays and derived bioassay now display job information in the same way. Some things have been re-ordered or added to one or both pages.
Location:
branches/3.11-stable/www/views
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/3.11-stable/www/views/derivedbioassays/list_bioassays.jsp

    r7337 r7442  
    117117 
    118118  final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(itemType);
     119  final ItemQuery<ItemSubtype> jobSubtypesQuery = Base.getSubtypesQuery(Item.JOB);
    119120
    120121  // Query for parent physical bioassays to the current bioassay
     
    262263        property="&rawBioAssays(name)"
    263264        datatype="string"
     265        filterable="true"
     266        exportable="true"
     267      />
     268      <tbl:columndef
     269        id="jobType"
     270        property="job.itemSubtype"
     271        sortproperty="job.itemSubtype.name"
     272        exportproperty="job.itemSubtype.name:string"
     273        datatype="int"
     274        enumeration="<%=Enumeration.fromItems(jobSubtypesQuery.list(dc), "-none-")%>"
     275        title="Job type"
     276        sortable="true"
    264277        filterable="true"
    265278        exportable="true"
     
    790803                    enablePropertyLink="<%=mode.hasPropertyLink()%>"
    791804                  /></tbl:cell>
     805                <tbl:cell column="jobType"><base:propertyvalue
     806                    item="<%=item%>"
     807                    property="job.itemSubtype"
     808                    enableEditLink="<%=mode.hasEditLink()%>"
     809                    enablePropertyLink="<%=mode.hasPropertyLink()%>"
     810                  /></tbl:cell>
    792811                <tbl:cell column="plugin"
    793812                  ><base:propertyvalue
  • branches/3.11-stable/www/views/derivedbioassays/view_bioassay.jsp

    r7265 r7442  
    332332      <td style="width: 50%; height: 100%;" class="leftborder">
    333333        <table class="fullform">
    334         <tbody class="sectionheader">
    335           <tr>
    336             <th colspan="2">Job &amp; plug-in parameters</th>
    337           </tr>
    338         </tbody>
    339334        <tr>
    340335          <th>Job</th>
     
    343338        <tr>
    344339          <th>Plugin</th>
    345           <td><%=Base.getLinkedName(ID, plugin,
    346               !readPlugin, plugin != null && plugin.hasPermission(Permission.WRITE))%></td>
    347         </tr>
    348         <tr>
    349           <th>Plugin configuration</th>
    350           <td><%=Base.getLinkedName(ID, configuration, !readConfiguration,
    351             configuration != null && configuration.hasPermission(Permission.WRITE))%></td>
     340          <td>
     341            <base:propertyvalue item="<%=bioAssay%>" property="job.pluginDefinition" nulltext="<i>External</i>" />
     342            <%=job != null && job.getPluginVersion() != null ? "(" + HTML.encodeTags(job.getPluginVersion()) + ")" : ""%>
     343          </td>
    352344        </tr>
    353345        <%
     346        if (configuration != null)
     347        {
     348          %>
     349          <tr>
     350            <th>Plugin configuration</th>
     351            <td><%=Base.getLinkedName(ID, configuration, !readConfiguration, true)%></td>
     352          </tr>
     353          <%
     354        }
    354355        if (job != null)
    355356        {
    356357          %>
     358          <tr>
     359            <th>Type</th>
     360            <td><base:propertyvalue item="<%=job%>" property="itemSubtype" /></td>
     361          </tr>
    357362          <tr>
    358363            <th>Started</th>
     
    367372            </td>
    368373          </tr>
    369           <tr>
    370             <th>Server</th>
    371             <td>
    372               <%=HTML.encodeTags(job.getServerAndNode())%>
    373             </td>
    374           </tr>
    375           <%
     374          <%
     375          if (job.getServer() != null)
     376          {
     377            %>
     378            <tr>
     379              <th>Server</th>
     380              <td>
     381                <%=HTML.encodeTags(job.getServerAndNode())%>
     382              </td>
     383            </tr>
     384            <%
     385          }
    376386          for (String name : job.getParameterNames())
    377387          {
  • branches/3.11-stable/www/views/rawbioassays/list_rawbioassays.jsp

    r7337 r7442  
    4040  import="net.sf.basedb.core.FileSet"
    4141  import="net.sf.basedb.core.DataFileType"
     42  import="net.sf.basedb.core.ItemSubtype"
    4243  import="net.sf.basedb.core.ItemQuery"
    4344  import="net.sf.basedb.core.Include"
     
    126127  List<DataFileType> fileTypeColumns = new ArrayList<DataFileType>(Base.getDataFileColumns(itemType, null).list(dc));
    127128
     129  final ItemQuery<ItemSubtype> jobSubtypesQuery = Base.getSubtypesQuery(Item.JOB);
     130 
    128131  // Query for experiments relatated to the current raw bioassay
    129132  final ItemQuery<Experiment> experimentQuery = Experiment.getQuery();
     
    345348      />
    346349      <tbl:columndef
     350        id="jobType"
     351        property="job.itemSubtype"
     352        sortproperty="job.itemSubtype.name"
     353        exportproperty="job.itemSubtype.name:string"
     354        datatype="int"
     355        enumeration="<%=Enumeration.fromItems(jobSubtypesQuery.list(dc), "-none-")%>"
     356        title="Job type"
     357        sortable="true"
     358        filterable="true"
     359        exportable="true"
     360      />
     361      <tbl:columndef
    347362        id="plugin"
    348363        property="job.pluginDefinition.name"
     
    352367        filterable="true"
    353368        exportable="true"
    354         tooltip="The plug-in that was used to import raw data"
     369        tooltip="The plug-in that was used to create data for the raw bioassay"
    355370      />
    356371      <tbl:columndef
     
    362377        filterable="true"
    363378        exportable="true"
    364         tooltip="The configuration/file format that was used to import raw data"
     379        tooltip="The configuration/file format that was used to create data for the raw bioassay"
    365380      />
    366381      <tbl:columndef
     
    769784                    enablePropertyLink="<%=mode.hasPropertyLink()%>"
    770785                  /></tbl:cell>
     786                <tbl:cell column="jobType"><base:propertyvalue
     787                    item="<%=item%>"
     788                    property="job.itemSubtype"
     789                    enableEditLink="<%=mode.hasEditLink()%>"
     790                    enablePropertyLink="<%=mode.hasPropertyLink()%>"
     791                  /></tbl:cell>
    771792                <tbl:cell column="plugin">
    772793                  <base:propertyvalue
  • branches/3.11-stable/www/views/rawbioassays/view_rawbioassay.jsp

    r7166 r7442  
    5353  import="net.sf.basedb.core.MultiPermissions"
    5454  import="net.sf.basedb.core.PermissionDeniedException"
     55  import="net.sf.basedb.core.ParameterInfo"
     56  import="net.sf.basedb.core.BasicItem"
     57  import="net.sf.basedb.core.Nameable"
    5558  import="net.sf.basedb.core.PluginDefinition"
     59  import="net.sf.basedb.core.PluginConfiguration"
    5660  import="net.sf.basedb.core.plugin.GuiContext"
    5761  import="net.sf.basedb.core.plugin.Plugin"
     
    113117  Job job = null;
    114118  boolean readJob = true;
     119  PluginDefinition plugin = null;
     120  boolean readPlugin = true;
     121  PluginConfiguration configuration = null;
     122  boolean readConfiguration = true;
     123
    115124  try
    116125  {
     
    120129  {
    121130    readJob = false;
     131    readPlugin = false;
     132    readConfiguration = false;
    122133  }
     134  if (job != null)
     135  {
     136    try
     137    {
     138      plugin = job.getPluginDefinition();
     139    }
     140    catch (PermissionDeniedException ex)
     141    {
     142      readPlugin = false;
     143    }
     144    try
     145    {
     146      configuration = job.getPluginConfiguration();
     147    }
     148    catch (PermissionDeniedException ex)
     149    {
     150      readConfiguration = false;
     151    }
     152  }
     153
     154 
    123155  final Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
    124156  Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
     
    317349      <td style="width: 50%; height: 100%;" class="leftborder">
    318350        <table class="fullform">
    319         <tbody class="sectionheader">
    320           <tr>
    321             <th colspan="4">Raw data import</th>
    322           </tr>
    323         </tbody>
    324351        <tr>
    325352          <th>Job</th>
     
    327354        </tr>
    328355        <tr>
    329           <th>Date / time</th>
    330           <td colspan="3"><%=job == null ? "" : dateTimeFormatter.format(job.getEnded())%></td>
    331         </tr>
    332         <tr>
    333356          <th>Plugin</th>
    334           <td colspan="3"><base:propertyvalue item="<%=rawBioAssay%>" property="job.pluginDefinition" /></td>
    335         </tr>
    336         <tr>
    337           <th>Configuration / file format</th>
    338           <td colspan="3"><base:propertyvalue item="<%=rawBioAssay%>" property="job.pluginConfiguration" /></td>
    339         </tr>
    340         <tbody class="sectionheader">
    341           <tr>
    342             <th colspan="4">Spot images</th>
    343           </tr>
    344         </tbody>
     357          <td colspan="3">
     358            <base:propertyvalue item="<%=rawBioAssay%>" property="job.pluginDefinition" nulltext="<i>External</i>" />
     359            <%=job != null && job.getPluginVersion() != null ? "(" + HTML.encodeTags(job.getPluginVersion()) + ")" : ""%>
     360          </td>
     361        </tr>
    345362        <%
    346         if (!rawBioAssay.hasSpotImages())
     363        if (configuration != null)
    347364        {
    348365          %>
    349           <tr class="dynamic">
    350             <td colspan="4">
    351               <div class="messagecontainer note">
    352               No spot images has been created for this raw bioassay.
    353               </div>
     366          <tr>
     367            <th>Configuration / file format</th>
     368            <td colspan="3"><%=Base.getLinkedName(ID, configuration, !readConfiguration, true)%></td>
     369          </tr>
     370          <%
     371        }
     372        if (job != null)
     373        {
     374          %>
     375          <tr>
     376            <th>Type</th>
     377            <td><base:propertyvalue item="<%=job%>" property="itemSubtype" /></td>
     378          </tr>
     379          <tr>
     380            <th>Started</th>
     381            <td>
     382              <%=dateTimeFormatter.format(job.getStarted())%>
    354383            </td>
    355384          </tr>
    356           <%
     385          <tr>
     386            <th>Ended</th>
     387            <td>
     388              <%=dateTimeFormatter.format(job.getEnded())%>
     389            </td>
     390          </tr>
     391          <%
     392          if (job.getServer() != null)
     393          {
     394            %>
     395            <tr>
     396              <th>Server</th>
     397              <td>
     398                <%=HTML.encodeTags(job.getServerAndNode())%>
     399              </td>
     400            </tr>
     401            <%
     402          }
     403          for (String name : job.getParameterNames())
     404          {
     405            StringBuilder sb = new StringBuilder();
     406            String displayValue = "";
     407            String description = "";
     408            try
     409            {
     410              ParameterInfo pi = job.getParameterInfo(name);
     411              if (pi.getLabel() != null) name = HTML.encodeTags(pi.getLabel());
     412              description = HTML.encodeTags(pi.getDescription());
     413              List<?> values = pi.getValuesOrMask();
     414              int i = 0;
     415              for (Object value : values)
     416              {
     417                if (value != null)
     418                {
     419                  if (i > 0) sb.append(", ");
     420                  i++;
     421                  if (value instanceof BasicItem)
     422                  {
     423                    BasicItem item = (BasicItem)value;
     424                    String itemName = "";
     425                    if (item instanceof File)
     426                    {
     427                      itemName = ((File)item).getPath().toString();
     428                    }
     429                    else if (item instanceof Nameable)
     430                    {
     431                      itemName = ((Nameable)item).getName();
     432                    }
     433                    else
     434                    {
     435                      itemName = item.toString();
     436                    }
     437                    sb.append(Base.getLink(ID, HTML.encodeTags(itemName),
     438                      item.getType(), item.getId(), item.hasPermission(Permission.WRITE)));
     439                  }
     440                  else if (value instanceof Date)
     441                  {
     442                    sb.append(dateFormatter.format((Date)value));
     443                  }
     444                  else
     445                  {
     446                    sb.append(HTML.encodeTags(value.toString()));
     447                  }
     448                }
     449              }
     450              displayValue = sb.toString();
     451            }
     452            catch (Throwable ex)
     453            {
     454              displayValue = "<i>ERROR: "+ex.getMessage()+"</i>";
     455            }
     456            %>
     457            <tr>
     458              <th><span title="<%=description%>"><%=name%></span></th>
     459              <td>
     460                <%=displayValue%>
     461              </td>
     462            </tr>
     463            <%
     464          }
    357465        }
    358         else
     466        if (rawBioAssay.hasSpotImages())
    359467        {
    360468          SpotImages spi = rawBioAssay.getSpotImages();
    361469          %>
     470          <tbody class="sectionheader">
     471            <tr>
     472              <th colspan="4">Spot images</th>
     473            </tr>
     474          </tbody>
    362475          <tr>
    363476            <th>X scale</th>
     
    403516        }
    404517        %>
     518        <tr class="dynamic">
     519          <th></th>
     520          <td colspan="3"></td>
     521        </tr>
    405522        </table>
    406523      </td>
Note: See TracChangeset for help on using the changeset viewer.