www/lims/arraybatches/list_batches.jsp

Code
Comments
Other
Rev Date Author Line
1813 24 Jan 06 nicklas 1 <%-- $Id$
1813 24 Jan 06 nicklas 2   ------------------------------------------------------------------
5425 23 Sep 10 nicklas 3   Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg, Martin Svensson
3675 16 Aug 07 jari 4   Copyright (C) 2007 Johan Enell, Martin Svensson
1813 24 Jan 06 nicklas 5
2304 22 May 06 jari 6   This file is part of BASE - BioArray Software Environment.
2304 22 May 06 jari 7   Available at http://base.thep.lu.se/
1813 24 Jan 06 nicklas 8
1813 24 Jan 06 nicklas 9   BASE is free software; you can redistribute it and/or
1813 24 Jan 06 nicklas 10   modify it under the terms of the GNU General Public License
4476 05 Sep 08 jari 11   as published by the Free Software Foundation; either version 3
1813 24 Jan 06 nicklas 12   of the License, or (at your option) any later version.
1813 24 Jan 06 nicklas 13
1813 24 Jan 06 nicklas 14   BASE is distributed in the hope that it will be useful,
1813 24 Jan 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
1813 24 Jan 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1813 24 Jan 06 nicklas 17   GNU General Public License for more details.
1813 24 Jan 06 nicklas 18
1813 24 Jan 06 nicklas 19   You should have received a copy of the GNU General Public License
4511 11 Sep 08 jari 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
1813 24 Jan 06 nicklas 21   ------------------------------------------------------------------
1813 24 Jan 06 nicklas 22
1813 24 Jan 06 nicklas 23   @author Nicklas
1813 24 Jan 06 nicklas 24   @version 2.0
1813 24 Jan 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1813 24 Jan 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
1813 24 Jan 06 nicklas 28   import="net.sf.basedb.core.DbControl"
1813 24 Jan 06 nicklas 29   import="net.sf.basedb.core.Item"
1813 24 Jan 06 nicklas 30   import="net.sf.basedb.core.ArrayBatch"
2449 29 Jun 06 nicklas 31   import="net.sf.basedb.core.ArraySlide"
1813 24 Jan 06 nicklas 32   import="net.sf.basedb.core.AnnotationType"
1813 24 Jan 06 nicklas 33   import="net.sf.basedb.core.AnnotationSet"
4560 06 Oct 08 nicklas 34   import="net.sf.basedb.core.Annotation"
3552 06 Jul 07 martin 35   import="net.sf.basedb.core.Nameable"
1813 24 Jan 06 nicklas 36   import="net.sf.basedb.core.ItemQuery"
1813 24 Jan 06 nicklas 37   import="net.sf.basedb.core.Include"
2449 29 Jun 06 nicklas 38   import="net.sf.basedb.core.Type"
1813 24 Jan 06 nicklas 39   import="net.sf.basedb.core.ItemResultIterator"
1813 24 Jan 06 nicklas 40   import="net.sf.basedb.core.ItemResultList"
1813 24 Jan 06 nicklas 41   import="net.sf.basedb.core.ItemContext"
1813 24 Jan 06 nicklas 42   import="net.sf.basedb.core.Permission"
1813 24 Jan 06 nicklas 43   import="net.sf.basedb.core.PluginDefinition"
1813 24 Jan 06 nicklas 44   import="net.sf.basedb.core.query.Hql"
1813 24 Jan 06 nicklas 45   import="net.sf.basedb.core.query.Restrictions"
1813 24 Jan 06 nicklas 46   import="net.sf.basedb.core.query.Expressions"
2449 29 Jun 06 nicklas 47   import="net.sf.basedb.core.query.Orders"
1813 24 Jan 06 nicklas 48   import="net.sf.basedb.core.plugin.GuiContext"
1813 24 Jan 06 nicklas 49   import="net.sf.basedb.core.plugin.Plugin"
6541 29 Sep 14 nicklas 50   import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
6541 29 Sep 14 nicklas 51   import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
6541 29 Sep 14 nicklas 52   import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
6541 29 Sep 14 nicklas 53   import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
6541 29 Sep 14 nicklas 54   import="net.sf.basedb.core.snapshot.SnapshotManager"
3551 05 Jul 07 martin 55   import="net.sf.basedb.core.User"
1813 24 Jan 06 nicklas 56   import="net.sf.basedb.util.Enumeration"
3552 06 Jul 07 martin 57   import="net.sf.basedb.util.ShareableUtil"
1813 24 Jan 06 nicklas 58   import="net.sf.basedb.clients.web.Base"
1813 24 Jan 06 nicklas 59   import="net.sf.basedb.clients.web.ModeInfo"
2401 21 Jun 06 martin 60   import="net.sf.basedb.clients.web.PermissionUtil"
1813 24 Jan 06 nicklas 61   import="net.sf.basedb.clients.web.util.HTML"
2942 22 Nov 06 nicklas 62   import="net.sf.basedb.util.formatter.Formatter"
2753 20 Oct 06 nicklas 63   import="net.sf.basedb.util.Values"
4698 10 Dec 08 nicklas 64   import="net.sf.basedb.util.formatter.Formatter"
4698 10 Dec 08 nicklas 65   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4884 03 Apr 09 nicklas 66   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4884 03 Apr 09 nicklas 67   import="net.sf.basedb.clients.web.extensions.JspContext"
4884 03 Apr 09 nicklas 68   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 69   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4884 03 Apr 09 nicklas 70   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 71   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6039 29 Mar 12 nicklas 72   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
7337 12 Apr 17 nicklas 73   import="net.sf.basedb.clients.web.util.ProjectSpecificInfoFilter"
4884 03 Apr 09 nicklas 74   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
4698 10 Dec 08 nicklas 75   import="java.util.Date"
3551 05 Jul 07 martin 76   import="java.util.ArrayList"
3552 06 Jul 07 martin 77   import="java.util.Iterator"
1813 24 Jan 06 nicklas 78   import="java.util.List"
1813 24 Jan 06 nicklas 79   import="java.util.Map"
1813 24 Jan 06 nicklas 80 %>
1813 24 Jan 06 nicklas 81 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1813 24 Jan 06 nicklas 82 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
4884 03 Apr 09 nicklas 83 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1813 24 Jan 06 nicklas 84 <%!
1813 24 Jan 06 nicklas 85   private static final Item itemType = Item.ARRAYBATCH;
1813 24 Jan 06 nicklas 86   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST);
1813 24 Jan 06 nicklas 87 %>
1813 24 Jan 06 nicklas 88 <%
1813 24 Jan 06 nicklas 89 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
1813 24 Jan 06 nicklas 90 final String ID = sc.getId();
1813 24 Jan 06 nicklas 91 final boolean createPermission = sc.hasPermission(Permission.CREATE, itemType);
1813 24 Jan 06 nicklas 92 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1813 24 Jan 06 nicklas 93
1813 24 Jan 06 nicklas 94 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
1813 24 Jan 06 nicklas 95 final String callback = request.getParameter("callback");
4103 28 Jan 08 martin 96 final String title = mode.generateTitle("array batch", "array batches");
7954 12 May 21 nicklas 97 final DbControl dc = sc.newDbControl(":List "+itemType);
1813 24 Jan 06 nicklas 98 ItemResultIterator<ArrayBatch> batches = null;
6541 29 Sep 14 nicklas 99 List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
1813 24 Jan 06 nicklas 100 try
1813 24 Jan 06 nicklas 101 {
4698 10 Dec 08 nicklas 102   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
6690 21 Jan 15 nicklas 103   ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
6541 29 Sep 14 nicklas 104   SnapshotManager manager = new SnapshotManager();
7337 12 Apr 17 nicklas 105   ProjectSpecificInfoFilter psInfo = new ProjectSpecificInfoFilter();
6541 29 Sep 14 nicklas 106   for (AnnotationType at : annotationTypeQuery.list(dc))
6541 29 Sep 14 nicklas 107   {
6541 29 Sep 14 nicklas 108     annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
6541 29 Sep 14 nicklas 109   }
6690 21 Jan 15 nicklas 110   annotationTypeQuery = Base.getInheritedAnnotationColumns(cc.getSetting("columns"));
6690 21 Jan 15 nicklas 111   for (AnnotationType at : annotationTypeQuery.list(dc))
6690 21 Jan 15 nicklas 112   {
6690 21 Jan 15 nicklas 113     annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at, false, true));
6690 21 Jan 15 nicklas 114   }
1813 24 Jan 06 nicklas 115
2449 29 Jun 06 nicklas 116   // Query for slide relatated to the current batch
2449 29 Jun 06 nicklas 117   final ItemQuery<ArraySlide> slideQuery = ArraySlide.getQuery();
2449 29 Jun 06 nicklas 118   slideQuery.include(cc.getInclude());
2449 29 Jun 06 nicklas 119   slideQuery.restrict(Restrictions.eq(Hql.property("arrayBatch"), Expressions.parameter("arrayBatch")));
2449 29 Jun 06 nicklas 120   slideQuery.order(Orders.asc(Hql.property("name"))); 
2449 29 Jun 06 nicklas 121   final boolean createSlidePermission = sc.hasPermission(Permission.CREATE, Item.ARRAYSLIDE);   
2449 29 Jun 06 nicklas 122
1813 24 Jan 06 nicklas 123   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
7914 23 Feb 21 nicklas 124   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
2029 20 Feb 06 nicklas 125   try
2029 20 Feb 06 nicklas 126   {
7914 23 Feb 21 nicklas 127     final ItemQuery<ArrayBatch> query = Base.getConfiguredQuery(dc, cc, jspContext, true, ArrayBatch.getQuery(), mode);
2029 20 Feb 06 nicklas 128     batches = query.iterate(dc);
2029 20 Feb 06 nicklas 129   }
2029 20 Feb 06 nicklas 130   catch (Throwable t)
2029 20 Feb 06 nicklas 131   {
2029 20 Feb 06 nicklas 132     cc.setMessage(t.getMessage());
4560 06 Oct 08 nicklas 133     t.printStackTrace();
2029 20 Feb 06 nicklas 134   }
1813 24 Jan 06 nicklas 135   int numListed = 0;
7604 25 Feb 19 nicklas 136   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 137   ExtensionsInvoker<ListColumnAction<ArrayBatch,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
1813 24 Jan 06 nicklas 138   %>
6307 15 Aug 13 nicklas 139   <base:page title="<%=title==null ? "Array batches" : title%>" type="<%=mode.getPageType()%>" id="list-page">
6307 15 Aug 13 nicklas 140   <base:head scripts="table.js,~batches.js" styles="table.css,toolbar.css">
4884 03 Apr 09 nicklas 141     <ext:scripts context="<%=jspContext%>" />
4884 03 Apr 09 nicklas 142     <ext:stylesheets context="<%=jspContext%>" />
1813 24 Jan 06 nicklas 143   </base:head>
1813 24 Jan 06 nicklas 144   
1813 24 Jan 06 nicklas 145   <base:body>
5954 13 Feb 12 nicklas 146     <h1><%=title==null ? "Array batches" : title%></h1>
5954 13 Feb 12 nicklas 147     <div class="content">
1813 24 Jan 06 nicklas 148     <tbl:table 
1813 24 Jan 06 nicklas 149       id="batches" 
1813 24 Jan 06 nicklas 150       columns="<%=cc.getSetting("columns")%>"
1813 24 Jan 06 nicklas 151       sortby="<%=cc.getSortProperty()%>" 
1813 24 Jan 06 nicklas 152       direction="<%=cc.getSortDirection()%>"
1813 24 Jan 06 nicklas 153       action="index.jsp"
1813 24 Jan 06 nicklas 154       sc="<%=sc%>"
1813 24 Jan 06 nicklas 155       item="<%=itemType%>"
6702 02 Feb 15 nicklas 156       filterrows="<%=cc.getFilterRows()%>"
5954 13 Feb 12 nicklas 157       subclass="fulltable"
6690 21 Jan 15 nicklas 158       data-inherited-annotations="true"
7982 14 Jun 21 nicklas 159       stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>"
1813 24 Jan 06 nicklas 160       >
1813 24 Jan 06 nicklas 161       <tbl:hidden 
1813 24 Jan 06 nicklas 162         name="mode" 
1813 24 Jan 06 nicklas 163         value="<%=mode.getName()%>" 
1813 24 Jan 06 nicklas 164       />
1813 24 Jan 06 nicklas 165       <tbl:hidden 
1813 24 Jan 06 nicklas 166         name="callback" 
1813 24 Jan 06 nicklas 167         value="<%=callback%>" 
1813 24 Jan 06 nicklas 168         skip="<%=callback == null%>" 
1813 24 Jan 06 nicklas 169       />
1813 24 Jan 06 nicklas 170       <tbl:columndef 
1813 24 Jan 06 nicklas 171         id="name"
1813 24 Jan 06 nicklas 172         property="name"
1813 24 Jan 06 nicklas 173         datatype="string"
1813 24 Jan 06 nicklas 174         title="Name"
1813 24 Jan 06 nicklas 175         sortable="true" 
1813 24 Jan 06 nicklas 176         filterable="true"
1813 24 Jan 06 nicklas 177         exportable="true"
1813 24 Jan 06 nicklas 178         show="always" 
1813 24 Jan 06 nicklas 179       />
1813 24 Jan 06 nicklas 180       <tbl:columndef 
4332 12 Jun 08 martin 181         id="id"
4387 11 Aug 08 nicklas 182         clazz="uniquecol"
4332 12 Jun 08 martin 183         property="id"
4332 12 Jun 08 martin 184         datatype="int"
4332 12 Jun 08 martin 185         title="ID"
4332 12 Jun 08 martin 186         sortable="true"
4332 12 Jun 08 martin 187         filterable="true"
4332 12 Jun 08 martin 188         exportable="true"
4332 12 Jun 08 martin 189       />
4332 12 Jun 08 martin 190       <tbl:columndef 
4698 10 Dec 08 nicklas 191         id="entryDate"
4698 10 Dec 08 nicklas 192         property="entryDate"
4698 10 Dec 08 nicklas 193         datatype="date"
4698 10 Dec 08 nicklas 194         title="Registered"
4698 10 Dec 08 nicklas 195         sortable="true" 
4698 10 Dec 08 nicklas 196         filterable="true"
4698 10 Dec 08 nicklas 197         exportable="true"
4698 10 Dec 08 nicklas 198         formatter="<%=dateFormatter%>"
4698 10 Dec 08 nicklas 199       />
4698 10 Dec 08 nicklas 200       <tbl:columndef 
1813 24 Jan 06 nicklas 201         id="arrayDesign"
1813 24 Jan 06 nicklas 202         property="arrayDesign.name"
1813 24 Jan 06 nicklas 203         datatype="string"
1813 24 Jan 06 nicklas 204         title="Array design"
1813 24 Jan 06 nicklas 205         sortable="true" 
1813 24 Jan 06 nicklas 206         filterable="true"
1813 24 Jan 06 nicklas 207         exportable="true"
1813 24 Jan 06 nicklas 208       />
1813 24 Jan 06 nicklas 209       <tbl:columndef 
1813 24 Jan 06 nicklas 210         id="printRobot"
1813 24 Jan 06 nicklas 211         property="printRobot.name"
1813 24 Jan 06 nicklas 212         datatype="string"
1813 24 Jan 06 nicklas 213         title="Print robot"
1813 24 Jan 06 nicklas 214         sortable="true" 
1813 24 Jan 06 nicklas 215         filterable="true"
1813 24 Jan 06 nicklas 216         exportable="true"
1813 24 Jan 06 nicklas 217       />
1813 24 Jan 06 nicklas 218       <tbl:columndef 
1813 24 Jan 06 nicklas 219         id="protocol"
1813 24 Jan 06 nicklas 220         property="protocol.name"
1813 24 Jan 06 nicklas 221         datatype="string"
1813 24 Jan 06 nicklas 222         title="Protocol"
1813 24 Jan 06 nicklas 223         sortable="true" 
1813 24 Jan 06 nicklas 224         filterable="true"
1813 24 Jan 06 nicklas 225         exportable="true"
1813 24 Jan 06 nicklas 226       />
2449 29 Jun 06 nicklas 227       <tbl:columndef
2449 29 Jun 06 nicklas 228         id="slides"
2449 29 Jun 06 nicklas 229         title="Slides"
4610 28 Oct 08 nicklas 230         property="&arraySlides(name)"
4610 28 Oct 08 nicklas 231         datatype="string"
4610 28 Oct 08 nicklas 232         filterable="true"
2449 29 Jun 06 nicklas 233       />
1813 24 Jan 06 nicklas 234       <tbl:columndef 
1813 24 Jan 06 nicklas 235         id="owner"
1813 24 Jan 06 nicklas 236         property="owner.name"
1813 24 Jan 06 nicklas 237         datatype="string"
1813 24 Jan 06 nicklas 238         title="Owner"
1813 24 Jan 06 nicklas 239         sortable="true" 
1813 24 Jan 06 nicklas 240         filterable="true"
1813 24 Jan 06 nicklas 241         exportable="true"
1813 24 Jan 06 nicklas 242       />
1813 24 Jan 06 nicklas 243       <tbl:columndef 
1813 24 Jan 06 nicklas 244         id="description"
1813 24 Jan 06 nicklas 245         property="description"
1813 24 Jan 06 nicklas 246         datatype="string"
1813 24 Jan 06 nicklas 247         title="Description" 
1813 24 Jan 06 nicklas 248         sortable="true" 
1813 24 Jan 06 nicklas 249         filterable="true" 
1813 24 Jan 06 nicklas 250         exportable="true"
2401 21 Jun 06 martin 251       />      
1813 24 Jan 06 nicklas 252       <%
6541 29 Sep 14 nicklas 253       for (AnnotationLoaderUtil loader : annotationLoaders)
1813 24 Jan 06 nicklas 254       {
6541 29 Sep 14 nicklas 255         AnnotationType at = loader.getAnnotationType();
7605 26 Feb 19 nicklas 256         Formatter<Object> formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
1813 24 Jan 06 nicklas 257         Enumeration<String, String> annotationEnum = null;
1813 24 Jan 06 nicklas 258         if (at.isEnumeration())
1813 24 Jan 06 nicklas 259         {
1813 24 Jan 06 nicklas 260           annotationEnum = new Enumeration<String, String>();
6784 18 Mar 15 nicklas 261           if (!at.getDisplayAsList()) annotationEnum.add("", "-none-");
1813 24 Jan 06 nicklas 262           List<?> values = at.getValues();
1813 24 Jan 06 nicklas 263           for (Object value : values)
1813 24 Jan 06 nicklas 264           {
2942 22 Nov 06 nicklas 265             String encoded = formatter.format(value);
1813 24 Jan 06 nicklas 266             annotationEnum.add(encoded, encoded);
1813 24 Jan 06 nicklas 267           }
1813 24 Jan 06 nicklas 268         }
1813 24 Jan 06 nicklas 269         %>
1813 24 Jan 06 nicklas 270         <tbl:columndef 
6690 21 Jan 15 nicklas 271           id="<%=(loader.isSearchingInheritedAnnotations() ? "ia" : "at")+at.getId()%>"
6690 21 Jan 15 nicklas 272           title="<%=HTML.encodeTags(at.getName())+(loader.isSearchingInheritedAnnotations() ? " [I]" : " [A]")%>" 
6690 21 Jan 15 nicklas 273           property="<%=(loader.isSearchingInheritedAnnotations() ? "##" : "#")+at.getId()%>"
1813 24 Jan 06 nicklas 274           annotation="true"
1813 24 Jan 06 nicklas 275           datatype="<%=at.getValueType().getStringValue()%>"
1813 24 Jan 06 nicklas 276           enumeration="<%=annotationEnum%>"
5674 27 Jun 11 nicklas 277           smartenum="<%=at.getDisplayAsList() %>"
6690 21 Jan 15 nicklas 278           sortable="<%=at.getMultiplicity() == 1 && !loader.isSearchingInheritedAnnotations()%>" 
1813 24 Jan 06 nicklas 279           filterable="true" 
1813 24 Jan 06 nicklas 280           exportable="true"
2942 22 Nov 06 nicklas 281           formatter="<%=formatter%>"
4560 06 Oct 08 nicklas 282           unit="<%=at.getDefaultUnit()%>"
1813 24 Jan 06 nicklas 283         />
1813 24 Jan 06 nicklas 284         <%
1813 24 Jan 06 nicklas 285       }
1813 24 Jan 06 nicklas 286       %>
2401 21 Jun 06 martin 287       <tbl:columndef
2401 21 Jun 06 martin 288         id="permission"
2401 21 Jun 06 martin 289         title="Permission"
2401 21 Jun 06 martin 290       />
5165 28 Oct 09 nicklas 291       <tbl:columndef
3551 05 Jul 07 martin 292         id="sharedTo"
5165 28 Oct 09 nicklas 293         title="Shared to"
5165 28 Oct 09 nicklas 294         filterable="true"
5165 28 Oct 09 nicklas 295         filterproperty="!sharedTo.name"
5165 28 Oct 09 nicklas 296         datatype="string"
3551 05 Jul 07 martin 297       />
6039 29 Mar 12 nicklas 298       <tbl:columndef 
6039 29 Mar 12 nicklas 299         id="xt-columns" 
6039 29 Mar 12 nicklas 300         extensions="<%=columnsInvoker%>" 
6039 29 Mar 12 nicklas 301         jspcontext="<%=jspContext%>" 
6039 29 Mar 12 nicklas 302       />
6604 18 Nov 14 nicklas 303       <div class="panelgroup bg-filled-50 bottomborder">
5954 13 Feb 12 nicklas 304         <tbl:toolbar
5954 13 Feb 12 nicklas 305           subclass="bottomborder"
5954 13 Feb 12 nicklas 306           visible="<%=mode.hasToolbar()%>"
5954 13 Feb 12 nicklas 307           >
5954 13 Feb 12 nicklas 308           <tbl:button 
6307 15 Aug 13 nicklas 309             id="btnNewItem"
5954 13 Feb 12 nicklas 310             disabled="<%=!createPermission%>" 
5954 13 Feb 12 nicklas 311             image="new.png" 
5954 13 Feb 12 nicklas 312             title="New&hellip;" 
5954 13 Feb 12 nicklas 313             tooltip="<%=createPermission ? "Create new array batche" : "You do not have permission to create array batches"%>" 
5954 13 Feb 12 nicklas 314           />
5954 13 Feb 12 nicklas 315           <tbl:button 
6307 15 Aug 13 nicklas 316             id="btnDeleteItems"
5954 13 Feb 12 nicklas 317             image="delete.png"
5954 13 Feb 12 nicklas 318             title="Delete" 
5954 13 Feb 12 nicklas 319             tooltip="Delete the selected items" 
5954 13 Feb 12 nicklas 320           />
5954 13 Feb 12 nicklas 321           <tbl:button 
6307 15 Aug 13 nicklas 322             id="btnRestoreItems"
5954 13 Feb 12 nicklas 323             image="restore.png"
5954 13 Feb 12 nicklas 324             title="Restore" 
5954 13 Feb 12 nicklas 325             tooltip="Restore the selected (deleted) items"
5954 13 Feb 12 nicklas 326           />
5954 13 Feb 12 nicklas 327           <tbl:button 
6307 15 Aug 13 nicklas 328             id="btnShareItems"
5954 13 Feb 12 nicklas 329             image="share.png"
5954 13 Feb 12 nicklas 330             title="Share&hellip;" 
5954 13 Feb 12 nicklas 331             tooltip="Share the selected items"
5954 13 Feb 12 nicklas 332           />
5954 13 Feb 12 nicklas 333           <tbl:button 
6307 15 Aug 13 nicklas 334             id="btnSetOwner"
5954 13 Feb 12 nicklas 335             image="take_ownership.png"
5954 13 Feb 12 nicklas 336             title="Set owner&hellip;"
5954 13 Feb 12 nicklas 337             tooltip="Change owner of the selected items"
5954 13 Feb 12 nicklas 338           />
5954 13 Feb 12 nicklas 339           <tbl:button 
6307 15 Aug 13 nicklas 340             id="btnColumns"
5954 13 Feb 12 nicklas 341             image="columns.png" 
5954 13 Feb 12 nicklas 342             title="Columns&hellip;" 
5954 13 Feb 12 nicklas 343             tooltip="Show, hide and re-order columns" 
5954 13 Feb 12 nicklas 344           />
6695 28 Jan 15 nicklas 345           <tbl:button
6695 28 Jan 15 nicklas 346             id="btnInheritAnnotations"
6695 28 Jan 15 nicklas 347             image="inherit.png"
6695 28 Jan 15 nicklas 348             title="Inherit annotations&hellip;"
6695 28 Jan 15 nicklas 349             tooltip="Batch inherit annotations from parent items"
6695 28 Jan 15 nicklas 350           />
5954 13 Feb 12 nicklas 351           <tbl:button 
6307 15 Aug 13 nicklas 352             id="btnImport"
6307 15 Aug 13 nicklas 353             data-plugin-type="IMPORT"
5954 13 Feb 12 nicklas 354             image="import.png" 
5954 13 Feb 12 nicklas 355             title="Import&hellip;" 
5954 13 Feb 12 nicklas 356             tooltip="Import data" 
5954 13 Feb 12 nicklas 357             visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5954 13 Feb 12 nicklas 358           />
5954 13 Feb 12 nicklas 359           <tbl:button 
6307 15 Aug 13 nicklas 360             id="btnExport"
6307 15 Aug 13 nicklas 361             data-plugin-type="EXPORT"
5954 13 Feb 12 nicklas 362             image="export.png" 
5954 13 Feb 12 nicklas 363             title="Export&hellip;" 
5954 13 Feb 12 nicklas 364             tooltip="Export data" 
5954 13 Feb 12 nicklas 365             visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5954 13 Feb 12 nicklas 366           />
5954 13 Feb 12 nicklas 367           <tbl:button 
6307 15 Aug 13 nicklas 368             id="btnRunPlugin"
6307 15 Aug 13 nicklas 369             data-plugin-type="OTHER"
5954 13 Feb 12 nicklas 370             image="runplugin.png" 
5954 13 Feb 12 nicklas 371             title="Run plugin&hellip;" 
5954 13 Feb 12 nicklas 372             tooltip="Run a plugin" 
5954 13 Feb 12 nicklas 373             visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5954 13 Feb 12 nicklas 374           />
5954 13 Feb 12 nicklas 375           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 376             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5954 13 Feb 12 nicklas 377         </tbl:toolbar>
5954 13 Feb 12 nicklas 378         <tbl:panel>
6182 23 Oct 12 nicklas 379           <tbl:presetselector />
5954 13 Feb 12 nicklas 380           <tbl:navigator
5954 13 Feb 12 nicklas 381             page="<%=cc.getPage()%>" 
5954 13 Feb 12 nicklas 382             rowsperpage="<%=cc.getRowsPerPage()%>" 
5954 13 Feb 12 nicklas 383             totalrows="<%=batches == null ? 0 : batches.getTotalCount()%>" 
5954 13 Feb 12 nicklas 384             visible="<%=mode.hasNavigator()%>"
5954 13 Feb 12 nicklas 385           />
5954 13 Feb 12 nicklas 386         </tbl:panel>
5954 13 Feb 12 nicklas 387       </div>
1813 24 Jan 06 nicklas 388       <tbl:data>
5948 08 Feb 12 nicklas 389         <tbl:headers>
5948 08 Feb 12 nicklas 390           <tbl:headerrow>
7943 04 May 21 nicklas 391             <tbl:header clazz="row-index bg-filled-100" />
5948 08 Feb 12 nicklas 392             <tbl:columnheaders />
5948 08 Feb 12 nicklas 393           </tbl:headerrow>
6702 02 Feb 15 nicklas 394           <%
6702 02 Feb 15 nicklas 395           int numFilters = cc.getNumPropertyFilters();
6702 02 Feb 15 nicklas 396           int numRows = cc.getFilterRows();
6702 02 Feb 15 nicklas 397           for (int filterNo = 0; filterNo < numRows; filterNo++)
6702 02 Feb 15 nicklas 398           {
6702 02 Feb 15 nicklas 399             boolean lastRow = filterNo == numRows-1;
6702 02 Feb 15 nicklas 400             %>
6702 02 Feb 15 nicklas 401             <tbl:headerrow>
7943 04 May 21 nicklas 402               <tbl:header subclass="row-index bg-filled-100">
7943 04 May 21 nicklas 403                 <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 404                   <div class="index"></div>
7943 04 May 21 nicklas 405                   <div class="check">
7943 04 May 21 nicklas 406                     <base:icon 
7943 04 May 21 nicklas 407                       subclass="link table-check"
7943 04 May 21 nicklas 408                       image="check_uncheck.png" 
7943 04 May 21 nicklas 409                       tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)" 
7943 04 May 21 nicklas 410                       visible="<%=lastRow && mode.hasCheck()%>"
7943 04 May 21 nicklas 411                     />
7943 04 May 21 nicklas 412                   </div>
7943 04 May 21 nicklas 413                   <div class="icons">
7943 04 May 21 nicklas 414                     <base:icon
7943 04 May 21 nicklas 415                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 416                       image="add.png"
7943 04 May 21 nicklas 417                       tooltip="Add extra filter row"
7943 04 May 21 nicklas 418                       visible="<%=lastRow%>"
7943 04 May 21 nicklas 419                     /><base:icon
7943 04 May 21 nicklas 420                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 421                       image="remove.png"
7943 04 May 21 nicklas 422                       tooltip="Remove this filter row"
7943 04 May 21 nicklas 423                       visible="<%=numRows > 1 || numFilters > 0 %>"
7943 04 May 21 nicklas 424                       data-remove-row="<%=filterNo%>"
7943 04 May 21 nicklas 425                     />
7943 04 May 21 nicklas 426                   </div>
7943 04 May 21 nicklas 427                 </div>
6702 02 Feb 15 nicklas 428               </tbl:header>
6702 02 Feb 15 nicklas 429               <tbl:propertyfilter row="<%=filterNo%>" />
6702 02 Feb 15 nicklas 430             </tbl:headerrow>
6702 02 Feb 15 nicklas 431             <%
6702 02 Feb 15 nicklas 432           }
6702 02 Feb 15 nicklas 433           %>
7913 22 Feb 21 nicklas 434           <tbl:columnsubtitles />
5948 08 Feb 12 nicklas 435         </tbl:headers>
5948 08 Feb 12 nicklas 436         <tbl:rows>
1813 24 Jan 06 nicklas 437           <%
5954 13 Feb 12 nicklas 438           if (cc.getMessage() != null)
5954 13 Feb 12 nicklas 439           {
5954 13 Feb 12 nicklas 440             %>
6604 18 Nov 14 nicklas 441             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 442               <div class="messagecontainer error"><%=cc.getMessage()%></div>
5954 13 Feb 12 nicklas 443             </tbl:panel>
5954 13 Feb 12 nicklas 444             <%
5954 13 Feb 12 nicklas 445             cc.setMessage(null);
5954 13 Feb 12 nicklas 446           }
1813 24 Jan 06 nicklas 447           int index = cc.getPage()*cc.getRowsPerPage();
1813 24 Jan 06 nicklas 448           int selectedItemId = cc.getId();
2029 20 Feb 06 nicklas 449           if (batches != null)
2503 09 Aug 06 martin 450           {  
2029 20 Feb 06 nicklas 451             while (batches.hasNext())
2029 20 Feb 06 nicklas 452             {
2029 20 Feb 06 nicklas 453               ArrayBatch item = batches.next();
2029 20 Feb 06 nicklas 454               int itemId = item.getId();
6221 10 Jan 13 nicklas 455               
6221 10 Jan 13 nicklas 456               
4003 26 Nov 07 nicklas 457               boolean deletePermission = item.hasPermission(Permission.DELETE);
2437 28 Jun 06 nicklas 458               boolean sharePermission = item.hasPermission(Permission.SET_PERMISSION);
2449 29 Jun 06 nicklas 459               boolean usePermission = item.hasPermission(Permission.USE);
2503 09 Aug 06 martin 460               boolean writePermission = item.hasPermission(Permission.WRITE);
2503 09 Aug 06 martin 461               String tooltip = mode.isSelectionMode() ? 
2503 09 Aug 06 martin 462                   "Select this item" : "View this item" + (writePermission ? " (use CTRL, ALT or SHIFT to edit)" : "");
2029 20 Feb 06 nicklas 463               String name = HTML.encodeTags(item.getName());
2029 20 Feb 06 nicklas 464               index++;
2029 20 Feb 06 nicklas 465               numListed++;
2029 20 Feb 06 nicklas 466               %>
2029 20 Feb 06 nicklas 467               <tbl:row>
7943 04 May 21 nicklas 468                 <tbl:header clazz="row-index bg-filled-100">
7943 04 May 21 nicklas 469                   <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 470                     <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
7943 04 May 21 nicklas 471                     <div class="check">
7943 04 May 21 nicklas 472                       <base:input
7943 04 May 21 nicklas 473                         type="checkbox" 
7943 04 May 21 nicklas 474                         name="<%=itemId%>" 
7943 04 May 21 nicklas 475                         value="<%=itemId%>" 
7943 04 May 21 nicklas 476                         title="<%=name%>" 
7943 04 May 21 nicklas 477                         checked="<%=cc.getSelected().contains(itemId)%>"
7943 04 May 21 nicklas 478                         visible="<%=mode.hasCheck()%>"
7943 04 May 21 nicklas 479                       />
7943 04 May 21 nicklas 480                       <base:input 
7943 04 May 21 nicklas 481                         type="radio" 
7943 04 May 21 nicklas 482                         name="item_id" 
7943 04 May 21 nicklas 483                         value="<%=itemId%>" 
7943 04 May 21 nicklas 484                         title="<%=name%>" 
7943 04 May 21 nicklas 485                         checked="<%=selectedItemId == itemId%>"
7943 04 May 21 nicklas 486                         visible="<%=mode.hasRadio()%>"
7943 04 May 21 nicklas 487                       />
7943 04 May 21 nicklas 488                     </div>
7943 04 May 21 nicklas 489                     <div class="icons">
7943 04 May 21 nicklas 490                       <base:icon 
7943 04 May 21 nicklas 491                         image="deleted.png"
7943 04 May 21 nicklas 492                         id="<%="delete."+itemId %>"
7943 04 May 21 nicklas 493                         subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
7943 04 May 21 nicklas 494                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 495                         tooltip="This item has been scheduled for deletion" 
7943 04 May 21 nicklas 496                         visible="<%=item.isRemoved()%>"
7943 04 May 21 nicklas 497                       /><base:icon 
7943 04 May 21 nicklas 498                         image="shared.png" 
7943 04 May 21 nicklas 499                         id="<%="share."+itemId %>"
7943 04 May 21 nicklas 500                         subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
7943 04 May 21 nicklas 501                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 502                         tooltip="This item is shared to other users, groups and/or projects" 
7943 04 May 21 nicklas 503                         visible="<%=item.isShared()%>"
7943 04 May 21 nicklas 504                       />
7943 04 May 21 nicklas 505                     </div>
7943 04 May 21 nicklas 506                   </div>
7943 04 May 21 nicklas 507                 </tbl:header>
6307 15 Aug 13 nicklas 508                 <tbl:cell column="name"><div
6307 15 Aug 13 nicklas 509                   class="link table-item"
6307 15 Aug 13 nicklas 510                   data-item-id="<%=itemId%>"
6307 15 Aug 13 nicklas 511                   data-no-edit="<%=writePermission ? 0 : 1 %>" 
6307 15 Aug 13 nicklas 512                   tabindex="0"
2449 29 Jun 06 nicklas 513                   title="<%=tooltip%>"><%=name%></div></tbl:cell>
4332 12 Jun 08 martin 514                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
4698 10 Dec 08 nicklas 515                 <tbl:cell column="entryDate" value="<%=item.getEntryDate()%>" />
2354 07 Jun 06 martin 516                 <tbl:cell column="arrayDesign"
2354 07 Jun 06 martin 517                   ><base:propertyvalue 
2354 07 Jun 06 martin 518                     item="<%=item%>" 
2354 07 Jun 06 martin 519                     property="arrayDesign"
2354 07 Jun 06 martin 520                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 521                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 522                   /></tbl:cell>
2354 07 Jun 06 martin 523                 <tbl:cell column="printRobot"
2354 07 Jun 06 martin 524                   ><base:propertyvalue 
2354 07 Jun 06 martin 525                     item="<%=item%>" 
2354 07 Jun 06 martin 526                     property="printRobot"
2354 07 Jun 06 martin 527                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 528                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 529                   /></tbl:cell>
2354 07 Jun 06 martin 530                 <tbl:cell column="protocol"
2354 07 Jun 06 martin 531                   ><base:propertyvalue 
2354 07 Jun 06 martin 532                     item="<%=item%>" 
2354 07 Jun 06 martin 533                     property="protocol"
2354 07 Jun 06 martin 534                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 535                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 536                   /></tbl:cell>
2449 29 Jun 06 nicklas 537                 <tbl:cell column="slides">
2449 29 Jun 06 nicklas 538                   <%
2449 29 Jun 06 nicklas 539                   slideQuery.setParameter("arrayBatch", itemId, Type.INT);
2449 29 Jun 06 nicklas 540                   try
2449 29 Jun 06 nicklas 541                   {
2474 31 Jul 06 nicklas 542                     %>
2474 31 Jul 06 nicklas 543                     <%=slideQuery.count(dc)%>
2474 31 Jul 06 nicklas 544                     <%
2449 29 Jun 06 nicklas 545                   }
2449 29 Jun 06 nicklas 546                   catch (Throwable t)
2449 29 Jun 06 nicklas 547                   {
2449 29 Jun 06 nicklas 548                     %>
2449 29 Jun 06 nicklas 549                     <div class="error"><%=t.getMessage()%></div>
2449 29 Jun 06 nicklas 550                     <%
2449 29 Jun 06 nicklas 551                   }
2449 29 Jun 06 nicklas 552                   %>
2449 29 Jun 06 nicklas 553                   <base:icon
2449 29 Jun 06 nicklas 554                     image="add.png" 
6307 15 Aug 13 nicklas 555                     subclass="link auto-init"
6307 15 Aug 13 nicklas 556                     data-auto-init="new-slide"
6307 15 Aug 13 nicklas 557                     data-item-id="<%=itemId %>"
2449 29 Jun 06 nicklas 558                     tooltip="Create new slide" 
2449 29 Jun 06 nicklas 559                     visible="<%=mode.hasEditLink() && createSlidePermission && usePermission %>"
2449 29 Jun 06 nicklas 560                   />
2449 29 Jun 06 nicklas 561                   <base:icon
5946 03 Feb 12 nicklas 562                     image="new_wizard.png" 
6307 15 Aug 13 nicklas 563                     subclass="link auto-init"
6307 15 Aug 13 nicklas 564                     data-auto-init="new-slide-wizard"
6307 15 Aug 13 nicklas 565                     data-item-id="<%=itemId %>"
2449 29 Jun 06 nicklas 566                     tooltip="Create multiple new slides using a wizard" 
2449 29 Jun 06 nicklas 567                     visible="<%=mode.hasEditLink() && createSlidePermission && usePermission %>"
2449 29 Jun 06 nicklas 568                   />
2449 29 Jun 06 nicklas 569                 </tbl:cell>
2354 07 Jun 06 martin 570                 <tbl:cell column="owner"
2354 07 Jun 06 martin 571                   ><base:propertyvalue 
2354 07 Jun 06 martin 572                     item="<%=item%>" 
2354 07 Jun 06 martin 573                     property="owner"
2354 07 Jun 06 martin 574                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 575                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 576                   /></tbl:cell>
2401 21 Jun 06 martin 577                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>                
2029 20 Feb 06 nicklas 578                 <%
6541 29 Sep 14 nicklas 579                 if (item.isAnnotated())
2029 20 Feb 06 nicklas 580                 {
6541 29 Sep 14 nicklas 581                   AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
6541 29 Sep 14 nicklas 582                   for (AnnotationLoaderUtil loader : annotationLoaders)
2942 22 Nov 06 nicklas 583                   {
6721 10 Feb 15 nicklas 584                     %>
6721 10 Feb 15 nicklas 585                     <tbl:cell 
6721 10 Feb 15 nicklas 586                       column="<%=(loader.isSearchingInheritedAnnotations() ? "ia" : "at")+loader.getId()%>"
6721 10 Feb 15 nicklas 587                       ><%
7337 12 Apr 17 nicklas 588                       if (loader.find(snapshot, psInfo.reset())) 
6721 10 Feb 15 nicklas 589                       {
6721 10 Feb 15 nicklas 590                         %><tbl:cellvalue 
6541 29 Sep 14 nicklas 591                           list="<%=loader.getValues()%>"
8160 07 Jun 23 nicklas 592                           bulletlist="<%=loader.useBulletList() %>"
6541 29 Sep 14 nicklas 593                           suffix="<%=loader.getUnitSymbol()%>"
8083 20 Oct 22 nicklas 594                           clazz="<%=psInfo.hasProjectSpecificAnnotation() ? "ps-annotation" : null%>"
6721 10 Feb 15 nicklas 595                         /><%
6721 10 Feb 15 nicklas 596                       }
6721 10 Feb 15 nicklas 597                       %></tbl:cell>
6721 10 Feb 15 nicklas 598                     <%
2942 22 Nov 06 nicklas 599                   }
2029 20 Feb 06 nicklas 600                 }
2029 20 Feb 06 nicklas 601                 %>
2401 21 Jun 06 martin 602                 <tbl:cell column="permission"><%=PermissionUtil.getShortPermissions(item)%></tbl:cell>
3551 05 Jul 07 martin 603                 <tbl:cell column="sharedTo">
3552 06 Jul 07 martin 604                   <%
3552 06 Jul 07 martin 605                   Iterator<Nameable> sharees = ShareableUtil.getSharedTo(dc, item).iterator();
3552 06 Jul 07 martin 606                   while(sharees.hasNext())
3551 05 Jul 07 martin 607                   {
3552 06 Jul 07 martin 608                     Nameable n = sharees.next();
3552 06 Jul 07 martin 609                     if (mode.hasPropertyLink())
3551 05 Jul 07 martin 610                     {
3552 06 Jul 07 martin 611                       out.write(Base.getLinkedName(ID, n, false, mode.hasEditLink()));
3551 05 Jul 07 martin 612                     }
3552 06 Jul 07 martin 613                     else
3551 05 Jul 07 martin 614                     {
3552 06 Jul 07 martin 615                       out.write(HTML.encodeTags(n.getName()));
3551 05 Jul 07 martin 616                     }
3552 06 Jul 07 martin 617                     out.write(sharees.hasNext() ? ", " : "");
3551 05 Jul 07 martin 618                   }
3552 06 Jul 07 martin 619                   %>
3551 05 Jul 07 martin 620                 </tbl:cell>
6039 29 Mar 12 nicklas 621                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6039 29 Mar 12 nicklas 622                   <tbl:cell column="xt-columns" />
6039 29 Mar 12 nicklas 623                 </tbl:xt-cells>
2029 20 Feb 06 nicklas 624               </tbl:row>
1813 24 Jan 06 nicklas 625               <%
1813 24 Jan 06 nicklas 626               }
1813 24 Jan 06 nicklas 627             }
5954 13 Feb 12 nicklas 628           if (numListed == 0)
5954 13 Feb 12 nicklas 629           {
5954 13 Feb 12 nicklas 630             %>
6604 18 Nov 14 nicklas 631             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 632               <div class="messagecontainer note">
5954 13 Feb 12 nicklas 633               <%=batches == null || batches.getTotalCount() == 0 ? "No array batches were found" : "No array batches on this page. Please select another page!" %>
5954 13 Feb 12 nicklas 634               </div>
5954 13 Feb 12 nicklas 635             </tbl:panel>
5954 13 Feb 12 nicklas 636             <%
5954 13 Feb 12 nicklas 637           }
1813 24 Jan 06 nicklas 638           %>
5954 13 Feb 12 nicklas 639         </tbl:rows>
1813 24 Jan 06 nicklas 640       </tbl:data>
1813 24 Jan 06 nicklas 641     </tbl:table>
5954 13 Feb 12 nicklas 642     </div>
5954 13 Feb 12 nicklas 643     
5951 09 Feb 12 nicklas 644     <base:buttongroup subclass="dialogbuttons">
6307 15 Aug 13 nicklas 645       <base:button id="btnOk" title="Ok" visible="<%=mode.hasOkButton()%>" />
6307 15 Aug 13 nicklas 646       <base:button id="close" title="Cancel" visible="<%=mode.hasCancelButton()%>" />
6307 15 Aug 13 nicklas 647       <base:button id="close" title="Close" visible="<%=mode.hasCloseButton()%>" />
1813 24 Jan 06 nicklas 648     </base:buttongroup>
5951 09 Feb 12 nicklas 649     
1813 24 Jan 06 nicklas 650   </base:body>
1813 24 Jan 06 nicklas 651   </base:page>
1813 24 Jan 06 nicklas 652   <%
1813 24 Jan 06 nicklas 653 }
1813 24 Jan 06 nicklas 654 finally
1813 24 Jan 06 nicklas 655 {
1813 24 Jan 06 nicklas 656   if (batches != null) batches.close();
1813 24 Jan 06 nicklas 657   if (dc != null) dc.close();
1813 24 Jan 06 nicklas 658 }
3675 16 Aug 07 jari 659 %>