www/lims/platemappings/list_mappings.jsp

Code
Comments
Other
Rev Date Author Line
1850 26 Jan 06 nicklas 1 <%-- $Id$
1850 26 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, Nicklas Nordborg, Martin Svensson
1850 26 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/
1850 26 Jan 06 nicklas 8
1850 26 Jan 06 nicklas 9   BASE is free software; you can redistribute it and/or
1850 26 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
1850 26 Jan 06 nicklas 12   of the License, or (at your option) any later version.
1850 26 Jan 06 nicklas 13
1850 26 Jan 06 nicklas 14   BASE is distributed in the hope that it will be useful,
1850 26 Jan 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
1850 26 Jan 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1850 26 Jan 06 nicklas 17   GNU General Public License for more details.
1850 26 Jan 06 nicklas 18
1850 26 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/>.
1850 26 Jan 06 nicklas 21   ------------------------------------------------------------------
1850 26 Jan 06 nicklas 22
1850 26 Jan 06 nicklas 23   @author Nicklas
1850 26 Jan 06 nicklas 24   @version 2.0
1850 26 Jan 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1850 26 Jan 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
1850 26 Jan 06 nicklas 28   import="net.sf.basedb.core.DbControl"
1850 26 Jan 06 nicklas 29   import="net.sf.basedb.core.Item"
1850 26 Jan 06 nicklas 30   import="net.sf.basedb.core.PlateMapping"
1850 26 Jan 06 nicklas 31   import="net.sf.basedb.core.PlateGeometry"
1850 26 Jan 06 nicklas 32   import="net.sf.basedb.core.ItemQuery"
1850 26 Jan 06 nicklas 33   import="net.sf.basedb.core.Include"
1850 26 Jan 06 nicklas 34   import="net.sf.basedb.core.ItemResultIterator"
1850 26 Jan 06 nicklas 35   import="net.sf.basedb.core.ItemResultList"
1850 26 Jan 06 nicklas 36   import="net.sf.basedb.core.ItemContext"
3553 09 Jul 07 martin 37   import="net.sf.basedb.core.Nameable"
1850 26 Jan 06 nicklas 38   import="net.sf.basedb.core.Permission"
1850 26 Jan 06 nicklas 39   import="net.sf.basedb.core.PluginDefinition"
1850 26 Jan 06 nicklas 40   import="net.sf.basedb.core.query.Hql"
1850 26 Jan 06 nicklas 41   import="net.sf.basedb.core.query.Restrictions"
1850 26 Jan 06 nicklas 42   import="net.sf.basedb.core.query.Expressions"
1850 26 Jan 06 nicklas 43   import="net.sf.basedb.core.plugin.GuiContext"
1850 26 Jan 06 nicklas 44   import="net.sf.basedb.core.plugin.Plugin"
1850 26 Jan 06 nicklas 45   import="net.sf.basedb.core.query.Orders"
1850 26 Jan 06 nicklas 46   import="net.sf.basedb.core.query.Hql"
1850 26 Jan 06 nicklas 47   import="net.sf.basedb.util.Enumeration"
3553 09 Jul 07 martin 48   import="net.sf.basedb.util.ShareableUtil"
1850 26 Jan 06 nicklas 49   import="net.sf.basedb.clients.web.Base"
1850 26 Jan 06 nicklas 50   import="net.sf.basedb.clients.web.ModeInfo"
2401 21 Jun 06 martin 51   import="net.sf.basedb.clients.web.PermissionUtil"
1850 26 Jan 06 nicklas 52   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 53   import="net.sf.basedb.util.Values"
4698 10 Dec 08 nicklas 54   import="net.sf.basedb.util.formatter.Formatter"
4698 10 Dec 08 nicklas 55   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4884 03 Apr 09 nicklas 56   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4884 03 Apr 09 nicklas 57   import="net.sf.basedb.clients.web.extensions.JspContext"
4884 03 Apr 09 nicklas 58   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 59   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4884 03 Apr 09 nicklas 60   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 61   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6039 29 Mar 12 nicklas 62   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
4884 03 Apr 09 nicklas 63   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
4698 10 Dec 08 nicklas 64   import="java.util.Date"
3553 09 Jul 07 martin 65   import="java.util.Iterator"
1850 26 Jan 06 nicklas 66   import="java.util.List"
1850 26 Jan 06 nicklas 67   import="java.util.Map"
1850 26 Jan 06 nicklas 68 %>
1850 26 Jan 06 nicklas 69 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1850 26 Jan 06 nicklas 70 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
4884 03 Apr 09 nicklas 71 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1850 26 Jan 06 nicklas 72 <%!
1850 26 Jan 06 nicklas 73   private static final Item itemType = Item.PLATEMAPPING;
1850 26 Jan 06 nicklas 74   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST);
1850 26 Jan 06 nicklas 75 %>
1850 26 Jan 06 nicklas 76 <%
1850 26 Jan 06 nicklas 77 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
1850 26 Jan 06 nicklas 78 final String ID = sc.getId();
1850 26 Jan 06 nicklas 79 final boolean createPermission = sc.hasPermission(Permission.CREATE, itemType);
1850 26 Jan 06 nicklas 80 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1850 26 Jan 06 nicklas 81
1850 26 Jan 06 nicklas 82 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
1850 26 Jan 06 nicklas 83 final String callback = request.getParameter("callback");
1850 26 Jan 06 nicklas 84 final String title = mode.generateTitle("plate mapping", "plate mappings");
7954 12 May 21 nicklas 85 final DbControl dc = sc.newDbControl(":List "+itemType);
1850 26 Jan 06 nicklas 86 ItemResultIterator<PlateMapping> mappings = null;
1850 26 Jan 06 nicklas 87 try
1850 26 Jan 06 nicklas 88 {
4698 10 Dec 08 nicklas 89   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
1850 26 Jan 06 nicklas 90
1850 26 Jan 06 nicklas 91   final ItemQuery<PlateGeometry> geometryQuery = PlateGeometry.getQuery();
1850 26 Jan 06 nicklas 92   geometryQuery.order(Orders.asc(Hql.property("name")));
1850 26 Jan 06 nicklas 93   geometryQuery.setCacheResult(true);
1850 26 Jan 06 nicklas 94   
1850 26 Jan 06 nicklas 95   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
7914 23 Feb 21 nicklas 96   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
2029 20 Feb 06 nicklas 97   try
2029 20 Feb 06 nicklas 98   {
7914 23 Feb 21 nicklas 99     final ItemQuery<PlateMapping> query = Base.getConfiguredQuery(dc, cc, jspContext, true, PlateMapping.getQuery(), mode);
2029 20 Feb 06 nicklas 100     mappings = query.iterate(dc);
2029 20 Feb 06 nicklas 101   }
2029 20 Feb 06 nicklas 102   catch (Throwable t)
2029 20 Feb 06 nicklas 103   {
2029 20 Feb 06 nicklas 104     cc.setMessage(t.getMessage());
2029 20 Feb 06 nicklas 105   }
1850 26 Jan 06 nicklas 106   int numListed = 0;
7604 25 Feb 19 nicklas 107   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 108   ExtensionsInvoker<ListColumnAction<PlateMapping,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
1850 26 Jan 06 nicklas 109   %>
6307 15 Aug 13 nicklas 110   <base:page title="<%=title==null ? "Plate mappings" : title%>" type="<%=mode.getPageType()%>" id="list-page">
6307 15 Aug 13 nicklas 111   <base:head scripts="table.js,~mappings.js" styles="table.css,toolbar.css">
4884 03 Apr 09 nicklas 112     <ext:scripts context="<%=jspContext%>" />
4884 03 Apr 09 nicklas 113     <ext:stylesheets context="<%=jspContext%>" />
1850 26 Jan 06 nicklas 114   </base:head>
1850 26 Jan 06 nicklas 115   
1850 26 Jan 06 nicklas 116   <base:body>
5954 13 Feb 12 nicklas 117     <h1><%=title==null ? "Plate mappings" : title%></h1>
5954 13 Feb 12 nicklas 118     <div class="content">
1850 26 Jan 06 nicklas 119     <tbl:table 
1850 26 Jan 06 nicklas 120       id="mappings" 
1850 26 Jan 06 nicklas 121       columns="<%=cc.getSetting("columns")%>"
1850 26 Jan 06 nicklas 122       sortby="<%=cc.getSortProperty()%>" 
1850 26 Jan 06 nicklas 123       direction="<%=cc.getSortDirection()%>"
1850 26 Jan 06 nicklas 124       action="index.jsp"
1850 26 Jan 06 nicklas 125       sc="<%=sc%>"
1850 26 Jan 06 nicklas 126       item="<%=itemType%>"
6702 02 Feb 15 nicklas 127       filterrows="<%=cc.getFilterRows()%>"
5954 13 Feb 12 nicklas 128       subclass="fulltable"
7982 14 Jun 21 nicklas 129       stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>"
1850 26 Jan 06 nicklas 130       >
1850 26 Jan 06 nicklas 131       <tbl:hidden 
1850 26 Jan 06 nicklas 132         name="mode" 
1850 26 Jan 06 nicklas 133         value="<%=mode.getName()%>" 
1850 26 Jan 06 nicklas 134       />
1850 26 Jan 06 nicklas 135       <tbl:hidden 
1850 26 Jan 06 nicklas 136         name="callback" 
1850 26 Jan 06 nicklas 137         value="<%=callback%>" 
1850 26 Jan 06 nicklas 138         skip="<%=callback == null%>" 
1850 26 Jan 06 nicklas 139       />
1850 26 Jan 06 nicklas 140       <tbl:columndef 
1850 26 Jan 06 nicklas 141         id="name"
1850 26 Jan 06 nicklas 142         property="name"
1850 26 Jan 06 nicklas 143         datatype="string"
1850 26 Jan 06 nicklas 144         title="Name"
1850 26 Jan 06 nicklas 145         sortable="true" 
1850 26 Jan 06 nicklas 146         filterable="true"
1850 26 Jan 06 nicklas 147         exportable="true"
1850 26 Jan 06 nicklas 148         show="always" 
1850 26 Jan 06 nicklas 149       />
4332 12 Jun 08 martin 150       <tbl:columndef 
4332 12 Jun 08 martin 151         id="id"
4387 11 Aug 08 nicklas 152         clazz="uniquecol"
4332 12 Jun 08 martin 153         property="id"
4332 12 Jun 08 martin 154         datatype="int"
4332 12 Jun 08 martin 155         title="ID"
4332 12 Jun 08 martin 156         sortable="true"
4332 12 Jun 08 martin 157         filterable="true"
4332 12 Jun 08 martin 158         exportable="true"
4332 12 Jun 08 martin 159       />
4698 10 Dec 08 nicklas 160       <tbl:columndef 
4698 10 Dec 08 nicklas 161         id="entryDate"
4698 10 Dec 08 nicklas 162         property="entryDate"
4698 10 Dec 08 nicklas 163         datatype="date"
4698 10 Dec 08 nicklas 164         title="Registered"
4698 10 Dec 08 nicklas 165         sortable="true" 
4698 10 Dec 08 nicklas 166         filterable="true"
4698 10 Dec 08 nicklas 167         exportable="true"
4698 10 Dec 08 nicklas 168         formatter="<%=dateFormatter%>"
4698 10 Dec 08 nicklas 169       />
1850 26 Jan 06 nicklas 170       <%
1850 26 Jan 06 nicklas 171       Enumeration<String, String> geometries = new Enumeration<String, String>();
1850 26 Jan 06 nicklas 172       ItemResultList<PlateGeometry> plateGeometries = geometryQuery.list(dc);
3097 05 Feb 07 nicklas 173       for (PlateGeometry pg : plateGeometries)
1850 26 Jan 06 nicklas 174       {
3097 05 Feb 07 nicklas 175         geometries.add(Integer.toString(pg.getId()), HTML.encodeTags(pg.getName()));
1850 26 Jan 06 nicklas 176       }
1850 26 Jan 06 nicklas 177       %>
1850 26 Jan 06 nicklas 178       <tbl:columndef 
1850 26 Jan 06 nicklas 179         id="sourceGeometry"
1850 26 Jan 06 nicklas 180         property="sourceGeometry"
1850 26 Jan 06 nicklas 181         sortproperty="sourceGeometry.name"
6037 29 Mar 12 nicklas 182         exportproperty="sourceGeometry.name:string"
1850 26 Jan 06 nicklas 183         datatype="int"
1850 26 Jan 06 nicklas 184         enumeration="<%=geometries%>"
1850 26 Jan 06 nicklas 185         title="Source geometry"
1850 26 Jan 06 nicklas 186         sortable="true" 
1850 26 Jan 06 nicklas 187         filterable="true"
1850 26 Jan 06 nicklas 188         exportable="true"
1850 26 Jan 06 nicklas 189       />
1850 26 Jan 06 nicklas 190       <tbl:columndef 
1850 26 Jan 06 nicklas 191         id="sourceCount"
1850 26 Jan 06 nicklas 192         property="sourceCount"
1850 26 Jan 06 nicklas 193         datatype="int"
1850 26 Jan 06 nicklas 194         title="Source plates"
1850 26 Jan 06 nicklas 195         sortable="true" 
1850 26 Jan 06 nicklas 196         filterable="true"
1850 26 Jan 06 nicklas 197         exportable="true"
1850 26 Jan 06 nicklas 198       />
1850 26 Jan 06 nicklas 199       <tbl:columndef 
1850 26 Jan 06 nicklas 200         id="destinationGeometry"
1850 26 Jan 06 nicklas 201         property="destinationGeometry"
1850 26 Jan 06 nicklas 202         sortproperty="destinationGeometry.name"
6037 29 Mar 12 nicklas 203         exportproperty="destinationGeometry.name:string"
1850 26 Jan 06 nicklas 204         datatype="int"
1850 26 Jan 06 nicklas 205         enumeration="<%=geometries%>"
1850 26 Jan 06 nicklas 206         title="Destination geometry"
1850 26 Jan 06 nicklas 207         sortable="true" 
1850 26 Jan 06 nicklas 208         filterable="true"
1850 26 Jan 06 nicklas 209         exportable="true"
1850 26 Jan 06 nicklas 210       />
1850 26 Jan 06 nicklas 211       <tbl:columndef 
1850 26 Jan 06 nicklas 212         id="destinationCount"
1850 26 Jan 06 nicklas 213         property="destinationCount"
1850 26 Jan 06 nicklas 214         datatype="int"
1850 26 Jan 06 nicklas 215         title="Destination plates"
1850 26 Jan 06 nicklas 216         sortable="true" 
1850 26 Jan 06 nicklas 217         filterable="true"
1850 26 Jan 06 nicklas 218         exportable="true"
1850 26 Jan 06 nicklas 219       />
1850 26 Jan 06 nicklas 220       <tbl:columndef 
1850 26 Jan 06 nicklas 221         id="owner"
1850 26 Jan 06 nicklas 222         property="owner.name"
1850 26 Jan 06 nicklas 223         datatype="string"
1850 26 Jan 06 nicklas 224         title="Owner"
1850 26 Jan 06 nicklas 225         sortable="true" 
1850 26 Jan 06 nicklas 226         filterable="true"
1850 26 Jan 06 nicklas 227         exportable="true"
1850 26 Jan 06 nicklas 228       />
1850 26 Jan 06 nicklas 229       <tbl:columndef 
1850 26 Jan 06 nicklas 230         id="description"
1850 26 Jan 06 nicklas 231         property="description"
1850 26 Jan 06 nicklas 232         datatype="string"
1850 26 Jan 06 nicklas 233         title="Description" 
1850 26 Jan 06 nicklas 234         sortable="true" 
1850 26 Jan 06 nicklas 235         filterable="true" 
1850 26 Jan 06 nicklas 236         exportable="true"
1850 26 Jan 06 nicklas 237       />
1850 26 Jan 06 nicklas 238       <tbl:columndef 
1850 26 Jan 06 nicklas 239         id="image"
1850 26 Jan 06 nicklas 240         property="image"
1850 26 Jan 06 nicklas 241         datatype="string"
1850 26 Jan 06 nicklas 242         title="Image" 
1850 26 Jan 06 nicklas 243         sortable="false" 
1850 26 Jan 06 nicklas 244         filterable="false" 
1850 26 Jan 06 nicklas 245         exportable="true"
1850 26 Jan 06 nicklas 246       />
2401 21 Jun 06 martin 247       <tbl:columndef
2401 21 Jun 06 martin 248         id="permission"
2401 21 Jun 06 martin 249         title="Permission"
2401 21 Jun 06 martin 250       />
5165 28 Oct 09 nicklas 251       <tbl:columndef
5165 28 Oct 09 nicklas 252         id="sharedTo"
3553 09 Jul 07 martin 253         title="Shared to"
5165 28 Oct 09 nicklas 254         filterable="true"
5165 28 Oct 09 nicklas 255         filterproperty="!sharedTo.name"
5165 28 Oct 09 nicklas 256         datatype="string"
3553 09 Jul 07 martin 257       />
6039 29 Mar 12 nicklas 258       <tbl:columndef 
6039 29 Mar 12 nicklas 259         id="xt-columns" 
6039 29 Mar 12 nicklas 260         extensions="<%=columnsInvoker%>" 
6039 29 Mar 12 nicklas 261         jspcontext="<%=jspContext%>" 
6039 29 Mar 12 nicklas 262       />
6604 18 Nov 14 nicklas 263       <div class="panelgroup bg-filled-50 bottomborder">
5954 13 Feb 12 nicklas 264         <tbl:toolbar
5954 13 Feb 12 nicklas 265           subclass="bottomborder"
5954 13 Feb 12 nicklas 266           visible="<%=mode.hasToolbar()%>"
5954 13 Feb 12 nicklas 267           >
5954 13 Feb 12 nicklas 268           <tbl:button 
6307 15 Aug 13 nicklas 269             id="btnDeleteItems"
5954 13 Feb 12 nicklas 270             image="delete.png"
5954 13 Feb 12 nicklas 271             title="Delete" 
5954 13 Feb 12 nicklas 272             tooltip="Delete the selected items" 
5954 13 Feb 12 nicklas 273           />
5954 13 Feb 12 nicklas 274           <tbl:button 
6307 15 Aug 13 nicklas 275             id="btnRestoreItems"
5954 13 Feb 12 nicklas 276             image="restore.png"
5954 13 Feb 12 nicklas 277             title="Restore" 
5954 13 Feb 12 nicklas 278             tooltip="Restore the selected (deleted) items"
5954 13 Feb 12 nicklas 279           />
5954 13 Feb 12 nicklas 280           <tbl:button 
6307 15 Aug 13 nicklas 281             id="btnShareItems"
5954 13 Feb 12 nicklas 282             image="share.png"
5954 13 Feb 12 nicklas 283             title="Share&hellip;" 
5954 13 Feb 12 nicklas 284             tooltip="Share the selected items"
5954 13 Feb 12 nicklas 285           />
5954 13 Feb 12 nicklas 286           <tbl:button 
6307 15 Aug 13 nicklas 287             id="btnSetOwner"
5954 13 Feb 12 nicklas 288             image="take_ownership.png"
5954 13 Feb 12 nicklas 289             title="Set owner&hellip;"
5954 13 Feb 12 nicklas 290             tooltip="Change owner of the selected items"
5954 13 Feb 12 nicklas 291           />
5954 13 Feb 12 nicklas 292           <tbl:button 
6307 15 Aug 13 nicklas 293             id="btnColumns"
5954 13 Feb 12 nicklas 294             image="columns.png" 
5954 13 Feb 12 nicklas 295             title="Columns&hellip;" 
5954 13 Feb 12 nicklas 296             tooltip="Show, hide and re-order columns" 
5954 13 Feb 12 nicklas 297           />
5954 13 Feb 12 nicklas 298           <tbl:button 
6307 15 Aug 13 nicklas 299             id="btnImport"
6307 15 Aug 13 nicklas 300             data-plugin-type="IMPORT"
5954 13 Feb 12 nicklas 301             image="import.png" 
5954 13 Feb 12 nicklas 302             title="Import&hellip;" 
5954 13 Feb 12 nicklas 303             tooltip="Import data" 
5954 13 Feb 12 nicklas 304             visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5954 13 Feb 12 nicklas 305           />
5954 13 Feb 12 nicklas 306           <tbl:button 
6307 15 Aug 13 nicklas 307             id="btnExport"
6307 15 Aug 13 nicklas 308             data-plugin-type="EXPORT"
5954 13 Feb 12 nicklas 309             image="export.png" 
5954 13 Feb 12 nicklas 310             title="Export&hellip;" 
5954 13 Feb 12 nicklas 311             tooltip="Export data" 
5954 13 Feb 12 nicklas 312             visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5954 13 Feb 12 nicklas 313           />
5954 13 Feb 12 nicklas 314           <tbl:button 
6307 15 Aug 13 nicklas 315             id="btnRunPlugin"
6307 15 Aug 13 nicklas 316             data-plugin-type="OTHER"
5954 13 Feb 12 nicklas 317             image="runplugin.png" 
5954 13 Feb 12 nicklas 318             title="Run plugin&hellip;" 
5954 13 Feb 12 nicklas 319             tooltip="Run a plugin" 
5954 13 Feb 12 nicklas 320             visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5954 13 Feb 12 nicklas 321           />
5954 13 Feb 12 nicklas 322           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 323             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5954 13 Feb 12 nicklas 324         </tbl:toolbar>
5954 13 Feb 12 nicklas 325         <tbl:panel>
6182 23 Oct 12 nicklas 326           <tbl:presetselector />
5954 13 Feb 12 nicklas 327           <tbl:navigator
5954 13 Feb 12 nicklas 328             page="<%=cc.getPage()%>" 
5954 13 Feb 12 nicklas 329             rowsperpage="<%=cc.getRowsPerPage()%>" 
5954 13 Feb 12 nicklas 330             totalrows="<%=mappings == null ? 0 : mappings.getTotalCount()%>" 
5954 13 Feb 12 nicklas 331             visible="<%=mode.hasNavigator()%>"
5954 13 Feb 12 nicklas 332           />
5954 13 Feb 12 nicklas 333         </tbl:panel>
5954 13 Feb 12 nicklas 334       </div>
1850 26 Jan 06 nicklas 335       <tbl:data>
5948 08 Feb 12 nicklas 336         <tbl:headers>
5948 08 Feb 12 nicklas 337           <tbl:headerrow>
7943 04 May 21 nicklas 338             <tbl:header clazz="row-index bg-filled-100" />
5948 08 Feb 12 nicklas 339             <tbl:columnheaders />
5948 08 Feb 12 nicklas 340           </tbl:headerrow>
6702 02 Feb 15 nicklas 341           <%
6702 02 Feb 15 nicklas 342           int numFilters = cc.getNumPropertyFilters();
6702 02 Feb 15 nicklas 343           int numRows = cc.getFilterRows();
6702 02 Feb 15 nicklas 344           for (int filterNo = 0; filterNo < numRows; filterNo++)
6702 02 Feb 15 nicklas 345           {
6702 02 Feb 15 nicklas 346             boolean lastRow = filterNo == numRows-1;
6702 02 Feb 15 nicklas 347             %>
6702 02 Feb 15 nicklas 348             <tbl:headerrow>
7943 04 May 21 nicklas 349               <tbl:header subclass="row-index bg-filled-100">
7943 04 May 21 nicklas 350                 <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 351                   <div class="index"></div>
7943 04 May 21 nicklas 352                   <div class="check">
7943 04 May 21 nicklas 353                     <base:icon 
7943 04 May 21 nicklas 354                       subclass="link table-check"
7943 04 May 21 nicklas 355                       image="check_uncheck.png" 
7943 04 May 21 nicklas 356                       tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)" 
7943 04 May 21 nicklas 357                       visible="<%=lastRow && mode.hasCheck()%>"
7943 04 May 21 nicklas 358                     />
7943 04 May 21 nicklas 359                   </div>
7943 04 May 21 nicklas 360                   <div class="icons">
7943 04 May 21 nicklas 361                     <base:icon
7943 04 May 21 nicklas 362                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 363                       image="add.png"
7943 04 May 21 nicklas 364                       tooltip="Add extra filter row"
7943 04 May 21 nicklas 365                       visible="<%=lastRow%>"
7943 04 May 21 nicklas 366                     /><base:icon
7943 04 May 21 nicklas 367                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 368                       image="remove.png"
7943 04 May 21 nicklas 369                       tooltip="Remove this filter row"
7943 04 May 21 nicklas 370                       visible="<%=numRows > 1 || numFilters > 0 %>"
7943 04 May 21 nicklas 371                       data-remove-row="<%=filterNo%>"
7943 04 May 21 nicklas 372                     />
7943 04 May 21 nicklas 373                   </div>
7943 04 May 21 nicklas 374                 </div>
6702 02 Feb 15 nicklas 375               </tbl:header>
6702 02 Feb 15 nicklas 376               <tbl:propertyfilter row="<%=filterNo%>" />
6702 02 Feb 15 nicklas 377             </tbl:headerrow>
6702 02 Feb 15 nicklas 378             <%
6702 02 Feb 15 nicklas 379           }
6702 02 Feb 15 nicklas 380           %>
7913 22 Feb 21 nicklas 381           <tbl:columnsubtitles />
5948 08 Feb 12 nicklas 382         </tbl:headers>
5948 08 Feb 12 nicklas 383         <tbl:rows>
1850 26 Jan 06 nicklas 384           <%
5954 13 Feb 12 nicklas 385           if (cc.getMessage() != null)
5954 13 Feb 12 nicklas 386           {
5954 13 Feb 12 nicklas 387             %>
6604 18 Nov 14 nicklas 388             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 389               <div class="messagecontainer error"><%=cc.getMessage()%></div>
5954 13 Feb 12 nicklas 390             </tbl:panel>
5954 13 Feb 12 nicklas 391             <%
5954 13 Feb 12 nicklas 392             cc.setMessage(null);
5954 13 Feb 12 nicklas 393           }
1850 26 Jan 06 nicklas 394           int index = cc.getPage()*cc.getRowsPerPage();
1850 26 Jan 06 nicklas 395           int selectedItemId = cc.getId();
2029 20 Feb 06 nicklas 396           if (mappings != null)
2503 09 Aug 06 martin 397           {            
2029 20 Feb 06 nicklas 398             while (mappings.hasNext())
2029 20 Feb 06 nicklas 399             {
2029 20 Feb 06 nicklas 400               PlateMapping item = mappings.next();
2029 20 Feb 06 nicklas 401               int itemId = item.getId();
6221 10 Jan 13 nicklas 402               
6221 10 Jan 13 nicklas 403               
4003 26 Nov 07 nicklas 404               boolean deletePermission = item.hasPermission(Permission.DELETE);
2437 28 Jun 06 nicklas 405               boolean sharePermission = item.hasPermission(Permission.SET_PERMISSION);
2503 09 Aug 06 martin 406               boolean writePermission = item.hasPermission(Permission.WRITE);
2503 09 Aug 06 martin 407               String tooltip = mode.isSelectionMode() ? 
2503 09 Aug 06 martin 408                   "Select this item" : "View this item" + (writePermission ? " (use CTRL, ALT or SHIFT to edit)" : "");
2029 20 Feb 06 nicklas 409               String name = HTML.encodeTags(item.getName());
2029 20 Feb 06 nicklas 410               index++;
2029 20 Feb 06 nicklas 411               numListed++;
2029 20 Feb 06 nicklas 412               %>
2029 20 Feb 06 nicklas 413               <tbl:row>
7943 04 May 21 nicklas 414                 <tbl:header clazz="row-index bg-filled-100">
7943 04 May 21 nicklas 415                   <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 416                     <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
7943 04 May 21 nicklas 417                     <div class="check">
7943 04 May 21 nicklas 418                       <base:input
7943 04 May 21 nicklas 419                         type="checkbox" 
7943 04 May 21 nicklas 420                         name="<%=itemId%>" 
7943 04 May 21 nicklas 421                         value="<%=itemId%>" 
7943 04 May 21 nicklas 422                         title="<%=name%>" 
7943 04 May 21 nicklas 423                         checked="<%=cc.getSelected().contains(itemId)%>"
7943 04 May 21 nicklas 424                         visible="<%=mode.hasCheck()%>"
7943 04 May 21 nicklas 425                       />
7943 04 May 21 nicklas 426                       <base:input 
7943 04 May 21 nicklas 427                         type="radio" 
7943 04 May 21 nicklas 428                         name="item_id" 
7943 04 May 21 nicklas 429                         value="<%=itemId%>" 
7943 04 May 21 nicklas 430                         title="<%=name%>" 
7943 04 May 21 nicklas 431                         checked="<%=selectedItemId == itemId%>"
7943 04 May 21 nicklas 432                         visible="<%=mode.hasRadio()%>"
7943 04 May 21 nicklas 433                       />
7943 04 May 21 nicklas 434                     </div>
7943 04 May 21 nicklas 435                     <div class="icons">
7943 04 May 21 nicklas 436                       <base:icon 
7943 04 May 21 nicklas 437                         image="deleted.png"
7943 04 May 21 nicklas 438                         id="<%="delete."+itemId %>"
7943 04 May 21 nicklas 439                         subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
7943 04 May 21 nicklas 440                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 441                         tooltip="This item has been scheduled for deletion" 
7943 04 May 21 nicklas 442                         visible="<%=item.isRemoved()%>"
7943 04 May 21 nicklas 443                       /><base:icon 
7943 04 May 21 nicklas 444                         image="shared.png" 
7943 04 May 21 nicklas 445                         id="<%="share."+itemId %>"
7943 04 May 21 nicklas 446                         subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
7943 04 May 21 nicklas 447                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 448                         tooltip="This item is shared to other users, groups and/or projects" 
7943 04 May 21 nicklas 449                         visible="<%=item.isShared()%>"
7943 04 May 21 nicklas 450                       />
7943 04 May 21 nicklas 451                     </div>
7943 04 May 21 nicklas 452                   </div>
7943 04 May 21 nicklas 453                 </tbl:header>
6307 15 Aug 13 nicklas 454                 <tbl:cell column="name"><div
6307 15 Aug 13 nicklas 455                   class="link table-item"
6307 15 Aug 13 nicklas 456                   data-item-id="<%=itemId%>"
6307 15 Aug 13 nicklas 457                   data-no-edit="<%=writePermission ? 0 : 1 %>" 
6307 15 Aug 13 nicklas 458                   tabindex="0"
2449 29 Jun 06 nicklas 459                   title="<%=tooltip%>"><%=name%></div></tbl:cell>
4332 12 Jun 08 martin 460                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
4698 10 Dec 08 nicklas 461                 <tbl:cell column="entryDate" value="<%=item.getEntryDate()%>" />
2354 07 Jun 06 martin 462                 <tbl:cell column="sourceGeometry"
2354 07 Jun 06 martin 463                   ><base:propertyvalue 
2354 07 Jun 06 martin 464                     item="<%=item%>" 
2354 07 Jun 06 martin 465                     property="sourceGeometry"
2354 07 Jun 06 martin 466                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 467                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 468                   /></tbl:cell>
2029 20 Feb 06 nicklas 469                 <tbl:cell column="sourceCount"><%=item.getSourceCount()%></tbl:cell>
2354 07 Jun 06 martin 470                 <tbl:cell column="destinationGeometry"
2354 07 Jun 06 martin 471                   ><base:propertyvalue 
2354 07 Jun 06 martin 472                     item="<%=item%>" 
2354 07 Jun 06 martin 473                     property="destinationGeometry"
2354 07 Jun 06 martin 474                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 475                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 476                   /></tbl:cell>
2029 20 Feb 06 nicklas 477                 <tbl:cell column="destinationCount"><%=item.getDestinationCount()%></tbl:cell>
2354 07 Jun 06 martin 478                 <tbl:cell column="owner"
2354 07 Jun 06 martin 479                   ><base:propertyvalue 
2354 07 Jun 06 martin 480                     item="<%=item%>" 
2354 07 Jun 06 martin 481                     property="owner"
2354 07 Jun 06 martin 482                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 483                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 484                   /></tbl:cell>
2029 20 Feb 06 nicklas 485                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
6146 21 Sep 12 nicklas 486                 <tbl:cell column="image"><%=item.getImage() == null ? "" : "<img src=\"../../images/platemappings/"+item.getImage()+"\" alt=\"\">" %></tbl:cell>
2401 21 Jun 06 martin 487                 <tbl:cell column="permission"><%=PermissionUtil.getShortPermissions(item)%></tbl:cell>
3553 09 Jul 07 martin 488                 <tbl:cell column="sharedTo">
3553 09 Jul 07 martin 489                   <%
3553 09 Jul 07 martin 490                   Iterator<Nameable> sharees = ShareableUtil.getSharedTo(dc, item).iterator();
3553 09 Jul 07 martin 491                   while(sharees.hasNext())
3553 09 Jul 07 martin 492                   {
3553 09 Jul 07 martin 493                     Nameable n = sharees.next();
3553 09 Jul 07 martin 494                     if (mode.hasPropertyLink())
3553 09 Jul 07 martin 495                     {
3553 09 Jul 07 martin 496                       out.write(Base.getLinkedName(ID, n, false, mode.hasEditLink()));
3553 09 Jul 07 martin 497                     }
3553 09 Jul 07 martin 498                     else
3553 09 Jul 07 martin 499                     {
3553 09 Jul 07 martin 500                       out.write(HTML.encodeTags(n.getName()));
3553 09 Jul 07 martin 501                     }
3553 09 Jul 07 martin 502                     out.write(sharees.hasNext() ? ", " : "");
3553 09 Jul 07 martin 503                   }
3553 09 Jul 07 martin 504                   %>
3553 09 Jul 07 martin 505                 </tbl:cell>
6039 29 Mar 12 nicklas 506                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6039 29 Mar 12 nicklas 507                   <tbl:cell column="xt-columns" />
6039 29 Mar 12 nicklas 508                 </tbl:xt-cells>
2029 20 Feb 06 nicklas 509               </tbl:row>
2029 20 Feb 06 nicklas 510               <%
2029 20 Feb 06 nicklas 511               }
1850 26 Jan 06 nicklas 512             }
5954 13 Feb 12 nicklas 513           if (numListed == 0)
5954 13 Feb 12 nicklas 514           {
5954 13 Feb 12 nicklas 515             %>
6604 18 Nov 14 nicklas 516             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 517               <div class="messagecontainer note">
5954 13 Feb 12 nicklas 518               <%=mappings == null || mappings.getTotalCount() == 0 ? "No plate mappings were found" : "No plate mappings on this page. Please select another page!" %>
5954 13 Feb 12 nicklas 519               </div>
5954 13 Feb 12 nicklas 520             </tbl:panel>
5954 13 Feb 12 nicklas 521             <%
5954 13 Feb 12 nicklas 522           }
1850 26 Jan 06 nicklas 523           %>
5954 13 Feb 12 nicklas 524         </tbl:rows>
1850 26 Jan 06 nicklas 525       </tbl:data>
1850 26 Jan 06 nicklas 526     </tbl:table>
5954 13 Feb 12 nicklas 527     </div>
5954 13 Feb 12 nicklas 528     
5951 09 Feb 12 nicklas 529     <base:buttongroup subclass="dialogbuttons">
6307 15 Aug 13 nicklas 530       <base:button id="btnOk" title="Ok" visible="<%=mode.hasOkButton()%>" />
6307 15 Aug 13 nicklas 531       <base:button id="close" title="Cancel" visible="<%=mode.hasCancelButton()%>" />
6307 15 Aug 13 nicklas 532       <base:button id="close" title="Close" visible="<%=mode.hasCloseButton()%>" />
1850 26 Jan 06 nicklas 533     </base:buttongroup>
5951 09 Feb 12 nicklas 534     
1850 26 Jan 06 nicklas 535   </base:body>
1850 26 Jan 06 nicklas 536   </base:page>
1850 26 Jan 06 nicklas 537   <%
1850 26 Jan 06 nicklas 538 }
1850 26 Jan 06 nicklas 539 finally
1850 26 Jan 06 nicklas 540 {
1850 26 Jan 06 nicklas 541   if (mappings != null) mappings.close();
1850 26 Jan 06 nicklas 542   if (dc != null) dc.close();
1850 26 Jan 06 nicklas 543 }
3675 16 Aug 07 jari 544 %>