Changeset 6095
- Timestamp:
- Aug 30, 2012, 1:36:15 PM (11 years ago)
- Location:
- trunk/www/views
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/www/views/derivedbioassays/ajax.jsp
r5750 r6095 31 31 import="net.sf.basedb.core.BioMaterialEventSource" 32 32 import="net.sf.basedb.core.SpecialQuery" 33 import="net.sf.basedb.core.ItemQuery" 34 import="net.sf.basedb.core.Include" 35 import="net.sf.basedb.core.Type" 33 36 import="net.sf.basedb.core.ArrayDesign" 34 37 import="net.sf.basedb.core.PermissionDeniedException" 38 import="net.sf.basedb.core.query.Restrictions" 39 import="net.sf.basedb.core.query.Expressions" 35 40 import="net.sf.basedb.core.query.Hql" 36 41 import="net.sf.basedb.core.query.Orders" 37 42 import="net.sf.basedb.clients.web.Base" 38 43 import="net.sf.basedb.util.Values" 44 import="net.sf.basedb.util.biomaterial.ParentsTransformer" 39 45 import="net.sf.basedb.util.error.ThrowableUtil" 40 46 import="net.sf.basedb.clients.web.WebException" … … 43 49 import="org.json.simple.JSONArray" 44 50 import="java.util.Date" 51 import="java.util.Arrays" 52 import="java.util.List" 53 import="java.util.Set" 54 import="java.util.HashSet" 45 55 %> 46 56 <% … … 121 131 dc.close(); 122 132 } 133 else if ("GetAllExtractIds".equals(cmd)) 134 { 135 dc = sc.newDbControl(); 136 137 Integer[] bioAssayIds = Values.getInt(request.getParameter("bioassay_ids").split(",")); 138 139 // Load all extracts that are directly linked with the given physical bioassays 140 ItemQuery<Extract> query = Extract.getQuery(); 141 query.include(Include.ALL); 142 query.join(Hql.innerJoin("childCreationEvents", "cce")); 143 query.join(Hql.innerJoin("cce", "event", "evt")); 144 query.join(Hql.innerJoin("evt", "physicalBioAssay", "pba")); 145 query.join(Hql.innerJoin("pba", "derivedBioAssays", "dba")); 146 query.restrict(Restrictions.in(Hql.alias("dba"), Expressions.parameter("bioAssays"))); 147 query.setParameter("bioAssays", Arrays.asList(bioAssayIds), Type.INT); 148 List<Extract> primaryExtracts = query.list(dc); 149 150 // Use the ParentsTransformer to load all parent extracts as well 151 Set<Extract> allExtracts = new HashSet<Extract>(); 152 new ParentsTransformer(dc, true, Extract.getQuery()).transform(primaryExtracts, allExtracts); 153 154 JSONArray jsonExtracts = new JSONArray(); 155 for (Extract e : allExtracts) 156 { 157 jsonExtracts.add(e.getId()); 158 } 159 160 json.put("allExtractIds", jsonExtracts); 161 dc.commit(); 162 } 123 163 else 124 164 { -
trunk/www/views/derivedbioassays/edit_bioassay.jsp
r6094 r6095 341 341 342 342 var parents = new Array(); 343 if (frm.physicalBio assays && (!frm.isRoot || frm.isRoot[0].checked))343 if (frm.physicalBioAssays && (!frm.isRoot || frm.isRoot[0].checked)) 344 344 { 345 345 var ids = Link.getListIds(frm.physicalBioAssays, 'P'); … … 469 469 { 470 470 var frm = document.forms['bioAssay']; 471 472 var relatedExtractIds = null; 473 if (frm.physicalBioAssays && (!frm.isRoot || frm.isRoot[0].checked)) 474 { 475 var ids = Link.getListIds(frm.physicalBioAssays, 'P'); 476 if (ids.length > 0) 477 { 478 var request = Ajax.getXmlHttpRequest(); 479 var url = '../physicalbioassays/ajax.jsp?ID=<%=ID%>&cmd=GetAllExtractIds'; 480 url += '&bioassay_ids=' + ids.join(','); 481 request.open("GET", url, false); 482 request.send(null); 483 484 var response = JSON.parse(request.responseText); 485 if (response.status != 'ok') 486 { 487 alert(response.message); 488 return null; 489 } 490 relatedExtractIds = response.allExtractIds; 491 } 492 } 493 else if (frm.parents && (!frm.isRoot || frm.isRoot[1].checked)) 494 { 495 var ids = Link.getListIds(frm.parents, 'D'); 496 if (ids.length > 0) 497 { 498 var request = Ajax.getXmlHttpRequest(); 499 var url = 'ajax.jsp?ID=<%=ID%>&cmd=GetAllExtractIds'; 500 url += '&bioassay_ids=' + ids.join(','); 501 request.open("GET", url, false); 502 request.send(null); 503 504 var response = JSON.parse(request.responseText); 505 if (response.status != 'ok') 506 { 507 alert(response.message); 508 return null; 509 } 510 relatedExtractIds = response.allExtractIds; 511 } 512 } 513 471 514 var url = '../../biomaterials/extracts/index.jsp?ID=<%=ID%>&cmd=UpdateContext&mode=selectone'; 472 515 url += '&callback=setExtractCallback&resetTemporary=1'; 516 if (relatedExtractIds) 517 { 518 url += '&tmpfilter:INT:id='+relatedExtractIds.join('|'); 519 } 473 520 url += ItemSubtype.createRelatedFilter('bioAssay', 'EXTRACT'); 474 521 if (frm.extract_id.length > 1) … … 619 666 Link.addItem(parents, new Item('D', <%=dba.getId()%>, '<%=HTML.javaScriptEncode(dba.getName())%>')); 620 667 <% 668 } 669 if (parents.size() == 1 && currentExtract == null) 670 { 671 try 672 { 673 currentExtract = dba.getExtract(); 674 } 675 catch (PermissionDeniedException ex) 676 {} 621 677 } 622 678 } -
trunk/www/views/physicalbioassays/ajax.jsp
r5685 r6095 26 26 import="net.sf.basedb.core.DbControl" 27 27 import="net.sf.basedb.core.PhysicalBioAssay" 28 import="net.sf.basedb.core.Extract" 28 29 import="net.sf.basedb.core.BioMaterial" 29 30 import="net.sf.basedb.core.BioMaterialEventSource" 30 31 import="net.sf.basedb.core.SpecialQuery" 32 import="net.sf.basedb.core.ItemQuery" 33 import="net.sf.basedb.core.Include" 34 import="net.sf.basedb.core.Type" 31 35 import="net.sf.basedb.core.PermissionDeniedException" 36 import="net.sf.basedb.core.query.Restrictions" 37 import="net.sf.basedb.core.query.Expressions" 32 38 import="net.sf.basedb.core.query.Hql" 33 39 import="net.sf.basedb.core.query.Orders" 34 40 import="net.sf.basedb.clients.web.Base" 35 41 import="net.sf.basedb.util.Values" 42 import="net.sf.basedb.util.biomaterial.ParentsTransformer" 36 43 import="net.sf.basedb.util.error.ThrowableUtil" 37 44 import="net.sf.basedb.clients.web.WebException" … … 40 47 import="org.json.simple.JSONArray" 41 48 import="java.util.Date" 49 import="java.util.Arrays" 50 import="java.util.List" 51 import="java.util.Set" 52 import="java.util.HashSet" 42 53 %> 43 54 <% … … 82 93 dc.commit(); 83 94 } 95 else if ("GetAllExtractIds".equals(cmd)) 96 { 97 dc = sc.newDbControl(); 98 99 Integer[] bioAssayIds = Values.getInt(request.getParameter("bioassay_ids").split(",")); 100 101 // Load all extracts that are directly linked with the given physical bioassays 102 ItemQuery<Extract> query = Extract.getQuery(); 103 query.include(Include.ALL); 104 query.join(Hql.innerJoin("childCreationEvents", "cce")); 105 query.join(Hql.innerJoin("cce", "event", "evt")); 106 query.restrict(Restrictions.in(Hql.property("evt", "physicalBioAssay"), Expressions.parameter("bioAssays"))); 107 query.setParameter("bioAssays", Arrays.asList(bioAssayIds), Type.INT); 108 List<Extract> primaryExtracts = query.list(dc); 109 110 // Use the ParentsTransformer to load all parent extracts as well 111 Set<Extract> allExtracts = new HashSet<Extract>(); 112 new ParentsTransformer(dc, true, Extract.getQuery()).transform(primaryExtracts, allExtracts); 113 114 JSONArray jsonExtracts = new JSONArray(); 115 for (Extract e : allExtracts) 116 { 117 jsonExtracts.add(e.getId()); 118 } 119 120 json.put("allExtractIds", jsonExtracts); 121 dc.commit(); 122 } 84 123 else 85 124 { -
trunk/www/views/rawbioassays/edit_rawbioassay.jsp
r5949 r6095 500 500 var frm = document.forms['rawbioassay']; 501 501 var selectedIndex = frm.bioassay_id.selectedIndex 502 var bioAssayId = Math.abs(frm.bioassay_id[ selectedIndex].value);502 var bioAssayId = Math.abs(frm.bioassay_id[frm.bioassay_id.selectedIndex].value); 503 503 if (bioAssayId > 0) updateArrayDesign(bioAssayId); 504 505 initExtracts();506 504 parentsChanged = true; 507 505 } … … 538 536 { 539 537 var frm = document.forms['rawbioassay']; 540 var url = '../../biomaterials/extracts/index.jsp?ID=<%=ID%>&cmd=UpdateContext&mode=selectone&callback=setExtractCallback'; 538 539 var relatedExtractIds = null; 540 var bioAssayId = Math.abs(frm.bioassay_id[frm.bioassay_id.selectedIndex].value); 541 if (bioAssayId > 0) 542 { 543 var request = Ajax.getXmlHttpRequest(); 544 var url = '../derivedbioassays/ajax.jsp?ID=<%=ID%>&cmd=GetAllExtractIds'; 545 url += '&bioassay_ids=' + bioAssayId; 546 request.open("GET", url, false); 547 request.send(null); 548 549 var response = JSON.parse(request.responseText); 550 if (response.status != 'ok') 551 { 552 alert(response.message); 553 return null; 554 } 555 relatedExtractIds = response.allExtractIds; 556 } 557 558 var url = '../../biomaterials/extracts/index.jsp?ID=<%=ID%>&cmd=UpdateContext&mode=selectone' 559 url += '&callback=setExtractCallback&resetTemporary=1'; 560 if (relatedExtractIds) 561 { 562 url += '&tmpfilter:INT:id='+relatedExtractIds.join('|'); 563 } 541 564 if (frm.extract_id.length > 1) 542 565 { … … 664 687 } 665 688 666 function initExtracts()667 {668 var frm = document.forms['rawbioassay'];669 var bioAssayId = Math.abs(frm.bioassay_id[frm.bioassay_id.selectedIndex].value);670 671 var extracts = null;672 if (bioAssayId > 0)673 {674 extracts = getExtractsFromParentBioassay(bioAssayId);675 }676 677 var currentExtractId = Math.abs(frm.extract_id[frm.extract_id.selectedIndex].value);678 frm.extract_id.length = 0;679 frm.extract_id[frm.extract_id.length] = new Option('- none -', 0);680 var currentWasFound = 0;681 if (extracts != null)682 {683 for (var i = 0; i < extracts.length; i++)684 {685 var position = extracts[i].position;686 var prefix = position ? position + ': ' : '';687 frm.extract_id[frm.extract_id.length] = new Option(prefix + extracts[i].name, extracts[i].id);688 if (currentExtractId == extracts[i].id)689 {690 frm.extract_id.selectedIndex = frm.extract_id.length - 1;691 currentWasFound = 1;692 }693 }694 }695 <%696 if (currentExtract != null)697 {698 %>699 if (currentExtractId && !currentWasFound)700 {701 frm.extract_id[frm.extract_id.length] = new Option('<%=HTML.javaScriptEncode(currentExtract.getName())%>', currentExtractId);702 frm.extract_id.selectedIndex = frm.extract_id.length - 1;703 }704 <%705 }706 %>707 }708 709 function getExtractsFromParentBioassay(bioAssayId)710 {711 if (!bioAssayId) return null;712 var request = Ajax.getXmlHttpRequest();713 var url = '../derivedbioassays/ajax.jsp?ID=<%=ID%>&cmd=GetExtracts';714 url += '&item_id=' + bioAssayId;715 request.open("GET", url, false);716 request.send(null);717 718 var response = JSON.parse(request.responseText);719 if (response.status != 'ok')720 {721 alert(response.message);722 return null;723 }724 return response.sources;725 }726 689 727 690 function init() … … 739 702 initPlatforms(<%=currentPlatform == null ? 0 : currentPlatform.getId()%>, <%=currentVariant == null ? 0 : currentVariant.getId()%>); 740 703 platformOnChange(); 741 <%742 if (currentBioAssay != null)743 {744 %>745 initExtracts();746 <%747 }748 %>749 704 } 750 705
Note: See TracChangeset
for help on using the changeset viewer.