www/views/physicalbioassays/list_bioassays.jsp

Code
Comments
Other
Rev Date Author Line
1806 23 Jan 06 nicklas 1 <%-- $Id$
1806 23 Jan 06 nicklas 2   ------------------------------------------------------------------
5425 23 Sep 10 nicklas 3   Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg, Martin Svensson
3675 16 Aug 07 jari 4   Copyright (C) 2007 Johan Enell, Martin Svensson
1806 23 Jan 06 nicklas 5
2304 22 May 06 jari 6   This file is part of BASE - BioArray Software Environment.
2304 22 May 06 jari 7   Available at http://base.thep.lu.se/
1806 23 Jan 06 nicklas 8
1806 23 Jan 06 nicklas 9   BASE is free software; you can redistribute it and/or
1806 23 Jan 06 nicklas 10   modify it under the terms of the GNU General Public License
4476 05 Sep 08 jari 11   as published by the Free Software Foundation; either version 3
1806 23 Jan 06 nicklas 12   of the License, or (at your option) any later version.
1806 23 Jan 06 nicklas 13
1806 23 Jan 06 nicklas 14   BASE is distributed in the hope that it will be useful,
1806 23 Jan 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
1806 23 Jan 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1806 23 Jan 06 nicklas 17   GNU General Public License for more details.
1806 23 Jan 06 nicklas 18
1806 23 Jan 06 nicklas 19   You should have received a copy of the GNU General Public License
4511 11 Sep 08 jari 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
1806 23 Jan 06 nicklas 21   ------------------------------------------------------------------
1806 23 Jan 06 nicklas 22
1806 23 Jan 06 nicklas 23   @author Nicklas
1806 23 Jan 06 nicklas 24   @version 2.0
1806 23 Jan 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1806 23 Jan 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
1806 23 Jan 06 nicklas 28   import="net.sf.basedb.core.DbControl"
1806 23 Jan 06 nicklas 29   import="net.sf.basedb.core.Item"
5642 26 May 11 nicklas 30   import="net.sf.basedb.core.PhysicalBioAssay"
5641 25 May 11 nicklas 31   import="net.sf.basedb.core.Extract"
5641 25 May 11 nicklas 32   import="net.sf.basedb.core.Tag"
5685 04 Aug 11 nicklas 33   import="net.sf.basedb.core.DerivedBioAssay"
1806 23 Jan 06 nicklas 34   import="net.sf.basedb.core.BioMaterialEvent"
5662 20 Jun 11 nicklas 35   import="net.sf.basedb.core.BioMaterialEventSource"
1806 23 Jan 06 nicklas 36   import="net.sf.basedb.core.AnnotationType"
1806 23 Jan 06 nicklas 37   import="net.sf.basedb.core.AnnotationSet"
4560 06 Oct 08 nicklas 38   import="net.sf.basedb.core.Annotation"
5649 30 May 11 nicklas 39   import="net.sf.basedb.core.ItemSubtype"
1806 23 Jan 06 nicklas 40   import="net.sf.basedb.core.ItemQuery"
1806 23 Jan 06 nicklas 41   import="net.sf.basedb.core.Include"
2411 22 Jun 06 nicklas 42   import="net.sf.basedb.core.Type"
1806 23 Jan 06 nicklas 43   import="net.sf.basedb.core.ItemResultIterator"
1806 23 Jan 06 nicklas 44   import="net.sf.basedb.core.ItemResultList"
1806 23 Jan 06 nicklas 45   import="net.sf.basedb.core.ItemContext"
7813 19 May 20 nicklas 46   import="net.sf.basedb.core.ItemList"
3552 06 Jul 07 martin 47   import="net.sf.basedb.core.Nameable"
1806 23 Jan 06 nicklas 48   import="net.sf.basedb.core.Permission"
2411 22 Jun 06 nicklas 49   import="net.sf.basedb.core.PermissionDeniedException"
1806 23 Jan 06 nicklas 50   import="net.sf.basedb.core.PluginDefinition"
1806 23 Jan 06 nicklas 51   import="net.sf.basedb.core.query.Hql"
1806 23 Jan 06 nicklas 52   import="net.sf.basedb.core.query.Restrictions"
1806 23 Jan 06 nicklas 53   import="net.sf.basedb.core.query.Expressions"
2411 22 Jun 06 nicklas 54   import="net.sf.basedb.core.query.Orders"
2411 22 Jun 06 nicklas 55   import="net.sf.basedb.core.query.Hql"
1806 23 Jan 06 nicklas 56   import="net.sf.basedb.core.plugin.GuiContext"
1806 23 Jan 06 nicklas 57   import="net.sf.basedb.core.plugin.Plugin"
6541 29 Sep 14 nicklas 58   import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
6541 29 Sep 14 nicklas 59   import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
6541 29 Sep 14 nicklas 60   import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
6541 29 Sep 14 nicklas 61   import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
6541 29 Sep 14 nicklas 62   import="net.sf.basedb.core.snapshot.SnapshotManager"
1806 23 Jan 06 nicklas 63   import="net.sf.basedb.util.Enumeration"
3552 06 Jul 07 martin 64   import="net.sf.basedb.util.ShareableUtil"
1806 23 Jan 06 nicklas 65   import="net.sf.basedb.clients.web.Base"
1806 23 Jan 06 nicklas 66   import="net.sf.basedb.clients.web.ModeInfo"
2401 21 Jun 06 martin 67   import="net.sf.basedb.clients.web.PermissionUtil"
1806 23 Jan 06 nicklas 68   import="net.sf.basedb.clients.web.util.HTML"
2942 22 Nov 06 nicklas 69   import="net.sf.basedb.util.formatter.Formatter"
7813 19 May 20 nicklas 70   import="net.sf.basedb.util.formatter.NameableFormatter"
7813 19 May 20 nicklas 71   import="net.sf.basedb.clients.web.formatter.LinkedItemFormatter"
2942 22 Nov 06 nicklas 72   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4879 03 Apr 09 nicklas 73   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4879 03 Apr 09 nicklas 74   import="net.sf.basedb.clients.web.extensions.JspContext"
4879 03 Apr 09 nicklas 75   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 76   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4879 03 Apr 09 nicklas 77   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 78   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6040 30 Mar 12 nicklas 79   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
7337 12 Apr 17 nicklas 80   import="net.sf.basedb.clients.web.util.ProjectSpecificInfoFilter"
4879 03 Apr 09 nicklas 81   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
2753 20 Oct 06 nicklas 82   import="net.sf.basedb.util.Values"
3552 06 Jul 07 martin 83   import="java.util.Iterator"
1806 23 Jan 06 nicklas 84   import="java.util.List"
1806 23 Jan 06 nicklas 85   import="java.util.Map"
2942 22 Nov 06 nicklas 86   import="java.util.Date"
6541 29 Sep 14 nicklas 87   import="java.util.ArrayList"
1806 23 Jan 06 nicklas 88 %>
1806 23 Jan 06 nicklas 89 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1806 23 Jan 06 nicklas 90 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
4879 03 Apr 09 nicklas 91 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1806 23 Jan 06 nicklas 92 <%!
5642 26 May 11 nicklas 93   private static final Item itemType = Item.PHYSICALBIOASSAY;
1806 23 Jan 06 nicklas 94   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST);
1806 23 Jan 06 nicklas 95 %>
1806 23 Jan 06 nicklas 96 <%
1806 23 Jan 06 nicklas 97 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
1806 23 Jan 06 nicklas 98 final String ID = sc.getId();
1806 23 Jan 06 nicklas 99 final boolean createPermission = sc.hasPermission(Permission.CREATE, itemType);
1806 23 Jan 06 nicklas 100 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1806 23 Jan 06 nicklas 101
1806 23 Jan 06 nicklas 102 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
7813 19 May 20 nicklas 103 final Formatter<Nameable> nameableFormatter = mode.hasPropertyLink() ? new LinkedItemFormatter(mode.hasEditLink()) : new NameableFormatter();
1806 23 Jan 06 nicklas 104 final String callback = request.getParameter("callback");
5642 26 May 11 nicklas 105 final String title = mode.generateTitle("physical bioassay", "physical bioassays");
7954 12 May 21 nicklas 106 final DbControl dc = sc.newDbControl(":List "+itemType);
5642 26 May 11 nicklas 107 ItemResultIterator<PhysicalBioAssay> bioAssays = null;
6541 29 Sep 14 nicklas 108 List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
1806 23 Jan 06 nicklas 109 try
1806 23 Jan 06 nicklas 110 {
6690 21 Jan 15 nicklas 111   ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
6541 29 Sep 14 nicklas 112   SnapshotManager manager = new SnapshotManager();
7337 12 Apr 17 nicklas 113   ProjectSpecificInfoFilter psInfo = new ProjectSpecificInfoFilter();
6541 29 Sep 14 nicklas 114   for (AnnotationType at : annotationTypeQuery.list(dc))
6541 29 Sep 14 nicklas 115   {
6541 29 Sep 14 nicklas 116     annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
6541 29 Sep 14 nicklas 117   }
6690 21 Jan 15 nicklas 118   annotationTypeQuery = Base.getInheritedAnnotationColumns(cc.getSetting("columns"));
6690 21 Jan 15 nicklas 119   for (AnnotationType at : annotationTypeQuery.list(dc))
6690 21 Jan 15 nicklas 120   {
6690 21 Jan 15 nicklas 121     annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at, false, true));
6690 21 Jan 15 nicklas 122   }
5649 30 May 11 nicklas 123   final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(itemType);
1806 23 Jan 06 nicklas 124
5642 26 May 11 nicklas 125   // Query for extracts relatated to the current bioassay
5642 26 May 11 nicklas 126   final ItemQuery<Extract> extractQuery = Extract.getQuery();
7813 19 May 20 nicklas 127   extractQuery.setIncludes(cc.getInclude());
5662 20 Jun 11 nicklas 128   extractQuery.join(Hql.innerJoin("childCreationEvents", "cce"));
5662 20 Jun 11 nicklas 129   extractQuery.join(Hql.innerJoin("cce", "event", "evt"));
5642 26 May 11 nicklas 130   extractQuery.restrict(Restrictions.eq(Hql.property("evt", "physicalBioAssay"), Expressions.parameter("bioAssay")));
5662 20 Jun 11 nicklas 131   extractQuery.order(Orders.asc(Hql.property("cce", "position")));
5642 26 May 11 nicklas 132   extractQuery.order(Orders.asc(Hql.property("name"))); 
2411 22 Jun 06 nicklas 133
5652 10 Jun 11 nicklas 134   // Query for derived bioassay sets from to the current bioassay
5685 04 Aug 11 nicklas 135   final ItemQuery<DerivedBioAssay> dbasQuery = DerivedBioAssay.getQuery();
7813 19 May 20 nicklas 136   dbasQuery.setIncludes(cc.getInclude());
6082 14 Aug 12 nicklas 137   dbasQuery.join(Hql.innerJoin("physicalBioAssays", "pba"));
6082 14 Aug 12 nicklas 138   dbasQuery.restrict(Restrictions.eq(Hql.alias("pba"), Expressions.parameter("bioAssay")));
6082 14 Aug 12 nicklas 139   dbasQuery.restrict(Restrictions.eq(Hql.property("root"), Expressions.bool(true)));
5652 10 Jun 11 nicklas 140   dbasQuery.order(Orders.asc(Hql.property("name"))); 
7813 19 May 20 nicklas 141
7813 19 May 20 nicklas 142   // List membership
7813 19 May 20 nicklas 143   final ItemQuery<ItemList> listQuery = ItemList.getQuery();
7813 19 May 20 nicklas 144   listQuery.setIncludes(cc.getInclude());
7813 19 May 20 nicklas 145   listQuery.join(Hql.innerJoin("members", "m"));
7813 19 May 20 nicklas 146   listQuery.restrict(Restrictions.eq(Hql.property("memberType"), Expressions.integer(itemType.getValue())));
7813 19 May 20 nicklas 147   listQuery.restrict(Restrictions.eq(Hql.alias("m"), Expressions.parameter("itemId", Type.INT)));
7813 19 May 20 nicklas 148   listQuery.order(Orders.asc(Hql.property("name")));
7813 19 May 20 nicklas 149
5685 04 Aug 11 nicklas 150   final boolean createDerivedBioAssayPermission = sc.hasPermission(Permission.CREATE, Item.DERIVEDBIOASSAY);   
2411 22 Jun 06 nicklas 151   
1806 23 Jan 06 nicklas 152   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
7914 23 Feb 21 nicklas 153   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
2029 20 Feb 06 nicklas 154   try
2029 20 Feb 06 nicklas 155   {
7914 23 Feb 21 nicklas 156     final ItemQuery<PhysicalBioAssay> query = Base.getConfiguredQuery(dc, cc, jspContext, true, PhysicalBioAssay.getQuery(), mode);
5642 26 May 11 nicklas 157     bioAssays = query.iterate(dc);
2029 20 Feb 06 nicklas 158   }
2029 20 Feb 06 nicklas 159   catch (Throwable t)
2029 20 Feb 06 nicklas 160   {
2029 20 Feb 06 nicklas 161     cc.setMessage(t.getMessage());
4560 06 Oct 08 nicklas 162     t.printStackTrace();
2029 20 Feb 06 nicklas 163   }
1806 23 Jan 06 nicklas 164   int numListed = 0;
2942 22 Nov 06 nicklas 165   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
6319 09 Sep 13 nicklas 166   Formatter<Number> numericFormatter = FormatterFactory.getNumberFormatter(sc);
7604 25 Feb 19 nicklas 167   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 168   ExtensionsInvoker<ListColumnAction<PhysicalBioAssay,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
1806 23 Jan 06 nicklas 169   %>
6311 23 Aug 13 nicklas 170   <base:page title="<%=title==null ? "Physical bioassays" : title%>" type="<%=mode.getPageType()%>" id="list-page">
6311 23 Aug 13 nicklas 171   <base:head scripts="table.js,~bioassays.js" styles="table.css,toolbar.css">
4879 03 Apr 09 nicklas 172     <ext:scripts context="<%=jspContext%>" />
4879 03 Apr 09 nicklas 173     <ext:stylesheets context="<%=jspContext%>" />
1806 23 Jan 06 nicklas 174   </base:head>
1806 23 Jan 06 nicklas 175   
1806 23 Jan 06 nicklas 176   <base:body>
5952 10 Feb 12 nicklas 177     <h1><%=title==null ? "Physical bioassays" : title%></h1>
5952 10 Feb 12 nicklas 178     <div class="content">
1806 23 Jan 06 nicklas 179     <tbl:table 
5642 26 May 11 nicklas 180       id="bioassays" 
1806 23 Jan 06 nicklas 181       columns="<%=cc.getSetting("columns")%>"
1806 23 Jan 06 nicklas 182       sortby="<%=cc.getSortProperty()%>" 
1806 23 Jan 06 nicklas 183       direction="<%=cc.getSortDirection()%>"
1806 23 Jan 06 nicklas 184       action="index.jsp"
1806 23 Jan 06 nicklas 185       sc="<%=sc%>"
1806 23 Jan 06 nicklas 186       item="<%=itemType%>"
6698 30 Jan 15 nicklas 187       filterrows="<%=cc.getFilterRows()%>"
5952 10 Feb 12 nicklas 188       subclass="fulltable"
6690 21 Jan 15 nicklas 189       data-inherited-annotations="true"
7842 01 Sep 20 nicklas 190       data-relateditem-columns="true"
7982 14 Jun 21 nicklas 191       stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>"
1806 23 Jan 06 nicklas 192       >
1806 23 Jan 06 nicklas 193       <tbl:hidden 
1806 23 Jan 06 nicklas 194         name="mode" 
1806 23 Jan 06 nicklas 195         value="<%=mode.getName()%>" 
1806 23 Jan 06 nicklas 196       />
1806 23 Jan 06 nicklas 197       <tbl:hidden 
1806 23 Jan 06 nicklas 198         name="callback" 
1806 23 Jan 06 nicklas 199         value="<%=callback%>" 
1806 23 Jan 06 nicklas 200         skip="<%=callback == null%>" 
1806 23 Jan 06 nicklas 201       />
1806 23 Jan 06 nicklas 202       <tbl:columndef 
1806 23 Jan 06 nicklas 203         id="name"
1806 23 Jan 06 nicklas 204         property="name"
1806 23 Jan 06 nicklas 205         datatype="string"
1806 23 Jan 06 nicklas 206         title="Name"
1806 23 Jan 06 nicklas 207         sortable="true" 
1806 23 Jan 06 nicklas 208         filterable="true"
1806 23 Jan 06 nicklas 209         exportable="true"
1806 23 Jan 06 nicklas 210         show="always" 
1806 23 Jan 06 nicklas 211       />
5649 30 May 11 nicklas 212       <tbl:columndef 
5649 30 May 11 nicklas 213         id="itemSubtype"
5649 30 May 11 nicklas 214         property="itemSubtype"
5649 30 May 11 nicklas 215         sortproperty="itemSubtype.name"
5666 23 Jun 11 nicklas 216         exportproperty="itemSubtype.name:string"
5649 30 May 11 nicklas 217         datatype="int"
5649 30 May 11 nicklas 218         enumeration="<%=Enumeration.fromItems(subtypesQuery.list(dc), "-none-")%>"
5649 30 May 11 nicklas 219         title="Type"
5649 30 May 11 nicklas 220         sortable="true" 
5649 30 May 11 nicklas 221         filterable="true"
5649 30 May 11 nicklas 222         exportable="true"
5649 30 May 11 nicklas 223       />
4331 11 Jun 08 martin 224       <tbl:columndef
4331 11 Jun 08 martin 225         id="id"
4387 11 Aug 08 nicklas 226         clazz="uniquecol"
4331 11 Jun 08 martin 227         property="id"
4331 11 Jun 08 martin 228         datatype="int"
4331 11 Jun 08 martin 229         title="ID"
4331 11 Jun 08 martin 230         sortable="true"
4331 11 Jun 08 martin 231         filterable="true"
4331 11 Jun 08 martin 232         exportable="true"
4331 11 Jun 08 martin 233       />
4131 08 Feb 08 nicklas 234       <tbl:columndef 
5642 26 May 11 nicklas 235         id="size"
5642 26 May 11 nicklas 236         property="size"
4131 08 Feb 08 nicklas 237         datatype="int"
5642 26 May 11 nicklas 238         title="Size"
4131 08 Feb 08 nicklas 239         sortable="true" 
4131 08 Feb 08 nicklas 240         filterable="true"
4131 08 Feb 08 nicklas 241         exportable="true"
4131 08 Feb 08 nicklas 242       />
2411 22 Jun 06 nicklas 243       <tbl:columndef
5642 26 May 11 nicklas 244         id="extracts"
5642 26 May 11 nicklas 245         title="Extracts"
5662 20 Jun 11 nicklas 246         property="&creationEvent.sources(bioMaterial.name)"
4613 29 Oct 08 nicklas 247         datatype="string"
4613 29 Oct 08 nicklas 248         filterable="true"
4901 23 Apr 09 martin 249         exportable="true"
2411 22 Jun 06 nicklas 250       />
1806 23 Jan 06 nicklas 251       <tbl:columndef 
1806 23 Jan 06 nicklas 252         id="arraySlide"
1806 23 Jan 06 nicklas 253         property="arraySlide.name"
1806 23 Jan 06 nicklas 254         datatype="string"
1806 23 Jan 06 nicklas 255         title="Array slide"
1806 23 Jan 06 nicklas 256         sortable="true" 
1806 23 Jan 06 nicklas 257         filterable="true"
1806 23 Jan 06 nicklas 258         exportable="true"
1806 23 Jan 06 nicklas 259       />
2411 22 Jun 06 nicklas 260       <tbl:columndef
5685 04 Aug 11 nicklas 261         id="derivedBioAssays"
5685 04 Aug 11 nicklas 262         title="Derived bioassays"
6684 14 Jan 15 nicklas 263         property="&rootDerivedBioAssays(%name)"
4613 29 Oct 08 nicklas 264         datatype="string"
4613 29 Oct 08 nicklas 265         filterable="true"
4901 23 Apr 09 martin 266         exportable="true"
2411 22 Jun 06 nicklas 267       />
1806 23 Jan 06 nicklas 268       <tbl:columndef 
1806 23 Jan 06 nicklas 269         id="protocol"
5657 16 Jun 11 nicklas 270         property="creationEvent.protocol.name"
1806 23 Jan 06 nicklas 271         datatype="string"
1806 23 Jan 06 nicklas 272         title="Protocol"
1806 23 Jan 06 nicklas 273         sortable="true" 
1806 23 Jan 06 nicklas 274         filterable="true"
1806 23 Jan 06 nicklas 275         exportable="true"
1806 23 Jan 06 nicklas 276       />
2484 03 Aug 06 martin 277       <tbl:columndef
5642 26 May 11 nicklas 278         id="hardware"
5657 16 Jun 11 nicklas 279         property="creationEvent.hardware.name"
2484 03 Aug 06 martin 280         datatype="string"
2484 03 Aug 06 martin 281         title="Hardware"
2484 03 Aug 06 martin 282         sortable="true"
2484 03 Aug 06 martin 283         filterable="true"
2484 03 Aug 06 martin 284         exportable="true"
2484 03 Aug 06 martin 285       />
1806 23 Jan 06 nicklas 286       <tbl:columndef 
6994 03 Nov 15 nicklas 287         id="kit"
6994 03 Nov 15 nicklas 288         property="creationEvent.kit.name"
6994 03 Nov 15 nicklas 289         datatype="string"
6994 03 Nov 15 nicklas 290         title="Kit"
6994 03 Nov 15 nicklas 291         sortable="true" 
6994 03 Nov 15 nicklas 292         filterable="true"
6994 03 Nov 15 nicklas 293         exportable="true"
6994 03 Nov 15 nicklas 294       />
6994 03 Nov 15 nicklas 295       <tbl:columndef 
1806 23 Jan 06 nicklas 296         id="eventDate"
1806 23 Jan 06 nicklas 297         property="creationEvent.eventDate"
1806 23 Jan 06 nicklas 298         datatype="date"
1806 23 Jan 06 nicklas 299         title="Created"
1806 23 Jan 06 nicklas 300         sortable="true" 
1806 23 Jan 06 nicklas 301         filterable="true"
1806 23 Jan 06 nicklas 302         exportable="true"
2942 22 Nov 06 nicklas 303         formatter="<%=dateFormatter%>"
1806 23 Jan 06 nicklas 304       />
1806 23 Jan 06 nicklas 305       <tbl:columndef 
1806 23 Jan 06 nicklas 306         id="entryDate"
1806 23 Jan 06 nicklas 307         property="creationEvent.entryDate"
1806 23 Jan 06 nicklas 308         datatype="date"
1806 23 Jan 06 nicklas 309         title="Registered"
1806 23 Jan 06 nicklas 310         sortable="true" 
1806 23 Jan 06 nicklas 311         filterable="true"
1806 23 Jan 06 nicklas 312         exportable="true"
2942 22 Nov 06 nicklas 313         formatter="<%=dateFormatter%>"
1806 23 Jan 06 nicklas 314       />
1806 23 Jan 06 nicklas 315       <tbl:columndef 
1806 23 Jan 06 nicklas 316         id="owner"
1806 23 Jan 06 nicklas 317         property="owner.name"
1806 23 Jan 06 nicklas 318         datatype="string"
1806 23 Jan 06 nicklas 319         title="Owner"
1806 23 Jan 06 nicklas 320         sortable="true" 
1806 23 Jan 06 nicklas 321         filterable="true"
1806 23 Jan 06 nicklas 322         exportable="true"
1806 23 Jan 06 nicklas 323       />
1806 23 Jan 06 nicklas 324       <tbl:columndef 
1806 23 Jan 06 nicklas 325         id="description"
1806 23 Jan 06 nicklas 326         property="description"
1806 23 Jan 06 nicklas 327         datatype="string"
1806 23 Jan 06 nicklas 328         title="Description" 
1806 23 Jan 06 nicklas 329         sortable="true" 
1806 23 Jan 06 nicklas 330         filterable="true" 
1806 23 Jan 06 nicklas 331         exportable="true"
1806 23 Jan 06 nicklas 332       />
6815 31 Mar 15 nicklas 333       <tbl:columndef
6815 31 Mar 15 nicklas 334         id="itemList"
6815 31 Mar 15 nicklas 335         property="§itemLists"
6815 31 Mar 15 nicklas 336         datatype="int"
6815 31 Mar 15 nicklas 337         title="Item list"
6815 31 Mar 15 nicklas 338         filterable="true"
6815 31 Mar 15 nicklas 339         enumeration="<%=Base.getItemListsEnum(dc, itemType, cc.getInclude())%>"
6815 31 Mar 15 nicklas 340       />
1806 23 Jan 06 nicklas 341       <%
6541 29 Sep 14 nicklas 342       for (AnnotationLoaderUtil loader : annotationLoaders)
1806 23 Jan 06 nicklas 343       {
6541 29 Sep 14 nicklas 344         AnnotationType at = loader.getAnnotationType();
7605 26 Feb 19 nicklas 345         Formatter<Object> formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
1806 23 Jan 06 nicklas 346         Enumeration<String, String> annotationEnum = null;
1806 23 Jan 06 nicklas 347         if (at.isEnumeration())
1806 23 Jan 06 nicklas 348         {
1806 23 Jan 06 nicklas 349           annotationEnum = new Enumeration<String, String>();
6784 18 Mar 15 nicklas 350           if (!at.getDisplayAsList()) annotationEnum.add("", "-none-");
1806 23 Jan 06 nicklas 351           List<?> values = at.getValues();
1806 23 Jan 06 nicklas 352           for (Object value : values)
1806 23 Jan 06 nicklas 353           {
2942 22 Nov 06 nicklas 354             String encoded = formatter.format(value);
1806 23 Jan 06 nicklas 355             annotationEnum.add(encoded, encoded);
1806 23 Jan 06 nicklas 356           }
1806 23 Jan 06 nicklas 357         }
1806 23 Jan 06 nicklas 358         %>
1806 23 Jan 06 nicklas 359         <tbl:columndef 
6690 21 Jan 15 nicklas 360           id="<%=(loader.isSearchingInheritedAnnotations() ? "ia" : "at")+at.getId()%>"
6690 21 Jan 15 nicklas 361           title="<%=HTML.encodeTags(at.getName())+(loader.isSearchingInheritedAnnotations() ? " [I]" : " [A]")%>" 
6690 21 Jan 15 nicklas 362           property="<%=(loader.isSearchingInheritedAnnotations() ? "##" : "#")+at.getId()%>"
1806 23 Jan 06 nicklas 363           annotation="true"
1806 23 Jan 06 nicklas 364           datatype="<%=at.getValueType().getStringValue()%>"
1806 23 Jan 06 nicklas 365           enumeration="<%=annotationEnum%>"
5674 27 Jun 11 nicklas 366           smartenum="<%=at.getDisplayAsList() %>"
6690 21 Jan 15 nicklas 367           sortable="<%=at.getMultiplicity() == 1 && !loader.isSearchingInheritedAnnotations()%>" 
1806 23 Jan 06 nicklas 368           filterable="true" 
1806 23 Jan 06 nicklas 369           exportable="true"
2942 22 Nov 06 nicklas 370           formatter="<%=formatter%>"
4560 06 Oct 08 nicklas 371           unit="<%=at.getDefaultUnit()%>"
1806 23 Jan 06 nicklas 372         />
1806 23 Jan 06 nicklas 373         <%
1806 23 Jan 06 nicklas 374       }
1806 23 Jan 06 nicklas 375       %>
2401 21 Jun 06 martin 376       <tbl:columndef
2401 21 Jun 06 martin 377         id="permission"
2401 21 Jun 06 martin 378         title="Permission"
2401 21 Jun 06 martin 379       />
5165 28 Oct 09 nicklas 380       <tbl:columndef
3552 06 Jul 07 martin 381         id="sharedTo"
3552 06 Jul 07 martin 382         title="Shared to"
5165 28 Oct 09 nicklas 383         filterable="true"
5165 28 Oct 09 nicklas 384         filterproperty="!sharedTo.name"
5165 28 Oct 09 nicklas 385         datatype="string"
3552 06 Jul 07 martin 386       />
6040 30 Mar 12 nicklas 387       <tbl:columndef 
6040 30 Mar 12 nicklas 388         id="xt-columns" 
6040 30 Mar 12 nicklas 389         extensions="<%=columnsInvoker%>" 
6040 30 Mar 12 nicklas 390         jspcontext="<%=jspContext%>" 
6040 30 Mar 12 nicklas 391       />
6604 18 Nov 14 nicklas 392       <div class="panelgroup bg-filled-50 bottomborder">
5952 10 Feb 12 nicklas 393         <tbl:toolbar
5952 10 Feb 12 nicklas 394           subclass="bottomborder"
5952 10 Feb 12 nicklas 395           visible="<%=mode.hasToolbar()%>"
5952 10 Feb 12 nicklas 396           >
5952 10 Feb 12 nicklas 397           <tbl:button 
6311 23 Aug 13 nicklas 398             id="btnNewItem"
5952 10 Feb 12 nicklas 399             disabled="<%=!createPermission%>" 
5952 10 Feb 12 nicklas 400             image="new.png" 
5952 10 Feb 12 nicklas 401             title="New&hellip;" 
5952 10 Feb 12 nicklas 402             tooltip="<%=createPermission ? "Create new physical bioassay" : "You do not have permission to create physical bioassays"%>" 
5952 10 Feb 12 nicklas 403           />
6082 14 Aug 12 nicklas 404           <tbl:button
6311 23 Aug 13 nicklas 405             id="btnNewMergedDerivedBioAssay"
6082 14 Aug 12 nicklas 406             disabled="<%=!createDerivedBioAssayPermission %>"
6082 14 Aug 12 nicklas 407             image="add.png"
6082 14 Aug 12 nicklas 408             title="New derived bioassay&hellip;"
6082 14 Aug 12 nicklas 409             tooltip="<%=createDerivedBioAssayPermission ? "Create new derived bioassay from the selected physical bioassays" : "You do not have permission to create derived bioassays"%>"
6082 14 Aug 12 nicklas 410           />
5952 10 Feb 12 nicklas 411           <tbl:button 
6311 23 Aug 13 nicklas 412             id="btnDeleteItems"
5952 10 Feb 12 nicklas 413             image="delete.png"
5952 10 Feb 12 nicklas 414             title="Delete" 
5952 10 Feb 12 nicklas 415             tooltip="Delete the selected items" 
5952 10 Feb 12 nicklas 416           />
5952 10 Feb 12 nicklas 417           <tbl:button 
6311 23 Aug 13 nicklas 418             id="btnRestoreItems"
5952 10 Feb 12 nicklas 419             image="restore.png"
5952 10 Feb 12 nicklas 420             title="Restore" 
5952 10 Feb 12 nicklas 421             tooltip="Restore the selected (deleted) items"
5952 10 Feb 12 nicklas 422           />
5952 10 Feb 12 nicklas 423           <tbl:button 
6311 23 Aug 13 nicklas 424             id="btnShareItems"
5952 10 Feb 12 nicklas 425             image="share.png"
5952 10 Feb 12 nicklas 426             title="Share&hellip;" 
5952 10 Feb 12 nicklas 427             tooltip="Share the selected items"
5952 10 Feb 12 nicklas 428           />
5952 10 Feb 12 nicklas 429           <tbl:button 
6311 23 Aug 13 nicklas 430             id="btnSetOwner"
5952 10 Feb 12 nicklas 431             image="take_ownership.png"
5952 10 Feb 12 nicklas 432             title="Set owner&hellip;"
5952 10 Feb 12 nicklas 433             tooltip="Change owner of the selected items"
5952 10 Feb 12 nicklas 434           />
5952 10 Feb 12 nicklas 435           <tbl:button 
6311 23 Aug 13 nicklas 436             id="btnColumns"
5952 10 Feb 12 nicklas 437             image="columns.png" 
5952 10 Feb 12 nicklas 438             title="Columns&hellip;" 
5952 10 Feb 12 nicklas 439             tooltip="Show, hide and re-order columns" 
5952 10 Feb 12 nicklas 440           />
6695 28 Jan 15 nicklas 441           <tbl:button
6813 31 Mar 15 nicklas 442             id="btnNewItemList"
6813 31 Mar 15 nicklas 443             image="add.png"
6813 31 Mar 15 nicklas 444             title="New item list&hellip;"
6813 31 Mar 15 nicklas 445             tooltip="Create a new item list from matching bioassays"
6813 31 Mar 15 nicklas 446             visible="<%=sc.hasPermission(Permission.CREATE, Item.ITEMLIST)%>"
6813 31 Mar 15 nicklas 447           />
6813 31 Mar 15 nicklas 448           <tbl:button
7813 19 May 20 nicklas 449             id="btnAddToItemList"
7813 19 May 20 nicklas 450             image="add.png"
7813 19 May 20 nicklas 451             title="Add to item list&hellip;"
7813 19 May 20 nicklas 452             tooltip="Add bioassays to an existing item list"
7813 19 May 20 nicklas 453           />
7813 19 May 20 nicklas 454           <tbl:button
6695 28 Jan 15 nicklas 455             id="btnInheritAnnotations"
6695 28 Jan 15 nicklas 456             image="inherit.png"
6695 28 Jan 15 nicklas 457             title="Inherit annotations&hellip;"
6695 28 Jan 15 nicklas 458             tooltip="Batch inherit annotations from parent items"
6695 28 Jan 15 nicklas 459           />
5952 10 Feb 12 nicklas 460           <tbl:button 
6311 23 Aug 13 nicklas 461             id="btnImport"
6311 23 Aug 13 nicklas 462             data-plugin-type="IMPORT"
5952 10 Feb 12 nicklas 463             image="import.png" 
5952 10 Feb 12 nicklas 464             title="Import&hellip;" 
5952 10 Feb 12 nicklas 465             tooltip="Import data" 
5952 10 Feb 12 nicklas 466             visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5952 10 Feb 12 nicklas 467           />
5952 10 Feb 12 nicklas 468           <tbl:button 
6311 23 Aug 13 nicklas 469             id="btnExport"
6311 23 Aug 13 nicklas 470             data-plugin-type="EXPORT"
5952 10 Feb 12 nicklas 471             image="export.png" 
5952 10 Feb 12 nicklas 472             title="Export&hellip;" 
5952 10 Feb 12 nicklas 473             tooltip="Export data" 
5952 10 Feb 12 nicklas 474             visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5952 10 Feb 12 nicklas 475           />
5952 10 Feb 12 nicklas 476           <tbl:button 
6311 23 Aug 13 nicklas 477             id="btnRunPlugin"
6311 23 Aug 13 nicklas 478             data-plugin-type="OTHER"
5952 10 Feb 12 nicklas 479             image="runplugin.png" 
5952 10 Feb 12 nicklas 480             title="Run plugin&hellip;" 
5952 10 Feb 12 nicklas 481             tooltip="Run a plugin" 
5952 10 Feb 12 nicklas 482             visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5952 10 Feb 12 nicklas 483           />
5952 10 Feb 12 nicklas 484           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 485             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5952 10 Feb 12 nicklas 486         </tbl:toolbar>
5952 10 Feb 12 nicklas 487         <tbl:panel>
6182 23 Oct 12 nicklas 488           <tbl:presetselector />
5952 10 Feb 12 nicklas 489           <tbl:navigator
5952 10 Feb 12 nicklas 490             page="<%=cc.getPage()%>" 
5952 10 Feb 12 nicklas 491             rowsperpage="<%=cc.getRowsPerPage()%>" 
5952 10 Feb 12 nicklas 492             totalrows="<%=bioAssays == null ? 0 : bioAssays.getTotalCount()%>" 
5952 10 Feb 12 nicklas 493             visible="<%=mode.hasNavigator()%>"
5952 10 Feb 12 nicklas 494           />
5952 10 Feb 12 nicklas 495         </tbl:panel>
5952 10 Feb 12 nicklas 496       </div>
1806 23 Jan 06 nicklas 497       <tbl:data>
5948 08 Feb 12 nicklas 498         <tbl:headers>
5948 08 Feb 12 nicklas 499           <tbl:headerrow>
7943 04 May 21 nicklas 500             <tbl:header clazz="row-index bg-filled-100" />
5948 08 Feb 12 nicklas 501             <tbl:columnheaders />
5948 08 Feb 12 nicklas 502           </tbl:headerrow>
6698 30 Jan 15 nicklas 503           <%
6698 30 Jan 15 nicklas 504           int numFilters = cc.getNumPropertyFilters();
6698 30 Jan 15 nicklas 505           int numRows = cc.getFilterRows();
6698 30 Jan 15 nicklas 506           for (int filterNo = 0; filterNo < numRows; filterNo++)
6698 30 Jan 15 nicklas 507           {
6698 30 Jan 15 nicklas 508             boolean lastRow = filterNo == numRows-1;
6698 30 Jan 15 nicklas 509             %>
6698 30 Jan 15 nicklas 510             <tbl:headerrow>
7943 04 May 21 nicklas 511               <tbl:header subclass="row-index bg-filled-100">
7943 04 May 21 nicklas 512                 <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 513                   <div class="index"></div>
7943 04 May 21 nicklas 514                   <div class="check">
7943 04 May 21 nicklas 515                     <base:icon 
7943 04 May 21 nicklas 516                       subclass="link table-check"
7943 04 May 21 nicklas 517                       image="check_uncheck.png" 
7943 04 May 21 nicklas 518                       tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)" 
7943 04 May 21 nicklas 519                       visible="<%=lastRow && mode.hasCheck()%>"
7943 04 May 21 nicklas 520                     />
7943 04 May 21 nicklas 521                   </div>
7943 04 May 21 nicklas 522                   <div class="icons">
7943 04 May 21 nicklas 523                     <base:icon
7943 04 May 21 nicklas 524                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 525                       image="add.png"
7943 04 May 21 nicklas 526                       tooltip="Add extra filter row"
7943 04 May 21 nicklas 527                       visible="<%=lastRow%>"
7943 04 May 21 nicklas 528                     /><base:icon
7943 04 May 21 nicklas 529                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 530                       image="remove.png"
7943 04 May 21 nicklas 531                       tooltip="Remove this filter row"
7943 04 May 21 nicklas 532                       visible="<%=numRows > 1 || numFilters > 0 %>"
7943 04 May 21 nicklas 533                       data-remove-row="<%=filterNo%>"
7943 04 May 21 nicklas 534                     />
7943 04 May 21 nicklas 535                   </div>
7943 04 May 21 nicklas 536                 </div>
6698 30 Jan 15 nicklas 537               </tbl:header>
6698 30 Jan 15 nicklas 538               <tbl:propertyfilter row="<%=filterNo%>" />
6698 30 Jan 15 nicklas 539             </tbl:headerrow>
6698 30 Jan 15 nicklas 540             <%
6698 30 Jan 15 nicklas 541           }
6698 30 Jan 15 nicklas 542           %>
7913 22 Feb 21 nicklas 543           <tbl:columnsubtitles />
5948 08 Feb 12 nicklas 544         </tbl:headers>
5948 08 Feb 12 nicklas 545         <tbl:rows>
1806 23 Jan 06 nicklas 546           <%
5952 10 Feb 12 nicklas 547           if (cc.getMessage() != null)
5952 10 Feb 12 nicklas 548           {
5952 10 Feb 12 nicklas 549             %>
6604 18 Nov 14 nicklas 550             <tbl:panel subclass="bg-filled-50">
5952 10 Feb 12 nicklas 551               <div class="messagecontainer error"><%=cc.getMessage()%></div>
5952 10 Feb 12 nicklas 552             </tbl:panel>
5952 10 Feb 12 nicklas 553             <%
5952 10 Feb 12 nicklas 554             cc.setMessage(null);
5952 10 Feb 12 nicklas 555           }
1806 23 Jan 06 nicklas 556           int index = cc.getPage()*cc.getRowsPerPage();
2029 20 Feb 06 nicklas 557           int selectedItemId = cc.getId();
5642 26 May 11 nicklas 558           if (bioAssays != null)
2507 09 Aug 06 martin 559           {            
5642 26 May 11 nicklas 560             while (bioAssays.hasNext())
2029 20 Feb 06 nicklas 561             {
5642 26 May 11 nicklas 562               PhysicalBioAssay item = bioAssays.next();
2029 20 Feb 06 nicklas 563               BioMaterialEvent creationEvent = item.getCreationEvent();
2029 20 Feb 06 nicklas 564               int itemId = item.getId();
2411 22 Jun 06 nicklas 565               boolean usePermission = item.hasPermission(Permission.USE);
4003 26 Nov 07 nicklas 566               boolean deletePermission = item.hasPermission(Permission.DELETE);
2437 28 Jun 06 nicklas 567               boolean sharePermission = item.hasPermission(Permission.SET_PERMISSION);
2507 09 Aug 06 martin 568               boolean writePermission = item.hasPermission(Permission.WRITE);
2507 09 Aug 06 martin 569               String tooltip = mode.isSelectionMode() ? 
2507 09 Aug 06 martin 570                   "Select this item" : "View this item" + (writePermission ? " (use CTRL, ALT or SHIFT to edit)" : "");
2029 20 Feb 06 nicklas 571               String name = HTML.encodeTags(item.getName());
2029 20 Feb 06 nicklas 572               index++;
2029 20 Feb 06 nicklas 573               numListed++;
2029 20 Feb 06 nicklas 574               %>
2029 20 Feb 06 nicklas 575               <tbl:row>
7943 04 May 21 nicklas 576                 <tbl:header clazz="row-index bg-filled-100">
7943 04 May 21 nicklas 577                   <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 578                     <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
7943 04 May 21 nicklas 579                     <div class="check">
7943 04 May 21 nicklas 580                       <base:input
7943 04 May 21 nicklas 581                         type="checkbox" 
7943 04 May 21 nicklas 582                         name="<%=itemId%>" 
7943 04 May 21 nicklas 583                         value="<%=itemId%>" 
7943 04 May 21 nicklas 584                         title="<%=name%>" 
7943 04 May 21 nicklas 585                         checked="<%=cc.getSelected().contains(itemId)%>"
7943 04 May 21 nicklas 586                         visible="<%=mode.hasCheck()%>"
7943 04 May 21 nicklas 587                       />
7943 04 May 21 nicklas 588                       <base:input 
7943 04 May 21 nicklas 589                         type="radio" 
7943 04 May 21 nicklas 590                         name="item_id" 
7943 04 May 21 nicklas 591                         value="<%=itemId%>" 
7943 04 May 21 nicklas 592                         title="<%=name%>" 
7943 04 May 21 nicklas 593                         checked="<%=selectedItemId == itemId%>"
7943 04 May 21 nicklas 594                         visible="<%=mode.hasRadio()%>"
7943 04 May 21 nicklas 595                       />
7943 04 May 21 nicklas 596                     </div>
7943 04 May 21 nicklas 597                     <div class="icons">
7943 04 May 21 nicklas 598                       <base:icon 
7943 04 May 21 nicklas 599                         image="deleted.png"
7943 04 May 21 nicklas 600                         id="<%="delete."+itemId %>"
7943 04 May 21 nicklas 601                         subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
7943 04 May 21 nicklas 602                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 603                         tooltip="This item has been scheduled for deletion" 
7943 04 May 21 nicklas 604                         visible="<%=item.isRemoved()%>"
7943 04 May 21 nicklas 605                       /><base:icon 
7943 04 May 21 nicklas 606                         image="shared.png" 
7943 04 May 21 nicklas 607                         id="<%="share."+itemId %>"
7943 04 May 21 nicklas 608                         subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
7943 04 May 21 nicklas 609                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 610                         tooltip="This item is shared to other users, groups and/or projects" 
7943 04 May 21 nicklas 611                         visible="<%=item.isShared()%>"
7943 04 May 21 nicklas 612                       />
7943 04 May 21 nicklas 613                     </div>
7943 04 May 21 nicklas 614                   </div>
7943 04 May 21 nicklas 615                 </tbl:header>
6311 23 Aug 13 nicklas 616                 <tbl:cell column="name"><div
6311 23 Aug 13 nicklas 617                   class="link table-item"
6311 23 Aug 13 nicklas 618                   data-item-id="<%=itemId%>"
6311 23 Aug 13 nicklas 619                   data-no-edit="<%=writePermission ? 0 : 1 %>" 
6311 23 Aug 13 nicklas 620                   tabindex="0"
2507 09 Aug 06 martin 621                   title="<%=tooltip%>"><%=name%></div></tbl:cell>
4331 11 Jun 08 martin 622                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
5649 30 May 11 nicklas 623                 <tbl:cell column="itemSubtype"><base:propertyvalue 
5649 30 May 11 nicklas 624                     item="<%=item%>" 
5649 30 May 11 nicklas 625                     property="itemSubtype"
5649 30 May 11 nicklas 626                     enableEditLink="<%=mode.hasEditLink()%>" 
5649 30 May 11 nicklas 627                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
5649 30 May 11 nicklas 628                   /></tbl:cell>
5642 26 May 11 nicklas 629                 <tbl:cell column="size"><%=item.getSize()%></tbl:cell>
5642 26 May 11 nicklas 630                 <tbl:cell column="extracts">
2411 22 Jun 06 nicklas 631                   <%
5642 26 May 11 nicklas 632                   extractQuery.setParameter("bioAssay", itemId, Type.INT);
2411 22 Jun 06 nicklas 633                   try
2411 22 Jun 06 nicklas 634                   {
2411 22 Jun 06 nicklas 635                     String separator = "";
5642 26 May 11 nicklas 636                     boolean needIndex = item.getSize() > 1;
5642 26 May 11 nicklas 637                     for (Extract extract : extractQuery.list(dc))
2411 22 Jun 06 nicklas 638                     {
5963 15 Feb 12 nicklas 639                       Float usedQuantity = creationEvent.getUsedQuantity(extract);
5642 26 May 11 nicklas 640                       Tag tag = null;
5642 26 May 11 nicklas 641                       boolean readTag = true;
2411 22 Jun 06 nicklas 642                       try
2411 22 Jun 06 nicklas 643                       {
5642 26 May 11 nicklas 644                         tag = extract.getTag();
2411 22 Jun 06 nicklas 645                       }
2411 22 Jun 06 nicklas 646                       catch (PermissionDeniedException ex)
2411 22 Jun 06 nicklas 647                       {
5642 26 May 11 nicklas 648                         readTag = false;
2411 22 Jun 06 nicklas 649                       }
2411 22 Jun 06 nicklas 650                       out.write(separator);
5642 26 May 11 nicklas 651                       if (needIndex)
4131 08 Feb 08 nicklas 652                       {
5662 20 Jun 11 nicklas 653                         out.write(creationEvent.getEventSource(extract).getPosition() + ": ");
4131 08 Feb 08 nicklas 654                       }
2411 22 Jun 06 nicklas 655                       if (mode.hasPropertyLink())
2411 22 Jun 06 nicklas 656                       {
5642 26 May 11 nicklas 657                         out.write(Base.getLinkedName(ID, extract, false, mode.hasEditLink()));
2411 22 Jun 06 nicklas 658                       }
2411 22 Jun 06 nicklas 659                       else
2411 22 Jun 06 nicklas 660                       {
5642 26 May 11 nicklas 661                         out.write(HTML.encodeTags(extract.getName()));
2411 22 Jun 06 nicklas 662                       }
5963 15 Feb 12 nicklas 663                       if (tag != null || usedQuantity != null)
5963 15 Feb 12 nicklas 664                       {
5963 15 Feb 12 nicklas 665                         out.write(" (");
5963 15 Feb 12 nicklas 666                         if (usedQuantity != null)
5963 15 Feb 12 nicklas 667                         {
6319 09 Sep 13 nicklas 668                           out.write(numericFormatter.format(usedQuantity) + "µg");
5963 15 Feb 12 nicklas 669                           if (tag != null) out.write("; ");
5963 15 Feb 12 nicklas 670                         }
5963 15 Feb 12 nicklas 671                         if (tag != null)
5963 15 Feb 12 nicklas 672                         {
5963 15 Feb 12 nicklas 673                           if (mode.hasPropertyLink())
5963 15 Feb 12 nicklas 674                           {
5963 15 Feb 12 nicklas 675                             out.write(Base.getLinkedName(ID, tag, !readTag, mode.hasEditLink()));
5963 15 Feb 12 nicklas 676                           }
5963 15 Feb 12 nicklas 677                           else
5963 15 Feb 12 nicklas 678                           {
5963 15 Feb 12 nicklas 679                             out.write(" (" + Base.getEncodedName(tag, !readTag));
5963 15 Feb 12 nicklas 680                           }
5963 15 Feb 12 nicklas 681                         }
5963 15 Feb 12 nicklas 682                         out.write(")");
5963 15 Feb 12 nicklas 683                       }
2411 22 Jun 06 nicklas 684                       separator = ", ";
2411 22 Jun 06 nicklas 685                     }
2411 22 Jun 06 nicklas 686                   }
2411 22 Jun 06 nicklas 687                   catch (Throwable t)
2411 22 Jun 06 nicklas 688                   {
2411 22 Jun 06 nicklas 689                     %>
2411 22 Jun 06 nicklas 690                     <div class="error"><%=t.getMessage()%></div>
2411 22 Jun 06 nicklas 691                     <%
2411 22 Jun 06 nicklas 692                   }
2411 22 Jun 06 nicklas 693                   %>              
2411 22 Jun 06 nicklas 694                 </tbl:cell>
2354 07 Jun 06 martin 695                 <tbl:cell column="arraySlide"
2354 07 Jun 06 martin 696                   ><base:propertyvalue 
2354 07 Jun 06 martin 697                     item="<%=item%>" 
2354 07 Jun 06 martin 698                     property="arraySlide"
2354 07 Jun 06 martin 699                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 700                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 701                   /></tbl:cell>
5685 04 Aug 11 nicklas 702                 <tbl:cell column="derivedBioAssays">
2411 22 Jun 06 nicklas 703                   <%
5652 10 Jun 11 nicklas 704                   dbasQuery.setParameter("bioAssay", itemId, Type.INT);
2411 22 Jun 06 nicklas 705                   %>
7813 19 May 20 nicklas 706                   <%=Values.getString(dbasQuery.list(dc), ", ", false, nameableFormatter) %>
2411 22 Jun 06 nicklas 707                   <base:icon
6311 23 Aug 13 nicklas 708                     subclass="link auto-init"
6311 23 Aug 13 nicklas 709                     data-auto-init="new-derived-bioassay"
6311 23 Aug 13 nicklas 710                     data-item-id="<%=itemId %>"
2411 22 Jun 06 nicklas 711                     image="add.png" 
5685 04 Aug 11 nicklas 712                     tooltip="Create new derived bioassay" 
5685 04 Aug 11 nicklas 713                     visible="<%=mode.hasEditLink() && createDerivedBioAssayPermission && usePermission %>"
2411 22 Jun 06 nicklas 714                   />
2411 22 Jun 06 nicklas 715                 </tbl:cell>
7813 19 May 20 nicklas 716                 <tbl:cell column="itemList">
7813 19 May 20 nicklas 717                   <%
7813 19 May 20 nicklas 718                   listQuery.setParameter("itemId", itemId, Type.INT);
7813 19 May 20 nicklas 719                   %>
7813 19 May 20 nicklas 720                   <%=Values.getString(listQuery.list(dc), ", ", false, nameableFormatter) %>
7813 19 May 20 nicklas 721                 </tbl:cell>
2354 07 Jun 06 martin 722                 <tbl:cell column="protocol"
2354 07 Jun 06 martin 723                   ><base:propertyvalue 
2354 07 Jun 06 martin 724                     item="<%=creationEvent%>" 
2354 07 Jun 06 martin 725                     property="protocol"
2354 07 Jun 06 martin 726                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 727                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 728                   /></tbl:cell>
5642 26 May 11 nicklas 729                 <tbl:cell column="hardware"
2484 03 Aug 06 martin 730                   ><base:propertyvalue 
2484 03 Aug 06 martin 731                     item="<%=creationEvent%>"
2484 03 Aug 06 martin 732                     property="hardware"
2484 03 Aug 06 martin 733                     enableEditLink="<%=mode.hasEditLink()%>" 
2484 03 Aug 06 martin 734                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2484 03 Aug 06 martin 735                   /></tbl:cell>
6994 03 Nov 15 nicklas 736                 <tbl:cell column="kit"
6994 03 Nov 15 nicklas 737                   ><base:propertyvalue 
6994 03 Nov 15 nicklas 738                     item="<%=creationEvent%>" 
6994 03 Nov 15 nicklas 739                     property="kit"
6994 03 Nov 15 nicklas 740                     enableEditLink="<%=mode.hasEditLink()%>" 
6994 03 Nov 15 nicklas 741                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
6994 03 Nov 15 nicklas 742                   /></tbl:cell>
2942 22 Nov 06 nicklas 743                 <tbl:cell column="eventDate" value="<%=creationEvent.getEventDate()%>" />
2942 22 Nov 06 nicklas 744                 <tbl:cell column="entryDate" value="<%=creationEvent.getEntryDate()%>" />
2354 07 Jun 06 martin 745                 <tbl:cell column="owner"
2354 07 Jun 06 martin 746                   ><base:propertyvalue 
2354 07 Jun 06 martin 747                     item="<%=item%>" 
2354 07 Jun 06 martin 748                     property="owner"
2354 07 Jun 06 martin 749                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 750                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 751                   /></tbl:cell>
2029 20 Feb 06 nicklas 752                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
2029 20 Feb 06 nicklas 753                 <%
6541 29 Sep 14 nicklas 754                 if (item.isAnnotated())
2029 20 Feb 06 nicklas 755                 {
6541 29 Sep 14 nicklas 756                   AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
6541 29 Sep 14 nicklas 757                   for (AnnotationLoaderUtil loader : annotationLoaders)
2942 22 Nov 06 nicklas 758                   {
6721 10 Feb 15 nicklas 759                     %>
6721 10 Feb 15 nicklas 760                     <tbl:cell 
6721 10 Feb 15 nicklas 761                       column="<%=(loader.isSearchingInheritedAnnotations() ? "ia" : "at")+loader.getId()%>"
6721 10 Feb 15 nicklas 762                       ><%
7337 12 Apr 17 nicklas 763                       if (loader.find(snapshot, psInfo.reset())) 
6721 10 Feb 15 nicklas 764                       {
6721 10 Feb 15 nicklas 765                         %><tbl:cellvalue 
6541 29 Sep 14 nicklas 766                           list="<%=loader.getValues()%>"
8160 07 Jun 23 nicklas 767                           bulletlist="<%=loader.useBulletList() %>"
6541 29 Sep 14 nicklas 768                           suffix="<%=loader.getUnitSymbol()%>"
8083 20 Oct 22 nicklas 769                           clazz="<%=psInfo.hasProjectSpecificAnnotation() ? "ps-annotation" : null%>"
6721 10 Feb 15 nicklas 770                         /><%
6721 10 Feb 15 nicklas 771                       }
6721 10 Feb 15 nicklas 772                       %></tbl:cell>
6721 10 Feb 15 nicklas 773                     <%
2942 22 Nov 06 nicklas 774                   }
2029 20 Feb 06 nicklas 775                 }
2029 20 Feb 06 nicklas 776                 %>
2401 21 Jun 06 martin 777                 <tbl:cell column="permission"><%=PermissionUtil.getShortPermissions(item)%></tbl:cell>
3552 06 Jul 07 martin 778                 <tbl:cell column="sharedTo">
7813 19 May 20 nicklas 779                   <%=Values.getString(ShareableUtil.getSharedTo(dc, item), ", ", false, nameableFormatter) %>
3552 06 Jul 07 martin 780                 </tbl:cell>
6040 30 Mar 12 nicklas 781                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6040 30 Mar 12 nicklas 782                   <tbl:cell column="xt-columns" />
6040 30 Mar 12 nicklas 783                 </tbl:xt-cells>
2029 20 Feb 06 nicklas 784               </tbl:row>
1806 23 Jan 06 nicklas 785               <%
1806 23 Jan 06 nicklas 786               }
1806 23 Jan 06 nicklas 787             }
5952 10 Feb 12 nicklas 788           if (numListed == 0)
5952 10 Feb 12 nicklas 789           {
5952 10 Feb 12 nicklas 790             %>
6604 18 Nov 14 nicklas 791             <tbl:panel subclass="bg-filled-50">
5952 10 Feb 12 nicklas 792               <div class="messagecontainer note">
5952 10 Feb 12 nicklas 793               <%=bioAssays == null || bioAssays.getTotalCount() == 0 ? "No physical bioassays were found" : "No physical bioassays on this page. Please select another page!" %>
5952 10 Feb 12 nicklas 794               </div>
5952 10 Feb 12 nicklas 795             </tbl:panel>
5952 10 Feb 12 nicklas 796             <%
5952 10 Feb 12 nicklas 797           }
1806 23 Jan 06 nicklas 798           %>
5952 10 Feb 12 nicklas 799         </tbl:rows>
1806 23 Jan 06 nicklas 800       </tbl:data>
1806 23 Jan 06 nicklas 801     </tbl:table>
5952 10 Feb 12 nicklas 802     </div>
5952 10 Feb 12 nicklas 803     
5951 09 Feb 12 nicklas 804     <base:buttongroup subclass="dialogbuttons">
6311 23 Aug 13 nicklas 805       <base:button id="btnOk" title="Ok" visible="<%=mode.hasOkButton()%>" />
6311 23 Aug 13 nicklas 806       <base:button id="close" title="Cancel" visible="<%=mode.hasCancelButton()%>" />
6311 23 Aug 13 nicklas 807       <base:button id="close" title="Close" visible="<%=mode.hasCloseButton()%>" />
1806 23 Jan 06 nicklas 808     </base:buttongroup>
5951 09 Feb 12 nicklas 809     
1806 23 Jan 06 nicklas 810   </base:body>
1806 23 Jan 06 nicklas 811   </base:page>
1806 23 Jan 06 nicklas 812   <%
1806 23 Jan 06 nicklas 813 }
1806 23 Jan 06 nicklas 814 finally
1806 23 Jan 06 nicklas 815 {
5642 26 May 11 nicklas 816   if (bioAssays != null) bioAssays.close();
1806 23 Jan 06 nicklas 817   if (dc != null) dc.close();
1806 23 Jan 06 nicklas 818 }
3675 16 Aug 07 jari 819 %>