Ignore:
Timestamp:
Feb 8, 2008, 9:55:48 AM (16 years ago)
Author:
Nicklas Nordborg
Message:

Fixes #868: Support for chips with multiple arrays

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/views/hybridizations/edit_hybridization.jsp

    r3888 r4131  
    197197        return false;
    198198      }
     199      else if (!Numbers.isInteger(frm.numArrays.value))
     200      {
     201        alert("'" + frm.numArrays.value + "' is not a valid number");
     202        frm.numArrays.focus();
     203        return false;
     204      }
     205      else if (parseInt(frm.numArrays.value) <= 0)
     206      {
     207        alert("Number of arrays must be > 0");
     208        frm.numArrays.focus();
     209        return false;
     210      }
    199211      return true;
    200212    }
     
    369381    {
    370382      var item = Link.getItem('L', labeledExtractId);
    371       if (!item) item = new Item('L', labeledExtractId, name+' [-]', '', '');
     383      if (!item) item = new Item('L', labeledExtractId, '1: '+name+' [-]', '', '');
    372384      Link.addItem(document.forms['hybridization'].labeled_extracts, item);
    373385      parentsChanged = true;
     386      labeledExtractsOnChange();
    374387    }
    375388    function labeledExtractsOnChange()
     
    379392      if (item && item.id)
    380393      {
    381         frm.used_quantity.value = item.value;
     394        var i = item.value.indexOf(':');
     395        frm.used_quantity.value = i > 0 ? item.value.substring(0, i) : item.value;
     396        frm.array_index.value = i > 0 ? item.value.substring(i+1) : '1';
    382397        frm.used_quantity.focus();
    383398      }
     
    385400      {
    386401        frm.used_quantity.value = '';
     402        frm.array_index.value = '1';
    387403      }
    388404    }
     
    391407      var frm = document.forms['hybridization'];
    392408      var usedQuantity = frm.used_quantity.value;
     409      var arrayIndex = frm.array_index.value;
     410      var numArrays = parseInt(frm.numArrays.value);
     411      if (arrayIndex != '' && (arrayIndex > numArrays || arrayIndex <= 0))
     412      {
     413        alert('Array index must be between 1 and ' + numArrays);
     414        return;
     415      }
     416      if (arrayIndex == '') arrayIndex = 1;
    393417      var displayQuantity = usedQuantity == '' ? '-' : usedQuantity+' µg';
    394418      for (var i = 0; i < frm.labeled_extracts.length; i++) // >
     
    397421        if (option.selected && option.item.id)
    398422        {
    399           option.item.value = usedQuantity;
     423          option.item.value = usedQuantity + ':' + arrayIndex;
    400424          var text = option.text.replace(/\[.*\]/, '['+displayQuantity+']');
     425          text = text.replace(/\d*\:/, arrayIndex + ':');
    401426          option.text = text;
    402427        }
    403428      }
     429    }
     430    function arrayIndexOnBlur()
     431    {
     432      usedQuantityOnBlur();
    404433    }
    405434
     
    429458            LabeledExtract e = LabeledExtract.getById(dc, id);
    430459            %>
    431             Link.addItem(labeledExtracts, new Item('L', <%=e.getId()%>, '<%=HTML.javaScriptEncode(e.getName())%> [-]', '', ''));
     460            Link.addItem(labeledExtracts, new Item('L', <%=e.getId()%>, '1: <%=HTML.javaScriptEncode(e.getName())%> [-]', '', ''));
    432461            <%
    433462          }
     
    440469        {
    441470          String usedQuantity = Values.formatNumber(creationEvent.getUsedQuantity(le), -1);
     471          int arrayIndex = creationEvent.getSourceGroup(le);
    442472          %>
    443           Link.addNewItem(labeledExtracts, new Item('L', <%=le.getId()%>, '<%=HTML.javaScriptEncode(le.getName())%> [<%=usedQuantity%> µg]', '<%=usedQuantity%>'));
     473          Link.addNewItem(labeledExtracts, new Item('L', <%=le.getId()%>, '<%=arrayIndex + ": " + HTML.javaScriptEncode(le.getName())%> [<%=usedQuantity%> µg]', '<%=usedQuantity%>:<%=arrayIndex%>'));
    444474          <%
    445475        }
     
    464494          value="<%=name%>"
    465495          size="40" maxlength="<%=Hybridization.MAX_NAME_LENGTH%>"></td>
     496      </tr>
     497      <tr>
     498        <td class="prompt">Arrays</td>
     499        <td><input <%=requiredClazz%> type="text" name="numArrays"
     500          value="<%=hyb == null ? Values.getString(cc.getPropertyValue("numArrays"), "1") : hyb.getNumArrays()%>"
     501          size="12" maxlength="10" onkeypress="return Numbers.integerOnly(event)"></td>
    466502      </tr>
    467503      <tr>
     
    553589   
    554590    <t:tab id="labeledExtracts" title="Labeled extracts" helpid="hybridization.labeledextracts">
     591      <input type="hidden" name="modifiedLabeledExtracts" value="">
     592      <input type="hidden" name="removedLabeledExtracts" value="">
    555593   
    556594      <table class="form" cellspacing=0>
     
    564602              onchange="labeledExtractsOnChange()">
    565603            </select>&nbsp;<br>
    566             Used
    567             <input <%=clazz%> type="text" name="used_quantity" value=""
    568               size="12" maxlength="10" onkeypress="return Numbers.numberOnly(event)"
    569               onkeyup="usedQuantityOnBlur()"
    570             > (µg)
    571             <input type="hidden" name="modifiedLabeledExtracts" value="">
    572             <input type="hidden" name="removedLabeledExtracts" value="">
    573          
    574604          </td>
    575605          <td>
     
    591621        </td>
    592622      </tr>
     623     
     624      <tr>
     625        <td style="text-align: right; padding-right: 5px;">- used quantity</td>
     626        <td>
     627            <input <%=clazz%> type="text" name="used_quantity" value=""
     628              size="12" maxlength="10" onkeypress="return Numbers.numberOnly(event)"
     629              onkeyup="usedQuantityOnBlur()"
     630            > (µg)
     631        </td>
     632      </tr>
     633
     634      <tr>
     635        <td style="text-align: right; padding-right: 5px;">- array index</td>
     636        <td>
     637            <input <%=clazz%> type="text" name="array_index" value=""
     638              size="12" maxlength="10" onkeypress="return Numbers.numberOnly(event)"
     639              onkeyup="arrayIndexOnBlur()"
     640            >
     641        </td>
     642      </tr>
     643
    593644      </table>
    594645    </t:tab>
Note: See TracChangeset for help on using the changeset viewer.