Changeset 6094
- Timestamp:
- Aug 30, 2012, 10:37:24 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/www/views/derivedbioassays/edit_bioassay.jsp
r6091 r6094 357 357 } 358 358 } 359 var extractId = Math.abs(parseInt(frm.extract_id[frm.extract_id.selectedIndex].value)); 360 if (extractId > 0) parents[parents.length] = 'EXTRACT:'+extractId; 359 361 return parents; 360 362 } … … 406 408 { 407 409 parentsChanged = true; 408 initExtracts();409 410 } 410 411 … … 412 413 { 413 414 parentsChanged = true; 414 initExtracts();415 415 } 416 416 … … 465 465 list.selectedIndex = 1; 466 466 } 467 468 function selectExtractOnClick() 469 { 470 var frm = document.forms['bioAssay']; 471 var url = '../../biomaterials/extracts/index.jsp?ID=<%=ID%>&cmd=UpdateContext&mode=selectone'; 472 url += '&callback=setExtractCallback&resetTemporary=1'; 473 url += ItemSubtype.createRelatedFilter('bioAssay', 'EXTRACT'); 474 if (frm.extract_id.length > 1) 475 { 476 var id = Math.abs(parseInt(frm.extract_id[1].value)); 477 url += '&item_id='+id; 478 } 479 Main.openPopup(url, 'SelectExtract', 1050, 700); 480 } 481 482 function setExtractCallback(id, name) 483 { 484 var frm = document.forms['bioAssay']; 485 var list = frm.extract_id; 486 if (list.length < 2 || list[1].value == '0') // > 487 { 488 Forms.addListOption(list, 1, new Option()); 489 } 490 list[1].value = id; 491 list[1].text = name; 492 list.selectedIndex = 1; 493 extractOnChange(); 494 } 495 496 function extractOnChange() 497 { 498 parentsChanged = true; 499 } 467 500 468 501 function addPhysicalBioAssayOnClick() … … 533 566 { 534 567 isRootOnChange(); 535 }536 else537 {538 initExtracts();539 568 } 540 569 } … … 602 631 Main.showHide('physicalBioAssaySection', isRoot); 603 632 Main.showHide('parentBioAssaySection', !isRoot); 604 initExtracts(); 605 } 606 607 function initExtracts() 608 { 609 var frm = document.forms['bioAssay']; 610 var extracts = null; 611 <% 612 if (bioAssay == null) 613 { 614 %> 615 if (frm.isRoot[0].checked) 616 { 617 if (frm.physicalbioassay_id.selectedIndex >= 0) 618 { 619 extracts = getExtractsFromPhysicalBioAssay(frm.physicalbioassay_id[frm.physicalbioassay_id.selectedIndex].value); 620 } 621 } 622 else 623 { 624 if (frm.parent_id.selectedIndex >= 0) 625 { 626 extracts = getExtractsFromParentBioassay(frm.parent_id[frm.parent_id.selectedIndex].value); 627 } 628 } 629 <% 630 } 631 else 632 { 633 if (bioAssay.isRoot()) 634 { 635 %> 636 extracts = getExtractsFromPhysicalBioAssays(); 637 <% 638 } 639 else 640 { 641 %> 642 extracts = getExtractsFromParentBioassays(); 643 <% 644 } 645 } 646 %> 647 648 var currentExtractId = frm.extract_id[frm.extract_id.selectedIndex].value; 649 frm.extract_id.length = 0; 650 frm.extract_id[frm.extract_id.length] = new Option('- none -', 0); 651 var currentWasFound = 0; 652 if (extracts != null) 653 { 654 for (var i = 0; i < extracts.length; i++) 655 { 656 var position = extracts[i].position; 657 var prefix = position ? position + ': ' : ''; 658 frm.extract_id[frm.extract_id.length] = new Option(prefix + extracts[i].name, extracts[i].id); 659 if (currentExtractId == extracts[i].id) 660 { 661 frm.extract_id.selectedIndex = frm.extract_id.length - 1; 662 currentWasFound = 1; 663 } 664 } 665 } 666 <% 667 if (currentExtract != null) 668 { 669 %> 670 if (currentExtractId && !currentWasFound) 671 { 672 frm.extract_id[frm.extract_id.length] = new Option('<%=HTML.javaScriptEncode(currentExtract.getName())%>', currentExtractId); 673 frm.extract_id.selectedIndex = frm.extract_id.length - 1; 674 } 675 <% 676 } 677 %> 678 } 679 680 function getExtractsFromPhysicalBioAssay(physicalBioAssayId) 681 { 682 if (!physicalBioAssayId) return null; 683 var request = Ajax.getXmlHttpRequest(); 684 var url = '../physicalbioassays/ajax.jsp?ID=<%=ID%>&cmd=GetSources'; 685 url += '&item_id=' + physicalBioAssayId; 686 request.open("GET", url, false); 687 request.send(null); 688 689 var response = JSON.parse(request.responseText); 690 if (response.status != 'ok') 691 { 692 alert(response.message); 693 return null; 694 } 695 return response.sources; 696 } 697 698 function getExtractsFromParentBioassay(bioAssayId) 699 { 700 if (!bioAssayId) return null; 701 var request = Ajax.getXmlHttpRequest(); 702 var url = 'ajax.jsp?ID=<%=ID%>&cmd=GetExtracts'; 703 url += '&item_id=' + bioAssayId; 704 request.open("GET", url, false); 705 request.send(null); 706 707 var response = JSON.parse(request.responseText); 708 if (response.status != 'ok') 709 { 710 alert(response.message); 711 return null; 712 } 713 return response.sources; 714 } 633 } 634 715 635 </script> 716 636 </base:head> … … 881 801 <th>Extract</th> 882 802 <td> 883 <select name="extract_id" class="selectionlist"> 884 <option value="">- none - 885 <% 886 if (currentExtract != null) 887 { 888 %> 889 <option value="<%=currentExtract.getId()%>" selected><%=HTML.encodeTags(currentExtract.getName())%> 890 <% 891 } 892 %> 893 </select> 803 <base:select 804 id="extract_id" 805 clazz="selectionlist" 806 required="false" 807 current="<%=currentExtract%>" 808 denied="<%=!readCurrentExtract%>" 809 newitem="<%=bioAssay == null%>" 810 onselect="selectExtractOnClick()" 811 onchange="extractOnChange()" 812 /> 894 813 </td> 895 814 <td></td>
Note: See TracChangeset
for help on using the changeset viewer.