Changeset 4989
- Timestamp:
- Sep 28, 2018, 1:44:07 PM (4 years ago)
- Location:
- extensions/net.sf.basedb.reggie/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/net.sf.basedb.reggie/trunk/resources/analysis/hisat_start.js
r4656 r4989 5 5 var subtypeMergedSequences = null; 6 6 var clusterIsValid = false; 7 var manuallySelected = []; 7 8 8 9 // Page initialization … … 13 14 Buttons.addClickHandler('btnSelectMergedSequences', hisat.selectMergedSequences); 14 15 Events.addEventHandler('mergedSequences', 'base-selected', hisat.setMergedSequenceCallback); 16 Events.addEventHandler('mergedSequences', 'change', hisat.mergedSequencesOnChange); 15 17 Events.addEventHandler('step-1', 'wizard-validate', hisat.validateStep1); 16 18 … … 49 51 { 50 52 var ms = mergedSequences[msNo]; 51 var lib = ms.lib; 52 var isYellow = lib.specimen && lib.specimen.YellowLabel != null; 53 var libPlate = lib.bioWell ? lib.bioWell.bioPlate : null; 53 var libPlate = ms.lib.bioWell ? ms.lib.bioWell.bioPlate : null; 54 54 if (firstPlate == null && libPlate != null) firstPlate = libPlate.name; 55 56 var name = (msNo+1) + ': '; 57 if (libPlate) name += libPlate.name + ' - '; 58 name += ms.name; 59 if (ms.AutoProcess == 'ReProcess') 60 { 61 name += ' [R]'; 62 } 63 64 var option = new Option(name, ms.id, false, libPlate != null && libPlate.name==firstPlate); 65 if (isYellow) option.className = 'yellow'; 66 option.mergedSequences = ms; 55 var option = hisat.createListOption(msNo+1, ms, ms.DO_NOT_USE == null && libPlate != null && libPlate.name==firstPlate) 67 56 frm.mergedSequences.options[frm.mergedSequences.length] = option; 68 57 } … … 101 90 } 102 91 92 // Reset list 93 manuallySelected = []; 103 94 var url = '&resetTemporary=1'; 104 95 url += '&tmpfilter:INT:itemSubtype='+subtypeMergedSequences.id; … … 109 100 { 110 101 var ms = event.detail; 111 112 var frm = document.forms['reggie']; 113 var mergedSequences = frm.mergedSequences; 114 for (var i = 0; i < mergedSequences.length; i++) 115 { 116 if (mergedSequences[i].value == ms.id) 117 { 118 mergedSequences[i].selected = true; 119 Wizard.setInputStatus('mergedSequences'); 120 return; 121 } 122 } 123 124 var ms = event.detail; 125 var option = new Option(ms.name, ms.id); 126 option.mergedSequences = ms; 127 option.selected = true; 128 mergedSequences[mergedSequences.length] = option; 129 Wizard.setInputStatus('mergedSequences'); 130 } 131 102 manuallySelected[manuallySelected.length] = ms.id; 103 104 if (ms.remaining == 0) 105 { 106 var url = '../Hisat.servlet?ID='+App.getSessionId(); 107 url += '&cmd=GetMergedSequencesForHisat'; 108 url += '&items='+manuallySelected.join(','); 109 Wizard.showLoadingAnimation('Loading bioassays...'); 110 Wizard.asyncJsonRequest(url, hisat.manuallySelected); 111 } 112 } 113 114 hisat.manuallySelected = function(response) 115 { 116 var mergedSequences = response.mergedSequences; 117 var frm = document.forms['reggie']; 118 119 if (mergedSequences != null && mergedSequences.length > 0) 120 { 121 var offset = frm.mergedSequences.length+1; 122 for (var msNo=0; msNo < mergedSequences.length; msNo++) 123 { 124 var ms = mergedSequences[msNo]; 125 var option = hisat.createListOption(msNo+offset, ms, ms.DO_NOT_USE == null); 126 frm.mergedSequences.options[frm.mergedSequences.length] = option; 127 } 128 } 129 } 130 131 hisat.createListOption = function(index, mergedItem, selected) 132 { 133 var lib = mergedItem.lib; 134 var isYellow = lib.specimen && lib.specimen.YellowLabel != null; 135 var libPlate = lib.bioWell ? lib.bioWell.bioPlate : null; 136 137 var tooltip = null; 138 var name = (index) + ': '; 139 if (libPlate) name += libPlate.name + ' - '; 140 name += mergedItem.name; 141 142 if (mergedItem.DO_NOT_USE) 143 { 144 name += ' [DoNotUse]'; 145 tooltip = 'DoNotUse-'+Strings.encodeTags(mergedItem.DO_NOT_USE+': '+mergedItem.DO_NOT_USE_COMMENT); 146 } 147 else if (mergedItem.AutoProcess == 'ReProcess') 148 { 149 name += ' [R]'; 150 } 151 152 var option = new Option(name, mergedItem.id, false, selected); 153 if (isYellow) option.className = 'yellow'; 154 if (tooltip) option.title = tooltip; 155 option.mergedSequences = mergedItem; 156 return option; 157 } 158 159 hisat.mergedSequencesOnChange = function() 160 { 161 var frm = document.forms['reggie']; 162 163 var numDoNotUse = 0; 164 for (var msNo = 0; msNo < frm.mergedSequences.length; msNo++) 165 { 166 if (frm.mergedSequences[msNo].selected) 167 { 168 var ms = frm.mergedSequences[msNo].mergedSequences; 169 if (ms.DO_NOT_USE) numDoNotUse++; 170 } 171 } 172 173 if (numDoNotUse > 0) 174 { 175 Wizard.setInputStatus('mergedSequences', 'warning', numDoNotUse + ' selected items marked as DoNotUse'); 176 Wizard.showGoNextConfirmation(true, 'Confirm ' + numDoNotUse + ' items marked as DoNotUse'); 177 } 178 else 179 { 180 Wizard.setInputStatus('mergedSequences'); 181 Wizard.hideGoNextConfirmation(); 182 } 183 } 132 184 133 185 // --- Step 2 ----------------------------------- -
extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/servlet/HisatServlet.java
r4686 r4989 82 82 { 83 83 dc = sc.newDbControl(); 84 ItemList hisatPipeline = BiomaterialList.HISAT_PIPELINE.load(dc); 85 86 ItemQuery<DerivedBioAssay> query = (ItemQuery<DerivedBioAssay>)hisatPipeline.getMembers(); 87 query.setIncludes(Reggie.INCLUDE_IN_CURRENT_PROJECT); 88 Subtype.MERGED_SEQUENCES.addFilter(dc, query); 89 // Join LibPlate for sorting 90 query.join(Hql.innerJoin(null, "extract", "lib", true)); 91 query.join(Hql.innerJoin("lib", "bioWell", "bw", true)); 92 query.join(Hql.innerJoin("bw", "bioPlate", "libPlate", true)); 93 query.order(Orders.asc(Hql.property("libPlate", "id"))); 94 query.order(Orders.asc(Hql.property("name"))); 95 query.setMaxResults(250); 96 97 List<MergedSequences> list = MergedSequences.toList(query.list(dc)); 84 85 List<MergedSequences> list = null; 86 String items = Values.getStringOrNull(req.getParameter("items")); 87 if (items == null) 88 { 89 // Load items from the pipeline list 90 ItemList hisatPipeline = BiomaterialList.HISAT_PIPELINE.load(dc); 91 ItemQuery<DerivedBioAssay> query = (ItemQuery<DerivedBioAssay>)hisatPipeline.getMembers(); 92 query.setIncludes(Reggie.INCLUDE_IN_CURRENT_PROJECT); 93 Subtype.MERGED_SEQUENCES.addFilter(dc, query); 94 // Join LibPlate for sorting 95 query.join(Hql.innerJoin(null, "extract", "lib", true)); 96 query.join(Hql.innerJoin("lib", "bioWell", "bw", true)); 97 query.join(Hql.innerJoin("bw", "bioPlate", "libPlate", true)); 98 query.order(Orders.asc(Hql.property("libPlate", "id"))); 99 query.order(Orders.asc(Hql.property("name"))); 100 query.setMaxResults(250); 101 list = MergedSequences.toList(query.list(dc)); 102 } 103 else 104 { 105 Integer[] ids = Values.getInt(items.split(",")); 106 list = new ArrayList<MergedSequences>(); 107 for (Integer id : ids) 108 { 109 list.add(MergedSequences.getById(dc, id)); 110 } 111 } 112 98 113 SnapshotManager manager = new SnapshotManager(); 99 114 JSONArray jsonMergedSequences = new JSONArray(); … … 106 121 ms.setAnnotation("lib", lib.asJSONObject()); 107 122 ms.loadAnnotations(dc, manager, "AutoProcess", Annotationtype.AUTO_PROCESSING, null); 123 ms.loadDoNotUseAnnotations(dc, manager); 108 124 jsonMergedSequences.add(ms.asJSONObject()); 109 125 }
Note: See TracChangeset
for help on using the changeset viewer.