www/views/rawbioassays/list_rawbioassays.jsp

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