www/admin/users/list_users.jsp

Code
Comments
Other
Rev Date Author Line
1969 10 Feb 06 nicklas 1 <%-- $Id$
1969 10 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, Nicklas Nordborg, Martin Svensson
1969 10 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/
1969 10 Feb 06 nicklas 8
1969 10 Feb 06 nicklas 9   BASE is free software; you can redistribute it and/or
1969 10 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
1969 10 Feb 06 nicklas 12   of the License, or (at your option) any later version.
1969 10 Feb 06 nicklas 13
1969 10 Feb 06 nicklas 14   BASE is distributed in the hope that it will be useful,
1969 10 Feb 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
1969 10 Feb 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1969 10 Feb 06 nicklas 17   GNU General Public License for more details.
1969 10 Feb 06 nicklas 18
1969 10 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/>.
1969 10 Feb 06 nicklas 21   ------------------------------------------------------------------
1969 10 Feb 06 nicklas 22
1969 10 Feb 06 nicklas 23   @author Nicklas
1969 10 Feb 06 nicklas 24   @version 2.0
1969 10 Feb 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1969 10 Feb 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
1969 10 Feb 06 nicklas 28   import="net.sf.basedb.core.DbControl"
3535 28 Jun 07 martin 29   import="net.sf.basedb.core.ExtendedProperty"
3535 28 Jun 07 martin 30   import="net.sf.basedb.core.ExtendedProperties"  
1969 10 Feb 06 nicklas 31   import="net.sf.basedb.core.Item"
1969 10 Feb 06 nicklas 32   import="net.sf.basedb.core.User"
2434 27 Jun 06 nicklas 33   import="net.sf.basedb.core.Group"
2434 27 Jun 06 nicklas 34   import="net.sf.basedb.core.Role"
2434 27 Jun 06 nicklas 35   import="net.sf.basedb.core.Type"
1969 10 Feb 06 nicklas 36   import="net.sf.basedb.core.ItemQuery"
1969 10 Feb 06 nicklas 37   import="net.sf.basedb.core.Include"
1969 10 Feb 06 nicklas 38   import="net.sf.basedb.core.ItemResultIterator"
1969 10 Feb 06 nicklas 39   import="net.sf.basedb.core.ItemResultList"
1969 10 Feb 06 nicklas 40   import="net.sf.basedb.core.ItemContext"
1969 10 Feb 06 nicklas 41   import="net.sf.basedb.core.Permission"
1969 10 Feb 06 nicklas 42   import="net.sf.basedb.core.PluginDefinition"
1969 10 Feb 06 nicklas 43   import="net.sf.basedb.core.query.Orders"
1969 10 Feb 06 nicklas 44   import="net.sf.basedb.core.query.Hql"
2434 27 Jun 06 nicklas 45   import="net.sf.basedb.core.query.Restrictions"
2434 27 Jun 06 nicklas 46   import="net.sf.basedb.core.query.Expressions"
1969 10 Feb 06 nicklas 47   import="net.sf.basedb.core.plugin.GuiContext"
1969 10 Feb 06 nicklas 48   import="net.sf.basedb.core.plugin.Plugin"
1969 10 Feb 06 nicklas 49   import="net.sf.basedb.util.Enumeration"
1969 10 Feb 06 nicklas 50   import="net.sf.basedb.clients.web.Base"
1969 10 Feb 06 nicklas 51   import="net.sf.basedb.clients.web.ModeInfo"
2401 21 Jun 06 martin 52   import="net.sf.basedb.clients.web.PermissionUtil"
1969 10 Feb 06 nicklas 53   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 54   import="net.sf.basedb.util.Values"
2942 22 Nov 06 nicklas 55   import="net.sf.basedb.util.formatter.Formatter"
2942 22 Nov 06 nicklas 56   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4886 03 Apr 09 nicklas 57   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4886 03 Apr 09 nicklas 58   import="net.sf.basedb.clients.web.extensions.JspContext"
4886 03 Apr 09 nicklas 59   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 60   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4886 03 Apr 09 nicklas 61   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 62   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6030 28 Mar 12 nicklas 63   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
4886 03 Apr 09 nicklas 64   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
1969 10 Feb 06 nicklas 65   import="java.util.List"
1969 10 Feb 06 nicklas 66   import="java.util.Map"
2942 22 Nov 06 nicklas 67   import="java.util.Date"
1969 10 Feb 06 nicklas 68 %>
1969 10 Feb 06 nicklas 69 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1969 10 Feb 06 nicklas 70 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
4886 03 Apr 09 nicklas 71 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1969 10 Feb 06 nicklas 72 <%!
1969 10 Feb 06 nicklas 73   private static final Item itemType = Item.USER;
1969 10 Feb 06 nicklas 74   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST);
1969 10 Feb 06 nicklas 75 %>
1969 10 Feb 06 nicklas 76 <%
1969 10 Feb 06 nicklas 77 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
1969 10 Feb 06 nicklas 78 final String ID = sc.getId();
1969 10 Feb 06 nicklas 79 final boolean createPermission = sc.hasPermission(Permission.CREATE, itemType);
1969 10 Feb 06 nicklas 80 final boolean writePermission = sc.hasPermission(Permission.WRITE, itemType);
1969 10 Feb 06 nicklas 81 final boolean deletePermission = sc.hasPermission(Permission.DELETE, itemType);
2818 30 Oct 06 nicklas 82 final boolean impersonatePermission = sc.hasSystemPermission(Permission.ACT_AS_ANOTHER_USER);
1969 10 Feb 06 nicklas 83 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1969 10 Feb 06 nicklas 84
1969 10 Feb 06 nicklas 85 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
1969 10 Feb 06 nicklas 86 final String callback = request.getParameter("callback");
1969 10 Feb 06 nicklas 87 final String title = mode.generateTitle("user", "users");
7954 12 May 21 nicklas 88 final DbControl dc = sc.newDbControl(":List "+itemType);
1969 10 Feb 06 nicklas 89 ItemResultIterator<User> users = null;
1969 10 Feb 06 nicklas 90 try
1969 10 Feb 06 nicklas 91 {
2942 22 Nov 06 nicklas 92   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
2942 22 Nov 06 nicklas 93
2434 27 Jun 06 nicklas 94   // Query for groups relatated to the current user
2434 27 Jun 06 nicklas 95   final ItemQuery<Group> groupQuery = Group.getQuery();
2434 27 Jun 06 nicklas 96   groupQuery.include(cc.getInclude());
2434 27 Jun 06 nicklas 97   groupQuery.join(Hql.innerJoin("users", "usr"));
2434 27 Jun 06 nicklas 98   groupQuery.restrict(Restrictions.eq(Hql.alias("usr"), Expressions.parameter("user")));
2434 27 Jun 06 nicklas 99   groupQuery.order(Orders.asc(Hql.property("name"))); 
1969 10 Feb 06 nicklas 100
2434 27 Jun 06 nicklas 101   // Query for roles relatated to the current user
2434 27 Jun 06 nicklas 102   final ItemQuery<Role> roleQuery = Role.getQuery();
2434 27 Jun 06 nicklas 103   roleQuery.include(cc.getInclude());
2434 27 Jun 06 nicklas 104   roleQuery.join(Hql.innerJoin("users", "usr"));
2434 27 Jun 06 nicklas 105   roleQuery.restrict(Restrictions.eq(Hql.alias("usr"), Expressions.parameter("user")));
2434 27 Jun 06 nicklas 106   roleQuery.order(Orders.asc(Hql.property("name"))); 
2434 27 Jun 06 nicklas 107   
3535 28 Jun 07 martin 108   List<ExtendedProperty> extendedProperties = ExtendedProperties.getProperties("UserData");
3535 28 Jun 07 martin 109   
1969 10 Feb 06 nicklas 110   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
7914 23 Feb 21 nicklas 111   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
2029 20 Feb 06 nicklas 112   try
2029 20 Feb 06 nicklas 113   {
7914 23 Feb 21 nicklas 114     final ItemQuery<User> query = Base.getConfiguredQuery(dc, cc, jspContext, true, User.getQuery(), mode);
2029 20 Feb 06 nicklas 115     users = query.iterate(dc);
2029 20 Feb 06 nicklas 116   }
2029 20 Feb 06 nicklas 117   catch (Throwable t)
2029 20 Feb 06 nicklas 118   {
2029 20 Feb 06 nicklas 119     cc.setMessage(t.getMessage());
2029 20 Feb 06 nicklas 120   }
1969 10 Feb 06 nicklas 121   int numListed = 0;
7604 25 Feb 19 nicklas 122   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 123   ExtensionsInvoker<ListColumnAction<User,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
1969 10 Feb 06 nicklas 124   %>
6223 15 Jan 13 nicklas 125   <base:page title="<%=title==null ? "Users" : title%>" type="<%=mode.getPageType()%>" id="list-page">
6223 15 Jan 13 nicklas 126   <base:head scripts="table.js,~users.js" styles="table.css,toolbar.css">
4886 03 Apr 09 nicklas 127     <ext:scripts context="<%=jspContext%>" />
4886 03 Apr 09 nicklas 128     <ext:stylesheets context="<%=jspContext%>" />
7943 04 May 21 nicklas 129     <style>
7943 04 May 21 nicklas 130     .row-index
7943 04 May 21 nicklas 131     {
7943 04 May 21 nicklas 132       width: 8.5em !important;
7943 04 May 21 nicklas 133     }
7943 04 May 21 nicklas 134     .row-index > div
7943 04 May 21 nicklas 135     {
7943 04 May 21 nicklas 136       grid-template-columns: 1fr 20px 52px !important;
7943 04 May 21 nicklas 137     }
7943 04 May 21 nicklas 138     </style>
1969 10 Feb 06 nicklas 139   </base:head>
1969 10 Feb 06 nicklas 140   
1969 10 Feb 06 nicklas 141   <base:body>
5954 13 Feb 12 nicklas 142     <h1><%=title==null ? "Users" : title%></h1>
5954 13 Feb 12 nicklas 143     <div class="content">
1969 10 Feb 06 nicklas 144     <tbl:table 
1969 10 Feb 06 nicklas 145       id="users" 
1969 10 Feb 06 nicklas 146       columns="<%=cc.getSetting("columns")%>"
1969 10 Feb 06 nicklas 147       sortby="<%=cc.getSortProperty()%>" 
1969 10 Feb 06 nicklas 148       direction="<%=cc.getSortDirection()%>"
1969 10 Feb 06 nicklas 149       action="index.jsp"
1969 10 Feb 06 nicklas 150       sc="<%=sc%>"
1969 10 Feb 06 nicklas 151       item="<%=itemType%>"
6704 02 Feb 15 nicklas 152       filterrows="<%=cc.getFilterRows()%>"
5954 13 Feb 12 nicklas 153       subclass="fulltable"
7982 14 Jun 21 nicklas 154       stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>"
1969 10 Feb 06 nicklas 155       >
1969 10 Feb 06 nicklas 156       <tbl:hidden 
1969 10 Feb 06 nicklas 157         name="mode" 
1969 10 Feb 06 nicklas 158         value="<%=mode.getName()%>" 
1969 10 Feb 06 nicklas 159       />
1969 10 Feb 06 nicklas 160       <tbl:hidden 
1969 10 Feb 06 nicklas 161         name="callback" 
1969 10 Feb 06 nicklas 162         value="<%=callback%>" 
1969 10 Feb 06 nicklas 163         skip="<%=callback == null%>" 
1969 10 Feb 06 nicklas 164       />
1969 10 Feb 06 nicklas 165       <tbl:columndef 
1969 10 Feb 06 nicklas 166         id="name"
1969 10 Feb 06 nicklas 167         property="name"
1969 10 Feb 06 nicklas 168         datatype="string"
1969 10 Feb 06 nicklas 169         title="Name"
1969 10 Feb 06 nicklas 170         sortable="true" 
1969 10 Feb 06 nicklas 171         filterable="true"
1969 10 Feb 06 nicklas 172         exportable="true"
1969 10 Feb 06 nicklas 173         show="always" 
1969 10 Feb 06 nicklas 174       />
1969 10 Feb 06 nicklas 175       <tbl:columndef 
4332 12 Jun 08 martin 176         id="id"
4387 11 Aug 08 nicklas 177         clazz="uniquecol"
4332 12 Jun 08 martin 178         property="id"
4332 12 Jun 08 martin 179         datatype="int"
4332 12 Jun 08 martin 180         title="ID"
4332 12 Jun 08 martin 181         sortable="true"
4332 12 Jun 08 martin 182         filterable="true"
4332 12 Jun 08 martin 183         exportable="true"
4332 12 Jun 08 martin 184       />
4332 12 Jun 08 martin 185       <tbl:columndef 
4698 10 Dec 08 nicklas 186         id="entryDate"
4698 10 Dec 08 nicklas 187         property="entryDate"
4698 10 Dec 08 nicklas 188         datatype="date"
4698 10 Dec 08 nicklas 189         title="Registered"
4698 10 Dec 08 nicklas 190         sortable="true" 
4698 10 Dec 08 nicklas 191         filterable="true"
4698 10 Dec 08 nicklas 192         exportable="true"
4698 10 Dec 08 nicklas 193         formatter="<%=dateFormatter%>"
4698 10 Dec 08 nicklas 194       />
4698 10 Dec 08 nicklas 195       <tbl:columndef 
1969 10 Feb 06 nicklas 196         id="login"
4387 11 Aug 08 nicklas 197         clazz="uniquecol"
1969 10 Feb 06 nicklas 198         property="login"
1969 10 Feb 06 nicklas 199         datatype="string"
1969 10 Feb 06 nicklas 200         title="Login"
1969 10 Feb 06 nicklas 201         sortable="true" 
1969 10 Feb 06 nicklas 202         filterable="true"
1969 10 Feb 06 nicklas 203         exportable="true"
1969 10 Feb 06 nicklas 204       />
1969 10 Feb 06 nicklas 205       <tbl:columndef 
1969 10 Feb 06 nicklas 206         id="systemId"
4387 11 Aug 08 nicklas 207         clazz="uniquecol"
1969 10 Feb 06 nicklas 208         property="systemId"
1969 10 Feb 06 nicklas 209         datatype="string"
1969 10 Feb 06 nicklas 210         title="System ID"
1969 10 Feb 06 nicklas 211         sortable="true"
1969 10 Feb 06 nicklas 212         filterable="true"
1969 10 Feb 06 nicklas 213         exportable="true"
1969 10 Feb 06 nicklas 214       />
1969 10 Feb 06 nicklas 215       <tbl:columndef 
1969 10 Feb 06 nicklas 216         id="externalId"
4387 11 Aug 08 nicklas 217         clazz="uniquecol"
1969 10 Feb 06 nicklas 218         property="externalId"
1969 10 Feb 06 nicklas 219         datatype="string"
1969 10 Feb 06 nicklas 220         title="External ID"
1969 10 Feb 06 nicklas 221         sortable="true" 
1969 10 Feb 06 nicklas 222         filterable="true"
1969 10 Feb 06 nicklas 223         exportable="true"
1969 10 Feb 06 nicklas 224       />
1969 10 Feb 06 nicklas 225       <tbl:columndef 
1969 10 Feb 06 nicklas 226         id="expirationDate"
1969 10 Feb 06 nicklas 227         property="expirationDate"
1969 10 Feb 06 nicklas 228         datatype="date"
1969 10 Feb 06 nicklas 229         title="Expiration date"
1969 10 Feb 06 nicklas 230         sortable="true" 
1969 10 Feb 06 nicklas 231         filterable="true"
1969 10 Feb 06 nicklas 232         exportable="true"
2942 22 Nov 06 nicklas 233         formatter="<%=dateFormatter%>"
1969 10 Feb 06 nicklas 234       />
1969 10 Feb 06 nicklas 235       <tbl:columndef 
1969 10 Feb 06 nicklas 236         id="disabled"
1969 10 Feb 06 nicklas 237         property="disabled"
1969 10 Feb 06 nicklas 238         datatype="boolean"
1969 10 Feb 06 nicklas 239         title="Disabled"
1969 10 Feb 06 nicklas 240         sortable="true" 
1969 10 Feb 06 nicklas 241         filterable="true"
1969 10 Feb 06 nicklas 242         exportable="true"
1969 10 Feb 06 nicklas 243       />
1969 10 Feb 06 nicklas 244       <tbl:columndef 
1969 10 Feb 06 nicklas 245         id="multiuserAccount"
1969 10 Feb 06 nicklas 246         property="multiuserAccount"
1969 10 Feb 06 nicklas 247         datatype="boolean"
1969 10 Feb 06 nicklas 248         title="Multi-user account"
1969 10 Feb 06 nicklas 249         sortable="true" 
1969 10 Feb 06 nicklas 250         filterable="true"
1969 10 Feb 06 nicklas 251         exportable="true"
1969 10 Feb 06 nicklas 252       />
1969 10 Feb 06 nicklas 253       <tbl:columndef 
7404 04 Oct 17 nicklas 254         id="useDeviceVerification"
7404 04 Oct 17 nicklas 255         property="useDeviceVerification"
7404 04 Oct 17 nicklas 256         datatype="boolean"
7410 09 Oct 17 nicklas 257         title="2-factor login"
7404 04 Oct 17 nicklas 258         sortable="true" 
7404 04 Oct 17 nicklas 259         filterable="true"
7404 04 Oct 17 nicklas 260         exportable="true"
7404 04 Oct 17 nicklas 261       />
7404 04 Oct 17 nicklas 262       <tbl:columndef 
2434 27 Jun 06 nicklas 263         id="groups"
2434 27 Jun 06 nicklas 264         title="Groups"
4609 28 Oct 08 nicklas 265         property="&groups(name)"
4609 28 Oct 08 nicklas 266         datatype="string"
4609 28 Oct 08 nicklas 267         filterable="true"
4906 24 Apr 09 martin 268         exportable="true"
2434 27 Jun 06 nicklas 269       />
2434 27 Jun 06 nicklas 270       <tbl:columndef
2434 27 Jun 06 nicklas 271         id="roles"
2434 27 Jun 06 nicklas 272         title="Roles"
4609 28 Oct 08 nicklas 273         property="&roles(name)"
4609 28 Oct 08 nicklas 274         datatype="string"
4609 28 Oct 08 nicklas 275         filterable="true"
4906 24 Apr 09 martin 276         exportable="true"
2434 27 Jun 06 nicklas 277       />
2434 27 Jun 06 nicklas 278       <tbl:columndef 
1969 10 Feb 06 nicklas 279         id="organisation"
1969 10 Feb 06 nicklas 280         property="organisation"
1969 10 Feb 06 nicklas 281         datatype="string"
1969 10 Feb 06 nicklas 282         title="Organisation"
1969 10 Feb 06 nicklas 283         sortable="true" 
1969 10 Feb 06 nicklas 284         filterable="true"
1969 10 Feb 06 nicklas 285         exportable="true"
1969 10 Feb 06 nicklas 286       />
1969 10 Feb 06 nicklas 287       <tbl:columndef 
1969 10 Feb 06 nicklas 288         id="address"
1969 10 Feb 06 nicklas 289         property="address"
1969 10 Feb 06 nicklas 290         datatype="string"
1969 10 Feb 06 nicklas 291         title="Address"
1969 10 Feb 06 nicklas 292         sortable="true" 
1969 10 Feb 06 nicklas 293         filterable="true"
1969 10 Feb 06 nicklas 294         exportable="true"
1969 10 Feb 06 nicklas 295       />
1969 10 Feb 06 nicklas 296       <tbl:columndef 
1969 10 Feb 06 nicklas 297         id="email"
1969 10 Feb 06 nicklas 298         property="email"
1969 10 Feb 06 nicklas 299         datatype="string"
1969 10 Feb 06 nicklas 300         title="Email"
1969 10 Feb 06 nicklas 301         sortable="true" 
1969 10 Feb 06 nicklas 302         filterable="true"
1969 10 Feb 06 nicklas 303         exportable="true"
1969 10 Feb 06 nicklas 304       />
1969 10 Feb 06 nicklas 305       <tbl:columndef 
1969 10 Feb 06 nicklas 306         id="phone"
1969 10 Feb 06 nicklas 307         property="phone"
1969 10 Feb 06 nicklas 308         datatype="string"
1969 10 Feb 06 nicklas 309         title="Phone"
1969 10 Feb 06 nicklas 310         sortable="true" 
1969 10 Feb 06 nicklas 311         filterable="true"
1969 10 Feb 06 nicklas 312         exportable="true"
1969 10 Feb 06 nicklas 313       />
1969 10 Feb 06 nicklas 314       <tbl:columndef 
1969 10 Feb 06 nicklas 315         id="fax"
1969 10 Feb 06 nicklas 316         property="fax"
1969 10 Feb 06 nicklas 317         datatype="string"
1969 10 Feb 06 nicklas 318         title="Fax"
1969 10 Feb 06 nicklas 319         sortable="true" 
1969 10 Feb 06 nicklas 320         filterable="true"
1969 10 Feb 06 nicklas 321         exportable="true"
1969 10 Feb 06 nicklas 322       />
1969 10 Feb 06 nicklas 323       <tbl:columndef 
1969 10 Feb 06 nicklas 324         id="url"
1969 10 Feb 06 nicklas 325         property="url"
1969 10 Feb 06 nicklas 326         datatype="string"
1969 10 Feb 06 nicklas 327         title="Url"
1969 10 Feb 06 nicklas 328         sortable="true" 
1969 10 Feb 06 nicklas 329         filterable="true"
1969 10 Feb 06 nicklas 330         exportable="true"
1969 10 Feb 06 nicklas 331       />
3535 28 Jun 07 martin 332       <%
3535 28 Jun 07 martin 333       if (extendedProperties != null)
3535 28 Jun 07 martin 334       {
3535 28 Jun 07 martin 335         for (ExtendedProperty ep : extendedProperties)
3535 28 Jun 07 martin 336         {
3535 28 Jun 07 martin 337           String name = ep.getName();
3535 28 Jun 07 martin 338           %>
3535 28 Jun 07 martin 339           <tbl:columndef
3535 28 Jun 07 martin 340             id="<%=name%>"
3535 28 Jun 07 martin 341             property="<%=name%>"
3535 28 Jun 07 martin 342             datatype="<%=ep.getType().getStringValue()%>"
3535 28 Jun 07 martin 343             title="<%=HTML.encodeTags(ep.getTitle())%>"
3535 28 Jun 07 martin 344             sortable="true"
3535 28 Jun 07 martin 345             filterable="true"
3535 28 Jun 07 martin 346             exportable="true"
3535 28 Jun 07 martin 347             formatter="<%=FormatterFactory.getExtendedPropertyFormatter(sc, ep)%>"
3535 28 Jun 07 martin 348           />
3535 28 Jun 07 martin 349           <%
3535 28 Jun 07 martin 350         }
3535 28 Jun 07 martin 351       }
3535 28 Jun 07 martin 352       %>
1969 10 Feb 06 nicklas 353       <tbl:columndef 
1969 10 Feb 06 nicklas 354         id="quota"
1969 10 Feb 06 nicklas 355         property="quota.name"
1969 10 Feb 06 nicklas 356         datatype="string"
1969 10 Feb 06 nicklas 357         title="Quota"
1969 10 Feb 06 nicklas 358         sortable="true" 
1969 10 Feb 06 nicklas 359         filterable="true"
1969 10 Feb 06 nicklas 360         exportable="true"
1969 10 Feb 06 nicklas 361       />
1969 10 Feb 06 nicklas 362       <tbl:columndef 
1969 10 Feb 06 nicklas 363         id="quotagroup"
1969 10 Feb 06 nicklas 364         property="quotaGroup.name"
1969 10 Feb 06 nicklas 365         datatype="string"
1969 10 Feb 06 nicklas 366         title="Quota group"
1969 10 Feb 06 nicklas 367         sortable="true" 
1969 10 Feb 06 nicklas 368         filterable="true"
1969 10 Feb 06 nicklas 369         exportable="true"
1969 10 Feb 06 nicklas 370       />
1969 10 Feb 06 nicklas 371       <tbl:columndef 
1969 10 Feb 06 nicklas 372         id="description"
1969 10 Feb 06 nicklas 373         property="description"
1969 10 Feb 06 nicklas 374         datatype="string"
1969 10 Feb 06 nicklas 375         title="Description" 
1969 10 Feb 06 nicklas 376         sortable="true" 
1969 10 Feb 06 nicklas 377         filterable="true" 
1969 10 Feb 06 nicklas 378         exportable="true"
1969 10 Feb 06 nicklas 379       />
6030 28 Mar 12 nicklas 380       <tbl:columndef 
6030 28 Mar 12 nicklas 381         id="xt-columns" 
6030 28 Mar 12 nicklas 382         extensions="<%=columnsInvoker%>" 
6030 28 Mar 12 nicklas 383         jspcontext="<%=jspContext%>" 
6030 28 Mar 12 nicklas 384       />
6604 18 Nov 14 nicklas 385       <div class="panelgroup bg-filled-50 bottomborder">
5954 13 Feb 12 nicklas 386         <tbl:toolbar
5954 13 Feb 12 nicklas 387           subclass="bottomborder"
5954 13 Feb 12 nicklas 388           visible="<%=mode.hasToolbar()%>"
5954 13 Feb 12 nicklas 389           >
5954 13 Feb 12 nicklas 390           <tbl:button 
6223 15 Jan 13 nicklas 391             id="btnNewItem"
5954 13 Feb 12 nicklas 392             disabled="<%=!createPermission%>" 
5954 13 Feb 12 nicklas 393             image="new.png" 
5954 13 Feb 12 nicklas 394             title="New&hellip;" 
5954 13 Feb 12 nicklas 395             tooltip="<%=createPermission ? "Create new user" : "You do not have permission to create users"%>" 
5954 13 Feb 12 nicklas 396           />
5954 13 Feb 12 nicklas 397           <tbl:button 
6223 15 Jan 13 nicklas 398             id="btnDeleteItems"
5954 13 Feb 12 nicklas 399             disabled="<%=!deletePermission%>" 
5954 13 Feb 12 nicklas 400             image="delete.png" 
5954 13 Feb 12 nicklas 401             title="Delete" 
5954 13 Feb 12 nicklas 402             tooltip="<%=deletePermission ? "Delete the selected items" : "You do not have permission to delete users" %>" 
5954 13 Feb 12 nicklas 403           />
5954 13 Feb 12 nicklas 404           <tbl:button 
6223 15 Jan 13 nicklas 405             id="btnRestoreItems"
5954 13 Feb 12 nicklas 406             disabled="<%=!writePermission%>" 
5954 13 Feb 12 nicklas 407             image="restore.png" 
5954 13 Feb 12 nicklas 408             title="Restore" 
5954 13 Feb 12 nicklas 409             tooltip="<%=writePermission ? "Restore the selected (deleted) items" : "You do not have permission to edit users" %>" 
5954 13 Feb 12 nicklas 410           />
5954 13 Feb 12 nicklas 411           <tbl:button 
6223 15 Jan 13 nicklas 412             id="btnColumns"
5954 13 Feb 12 nicklas 413             image="columns.png" 
5954 13 Feb 12 nicklas 414             title="Columns&hellip;" 
5954 13 Feb 12 nicklas 415             tooltip="Show, hide and re-order columns" 
5954 13 Feb 12 nicklas 416           />
5954 13 Feb 12 nicklas 417           <tbl:button
6223 15 Jan 13 nicklas 418             id="btnDefaultMembership"
5954 13 Feb 12 nicklas 419             image="membership.png"
5954 13 Feb 12 nicklas 420             title="Default membership&hellip;"
5954 13 Feb 12 nicklas 421             tooltip="Specify groups and roles that are automtically assigned to new users"
5954 13 Feb 12 nicklas 422           />
5954 13 Feb 12 nicklas 423           <tbl:button
6223 15 Jan 13 nicklas 424             id="btnNewGroup"
5954 13 Feb 12 nicklas 425             image="add.png"
5954 13 Feb 12 nicklas 426             title="New group&hellip;"
5954 13 Feb 12 nicklas 427             tooltip="Create a new group with the selected users as members"
5954 13 Feb 12 nicklas 428             visible="<%=sc.hasPermission(Permission.CREATE, Item.GROUP)%>"
5954 13 Feb 12 nicklas 429           />
5954 13 Feb 12 nicklas 430           <tbl:button 
6223 15 Jan 13 nicklas 431             id="btnImport"
6223 15 Jan 13 nicklas 432             data-plugin-type="IMPORT"
5954 13 Feb 12 nicklas 433             image="import.png" 
5954 13 Feb 12 nicklas 434             title="Import&hellip;" 
5954 13 Feb 12 nicklas 435             tooltip="Import data" 
5954 13 Feb 12 nicklas 436             visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5954 13 Feb 12 nicklas 437           />
5954 13 Feb 12 nicklas 438           <tbl:button 
6223 15 Jan 13 nicklas 439             id="btnExport"
6223 15 Jan 13 nicklas 440             data-plugin-type="EXPORT"
5954 13 Feb 12 nicklas 441             image="export.png" 
5954 13 Feb 12 nicklas 442             title="Export&hellip;" 
5954 13 Feb 12 nicklas 443             tooltip="Export data" 
5954 13 Feb 12 nicklas 444             visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5954 13 Feb 12 nicklas 445           />
5954 13 Feb 12 nicklas 446           <tbl:button 
6223 15 Jan 13 nicklas 447             id="btnRunPlugin"
6223 15 Jan 13 nicklas 448             data-plugin-type="OTHER"
5954 13 Feb 12 nicklas 449             image="runplugin.png" 
5954 13 Feb 12 nicklas 450             title="Run plugin&hellip;" 
5954 13 Feb 12 nicklas 451             tooltip="Run a plugin" 
5954 13 Feb 12 nicklas 452             visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5954 13 Feb 12 nicklas 453           />
5954 13 Feb 12 nicklas 454           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 455             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5954 13 Feb 12 nicklas 456         </tbl:toolbar>
5954 13 Feb 12 nicklas 457         <tbl:panel>
6182 23 Oct 12 nicklas 458           <tbl:presetselector />
5954 13 Feb 12 nicklas 459           <tbl:navigator
5954 13 Feb 12 nicklas 460             page="<%=cc.getPage()%>" 
5954 13 Feb 12 nicklas 461             rowsperpage="<%=cc.getRowsPerPage()%>" 
5954 13 Feb 12 nicklas 462             totalrows="<%=users == null ? 0 : users.getTotalCount()%>" 
5954 13 Feb 12 nicklas 463             visible="<%=mode.hasNavigator()%>"
5954 13 Feb 12 nicklas 464           />
5954 13 Feb 12 nicklas 465         </tbl:panel>
5954 13 Feb 12 nicklas 466       </div>
1969 10 Feb 06 nicklas 467       <tbl:data>
5948 08 Feb 12 nicklas 468         <tbl:headers>
5948 08 Feb 12 nicklas 469           <tbl:headerrow>
7943 04 May 21 nicklas 470             <tbl:header clazz="row-index bg-filled-100" />
5948 08 Feb 12 nicklas 471             <tbl:columnheaders />
5948 08 Feb 12 nicklas 472           </tbl:headerrow>
6704 02 Feb 15 nicklas 473           <%
6704 02 Feb 15 nicklas 474           int numFilters = cc.getNumPropertyFilters();
6704 02 Feb 15 nicklas 475           int numRows = cc.getFilterRows();
6704 02 Feb 15 nicklas 476           for (int filterNo = 0; filterNo < numRows; filterNo++)
6704 02 Feb 15 nicklas 477           {
6704 02 Feb 15 nicklas 478             boolean lastRow = filterNo == numRows-1;
6704 02 Feb 15 nicklas 479             %>
6704 02 Feb 15 nicklas 480             <tbl:headerrow>
7943 04 May 21 nicklas 481               <tbl:header subclass="row-index bg-filled-100">
7943 04 May 21 nicklas 482                 <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 483                   <div class="index"></div>
7943 04 May 21 nicklas 484                   <div class="check">
7943 04 May 21 nicklas 485                     <base:icon 
7943 04 May 21 nicklas 486                       subclass="link table-check"
7943 04 May 21 nicklas 487                       image="check_uncheck.png" 
7943 04 May 21 nicklas 488                       tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)" 
7943 04 May 21 nicklas 489                       visible="<%=lastRow && mode.hasCheck()%>"
7943 04 May 21 nicklas 490                     />
7943 04 May 21 nicklas 491                   </div>
7943 04 May 21 nicklas 492                   <div class="icons">
7943 04 May 21 nicklas 493                     <base:icon
7943 04 May 21 nicklas 494                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 495                       image="add.png"
7943 04 May 21 nicklas 496                       tooltip="Add extra filter row"
7943 04 May 21 nicklas 497                       visible="<%=lastRow%>"
7943 04 May 21 nicklas 498                     /><base:icon
7943 04 May 21 nicklas 499                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 500                       image="remove.png"
7943 04 May 21 nicklas 501                       tooltip="Remove this filter row"
7943 04 May 21 nicklas 502                       visible="<%=numRows > 1 || numFilters > 0 %>"
7943 04 May 21 nicklas 503                       data-remove-row="<%=filterNo%>"
7943 04 May 21 nicklas 504                     />
7943 04 May 21 nicklas 505                   </div>
7943 04 May 21 nicklas 506                 </div>
6704 02 Feb 15 nicklas 507               </tbl:header>
6704 02 Feb 15 nicklas 508               <tbl:propertyfilter row="<%=filterNo%>" />
6704 02 Feb 15 nicklas 509             </tbl:headerrow>
6704 02 Feb 15 nicklas 510             <%
6704 02 Feb 15 nicklas 511           }
6704 02 Feb 15 nicklas 512           %>
7913 22 Feb 21 nicklas 513           <tbl:columnsubtitles />
5948 08 Feb 12 nicklas 514         </tbl:headers>
5948 08 Feb 12 nicklas 515         <tbl:rows>
1969 10 Feb 06 nicklas 516           <%
5954 13 Feb 12 nicklas 517           if (cc.getMessage() != null)
5954 13 Feb 12 nicklas 518           {
5954 13 Feb 12 nicklas 519             %>
6604 18 Nov 14 nicklas 520             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 521               <div class="messagecontainer error"><%=cc.getMessage()%></div>
5954 13 Feb 12 nicklas 522             </tbl:panel>
5954 13 Feb 12 nicklas 523             <%
5954 13 Feb 12 nicklas 524             cc.setMessage(null);
5954 13 Feb 12 nicklas 525           }
1969 10 Feb 06 nicklas 526           int index = cc.getPage()*cc.getRowsPerPage();
1969 10 Feb 06 nicklas 527           int selectedItemId = cc.getId();
2029 20 Feb 06 nicklas 528           if (users != null)
2500 09 Aug 06 martin 529           {            
2029 20 Feb 06 nicklas 530             while (users.hasNext())
2029 20 Feb 06 nicklas 531             {
2029 20 Feb 06 nicklas 532               User item = users.next();
2029 20 Feb 06 nicklas 533               int itemId = item.getId();
2029 20 Feb 06 nicklas 534               String name = HTML.encodeTags(item.getName());
2500 09 Aug 06 martin 535               String tooltip = mode.isSelectionMode() ? 
2500 09 Aug 06 martin 536                   "Select this item" : "View this item" + (writePermission ? " (use CTRL, ALT or SHIFT to edit)" : "");
6221 10 Jan 13 nicklas 537               
2029 20 Feb 06 nicklas 538               index++;
2029 20 Feb 06 nicklas 539               numListed++;
2029 20 Feb 06 nicklas 540               %>
2029 20 Feb 06 nicklas 541               <tbl:row>
7943 04 May 21 nicklas 542                 <tbl:header clazz="row-index bg-filled-100">
7943 04 May 21 nicklas 543                   <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 544                     <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
7943 04 May 21 nicklas 545                     <div class="check">
7943 04 May 21 nicklas 546                       <base:input
7943 04 May 21 nicklas 547                         type="checkbox" 
7943 04 May 21 nicklas 548                         name="<%=itemId%>" 
7943 04 May 21 nicklas 549                         value="<%=itemId%>" 
7943 04 May 21 nicklas 550                         title="<%=name%>" 
7943 04 May 21 nicklas 551                         checked="<%=cc.getSelected().contains(itemId)%>"
7943 04 May 21 nicklas 552                         visible="<%=mode.hasCheck()%>"
7943 04 May 21 nicklas 553                       />
7943 04 May 21 nicklas 554                       <base:input 
7943 04 May 21 nicklas 555                         type="radio" 
7943 04 May 21 nicklas 556                         name="item_id" 
7943 04 May 21 nicklas 557                         value="<%=itemId%>" 
7943 04 May 21 nicklas 558                         title="<%=name%>" 
7943 04 May 21 nicklas 559                         checked="<%=selectedItemId == itemId%>"
7943 04 May 21 nicklas 560                         visible="<%=mode.hasRadio()%>"
7943 04 May 21 nicklas 561                       />
7943 04 May 21 nicklas 562                     </div>
7943 04 May 21 nicklas 563                     <div class="icons">
7943 04 May 21 nicklas 564                       <base:icon 
7943 04 May 21 nicklas 565                         image="deleted.png"
7943 04 May 21 nicklas 566                         id="<%="delete."+itemId %>"
7943 04 May 21 nicklas 567                         subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
7943 04 May 21 nicklas 568                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 569                         tooltip="This item has been scheduled for deletion" 
7943 04 May 21 nicklas 570                         visible="<%=item.isRemoved()%>"
7943 04 May 21 nicklas 571                       /><base:icon
7943 04 May 21 nicklas 572                         image="systemitem.png"
7943 04 May 21 nicklas 573                         tooltip="This item is a system item"
7943 04 May 21 nicklas 574                         visible="<%=item.isSystemItem()%>" 
7943 04 May 21 nicklas 575                       /><base:icon
7943 04 May 21 nicklas 576                         image="login.png"
7943 04 May 21 nicklas 577                         id="<%="impersonate."+itemId %>"
7943 04 May 21 nicklas 578                         tooltip="Login as this user"
7943 04 May 21 nicklas 579                         subclass="auto-init"
7943 04 May 21 nicklas 580                         data-auto-init="impersonate"
7943 04 May 21 nicklas 581                         data-item-id="<%=itemId %>"
7943 04 May 21 nicklas 582                         visible="<%=impersonatePermission%>"
7943 04 May 21 nicklas 583                       /><base:icon
7943 04 May 21 nicklas 584                         image="copy.png"
7943 04 May 21 nicklas 585                         id="<%="clone."+itemId %>"
7943 04 May 21 nicklas 586                         tooltip="Create a new user using settings from this user as a template"
7943 04 May 21 nicklas 587                         subclass="auto-init"
7943 04 May 21 nicklas 588                         data-auto-init="clone"
7943 04 May 21 nicklas 589                         data-item-id="<%=itemId %>"
7943 04 May 21 nicklas 590                         visible="<%=createPermission%>"
7943 04 May 21 nicklas 591                       />
7943 04 May 21 nicklas 592                     </div>
7943 04 May 21 nicklas 593                   </div>
7943 04 May 21 nicklas 594                 </tbl:header>
6223 15 Jan 13 nicklas 595                 <tbl:cell column="name"><div 
6223 15 Jan 13 nicklas 596                   class="link table-item"
6223 15 Jan 13 nicklas 597                   data-item-id="<%=itemId%>"
6223 15 Jan 13 nicklas 598                   data-no-edit="<%=writePermission ? 0 : 1 %>" 
6223 15 Jan 13 nicklas 599                   tabindex="0"
2434 27 Jun 06 nicklas 600                   title="<%=tooltip%>"><%=name%></div></tbl:cell>
4332 12 Jun 08 martin 601                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
4698 10 Dec 08 nicklas 602                 <tbl:cell column="entryDate" value="<%=item.getEntryDate()%>" />
2029 20 Feb 06 nicklas 603                 <tbl:cell column="login"><%=HTML.encodeTags(item.getLogin())%></tbl:cell>
2029 20 Feb 06 nicklas 604                 <tbl:cell column="systemId"><%=Values.getString(item.getSystemId())%></tbl:cell>
2029 20 Feb 06 nicklas 605                 <tbl:cell column="externalId"><%=HTML.encodeTags(item.getExternalId())%></tbl:cell>
2942 22 Nov 06 nicklas 606                 <tbl:cell column="expirationDate" value="<%=item.getExpirationDate()%>" />
2029 20 Feb 06 nicklas 607                 <tbl:cell column="disabled"><%=item.isDisabled() ? "yes" : "no" %></tbl:cell>
2029 20 Feb 06 nicklas 608                 <tbl:cell column="multiuserAccount"><%=item.isMultiuserAccount() ? "yes" : "no" %></tbl:cell>
7404 04 Oct 17 nicklas 609                 <tbl:cell column="useDeviceVerification"><%=item.getUseDeviceVerification() ? "yes" : "no" %></tbl:cell>
2434 27 Jun 06 nicklas 610                 <tbl:cell column="groups">
2434 27 Jun 06 nicklas 611                   <%
2434 27 Jun 06 nicklas 612                   groupQuery.setParameter("user", itemId, Type.INT);
2434 27 Jun 06 nicklas 613                   try
2434 27 Jun 06 nicklas 614                   {
2434 27 Jun 06 nicklas 615                     String separator = "";
2434 27 Jun 06 nicklas 616                     for (Group g : groupQuery.list(dc))
2434 27 Jun 06 nicklas 617                     {
2434 27 Jun 06 nicklas 618                       out.write(separator);
2434 27 Jun 06 nicklas 619                       if (mode.hasPropertyLink())
2434 27 Jun 06 nicklas 620                       {
2434 27 Jun 06 nicklas 621                         out.write(Base.getLinkedName(ID, g, false, mode.hasEditLink()));
2434 27 Jun 06 nicklas 622                       }
2434 27 Jun 06 nicklas 623                       else
2434 27 Jun 06 nicklas 624                       {
2434 27 Jun 06 nicklas 625                         out.write(HTML.encodeTags(g.getName()));
2434 27 Jun 06 nicklas 626                       }
2434 27 Jun 06 nicklas 627                       separator = ", ";
2434 27 Jun 06 nicklas 628                     }
2434 27 Jun 06 nicklas 629                   }
2434 27 Jun 06 nicklas 630                   catch (Throwable t)
2434 27 Jun 06 nicklas 631                   {
2434 27 Jun 06 nicklas 632                     %>
2434 27 Jun 06 nicklas 633                     <div class="error"><%=t.getMessage()%></div>
2434 27 Jun 06 nicklas 634                     <%
2434 27 Jun 06 nicklas 635                   }
2434 27 Jun 06 nicklas 636                   %>
2434 27 Jun 06 nicklas 637                 </tbl:cell>
2434 27 Jun 06 nicklas 638                 <tbl:cell column="roles">
2434 27 Jun 06 nicklas 639                   <%
2434 27 Jun 06 nicklas 640                   roleQuery.setParameter("user", itemId, Type.INT);
2434 27 Jun 06 nicklas 641                   try
2434 27 Jun 06 nicklas 642                   {
2434 27 Jun 06 nicklas 643                     String separator = "";
2434 27 Jun 06 nicklas 644                     for (Role r : roleQuery.list(dc))
2434 27 Jun 06 nicklas 645                     {
2434 27 Jun 06 nicklas 646                       out.write(separator);
2434 27 Jun 06 nicklas 647                       if (mode.hasPropertyLink())
2434 27 Jun 06 nicklas 648                       {
2434 27 Jun 06 nicklas 649                         out.write(Base.getLinkedName(ID, r, false, mode.hasEditLink()));
2434 27 Jun 06 nicklas 650                       }
2434 27 Jun 06 nicklas 651                       else
2434 27 Jun 06 nicklas 652                       {
2434 27 Jun 06 nicklas 653                         out.write(HTML.encodeTags(r.getName()));
2434 27 Jun 06 nicklas 654                       }
2434 27 Jun 06 nicklas 655                       separator = ", ";
2434 27 Jun 06 nicklas 656                     }
2434 27 Jun 06 nicklas 657                   }
2434 27 Jun 06 nicklas 658                   catch (Throwable t)
2434 27 Jun 06 nicklas 659                   {
2434 27 Jun 06 nicklas 660                     %>
2434 27 Jun 06 nicklas 661                     <div class="error"><%=t.getMessage()%></div>
2434 27 Jun 06 nicklas 662                     <%
2434 27 Jun 06 nicklas 663                   }
2434 27 Jun 06 nicklas 664                   %>
2434 27 Jun 06 nicklas 665                 </tbl:cell>
2029 20 Feb 06 nicklas 666                 <tbl:cell column="organisation"><%=HTML.encodeTags(item.getOrganisation())%></tbl:cell>
2029 20 Feb 06 nicklas 667                 <tbl:cell column="address"><%=HTML.encodeTags(item.getAddress())%></tbl:cell>
2029 20 Feb 06 nicklas 668                 <tbl:cell column="email"><%=HTML.encodeTags(item.getEmail())%></tbl:cell>
2029 20 Feb 06 nicklas 669                 <tbl:cell column="phone"><%=HTML.encodeTags(item.getPhone())%></tbl:cell>
2029 20 Feb 06 nicklas 670                 <tbl:cell column="fax"><%=HTML.encodeTags(item.getFax())%></tbl:cell>
3535 28 Jun 07 martin 671                 <tbl:cell column="url"><%=HTML.encodeTags(item.getUrl())%></tbl:cell><%
3535 28 Jun 07 martin 672                 if (extendedProperties != null)
3535 28 Jun 07 martin 673                 {
3535 28 Jun 07 martin 674                   for (ExtendedProperty ep : extendedProperties)
3535 28 Jun 07 martin 675                   {
3535 28 Jun 07 martin 676                     name = ep.getName();
3535 28 Jun 07 martin 677                     %>
3535 28 Jun 07 martin 678                     <tbl:cell column="<%=name%>"><tbl:cellvalue value="<%=item.getExtended(name)%>" /></tbl:cell>
3535 28 Jun 07 martin 679                     <%
3535 28 Jun 07 martin 680                   }
3535 28 Jun 07 martin 681                 }
3535 28 Jun 07 martin 682                 %>
2354 07 Jun 06 martin 683                 <tbl:cell column="quota"
2354 07 Jun 06 martin 684                   ><base:propertyvalue 
2354 07 Jun 06 martin 685                     item="<%=item%>" 
2354 07 Jun 06 martin 686                     property="quota"
2354 07 Jun 06 martin 687                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 688                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 689                   /></tbl:cell>
2354 07 Jun 06 martin 690                 <tbl:cell column="quotagroup"
2354 07 Jun 06 martin 691                   ><base:propertyvalue 
2354 07 Jun 06 martin 692                     item="<%=item%>" 
2354 07 Jun 06 martin 693                     property="quotaGroup"
2354 07 Jun 06 martin 694                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 695                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 696                   /></tbl:cell>
2029 20 Feb 06 nicklas 697                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
6030 28 Mar 12 nicklas 698                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6030 28 Mar 12 nicklas 699                   <tbl:cell column="xt-columns" />
6030 28 Mar 12 nicklas 700                 </tbl:xt-cells>
2029 20 Feb 06 nicklas 701               </tbl:row>
2029 20 Feb 06 nicklas 702               <%
2029 20 Feb 06 nicklas 703               }
1969 10 Feb 06 nicklas 704             }
5954 13 Feb 12 nicklas 705           if (numListed == 0)
5954 13 Feb 12 nicklas 706           {
5954 13 Feb 12 nicklas 707             %>
6604 18 Nov 14 nicklas 708             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 709               <div class="messagecontainer note">
5954 13 Feb 12 nicklas 710               <%=users == null || users.getTotalCount() == 0 ? "No users were found" : "No users on this page. Please select another page!" %>
5954 13 Feb 12 nicklas 711               </div>
5954 13 Feb 12 nicklas 712             </tbl:panel>
5954 13 Feb 12 nicklas 713             <%
5954 13 Feb 12 nicklas 714           }
1969 10 Feb 06 nicklas 715           %>
5954 13 Feb 12 nicklas 716         </tbl:rows>
1969 10 Feb 06 nicklas 717       </tbl:data>
1969 10 Feb 06 nicklas 718     </tbl:table>
5954 13 Feb 12 nicklas 719     </div>
5954 13 Feb 12 nicklas 720     
5951 09 Feb 12 nicklas 721     <base:buttongroup subclass="dialogbuttons">
6223 15 Jan 13 nicklas 722       <base:button id="btnOk" title="Ok" visible="<%=mode.hasOkButton()%>" />
6223 15 Jan 13 nicklas 723       <base:button id="close" title="Cancel" visible="<%=mode.hasCancelButton()%>" />
6223 15 Jan 13 nicklas 724       <base:button id="close" title="Close" visible="<%=mode.hasCloseButton()%>" />
1969 10 Feb 06 nicklas 725     </base:buttongroup>
5951 09 Feb 12 nicklas 726     
1969 10 Feb 06 nicklas 727   </base:body>
1969 10 Feb 06 nicklas 728   </base:page>
1969 10 Feb 06 nicklas 729   <%
1969 10 Feb 06 nicklas 730 }
1969 10 Feb 06 nicklas 731 finally
1969 10 Feb 06 nicklas 732 {
1969 10 Feb 06 nicklas 733   if (users != null) users.close();
1969 10 Feb 06 nicklas 734   if (dc != null) dc.close();
1969 10 Feb 06 nicklas 735 }
3675 16 Aug 07 jari 736 %>