www/biomaterials/bioplatetypes/list_platetypes.jsp

Code
Comments
Other
Rev Date Author Line
5262 08 Mar 10 nicklas 1 <%-- $Id $
5262 08 Mar 10 nicklas 2   ------------------------------------------------------------------
5262 08 Mar 10 nicklas 3   Copyright (C) 2010 Nicklas Nordborg
5262 08 Mar 10 nicklas 4
5262 08 Mar 10 nicklas 5   This file is part of BASE - BioArray Software Environment.
5262 08 Mar 10 nicklas 6   Available at http://base.thep.lu.se/
5262 08 Mar 10 nicklas 7
5262 08 Mar 10 nicklas 8   BASE is free software; you can redistribute it and/or
5262 08 Mar 10 nicklas 9   modify it under the terms of the GNU General Public License
5262 08 Mar 10 nicklas 10   as published by the Free Software Foundation; either version 3
5262 08 Mar 10 nicklas 11   of the License, or (at your option) any later version.
5262 08 Mar 10 nicklas 12
5262 08 Mar 10 nicklas 13   BASE is distributed in the hope that it will be useful,
5262 08 Mar 10 nicklas 14   but WITHOUT ANY WARRANTY; without even the implied warranty of
5262 08 Mar 10 nicklas 15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
5262 08 Mar 10 nicklas 16   GNU General Public License for more details.
5262 08 Mar 10 nicklas 17
5262 08 Mar 10 nicklas 18   You should have received a copy of the GNU General Public License
5262 08 Mar 10 nicklas 19   along with BASE. If not, see <http://www.gnu.org/licenses/>.
5262 08 Mar 10 nicklas 20   ------------------------------------------------------------------
5262 08 Mar 10 nicklas 21
5262 08 Mar 10 nicklas 22   @author Nicklas
5262 08 Mar 10 nicklas 23   @version 2.0
5262 08 Mar 10 nicklas 24 --%>
5426 24 Sep 10 nicklas 25 <%@ page pageEncoding="UTF-8" session="false"
5262 08 Mar 10 nicklas 26   import="net.sf.basedb.core.SessionControl"
5262 08 Mar 10 nicklas 27   import="net.sf.basedb.core.DbControl"
5262 08 Mar 10 nicklas 28   import="net.sf.basedb.core.Item"
5262 08 Mar 10 nicklas 29   import="net.sf.basedb.core.BioPlateType"
5262 08 Mar 10 nicklas 30   import="net.sf.basedb.core.ItemQuery"
5262 08 Mar 10 nicklas 31   import="net.sf.basedb.core.Include"
5262 08 Mar 10 nicklas 32   import="net.sf.basedb.core.Type"
5459 29 Oct 10 nicklas 33   import="net.sf.basedb.core.BioWell"
5709 26 Aug 11 nicklas 34   import="net.sf.basedb.core.ItemSubtype"
5262 08 Mar 10 nicklas 35   import="net.sf.basedb.core.ItemResultIterator"
5709 26 Aug 11 nicklas 36   import="net.sf.basedb.core.ItemQuery"
5262 08 Mar 10 nicklas 37   import="net.sf.basedb.core.ItemResultList"
5262 08 Mar 10 nicklas 38   import="net.sf.basedb.core.ItemContext"
5262 08 Mar 10 nicklas 39   import="net.sf.basedb.core.Permission"
5262 08 Mar 10 nicklas 40   import="net.sf.basedb.core.PluginDefinition"
5262 08 Mar 10 nicklas 41   import="net.sf.basedb.core.query.Hql"
5262 08 Mar 10 nicklas 42   import="net.sf.basedb.core.query.Restrictions"
5262 08 Mar 10 nicklas 43   import="net.sf.basedb.core.query.Expressions"
5262 08 Mar 10 nicklas 44   import="net.sf.basedb.core.query.Orders"
5262 08 Mar 10 nicklas 45   import="net.sf.basedb.core.plugin.GuiContext"
5262 08 Mar 10 nicklas 46   import="net.sf.basedb.core.plugin.Plugin"
5262 08 Mar 10 nicklas 47   import="net.sf.basedb.util.Enumeration"
5262 08 Mar 10 nicklas 48   import="net.sf.basedb.clients.web.Base"
5262 08 Mar 10 nicklas 49   import="net.sf.basedb.clients.web.ModeInfo"
5262 08 Mar 10 nicklas 50   import="net.sf.basedb.clients.web.PermissionUtil"
5262 08 Mar 10 nicklas 51   import="net.sf.basedb.clients.web.util.HTML"
5262 08 Mar 10 nicklas 52   import="net.sf.basedb.util.Values"
5262 08 Mar 10 nicklas 53   import="net.sf.basedb.util.formatter.Formatter"
5262 08 Mar 10 nicklas 54   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
5262 08 Mar 10 nicklas 55   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
5262 08 Mar 10 nicklas 56   import="net.sf.basedb.clients.web.extensions.JspContext"
5262 08 Mar 10 nicklas 57   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 58   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
5262 08 Mar 10 nicklas 59   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 60   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6038 29 Mar 12 nicklas 61   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
5262 08 Mar 10 nicklas 62   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
5262 08 Mar 10 nicklas 63   import="java.util.Date"
5262 08 Mar 10 nicklas 64   import="java.util.List"
5262 08 Mar 10 nicklas 65   import="java.util.Map"
5262 08 Mar 10 nicklas 66 %>
5262 08 Mar 10 nicklas 67 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
5262 08 Mar 10 nicklas 68 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
5262 08 Mar 10 nicklas 69 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
5262 08 Mar 10 nicklas 70 <%!
5262 08 Mar 10 nicklas 71   private static final Item itemType = Item.BIOPLATETYPE;
5262 08 Mar 10 nicklas 72   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST);
5262 08 Mar 10 nicklas 73   
5262 08 Mar 10 nicklas 74   private static Enumeration<String, String> bioMaterialTypes = new Enumeration<String, String>();
5262 08 Mar 10 nicklas 75   static
5262 08 Mar 10 nicklas 76   {
5349 21 May 10 nicklas 77     bioMaterialTypes.add("", "-any-");
5262 08 Mar 10 nicklas 78     bioMaterialTypes.add(Integer.toString(Item.SAMPLE.getValue()), Item.SAMPLE.toString());
5262 08 Mar 10 nicklas 79     bioMaterialTypes.add(Integer.toString(Item.EXTRACT.getValue()), Item.EXTRACT.toString());
5262 08 Mar 10 nicklas 80   }
5459 29 Oct 10 nicklas 81   private static Enumeration<String, String> lockModes = new Enumeration<String, String>();
5459 29 Oct 10 nicklas 82   static
5459 29 Oct 10 nicklas 83   {
5459 29 Oct 10 nicklas 84     for (BioWell.LockMode lm : BioWell.LockMode.values())
5459 29 Oct 10 nicklas 85     {
5459 29 Oct 10 nicklas 86       lockModes.add(Integer.toString(lm.getValue()), lm.toString());
5459 29 Oct 10 nicklas 87     }
5459 29 Oct 10 nicklas 88   }
5262 08 Mar 10 nicklas 89   
5262 08 Mar 10 nicklas 90 %>
5262 08 Mar 10 nicklas 91 <%
5262 08 Mar 10 nicklas 92 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
5262 08 Mar 10 nicklas 93 final String ID = sc.getId();
5262 08 Mar 10 nicklas 94 final boolean createPermission = sc.hasPermission(Permission.CREATE, itemType);
5262 08 Mar 10 nicklas 95 final boolean deletePermission = sc.hasPermission(Permission.DELETE, itemType);
5262 08 Mar 10 nicklas 96 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
5262 08 Mar 10 nicklas 97
5262 08 Mar 10 nicklas 98 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
5262 08 Mar 10 nicklas 99 final String callback = request.getParameter("callback");
5708 25 Aug 11 nicklas 100 final String title = mode.generateTitle("bioplate type", "bioplate types");
7954 12 May 21 nicklas 101 final DbControl dc = sc.newDbControl(":List "+itemType);
5262 08 Mar 10 nicklas 102 ItemResultIterator<BioPlateType> bioPlateTypes = null;
5262 08 Mar 10 nicklas 103 try
5262 08 Mar 10 nicklas 104 {
5262 08 Mar 10 nicklas 105   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
5709 26 Aug 11 nicklas 106   final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(null);
5709 26 Aug 11 nicklas 107   subtypesQuery.restrict(
5709 26 Aug 11 nicklas 108     Restrictions.in(
5709 26 Aug 11 nicklas 109       Hql.property("itemType"), 
5709 26 Aug 11 nicklas 110       Expressions.integer(Item.SAMPLE.getValue()), Expressions.integer(Item.EXTRACT.getValue())
5709 26 Aug 11 nicklas 111     ));
6056 12 Jun 12 nicklas 112   final ItemQuery<ItemSubtype> storageTypeQuery = Base.getSubtypesQuery(Item.HARDWARE);
7914 23 Feb 21 nicklas 113   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
5262 08 Mar 10 nicklas 114   try
5262 08 Mar 10 nicklas 115   {
7914 23 Feb 21 nicklas 116     final ItemQuery<BioPlateType> query = Base.getConfiguredQuery(dc, cc, jspContext, true, BioPlateType.getQuery(), mode);
5262 08 Mar 10 nicklas 117     bioPlateTypes = query.iterate(dc);
5262 08 Mar 10 nicklas 118   }
5262 08 Mar 10 nicklas 119   catch (Throwable t)
5262 08 Mar 10 nicklas 120   {
5262 08 Mar 10 nicklas 121     cc.setMessage(t.getMessage());
5262 08 Mar 10 nicklas 122   }
5262 08 Mar 10 nicklas 123   int numListed = 0;
7604 25 Feb 19 nicklas 124   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 125   ExtensionsInvoker<ListColumnAction<BioPlateType,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
5262 08 Mar 10 nicklas 126   %>
6260 27 Mar 13 nicklas 127   <base:page title="<%=title==null ? "Bioplate types" : title%>" type="<%=mode.getPageType()%>" id="list-page">
6260 27 Mar 13 nicklas 128   <base:head scripts="table.js,~bioplatetypes.js" styles="table.css,toolbar.css">
5262 08 Mar 10 nicklas 129     <ext:scripts context="<%=jspContext%>" />
5262 08 Mar 10 nicklas 130     <ext:stylesheets context="<%=jspContext%>" />
5262 08 Mar 10 nicklas 131   </base:head>
5262 08 Mar 10 nicklas 132   
5262 08 Mar 10 nicklas 133   <base:body>
5951 09 Feb 12 nicklas 134     <h1><%=title==null ? "Bioplate types" : title%></h1>
5951 09 Feb 12 nicklas 135     
5951 09 Feb 12 nicklas 136     <div class="content">
5262 08 Mar 10 nicklas 137     <tbl:table 
6260 27 Mar 13 nicklas 138       id="bioplatetypes" 
5262 08 Mar 10 nicklas 139       columns="<%=cc.getSetting("columns")%>"
5262 08 Mar 10 nicklas 140       sortby="<%=cc.getSortProperty()%>" 
5262 08 Mar 10 nicklas 141       direction="<%=cc.getSortDirection()%>"
5262 08 Mar 10 nicklas 142       action="index.jsp"
5262 08 Mar 10 nicklas 143       sc="<%=sc%>"
5262 08 Mar 10 nicklas 144       item="<%=itemType%>"
6701 30 Jan 15 nicklas 145       filterrows="<%=cc.getFilterRows()%>"
5951 09 Feb 12 nicklas 146       subclass="fulltable"
7982 14 Jun 21 nicklas 147       stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>"
5262 08 Mar 10 nicklas 148       >
5262 08 Mar 10 nicklas 149       <tbl:hidden 
5262 08 Mar 10 nicklas 150         name="mode" 
5262 08 Mar 10 nicklas 151         value="<%=mode.getName()%>" 
5262 08 Mar 10 nicklas 152       />
5262 08 Mar 10 nicklas 153       <tbl:hidden 
5262 08 Mar 10 nicklas 154         name="callback" 
5262 08 Mar 10 nicklas 155         value="<%=callback%>" 
5262 08 Mar 10 nicklas 156         skip="<%=callback == null%>" 
5262 08 Mar 10 nicklas 157       />
5262 08 Mar 10 nicklas 158       <tbl:columndef 
5262 08 Mar 10 nicklas 159         id="name"
5262 08 Mar 10 nicklas 160         property="name"
5262 08 Mar 10 nicklas 161         datatype="string"
5262 08 Mar 10 nicklas 162         title="Name"
5262 08 Mar 10 nicklas 163         sortable="true" 
5262 08 Mar 10 nicklas 164         filterable="true"
5262 08 Mar 10 nicklas 165         exportable="true"
5262 08 Mar 10 nicklas 166         show="always" 
5262 08 Mar 10 nicklas 167       />
5262 08 Mar 10 nicklas 168       <tbl:columndef 
5262 08 Mar 10 nicklas 169         id="id"
5262 08 Mar 10 nicklas 170         clazz="uniquecol"
5262 08 Mar 10 nicklas 171         property="id"
5262 08 Mar 10 nicklas 172         datatype="int"
5262 08 Mar 10 nicklas 173         title="ID"
5262 08 Mar 10 nicklas 174         sortable="true"
5262 08 Mar 10 nicklas 175         filterable="true"
5262 08 Mar 10 nicklas 176         exportable="true"
5262 08 Mar 10 nicklas 177       />
5262 08 Mar 10 nicklas 178       <tbl:columndef
5262 08 Mar 10 nicklas 179         id="bioMaterialType"
5262 08 Mar 10 nicklas 180         property="bioMaterialType"
5262 08 Mar 10 nicklas 181         title="Biomaterial type"
5262 08 Mar 10 nicklas 182         datatype="int"
5262 08 Mar 10 nicklas 183         sortable="true" 
5262 08 Mar 10 nicklas 184         filterable="true" 
5262 08 Mar 10 nicklas 185         exportable="true"
5262 08 Mar 10 nicklas 186         enumeration="<%=bioMaterialTypes%>"
5262 08 Mar 10 nicklas 187       />
5709 26 Aug 11 nicklas 188       <tbl:columndef 
5709 26 Aug 11 nicklas 189         id="itemSubtype"
5709 26 Aug 11 nicklas 190         property="itemSubtype"
5709 26 Aug 11 nicklas 191         sortproperty="itemSubtype.name"
5709 26 Aug 11 nicklas 192         exportproperty="itemSubtype.name:string"
5709 26 Aug 11 nicklas 193         datatype="int"
5709 26 Aug 11 nicklas 194         enumeration="<%=Enumeration.fromItems(subtypesQuery.list(dc), "-none-")%>"
5709 26 Aug 11 nicklas 195         title="Biomaterial subtype"
5709 26 Aug 11 nicklas 196         sortable="true" 
5709 26 Aug 11 nicklas 197         filterable="true"
5709 26 Aug 11 nicklas 198         exportable="true"
5709 26 Aug 11 nicklas 199       />
6056 12 Jun 12 nicklas 200       <tbl:columndef 
6056 12 Jun 12 nicklas 201         id="storageType"
6056 12 Jun 12 nicklas 202         property="storageType"
6056 12 Jun 12 nicklas 203         sortproperty="storageType.name"
6056 12 Jun 12 nicklas 204         exportproperty="storageType.name:string"
6056 12 Jun 12 nicklas 205         datatype="int"
6056 12 Jun 12 nicklas 206         enumeration="<%=Enumeration.fromItems(storageTypeQuery.list(dc), "-none-")%>"
6056 12 Jun 12 nicklas 207         title="Storage type"
6056 12 Jun 12 nicklas 208         sortable="true" 
6056 12 Jun 12 nicklas 209         filterable="true"
6056 12 Jun 12 nicklas 210         exportable="true"
6056 12 Jun 12 nicklas 211       />
5262 08 Mar 10 nicklas 212       <tbl:columndef
5459 29 Oct 10 nicklas 213         id="lockMode"
5459 29 Oct 10 nicklas 214         property="lockMode"
5459 29 Oct 10 nicklas 215         title="Well lock mode"
5459 29 Oct 10 nicklas 216         datatype="int"
5262 08 Mar 10 nicklas 217         sortable="true" 
5262 08 Mar 10 nicklas 218         filterable="true" 
5262 08 Mar 10 nicklas 219         exportable="true"
5459 29 Oct 10 nicklas 220         enumeration="<%=lockModes%>"
5262 08 Mar 10 nicklas 221       />
5262 08 Mar 10 nicklas 222       <tbl:columndef 
5262 08 Mar 10 nicklas 223         id="description"
5262 08 Mar 10 nicklas 224         property="description"
5262 08 Mar 10 nicklas 225         datatype="string"
5262 08 Mar 10 nicklas 226         title="Description" 
5262 08 Mar 10 nicklas 227         sortable="true" 
5262 08 Mar 10 nicklas 228         filterable="true" 
5262 08 Mar 10 nicklas 229         exportable="true"
5262 08 Mar 10 nicklas 230       />
6038 29 Mar 12 nicklas 231       <tbl:columndef 
6038 29 Mar 12 nicklas 232         id="xt-columns" 
6038 29 Mar 12 nicklas 233         extensions="<%=columnsInvoker%>" 
6038 29 Mar 12 nicklas 234         jspcontext="<%=jspContext%>" 
6038 29 Mar 12 nicklas 235       />
6604 18 Nov 14 nicklas 236       <div class="panelgroup bg-filled-50 bottomborder">
5951 09 Feb 12 nicklas 237         <tbl:toolbar
5951 09 Feb 12 nicklas 238           subclass="bottomborder"
5951 09 Feb 12 nicklas 239           visible="<%=mode.hasToolbar()%>"
5951 09 Feb 12 nicklas 240           >
5951 09 Feb 12 nicklas 241           <tbl:button 
6260 27 Mar 13 nicklas 242             id="btnNewItem"
5951 09 Feb 12 nicklas 243             disabled="<%=!createPermission%>" 
5951 09 Feb 12 nicklas 244             image="new.png" 
5951 09 Feb 12 nicklas 245             title="New&hellip;" 
5951 09 Feb 12 nicklas 246             tooltip="<%=createPermission ? "Create new bioplate type" : "You do not have permission to create bioplate types"%>" 
5951 09 Feb 12 nicklas 247           />
5951 09 Feb 12 nicklas 248           <tbl:button 
6260 27 Mar 13 nicklas 249             id="btnDeleteItems"
5951 09 Feb 12 nicklas 250             image="delete.png"
5951 09 Feb 12 nicklas 251             title="Delete" 
5951 09 Feb 12 nicklas 252             tooltip="Delete the selected items" 
5951 09 Feb 12 nicklas 253           />
5951 09 Feb 12 nicklas 254           <tbl:button 
6260 27 Mar 13 nicklas 255             id="btnRestoreItems"
5951 09 Feb 12 nicklas 256             image="restore.png"
5951 09 Feb 12 nicklas 257             title="Restore" 
5951 09 Feb 12 nicklas 258             tooltip="Restore the selected (deleted) items"
5951 09 Feb 12 nicklas 259           />
5951 09 Feb 12 nicklas 260           <tbl:button 
6260 27 Mar 13 nicklas 261             id="btnColumns"
5951 09 Feb 12 nicklas 262             image="columns.png" 
5951 09 Feb 12 nicklas 263             title="Columns&hellip;" 
5951 09 Feb 12 nicklas 264             tooltip="Show, hide and re-order columns" 
5951 09 Feb 12 nicklas 265           />
5951 09 Feb 12 nicklas 266           <tbl:button 
6260 27 Mar 13 nicklas 267             id="btnImport"
6260 27 Mar 13 nicklas 268             data-plugin-type="IMPORT"
5951 09 Feb 12 nicklas 269             image="import.png" 
5951 09 Feb 12 nicklas 270             title="Import&hellip;" 
5951 09 Feb 12 nicklas 271             tooltip="Import data" 
5951 09 Feb 12 nicklas 272             visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5951 09 Feb 12 nicklas 273           />
5951 09 Feb 12 nicklas 274           <tbl:button 
6260 27 Mar 13 nicklas 275             id="btnExport"
6260 27 Mar 13 nicklas 276             data-plugin-type="EXPORT"
5951 09 Feb 12 nicklas 277             image="export.png" 
5951 09 Feb 12 nicklas 278             title="Export&hellip;" 
5951 09 Feb 12 nicklas 279             tooltip="Export data" 
5951 09 Feb 12 nicklas 280             visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5951 09 Feb 12 nicklas 281           />
5951 09 Feb 12 nicklas 282           <tbl:button 
6260 27 Mar 13 nicklas 283             id="btnRunPlugin"
6260 27 Mar 13 nicklas 284             data-plugin-type="OTHER"
5951 09 Feb 12 nicklas 285             image="runplugin.png" 
5951 09 Feb 12 nicklas 286             title="Run plugin&hellip;" 
5951 09 Feb 12 nicklas 287             tooltip="Run a plugin" 
5951 09 Feb 12 nicklas 288             visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5951 09 Feb 12 nicklas 289           />
5951 09 Feb 12 nicklas 290           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 291             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5951 09 Feb 12 nicklas 292         </tbl:toolbar>
5951 09 Feb 12 nicklas 293         <tbl:panel>
6182 23 Oct 12 nicklas 294           <tbl:presetselector />
5951 09 Feb 12 nicklas 295           <tbl:navigator
5951 09 Feb 12 nicklas 296             page="<%=cc.getPage()%>" 
5951 09 Feb 12 nicklas 297             rowsperpage="<%=cc.getRowsPerPage()%>" 
5951 09 Feb 12 nicklas 298             totalrows="<%=bioPlateTypes == null ? 0 : bioPlateTypes.getTotalCount()%>" 
5951 09 Feb 12 nicklas 299             visible="<%=mode.hasNavigator()%>"
5951 09 Feb 12 nicklas 300           />
5951 09 Feb 12 nicklas 301         </tbl:panel>
5951 09 Feb 12 nicklas 302       </div>
5262 08 Mar 10 nicklas 303       <tbl:data>
5948 08 Feb 12 nicklas 304         <tbl:headers>
5948 08 Feb 12 nicklas 305           <tbl:headerrow>
7943 04 May 21 nicklas 306             <tbl:header clazz="row-index bg-filled-100" />
5948 08 Feb 12 nicklas 307             <tbl:columnheaders />
5948 08 Feb 12 nicklas 308           </tbl:headerrow>
6701 30 Jan 15 nicklas 309           <%
6701 30 Jan 15 nicklas 310           int numFilters = cc.getNumPropertyFilters();
6701 30 Jan 15 nicklas 311           int numRows = cc.getFilterRows();
6701 30 Jan 15 nicklas 312           for (int filterNo = 0; filterNo < numRows; filterNo++)
6701 30 Jan 15 nicklas 313           {
6701 30 Jan 15 nicklas 314             boolean lastRow = filterNo == numRows-1;
6701 30 Jan 15 nicklas 315             %>
6701 30 Jan 15 nicklas 316             <tbl:headerrow>
7943 04 May 21 nicklas 317               <tbl:header subclass="row-index bg-filled-100">
7943 04 May 21 nicklas 318                 <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 319                   <div class="index"></div>
7943 04 May 21 nicklas 320                   <div class="check">
7943 04 May 21 nicklas 321                     <base:icon 
7943 04 May 21 nicklas 322                       subclass="link table-check"
7943 04 May 21 nicklas 323                       image="check_uncheck.png" 
7943 04 May 21 nicklas 324                       tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)" 
7943 04 May 21 nicklas 325                       visible="<%=lastRow && mode.hasCheck()%>"
7943 04 May 21 nicklas 326                     />
7943 04 May 21 nicklas 327                   </div>
7943 04 May 21 nicklas 328                   <div class="icons">
7943 04 May 21 nicklas 329                     <base:icon
7943 04 May 21 nicklas 330                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 331                       image="add.png"
7943 04 May 21 nicklas 332                       tooltip="Add extra filter row"
7943 04 May 21 nicklas 333                       visible="<%=lastRow%>"
7943 04 May 21 nicklas 334                     /><base:icon
7943 04 May 21 nicklas 335                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 336                       image="remove.png"
7943 04 May 21 nicklas 337                       tooltip="Remove this filter row"
7943 04 May 21 nicklas 338                       visible="<%=numRows > 1 || numFilters > 0 %>"
7943 04 May 21 nicklas 339                       data-remove-row="<%=filterNo%>"
7943 04 May 21 nicklas 340                     />
7943 04 May 21 nicklas 341                   </div>
7943 04 May 21 nicklas 342                 </div>
6701 30 Jan 15 nicklas 343               </tbl:header>
6701 30 Jan 15 nicklas 344               <tbl:propertyfilter row="<%=filterNo%>" />
6701 30 Jan 15 nicklas 345             </tbl:headerrow>
6701 30 Jan 15 nicklas 346             <%
6701 30 Jan 15 nicklas 347           }
6701 30 Jan 15 nicklas 348           %>
7913 22 Feb 21 nicklas 349           <tbl:columnsubtitles />
5948 08 Feb 12 nicklas 350         </tbl:headers>
5948 08 Feb 12 nicklas 351         <tbl:rows>
5262 08 Mar 10 nicklas 352           <%
5951 09 Feb 12 nicklas 353           if (cc.getMessage() != null)
5951 09 Feb 12 nicklas 354           {
5951 09 Feb 12 nicklas 355             %>
6604 18 Nov 14 nicklas 356             <tbl:panel subclass="bg-filled-50">
5951 09 Feb 12 nicklas 357               <div class="messagecontainer error"><%=cc.getMessage()%></div>
5951 09 Feb 12 nicklas 358             </tbl:panel>
5951 09 Feb 12 nicklas 359             <%
5951 09 Feb 12 nicklas 360             cc.setMessage(null);
5951 09 Feb 12 nicklas 361           }
5262 08 Mar 10 nicklas 362           int index = cc.getPage()*cc.getRowsPerPage();
5262 08 Mar 10 nicklas 363           int selectedItemId = cc.getId();
5262 08 Mar 10 nicklas 364           if (bioPlateTypes != null)
5262 08 Mar 10 nicklas 365           {            
5262 08 Mar 10 nicklas 366             while (bioPlateTypes.hasNext())
5262 08 Mar 10 nicklas 367             {
5262 08 Mar 10 nicklas 368               BioPlateType item = bioPlateTypes.next();
5262 08 Mar 10 nicklas 369               int itemId = item.getId();
5262 08 Mar 10 nicklas 370               String name = HTML.encodeTags(item.getName());
5262 08 Mar 10 nicklas 371               boolean usePermission = item.hasPermission(Permission.USE);
5262 08 Mar 10 nicklas 372               boolean writePermission = item.hasPermission(Permission.WRITE);
6221 10 Jan 13 nicklas 373               
5262 08 Mar 10 nicklas 374               String tooltip = mode.isSelectionMode() ? 
5262 08 Mar 10 nicklas 375                   "Select this item" : "View this item" + (writePermission ? " (use CTRL, ALT or SHIFT to edit)" : "");
5262 08 Mar 10 nicklas 376               index++;
5262 08 Mar 10 nicklas 377               numListed++;
5262 08 Mar 10 nicklas 378               %>
5262 08 Mar 10 nicklas 379               <tbl:row>
7943 04 May 21 nicklas 380                 <tbl:header clazz="row-index bg-filled-100">
7943 04 May 21 nicklas 381                   <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 382                     <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
7943 04 May 21 nicklas 383                     <div class="check">
7943 04 May 21 nicklas 384                       <base:input
7943 04 May 21 nicklas 385                         type="checkbox" 
7943 04 May 21 nicklas 386                         name="<%=itemId%>" 
7943 04 May 21 nicklas 387                         value="<%=itemId%>" 
7943 04 May 21 nicklas 388                         title="<%=name%>" 
7943 04 May 21 nicklas 389                         checked="<%=cc.getSelected().contains(itemId)%>"
7943 04 May 21 nicklas 390                         visible="<%=mode.hasCheck()%>"
7943 04 May 21 nicklas 391                       />
7943 04 May 21 nicklas 392                       <base:input 
7943 04 May 21 nicklas 393                         type="radio" 
7943 04 May 21 nicklas 394                         name="item_id" 
7943 04 May 21 nicklas 395                         value="<%=itemId%>" 
7943 04 May 21 nicklas 396                         title="<%=name%>" 
7943 04 May 21 nicklas 397                         checked="<%=selectedItemId == itemId%>"
7943 04 May 21 nicklas 398                         visible="<%=mode.hasRadio()%>"
7943 04 May 21 nicklas 399                       />
7943 04 May 21 nicklas 400                     </div>
7943 04 May 21 nicklas 401                     <div class="icons">
7943 04 May 21 nicklas 402                       <base:icon 
7943 04 May 21 nicklas 403                         image="deleted.png"
7943 04 May 21 nicklas 404                         id="<%="delete."+itemId %>"
7943 04 May 21 nicklas 405                         subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
7943 04 May 21 nicklas 406                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 407                         tooltip="This item has been scheduled for deletion" 
7943 04 May 21 nicklas 408                         visible="<%=item.isRemoved()%>"
7943 04 May 21 nicklas 409                       />
7943 04 May 21 nicklas 410                     </div>
7943 04 May 21 nicklas 411                   </div>
7943 04 May 21 nicklas 412                 </tbl:header>
6260 27 Mar 13 nicklas 413                 <tbl:cell column="name"><div
6260 27 Mar 13 nicklas 414                   class="link table-item"
6260 27 Mar 13 nicklas 415                   data-item-id="<%=itemId%>"
6260 27 Mar 13 nicklas 416                   data-no-edit="<%=writePermission ? 0 : 1 %>" 
6260 27 Mar 13 nicklas 417                   tabindex="0"
5262 08 Mar 10 nicklas 418                   title="<%=tooltip%>"><%=name%></div></tbl:cell>
5262 08 Mar 10 nicklas 419                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
5262 08 Mar 10 nicklas 420                 <tbl:cell column="bioMaterialType"><%=item.getBioMaterialType() == null ? "<i>- any -</i>" : item.getBioMaterialType().toString() %></tbl:cell>
5709 26 Aug 11 nicklas 421                 <tbl:cell column="itemSubtype"><base:propertyvalue 
5709 26 Aug 11 nicklas 422                     item="<%=item%>" 
5709 26 Aug 11 nicklas 423                     property="itemSubtype"
5709 26 Aug 11 nicklas 424                     enableEditLink="<%=mode.hasEditLink()%>" 
5709 26 Aug 11 nicklas 425                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
5709 26 Aug 11 nicklas 426                   /></tbl:cell>
6056 12 Jun 12 nicklas 427                 <tbl:cell column="storageType"><base:propertyvalue 
6056 12 Jun 12 nicklas 428                     item="<%=item%>" 
6056 12 Jun 12 nicklas 429                     property="storageType"
6056 12 Jun 12 nicklas 430                     enableEditLink="<%=mode.hasEditLink()%>" 
6056 12 Jun 12 nicklas 431                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
6056 12 Jun 12 nicklas 432                   /></tbl:cell>
5459 29 Oct 10 nicklas 433                 <tbl:cell column="lockMode"><%=item.getLockMode()%></tbl:cell>
5262 08 Mar 10 nicklas 434                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
6038 29 Mar 12 nicklas 435                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6038 29 Mar 12 nicklas 436                   <tbl:cell column="xt-columns" />
6038 29 Mar 12 nicklas 437                 </tbl:xt-cells>
5262 08 Mar 10 nicklas 438               </tbl:row>
5262 08 Mar 10 nicklas 439               <%
5262 08 Mar 10 nicklas 440               }
5262 08 Mar 10 nicklas 441             }
5951 09 Feb 12 nicklas 442           if (numListed == 0)
5951 09 Feb 12 nicklas 443           {
5951 09 Feb 12 nicklas 444             %>
6604 18 Nov 14 nicklas 445             <tbl:panel subclass="bg-filled-50">
5951 09 Feb 12 nicklas 446               <div class="messagecontainer note">
5951 09 Feb 12 nicklas 447               <%=bioPlateTypes == null || bioPlateTypes.getTotalCount() == 0 ? "No bioplate types were found" : "No bioplate types on this page. Please select another page!" %>
5951 09 Feb 12 nicklas 448               </div>
5951 09 Feb 12 nicklas 449             </tbl:panel>
5951 09 Feb 12 nicklas 450             <%
5951 09 Feb 12 nicklas 451           }
5262 08 Mar 10 nicklas 452           %>
5951 09 Feb 12 nicklas 453         </tbl:rows>
5262 08 Mar 10 nicklas 454       </tbl:data>
5262 08 Mar 10 nicklas 455     </tbl:table>
5951 09 Feb 12 nicklas 456     </div>
5951 09 Feb 12 nicklas 457     
5951 09 Feb 12 nicklas 458     <base:buttongroup subclass="dialogbuttons">
6260 27 Mar 13 nicklas 459       <base:button id="btnOk" title="Ok" visible="<%=mode.hasOkButton()%>" />
6260 27 Mar 13 nicklas 460       <base:button id="close" title="Cancel" visible="<%=mode.hasCancelButton()%>" />
6260 27 Mar 13 nicklas 461       <base:button id="close" title="Close" visible="<%=mode.hasCloseButton()%>" />
5262 08 Mar 10 nicklas 462     </base:buttongroup>
5951 09 Feb 12 nicklas 463
5262 08 Mar 10 nicklas 464   </base:body>
5262 08 Mar 10 nicklas 465   </base:page>
5262 08 Mar 10 nicklas 466   <%
5262 08 Mar 10 nicklas 467 }
5262 08 Mar 10 nicklas 468 finally
5262 08 Mar 10 nicklas 469 {
5262 08 Mar 10 nicklas 470   if (bioPlateTypes != null) bioPlateTypes.close();
5262 08 Mar 10 nicklas 471   if (dc != null) dc.close();
5262 08 Mar 10 nicklas 472 }
5262 08 Mar 10 nicklas 473 %>