www/views/sessions/list_sessions.jsp

Code
Comments
Other
Rev Date Author Line
1893 02 Feb 06 nicklas 1 <%-- $Id$
1893 02 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 Johan Enell
1893 02 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/
1893 02 Feb 06 nicklas 8
1893 02 Feb 06 nicklas 9   BASE is free software; you can redistribute it and/or
1893 02 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
1893 02 Feb 06 nicklas 12   of the License, or (at your option) any later version.
1893 02 Feb 06 nicklas 13
1893 02 Feb 06 nicklas 14   BASE is distributed in the hope that it will be useful,
1893 02 Feb 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
1893 02 Feb 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1893 02 Feb 06 nicklas 17   GNU General Public License for more details.
1893 02 Feb 06 nicklas 18
1893 02 Feb 06 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/>.
1893 02 Feb 06 nicklas 21   ------------------------------------------------------------------
1893 02 Feb 06 nicklas 22
1893 02 Feb 06 nicklas 23   @author Nicklas
1893 02 Feb 06 nicklas 24   @version 2.0
1893 02 Feb 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1893 02 Feb 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
1893 02 Feb 06 nicklas 28   import="net.sf.basedb.core.DbControl"
1893 02 Feb 06 nicklas 29   import="net.sf.basedb.core.Item"
1893 02 Feb 06 nicklas 30   import="net.sf.basedb.core.Session"
1893 02 Feb 06 nicklas 31   import="net.sf.basedb.core.User"
1893 02 Feb 06 nicklas 32   import="net.sf.basedb.core.ItemQuery"
1893 02 Feb 06 nicklas 33   import="net.sf.basedb.core.Include"
1893 02 Feb 06 nicklas 34   import="net.sf.basedb.core.ItemResultIterator"
1893 02 Feb 06 nicklas 35   import="net.sf.basedb.core.ItemResultList"
1893 02 Feb 06 nicklas 36   import="net.sf.basedb.core.ItemContext"
1893 02 Feb 06 nicklas 37   import="net.sf.basedb.core.Permission"
1893 02 Feb 06 nicklas 38   import="net.sf.basedb.core.PluginDefinition"
1893 02 Feb 06 nicklas 39   import="net.sf.basedb.core.PermissionDeniedException"
1893 02 Feb 06 nicklas 40   import="net.sf.basedb.core.query.Hql"
1893 02 Feb 06 nicklas 41   import="net.sf.basedb.core.query.Restrictions"
1893 02 Feb 06 nicklas 42   import="net.sf.basedb.core.query.Expressions"
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"
1893 02 Feb 06 nicklas 45   import="net.sf.basedb.util.Enumeration"
1893 02 Feb 06 nicklas 46   import="net.sf.basedb.clients.web.Base"
1893 02 Feb 06 nicklas 47   import="net.sf.basedb.clients.web.ModeInfo"
2401 21 Jun 06 martin 48   import="net.sf.basedb.clients.web.PermissionUtil"
1893 02 Feb 06 nicklas 49   import="net.sf.basedb.clients.web.util.HTML"
7407 05 Oct 17 nicklas 50   import="net.sf.basedb.util.EmailUtil"
7414 12 Oct 17 nicklas 51   import="net.sf.basedb.util.GeoLocation"
2753 20 Oct 06 nicklas 52   import="net.sf.basedb.util.Values"
2942 22 Nov 06 nicklas 53   import="net.sf.basedb.util.formatter.Formatter"
2942 22 Nov 06 nicklas 54   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4887 06 Apr 09 nicklas 55   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4887 06 Apr 09 nicklas 56   import="net.sf.basedb.clients.web.extensions.JspContext"
4887 06 Apr 09 nicklas 57   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 58   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4887 06 Apr 09 nicklas 59   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 60   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6040 30 Mar 12 nicklas 61   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
4887 06 Apr 09 nicklas 62   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
1893 02 Feb 06 nicklas 63   import="java.util.List"
1893 02 Feb 06 nicklas 64   import="java.util.Map"
2942 22 Nov 06 nicklas 65   import="java.util.Date"
1893 02 Feb 06 nicklas 66 %>
1893 02 Feb 06 nicklas 67 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1893 02 Feb 06 nicklas 68 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
4887 06 Apr 09 nicklas 69 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1893 02 Feb 06 nicklas 70 <%!
1893 02 Feb 06 nicklas 71   private static final Item itemType = Item.SESSION;
1893 02 Feb 06 nicklas 72   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST);
1893 02 Feb 06 nicklas 73 %>
1893 02 Feb 06 nicklas 74 <%
1893 02 Feb 06 nicklas 75 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
1893 02 Feb 06 nicklas 76 final String ID = sc.getId();
1893 02 Feb 06 nicklas 77 final boolean createPermission = sc.hasPermission(Permission.CREATE, itemType);
1893 02 Feb 06 nicklas 78 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1893 02 Feb 06 nicklas 79
1893 02 Feb 06 nicklas 80 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
1893 02 Feb 06 nicklas 81 final String callback = request.getParameter("callback");
1893 02 Feb 06 nicklas 82 final String title = mode.generateTitle("session", "sessions");
7954 12 May 21 nicklas 83 final DbControl dc = sc.newDbControl(":List "+itemType);
1893 02 Feb 06 nicklas 84 ItemResultIterator<Session> sessions = null;
1893 02 Feb 06 nicklas 85 try
1893 02 Feb 06 nicklas 86 {
7407 05 Oct 17 nicklas 87   final User user = User.getById(dc, sc.getLoggedInUserId());
1893 02 Feb 06 nicklas 88
1893 02 Feb 06 nicklas 89   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
7914 23 Feb 21 nicklas 90   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
2029 20 Feb 06 nicklas 91   try
2029 20 Feb 06 nicklas 92   {
7982 14 Jun 21 nicklas 93     final ItemQuery<Session> query = Base.getConfiguredQuery(dc, cc, jspContext, true, Session.getQuery(null), mode);
2029 20 Feb 06 nicklas 94     sessions = query.iterate(dc);
2029 20 Feb 06 nicklas 95   }
2029 20 Feb 06 nicklas 96   catch (Throwable t)
2029 20 Feb 06 nicklas 97   {
2029 20 Feb 06 nicklas 98     cc.setMessage(t.getMessage());
2029 20 Feb 06 nicklas 99   }
1893 02 Feb 06 nicklas 100   int numListed = 0;
2942 22 Nov 06 nicklas 101   Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
7604 25 Feb 19 nicklas 102   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 103   ExtensionsInvoker<ListColumnAction<Session,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
1893 02 Feb 06 nicklas 104   %>
6311 23 Aug 13 nicklas 105   <base:page title="<%=title==null ? "Sessions" : title%>" type="<%=mode.getPageType()%>" id="list-page">
6311 23 Aug 13 nicklas 106   <base:head scripts="table.js,~sessions.js" styles="table.css,toolbar.css">
4887 06 Apr 09 nicklas 107     <ext:scripts context="<%=jspContext%>" />
4887 06 Apr 09 nicklas 108     <ext:stylesheets context="<%=jspContext%>" />
1893 02 Feb 06 nicklas 109   </base:head>
1893 02 Feb 06 nicklas 110   
1893 02 Feb 06 nicklas 111   <base:body>
5952 10 Feb 12 nicklas 112     <h1><%=title==null ? "Sessions" : title%></h1>
5952 10 Feb 12 nicklas 113     <div class="content">
1893 02 Feb 06 nicklas 114     <tbl:table 
1893 02 Feb 06 nicklas 115       id="sessions" 
1893 02 Feb 06 nicklas 116       columns="<%=cc.getSetting("columns")%>"
1893 02 Feb 06 nicklas 117       sortby="<%=cc.getSortProperty()%>" 
1893 02 Feb 06 nicklas 118       direction="<%=cc.getSortDirection()%>"
1893 02 Feb 06 nicklas 119       action="index.jsp"
1893 02 Feb 06 nicklas 120       sc="<%=sc%>"
1893 02 Feb 06 nicklas 121       item="<%=itemType%>"
6703 02 Feb 15 nicklas 122       filterrows="<%=cc.getFilterRows()%>"
5952 10 Feb 12 nicklas 123       subclass="fulltable"
7982 14 Jun 21 nicklas 124       stickyheaders="<%=cc.getSetting("columns.sticky", "loginTime")%>"
1893 02 Feb 06 nicklas 125       >
1893 02 Feb 06 nicklas 126       <tbl:hidden 
1893 02 Feb 06 nicklas 127         name="mode" 
1893 02 Feb 06 nicklas 128         value="<%=mode.getName()%>" 
1893 02 Feb 06 nicklas 129       />
1893 02 Feb 06 nicklas 130       <tbl:hidden 
1893 02 Feb 06 nicklas 131         name="callback" 
1893 02 Feb 06 nicklas 132         value="<%=callback%>" 
1893 02 Feb 06 nicklas 133         skip="<%=callback == null%>" 
1893 02 Feb 06 nicklas 134       />
1893 02 Feb 06 nicklas 135       <tbl:columndef 
4332 12 Jun 08 martin 136         id="id"
4387 11 Aug 08 nicklas 137         clazz="uniquecol"
4332 12 Jun 08 martin 138         property="id"
4332 12 Jun 08 martin 139         datatype="int"
4332 12 Jun 08 martin 140         title="ID"
4332 12 Jun 08 martin 141         sortable="true"
4332 12 Jun 08 martin 142         filterable="true"
4332 12 Jun 08 martin 143         exportable="true"
4332 12 Jun 08 martin 144       />
4332 12 Jun 08 martin 145       <tbl:columndef 
1893 02 Feb 06 nicklas 146         id="loginTime"
1893 02 Feb 06 nicklas 147         property="loginTime"
5424 23 Sep 10 nicklas 148         datatype="timestamp"
1893 02 Feb 06 nicklas 149         title="Login time"
1893 02 Feb 06 nicklas 150         sortable="true" 
1893 02 Feb 06 nicklas 151         filterable="true"
1893 02 Feb 06 nicklas 152         exportable="true"
1893 02 Feb 06 nicklas 153         show="always" 
1893 02 Feb 06 nicklas 154       />
1893 02 Feb 06 nicklas 155       <tbl:columndef 
1893 02 Feb 06 nicklas 156         id="logoutTime"
1893 02 Feb 06 nicklas 157         property="logoutTime"
5424 23 Sep 10 nicklas 158         datatype="timestamp"
1893 02 Feb 06 nicklas 159         title="Logout time"
1893 02 Feb 06 nicklas 160         sortable="true" 
1893 02 Feb 06 nicklas 161         filterable="true"
1893 02 Feb 06 nicklas 162         exportable="true"
2942 22 Nov 06 nicklas 163         formatter="<%=dateTimeFormatter%>"
1893 02 Feb 06 nicklas 164       />
1893 02 Feb 06 nicklas 165       <tbl:columndef 
1893 02 Feb 06 nicklas 166         id="impersonated"
1893 02 Feb 06 nicklas 167         property="impersonated"
1893 02 Feb 06 nicklas 168         datatype="boolean"
1893 02 Feb 06 nicklas 169         title="Impersonated"
1893 02 Feb 06 nicklas 170         sortable="true" 
1893 02 Feb 06 nicklas 171         filterable="true"
1893 02 Feb 06 nicklas 172         exportable="true"
1893 02 Feb 06 nicklas 173       />
1893 02 Feb 06 nicklas 174       <tbl:columndef 
1893 02 Feb 06 nicklas 175         id="client"
1893 02 Feb 06 nicklas 176         property="client.name"
1893 02 Feb 06 nicklas 177         datatype="string"
1893 02 Feb 06 nicklas 178         title="Client application" 
1893 02 Feb 06 nicklas 179         sortable="true" 
1893 02 Feb 06 nicklas 180         filterable="true" 
1893 02 Feb 06 nicklas 181         exportable="true"
1893 02 Feb 06 nicklas 182       />
1893 02 Feb 06 nicklas 183       <tbl:columndef 
7815 05 Jun 20 nicklas 184         id="device"
7815 05 Jun 20 nicklas 185         property="device.name"
7815 05 Jun 20 nicklas 186         datatype="string"
7815 05 Jun 20 nicklas 187         title="Device" 
7815 05 Jun 20 nicklas 188         sortable="true" 
7815 05 Jun 20 nicklas 189         filterable="true" 
7815 05 Jun 20 nicklas 190         exportable="true"
7815 05 Jun 20 nicklas 191       />
7815 05 Jun 20 nicklas 192       <tbl:columndef 
7165 03 Jun 16 nicklas 193         id="authenticationMethod"
7165 03 Jun 16 nicklas 194         property="authenticationMethod"
7165 03 Jun 16 nicklas 195         datatype="string"
7165 03 Jun 16 nicklas 196         title="Authentication method" 
7165 03 Jun 16 nicklas 197         sortable="true" 
7165 03 Jun 16 nicklas 198         filterable="true" 
7165 03 Jun 16 nicklas 199         exportable="true"
7165 03 Jun 16 nicklas 200       />
7165 03 Jun 16 nicklas 201       <tbl:columndef 
1893 02 Feb 06 nicklas 202         id="remoteId"
1893 02 Feb 06 nicklas 203         property="remoteId"
1893 02 Feb 06 nicklas 204         datatype="string"
1893 02 Feb 06 nicklas 205         title="Remote ID" 
1893 02 Feb 06 nicklas 206         sortable="true" 
1893 02 Feb 06 nicklas 207         filterable="true" 
1893 02 Feb 06 nicklas 208         exportable="true"
1893 02 Feb 06 nicklas 209       />
1893 02 Feb 06 nicklas 210       <tbl:columndef 
7414 12 Oct 17 nicklas 211         id="location"
7414 12 Oct 17 nicklas 212         property="location"
7414 12 Oct 17 nicklas 213         datatype="string"
7414 12 Oct 17 nicklas 214         title="Location" 
7414 12 Oct 17 nicklas 215         sortable="true" 
7414 12 Oct 17 nicklas 216         filterable="true" 
7414 12 Oct 17 nicklas 217         exportable="true"
7414 12 Oct 17 nicklas 218       />
7414 12 Oct 17 nicklas 219       <tbl:columndef 
1893 02 Feb 06 nicklas 220         id="comment"
1893 02 Feb 06 nicklas 221         property="loginComment"
1893 02 Feb 06 nicklas 222         datatype="string"
1893 02 Feb 06 nicklas 223         title="Comment" 
1893 02 Feb 06 nicklas 224         sortable="true" 
1893 02 Feb 06 nicklas 225         filterable="true" 
1893 02 Feb 06 nicklas 226         exportable="true"
1893 02 Feb 06 nicklas 227       />
1893 02 Feb 06 nicklas 228       <tbl:columndef 
1893 02 Feb 06 nicklas 229         id="user"
1893 02 Feb 06 nicklas 230         property="user.name"
1893 02 Feb 06 nicklas 231         datatype="string"
1893 02 Feb 06 nicklas 232         title="User" 
1893 02 Feb 06 nicklas 233         sortable="true" 
1893 02 Feb 06 nicklas 234         filterable="true" 
1893 02 Feb 06 nicklas 235         exportable="true"
1893 02 Feb 06 nicklas 236       />
2401 21 Jun 06 martin 237       <tbl:columndef
2401 21 Jun 06 martin 238         id="permission"
2401 21 Jun 06 martin 239         title="Permission"
2401 21 Jun 06 martin 240       />
6040 30 Mar 12 nicklas 241       <tbl:columndef 
6040 30 Mar 12 nicklas 242         id="xt-columns" 
6040 30 Mar 12 nicklas 243         extensions="<%=columnsInvoker%>" 
6040 30 Mar 12 nicklas 244         jspcontext="<%=jspContext%>" 
6040 30 Mar 12 nicklas 245       />
6604 18 Nov 14 nicklas 246       <div class="panelgroup bg-filled-50 bottomborder">
5952 10 Feb 12 nicklas 247         <tbl:toolbar
5952 10 Feb 12 nicklas 248           subclass="bottomborder"
5952 10 Feb 12 nicklas 249           visible="<%=mode.hasToolbar()%>"
5952 10 Feb 12 nicklas 250           >
5952 10 Feb 12 nicklas 251           <tbl:button 
6311 23 Aug 13 nicklas 252             id="btnColumns"
5952 10 Feb 12 nicklas 253             image="columns.png" 
5952 10 Feb 12 nicklas 254             title="Columns&hellip;" 
5952 10 Feb 12 nicklas 255             tooltip="Show, hide and re-order columns" 
5952 10 Feb 12 nicklas 256           />
5952 10 Feb 12 nicklas 257           <tbl:button 
6311 23 Aug 13 nicklas 258             id="btnExport"
6311 23 Aug 13 nicklas 259             data-plugin-type="EXPORT"
5952 10 Feb 12 nicklas 260             image="export.png" 
5952 10 Feb 12 nicklas 261             title="Export&hellip;" 
5952 10 Feb 12 nicklas 262             tooltip="Export data" 
5952 10 Feb 12 nicklas 263             visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5952 10 Feb 12 nicklas 264           />
5952 10 Feb 12 nicklas 265           <tbl:button 
6311 23 Aug 13 nicklas 266             id="btnRunPlugin"
6311 23 Aug 13 nicklas 267             data-plugin-type="OTHER"
5952 10 Feb 12 nicklas 268             image="runplugin.png" 
5952 10 Feb 12 nicklas 269             title="Run plugin&hellip;" 
5952 10 Feb 12 nicklas 270             tooltip="Run a plugin" 
5952 10 Feb 12 nicklas 271             visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5952 10 Feb 12 nicklas 272           />
5952 10 Feb 12 nicklas 273           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 274             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5952 10 Feb 12 nicklas 275         </tbl:toolbar>
5952 10 Feb 12 nicklas 276         <tbl:panel>
6182 23 Oct 12 nicklas 277           <tbl:presetselector />
5952 10 Feb 12 nicklas 278           <tbl:navigator
5952 10 Feb 12 nicklas 279             page="<%=cc.getPage()%>" 
5952 10 Feb 12 nicklas 280             rowsperpage="<%=cc.getRowsPerPage()%>" 
5952 10 Feb 12 nicklas 281             totalrows="<%=sessions == null ? 0 : sessions.getTotalCount()%>" 
5952 10 Feb 12 nicklas 282             visible="<%=mode.hasNavigator()%>"
5952 10 Feb 12 nicklas 283           />
5952 10 Feb 12 nicklas 284         </tbl:panel>
5952 10 Feb 12 nicklas 285       </div>
1893 02 Feb 06 nicklas 286       <tbl:data>
5948 08 Feb 12 nicklas 287         <tbl:headers>
5948 08 Feb 12 nicklas 288           <tbl:headerrow>
7943 04 May 21 nicklas 289             <tbl:header clazz="row-index bg-filled-100" />
5948 08 Feb 12 nicklas 290             <tbl:columnheaders />
5948 08 Feb 12 nicklas 291           </tbl:headerrow>
6703 02 Feb 15 nicklas 292           <%
6703 02 Feb 15 nicklas 293           int numFilters = cc.getNumPropertyFilters();
6703 02 Feb 15 nicklas 294           int numRows = cc.getFilterRows();
6703 02 Feb 15 nicklas 295           for (int filterNo = 0; filterNo < numRows; filterNo++)
6703 02 Feb 15 nicklas 296           {
6703 02 Feb 15 nicklas 297             boolean lastRow = filterNo == numRows-1;
6703 02 Feb 15 nicklas 298             %>
6703 02 Feb 15 nicklas 299             <tbl:headerrow>
7943 04 May 21 nicklas 300               <tbl:header subclass="row-index bg-filled-100">
7943 04 May 21 nicklas 301                 <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 302                   <div class="index"></div>
7943 04 May 21 nicklas 303                   <div class="check">
7943 04 May 21 nicklas 304                     <base:icon 
7943 04 May 21 nicklas 305                       subclass="link table-check"
7943 04 May 21 nicklas 306                       image="check_uncheck.png" 
7943 04 May 21 nicklas 307                       tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)" 
7943 04 May 21 nicklas 308                       visible="<%=lastRow && mode.hasCheck()%>"
7943 04 May 21 nicklas 309                     />
7943 04 May 21 nicklas 310                   </div>
7943 04 May 21 nicklas 311                   <div class="icons">
7943 04 May 21 nicklas 312                     <base:icon
7943 04 May 21 nicklas 313                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 314                       image="add.png"
7943 04 May 21 nicklas 315                       tooltip="Add extra filter row"
7943 04 May 21 nicklas 316                       visible="<%=lastRow%>"
7943 04 May 21 nicklas 317                     /><base:icon
7943 04 May 21 nicklas 318                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 319                       image="remove.png"
7943 04 May 21 nicklas 320                       tooltip="Remove this filter row"
7943 04 May 21 nicklas 321                       visible="<%=numRows > 1 || numFilters > 0 %>"
7943 04 May 21 nicklas 322                       data-remove-row="<%=filterNo%>"
7943 04 May 21 nicklas 323                     />
7943 04 May 21 nicklas 324                   </div>
7943 04 May 21 nicklas 325                 </div>
6703 02 Feb 15 nicklas 326               </tbl:header>
6703 02 Feb 15 nicklas 327               <tbl:propertyfilter row="<%=filterNo%>" />
6703 02 Feb 15 nicklas 328             </tbl:headerrow>
6703 02 Feb 15 nicklas 329             <%
6703 02 Feb 15 nicklas 330           }
6703 02 Feb 15 nicklas 331           %>
7913 22 Feb 21 nicklas 332           <tbl:columnsubtitles />
5948 08 Feb 12 nicklas 333         </tbl:headers>
5948 08 Feb 12 nicklas 334         <tbl:rows>
1893 02 Feb 06 nicklas 335           <%
5952 10 Feb 12 nicklas 336           if (cc.getMessage() != null)
5952 10 Feb 12 nicklas 337           {
5952 10 Feb 12 nicklas 338             %>
6604 18 Nov 14 nicklas 339             <tbl:panel subclass="bg-filled-50">
5952 10 Feb 12 nicklas 340               <div class="messagecontainer error"><%=cc.getMessage()%></div>
5952 10 Feb 12 nicklas 341             </tbl:panel>
5952 10 Feb 12 nicklas 342             <%
5952 10 Feb 12 nicklas 343             cc.setMessage(null);
5952 10 Feb 12 nicklas 344           }
1893 02 Feb 06 nicklas 345           int index = cc.getPage()*cc.getRowsPerPage();
1893 02 Feb 06 nicklas 346           int selectedItemId = cc.getId();
2029 20 Feb 06 nicklas 347           if (sessions != null)
1893 02 Feb 06 nicklas 348           {
2433 27 Jun 06 nicklas 349             String tooltip = mode.isSelectionMode() ?
2433 27 Jun 06 nicklas 350               "Select this item" : "View this item";
2029 20 Feb 06 nicklas 351             while (sessions.hasNext())
2029 20 Feb 06 nicklas 352             {
2029 20 Feb 06 nicklas 353               Session item = sessions.next();
2029 20 Feb 06 nicklas 354               int itemId = item.getId();
2029 20 Feb 06 nicklas 355               String name = "TODO";
2029 20 Feb 06 nicklas 356               index++;
2029 20 Feb 06 nicklas 357               numListed++;
2029 20 Feb 06 nicklas 358               %>
2029 20 Feb 06 nicklas 359               <tbl:row>
7943 04 May 21 nicklas 360                 <tbl:header clazz="row-index bg-filled-100">
7943 04 May 21 nicklas 361                   <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 362                     <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
7943 04 May 21 nicklas 363                     <div class="check">
7943 04 May 21 nicklas 364                       <base:input
7943 04 May 21 nicklas 365                         type="checkbox" 
7943 04 May 21 nicklas 366                         name="<%=itemId%>" 
7943 04 May 21 nicklas 367                         value="<%=itemId%>" 
7943 04 May 21 nicklas 368                         title="<%=name%>" 
7943 04 May 21 nicklas 369                         checked="<%=cc.getSelected().contains(itemId)%>"
7943 04 May 21 nicklas 370                         visible="<%=mode.hasCheck()%>"
7943 04 May 21 nicklas 371                       />
7943 04 May 21 nicklas 372                       <base:input 
7943 04 May 21 nicklas 373                         type="radio" 
7943 04 May 21 nicklas 374                         name="item_id" 
7943 04 May 21 nicklas 375                         value="<%=itemId%>" 
7943 04 May 21 nicklas 376                         title="<%=name%>" 
7943 04 May 21 nicklas 377                         checked="<%=selectedItemId == itemId%>"
7943 04 May 21 nicklas 378                         visible="<%=mode.hasRadio()%>"
7943 04 May 21 nicklas 379                       />
7943 04 May 21 nicklas 380                     </div>
7943 04 May 21 nicklas 381                     <div class="icons"></div>
7943 04 May 21 nicklas 382                   </div>
7943 04 May 21 nicklas 383                 </tbl:header>
4332 12 Jun 08 martin 384                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
6311 23 Aug 13 nicklas 385                 <tbl:cell column="loginTime"><div 
6311 23 Aug 13 nicklas 386                   class="link table-item"
6311 23 Aug 13 nicklas 387                   data-item-id="<%=itemId%>"
6311 23 Aug 13 nicklas 388                   data-no-edit="1"
6311 23 Aug 13 nicklas 389                   tabindex="0"
2942 22 Nov 06 nicklas 390                   title="<%=tooltip%>"><%=dateTimeFormatter.format(item.getLoginTime())%></div></tbl:cell>
2942 22 Nov 06 nicklas 391                 <tbl:cell column="logoutTime" value="<%=item.getLogoutTime()%>" />
2029 20 Feb 06 nicklas 392                 <tbl:cell column="impersonated"><%=item.getImpersonated()%></tbl:cell>
7165 03 Jun 16 nicklas 393                 <tbl:cell column="authenticationMethod"><%=HTML.encodeTags(item.getAuthenticationMethod())%></tbl:cell>
2029 20 Feb 06 nicklas 394                 <tbl:cell column="remoteId"><%=HTML.encodeTags(item.getRemoteId())%></tbl:cell>
7414 12 Oct 17 nicklas 395                 <tbl:cell column="location"><%=HTML.encodeTags(item.getLocation())%>
7414 12 Oct 17 nicklas 396                   <% String mapURL = GeoLocation.getURLToMap(item.getLocationLatitude(), item.getLocationLongitude()); %>
7414 12 Oct 17 nicklas 397                   <base:icon href="<%=mapURL%>" image="map.png" tooltip="Show map" visible="<%=mapURL != null %>"/>                
7414 12 Oct 17 nicklas 398                 </tbl:cell>
2029 20 Feb 06 nicklas 399                 <tbl:cell column="comment"><%=HTML.encodeTags(item.getLoginComment())%></tbl:cell>
2354 07 Jun 06 martin 400                 <tbl:cell column="user"
2354 07 Jun 06 martin 401                   ><base:propertyvalue 
2354 07 Jun 06 martin 402                     item="<%=item%>" 
2354 07 Jun 06 martin 403                     property="user"
2354 07 Jun 06 martin 404                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 405                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 406                   /></tbl:cell>
2354 07 Jun 06 martin 407                 <tbl:cell column="client"
2354 07 Jun 06 martin 408                   ><base:propertyvalue 
2354 07 Jun 06 martin 409                     item="<%=item%>" 
2354 07 Jun 06 martin 410                     property="client"
2354 07 Jun 06 martin 411                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 412                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 413                   /></tbl:cell>
7406 05 Oct 17 nicklas 414                 <tbl:cell column="device"
7406 05 Oct 17 nicklas 415                   ><base:propertyvalue 
7406 05 Oct 17 nicklas 416                     item="<%=item%>" 
7406 05 Oct 17 nicklas 417                     property="device"
7406 05 Oct 17 nicklas 418                     nulltext="<i>- unknown -</i>"
7406 05 Oct 17 nicklas 419                     enableEditLink="<%=mode.hasEditLink()%>" 
7406 05 Oct 17 nicklas 420                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
7406 05 Oct 17 nicklas 421                   /></tbl:cell>
2401 21 Jun 06 martin 422                 <tbl:cell column="permission"><%=PermissionUtil.getShortPermissions(item)%></tbl:cell>
6040 30 Mar 12 nicklas 423                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6040 30 Mar 12 nicklas 424                   <tbl:cell column="xt-columns" />
6040 30 Mar 12 nicklas 425                 </tbl:xt-cells>
2029 20 Feb 06 nicklas 426             </tbl:row>
5952 10 Feb 12 nicklas 427             <%
1893 02 Feb 06 nicklas 428             }
5952 10 Feb 12 nicklas 429           }
5952 10 Feb 12 nicklas 430           if (numListed == 0)
5952 10 Feb 12 nicklas 431           {
5952 10 Feb 12 nicklas 432             %>
6604 18 Nov 14 nicklas 433             <tbl:panel subclass="bg-filled-50">
5952 10 Feb 12 nicklas 434               <div class="messagecontainer note">
5952 10 Feb 12 nicklas 435               <%=sessions == null || sessions.getTotalCount() == 0 ? "No sessions were found" : "No sessions on this page. Please select another page!" %>
5952 10 Feb 12 nicklas 436               </div>
5952 10 Feb 12 nicklas 437             </tbl:panel>
5952 10 Feb 12 nicklas 438             <%
5952 10 Feb 12 nicklas 439           }
1893 02 Feb 06 nicklas 440           %>
5952 10 Feb 12 nicklas 441         </tbl:rows>
1893 02 Feb 06 nicklas 442       </tbl:data>
1893 02 Feb 06 nicklas 443     </tbl:table>
5952 10 Feb 12 nicklas 444     </div>
5952 10 Feb 12 nicklas 445     
5951 09 Feb 12 nicklas 446     <base:buttongroup subclass="dialogbuttons">
6311 23 Aug 13 nicklas 447       <base:button id="btnOk" title="Ok" visible="<%=mode.hasOkButton()%>" />
6311 23 Aug 13 nicklas 448       <base:button id="close" title="Cancel" visible="<%=mode.hasCancelButton()%>" />
6311 23 Aug 13 nicklas 449       <base:button id="close" title="Close" visible="<%=mode.hasCloseButton()%>" />
1893 02 Feb 06 nicklas 450     </base:buttongroup>
5951 09 Feb 12 nicklas 451     
1893 02 Feb 06 nicklas 452   </base:body>
1893 02 Feb 06 nicklas 453   </base:page>
1893 02 Feb 06 nicklas 454   <%
1893 02 Feb 06 nicklas 455 }
1893 02 Feb 06 nicklas 456 finally
1893 02 Feb 06 nicklas 457 {
1893 02 Feb 06 nicklas 458   if (sessions != null) sessions.close();
1893 02 Feb 06 nicklas 459   if (dc != null) dc.close();
1893 02 Feb 06 nicklas 460 }
3675 16 Aug 07 jari 461 %>