www/views/derivedbioassays/list_bioassays.jsp

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