Changeset 7587
- Timestamp:
- Feb 6, 2019, 10:41:56 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/3.14-stable (added) merged: 7571,7576-7582,7584 /tags/3.14.1 (added) merged: 7585
- Property svn:mergeinfo changed
-
trunk/src/core/net/sf/basedb/core/Extract.java
r7381 r7587 361 361 } 362 362 363 363 /** 364 Get a query that returns all derived bioassays created from this 365 extract. 366 @return An {@link ItemQuery} object 367 @since 3.14.1 368 */ 369 public ItemQuery<DerivedBioAssay> getDerivedBioAssays() 370 { 371 ItemQuery<DerivedBioAssay> query = DerivedBioAssay.getQuery(); 372 query.joinPermanent(Hql.innerJoin("extract", Item.EXTRACT.getAlias())); 373 query.restrictPermanent( 374 Restrictions.eq( 375 Hql.alias(Item.EXTRACT.getAlias()), 376 Hql.entity(this) 377 ) 378 ); 379 return query; 380 } 381 382 /** 383 Get a query that returns all raw bioassays created from this 384 extract. 385 @return An {@link ItemQuery} object 386 @since 3.14.1 387 */ 388 public ItemQuery<RawBioAssay> getRawBioAssays() 389 { 390 ItemQuery<RawBioAssay> query = RawBioAssay.getQuery(); 391 query.joinPermanent(Hql.innerJoin("parentExtract", Item.EXTRACT.getAlias())); 392 query.restrictPermanent( 393 Restrictions.eq( 394 Hql.alias(Item.EXTRACT.getAlias()), 395 Hql.entity(this) 396 ) 397 ); 398 return query; 399 } 400 364 401 // ------------------------------------------- 365 402 /* -
trunk/src/core/net/sf/basedb/core/HibernateUtil.java
r7541 r7587 291 291 } 292 292 String dbUrl = Config.getString("db.url", ""); 293 checkJdbcDriver(dbUrl); 293 String dbUser = Config.getString("db.username", ""); 294 String dbPassword = Config.getString("db.password", ""); 295 checkJdbcDriver(dbUrl, dbUser, dbPassword); 294 296 295 297 Properties baseConfig = new Properties(); 296 298 baseConfig.setProperty("hibernate.dialect", dialect); 297 299 baseConfig.setProperty("hibernate.connection.url", dbUrl); 298 baseConfig.setProperty("hibernate.connection.username", Config.getString("db.username", ""));299 baseConfig.setProperty("hibernate.connection.password", Config.getString("db.password", ""));300 baseConfig.setProperty("hibernate.connection.username", dbUser); 301 baseConfig.setProperty("hibernate.connection.password", dbPassword); 300 302 return baseConfig; 301 303 } … … 304 306 Check that a JDBC driver is registered and try to load a driver if not. 305 307 */ 306 private static void checkJdbcDriver(String dbUrl )308 private static void checkJdbcDriver(String dbUrl, String dbUser, String dbPassword) 307 309 { 308 310 Driver driver = null; … … 320 322 ServiceLoader<Driver> s = ServiceLoader.load(Driver.class); 321 323 Iterator<Driver> it = s.iterator(); 322 while ( it.hasNext())324 while (driver == null && it.hasNext()) 323 325 { 324 326 Driver d = it.next(); … … 335 337 "; version=" + d.getMajorVersion() + "." + d.getMinorVersion()+ 336 338 "; acceptsURL="+acceptUrl); 337 if (acceptUrl && driver == null) 338 { 339 driver = d; 340 } 339 if (acceptUrl) driver = d; 341 340 } 342 341 } … … 346 345 throw new ConfigurationException("Could not find a suitable JDBC driver for URL: " + dbUrl); 347 346 } 347 348 Properties props = new Properties(); 349 props.setProperty("user", Config.getString("db.username", "")); 350 props.setProperty("password", Config.getString("db.password", "")); 351 352 try (Connection c = driver.connect(dbUrl, props)) 353 { 354 if (!c.isValid(5)) 355 { 356 throw new ConfigurationException("Could not connect to database: " + dbUrl); 357 } 358 } 359 catch (SQLException ex) 360 { 361 throw new ConfigurationException("Could not connect to database: " + dbUrl + " (" + ex.getMessage() + ")", ex); 362 } 363 348 364 log.info("Accepted JDBC driver " + driver.getClass().getName() + 349 365 "; version=" + driver.getMajorVersion() + "." + driver.getMinorVersion()); -
trunk/www/biomaterials/extracts/extracts.js
r7438 r7587 141 141 Buttons.addClickHandler(element, extracts.newExtract); 142 142 } 143 else if (autoInit == 'new-derived-bioassay') 144 { 145 Buttons.addClickHandler(element, extracts.newDerivedBioAssay); 146 } 143 147 else if (autoInit == 'new-raw-bioassay') 144 148 { … … 155 159 Items.newItem('EXTRACT', '&extract_id='+extractId); 156 160 } 161 162 /* 163 Create a new derived bioassay with the current extract as the parent 164 */ 165 extracts.newDerivedBioAssay = function(event) 166 { 167 var extractId = Data.int(event.currentTarget, 'item-id'); 168 Items.newItem('DERIVEDBIOASSAY', '&extract_id='+extractId); 169 } 170 157 171 158 172 /* -
trunk/www/biomaterials/extracts/index.jsp
r6992 r7587 39 39 import="net.sf.basedb.core.Tag" 40 40 import="net.sf.basedb.core.PhysicalBioAssay" 41 import="net.sf.basedb.core.DerivedBioAssay" 41 42 import="net.sf.basedb.core.RawBioAssay" 42 43 import="net.sf.basedb.core.ItemSubtype" … … 99 100 cc.setObject("export.formatter.&childCreationEvents(event.physicalBioAssay.name)", new NameableFormatter()); 100 101 cc.setObject("export.formatter.&childCreationEvents(event.bioMaterial.name)", new NameableFormatter()); 102 cc.setObject("export.formatter.&derivedBioAssays(name)", new NameableFormatter()); 101 103 cc.setObject("export.formatter.&rawBioAssays(name)", new NameableFormatter()); 102 104 cc.setObject("export.formatter.parentType", new ItemTypeFormatter()); … … 125 127 cc.setObject("export.dataloader.&creationEvent.sources(bioMaterial.name)", new ParentBioMaterialEventSourceLoader()); 126 128 129 // Child derived bioassays 130 final ItemQuery<DerivedBioAssay> derivedBioAssayQuery = DerivedBioAssay.getQuery(); 131 derivedBioAssayQuery.restrict(Restrictions.eq(Hql.property("extract"), Expressions.parameter(restrictionParameter))); 132 derivedBioAssayQuery.order(Orders.asc(Hql.property("name"))); 133 derivedBioAssayQuery.include(cc.getInclude()); 134 cc.setObject("export.dataloader.&derivedBioAssays(name)", new ItemQueryLoader(derivedBioAssayQuery, restrictionParameter)); 135 127 136 // Child raw bioassays 128 137 final ItemQuery<RawBioAssay> rawBioAssayQuery = RawBioAssay.getQuery(); -
trunk/www/biomaterials/extracts/list_extracts.jsp
r7558 r7587 32 32 import="net.sf.basedb.core.PhysicalBioAssay" 33 33 import="net.sf.basedb.core.RawBioAssay" 34 import="net.sf.basedb.core.DerivedBioAssay" 34 35 import="net.sf.basedb.core.BioPlate" 35 36 import="net.sf.basedb.core.BioMaterialEvent" … … 129 130 final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(itemType); 130 131 final boolean createBioAssayPermission = sc.hasPermission(Permission.CREATE, Item.PHYSICALBIOASSAY); 132 final boolean createDerivedBioAssayPermission = sc.hasPermission(Permission.CREATE, Item.DERIVEDBIOASSAY); 131 133 final boolean createRawBioAssayPermission = sc.hasPermission(Permission.CREATE, Item.RAWBIOASSAY); 132 134 133 // Child bioassays135 // Child physical bioassays 134 136 final ItemQuery<PhysicalBioAssay> bioAssayQuery = PhysicalBioAssay.getQuery(); 135 137 bioAssayQuery.join(Hql.innerJoin("creationEvent", "ce")); … … 138 140 bioAssayQuery.order(Orders.asc(Hql.property("name"))); 139 141 bioAssayQuery.include(cc.getInclude()); 142 143 // Child derived bioassays 144 final ItemQuery<DerivedBioAssay> derivedAssayQuery = DerivedBioAssay.getQuery(); 145 derivedAssayQuery.restrict(Restrictions.eq(Hql.property("extract"), Hql.entityParameter("extract", Item.EXTRACT))); 146 derivedAssayQuery.order(Orders.asc(Hql.property("name"))); 147 derivedAssayQuery.include(cc.getInclude()); 140 148 141 149 // Child raw bioassays … … 387 395 title="Physical bioassays" 388 396 property="&childCreationEvents(event.physicalBioAssay.name)" 397 datatype="string" 398 filterable="true" 399 exportable="true" 400 /> 401 <tbl:columndef 402 id="derivedBioAssays" 403 title="Derived bioassays" 404 property="&derivedBioAssays(name)" 389 405 datatype="string" 390 406 filterable="true" … … 925 941 %> 926 942 </tbl:cell> 943 <tbl:cell column="derivedBioAssays"> 944 <% 945 try 946 { 947 derivedAssayQuery.setEntityParameter("extract", item); 948 String separator = ""; 949 for (DerivedBioAssay dba : derivedAssayQuery.list(dc)) 950 { 951 out.write(separator); 952 if (mode.hasPropertyLink()) 953 { 954 out.write(Base.getLinkedName(ID, dba, false, mode.hasEditLink())); 955 } 956 else 957 { 958 out.write(HTML.encodeTags(dba.getName())); 959 } 960 separator = ", "; 961 } 962 } 963 catch (Throwable t) 964 { 965 %> 966 <div class="error"><%=t.getMessage()%></div> 967 <% 968 } 969 %> 970 <base:icon 971 id="<%="newDerivedBioAssay."+itemId%>" 972 image="add.png" 973 subclass="auto-init" 974 data-auto-init="new-derived-bioassay" 975 data-item-id="<%=itemId %>" 976 tooltip="Create new derived bioassay from this extract" 977 visible="<%=mode.hasEditLink() && createDerivedBioAssayPermission && usePermission %>" 978 /> 979 </tbl:cell> 927 980 <tbl:cell column="rawBioAssays"> 928 981 <% -
trunk/www/biomaterials/extracts/view_extract.jsp
r7166 r7587 41 41 import="net.sf.basedb.core.BioMaterialEventSource" 42 42 import="net.sf.basedb.core.BioWell" 43 import="net.sf.basedb.core.RawDataType" 44 import="net.sf.basedb.core.RawBioAssay" 45 import="net.sf.basedb.core.DerivedBioAssay" 43 46 import="net.sf.basedb.core.MultiPermissions" 44 47 import="net.sf.basedb.core.ItemSubtype" … … 440 443 childQuery.order(Orders.asc(Hql.property("bm", "name"))); 441 444 ResultList<BioMaterialEventSource> children = childQuery.list(dc); 445 446 ItemQuery<DerivedBioAssay> dbaQuery = extract.getDerivedBioAssays(); 447 dbaQuery.include(Include.ALL); 448 dbaQuery.order(Orders.asc(Hql.property("name"))); 449 ItemResultList<DerivedBioAssay> derivedBioAssays = dbaQuery.list(dc); 450 451 ItemQuery<RawBioAssay> rbaQuery = extract.getRawBioAssays(); 452 rbaQuery.include(Include.ALL); 453 rbaQuery.order(Orders.asc(Hql.property("name"))); 454 ItemResultList<RawBioAssay> rawBioAssays = rbaQuery.list(dc); 455 456 int numChildren = children.size() + derivedBioAssays.size() + rawBioAssays.size(); 442 457 %> 443 458 <base:section 444 459 id="childSection" 445 title="<%="Child items (" + children.size()+ ")"%>"460 title="<%="Child items (" + numChildren + ")"%>" 446 461 context="<%=cc%>" 447 462 > 448 463 <% 449 if ( children.size()== 0)464 if (numChildren == 0) 450 465 { 451 466 %> … … 537 552 <% 538 553 } 539 %> 554 for (DerivedBioAssay dba : derivedBioAssays) 555 { 556 ItemSubtype subtype = null; 557 try 558 { 559 subtype = dba.getItemSubtype(); 560 } 561 catch (PermissionDeniedException ex) 562 {} 563 %> 564 <tbl:row> 565 <tbl:cell column="name"><base:icon 566 image="deleted.png" 567 tooltip="This item has been scheduled for deletion" 568 visible="<%=dba.isRemoved()%>" 569 /><%=Base.getLinkedName(ID, dba, false, true)%></tbl:cell> 570 <tbl:cell column="type"> 571 <% 572 if (subtype != null) 573 { 574 %> 575 <%=Base.getLinkedName(ID, subtype, false, true)%> <span class="itemsubtype">(<%=dba.getType() %>)</span> 576 <% 577 } 578 else 579 { 580 %> 581 <%=dba.getType()%> 582 <% 583 } 584 %> 585 </tbl:cell> 586 <tbl:cell column="quantity"></tbl:cell> 587 <tbl:cell column="description"><%=HTML.encodeTags(dba.getDescription())%></tbl:cell> 588 </tbl:row> 589 <% 590 } 591 for (RawBioAssay rba : rawBioAssays) 592 { 593 RawDataType rawtype = null; 594 try 595 { 596 rawtype = rba.getRawDataType(); 597 } 598 catch (PermissionDeniedException ex) 599 {} 600 %> 601 <tbl:row> 602 <tbl:cell column="name"><base:icon 603 image="deleted.png" 604 tooltip="This item has been scheduled for deletion" 605 visible="<%=rba.isRemoved()%>" 606 /><%=Base.getLinkedName(ID, rba, false, true)%></tbl:cell> 607 <tbl:cell column="type"> 608 <%=rawtype.getName()%> <span class="itemsubtype">(<%=rba.getType() %>)</span> 609 </tbl:cell> 610 <tbl:cell column="quantity"></tbl:cell> 611 <tbl:cell column="description"><%=HTML.encodeTags(rba.getDescription())%></tbl:cell> 612 </tbl:row> 613 <% 614 } 615 %> 540 616 </tbl:rows> 541 617 </tbl:data> -
trunk/www/common/annotations/annotate.jsp
r7334 r7587 39 39 import="net.sf.basedb.core.BioPlateType" 40 40 import="net.sf.basedb.core.BioPlate" 41 import="net.sf.basedb.core.RawBioAssay" 42 import="net.sf.basedb.core.RawDataType" 43 import="net.sf.basedb.core.RawDataTypes" 41 44 import="net.sf.basedb.core.AnnotationSet" 42 45 import="net.sf.basedb.core.Annotation" … … 157 160 if (subtype == null) selectedCategoryName = bpt.getName(); 158 161 } 162 else if (item instanceof RawBioAssay) 163 { 164 RawDataType rdt = ((RawBioAssay)item).getRawDataType(); 165 selectedCategoryName = rdt.getName(); 166 } 159 167 if (subtype != null) selectedCategoryName = subtype.getName(); 160 168 } … … 191 199 final Set<AnnotationTypeCategory> allCategories = 192 200 new TreeSet<AnnotationTypeCategory>(new NameableComparator(false)); 201 202 // Load all ItemSubtypes that are NOT related to the current item type 203 // We need this to get rid of annotation type categories that are not intended 204 // for the current item type 205 Set<String> excludedCategories = new HashSet<>(); 206 ItemQuery<ItemSubtype> query = ItemSubtype.getQuery(null); 207 query.restrict(Restrictions.neq(Hql.property("itemType"), Expressions.integer(itemType.getValue()))); 208 for (ItemSubtype s : query.list(dc)) 209 { 210 if (Annotatable.class.isAssignableFrom(s.getMainItemType().getItemClass())) 211 { 212 excludedCategories.add(s.getName()); 213 } 214 } 215 // Raw data types are also used as subtypes 216 if (itemType != Item.RAWBIOASSAY) 217 { 218 for (RawDataType rdt : RawDataTypes.getRawDataTypes()) 219 { 220 excludedCategories.add(rdt.getName()); 221 } 222 } 193 223 194 224 // Load existing annotations … … 553 583 { 554 584 boolean selected = category.getName().equals(selectedCategoryName); 585 if (!selected && excludedCategories.contains(category.getName())) continue; 555 586 %> 556 587 <option value="<%=category.getId()%>" -
trunk/www/common/annotations/list_annotations.jsp
r7334 r7587 23 23 @version 2.0 24 24 --%> 25 <%@page import="java.util.Collections"%>26 <%@page import="net.sf.basedb.util.units.UnitConverter"%>27 25 <%@ page pageEncoding="UTF-8" session="false" 28 26 import="net.sf.basedb.core.SessionControl" … … 42 40 import="net.sf.basedb.core.BioPlate" 43 41 import="net.sf.basedb.core.BioPlateType" 42 import="net.sf.basedb.core.RawDataType" 43 import="net.sf.basedb.core.RawBioAssay" 44 44 import="net.sf.basedb.core.ItemQuery" 45 45 import="net.sf.basedb.core.ItemResultList" … … 56 56 import="net.sf.basedb.clients.web.util.HTML" 57 57 import="net.sf.basedb.util.NameableComparator" 58 import="net.sf.basedb.util.units.UnitConverter" 58 59 import="net.sf.basedb.util.formatter.Formatter" 59 60 import="net.sf.basedb.util.formatter.PrefixSuffixFormatter" 60 61 import="net.sf.basedb.clients.web.formatter.FormatterFactory" 61 62 import="net.sf.basedb.util.Values" 63 import="java.util.Collections" 62 64 import="java.util.ArrayList" 63 65 import="java.util.List" … … 165 167 subtype = bpt.getItemSubtype(); 166 168 if (subtype == null) selectedCategoryName = bpt.getName(); 169 } 170 else if (item instanceof RawBioAssay) 171 { 172 RawDataType rdt = ((RawBioAssay)item).getRawDataType(); 173 selectedCategoryName = rdt.getName(); 167 174 } 168 175 if (subtype != null) selectedCategoryName = subtype.getName(); -
trunk/www/my_base/user/settings.jsp
r7502 r7587 72 72 final boolean writePermission = user.hasPermission(Permission.RESTRICTED_WRITE); 73 73 final String ifDisabled = writePermission ? "" : "disabled"; 74 final String passwordDisabled = writePermission && Application.isUsingInternalAuthentication() ? 75 "" : "disabled"; 74 final String passwordDisabled = writePermission ? "" : "disabled"; 76 75 dc.detachItem(user); 77 76 sc.setSessionSetting("user", user); … … 206 205 <t:tab id="password" title="Password" helpid="userpreferences.password"> 207 206 <table class="fullform input100"> 208 <% if (!Application.isUsingInternalAuthentication() && writePermission)209 {210 %>211 <tr>212 <td colspan="2">213 <div class="messagecontainer error">Base is using external authentication. Password cannot be changed here.</div>214 </td>215 </tr>216 <%217 }218 %>219 207 <tr> 220 208 <th>Login</th> -
trunk/www/views/derivedbioassays/edit_bioassay.jsp
r6996 r7587 147 147 } 148 148 149 int extractId = Values.getInt(request.getParameter("extract_id")); 150 if (extractId != 0) 151 { 152 currentExtract = Extract.getById(dc, extractId); 153 } 154 else if (cc.getPropertyFilter("extract.name") != null) 155 { 156 currentExtract = Base.getFirstMatching(dc, Extract.getQuery(), "name", cc.getPropertyFilter("extract.name")); 157 } 158 149 159 if (currentSubtypeId == 0) 150 160 {
Note: See TracChangeset
for help on using the changeset viewer.