www/admin/clients/view_client.jsp

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