www/admin/software/view_software.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.Software"
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"
6361 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"
5042 11 Aug 09 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.SOFTWARE;
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   Software software = Software.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 = software.hasPermission(Permission.WRITE);
2305 22 May 06 jari 88   final boolean deletePermission = software.hasPermission(Permission.DELETE);
2305 22 May 06 jari 89   final boolean sharePermission = software.hasPermission(Permission.SET_PERMISSION);
2921 15 Nov 06 nicklas 90   final boolean setOwnerPermission = software.hasPermission(Permission.SET_OWNER);
4003 26 Nov 07 nicklas 91   final boolean isRemoved = software.isRemoved();
4003 26 Nov 07 nicklas 92   final boolean isUsed = isRemoved && software.isUsed();
4003 26 Nov 07 nicklas 93   final boolean deletePermanentlyPermission = deletePermission && !isUsed;
2921 15 Nov 06 nicklas 94   final boolean isOwner = software.isOwner();
4886 03 Apr 09 nicklas 95   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, software);
7604 25 Feb 19 nicklas 96   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
2305 22 May 06 jari 97   %>
6222 14 Jan 13 nicklas 98   <base:page title="<%=title%>" id="view-page">
6322 11 Sep 13 nicklas 99   <base:head scripts="table.js,tabcontrol-2.js,~software.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="Software" href="<%="index.jsp?ID="+ID%>" 
5941 01 Feb 12 nicklas 106       /><p:pathelement title="<%=HTML.encodeTags(software.getName())%>" 
5941 01 Feb 12 nicklas 107       /></p:path>
2305 22 May 06 jari 108     
6222 14 Jan 13 nicklas 109     <div id="page-data" data-item-id="<%=itemId%>"></div>
6222 14 Jan 13 nicklas 110     
5941 01 Feb 12 nicklas 111     <t:tabcontrol 
5941 01 Feb 12 nicklas 112       id="main" 
5941 01 Feb 12 nicklas 113       subclass="content mastertabcontrol" 
6262 27 Mar 13 nicklas 114       active="<%=tab%>">
2305 22 May 06 jari 115     <t:tab id="properties" title="Properties">
5941 01 Feb 12 nicklas 116       <div>
5941 01 Feb 12 nicklas 117       <table class="fullform bottomborder">
5941 01 Feb 12 nicklas 118       <tr>
5941 01 Feb 12 nicklas 119         <th class="itemstatus">
8026 15 Dec 21 nicklas 120           <base:icon
8026 15 Dec 21 nicklas 121             image="star.png"
8026 15 Dec 21 nicklas 122             tooltip="This is a default item for the current project"
8026 15 Dec 21 nicklas 123             visible="<%=activeProject != null && activeProject.isDefaultItem(software)%>" 
8026 15 Dec 21 nicklas 124           />
4003 26 Nov 07 nicklas 125           <base:icon 
5946 03 Feb 12 nicklas 126             image="shared.png" 
5941 01 Feb 12 nicklas 127             visible="<%=software.isShared()%>"
5941 01 Feb 12 nicklas 128             tooltip="This item is shared to other users, groups and/or projects"
5941 01 Feb 12 nicklas 129           />
5941 01 Feb 12 nicklas 130           <base:icon 
6222 14 Jan 13 nicklas 131             id="btnDeletePermanently"
5946 03 Feb 12 nicklas 132             image="deleted.png"
5941 01 Feb 12 nicklas 133             tooltip="This item has been flagged for deletion. Click to delete it now."
5941 01 Feb 12 nicklas 134             enabled="<%=deletePermanentlyPermission %>"
5941 01 Feb 12 nicklas 135             visible="<%=isRemoved%>" 
5941 01 Feb 12 nicklas 136           />
6222 14 Jan 13 nicklas 137           <base:icon 
6222 14 Jan 13 nicklas 138             id="btnUsingItems"
6222 14 Jan 13 nicklas 139             image="used.png" 
5941 01 Feb 12 nicklas 140             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 141             visible="<%=isRemoved && isUsed%>" />
5941 01 Feb 12 nicklas 142         </th>
5941 01 Feb 12 nicklas 143         <td style="padding: 0px;">
6605 18 Nov 14 nicklas 144           <tbl:toolbar subclass="bottomborder bg-filled-50">
5941 01 Feb 12 nicklas 145             <tbl:button 
6222 14 Jan 13 nicklas 146               id="btnEdit"
5942 01 Feb 12 nicklas 147               disabled="<%=!writePermission%>" 
5945 02 Feb 12 nicklas 148               image="edit.png" 
5941 01 Feb 12 nicklas 149               title="Edit&hellip;" 
5941 01 Feb 12 nicklas 150               tooltip="<%=writePermission ? "Edit this software" : "You do not have permission to edit this software"%>" 
5941 01 Feb 12 nicklas 151             />
5941 01 Feb 12 nicklas 152             <tbl:button 
6222 14 Jan 13 nicklas 153               id="btnDelete"
5942 01 Feb 12 nicklas 154               disabled="<%=!deletePermission%>" 
5946 03 Feb 12 nicklas 155               image="delete.png" 
5941 01 Feb 12 nicklas 156               title="Delete"
5941 01 Feb 12 nicklas 157               visible="<%=!software.isRemoved()%>"
5941 01 Feb 12 nicklas 158               tooltip="<%=deletePermission ? "Delete this software" : "You do not have permission to delete this software"%>" 
5941 01 Feb 12 nicklas 159             />
5941 01 Feb 12 nicklas 160             <tbl:button 
6222 14 Jan 13 nicklas 161               id="btnRestore"
5942 01 Feb 12 nicklas 162               disabled="<%=!writePermission%>" 
5946 03 Feb 12 nicklas 163               image="restore.png" 
5941 01 Feb 12 nicklas 164               title="Restore"
5941 01 Feb 12 nicklas 165               visible="<%=software.isRemoved()%>"
5941 01 Feb 12 nicklas 166               tooltip="<%=writePermission ? "Restore this software" : "You do not have permission to restore this software"%>" 
5941 01 Feb 12 nicklas 167             />
5941 01 Feb 12 nicklas 168             <tbl:button 
6222 14 Jan 13 nicklas 169               id="btnShare"
5942 01 Feb 12 nicklas 170               disabled="<%=!sharePermission%>"
5945 02 Feb 12 nicklas 171               image="share.png"
5941 01 Feb 12 nicklas 172               title="Share&hellip;" 
5941 01 Feb 12 nicklas 173               tooltip="<%=sharePermission ? "Share this software to other user, groups and projects" : "You do not have permission to share this software"%>"
5941 01 Feb 12 nicklas 174             />
5941 01 Feb 12 nicklas 175             <tbl:button 
6222 14 Jan 13 nicklas 176               id="btnSetOwner"
5942 01 Feb 12 nicklas 177               disabled="<%=!setOwnerPermission%>"
5941 01 Feb 12 nicklas 178               image="take_ownership.png"
5941 01 Feb 12 nicklas 179               title="Set owner&hellip;"
5941 01 Feb 12 nicklas 180               tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
5941 01 Feb 12 nicklas 181             />
5941 01 Feb 12 nicklas 182             <tbl:button 
6222 14 Jan 13 nicklas 183               id="btnImport"
5946 03 Feb 12 nicklas 184               image="import.png" 
6222 14 Jan 13 nicklas 185               data-plugin-type="IMPORT"  
5941 01 Feb 12 nicklas 186               title="Import&hellip;" 
5941 01 Feb 12 nicklas 187               tooltip="Import data" 
5941 01 Feb 12 nicklas 188               visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5941 01 Feb 12 nicklas 189             />
5941 01 Feb 12 nicklas 190             <tbl:button 
6222 14 Jan 13 nicklas 191               id="btnExport"
6222 14 Jan 13 nicklas 192               image="export.png"
6222 14 Jan 13 nicklas 193               data-plugin-type="EXPORT" 
5941 01 Feb 12 nicklas 194               title="Export&hellip;" 
5941 01 Feb 12 nicklas 195               tooltip="Export data" 
5941 01 Feb 12 nicklas 196               visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5941 01 Feb 12 nicklas 197             />
5941 01 Feb 12 nicklas 198             <tbl:button 
6222 14 Jan 13 nicklas 199               id="btnRunPlugin"
6222 14 Jan 13 nicklas 200               image="runplugin.png"  
6222 14 Jan 13 nicklas 201               data-plugin-type="OTHER" 
5941 01 Feb 12 nicklas 202               title="Run plugin&hellip;" 
5941 01 Feb 12 nicklas 203               tooltip="Run a plugin" 
5941 01 Feb 12 nicklas 204               visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5941 01 Feb 12 nicklas 205             />
5941 01 Feb 12 nicklas 206             <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 207               wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5941 01 Feb 12 nicklas 208             <tbl:button
5941 01 Feb 12 nicklas 209               image="help.png"
6222 14 Jan 13 nicklas 210               subclass="auto-init"
6222 14 Jan 13 nicklas 211               data-auto-init="help"
6222 14 Jan 13 nicklas 212               data-help-id="software.view.properties"
5941 01 Feb 12 nicklas 213               title="Help&hellip;"
5941 01 Feb 12 nicklas 214               tooltip="Get help about this page"
5941 01 Feb 12 nicklas 215             />
5941 01 Feb 12 nicklas 216           </tbl:toolbar>
5941 01 Feb 12 nicklas 217         </td>
5941 01 Feb 12 nicklas 218       </tr>
2305 22 May 06 jari 219       <tr>
5941 01 Feb 12 nicklas 220         <th>Name</th>
2305 22 May 06 jari 221         <td><%=HTML.encodeTags(software.getName())%></td>
2305 22 May 06 jari 222       </tr>
2305 22 May 06 jari 223       <tr>
5941 01 Feb 12 nicklas 224         <th>Type</th>
5643 26 May 11 nicklas 225         <td><base:propertyvalue item="<%=software%>" property="itemSubtype" /></td>
5643 26 May 11 nicklas 226       </tr>
5643 26 May 11 nicklas 227       <tr>
5941 01 Feb 12 nicklas 228         <th>Registered</th>
4698 10 Dec 08 nicklas 229         <td><%=dateFormatter.format(software.getEntryDate())%></td>
4698 10 Dec 08 nicklas 230       </tr>
4698 10 Dec 08 nicklas 231       <tr>
5941 01 Feb 12 nicklas 232         <th>Version</th>
2305 22 May 06 jari 233         <td><%=HTML.encodeTags(software.getVersionString())%></td>
2305 22 May 06 jari 234       </tr>
2305 22 May 06 jari 235       <tr>
5941 01 Feb 12 nicklas 236         <th>Owner</th>
2438 28 Jun 06 nicklas 237         <td><base:propertyvalue item="<%=software%>" property="owner" /></td>
2305 22 May 06 jari 238       </tr>
2305 22 May 06 jari 239       <tr>
5941 01 Feb 12 nicklas 240         <th>Permissions</th>
5941 01 Feb 12 nicklas 241         <td><%=PermissionUtil.getFullPermissionNames(software)%></td>
5941 01 Feb 12 nicklas 242       </tr>
5941 01 Feb 12 nicklas 243       <tr>
5941 01 Feb 12 nicklas 244         <th>Description</th>
2305 22 May 06 jari 245         <td><%=HTML.niceFormat(software.getDescription())%></td>
2305 22 May 06 jari 246       </tr>
2305 22 May 06 jari 247       </table>
5941 01 Feb 12 nicklas 248       </div>
5507 19 Nov 10 nicklas 249       <jsp:include page="../../common/anytoany/list_anytoany.jsp">
5507 19 Nov 10 nicklas 250         <jsp:param name="ID" value="<%=ID%>" />
5507 19 Nov 10 nicklas 251         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5507 19 Nov 10 nicklas 252         <jsp:param name="item_id" value="<%=itemId%>" />
5507 19 Nov 10 nicklas 253         <jsp:param name="title" value="Other items related to this software" />
5507 19 Nov 10 nicklas 254       </jsp:include>
5941 01 Feb 12 nicklas 255       <jsp:include page="../../common/share/list_share.jsp">
5941 01 Feb 12 nicklas 256         <jsp:param name="ID" value="<%=ID%>" />
5941 01 Feb 12 nicklas 257         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5941 01 Feb 12 nicklas 258         <jsp:param name="item_id" value="<%=itemId%>" />
5941 01 Feb 12 nicklas 259         <jsp:param name="title" value="Shared to" />
5941 01 Feb 12 nicklas 260       </jsp:include>
5941 01 Feb 12 nicklas 261     </t:tab>
6334 16 Oct 13 olle 262     <t:tab id="annotations" title="Annotations" 
6334 16 Oct 13 olle 263       tooltip="View annotation values" clazz="white">
6334 16 Oct 13 olle 264       <jsp:include page="../../common/annotations/list_frameset.jsp">
6334 16 Oct 13 olle 265         <jsp:param name="item_type" value="<%=itemType.name()%>" />
6334 16 Oct 13 olle 266         <jsp:param name="item_id" value="<%=itemId%>" />
6334 16 Oct 13 olle 267         <jsp:param name="ID" value="<%=ID%>" />
6334 16 Oct 13 olle 268       </jsp:include>
6334 16 Oct 13 olle 269     </t:tab>
7166 07 Jun 16 nicklas 270     <t:tab id="history" title="History"
7166 07 Jun 16 nicklas 271       tooltip="Displays a log with the history of this item"
6361 28 Nov 13 olle 272       visible="<%=ChangeHistoryUtil.showChangeHistoryTab(sc)%>">
6361 28 Nov 13 olle 273       <jsp:include page="../../common/history/frameset.jsp">
6361 28 Nov 13 olle 274         <jsp:param name="item_type" value="<%=itemType.name()%>" />
6361 28 Nov 13 olle 275         <jsp:param name="item_id" value="<%=itemId%>" />
6361 28 Nov 13 olle 276         <jsp:param name="ID" value="<%=ID%>" />
6361 28 Nov 13 olle 277       </jsp:include>
6361 28 Nov 13 olle 278     </t:tab>
5941 01 Feb 12 nicklas 279     </t:tabcontrol>
2305 22 May 06 jari 280   </base:body>
2305 22 May 06 jari 281   </base:page>
2305 22 May 06 jari 282   <%
2305 22 May 06 jari 283 }
2305 22 May 06 jari 284 finally
2305 22 May 06 jari 285 {
2305 22 May 06 jari 286   if (dc != null) dc.close();
2305 22 May 06 jari 287 }
2305 22 May 06 jari 288
2305 22 May 06 jari 289 %>