www/admin/hardware/view_hardware.jsp

Code
Comments
Other
Rev Date Author Line
2305 22 May 06 jari 1 <%-- $Id$
2305 22 May 06 jari 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 Martin Svensson
2305 22 May 06 jari 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/
2305 22 May 06 jari 8
2305 22 May 06 jari 9   BASE is free software; you can redistribute it and/or
2305 22 May 06 jari 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
2305 22 May 06 jari 12   of the License, or (at your option) any later version.
2305 22 May 06 jari 13
2305 22 May 06 jari 14   BASE is distributed in the hope that it will be useful,
2305 22 May 06 jari 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
2305 22 May 06 jari 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2305 22 May 06 jari 17   GNU General Public License for more details.
2305 22 May 06 jari 18
2305 22 May 06 jari 19   You should have received a copy of the GNU General Public License
4510 11 Sep 08 jari 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
2305 22 May 06 jari 21   ------------------------------------------------------------------
2305 22 May 06 jari 22
2305 22 May 06 jari 23   @author Nicklas
2305 22 May 06 jari 24   @version 2.0
2305 22 May 06 jari 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
2305 22 May 06 jari 27   import="net.sf.basedb.core.SessionControl"
2305 22 May 06 jari 28   import="net.sf.basedb.core.DbControl"
2305 22 May 06 jari 29   import="net.sf.basedb.core.SystemItems"
3547 03 Jul 07 martin 30   import="net.sf.basedb.core.Group"
2305 22 May 06 jari 31   import="net.sf.basedb.core.Item"
2305 22 May 06 jari 32   import="net.sf.basedb.core.ItemContext"
5042 11 Aug 09 martin 33   import="net.sf.basedb.core.ItemResultList"
2305 22 May 06 jari 34   import="net.sf.basedb.core.Permission"
2305 22 May 06 jari 35   import="net.sf.basedb.core.Hardware"
2305 22 May 06 jari 36   import="net.sf.basedb.core.User"
3547 03 Jul 07 martin 37   import="net.sf.basedb.core.MultiPermissions"
2305 22 May 06 jari 38   import="net.sf.basedb.core.PermissionDeniedException"
2305 22 May 06 jari 39   import="net.sf.basedb.core.PluginDefinition"
2305 22 May 06 jari 40   import="net.sf.basedb.core.plugin.GuiContext"
2305 22 May 06 jari 41   import="net.sf.basedb.core.plugin.Plugin"
3547 03 Jul 07 martin 42   import="net.sf.basedb.core.Project"
2305 22 May 06 jari 43   import="net.sf.basedb.clients.web.Base"
6360 28 Nov 13 olle 44   import="net.sf.basedb.clients.web.ChangeHistoryUtil"
2386 15 Jun 06 martin 45   import="net.sf.basedb.clients.web.PermissionUtil"
2305 22 May 06 jari 46   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 47   import="net.sf.basedb.util.Values"
4698 10 Dec 08 nicklas 48   import="net.sf.basedb.util.formatter.Formatter"
4698 10 Dec 08 nicklas 49   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4886 03 Apr 09 nicklas 50   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4886 03 Apr 09 nicklas 51   import="net.sf.basedb.clients.web.extensions.JspContext"
4886 03 Apr 09 nicklas 52   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 53   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4886 03 Apr 09 nicklas 54   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
4886 03 Apr 09 nicklas 55   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
4698 10 Dec 08 nicklas 56   import="java.util.Date"
3547 03 Jul 07 martin 57   import="java.util.Collections"
2305 22 May 06 jari 58   import="java.util.Map"
3547 03 Jul 07 martin 59   import="java.util.Set"
2305 22 May 06 jari 60 %>
2305 22 May 06 jari 61 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2305 22 May 06 jari 62 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
2305 22 May 06 jari 63 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
2305 22 May 06 jari 64 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
4886 03 Apr 09 nicklas 65 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
2305 22 May 06 jari 66 <%!
2305 22 May 06 jari 67   private static final Item itemType = Item.HARDWARE;
2305 22 May 06 jari 68   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
2305 22 May 06 jari 69 %>
2305 22 May 06 jari 70 <%
2305 22 May 06 jari 71 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
2305 22 May 06 jari 72 final String ID = sc.getId();
2305 22 May 06 jari 73 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
2305 22 May 06 jari 74 final int itemId = cc.getId();
6262 27 Mar 13 nicklas 75 final String tab = Values.getStringOrNull(request.getParameter("tab"));
2305 22 May 06 jari 76 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 77 final DbControl dc = sc.newDbControl(":View "+itemType);
2305 22 May 06 jari 78 try
2305 22 May 06 jari 79 {
4698 10 Dec 08 nicklas 80   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
2305 22 May 06 jari 81   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
2305 22 May 06 jari 82
2305 22 May 06 jari 83   String title = null;
2305 22 May 06 jari 84   Hardware hardware = Hardware.getById(dc, itemId);
8026 15 Dec 21 nicklas 85   Project activeProject = Project.getActive(dc);
2305 22 May 06 jari 86   
2305 22 May 06 jari 87   final boolean writePermission = hardware.hasPermission(Permission.WRITE);
2305 22 May 06 jari 88   final boolean deletePermission = hardware.hasPermission(Permission.DELETE);
2305 22 May 06 jari 89   final boolean sharePermission = hardware.hasPermission(Permission.SET_PERMISSION);
2921 15 Nov 06 nicklas 90   final boolean setOwnerPermission = hardware.hasPermission(Permission.SET_OWNER);
2921 15 Nov 06 nicklas 91   final boolean isOwner = hardware.isOwner();
4003 26 Nov 07 nicklas 92   final boolean isRemoved = hardware.isRemoved();
4003 26 Nov 07 nicklas 93   final boolean isUsed = isRemoved && hardware.isUsed();
4003 26 Nov 07 nicklas 94   final boolean deletePermanentlyPermission = deletePermission && !isUsed;
4886 03 Apr 09 nicklas 95   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, hardware);
7604 25 Feb 19 nicklas 96   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
2305 22 May 06 jari 97   %>
6262 27 Mar 13 nicklas 98   <base:page title="<%=title%>" id="view-page">
6262 27 Mar 13 nicklas 99   <base:head scripts="table,js,tabcontrol-2.js,~hardware.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css">
4886 03 Apr 09 nicklas 100     <ext:scripts context="<%=jspContext%>" />
4886 03 Apr 09 nicklas 101     <ext:stylesheets context="<%=jspContext%>" />
2305 22 May 06 jari 102   </base:head>
2305 22 May 06 jari 103   <base:body>
5941 01 Feb 12 nicklas 104     <p:path><p:pathelement
5941 01 Feb 12 nicklas 105       title="Hardware" href="<%="index.jsp?ID="+ID%>" 
5941 01 Feb 12 nicklas 106       /><p:pathelement title="<%=HTML.encodeTags(hardware.getName())%>" 
5941 01 Feb 12 nicklas 107       /></p:path>
6262 27 Mar 13 nicklas 108     <div id="page-data" data-item-id="<%=itemId%>"></div>
2305 22 May 06 jari 109     
5941 01 Feb 12 nicklas 110     <t:tabcontrol 
5941 01 Feb 12 nicklas 111       id="main" 
5941 01 Feb 12 nicklas 112       subclass="content mastertabcontrol" 
6262 27 Mar 13 nicklas 113       active="<%=tab%>">
2305 22 May 06 jari 114     <t:tab id="properties" title="Properties">
5941 01 Feb 12 nicklas 115       <div>
5941 01 Feb 12 nicklas 116       <table class="fullform bottomborder">
5941 01 Feb 12 nicklas 117       <tr>
5941 01 Feb 12 nicklas 118         <th class="itemstatus">
8026 15 Dec 21 nicklas 119           <base:icon
8026 15 Dec 21 nicklas 120             image="star.png"
8026 15 Dec 21 nicklas 121             tooltip="This is a default item for the current project"
8026 15 Dec 21 nicklas 122             visible="<%=activeProject != null && activeProject.isDefaultItem(hardware)%>" 
8026 15 Dec 21 nicklas 123           />
4003 26 Nov 07 nicklas 124           <base:icon 
5946 03 Feb 12 nicklas 125             image="shared.png" 
5941 01 Feb 12 nicklas 126             visible="<%=hardware.isShared()%>"
5941 01 Feb 12 nicklas 127             tooltip="This item is shared to other users, groups and/or projects"
5941 01 Feb 12 nicklas 128           />
5941 01 Feb 12 nicklas 129           <base:icon 
6262 27 Mar 13 nicklas 130             id="btnDeletePermanently"
5946 03 Feb 12 nicklas 131             image="deleted.png"
5941 01 Feb 12 nicklas 132             tooltip="This item has been flagged for deletion. Click to delete it now."
5941 01 Feb 12 nicklas 133             enabled="<%=deletePermanentlyPermission %>"
5941 01 Feb 12 nicklas 134             visible="<%=isRemoved%>" 
5941 01 Feb 12 nicklas 135           />
6262 27 Mar 13 nicklas 136           <base:icon 
6262 27 Mar 13 nicklas 137             id="btnUsingItems"
6262 27 Mar 13 nicklas 138             image="used.png" 
5941 01 Feb 12 nicklas 139             tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
5941 01 Feb 12 nicklas 140             visible="<%=isRemoved && isUsed%>" />
5941 01 Feb 12 nicklas 141         </th>
5941 01 Feb 12 nicklas 142         <td style="padding: 0px;">
6605 18 Nov 14 nicklas 143           <tbl:toolbar subclass="bottomborder bg-filled-50">
5941 01 Feb 12 nicklas 144             <tbl:button 
6262 27 Mar 13 nicklas 145               id="btnEdit"
5942 01 Feb 12 nicklas 146               disabled="<%=!writePermission%>" 
5945 02 Feb 12 nicklas 147               image="edit.png" 
5941 01 Feb 12 nicklas 148               title="Edit&hellip;" 
5941 01 Feb 12 nicklas 149               tooltip="<%=writePermission ? "Edit this hardware" : "You do not have permission to edit this hardware"%>" 
5941 01 Feb 12 nicklas 150             />
5941 01 Feb 12 nicklas 151             <tbl:button 
6262 27 Mar 13 nicklas 152               id="btnDelete"
5942 01 Feb 12 nicklas 153               disabled="<%=!deletePermission%>" 
5946 03 Feb 12 nicklas 154               image="delete.png" 
5941 01 Feb 12 nicklas 155               title="Delete"
5941 01 Feb 12 nicklas 156               visible="<%=!hardware.isRemoved()%>"
5941 01 Feb 12 nicklas 157               tooltip="<%=deletePermission ? "Delete this hardware" : "You do not have permission to delete this hardware"%>" 
5941 01 Feb 12 nicklas 158             />
5941 01 Feb 12 nicklas 159             <tbl:button 
6262 27 Mar 13 nicklas 160               id="btnRestore"
5942 01 Feb 12 nicklas 161               disabled="<%=!writePermission%>" 
5946 03 Feb 12 nicklas 162               image="restore.png" 
5941 01 Feb 12 nicklas 163               title="Restore"
5941 01 Feb 12 nicklas 164               visible="<%=hardware.isRemoved()%>"
5941 01 Feb 12 nicklas 165               tooltip="<%=writePermission ? "Restore this hardware" : "You do not have permission to restore this hardware"%>" 
5941 01 Feb 12 nicklas 166             />
5941 01 Feb 12 nicklas 167             <tbl:button 
6262 27 Mar 13 nicklas 168               id="btnShare"
5942 01 Feb 12 nicklas 169               disabled="<%=!sharePermission%>"
5945 02 Feb 12 nicklas 170               image="share.png"
5941 01 Feb 12 nicklas 171               title="Share&hellip;" 
5941 01 Feb 12 nicklas 172               tooltip="<%=sharePermission ? "Share this hardware to other user, groups and projects" : "You do not have permission to share this hardware"%>"
5941 01 Feb 12 nicklas 173             />
5941 01 Feb 12 nicklas 174             <tbl:button 
6262 27 Mar 13 nicklas 175               id="btnSetOwner"
5942 01 Feb 12 nicklas 176               disabled="<%=!setOwnerPermission%>"
5941 01 Feb 12 nicklas 177               image="take_ownership.png"
5941 01 Feb 12 nicklas 178               title="Set owner&hellip;"
5941 01 Feb 12 nicklas 179               tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
5941 01 Feb 12 nicklas 180             />
5941 01 Feb 12 nicklas 181             <tbl:button 
6262 27 Mar 13 nicklas 182               id="btnImport"
5946 03 Feb 12 nicklas 183               image="import.png" 
6262 27 Mar 13 nicklas 184               data-plugin-type="IMPORT"  
5941 01 Feb 12 nicklas 185               title="Import&hellip;" 
5941 01 Feb 12 nicklas 186               tooltip="Import data" 
5941 01 Feb 12 nicklas 187               visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5941 01 Feb 12 nicklas 188             />
5941 01 Feb 12 nicklas 189             <tbl:button 
6262 27 Mar 13 nicklas 190               id="btnExport"
6262 27 Mar 13 nicklas 191               image="export.png"
6262 27 Mar 13 nicklas 192               data-plugin-type="EXPORT" 
5941 01 Feb 12 nicklas 193               title="Export&hellip;" 
5941 01 Feb 12 nicklas 194               tooltip="Export data" 
5941 01 Feb 12 nicklas 195               visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5941 01 Feb 12 nicklas 196             />
5941 01 Feb 12 nicklas 197             <tbl:button 
6262 27 Mar 13 nicklas 198               id="btnRunPlugin"
6262 27 Mar 13 nicklas 199               image="runplugin.png"  
6262 27 Mar 13 nicklas 200               data-plugin-type="OTHER" 
5941 01 Feb 12 nicklas 201               title="Run plugin&hellip;" 
5941 01 Feb 12 nicklas 202               tooltip="Run a plugin" 
5941 01 Feb 12 nicklas 203               visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5941 01 Feb 12 nicklas 204             />
5941 01 Feb 12 nicklas 205             <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 206               wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5941 01 Feb 12 nicklas 207             <tbl:button
5941 01 Feb 12 nicklas 208               image="help.png"
6262 27 Mar 13 nicklas 209               subclass="auto-init"
6262 27 Mar 13 nicklas 210               data-auto-init="help"
6262 27 Mar 13 nicklas 211               data-help-id="hardware.view.properties"
5941 01 Feb 12 nicklas 212               title="Help&hellip;"
5941 01 Feb 12 nicklas 213               tooltip="Get help about this page"
5941 01 Feb 12 nicklas 214             />
5941 01 Feb 12 nicklas 215           </tbl:toolbar>
5941 01 Feb 12 nicklas 216         </td>
5941 01 Feb 12 nicklas 217       </tr>
2305 22 May 06 jari 218       <tr>
5941 01 Feb 12 nicklas 219         <th>Name</th>
2305 22 May 06 jari 220         <td><%=HTML.encodeTags(hardware.getName())%></td>
2305 22 May 06 jari 221       </tr>
2305 22 May 06 jari 222       <tr>
5941 01 Feb 12 nicklas 223         <th>Type</th>
5643 26 May 11 nicklas 224         <td><base:propertyvalue item="<%=hardware%>" property="itemSubtype" /></td>
5643 26 May 11 nicklas 225       </tr>
5643 26 May 11 nicklas 226       <tr>
5941 01 Feb 12 nicklas 227         <th>Registered</th>
4698 10 Dec 08 nicklas 228         <td><%=dateFormatter.format(hardware.getEntryDate())%></td>
4698 10 Dec 08 nicklas 229       </tr>
4698 10 Dec 08 nicklas 230       <tr>
5941 01 Feb 12 nicklas 231         <th>Version</th>
2305 22 May 06 jari 232         <td><%=HTML.encodeTags(hardware.getVersionString())%></td>
2305 22 May 06 jari 233       </tr>
2305 22 May 06 jari 234       <tr>
5941 01 Feb 12 nicklas 235         <th>Owner</th>
2438 28 Jun 06 nicklas 236         <td><base:propertyvalue item="<%=hardware%>" property="owner" /></td>
2305 22 May 06 jari 237       </tr>
2305 22 May 06 jari 238       <tr>
5941 01 Feb 12 nicklas 239         <th>Permissions</th>
5941 01 Feb 12 nicklas 240         <td><%=PermissionUtil.getFullPermissionNames(hardware)%></td>
5941 01 Feb 12 nicklas 241       </tr>
5941 01 Feb 12 nicklas 242       <tr>
5941 01 Feb 12 nicklas 243         <th>Description</th>
2305 22 May 06 jari 244         <td><%=HTML.niceFormat(hardware.getDescription())%></td>
2305 22 May 06 jari 245       </tr>
2305 22 May 06 jari 246       </table>
5941 01 Feb 12 nicklas 247       </div>
5507 19 Nov 10 nicklas 248       <jsp:include page="../../common/anytoany/list_anytoany.jsp">
5507 19 Nov 10 nicklas 249         <jsp:param name="ID" value="<%=ID%>" />
5507 19 Nov 10 nicklas 250         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5507 19 Nov 10 nicklas 251         <jsp:param name="item_id" value="<%=itemId%>" />
5507 19 Nov 10 nicklas 252         <jsp:param name="title" value="Other items related to this hardware" />
5507 19 Nov 10 nicklas 253       </jsp:include>
5941 01 Feb 12 nicklas 254       <jsp:include page="../../common/share/list_share.jsp">
5941 01 Feb 12 nicklas 255         <jsp:param name="ID" value="<%=ID%>" />
5941 01 Feb 12 nicklas 256         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5941 01 Feb 12 nicklas 257         <jsp:param name="item_id" value="<%=itemId%>" />
5941 01 Feb 12 nicklas 258         <jsp:param name="title" value="Shared to" />
5941 01 Feb 12 nicklas 259       </jsp:include>
5941 01 Feb 12 nicklas 260     </t:tab>
6328 15 Oct 13 olle 261     <t:tab id="annotations" title="Annotations" 
6328 15 Oct 13 olle 262       tooltip="View annotation values" clazz="white">
6328 15 Oct 13 olle 263       <jsp:include page="../../common/annotations/list_frameset.jsp">
6328 15 Oct 13 olle 264         <jsp:param name="item_type" value="<%=itemType.name()%>" />
6328 15 Oct 13 olle 265         <jsp:param name="item_id" value="<%=itemId%>" />
6328 15 Oct 13 olle 266         <jsp:param name="ID" value="<%=ID%>" />
6328 15 Oct 13 olle 267       </jsp:include>
6328 15 Oct 13 olle 268     </t:tab>
7166 07 Jun 16 nicklas 269     <t:tab id="history" title="History"
7166 07 Jun 16 nicklas 270       tooltip="Displays a log with the history of this item"
6360 28 Nov 13 olle 271       visible="<%=ChangeHistoryUtil.showChangeHistoryTab(sc)%>">
6360 28 Nov 13 olle 272       <jsp:include page="../../common/history/frameset.jsp">
6360 28 Nov 13 olle 273         <jsp:param name="item_type" value="<%=itemType.name()%>" />
6360 28 Nov 13 olle 274         <jsp:param name="item_id" value="<%=itemId%>" />
6360 28 Nov 13 olle 275         <jsp:param name="ID" value="<%=ID%>" />
6360 28 Nov 13 olle 276       </jsp:include>
6360 28 Nov 13 olle 277     </t:tab>
5941 01 Feb 12 nicklas 278     </t:tabcontrol>
2305 22 May 06 jari 279   </base:body>
2305 22 May 06 jari 280   </base:page>
2305 22 May 06 jari 281   <%
2305 22 May 06 jari 282 }
2305 22 May 06 jari 283 finally
2305 22 May 06 jari 284 {
2305 22 May 06 jari 285   if (dc != null) dc.close();
2305 22 May 06 jari 286 }
2305 22 May 06 jari 287
2305 22 May 06 jari 288 %>