Changeset 4729


Ignore:
Timestamp:
Jan 14, 2009, 4:22:59 PM (13 years ago)
Author:
Martin Svensson
Message:

References #979 Removed edit and view pages for biowells because they are not needed.
Added support to view/edit a sample's bioplate/biowell

Location:
trunk/www/biomaterials
Files:
2 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/biomaterials/bioplates/list_bioplates.jsp

    r4704 r4729  
    179179    {
    180180      Table.presetOnChange('<%=ID%>', formId, '<%=itemType.name()%>', '<%=(String)cc.getObject("defaultColumns")%>');
    181     }
    182     function mergePlates()
    183     {
    184       Main.openPopup('merge_plates.jsp?ID=<%=ID%>', 'MergePlates', 600, 400);
    185181    }
    186182    </script>
  • trunk/www/biomaterials/bioplates/view_bioplate.jsp

    r4704 r4729  
    164164        title="Edit&hellip;"
    165165        tooltip="<%=writePermission ? "Edit this bioplate" : "You do not have permission to edit this bioplate"%>"
     166      />
     167      <tbl:button
     168        disabled="<%=writePermission ? false : true%>"
     169        image="<%=writePermission ? "" : ""%>"
     170        onclick="bioPlateAct()"
     171        title="Bioplate Act&hellip;"
     172        tooltip="<%=writePermission ? "Edit the biomaterials on this bioplate" :
     173          "You do not have permission to edit the biomaterials on this bioplate"%>"
    166174      />
    167175      <tbl:button
  • trunk/www/biomaterials/bioplates/wells/index.jsp

    r4704 r4729  
    4747<%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
    4848<%!
    49   private static final ItemContext defaultContext = Base.createDefaultContext("row", "row,column,biomaterial.name");
     49  private static final ItemContext defaultContext = Base.createDefaultContext("row", "row,column,bioMaterial.name");
    5050  private static final Item itemType = Item.BIOWELL;
    5151%>
  • trunk/www/biomaterials/bioplates/wells/list_biowells.jsp

    r4728 r4729  
    8989
    9090  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    91   //final ItemQuery<ReporterType> typeQuery = ReporterType.getQuery();
    92   //typeQuery.order(Orders.asc(Hql.property("name")));
    93   //typeQuery.setCacheResult(true);
    94   //List<ExtendedProperty> reporterProperties = ExtendedProperties.getProperties("ReporterData");
    95   //Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
    96   //Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
    9791 
    9892  try
     
    116110    var submitPage = 'index.jsp';
    117111    var formId = 'biowells';
    118     function editItem(itemId)
    119     {
    120       Main.viewOrEditItem('<%=ID%>', '<%=itemType.name()%>', itemId, true);
    121     }
    122     function viewItem(itemId)
    123     {
    124       Main.viewOrEditItem('<%=ID%>', '<%=itemType.name()%>', itemId, false);
    125     }
    126     function itemOnClick(evt, itemId)
    127     {
    128       Table.itemOnClick(formId, evt, itemId, '<%=mode.getName()%>', viewItem, editItem, returnSelected);
     112   
     113    function itemOnClick(itemId)
     114    {
     115      Table.itemOnClick(formId, null, itemId, '<%=mode.getName()%>', null, null, returnSelected);
    129116    }
    130117    function configureColumns()
     
    168155    <t:tabcontrol id="main" active="biowells" switch="switchTab">
    169156    <t:tab id="properties" title="Properties" />
    170     <t:tab id="annotations" title="Annotations" />   
     157    <t:tab id="annotations" title="Annotations" />       
    171158    <t:tab id="biowells" title="Biowells">
    172159   
     
    233220        filterable="true"
    234221        exportable="true"
    235       />
    236       <tbl:columndef
    237         id="parent"
    238         title="Parent"
    239       />
     222      /> 
    240223      <tbl:columndef
    241224        id="bioMaterial.name"
     
    270253        property="@bioMaterial.bioMaterialLists"
    271254        datatype="int"
    272         title="Biomaterial list"
     255        title="[Biomtrl] Biomaterial list"
    273256        filterable="true"
    274257        enumeration="<%=Base.getBioMaterialListsEnum(dc, null, Include.ALL)%>"
     
    358341              BioWell item = biowells.next();
    359342              int itemId = item.getId();
    360               boolean writePermission = true;//bioPlate.hasPermission(Permission.WRITE);
    361               String tooltip = mode.isSelectionMode() ?
    362                   "Select this item" : "View this item" + (writePermission ? " (use CTRL, ALT or SHIFT to edit)" : "");
    363343              index++;
    364344              numListed++;
     
    372352                  visible="<%=mode.hasCheck()%>"
    373353                  ><input
    374                       type="checkbox"
    375                       name="<%=itemId%>"
    376                       value="<%=itemId%>"
    377                       title="TODO"
    378                       <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
    379                     ></tbl:header>
     354                    type="checkbox"
     355                    name="<%=itemId%>"
     356                    value="<%=itemId%>"
     357                    title="[<%=item.getRow()%>,<%=item.getColumn()%>]"
     358                    <%=cc.getSelected().contains(itemId) ? "checked" : ""%>
     359                  ></tbl:header>
    380360                <tbl:header
    381361                  clazz="check"
    382362                  visible="<%=mode.hasRadio()%>"
    383363                  ><input
    384                       type="radio"
    385                       name="item_id"
    386                       value="<%=itemId%>"
    387                       title="TODO"
    388                       <%=selectedItemId == itemId ? "checked" : ""%>
    389                     ></tbl:header>
     364                    type="radio"
     365                    name="item_id"
     366                    value="<%=itemId%>"
     367                    title="[<%=item.getRow()%>,<%=item.getColumn()%>]"
     368                    <%=selectedItemId == itemId ? "checked" : ""%>
     369                  ></tbl:header>
    390370                <tbl:header
    391371                  clazz="icons"
    392372                  visible="<%=mode.hasIcons()%>"
    393373                  >&nbsp;</tbl:header>
     374               
     375                <tbl:cell column="id"><%=item.getId()%></tbl:cell>
     376                <tbl:cell column="row">
     377                  <%
     378                  if (mode.isSelectionMode())
     379                  {
     380                    %>
     381                    <div class="link" onclick="itemOnClick(<%=itemId%>)" title="Select this item">
     382                      <%=item.getRow()%>
     383                    </div>
     384                  <%
     385                  }
     386                  else%><%=item.getRow()%>
     387                </tbl:cell>
     388                <tbl:cell column="column"><%=item.getColumn()%></tbl:cell>
     389                <tbl:cell column="bioMaterial.name">
    394390                <%
    395                 MeasuredBioMaterial bioMaterial = item.getBioMaterial();
    396                 if (bioMaterial == null)
    397                 {
    398                   %>
    399                   <tbl:cell column="bioMaterial.name"><i>- none -</i></tbl:cell>
    400                   <tbl:cell column="bioMaterial.externalId"><i>- none -</i></tbl:cell>
    401                   <%
    402                 }
    403                 else
    404                 {
    405                   %>
    406                   <tbl:cell column="bioMaterial.name"><%=Base.getLink(ID, bioMaterial.getName(), bioMaterial.getType(), bioMaterial.getId(), true)%></tbl:cell>
    407                   <tbl:cell column="bioMaterial.externalId"><%=HTML.encodeTags(bioMaterial.getExternalId())%></tbl:cell>
    408                  
    409                   <tbl:cell column="bioMaterial.description"><%=HTML.encodeTags(bioMaterial.getDescription())%></tbl:cell>                 
    410                   <tbl:cell column="permission"><%=PermissionUtil.getShortPermissions(item)%></tbl:cell>
    411                 <%
    412                 }
     391                  MeasuredBioMaterial bioMaterial = item.getBioMaterial();
     392                  if (bioMaterial == null)
     393                  {
     394                    %>
     395                    <i>- none -</i>
     396                    <%
     397                  }
     398                  else
     399                  {
     400                    %>
     401                    <%=Base.getLink(ID, bioMaterial.getName(), bioMaterial.getType(), bioMaterial.getId(), true)%>
     402                    <%
     403                  }
    413404                %>
    414                 <tbl:cell column="row"><%=item.getRow() %></tbl:cell>
    415                 <tbl:cell column="column"><%=item.getColumn()%></tbl:cell>
    416                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
     405                <base:icon
     406                  image="edit.gif"
     407                  tooltip="Change biomaterial of this biowell"
     408                  onclick="changeBioMaterial()"
     409                />
     410                </tbl:cell>
     411                <tbl:cell column="permission"><%=PermissionUtil.getShortPermissions(item)%></tbl:cell>
    417412              </tbl:row>
    418413              <%
  • trunk/www/biomaterials/samples/edit_sample.jsp

    r4510 r4729  
    3535  import="net.sf.basedb.core.BioSource"
    3636  import="net.sf.basedb.core.BioMaterialEvent"
     37  import="net.sf.basedb.core.BioPlate"
     38  import="net.sf.basedb.core.BioWell"
    3739  import="net.sf.basedb.core.Protocol"
    3840  import="net.sf.basedb.core.ProtocolType"
     
    8284  ItemQuery<Sample> samplesQuery = null;
    8385 
     86  boolean readCurrentBioWell = true;
     87  BioWell currentBioWell = null;
     88 
     89  boolean readCurrentBioPlate = true;
     90  BioPlate currentBioPlate = null;
     91 
    8492  // Load recently used items
    8593  List<Protocol> recentProtocols = (List<Protocol>)cc.getRecent(dc, Item.PROTOCOL);
    8694  List<BioSource> recentBioSources = (List<BioSource>)cc.getRecent(dc, Item.BIOSOURCE);
     95  //List<BioWell> recentBioWells = (List<BioWell>)cc.getRecent(dc, Item.BIOWELL);
     96  List<BioPlate> recentBioPlates = (List<BioPlate>)cc.getRecent(dc, Item.BIOPLATE);
    8797 
    8898  int activeProjectId = sc.getActiveProjectId();
     
    155165    {
    156166      readCurrentBioSource = false;
     167    }
     168   
     169    try
     170    {
     171      currentBioWell = sample.getBioWell();
     172      currentBioPlate = currentBioWell == null ? null : currentBioWell.getPlate();
     173    }
     174    catch (PermissionDeniedException ex)
     175    {
     176      readCurrentBioWell = false;
     177      readCurrentBioPlate = false;
    157178    }
    158179 
     
    188209        return false;
    189210      }
     211      if (Main.trimString(frm.bioplate_id.value) != 0 && Main.trimString(frm.biowell_id.value) == 0)
     212      {
     213        alert("You must choose a biowell from the bioplate");
     214        return false;
     215      }
    190216      return true;
    191217    }
     
    295321      protocolChanged = true;
    296322    }
     323
     324
     325    function selectBioPlateOnClick()
     326    {
     327      var frm = document.forms['sample'];
     328      var url = '../bioplates/index.jsp?ID=<%=ID%>&cmd=UpdateContext&mode=selectone&callback=setBioPlateCallback';
     329      if (frm.bioplate_id.length > 1)
     330      {
     331        var id = Math.abs(parseInt(frm.bioplate_id[1].value));       
     332        url += '&item_id='+id;
     333      }
     334      Main.openPopup(url, 'SelectBioplate', 1000, 700);
     335    }
     336    function setBioPlateCallback(id, name)
     337    {
     338      var frm = document.forms['sample'];
     339      var list = frm.bioplate_id;
     340      if (list.length < 2 || list[1].value == '0') // >
     341      {
     342        Forms.addListOption(list, 1, new Option());
     343      }
     344      list[1].value = id;
     345      list[1].text = name;
     346      list.selectedIndex = 1;
     347      frm.biowell_id.remove(1);
     348      frm.biowell_id.disabled = false;
     349    }
     350    function bioPlateOnChange()
     351    {
     352      var frm = document.forms['sample'];
     353      var list = frm.bioplate_id;
     354      frm.biowell_id.selectedIndex=0;
     355      frm.biowell_id.remove(1);     
     356    }
     357
     358    function initBioWell()
     359    {
     360      var frm = document.forms['sample'];
     361      <%
     362      if (currentBioWell != null)
     363      {
     364        %>
     365        var list = frm.biowell_id;
     366        var wellId = <%=currentBioWell.getId()%>;
     367        Forms.addListOption(list, 1, new Option());
     368        list[1].value = '<%=currentBioWell.getId()%>';
     369        list[1].text = '[<%=currentBioWell.getRow()%>,<%=currentBioWell.getColumn()%>]';
     370        list.selectedIndex = 1;
     371      <%
     372      }
     373      %>
     374    }         
     375    function selectBioWellOnClick()
     376    {
     377      var frm = document.forms['sample'];
     378      var bioplate_list = frm.bioplate_id;     
     379      var bioplateId = Math.abs(parseInt(bioplate_list[bioplate_list.selectedIndex].value))
     380      if (Main.trimString(frm.bioplate_id.value) == 0)
     381      {
     382        alert("You must first select the bioplate where the biowell is located");
     383        return;
     384      }     
     385       
     386      var url = '../bioplates/wells/index.jsp?ID=<%=ID%>&cmd=UpdateContext&mode=selectone&callback=setBioWellCallback';
     387      if (frm.biowell_id.length > 1)
     388      {
     389        var id = Math.abs(parseInt(frm.biowell_id[1].value));       
     390        url += '&item_id='+id;
     391      }
     392      url += '&bioplate_id='+bioplateId * (<%=sample != null%> ? 1 : -1);
     393      url += '&filter:STRING:bioMaterial.name='+escape('=');
     394      url += '&columns=row,column';
     395      Main.openPopup(url, 'SelectBiowell', 600, 700);
     396    }
     397    function setBioWellCallback(id, name)
     398    {
     399      var frm = document.forms['sample'];
     400      var list = frm.biowell_id;
     401      if (list.length < 2 || list[1].value == '0') // >
     402      {
     403        Forms.addListOption(list, 1, new Option());
     404      }
     405      list[1].value = id;
     406      list[1].text = name;
     407      list.selectedIndex = 1;
     408    }
     409    function bioWellOnChange()
     410    {
     411     
     412    }
    297413   
    298414    function pooledOnClick()
     
    405521      }
    406522      %>
     523      initBioWell();
    407524      initSamples();
    408       pooledOnClick();
     525      pooledOnClick();   
    409526    }
    410527    function initSamples()
     
    506623            onselect="selectProtocolOnClick()"
    507624            onchange="protocolOnChange()"
     625          />
     626        </td>
     627      </tr>
     628      <tr>
     629        <td class="prompt">Bioplate</td>
     630        <td>
     631          <base:select
     632            id="bioplate_id"
     633            clazz="selectionlist"
     634            required="false"
     635            current="<%=currentBioPlate%>"
     636            denied="<%=!readCurrentBioPlate%>"
     637            recent="<%=recentBioPlates%>"
     638            newitem="<%=sample == null%>"
     639            onselect="selectBioPlateOnClick()"
     640            onchange="bioPlateOnChange()"
     641          />
     642        </td>
     643      </tr>
     644      <tr>
     645        <td class="prompt">Biowell</td>
     646        <td>
     647          <base:select
     648            id="biowell_id"
     649            clazz="selectionlist"
     650            required="false"           
     651            current="<%=null %>"
     652            denied="<%=!readCurrentBioWell%>"
     653            newitem="<%=sample == null%>"
     654            onselect="selectBioWellOnClick()"
     655            onchange="bioWellOnChange()"
    508656          />
    509657        </td>
  • trunk/www/biomaterials/samples/index.jsp

    r4712 r4729  
    3232  import="net.sf.basedb.core.BioSource"
    3333  import="net.sf.basedb.core.BioMaterialEvent"
     34  import="net.sf.basedb.core.BioWell"
    3435  import="net.sf.basedb.core.Protocol"
    3536  import="net.sf.basedb.core.ItemQuery"
     
    173174      if (pt != null) cc.setRecent(pt, maxRecent);
    174175    }
     176   
     177    int biowellId = Values.getInt(request.getParameter("biowell_id"), -1);
     178    if (biowellId >= 0) // < 0 = denied or unchanged
     179    {
     180      BioWell bw = biowellId == 0 ? null : BioWell.getById(dc, biowellId);
     181      sample.setBioWell(bw);
     182      if (bw != null) cc.setRecent(bw.getPlate(), maxRecent);
     183    }
    175184
    176185    // Parents tab
  • trunk/www/biomaterials/samples/list_samples.jsp

    r4728 r4729  
    3030  import="net.sf.basedb.core.Sample"
    3131  import="net.sf.basedb.core.Extract"
     32  import="net.sf.basedb.core.BioPlate"
    3233  import="net.sf.basedb.core.BioSource"
    3334  import="net.sf.basedb.core.BioMaterialEvent"
     35  import="net.sf.basedb.core.BioWell"
    3436  import="net.sf.basedb.core.AnnotationType"
    3537  import="net.sf.basedb.core.AnnotationSet"
     
    296298        exportable="true"
    297299      />
     300      <tbl:columndef
     301        id="bioPlate"
     302        property="bioWell.bioPlate.name"
     303        sortproperty="bioWell.bioPlate.name"
     304        filterproperty="bioWell.bioPlate.name"
     305        exportproperty="bioWell.bioPlate.name"
     306        datatype="string"
     307        title="Bioplate"
     308        sortable="true"
     309        filterable="true"
     310        exportable="true"
     311      />
     312      <tbl:columndef
     313        id="bioWell"
     314        property="bioWell.row"
     315        sortproperty="bioWell.row"
     316        filterproperty="bioWell.row"
     317        exportproperty="bioWell.row"
     318        datatype="string"
     319        title="Biowell"
     320        sortable="true"
     321        filterable="true"
     322        exportable="true"
     323      />
     324     
    298325      <tbl:columndef
    299326        id="eventDate"
     
    605632                    enablePropertyLink="<%=mode.hasPropertyLink()%>"
    606633                  /></tbl:cell>
     634                <%
     635                BioWell well = item.getBioWell();
     636                if (well != null)
     637                {
     638                  BioPlate plate = well.getPlate();
     639                  %>
     640                  <tbl:cell column="bioPlate">
     641                    <%=Base.getLink(ID, plate.getName(), plate.getType(), plate.getId(), true)%>                   
     642                  </tbl:cell>
     643                  <tbl:cell column="bioWell">
     644                    [<%=well.getRow()%>,<%=well.getColumn()%>]
     645                  </tbl:cell>
     646                  <%
     647                }
     648                else
     649                {
     650                  %>
     651                  <tbl:cell column="bioPlate"><i>- none -</i></tbl:cell>
     652                  <tbl:cell column="bioWell"><i>- none -</i></tbl:cell>
     653                  <%
     654                }
     655                %>
    607656                <tbl:cell column="eventDate" value="<%=creationEvent.getEventDate()%>" />
    608657                <tbl:cell column="entryDate" value="<%=creationEvent.getEntryDate()%>" />
  • trunk/www/biomaterials/samples/view_sample.jsp

    r4611 r4729  
    3535  import="net.sf.basedb.core.BioSource"
    3636  import="net.sf.basedb.core.BioMaterialEvent"
     37  import="net.sf.basedb.core.BioWell"
    3738  import="net.sf.basedb.core.Protocol"
    3839  import="net.sf.basedb.core.User"
     
    309310        <td class="prompt">Owner</td>
    310311        <td><base:propertyvalue item="<%=sample%>" property="owner" /></td>
     312      </tr>
     313      <tr>
     314        <td class="prompt">Bioplate</td>
     315        <td>
     316          <base:propertyvalue item="<%=sample%>" property="bioWell.bioPlate" />
     317          <%
     318          if (sample.getBioWell() != null)
     319          {
     320            BioWell bw = sample.getBioWell();
     321            %>
     322            [<%=bw.getRow()%>,<%=bw.getColumn()%>]
     323          <%
     324          }
     325          %>
     326
     327        </td>
    311328      </tr>
    312329      <tr valign="baseline">
Note: See TracChangeset for help on using the changeset viewer.