www/admin/diskusage/list_users.jsp

Code
Comments
Other
Rev Date Author Line
6192 31 Oct 12 nicklas 1 <%-- $Id$
6192 31 Oct 12 nicklas 2   ------------------------------------------------------------------
6192 31 Oct 12 nicklas 3   Copyright (C) 2006 Nicklas Nordborg
6192 31 Oct 12 nicklas 4   Copyright (C) 2007 Johan Enell
6192 31 Oct 12 nicklas 5
6192 31 Oct 12 nicklas 6   This file is part of BASE - BioArray Software Environment.
6192 31 Oct 12 nicklas 7   Available at http://base.thep.lu.se/
6192 31 Oct 12 nicklas 8
6192 31 Oct 12 nicklas 9   BASE is free software; you can redistribute it and/or
6192 31 Oct 12 nicklas 10   modify it under the terms of the GNU General Public License
6192 31 Oct 12 nicklas 11   as published by the Free Software Foundation; either version 3
6192 31 Oct 12 nicklas 12   of the License, or (at your option) any later version.
6192 31 Oct 12 nicklas 13
6192 31 Oct 12 nicklas 14   BASE is distributed in the hope that it will be useful,
6192 31 Oct 12 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
6192 31 Oct 12 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
6192 31 Oct 12 nicklas 17   GNU General Public License for more details.
6192 31 Oct 12 nicklas 18
6192 31 Oct 12 nicklas 19   You should have received a copy of the GNU General Public License
6192 31 Oct 12 nicklas 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
6192 31 Oct 12 nicklas 21   ------------------------------------------------------------------
6192 31 Oct 12 nicklas 22
6192 31 Oct 12 nicklas 23   @author Nicklas
6192 31 Oct 12 nicklas 24   @version 2.0
6192 31 Oct 12 nicklas 25 --%>
6192 31 Oct 12 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
6192 31 Oct 12 nicklas 27   import="net.sf.basedb.core.SessionControl"
6192 31 Oct 12 nicklas 28   import="net.sf.basedb.core.DbControl"
6192 31 Oct 12 nicklas 29   import="net.sf.basedb.core.Application"
6192 31 Oct 12 nicklas 30   import="net.sf.basedb.core.Item"
6192 31 Oct 12 nicklas 31   import="net.sf.basedb.core.User"
6192 31 Oct 12 nicklas 32   import="net.sf.basedb.core.Group"
6192 31 Oct 12 nicklas 33   import="net.sf.basedb.core.Role"
6192 31 Oct 12 nicklas 34   import="net.sf.basedb.core.Type"
6192 31 Oct 12 nicklas 35   import="net.sf.basedb.core.ItemQuery"
6192 31 Oct 12 nicklas 36   import="net.sf.basedb.core.Include"
6192 31 Oct 12 nicklas 37   import="net.sf.basedb.core.ItemResultIterator"
6192 31 Oct 12 nicklas 38   import="net.sf.basedb.core.ItemResultList"
6192 31 Oct 12 nicklas 39   import="net.sf.basedb.core.ItemContext"
6192 31 Oct 12 nicklas 40   import="net.sf.basedb.core.Permission"
6192 31 Oct 12 nicklas 41   import="net.sf.basedb.core.PluginDefinition"
6192 31 Oct 12 nicklas 42   import="net.sf.basedb.core.DiskUsage"
6192 31 Oct 12 nicklas 43   import="net.sf.basedb.core.DiskUsageStatistics"
6192 31 Oct 12 nicklas 44   import="net.sf.basedb.core.QuotaType"
6192 31 Oct 12 nicklas 45   import="net.sf.basedb.core.Location"
6192 31 Oct 12 nicklas 46   import="net.sf.basedb.core.query.Orders"
6192 31 Oct 12 nicklas 47   import="net.sf.basedb.core.query.Hql"
6192 31 Oct 12 nicklas 48   import="net.sf.basedb.core.query.Restrictions"
6192 31 Oct 12 nicklas 49   import="net.sf.basedb.core.query.Expressions"
6192 31 Oct 12 nicklas 50   import="net.sf.basedb.core.plugin.GuiContext"
6192 31 Oct 12 nicklas 51   import="net.sf.basedb.core.plugin.Plugin"
6192 31 Oct 12 nicklas 52   import="net.sf.basedb.util.Enumeration"
6192 31 Oct 12 nicklas 53   import="net.sf.basedb.clients.web.Base"
6192 31 Oct 12 nicklas 54   import="net.sf.basedb.clients.web.ModeInfo"
6192 31 Oct 12 nicklas 55   import="net.sf.basedb.clients.web.PermissionUtil"
6192 31 Oct 12 nicklas 56   import="net.sf.basedb.clients.web.util.HTML"
6192 31 Oct 12 nicklas 57   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
6192 31 Oct 12 nicklas 58   import="net.sf.basedb.util.Values"
6192 31 Oct 12 nicklas 59   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
6192 31 Oct 12 nicklas 60   import="net.sf.basedb.clients.web.extensions.JspContext"
6192 31 Oct 12 nicklas 61   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 62   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
6192 31 Oct 12 nicklas 63   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 64   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6192 31 Oct 12 nicklas 65   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
6192 31 Oct 12 nicklas 66   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
6192 31 Oct 12 nicklas 67   import="java.util.List"
6192 31 Oct 12 nicklas 68   import="java.util.Map"
6192 31 Oct 12 nicklas 69 %>
6192 31 Oct 12 nicklas 70 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
6192 31 Oct 12 nicklas 71 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
6192 31 Oct 12 nicklas 72 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
6192 31 Oct 12 nicklas 73 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
6192 31 Oct 12 nicklas 74 <%!
6192 31 Oct 12 nicklas 75   private static final Item itemType = Item.DISKUSAGE;
6192 31 Oct 12 nicklas 76   private static final String subContext = "perUser";
6192 31 Oct 12 nicklas 77   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST, subContext);
6192 31 Oct 12 nicklas 78 %>
6192 31 Oct 12 nicklas 79 <%
6192 31 Oct 12 nicklas 80 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
6192 31 Oct 12 nicklas 81 final String ID = sc.getId();
6192 31 Oct 12 nicklas 82 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, subContext, null, null);
6192 31 Oct 12 nicklas 83 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
6192 31 Oct 12 nicklas 84 final boolean impersonatePermission = sc.hasSystemPermission(Permission.ACT_AS_ANOTHER_USER);
6192 31 Oct 12 nicklas 85 final boolean writePermission = sc.hasPermission(Permission.WRITE, Item.USER);
7595 22 Feb 19 nicklas 86 final String showStatistics = Values.getString(cc.getSetting("showStatistics"), "full");
6192 31 Oct 12 nicklas 87
6192 31 Oct 12 nicklas 88 final boolean hasLocation = "location".equals(showStatistics) || "full".equals(showStatistics);
6192 31 Oct 12 nicklas 89 final boolean hasQuotaType = "quotaType".equals(showStatistics) || "full".equals(showStatistics);
6192 31 Oct 12 nicklas 90
7954 12 May 21 nicklas 91 final DbControl dc = sc.newDbControl(":List "+itemType);
6192 31 Oct 12 nicklas 92 ItemResultIterator<User> users = null;
6192 31 Oct 12 nicklas 93 try
6192 31 Oct 12 nicklas 94 {
7605 26 Feb 19 nicklas 95   DiskUsageStatistics du = sc.getSessionSetting("diskUsageStatistics");
6192 31 Oct 12 nicklas 96   if (du == null)
6192 31 Oct 12 nicklas 97   {
6192 31 Oct 12 nicklas 98     du = DiskUsage.getStatistics(dc);
6192 31 Oct 12 nicklas 99     sc.setSessionSetting("diskUsageStatistics", du);
6192 31 Oct 12 nicklas 100   }
6192 31 Oct 12 nicklas 101   du.setDbControl(dc);
6192 31 Oct 12 nicklas 102   List<QuotaType> quotaTypes = du.getQuotaTypes();
6192 31 Oct 12 nicklas 103   
7914 23 Feb 21 nicklas 104   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
6192 31 Oct 12 nicklas 105   try
6192 31 Oct 12 nicklas 106   {
7914 23 Feb 21 nicklas 107     final ItemQuery<User> query = Base.getConfiguredQuery(dc, cc, jspContext, true, User.getQuery(), mode);
6192 31 Oct 12 nicklas 108     query.include(Include.ALL);
6192 31 Oct 12 nicklas 109     users = query.iterate(dc);
6192 31 Oct 12 nicklas 110   }
6192 31 Oct 12 nicklas 111   catch (Throwable t)
6192 31 Oct 12 nicklas 112   {
6192 31 Oct 12 nicklas 113     cc.setMessage(t.getMessage());
6192 31 Oct 12 nicklas 114   }
6192 31 Oct 12 nicklas 115   int numListed = 0;
7604 25 Feb 19 nicklas 116   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 117   ExtensionsInvoker<ListColumnAction<User,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
6192 31 Oct 12 nicklas 118   %>
6305 09 Aug 13 nicklas 119   <base:page title="Disk usage" id="list-users">
6305 09 Aug 13 nicklas 120   <base:head scripts="table.js,tabcontrol-2.js,~diskusage.js" styles="table.css,toolbar.css,headertabcontrol.css">
6192 31 Oct 12 nicklas 121     <ext:scripts context="<%=jspContext%>" />
6192 31 Oct 12 nicklas 122     <ext:stylesheets context="<%=jspContext%>" />
6192 31 Oct 12 nicklas 123     <style>
6192 31 Oct 12 nicklas 124     table.special
6192 31 Oct 12 nicklas 125     {
6620 24 Nov 14 nicklas 126       border-width: 1px;
6620 24 Nov 14 nicklas 127       margin: 2px;
6192 31 Oct 12 nicklas 128       border-collapse: collapse;
6620 24 Nov 14 nicklas 129       width: calc(100% - 6px);
6192 31 Oct 12 nicklas 130     }
6192 31 Oct 12 nicklas 131     table.special td, table.special th
6192 31 Oct 12 nicklas 132     {
6192 31 Oct 12 nicklas 133       text-align: right;
6620 24 Nov 14 nicklas 134       border-right-width: 1px;
6620 24 Nov 14 nicklas 135       border-right-style: dotted;
6192 31 Oct 12 nicklas 136       padding: 1px 2px 1px 2px;
6192 31 Oct 12 nicklas 137     }
6192 31 Oct 12 nicklas 138     </style>
6192 31 Oct 12 nicklas 139   </base:head>
6192 31 Oct 12 nicklas 140   
6192 31 Oct 12 nicklas 141   <base:body>
6192 31 Oct 12 nicklas 142     <h1>Disk usage</h1>
6192 31 Oct 12 nicklas 143     <t:tabcontrol 
6192 31 Oct 12 nicklas 144       id="main" 
6192 31 Oct 12 nicklas 145       subclass="mastertabcontrol content" 
6305 09 Aug 13 nicklas 146       active="users">
6305 09 Aug 13 nicklas 147     <t:tab id="overview" title="Overview" data-cmd="Overview"/>
6305 09 Aug 13 nicklas 148     <t:tab id="users" title="Per user" data-cmd="ListUsers">
6192 31 Oct 12 nicklas 149     <tbl:table 
6192 31 Oct 12 nicklas 150       id="users" 
6192 31 Oct 12 nicklas 151       columns="<%=cc.getSetting("columns")%>"
6192 31 Oct 12 nicklas 152       sortby="<%=cc.getSortProperty()%>" 
6192 31 Oct 12 nicklas 153       direction="<%=cc.getSortDirection()%>"
6192 31 Oct 12 nicklas 154       action="index.jsp"
6192 31 Oct 12 nicklas 155       sc="<%=sc%>"
6192 31 Oct 12 nicklas 156       item="<%=itemType%>"
6192 31 Oct 12 nicklas 157       subcontext="<%=subContext%>"
6707 02 Feb 15 nicklas 158       filterrows="<%=cc.getFilterRows()%>"
6192 31 Oct 12 nicklas 159       subclass="fulltable"
7982 14 Jun 21 nicklas 160       stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>"
6192 31 Oct 12 nicklas 161       >
6192 31 Oct 12 nicklas 162       <tbl:hidden 
6192 31 Oct 12 nicklas 163         name="subcontext"
6192 31 Oct 12 nicklas 164         value="<%=subContext%>"
6192 31 Oct 12 nicklas 165       />
6192 31 Oct 12 nicklas 166       <tbl:columndef 
6192 31 Oct 12 nicklas 167         id="name"
6192 31 Oct 12 nicklas 168         property="name"
6192 31 Oct 12 nicklas 169         datatype="string"
6192 31 Oct 12 nicklas 170         title="Name"
6192 31 Oct 12 nicklas 171         sortable="true" 
6192 31 Oct 12 nicklas 172         filterable="true"
6192 31 Oct 12 nicklas 173         exportable="true"
6192 31 Oct 12 nicklas 174         show="always" 
6192 31 Oct 12 nicklas 175       />
6192 31 Oct 12 nicklas 176       <tbl:columndef 
6192 31 Oct 12 nicklas 177         id="id"
6192 31 Oct 12 nicklas 178         clazz="uniquecol"
6192 31 Oct 12 nicklas 179         property="id"
6192 31 Oct 12 nicklas 180         datatype="int"
6192 31 Oct 12 nicklas 181         title="ID"
6192 31 Oct 12 nicklas 182         sortable="true"
6192 31 Oct 12 nicklas 183         filterable="true"
6192 31 Oct 12 nicklas 184         exportable="true"
6192 31 Oct 12 nicklas 185       />
6192 31 Oct 12 nicklas 186       <tbl:columndef
6192 31 Oct 12 nicklas 187         id="diskUsage"
6192 31 Oct 12 nicklas 188         title="Disk usage summary"
6192 31 Oct 12 nicklas 189         show="always"
6192 31 Oct 12 nicklas 190       />
6192 31 Oct 12 nicklas 191       <tbl:columndef 
6192 31 Oct 12 nicklas 192         id="login"
6192 31 Oct 12 nicklas 193         clazz="uniquecol"
6192 31 Oct 12 nicklas 194         property="login"
6192 31 Oct 12 nicklas 195         datatype="string"
6192 31 Oct 12 nicklas 196         title="Login"
6192 31 Oct 12 nicklas 197         sortable="true" 
6192 31 Oct 12 nicklas 198         filterable="true"
6192 31 Oct 12 nicklas 199         exportable="true"
6192 31 Oct 12 nicklas 200       />
6192 31 Oct 12 nicklas 201       <tbl:columndef 
6192 31 Oct 12 nicklas 202         id="systemId"
6192 31 Oct 12 nicklas 203         clazz="uniquecol"
6192 31 Oct 12 nicklas 204         property="systemId"
6192 31 Oct 12 nicklas 205         datatype="string"
6192 31 Oct 12 nicklas 206         title="System ID"
6192 31 Oct 12 nicklas 207         sortable="true"
6192 31 Oct 12 nicklas 208         filterable="true"
6192 31 Oct 12 nicklas 209         exportable="true"
6192 31 Oct 12 nicklas 210       />
6192 31 Oct 12 nicklas 211       <tbl:columndef 
6192 31 Oct 12 nicklas 212         id="externalId"
6192 31 Oct 12 nicklas 213         clazz="uniquecol"
6192 31 Oct 12 nicklas 214         property="externalId"
6192 31 Oct 12 nicklas 215         datatype="string"
6192 31 Oct 12 nicklas 216         title="External ID"
6192 31 Oct 12 nicklas 217         sortable="true" 
6192 31 Oct 12 nicklas 218         filterable="true"
6192 31 Oct 12 nicklas 219         exportable="true"
6192 31 Oct 12 nicklas 220       />
6192 31 Oct 12 nicklas 221       <tbl:columndef 
6192 31 Oct 12 nicklas 222         id="expirationDate"
6192 31 Oct 12 nicklas 223         property="expirationDate"
6192 31 Oct 12 nicklas 224         datatype="date"
6192 31 Oct 12 nicklas 225         title="Expiration date"
6192 31 Oct 12 nicklas 226         sortable="true" 
6192 31 Oct 12 nicklas 227         filterable="true"
6192 31 Oct 12 nicklas 228         exportable="true"
6192 31 Oct 12 nicklas 229         formatter="<%=FormatterFactory.getDateFormatter(sc)%>"
6192 31 Oct 12 nicklas 230       />
6192 31 Oct 12 nicklas 231       <tbl:columndef 
6192 31 Oct 12 nicklas 232         id="disabled"
6192 31 Oct 12 nicklas 233         property="disabled"
6192 31 Oct 12 nicklas 234         datatype="boolean"
6192 31 Oct 12 nicklas 235         title="Disabled"
6192 31 Oct 12 nicklas 236         sortable="true" 
6192 31 Oct 12 nicklas 237         filterable="true"
6192 31 Oct 12 nicklas 238         exportable="true"
6192 31 Oct 12 nicklas 239       />
6192 31 Oct 12 nicklas 240       <tbl:columndef 
6192 31 Oct 12 nicklas 241         id="multiuserAccount"
6192 31 Oct 12 nicklas 242         property="multiuserAccount"
6192 31 Oct 12 nicklas 243         datatype="boolean"
6192 31 Oct 12 nicklas 244         title="Multi-user account"
6192 31 Oct 12 nicklas 245         sortable="true" 
6192 31 Oct 12 nicklas 246         filterable="true"
6192 31 Oct 12 nicklas 247         exportable="true"
6192 31 Oct 12 nicklas 248       />
6192 31 Oct 12 nicklas 249       <tbl:columndef 
6192 31 Oct 12 nicklas 250         id="organisation"
6192 31 Oct 12 nicklas 251         property="organisation"
6192 31 Oct 12 nicklas 252         datatype="string"
6192 31 Oct 12 nicklas 253         title="Organisation"
6192 31 Oct 12 nicklas 254         sortable="true" 
6192 31 Oct 12 nicklas 255         filterable="true"
6192 31 Oct 12 nicklas 256         exportable="true"
6192 31 Oct 12 nicklas 257       />
6192 31 Oct 12 nicklas 258       <tbl:columndef 
6192 31 Oct 12 nicklas 259         id="address"
6192 31 Oct 12 nicklas 260         property="address"
6192 31 Oct 12 nicklas 261         datatype="string"
6192 31 Oct 12 nicklas 262         title="Address"
6192 31 Oct 12 nicklas 263         sortable="true" 
6192 31 Oct 12 nicklas 264         filterable="true"
6192 31 Oct 12 nicklas 265         exportable="true"
6192 31 Oct 12 nicklas 266       />
6192 31 Oct 12 nicklas 267       <tbl:columndef 
6192 31 Oct 12 nicklas 268         id="email"
6192 31 Oct 12 nicklas 269         property="email"
6192 31 Oct 12 nicklas 270         datatype="string"
6192 31 Oct 12 nicklas 271         title="Email"
6192 31 Oct 12 nicklas 272         sortable="true" 
6192 31 Oct 12 nicklas 273         filterable="true"
6192 31 Oct 12 nicklas 274         exportable="true"
6192 31 Oct 12 nicklas 275       />
6192 31 Oct 12 nicklas 276       <tbl:columndef 
6192 31 Oct 12 nicklas 277         id="phone"
6192 31 Oct 12 nicklas 278         property="phone"
6192 31 Oct 12 nicklas 279         datatype="string"
6192 31 Oct 12 nicklas 280         title="Phone"
6192 31 Oct 12 nicklas 281         sortable="true" 
6192 31 Oct 12 nicklas 282         filterable="true"
6192 31 Oct 12 nicklas 283         exportable="true"
6192 31 Oct 12 nicklas 284       />
6192 31 Oct 12 nicklas 285       <tbl:columndef 
6192 31 Oct 12 nicklas 286         id="fax"
6192 31 Oct 12 nicklas 287         property="fax"
6192 31 Oct 12 nicklas 288         datatype="string"
6192 31 Oct 12 nicklas 289         title="Fax"
6192 31 Oct 12 nicklas 290         sortable="true" 
6192 31 Oct 12 nicklas 291         filterable="true"
6192 31 Oct 12 nicklas 292         exportable="true"
6192 31 Oct 12 nicklas 293       />
6192 31 Oct 12 nicklas 294       <tbl:columndef 
6192 31 Oct 12 nicklas 295         id="url"
6192 31 Oct 12 nicklas 296         property="url"
6192 31 Oct 12 nicklas 297         datatype="string"
6192 31 Oct 12 nicklas 298         title="Url"
6192 31 Oct 12 nicklas 299         sortable="true" 
6192 31 Oct 12 nicklas 300         filterable="true"
6192 31 Oct 12 nicklas 301         exportable="true"
6192 31 Oct 12 nicklas 302       />
6192 31 Oct 12 nicklas 303       <tbl:columndef 
6192 31 Oct 12 nicklas 304         id="quota"
6192 31 Oct 12 nicklas 305         property="quota.name"
6192 31 Oct 12 nicklas 306         datatype="string"
6192 31 Oct 12 nicklas 307         title="Quota"
6192 31 Oct 12 nicklas 308         sortable="true" 
6192 31 Oct 12 nicklas 309         filterable="true"
6192 31 Oct 12 nicklas 310         exportable="true"
6192 31 Oct 12 nicklas 311       />
6192 31 Oct 12 nicklas 312       <tbl:columndef 
6192 31 Oct 12 nicklas 313         id="quotagroup"
6192 31 Oct 12 nicklas 314         property="quotaGroup.name"
6192 31 Oct 12 nicklas 315         datatype="string"
6192 31 Oct 12 nicklas 316         title="Quota group"
6192 31 Oct 12 nicklas 317         sortable="true" 
6192 31 Oct 12 nicklas 318         filterable="true"
6192 31 Oct 12 nicklas 319         exportable="true"
6192 31 Oct 12 nicklas 320       />
6192 31 Oct 12 nicklas 321       <tbl:columndef 
6192 31 Oct 12 nicklas 322         id="description"
6192 31 Oct 12 nicklas 323         property="description"
6192 31 Oct 12 nicklas 324         datatype="string"
6192 31 Oct 12 nicklas 325         title="Description" 
6192 31 Oct 12 nicklas 326         sortable="true" 
6192 31 Oct 12 nicklas 327         filterable="true" 
6192 31 Oct 12 nicklas 328         exportable="true"
6192 31 Oct 12 nicklas 329       />
6192 31 Oct 12 nicklas 330       <tbl:columndef 
6192 31 Oct 12 nicklas 331         id="xt-columns" 
6192 31 Oct 12 nicklas 332         extensions="<%=columnsInvoker%>" 
6192 31 Oct 12 nicklas 333         jspcontext="<%=jspContext%>" 
6192 31 Oct 12 nicklas 334       />
6604 18 Nov 14 nicklas 335       <div class="panelgroup bg-filled-50 bottomborder">
6192 31 Oct 12 nicklas 336         <tbl:toolbar
6192 31 Oct 12 nicklas 337           visible="<%=mode.hasToolbar()%>"
6192 31 Oct 12 nicklas 338           subclass="bottomborder"
6192 31 Oct 12 nicklas 339           >
6192 31 Oct 12 nicklas 340           <tbl:button 
6305 09 Aug 13 nicklas 341             id="btnColumns"
6305 09 Aug 13 nicklas 342             image="columns.png"
6192 31 Oct 12 nicklas 343             title="Columns&hellip;" 
6192 31 Oct 12 nicklas 344             tooltip="Show, hide and re-order columns" 
6192 31 Oct 12 nicklas 345           />
6192 31 Oct 12 nicklas 346           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 347             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
6192 31 Oct 12 nicklas 348         </tbl:toolbar>
6192 31 Oct 12 nicklas 349         <tbl:panel>
6192 31 Oct 12 nicklas 350           <tbl:presetselector />
6192 31 Oct 12 nicklas 351           <tbl:navigator
6192 31 Oct 12 nicklas 352             page="<%=cc.getPage()%>" 
6192 31 Oct 12 nicklas 353             rowsperpage="<%=cc.getRowsPerPage()%>" 
6192 31 Oct 12 nicklas 354             totalrows="<%=users == null ? 0 : users.getTotalCount()%>" 
6192 31 Oct 12 nicklas 355           />
6192 31 Oct 12 nicklas 356           <b>Show summary</b>
6305 09 Aug 13 nicklas 357           <span id="changeSummary">
6305 09 Aug 13 nicklas 358           <label><input type="radio" name="showStatistics" value="total"
6305 09 Aug 13 nicklas 359             <%="total".equals(showStatistics) ? "checked" : ""%>>Total only</label>
6305 09 Aug 13 nicklas 360           <label><input type="radio" name="showStatistics" value="location"
6305 09 Aug 13 nicklas 361             <%="location".equals(showStatistics) ? "checked" : ""%>>Per location</label>
6305 09 Aug 13 nicklas 362           <label><input type="radio" name="showStatistics" value="quotaType"
6305 09 Aug 13 nicklas 363             <%="quotaType".equals(showStatistics) ? "checked" : ""%>>Per quota type</label>
6305 09 Aug 13 nicklas 364           <label><input type="radio" name="showStatistics" value="full"
6305 09 Aug 13 nicklas 365             <%="full".equals(showStatistics) ? "checked" : ""%>>Full</label>
6305 09 Aug 13 nicklas 366           </span>
6192 31 Oct 12 nicklas 367         </tbl:panel>
6192 31 Oct 12 nicklas 368       </div>
6192 31 Oct 12 nicklas 369       <tbl:data>
6192 31 Oct 12 nicklas 370         <tbl:headers>
6192 31 Oct 12 nicklas 371           <tbl:headerrow>
7943 04 May 21 nicklas 372             <tbl:header clazz="row-index bg-filled-100" />
6192 31 Oct 12 nicklas 373             <tbl:columnheaders />
6192 31 Oct 12 nicklas 374           </tbl:headerrow>
6707 02 Feb 15 nicklas 375           <%
6707 02 Feb 15 nicklas 376           int numFilters = cc.getNumPropertyFilters();
6707 02 Feb 15 nicklas 377           int numRows = cc.getFilterRows();
6707 02 Feb 15 nicklas 378           for (int filterNo = 0; filterNo < numRows; filterNo++)
6707 02 Feb 15 nicklas 379           {
6707 02 Feb 15 nicklas 380             boolean lastRow = filterNo == numRows-1;
6707 02 Feb 15 nicklas 381             %>
6707 02 Feb 15 nicklas 382             <tbl:headerrow>
7943 04 May 21 nicklas 383               <tbl:header subclass="row-index bg-filled-100">
7943 04 May 21 nicklas 384                 <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 385                   <div class="index"></div>
7943 04 May 21 nicklas 386                   <div class="check">
7943 04 May 21 nicklas 387                     <base:icon 
7943 04 May 21 nicklas 388                       subclass="link table-check"
7943 04 May 21 nicklas 389                       image="check_uncheck.png" 
7943 04 May 21 nicklas 390                       tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)" 
7943 04 May 21 nicklas 391                       visible="<%=lastRow && mode.hasCheck()%>"
7943 04 May 21 nicklas 392                     />
7943 04 May 21 nicklas 393                   </div>
7943 04 May 21 nicklas 394                   <div class="icons">
7943 04 May 21 nicklas 395                     <base:icon
7943 04 May 21 nicklas 396                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 397                       image="add.png"
7943 04 May 21 nicklas 398                       tooltip="Add extra filter row"
7943 04 May 21 nicklas 399                       visible="<%=lastRow%>"
7943 04 May 21 nicklas 400                     /><base:icon
7943 04 May 21 nicklas 401                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 402                       image="remove.png"
7943 04 May 21 nicklas 403                       tooltip="Remove this filter row"
7943 04 May 21 nicklas 404                       visible="<%=numRows > 1 || numFilters > 0 %>"
7943 04 May 21 nicklas 405                       data-remove-row="<%=filterNo%>"
7943 04 May 21 nicklas 406                     />
7943 04 May 21 nicklas 407                   </div>
7943 04 May 21 nicklas 408                 </div>
6707 02 Feb 15 nicklas 409               </tbl:header>
6707 02 Feb 15 nicklas 410               <tbl:propertyfilter row="<%=filterNo%>" />
6707 02 Feb 15 nicklas 411             </tbl:headerrow>
6707 02 Feb 15 nicklas 412             <%
6707 02 Feb 15 nicklas 413           }
6707 02 Feb 15 nicklas 414           %>
7913 22 Feb 21 nicklas 415           <tbl:columnsubtitles />
6192 31 Oct 12 nicklas 416         </tbl:headers>
6192 31 Oct 12 nicklas 417         <tbl:rows>
6192 31 Oct 12 nicklas 418           <%
6192 31 Oct 12 nicklas 419           if (cc.getMessage() != null)
6192 31 Oct 12 nicklas 420           {
6192 31 Oct 12 nicklas 421             %>
6604 18 Nov 14 nicklas 422             <tbl:panel subclass="bg-filled-50">
6192 31 Oct 12 nicklas 423               <div class="messagecontainer error"><%=cc.getMessage()%></div>
6192 31 Oct 12 nicklas 424             </tbl:panel>
6192 31 Oct 12 nicklas 425             <%
6192 31 Oct 12 nicklas 426             cc.setMessage(null);
6192 31 Oct 12 nicklas 427           }
6192 31 Oct 12 nicklas 428           int index = cc.getPage()*cc.getRowsPerPage();
6192 31 Oct 12 nicklas 429           int selectedItemId = cc.getId();
6192 31 Oct 12 nicklas 430           if (users != null)
6192 31 Oct 12 nicklas 431           {            
6192 31 Oct 12 nicklas 432             while (users.hasNext())
6192 31 Oct 12 nicklas 433             {
6192 31 Oct 12 nicklas 434               User item = users.next();
6192 31 Oct 12 nicklas 435               int itemId = item.getId();
6192 31 Oct 12 nicklas 436               String name = HTML.encodeTags(item.getName());
6192 31 Oct 12 nicklas 437               String tooltip = mode.isSelectionMode() ? 
6192 31 Oct 12 nicklas 438                   "Select this item" : "View this item" + (writePermission ? " (use CTRL, ALT or SHIFT to edit)" : "");
6192 31 Oct 12 nicklas 439               index++;
6192 31 Oct 12 nicklas 440               numListed++;
6192 31 Oct 12 nicklas 441               %>
6192 31 Oct 12 nicklas 442               <tbl:row>
7943 04 May 21 nicklas 443                 <tbl:header clazz="row-index bg-filled-100">
7943 04 May 21 nicklas 444                   <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 445                     <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
7943 04 May 21 nicklas 446                     <div class="check">
7943 04 May 21 nicklas 447                       <base:input
7943 04 May 21 nicklas 448                         type="checkbox" 
7943 04 May 21 nicklas 449                         name="<%=itemId%>" 
7943 04 May 21 nicklas 450                         value="<%=itemId%>" 
7943 04 May 21 nicklas 451                         title="<%=name%>" 
7943 04 May 21 nicklas 452                         checked="<%=cc.getSelected().contains(itemId)%>"
7943 04 May 21 nicklas 453                         visible="<%=mode.hasCheck()%>"
7943 04 May 21 nicklas 454                       />
7943 04 May 21 nicklas 455                       <base:input 
7943 04 May 21 nicklas 456                         type="radio" 
7943 04 May 21 nicklas 457                         name="item_id" 
7943 04 May 21 nicklas 458                         value="<%=itemId%>" 
7943 04 May 21 nicklas 459                         title="<%=name%>" 
7943 04 May 21 nicklas 460                         checked="<%=selectedItemId == itemId%>"
7943 04 May 21 nicklas 461                         visible="<%=mode.hasRadio()%>"
7943 04 May 21 nicklas 462                       />
7943 04 May 21 nicklas 463                     </div>
7943 04 May 21 nicklas 464                     <div class="icons">
7943 04 May 21 nicklas 465                       <base:icon 
7943 04 May 21 nicklas 466                         image="deleted.png"
7943 04 May 21 nicklas 467                         tooltip="This item has been scheduled for deletion" 
7943 04 May 21 nicklas 468                         visible="<%=item.isRemoved()%>"
7943 04 May 21 nicklas 469                       /><base:icon
7943 04 May 21 nicklas 470                         subclass="link auto-init"
7943 04 May 21 nicklas 471                         data-auto-init="impersonate-user"
7943 04 May 21 nicklas 472                         data-user-id="<%=itemId%>"
7943 04 May 21 nicklas 473                         image="login.png"
7943 04 May 21 nicklas 474                         tooltip="Login as this user"
7943 04 May 21 nicklas 475                         visible="<%=impersonatePermission%>"
7943 04 May 21 nicklas 476                       />
7943 04 May 21 nicklas 477                     </div>
7943 04 May 21 nicklas 478                   </div>
7943 04 May 21 nicklas 479                 </tbl:header>
6305 09 Aug 13 nicklas 480                 <tbl:cell column="name"><div 
6305 09 Aug 13 nicklas 481                   class="link auto-init"
6305 09 Aug 13 nicklas 482                   data-auto-init="item-link"
6305 09 Aug 13 nicklas 483                   data-item-type="USER"
6305 09 Aug 13 nicklas 484                   data-item-id="<%=itemId%>"
6305 09 Aug 13 nicklas 485                   data-no-edit="<%=writePermission ? 0 : 1 %>"
6192 31 Oct 12 nicklas 486                   title="<%=tooltip%>"><%=name%></div></tbl:cell>
6192 31 Oct 12 nicklas 487                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
6192 31 Oct 12 nicklas 488                 <tbl:cell column="diskUsage" style="padding: 0px;">
6192 31 Oct 12 nicklas 489                   <%
6192 31 Oct 12 nicklas 490                   DiskUsageStatistics.Summary summary = du.getSummary(item);
6192 31 Oct 12 nicklas 491                   long total = summary.getTotal();
6192 31 Oct 12 nicklas 492                   if (total > 0 && (hasLocation || hasQuotaType))
6192 31 Oct 12 nicklas 493                   {
6192 31 Oct 12 nicklas 494                     %>
6192 31 Oct 12 nicklas 495                     <table class="special bottomborder">
6192 31 Oct 12 nicklas 496                     <%
6192 31 Oct 12 nicklas 497                     if (hasLocation)
6192 31 Oct 12 nicklas 498                     {
6192 31 Oct 12 nicklas 499                       %>
6620 24 Nov 14 nicklas 500                       <tr class="bottomborder bg-filled-100">
6192 31 Oct 12 nicklas 501                         <%
6192 31 Oct 12 nicklas 502                         if (hasQuotaType)
6192 31 Oct 12 nicklas 503                         {
6192 31 Oct 12 nicklas 504                           %>
6192 31 Oct 12 nicklas 505                           <th>&nbsp;</th>
6192 31 Oct 12 nicklas 506                           <%
6192 31 Oct 12 nicklas 507                         }
6192 31 Oct 12 nicklas 508                         %>
6192 31 Oct 12 nicklas 509                         <th>Total</th>
6192 31 Oct 12 nicklas 510                         <td>Primary</td>
7595 22 Feb 19 nicklas 511                         <td>External</td>
6192 31 Oct 12 nicklas 512                         <td>Offline</td>
6192 31 Oct 12 nicklas 513                       </tr>
6192 31 Oct 12 nicklas 514                       <%
6192 31 Oct 12 nicklas 515                     }
6192 31 Oct 12 nicklas 516                     %>  
6620 24 Nov 14 nicklas 517                     <tr class="bottomborder <%=!hasLocation ? "bg-filled-100" : "" %>">
6192 31 Oct 12 nicklas 518                       <%
6192 31 Oct 12 nicklas 519                       if (hasQuotaType)
6192 31 Oct 12 nicklas 520                       {
6192 31 Oct 12 nicklas 521                         %>
6192 31 Oct 12 nicklas 522                         <th>Total</th>
6192 31 Oct 12 nicklas 523                         <%
6192 31 Oct 12 nicklas 524                       }
6192 31 Oct 12 nicklas 525                       %>
6192 31 Oct 12 nicklas 526                       <td><%=Values.formatBytes(total)%></td>
6192 31 Oct 12 nicklas 527                       <%
6192 31 Oct 12 nicklas 528                       if (hasLocation)
6192 31 Oct 12 nicklas 529                       {
6192 31 Oct 12 nicklas 530                         %>
6192 31 Oct 12 nicklas 531                         <td><%=Values.formatBytes(summary.getTotal(Location.PRIMARY))%></td>
7595 22 Feb 19 nicklas 532                         <td><%=Values.formatBytes(summary.getTotal(Location.EXTERNAL))%></td>
6192 31 Oct 12 nicklas 533                         <td><%=Values.formatBytes(summary.getTotal(Location.OFFLINE))%></td>
6192 31 Oct 12 nicklas 534                         <%
6192 31 Oct 12 nicklas 535                       }
6192 31 Oct 12 nicklas 536                       %>
6192 31 Oct 12 nicklas 537                     </tr>
6192 31 Oct 12 nicklas 538                     <%
6192 31 Oct 12 nicklas 539                     if (hasQuotaType && total > 0)
6192 31 Oct 12 nicklas 540                     {
6192 31 Oct 12 nicklas 541                       for (QuotaType qt : quotaTypes)
6192 31 Oct 12 nicklas 542                       {
6192 31 Oct 12 nicklas 543                         %>
6192 31 Oct 12 nicklas 544                         <tr>
6192 31 Oct 12 nicklas 545                           <td><%=HTML.encodeTags(qt.getName())%></td>
6192 31 Oct 12 nicklas 546                           <td><%=Values.formatBytes(summary.getTotal(qt))%></td>
6192 31 Oct 12 nicklas 547                           <%
6192 31 Oct 12 nicklas 548                           if (hasLocation)
6192 31 Oct 12 nicklas 549                           {
6192 31 Oct 12 nicklas 550                             %>
6192 31 Oct 12 nicklas 551                             <td><%=Values.formatBytes(summary.getTotal(qt, Location.PRIMARY))%></td>
7595 22 Feb 19 nicklas 552                             <td><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.EXTERNAL)) : "n/a"%></td>
6192 31 Oct 12 nicklas 553                             <td><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.OFFLINE)) : "n/a"%></td>
6192 31 Oct 12 nicklas 554                             <%
6192 31 Oct 12 nicklas 555                           }
6192 31 Oct 12 nicklas 556                           %>
6192 31 Oct 12 nicklas 557                         </tr>
6192 31 Oct 12 nicklas 558                         <%
6192 31 Oct 12 nicklas 559                       }
6192 31 Oct 12 nicklas 560                     }
6192 31 Oct 12 nicklas 561                     %>
6192 31 Oct 12 nicklas 562                     </table>
6192 31 Oct 12 nicklas 563                     <%
6192 31 Oct 12 nicklas 564                   }
6192 31 Oct 12 nicklas 565                   else
6192 31 Oct 12 nicklas 566                   {
6192 31 Oct 12 nicklas 567                     %>
6192 31 Oct 12 nicklas 568                     &nbsp;<%=Values.formatBytes(total)%>
6192 31 Oct 12 nicklas 569                     <%
6192 31 Oct 12 nicklas 570                   }
6192 31 Oct 12 nicklas 571                   if (total > 0)
6192 31 Oct 12 nicklas 572                   {
6192 31 Oct 12 nicklas 573                     %>
6192 31 Oct 12 nicklas 574                     <base:icon image="gonext.png" 
6305 09 Aug 13 nicklas 575                       subclass="link auto-init"
6305 09 Aug 13 nicklas 576                       data-auto-init="view-details"
6305 09 Aug 13 nicklas 577                       data-item-type="USER"
6305 09 Aug 13 nicklas 578                       data-item-id="<%=itemId %>">View details</base:icon>
6192 31 Oct 12 nicklas 579                     <%
6192 31 Oct 12 nicklas 580                   }
6192 31 Oct 12 nicklas 581                   %>
6192 31 Oct 12 nicklas 582                 </tbl:cell>
6192 31 Oct 12 nicklas 583                 <tbl:cell column="login"><%=HTML.encodeTags(item.getLogin())%></tbl:cell>
6192 31 Oct 12 nicklas 584                 <tbl:cell column="systemId"><%=Values.getString(item.getSystemId())%></tbl:cell>
6192 31 Oct 12 nicklas 585                 <tbl:cell column="externalId"><%=HTML.encodeTags(item.getExternalId())%></tbl:cell>
6192 31 Oct 12 nicklas 586                 <tbl:cell column="expirationDate" value="<%=item.getExpirationDate()%>" />
6192 31 Oct 12 nicklas 587                 <tbl:cell column="disabled"><%=item.isDisabled() ? "yes" : "no" %></tbl:cell>
6192 31 Oct 12 nicklas 588                 <tbl:cell column="multiuserAccount"><%=item.isMultiuserAccount() ? "yes" : "no" %></tbl:cell>
6192 31 Oct 12 nicklas 589                 <tbl:cell column="organisation"><%=HTML.encodeTags(item.getOrganisation())%></tbl:cell>
6192 31 Oct 12 nicklas 590                 <tbl:cell column="address"><%=HTML.encodeTags(item.getAddress())%></tbl:cell>
6192 31 Oct 12 nicklas 591                 <tbl:cell column="email"><%=HTML.encodeTags(item.getEmail())%></tbl:cell>
6192 31 Oct 12 nicklas 592                 <tbl:cell column="phone"><%=HTML.encodeTags(item.getPhone())%></tbl:cell>
6192 31 Oct 12 nicklas 593                 <tbl:cell column="fax"><%=HTML.encodeTags(item.getFax())%></tbl:cell>
6192 31 Oct 12 nicklas 594                 <tbl:cell column="url"><%=HTML.encodeTags(item.getUrl())%></tbl:cell>
6192 31 Oct 12 nicklas 595                 <tbl:cell column="quota"
6192 31 Oct 12 nicklas 596                   ><base:propertyvalue 
6192 31 Oct 12 nicklas 597                     item="<%=item%>" 
6192 31 Oct 12 nicklas 598                     property="quota"
6192 31 Oct 12 nicklas 599                     enableEditLink="<%=mode.hasEditLink()%>" 
6192 31 Oct 12 nicklas 600                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
6192 31 Oct 12 nicklas 601                   /></tbl:cell>
6192 31 Oct 12 nicklas 602                 <tbl:cell column="quotagroup"
6192 31 Oct 12 nicklas 603                   ><base:propertyvalue 
6192 31 Oct 12 nicklas 604                     item="<%=item%>" 
6192 31 Oct 12 nicklas 605                     property="quotaGroup"
6192 31 Oct 12 nicklas 606                     enableEditLink="<%=mode.hasEditLink()%>" 
6192 31 Oct 12 nicklas 607                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
6192 31 Oct 12 nicklas 608                   /></tbl:cell>
6192 31 Oct 12 nicklas 609                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
6192 31 Oct 12 nicklas 610                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6192 31 Oct 12 nicklas 611                   <tbl:cell column="xt-columns" />
6192 31 Oct 12 nicklas 612                 </tbl:xt-cells>
6192 31 Oct 12 nicklas 613               </tbl:row>
6192 31 Oct 12 nicklas 614               <%
6192 31 Oct 12 nicklas 615               }
6192 31 Oct 12 nicklas 616             }
6192 31 Oct 12 nicklas 617             if (numListed == 0)
6192 31 Oct 12 nicklas 618             {
6192 31 Oct 12 nicklas 619               %>
6604 18 Nov 14 nicklas 620               <tbl:panel subclass="bg-filled-50">
6192 31 Oct 12 nicklas 621                 <div class="messagecontainer note">
6192 31 Oct 12 nicklas 622                 <%=users == null || users.getTotalCount() == 0 ? "No users were found" : "No users on this page. Please select another page!" %>
6192 31 Oct 12 nicklas 623                 </div>
6192 31 Oct 12 nicklas 624               </tbl:panel>
6192 31 Oct 12 nicklas 625               <%
6192 31 Oct 12 nicklas 626             }
6192 31 Oct 12 nicklas 627           %>
6192 31 Oct 12 nicklas 628         </tbl:rows>
6192 31 Oct 12 nicklas 629       </tbl:data>
6192 31 Oct 12 nicklas 630       </tbl:table>
6192 31 Oct 12 nicklas 631     </t:tab>
6305 09 Aug 13 nicklas 632     <t:tab id="groups" title="Per group" data-cmd="ListGroups"/>
6192 31 Oct 12 nicklas 633     </t:tabcontrol>
6192 31 Oct 12 nicklas 634
6192 31 Oct 12 nicklas 635   </base:body>
6192 31 Oct 12 nicklas 636   </base:page>
6192 31 Oct 12 nicklas 637   <%
6192 31 Oct 12 nicklas 638 }
6192 31 Oct 12 nicklas 639 finally
6192 31 Oct 12 nicklas 640 {
6192 31 Oct 12 nicklas 641   if (users != null) users.close();
6192 31 Oct 12 nicklas 642   if (dc != null) dc.close();
6192 31 Oct 12 nicklas 643 }
6192 31 Oct 12 nicklas 644 %>