www/views/sessions/view_session.jsp

Code
Comments
Other
Rev Date Author Line
1663 24 Nov 05 nicklas 1 <%-- $Id$
1663 24 Nov 05 nicklas 2   ------------------------------------------------------------------
3675 16 Aug 07 jari 3   Copyright (C) 2005 Nicklas Nordborg
5425 23 Sep 10 nicklas 4   Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg
1663 24 Nov 05 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/
1663 24 Nov 05 nicklas 8
1663 24 Nov 05 nicklas 9   BASE is free software; you can redistribute it and/or
1663 24 Nov 05 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
1663 24 Nov 05 nicklas 12   of the License, or (at your option) any later version.
1663 24 Nov 05 nicklas 13
1663 24 Nov 05 nicklas 14   BASE is distributed in the hope that it will be useful,
1663 24 Nov 05 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
1663 24 Nov 05 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1663 24 Nov 05 nicklas 17   GNU General Public License for more details.
1663 24 Nov 05 nicklas 18
1663 24 Nov 05 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/>.
1663 24 Nov 05 nicklas 21   ------------------------------------------------------------------
1663 24 Nov 05 nicklas 22
1663 24 Nov 05 nicklas 23   @author Nicklas
1663 24 Nov 05 nicklas 24   @version 2.0
1663 24 Nov 05 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1663 24 Nov 05 nicklas 27   import="net.sf.basedb.core.SessionControl"
1663 24 Nov 05 nicklas 28   import="net.sf.basedb.core.DbControl"
1893 02 Feb 06 nicklas 29   import="net.sf.basedb.core.SystemItems"
1663 24 Nov 05 nicklas 30   import="net.sf.basedb.core.Item"
1893 02 Feb 06 nicklas 31   import="net.sf.basedb.core.ItemContext"
1893 02 Feb 06 nicklas 32   import="net.sf.basedb.core.Permission"
1663 24 Nov 05 nicklas 33   import="net.sf.basedb.core.Session"
1893 02 Feb 06 nicklas 34   import="net.sf.basedb.core.User"
7406 05 Oct 17 nicklas 35   import="net.sf.basedb.core.UserDevice"
1663 24 Nov 05 nicklas 36   import="net.sf.basedb.core.Client"
7952 12 May 21 nicklas 37   import="net.sf.basedb.core.Project"
7952 12 May 21 nicklas 38   import="net.sf.basedb.core.Job"
7952 12 May 21 nicklas 39   import="net.sf.basedb.core.ChangeHistory"
7952 12 May 21 nicklas 40   import="net.sf.basedb.core.ChangeHistory.TransactionInfo"
1663 24 Nov 05 nicklas 41   import="net.sf.basedb.core.PermissionDeniedException"
1893 02 Feb 06 nicklas 42   import="net.sf.basedb.core.PluginDefinition"
1893 02 Feb 06 nicklas 43   import="net.sf.basedb.core.plugin.GuiContext"
1893 02 Feb 06 nicklas 44   import="net.sf.basedb.core.plugin.Plugin"
1663 24 Nov 05 nicklas 45   import="net.sf.basedb.clients.web.Base"
7952 12 May 21 nicklas 46   import="net.sf.basedb.clients.web.ChangeHistoryUtil"
1663 24 Nov 05 nicklas 47   import="net.sf.basedb.clients.web.util.HTML"
7952 12 May 21 nicklas 48   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
7952 12 May 21 nicklas 49   import="net.sf.basedb.clients.web.extensions.JspContext"
7952 12 May 21 nicklas 50   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7952 12 May 21 nicklas 51   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
7952 12 May 21 nicklas 52   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7952 12 May 21 nicklas 53   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
7414 12 Oct 17 nicklas 54   import="net.sf.basedb.util.GeoLocation"
2753 20 Oct 06 nicklas 55   import="net.sf.basedb.util.Values"
2942 22 Nov 06 nicklas 56   import="net.sf.basedb.util.formatter.Formatter"
2942 22 Nov 06 nicklas 57   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
1893 02 Feb 06 nicklas 58   import="java.util.Date"
1893 02 Feb 06 nicklas 59   import="java.util.Map"
1893 02 Feb 06 nicklas 60   import="java.util.Set"
1893 02 Feb 06 nicklas 61   import="java.util.List"
1663 24 Nov 05 nicklas 62 %>
1663 24 Nov 05 nicklas 63 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
7952 12 May 21 nicklas 64 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
7952 12 May 21 nicklas 65 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
7952 12 May 21 nicklas 66 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1893 02 Feb 06 nicklas 67 <%!
1893 02 Feb 06 nicklas 68   private static final Item itemType = Item.SESSION;
1893 02 Feb 06 nicklas 69   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
1893 02 Feb 06 nicklas 70 %>
1663 24 Nov 05 nicklas 71 <%
1663 24 Nov 05 nicklas 72 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
1663 24 Nov 05 nicklas 73 final String ID = sc.getId();
1893 02 Feb 06 nicklas 74 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1893 02 Feb 06 nicklas 75 final int itemId = cc.getId();
7952 12 May 21 nicklas 76 final String tab = Values.getString(request.getParameter("tab"));
7952 12 May 21 nicklas 77 int transactId = Values.getInt(request.getParameter("transact_id"));
1663 24 Nov 05 nicklas 78 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 79 final DbControl dc = sc.newDbControl(":View "+itemType);
1663 24 Nov 05 nicklas 80 try
1663 24 Nov 05 nicklas 81 {
1893 02 Feb 06 nicklas 82   Session s = Session.getById(dc, itemId);
7952 12 May 21 nicklas 83   TransactionInfo tact = transactId > 0 ? ChangeHistory.getTransactionInfo(dc, transactId) : null;
1893 02 Feb 06 nicklas 84   
7952 12 May 21 nicklas 85   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
7952 12 May 21 nicklas 86
7414 12 Oct 17 nicklas 87   final String mapURL = GeoLocation.getURLToMap(s.getLocationLatitude(), s.getLocationLongitude());
1663 24 Nov 05 nicklas 88   String title = "View session";
2942 22 Nov 06 nicklas 89   Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
7952 12 May 21 nicklas 90   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, s);
7952 12 May 21 nicklas 91   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
1663 24 Nov 05 nicklas 92   %>
7952 12 May 21 nicklas 93   <base:page title="<%=title%>" id="view-page">
7952 12 May 21 nicklas 94   <base:head scripts="tabcontrol-2.js,~sessions.js" styles="toolbar.css,headertabcontrol.css,path.css">
7952 12 May 21 nicklas 95     <ext:scripts context="<%=jspContext%>" />
7952 12 May 21 nicklas 96     <ext:stylesheets context="<%=jspContext%>" />
7952 12 May 21 nicklas 97   </base:head>
7952 12 May 21 nicklas 98   <base:body>
1893 02 Feb 06 nicklas 99     
7952 12 May 21 nicklas 100     <p:path><p:pathelement
7952 12 May 21 nicklas 101       title="Sessions" href="<%="index.jsp?ID="+ID%>" 
7952 12 May 21 nicklas 102       /><%
7952 12 May 21 nicklas 103       if (tact == null)
7952 12 May 21 nicklas 104       {
7952 12 May 21 nicklas 105         %><p:pathelement title="<%=dateTimeFormatter.format(s.getLoginTime()) +" <span class=\\\"itemsubtype\\\">(Session)</span>"%>"
7952 12 May 21 nicklas 106         /><%
7952 12 May 21 nicklas 107       }
7952 12 May 21 nicklas 108       else
7952 12 May 21 nicklas 109       {
7952 12 May 21 nicklas 110         %><p:pathelement title="<%=dateTimeFormatter.format(tact.getTime()) +" <span class=\\\"itemsubtype\\\">(Transaction)</span>"%>"
7952 12 May 21 nicklas 111         /><%
7952 12 May 21 nicklas 112       }
7952 12 May 21 nicklas 113       %></p:path>
7952 12 May 21 nicklas 114       
6311 23 Aug 13 nicklas 115     <div id="page-data" data-item-id="<%=itemId%>"></div>
6311 23 Aug 13 nicklas 116     
7952 12 May 21 nicklas 117     <t:tabcontrol 
7952 12 May 21 nicklas 118       id="main" 
7952 12 May 21 nicklas 119       subclass="content mastertabcontrol" 
7952 12 May 21 nicklas 120       active="<%=tab%>">
7952 12 May 21 nicklas 121     <t:tab id="properties" title="Properties">
7952 12 May 21 nicklas 122       <div>
7952 12 May 21 nicklas 123       <table class="fullform bottomborder">
1663 24 Nov 05 nicklas 124       <tr>
7952 12 May 21 nicklas 125         <th class="itemstatus">
7952 12 May 21 nicklas 126         </th>
7952 12 May 21 nicklas 127         <td style="padding: 0px;">
7952 12 May 21 nicklas 128           <tbl:toolbar subclass="bottomborder bg-filled-50">
7952 12 May 21 nicklas 129             <tbl:button 
7952 12 May 21 nicklas 130               id="btnExport"
7952 12 May 21 nicklas 131               image="export.png"
7952 12 May 21 nicklas 132               data-plugin-type="EXPORT" 
7952 12 May 21 nicklas 133               title="Export&hellip;" 
7952 12 May 21 nicklas 134               tooltip="Export data" 
7952 12 May 21 nicklas 135               visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
7952 12 May 21 nicklas 136             />
7952 12 May 21 nicklas 137             <tbl:button 
7952 12 May 21 nicklas 138               id="btnRunPlugin"
7952 12 May 21 nicklas 139               image="runplugin.png"  
7952 12 May 21 nicklas 140               data-plugin-type="OTHER" 
7952 12 May 21 nicklas 141               title="Run plugin&hellip;" 
7952 12 May 21 nicklas 142               tooltip="Run a plugin" 
7952 12 May 21 nicklas 143               visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
7952 12 May 21 nicklas 144             />
7952 12 May 21 nicklas 145             <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7952 12 May 21 nicklas 146               wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
7952 12 May 21 nicklas 147             <tbl:button
7952 12 May 21 nicklas 148               image="help.png"
7952 12 May 21 nicklas 149               subclass="auto-init"
7952 12 May 21 nicklas 150               data-auto-init="help"
7952 12 May 21 nicklas 151               data-help-id="session.view.properties"
7952 12 May 21 nicklas 152               title="Help&hellip;"
7952 12 May 21 nicklas 153               tooltip="Get help about this page"
7952 12 May 21 nicklas 154             />
7952 12 May 21 nicklas 155           </tbl:toolbar>
7952 12 May 21 nicklas 156         </td>
7952 12 May 21 nicklas 157       </tr>
7952 12 May 21 nicklas 158       <%
7952 12 May 21 nicklas 159       if (tact != null)
7952 12 May 21 nicklas 160       {
7952 12 May 21 nicklas 161         Project project = null;
7952 12 May 21 nicklas 162         boolean deniedProject = false;
7952 12 May 21 nicklas 163         try
7952 12 May 21 nicklas 164         {
7952 12 May 21 nicklas 165           project = tact.getProject(dc);
7952 12 May 21 nicklas 166         }
7952 12 May 21 nicklas 167         catch (PermissionDeniedException ex)
7952 12 May 21 nicklas 168         {
7952 12 May 21 nicklas 169           deniedProject = true;
7952 12 May 21 nicklas 170         }
7952 12 May 21 nicklas 171         PluginDefinition plugin = null;
7952 12 May 21 nicklas 172         boolean deniedPlugin = false;
7952 12 May 21 nicklas 173         try
7952 12 May 21 nicklas 174         {
7952 12 May 21 nicklas 175           plugin = tact.getPlugin(dc);
7952 12 May 21 nicklas 176         }
7952 12 May 21 nicklas 177         catch (PermissionDeniedException ex)
7952 12 May 21 nicklas 178         {
7952 12 May 21 nicklas 179           deniedPlugin = true;
7952 12 May 21 nicklas 180         }
7952 12 May 21 nicklas 181         Job job = null;
7952 12 May 21 nicklas 182         boolean deniedJob = false;
7952 12 May 21 nicklas 183         try
7952 12 May 21 nicklas 184         {
7952 12 May 21 nicklas 185           job = tact.getJob(dc);
7952 12 May 21 nicklas 186         }
7952 12 May 21 nicklas 187         catch (PermissionDeniedException ex)
7952 12 May 21 nicklas 188         {
7952 12 May 21 nicklas 189           deniedJob = true;
7952 12 May 21 nicklas 190         }
7952 12 May 21 nicklas 191         %>
7952 12 May 21 nicklas 192         <tr>
7952 12 May 21 nicklas 193           <th>Transaction</th>
7952 12 May 21 nicklas 194           <td><%=HTML.encodeTags(tact.getName()) %></td>
7952 12 May 21 nicklas 195         </tr>
7952 12 May 21 nicklas 196         <tr>
7952 12 May 21 nicklas 197           <th>Time</th>
7952 12 May 21 nicklas 198           <td><%=dateTimeFormatter.format(tact.getTime()) %></td>
7952 12 May 21 nicklas 199         </tr>
7952 12 May 21 nicklas 200         <tr>
7952 12 May 21 nicklas 201           <th>Active project</th>
7952 12 May 21 nicklas 202           <td><%=Base.getLinkedName(ID, project, deniedProject, true) %></td>
7952 12 May 21 nicklas 203         </tr>
7952 12 May 21 nicklas 204         <tr>
7952 12 May 21 nicklas 205           <th>Plug-in</th>
7952 12 May 21 nicklas 206           <td><%=Base.getLinkedName(ID, plugin, deniedPlugin, true) %></td>
7952 12 May 21 nicklas 207         </tr>
7952 12 May 21 nicklas 208         <tr>
7952 12 May 21 nicklas 209           <th>Job</th>
7952 12 May 21 nicklas 210           <td><%=Base.getLinkedName(ID, job, deniedJob, true) %></td>
7952 12 May 21 nicklas 211         </tr>
7952 12 May 21 nicklas 212         <%
7952 12 May 21 nicklas 213       }
7952 12 May 21 nicklas 214       %>
7952 12 May 21 nicklas 215       <tr>
5909 14 Dec 11 nicklas 216         <th>User</th>
7952 12 May 21 nicklas 217         <td><base:propertyvalue item="<%=s%>" property="user" /></td>
5909 14 Dec 11 nicklas 218       </tr>
5909 14 Dec 11 nicklas 219       <tr>
5909 14 Dec 11 nicklas 220         <th>Client application</th>
7952 12 May 21 nicklas 221         <td><base:propertyvalue item="<%=s%>" property="client" /></td>
5909 14 Dec 11 nicklas 222       </tr>
5909 14 Dec 11 nicklas 223       <tr>
7406 05 Oct 17 nicklas 224         <th>Device</th>
7952 12 May 21 nicklas 225         <td><base:propertyvalue item="<%=s%>" property="device" /></td>
7406 05 Oct 17 nicklas 226       </tr>
7406 05 Oct 17 nicklas 227       <tr>
5909 14 Dec 11 nicklas 228         <th>Login time</th>
2942 22 Nov 06 nicklas 229         <td><%=dateTimeFormatter.format(s.getLoginTime())%></td>
1663 24 Nov 05 nicklas 230       </tr>
1663 24 Nov 05 nicklas 231       <tr>
5909 14 Dec 11 nicklas 232         <th>Logout time</th>
2942 22 Nov 06 nicklas 233         <td><%=dateTimeFormatter.format(s.getLogoutTime())%></td>
1663 24 Nov 05 nicklas 234       </tr>
1663 24 Nov 05 nicklas 235       <tr>
7165 03 Jun 16 nicklas 236         <th>Authentication method</th>
7165 03 Jun 16 nicklas 237         <td><%=HTML.encodeTags(s.getAuthenticationMethod())%></td>
7165 03 Jun 16 nicklas 238       </tr>
7165 03 Jun 16 nicklas 239       <tr>
5909 14 Dec 11 nicklas 240         <th>Remote ID</th>
1663 24 Nov 05 nicklas 241         <td><%=HTML.encodeTags(s.getRemoteId())%></td>
1663 24 Nov 05 nicklas 242       </tr>
5909 14 Dec 11 nicklas 243       <tr>
7414 12 Oct 17 nicklas 244         <th>Location</th>
7414 12 Oct 17 nicklas 245         <td><%=HTML.encodeTags(s.getLocation())%>
7414 12 Oct 17 nicklas 246           <base:icon href="<%=mapURL%>" image="map.png" tooltip="Show map" visible="<%=mapURL != null %>" />
7414 12 Oct 17 nicklas 247         </td>
7414 12 Oct 17 nicklas 248       </tr>
7414 12 Oct 17 nicklas 249       <tr>
5909 14 Dec 11 nicklas 250         <th>Impersonated</th>
5909 14 Dec 11 nicklas 251         <td><%=s.getImpersonated()%></td>
1663 24 Nov 05 nicklas 252       </tr>
7952 12 May 21 nicklas 253       <tr>
5909 14 Dec 11 nicklas 254         <th>Comment</th>
1893 02 Feb 06 nicklas 255         <td><%=HTML.niceFormat(s.getLoginComment())%></td>
1663 24 Nov 05 nicklas 256       </tr>
1663 24 Nov 05 nicklas 257       </table>
7952 12 May 21 nicklas 258       </div>
7952 12 May 21 nicklas 259     </t:tab>
7952 12 May 21 nicklas 260     
7952 12 May 21 nicklas 261     <t:tab id="history" title="Change log"
7952 12 May 21 nicklas 262       tooltip="Displays a log with the changes made in this session"
7952 12 May 21 nicklas 263       visible="<%=ChangeHistoryUtil.showChangeHistoryTab(sc)%>">
7952 12 May 21 nicklas 264       <jsp:include page="../../common/history/frameset.jsp">
7952 12 May 21 nicklas 265         <jsp:param name="item_type" value="<%=itemType.name()%>" />
7952 12 May 21 nicklas 266         <jsp:param name="item_id" value="<%=itemId%>" />
7952 12 May 21 nicklas 267         <jsp:param name="ID" value="<%=ID%>" />
7952 12 May 21 nicklas 268         <jsp:param name="transact_id" value="<%=transactId%>" />
7952 12 May 21 nicklas 269       </jsp:include>
7952 12 May 21 nicklas 270     </t:tab>
7952 12 May 21 nicklas 271     </t:tabcontrol>
7952 12 May 21 nicklas 272     
1663 24 Nov 05 nicklas 273   </base:body>
1663 24 Nov 05 nicklas 274   </base:page>
1663 24 Nov 05 nicklas 275   <%
1663 24 Nov 05 nicklas 276 }
1663 24 Nov 05 nicklas 277 finally
1663 24 Nov 05 nicklas 278 {
1893 02 Feb 06 nicklas 279   if (dc != null) dc.commit();
1663 24 Nov 05 nicklas 280 }
1663 24 Nov 05 nicklas 281 %>