Changeset 2188
- Timestamp:
- Jan 10, 2014, 2:31:14 PM (8 years ago)
- Location:
- extensions/net.sf.basedb.reggie/trunk/resources/libprep
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/net.sf.basedb.reggie/trunk/resources/libprep/create_manual_pool.jsp
r2151 r2188 42 42 var LIMIT_FOR_AUTO_EXCLUDE = 0.25; 43 43 var LIMIT_FOR_EXTRA_LARGE_MIX; 44 var EXTRA_LARGE_MIX_FACTOR; 44 var MAX_TARGET_VOLUME = 10; 45 var MIN_TARGET_VOLUME = 2; 45 46 46 47 function init() … … 52 53 var poolInfo = response.poolInfo; 53 54 TARGET_MOLARITY_IN_POOL = poolInfo.targetMolarity; 54 EXTRA_LARGE_MIX_FACTOR = poolInfo.extraLargeMixFactor;55 55 LIMIT_FOR_EXTRA_LARGE_MIX = poolInfo.limitForExtraLargeMix; 56 56 setInnerHTML('pool-name', response.names[0]); … … 463 463 464 464 targetVolumePerLibIsValid = false; 465 if (targetVolumePerLib < 2 || targetVolumePerLib > 10)466 { 467 setInputStatus('target_volume', 'Must be between 2 and 10µl', 'invalid');465 if (targetVolumePerLib < MIN_TARGET_VOLUME || targetVolumePerLib > MAX_TARGET_VOLUME) 466 { 467 setInputStatus('target_volume', 'Must be between '+MIN_TARGET_VOLUME+' and '+MAX_TARGET_VOLUME+'µl', 'invalid'); 468 468 return; 469 469 } … … 489 489 submitInfo.flagged = []; // Always empty 490 490 var frm = document.forms['reggie']; 491 submitInfo.targetVolumeInPoolPerLib = parseFloat(frm.target_volume.value); 492 submitInfo.targetPoolMolarity = TARGET_MOLARITY_IN_POOL; 493 submitInfo.mixingStrategy = Forms.getCheckedRadio(frm.mixing_strategy).value; 491 var mixingStrategy = Forms.getCheckedRadio(frm.mixing_strategy).value; 494 492 495 493 var pool = {}; … … 497 495 pool.comment = frm.poolComments.value; 498 496 pool.ebVolumeExtra = Math.max(0, poolInfo.ebVolumeExtra); 497 pool.targetVolumeInPoolPerLib = parseFloat(frm.target_volume.value); 498 pool.targetPoolMolarity = TARGET_MOLARITY_IN_POOL; 499 pool.mixingStrategy = mixingStrategy; 499 500 pool.libs = []; 500 501 pool.excluded = []; … … 514 515 tmp.eb = lib.actualEb; 515 516 tmp.mixFactor = lib.mixFactor; 517 if (lib.mixFactor > 1 && lib.targetVolume && mixingStrategy == 'dynamic') 518 { 519 tmp.targetVolume = lib.targetVolume; 520 } 516 521 tmp.comment = lib.comment; 517 522 pool.libs[pool.libs.length] = tmp; … … 601 606 updatePoolData(); 602 607 } 608 609 //Set target volume on the selected wells 610 var lastTargetVolume = null; 611 function setTargetVolume() 612 { 613 var frm = document.forms['reggie']; 614 var checked = []; 615 var targetVolume; 616 for (var libNo = 0; libNo < selectedLibraries.length; libNo++) 617 { 618 var lib = selectedLibraries[libNo]; 619 if (frm['check.'+lib.id].checked && lib.mixFactor > 1) 620 { 621 checked[checked.length] = lib; 622 if (!targetVolume) targetVolume = lib.targetVolume; 623 } 624 } 625 626 if (checked.length == 0) 627 { 628 alert('No libraries with separate mix have been selected'); 629 return; 630 } 631 632 633 targetVolume = parseFloat(prompt('Volume to use in pool ('+LIMIT_FOR_EXTRA_LARGE_MIX+'--'+MAX_TARGET_VOLUME+' µl)', targetVolume || lastTargetVolume)); 634 if (isNaN(targetVolume)) 635 { 636 targetVolume = null; 637 } 638 else if (targetVolume > MAX_TARGET_VOLUME) 639 { 640 targetVolume = MAX_TARGET_VOLUME; 641 } 642 else if (targetVolume < LIMIT_FOR_EXTRA_LARGE_MIX) 643 { 644 targetVolume = LIMIT_FOR_EXTRA_LARGE_MIX 645 } 646 lastTargetVolume = targetVolume; 647 if (targetVolume == '') targetVolume = null; 648 649 var targetVolumePerLib = parseFloat(frm.target_volume.value); 650 var mixingStrategy = Forms.getCheckedRadio(frm.mixing_strategy).value; 651 for (var libNo = 0; libNo < checked.length; libNo++) 652 { 653 var lib = checked[libNo]; 654 lib.targetVolume = targetVolume; 655 PoolMix.calculateEbVolume(lib, TARGET_MOLARITY_IN_POOL, targetVolumePerLib, mixingStrategy); 656 } 657 658 updatePoolData(); 659 } 660 603 661 604 662 </script> … … 823 881 onclick="removeSelected()" 824 882 tooltip="Remove the selected libraries from the pool" 883 /> 884 <tbl:button 885 title="Separate mix volume…" 886 image="<%=home+"/images/specimen.png"%>" 887 onclick="setTargetVolume()" 888 tooltip="Set volume to use in the pool for separately mixed libraries (dynamic mixing only)" 825 889 /> 826 890 <tbl:button -
extensions/net.sf.basedb.reggie/trunk/resources/libprep/pool_protocol2.jsp
r2186 r2188 251 251 { 252 252 var pool = pools[poolNo]; 253 var realPoolNo = schema.getPoolNumForColumn(pool.libraries[0].bioWell.column); 254 255 var wellsInPool = POOL_CURRENT_SCHEMA ? Plate.getPool(realPoolNo) : null; 253 var wellsInPool = null; 254 if (schema) 255 { 256 var realPoolNo = schema.getPoolNumForColumn(pool.libraries[0].bioWell.column); 257 wellsInPool = Plate.getPool(realPoolNo); 258 } 259 256 260 257 261 var html = ''; … … 265 269 266 270 var tr = document.createElement('tr'); 267 if ( POOL_CURRENT_SCHEMA)271 if (schema) 268 272 { 269 273 wellIndex = createMissingRows(tbody, wellsInPool, wellIndex, well, barcodeVariant); … … 307 311 tbody.appendChild(tr); 308 312 } 309 if ( POOL_CURRENT_SCHEMA)313 if (schema) 310 314 { 311 315 createMissingRows(tbody, wellsInPool, wellIndex, null, barcodeVariant);
Note: See TracChangeset
for help on using the changeset viewer.