www/biomaterials/bioplatetypes/view_platetype.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.SystemItems"
5262 08 Mar 10 nicklas 29   import="net.sf.basedb.core.Item"
5262 08 Mar 10 nicklas 30   import="net.sf.basedb.core.ItemContext"
5262 08 Mar 10 nicklas 31   import="net.sf.basedb.core.Permission"
5262 08 Mar 10 nicklas 32   import="net.sf.basedb.core.BioPlateType"
5262 08 Mar 10 nicklas 33   import="net.sf.basedb.core.ItemQuery"
5262 08 Mar 10 nicklas 34   import="net.sf.basedb.core.Include"
5262 08 Mar 10 nicklas 35   import="net.sf.basedb.core.ItemResultList"
5262 08 Mar 10 nicklas 36   import="net.sf.basedb.core.PermissionDeniedException"
5262 08 Mar 10 nicklas 37   import="net.sf.basedb.core.PluginDefinition"
5262 08 Mar 10 nicklas 38   import="net.sf.basedb.core.plugin.GuiContext"
5262 08 Mar 10 nicklas 39   import="net.sf.basedb.core.plugin.Plugin"
5262 08 Mar 10 nicklas 40   import="net.sf.basedb.core.query.Orders"
5262 08 Mar 10 nicklas 41   import="net.sf.basedb.core.query.Hql"
5262 08 Mar 10 nicklas 42   import="net.sf.basedb.clients.web.Base"
5262 08 Mar 10 nicklas 43   import="net.sf.basedb.clients.web.PermissionUtil"
5262 08 Mar 10 nicklas 44   import="net.sf.basedb.clients.web.util.HTML"
5262 08 Mar 10 nicklas 45   import="net.sf.basedb.util.Values"
5262 08 Mar 10 nicklas 46   import="net.sf.basedb.util.formatter.Formatter"
5262 08 Mar 10 nicklas 47   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
5262 08 Mar 10 nicklas 48   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
5262 08 Mar 10 nicklas 49   import="net.sf.basedb.clients.web.extensions.JspContext"
5262 08 Mar 10 nicklas 50   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 51   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
5262 08 Mar 10 nicklas 52   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
5262 08 Mar 10 nicklas 53   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
5262 08 Mar 10 nicklas 54   import="java.util.Date"
5262 08 Mar 10 nicklas 55   import="java.util.Map"
5262 08 Mar 10 nicklas 56   import="java.util.Set"
5262 08 Mar 10 nicklas 57   import="java.util.List"
5262 08 Mar 10 nicklas 58 %>
5262 08 Mar 10 nicklas 59 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
5262 08 Mar 10 nicklas 60 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
5262 08 Mar 10 nicklas 61 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
5262 08 Mar 10 nicklas 62 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
5262 08 Mar 10 nicklas 63 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
5262 08 Mar 10 nicklas 64 <%!
5262 08 Mar 10 nicklas 65   private static final Item itemType = Item.BIOPLATETYPE;
5262 08 Mar 10 nicklas 66   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
5262 08 Mar 10 nicklas 67 %>
5262 08 Mar 10 nicklas 68 <%
5262 08 Mar 10 nicklas 69 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
5262 08 Mar 10 nicklas 70 final String ID = sc.getId();
5262 08 Mar 10 nicklas 71 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
5262 08 Mar 10 nicklas 72 final int itemId = cc.getId();
6261 27 Mar 13 nicklas 73 final String tab = Values.getStringOrNull(request.getParameter("tab"));
5262 08 Mar 10 nicklas 74 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 75 final DbControl dc = sc.newDbControl(":View "+itemType);
5262 08 Mar 10 nicklas 76 try
5262 08 Mar 10 nicklas 77 {
5262 08 Mar 10 nicklas 78   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
5262 08 Mar 10 nicklas 79
5262 08 Mar 10 nicklas 80   String title = null;
5262 08 Mar 10 nicklas 81   BioPlateType plateType = BioPlateType.getById(dc, itemId);
5262 08 Mar 10 nicklas 82   
5262 08 Mar 10 nicklas 83   final boolean usePermission = plateType.hasPermission(Permission.USE);
5262 08 Mar 10 nicklas 84   final boolean writePermission = plateType.hasPermission(Permission.WRITE);
5262 08 Mar 10 nicklas 85   final boolean deletePermission = plateType.hasPermission(Permission.DELETE);
5262 08 Mar 10 nicklas 86   final boolean sharePermission = plateType.hasPermission(Permission.SET_PERMISSION);
5262 08 Mar 10 nicklas 87   final boolean isRemoved = plateType.isRemoved();
5262 08 Mar 10 nicklas 88   final boolean isUsed = isRemoved && plateType.isUsed();
5262 08 Mar 10 nicklas 89   final boolean deletePermanentlyPermission = deletePermission && !isUsed;
5262 08 Mar 10 nicklas 90   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, plateType);
7604 25 Feb 19 nicklas 91   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
5262 08 Mar 10 nicklas 92   %>
6261 27 Mar 13 nicklas 93   <base:page title="<%=title%>" id="view-page">
6261 27 Mar 13 nicklas 94   <base:head scripts="table.js,tabcontrol-2.js,~bioplatetypes.js" styles="toolbar.css,table.css,headertabcontrol.css,path.css">
5262 08 Mar 10 nicklas 95     <ext:scripts context="<%=jspContext%>" />
5262 08 Mar 10 nicklas 96     <ext:stylesheets context="<%=jspContext%>" />
5262 08 Mar 10 nicklas 97   </base:head>
5262 08 Mar 10 nicklas 98   <base:body>
5937 27 Jan 12 nicklas 99     <p:path><p:pathelement title="Bioplate types" href="<%="index.jsp?ID="+ID%>" 
5937 27 Jan 12 nicklas 100       /><p:pathelement title="<%=HTML.encodeTags(plateType.getName())%>" 
5937 27 Jan 12 nicklas 101       /></p:path>
6261 27 Mar 13 nicklas 102     <div id="page-data" data-item-id="<%=itemId%>"></div>
5262 08 Mar 10 nicklas 103     
5937 27 Jan 12 nicklas 104     <t:tabcontrol 
5937 27 Jan 12 nicklas 105       id="main" 
5937 27 Jan 12 nicklas 106       subclass="content mastertabcontrol"
6261 27 Mar 13 nicklas 107       active="<%=tab%>">
5262 08 Mar 10 nicklas 108     <t:tab id="properties" title="Properties">
5937 27 Jan 12 nicklas 109       <div>
5937 27 Jan 12 nicklas 110       <table class="fullform bottomborder">
5937 27 Jan 12 nicklas 111       <tr>
5937 27 Jan 12 nicklas 112         <th class="itemstatus">
5262 08 Mar 10 nicklas 113           <base:icon 
6261 27 Mar 13 nicklas 114             id="btnDeletePermanently"
5946 03 Feb 12 nicklas 115             image="deleted.png"
5937 27 Jan 12 nicklas 116             tooltip="This item has been flagged for deletion. Click to delete it now."
5937 27 Jan 12 nicklas 117             enabled="<%=deletePermanentlyPermission %>"
5937 27 Jan 12 nicklas 118             visible="<%=isRemoved%>" 
5937 27 Jan 12 nicklas 119           />
6261 27 Mar 13 nicklas 120           <base:icon
6261 27 Mar 13 nicklas 121             id="btnUsingItems"
6261 27 Mar 13 nicklas 122             image="used.png" 
5937 27 Jan 12 nicklas 123             tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
5937 27 Jan 12 nicklas 124             visible="<%=isRemoved && isUsed%>" />
5937 27 Jan 12 nicklas 125         </th>
5937 27 Jan 12 nicklas 126         <td style="padding: 0px;">
6605 18 Nov 14 nicklas 127           <tbl:toolbar subclass="bottomborder bg-filled-50">
5937 27 Jan 12 nicklas 128             <tbl:button 
6261 27 Mar 13 nicklas 129               id="btnEdit"
5942 01 Feb 12 nicklas 130               disabled="<%=!writePermission%>" 
5945 02 Feb 12 nicklas 131               image="edit.png" 
5937 27 Jan 12 nicklas 132               title="Edit&hellip;" 
5937 27 Jan 12 nicklas 133               tooltip="<%=writePermission ? "Edit this bioplate type" : "You do not have permission to edit this bioplate type"%>" 
5937 27 Jan 12 nicklas 134             />
5937 27 Jan 12 nicklas 135             <tbl:button 
6261 27 Mar 13 nicklas 136               id="btnDelete"
5942 01 Feb 12 nicklas 137               disabled="<%=!deletePermission%>" 
5946 03 Feb 12 nicklas 138               image="delete.png" 
5937 27 Jan 12 nicklas 139               title="Delete"
5937 27 Jan 12 nicklas 140               visible="<%=!plateType.isRemoved()%>"
5937 27 Jan 12 nicklas 141               tooltip="<%=deletePermission ? "Delete this bioplate type" : "You do not have permission to delete this bioplate type"%>" 
5937 27 Jan 12 nicklas 142             />
5937 27 Jan 12 nicklas 143             <tbl:button 
6261 27 Mar 13 nicklas 144               id="btnRestore"
5942 01 Feb 12 nicklas 145               disabled="<%=!writePermission%>" 
5946 03 Feb 12 nicklas 146               image="restore.png" 
5937 27 Jan 12 nicklas 147               title="Restore"
5937 27 Jan 12 nicklas 148               visible="<%=plateType.isRemoved()%>"
5937 27 Jan 12 nicklas 149               tooltip="<%=writePermission ? "Restore this bioplate type" : "You do not have permission to restore this bioplate type"%>" 
5937 27 Jan 12 nicklas 150             />
5937 27 Jan 12 nicklas 151             <tbl:button 
6261 27 Mar 13 nicklas 152               id="btnImport"
5946 03 Feb 12 nicklas 153               image="import.png" 
6261 27 Mar 13 nicklas 154               data-plugin-type="IMPORT"  
5937 27 Jan 12 nicklas 155               title="Import&hellip;" 
5937 27 Jan 12 nicklas 156               tooltip="Import data" 
5937 27 Jan 12 nicklas 157               visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5937 27 Jan 12 nicklas 158             />
5937 27 Jan 12 nicklas 159             <tbl:button 
6261 27 Mar 13 nicklas 160               id="btnExport"
6261 27 Mar 13 nicklas 161               image="export.png"
6261 27 Mar 13 nicklas 162               data-plugin-type="EXPORT" 
5937 27 Jan 12 nicklas 163               title="Export&hellip;" 
5937 27 Jan 12 nicklas 164               tooltip="Export data" 
5937 27 Jan 12 nicklas 165               visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5937 27 Jan 12 nicklas 166             />
5937 27 Jan 12 nicklas 167             <tbl:button 
6261 27 Mar 13 nicklas 168               id="btnRunPlugin"
6261 27 Mar 13 nicklas 169               image="runplugin.png"  
6261 27 Mar 13 nicklas 170               data-plugin-type="OTHER" 
5937 27 Jan 12 nicklas 171               title="Run plugin&hellip;" 
5937 27 Jan 12 nicklas 172               tooltip="Run a plugin" 
5937 27 Jan 12 nicklas 173               visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5937 27 Jan 12 nicklas 174             />
5937 27 Jan 12 nicklas 175             <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 176               wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5937 27 Jan 12 nicklas 177             <tbl:button
5937 27 Jan 12 nicklas 178               image="help.png"
6261 27 Mar 13 nicklas 179               subclass="auto-init"
6261 27 Mar 13 nicklas 180               data-auto-init="help"
6261 27 Mar 13 nicklas 181               data-help-id="bioplatetype.view.properties"
5937 27 Jan 12 nicklas 182               title="Help&hellip;"
5937 27 Jan 12 nicklas 183               tooltip="Get help about this page"
5937 27 Jan 12 nicklas 184             />
5937 27 Jan 12 nicklas 185           </tbl:toolbar>
5937 27 Jan 12 nicklas 186         </td>
5937 27 Jan 12 nicklas 187       </tr>
5262 08 Mar 10 nicklas 188       <tr>
5937 27 Jan 12 nicklas 189         <th>Name</th>
5262 08 Mar 10 nicklas 190         <td><%=HTML.encodeTags(plateType.getName())%></td>
5262 08 Mar 10 nicklas 191       </tr>
5262 08 Mar 10 nicklas 192       <tr>
5937 27 Jan 12 nicklas 193         <th>Biomaterial type</th>
5262 08 Mar 10 nicklas 194         <td><%=plateType.getBioMaterialType() == null ? "<i>- any -</i>" : plateType.getBioMaterialType()%></td>
5262 08 Mar 10 nicklas 195       </tr>
5262 08 Mar 10 nicklas 196       <tr>
5937 27 Jan 12 nicklas 197         <th>Biomaterial subtype</th>
5709 26 Aug 11 nicklas 198         <td><base:propertyvalue item="<%=plateType%>" property="itemSubtype" nulltext="<i>- any -</i>"/></td>
5709 26 Aug 11 nicklas 199       </tr>
5709 26 Aug 11 nicklas 200       <tr>
6056 12 Jun 12 nicklas 201         <th>Storage type</th>
6056 12 Jun 12 nicklas 202         <td><base:propertyvalue item="<%=plateType%>" property="storageType" /></td>
6056 12 Jun 12 nicklas 203       </tr>
6056 12 Jun 12 nicklas 204       <tr>
5937 27 Jan 12 nicklas 205         <th>Well lock mode</th>
5459 29 Oct 10 nicklas 206         <td><%=plateType.getLockMode()%></td>
5262 08 Mar 10 nicklas 207       </tr>
5937 27 Jan 12 nicklas 208         <tr>
5937 27 Jan 12 nicklas 209           <th>Permissions</th>
5937 27 Jan 12 nicklas 210           <td><%=PermissionUtil.getFullPermissionNames(plateType)%></td>
5937 27 Jan 12 nicklas 211         </tr>
5262 08 Mar 10 nicklas 212       <tr>
5937 27 Jan 12 nicklas 213         <th>Description</th>
5262 08 Mar 10 nicklas 214         <td><%=HTML.niceFormat(plateType.getDescription())%></td>
5262 08 Mar 10 nicklas 215       </tr>
5262 08 Mar 10 nicklas 216       </table>
5937 27 Jan 12 nicklas 217       </div>
5262 08 Mar 10 nicklas 218
5496 17 Nov 10 nicklas 219       <jsp:include page="../../common/anytoany/list_anytoany.jsp">
5496 17 Nov 10 nicklas 220         <jsp:param name="ID" value="<%=ID%>" />
5496 17 Nov 10 nicklas 221         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5496 17 Nov 10 nicklas 222         <jsp:param name="item_id" value="<%=itemId%>" />
5496 17 Nov 10 nicklas 223         <jsp:param name="title" value="Other items related to this plate type" />
5496 17 Nov 10 nicklas 224       </jsp:include>
5262 08 Mar 10 nicklas 225       </t:tab>
5262 08 Mar 10 nicklas 226       </t:tabcontrol>
5262 08 Mar 10 nicklas 227   </base:body>
5262 08 Mar 10 nicklas 228   </base:page>
5262 08 Mar 10 nicklas 229   <%
5262 08 Mar 10 nicklas 230 }
5262 08 Mar 10 nicklas 231 finally
5262 08 Mar 10 nicklas 232 {
5262 08 Mar 10 nicklas 233   if (dc != null) dc.close();
5262 08 Mar 10 nicklas 234 }
5262 08 Mar 10 nicklas 235
5262 08 Mar 10 nicklas 236 %>