www/admin/groups/view_group.jsp

Code
Comments
Other
Rev Date Author Line
1959 09 Feb 06 nicklas 1 <%-- $Id$
1959 09 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 Nicklas Nordborg
1959 09 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/
1959 09 Feb 06 nicklas 8
1959 09 Feb 06 nicklas 9   BASE is free software; you can redistribute it and/or
1959 09 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
1959 09 Feb 06 nicklas 12   of the License, or (at your option) any later version.
1959 09 Feb 06 nicklas 13
1959 09 Feb 06 nicklas 14   BASE is distributed in the hope that it will be useful,
1959 09 Feb 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
1959 09 Feb 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1959 09 Feb 06 nicklas 17   GNU General Public License for more details.
1959 09 Feb 06 nicklas 18
1959 09 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/>.
1959 09 Feb 06 nicklas 21   ------------------------------------------------------------------
1959 09 Feb 06 nicklas 22
1959 09 Feb 06 nicklas 23   @author Nicklas
1959 09 Feb 06 nicklas 24   @version 2.0
1959 09 Feb 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1959 09 Feb 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
1959 09 Feb 06 nicklas 28   import="net.sf.basedb.core.DbControl"
1959 09 Feb 06 nicklas 29   import="net.sf.basedb.core.SystemItems"
1959 09 Feb 06 nicklas 30   import="net.sf.basedb.core.Item"
1959 09 Feb 06 nicklas 31   import="net.sf.basedb.core.ItemContext"
1959 09 Feb 06 nicklas 32   import="net.sf.basedb.core.Permission"
1959 09 Feb 06 nicklas 33   import="net.sf.basedb.core.Group"
1959 09 Feb 06 nicklas 34   import="net.sf.basedb.core.Quota"
1959 09 Feb 06 nicklas 35   import="net.sf.basedb.core.User"
1959 09 Feb 06 nicklas 36   import="net.sf.basedb.core.PermissionDeniedException"
1959 09 Feb 06 nicklas 37   import="net.sf.basedb.core.PluginDefinition"
1959 09 Feb 06 nicklas 38   import="net.sf.basedb.core.ItemQuery"
1959 09 Feb 06 nicklas 39   import="net.sf.basedb.core.ItemResultList"
1959 09 Feb 06 nicklas 40   import="net.sf.basedb.core.Include"
1959 09 Feb 06 nicklas 41   import="net.sf.basedb.core.query.Orders"
1959 09 Feb 06 nicklas 42   import="net.sf.basedb.core.query.Hql"
1959 09 Feb 06 nicklas 43   import="net.sf.basedb.core.plugin.GuiContext"
1959 09 Feb 06 nicklas 44   import="net.sf.basedb.core.plugin.Plugin"
1959 09 Feb 06 nicklas 45   import="net.sf.basedb.clients.web.Base"
2386 15 Jun 06 martin 46   import="net.sf.basedb.clients.web.PermissionUtil"
1959 09 Feb 06 nicklas 47   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 48   import="net.sf.basedb.util.Values"
4698 10 Dec 08 nicklas 49   import="net.sf.basedb.util.formatter.Formatter"
4698 10 Dec 08 nicklas 50   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4886 03 Apr 09 nicklas 51   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4886 03 Apr 09 nicklas 52   import="net.sf.basedb.clients.web.extensions.JspContext"
4886 03 Apr 09 nicklas 53   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 54   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4886 03 Apr 09 nicklas 55   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
4886 03 Apr 09 nicklas 56   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
4698 10 Dec 08 nicklas 57   import="java.util.Date"
1959 09 Feb 06 nicklas 58   import="java.util.Map"
1959 09 Feb 06 nicklas 59 %>
1959 09 Feb 06 nicklas 60 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1959 09 Feb 06 nicklas 61 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
1959 09 Feb 06 nicklas 62 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
1959 09 Feb 06 nicklas 63 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
4886 03 Apr 09 nicklas 64 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1959 09 Feb 06 nicklas 65 <%!
1959 09 Feb 06 nicklas 66   private static final Item itemType = Item.GROUP;
1959 09 Feb 06 nicklas 67   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
1959 09 Feb 06 nicklas 68 %>
1959 09 Feb 06 nicklas 69 <%
1959 09 Feb 06 nicklas 70 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
1959 09 Feb 06 nicklas 71 final String ID = sc.getId();
1959 09 Feb 06 nicklas 72 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1959 09 Feb 06 nicklas 73 final int itemId = cc.getId();
1959 09 Feb 06 nicklas 74 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 75 final DbControl dc = sc.newDbControl(":View "+itemType);
1959 09 Feb 06 nicklas 76 try
1959 09 Feb 06 nicklas 77 {
4698 10 Dec 08 nicklas 78   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
1959 09 Feb 06 nicklas 79   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
1959 09 Feb 06 nicklas 80
1959 09 Feb 06 nicklas 81   String title = null;
1959 09 Feb 06 nicklas 82   Group group = Group.getById(dc, itemId);
1959 09 Feb 06 nicklas 83   
1959 09 Feb 06 nicklas 84   final boolean writePermission = group.hasPermission(Permission.WRITE);
1959 09 Feb 06 nicklas 85   final boolean deletePermission = group.hasPermission(Permission.DELETE);
4003 26 Nov 07 nicklas 86   final boolean isRemoved = group.isRemoved();
4003 26 Nov 07 nicklas 87   final boolean isUsed = isRemoved && group.isUsed();
4003 26 Nov 07 nicklas 88   final boolean deletePermanentlyPermission = deletePermission && !isUsed;
4886 03 Apr 09 nicklas 89   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, group);
7604 25 Feb 19 nicklas 90   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
1959 09 Feb 06 nicklas 91   %>
6224 15 Jan 13 nicklas 92   <base:page title="<%=title%>" id="view-page">
6322 11 Sep 13 nicklas 93   <base:head scripts="table.js,tabcontrol-2.js,~groups.js" styles="toolbar.css,table.css,headertabcontrol.css,path.css">
4886 03 Apr 09 nicklas 94     <ext:scripts context="<%=jspContext%>" />
4886 03 Apr 09 nicklas 95     <ext:stylesheets context="<%=jspContext%>" />
1959 09 Feb 06 nicklas 96   </base:head>
1959 09 Feb 06 nicklas 97   <base:body>
5941 01 Feb 12 nicklas 98     <p:path><p:pathelement 
5941 01 Feb 12 nicklas 99       title="Groups" href="<%="index.jsp?ID="+ID%>" 
5941 01 Feb 12 nicklas 100       /><p:pathelement title="<%=HTML.encodeTags(group.getName())%>" 
5941 01 Feb 12 nicklas 101       /></p:path>
6224 15 Jan 13 nicklas 102       
6224 15 Jan 13 nicklas 103     <div id="page-data" data-item-id="<%=itemId%>"></div>
1959 09 Feb 06 nicklas 104     
5941 01 Feb 12 nicklas 105     <t:tabcontrol 
5941 01 Feb 12 nicklas 106       id="main" 
5941 01 Feb 12 nicklas 107       subclass="content mastertabcontrol" 
5941 01 Feb 12 nicklas 108       active="properties">
1959 09 Feb 06 nicklas 109     <t:tab id="properties" title="Properties">
5941 01 Feb 12 nicklas 110       <div>
5941 01 Feb 12 nicklas 111       <table class="fullform bottomborder">
5941 01 Feb 12 nicklas 112       <tr>
5941 01 Feb 12 nicklas 113         <th class="itemstatus">
4003 26 Nov 07 nicklas 114           <base:icon 
6224 15 Jan 13 nicklas 115             id="btnDeletePermanently"
5946 03 Feb 12 nicklas 116             image="deleted.png"
5941 01 Feb 12 nicklas 117             tooltip="This item has been flagged for deletion. Click to delete it now."
5941 01 Feb 12 nicklas 118             enabled="<%=deletePermanentlyPermission %>"
5941 01 Feb 12 nicklas 119             visible="<%=isRemoved%>" 
5941 01 Feb 12 nicklas 120           />
6224 15 Jan 13 nicklas 121           <base:icon 
6224 15 Jan 13 nicklas 122             id="btnUsingItems"
6224 15 Jan 13 nicklas 123             image="used.png" 
5941 01 Feb 12 nicklas 124             tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
5941 01 Feb 12 nicklas 125             visible="<%=isRemoved && isUsed%>" />
5941 01 Feb 12 nicklas 126         </th>
5941 01 Feb 12 nicklas 127         <td style="padding: 0px;">
6605 18 Nov 14 nicklas 128           <tbl:toolbar subclass="bottomborder bg-filled-50">
5941 01 Feb 12 nicklas 129             <tbl:button 
6224 15 Jan 13 nicklas 130               id="btnEdit"
5942 01 Feb 12 nicklas 131               disabled="<%=!writePermission%>" 
5945 02 Feb 12 nicklas 132               image="edit.png" 
5941 01 Feb 12 nicklas 133               title="Edit&hellip;" 
5941 01 Feb 12 nicklas 134               tooltip="<%=writePermission ? "Edit this group" : "You do not have permission to edit this group"%>" 
5941 01 Feb 12 nicklas 135             />
5941 01 Feb 12 nicklas 136             <tbl:button 
6224 15 Jan 13 nicklas 137               id="btnDelete"
5942 01 Feb 12 nicklas 138               disabled="<%=!deletePermission%>" 
5946 03 Feb 12 nicklas 139               image="delete.png" 
5941 01 Feb 12 nicklas 140               title="Delete"
5941 01 Feb 12 nicklas 141               visible="<%=!group.isRemoved()%>"
5941 01 Feb 12 nicklas 142               tooltip="<%=deletePermission ? "Delete this group" : "You do not have permission to delete this group"%>" 
5941 01 Feb 12 nicklas 143             />
5941 01 Feb 12 nicklas 144             <tbl:button 
6224 15 Jan 13 nicklas 145               id="btnRestore"
5942 01 Feb 12 nicklas 146               disabled="<%=!writePermission%>" 
5946 03 Feb 12 nicklas 147               image="restore.png" 
5941 01 Feb 12 nicklas 148               title="Restore"
5941 01 Feb 12 nicklas 149               visible="<%=group.isRemoved()%>"
5941 01 Feb 12 nicklas 150               tooltip="<%=writePermission ? "Restore this group" : "You do not have permission to restore this group"%>" 
5941 01 Feb 12 nicklas 151             />
5941 01 Feb 12 nicklas 152             <tbl:button 
6224 15 Jan 13 nicklas 153               id="btnImport"
5946 03 Feb 12 nicklas 154               image="import.png" 
6224 15 Jan 13 nicklas 155               data-plugin-type="IMPORT"  
5941 01 Feb 12 nicklas 156               title="Import&hellip;" 
5941 01 Feb 12 nicklas 157               tooltip="Import data" 
5941 01 Feb 12 nicklas 158               visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5941 01 Feb 12 nicklas 159             />
5941 01 Feb 12 nicklas 160             <tbl:button 
6224 15 Jan 13 nicklas 161               id="btnExport"
6224 15 Jan 13 nicklas 162               image="export.png"
6224 15 Jan 13 nicklas 163               data-plugin-type="EXPORT" 
5941 01 Feb 12 nicklas 164               title="Export&hellip;" 
5941 01 Feb 12 nicklas 165               tooltip="Export data" 
5941 01 Feb 12 nicklas 166               visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5941 01 Feb 12 nicklas 167             />
5941 01 Feb 12 nicklas 168             <tbl:button 
6224 15 Jan 13 nicklas 169               id="btnRunPlugin"
6224 15 Jan 13 nicklas 170               image="runplugin.png"  
6224 15 Jan 13 nicklas 171               data-plugin-type="OTHER" 
5941 01 Feb 12 nicklas 172               title="Run plugin&hellip;" 
5941 01 Feb 12 nicklas 173               tooltip="Run a plugin" 
5941 01 Feb 12 nicklas 174               visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5941 01 Feb 12 nicklas 175             />
5941 01 Feb 12 nicklas 176             <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 177               wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5941 01 Feb 12 nicklas 178             <tbl:button
5941 01 Feb 12 nicklas 179               image="help.png"
6224 15 Jan 13 nicklas 180               subclass="auto-init"
6224 15 Jan 13 nicklas 181               data-auto-init="help"
6224 15 Jan 13 nicklas 182               data-help-id="group.view.properties"
5941 01 Feb 12 nicklas 183               title="Help&hellip;"
5941 01 Feb 12 nicklas 184               tooltip="Get help about this page"
5941 01 Feb 12 nicklas 185             />
5941 01 Feb 12 nicklas 186           </tbl:toolbar>
5941 01 Feb 12 nicklas 187         </td>
5941 01 Feb 12 nicklas 188       </tr>
1959 09 Feb 06 nicklas 189       <tr>
5941 01 Feb 12 nicklas 190         <th>Name</th>
1959 09 Feb 06 nicklas 191         <td><%=HTML.encodeTags(group.getName())%></td>
1959 09 Feb 06 nicklas 192       </tr>
1959 09 Feb 06 nicklas 193       <tr>
5941 01 Feb 12 nicklas 194         <th>Registered</th>
4698 10 Dec 08 nicklas 195         <td><%=dateFormatter.format(group.getEntryDate())%></td>
4698 10 Dec 08 nicklas 196       </tr>
4698 10 Dec 08 nicklas 197       <tr>
5941 01 Feb 12 nicklas 198         <th>System ID</th>
1959 09 Feb 06 nicklas 199         <td><%=HTML.encodeTags(group.getSystemId())%></td>
1959 09 Feb 06 nicklas 200       </tr>
1959 09 Feb 06 nicklas 201       <tr>
5941 01 Feb 12 nicklas 202         <th>Quota</th>
2434 27 Jun 06 nicklas 203         <td><base:propertyvalue item="<%=group%>" property="quota" /></td>
1959 09 Feb 06 nicklas 204       </tr>
1959 09 Feb 06 nicklas 205       <tr>
5941 01 Feb 12 nicklas 206         <th>Is default</th>
3467 08 Jun 07 nicklas 207         <td><%=group.isDefault() ? "yes" : "no"%></td>
3467 08 Jun 07 nicklas 208       </tr>
3467 08 Jun 07 nicklas 209       <tr>
5941 01 Feb 12 nicklas 210         <th>Hidden members</th>
5077 26 Aug 09 nicklas 211         <td><%=group.hasHiddenMembers() ? "yes" : "no"%></td>
5077 26 Aug 09 nicklas 212       </tr>
5077 26 Aug 09 nicklas 213       <tr>
5941 01 Feb 12 nicklas 214         <th>Permissions</th>
5941 01 Feb 12 nicklas 215         <td><%=PermissionUtil.getFullPermissionNames(group)%></td>
5941 01 Feb 12 nicklas 216       </tr>
5941 01 Feb 12 nicklas 217       <tr>
5941 01 Feb 12 nicklas 218         <th>Description</th>
1959 09 Feb 06 nicklas 219         <td><%=HTML.niceFormat(group.getDescription())%></td>
1959 09 Feb 06 nicklas 220       </tr>
1959 09 Feb 06 nicklas 221       </table>
5941 01 Feb 12 nicklas 222       </div>
1959 09 Feb 06 nicklas 223       
1959 09 Feb 06 nicklas 224       <%
1959 09 Feb 06 nicklas 225       ItemQuery<User> userQuery = group.getUsers();
3890 30 Oct 07 nicklas 226       userQuery.include(Include.ALL);
1959 09 Feb 06 nicklas 227       userQuery.order(Orders.asc(Hql.property("name")));
1959 09 Feb 06 nicklas 228       ItemResultList<User> users = userQuery.list(dc);
1959 09 Feb 06 nicklas 229       
1959 09 Feb 06 nicklas 230       ItemQuery<Group> groupQuery = group.getGroups();
3890 30 Oct 07 nicklas 231       groupQuery.include(Include.ALL);
1959 09 Feb 06 nicklas 232       groupQuery.order(Orders.asc(Hql.property("name")));
1959 09 Feb 06 nicklas 233       ItemResultList<Group> groups = groupQuery.list(dc);
5941 01 Feb 12 nicklas 234       int numMembers = groups.size() + users.size();
5941 01 Feb 12 nicklas 235       %>
5941 01 Feb 12 nicklas 236       <base:section 
5941 01 Feb 12 nicklas 237         id="members" 
5941 01 Feb 12 nicklas 238         title="<%="Members (" + (users.size() + groups.size()) + ")"%>"
5941 01 Feb 12 nicklas 239         context="<%=cc%>"
5941 01 Feb 12 nicklas 240         >
1959 09 Feb 06 nicklas 241         <%
5941 01 Feb 12 nicklas 242         if (numMembers == 0)
5941 01 Feb 12 nicklas 243         {
5941 01 Feb 12 nicklas 244           %>
5941 01 Feb 12 nicklas 245           <div class="messagecontainer note">
5941 01 Feb 12 nicklas 246           There are no members in this group (or, you don't have permission to view them).
5941 01 Feb 12 nicklas 247           </div>
5941 01 Feb 12 nicklas 248           <%
5941 01 Feb 12 nicklas 249         }
5941 01 Feb 12 nicklas 250         else
5941 01 Feb 12 nicklas 251         {
5941 01 Feb 12 nicklas 252           %>
5042 11 Aug 09 martin 253           <tbl:table
6147 21 Sep 12 nicklas 254             id="tbl.members"
5042 11 Aug 09 martin 255             columns="all"
5042 11 Aug 09 martin 256             >
5042 11 Aug 09 martin 257           <tbl:columndef 
5042 11 Aug 09 martin 258             id="name"
5042 11 Aug 09 martin 259             title="Name"
5042 11 Aug 09 martin 260           />
5042 11 Aug 09 martin 261           <tbl:columndef 
5042 11 Aug 09 martin 262             id="type"
5042 11 Aug 09 martin 263             title="Type"
5042 11 Aug 09 martin 264           />
5042 11 Aug 09 martin 265           <tbl:columndef 
5042 11 Aug 09 martin 266             id="description"
5042 11 Aug 09 martin 267             title="Description"
5042 11 Aug 09 martin 268           />
5042 11 Aug 09 martin 269           <tbl:data>
5941 01 Feb 12 nicklas 270             <tbl:headers>
5941 01 Feb 12 nicklas 271               <tbl:headerrow>
5941 01 Feb 12 nicklas 272                 <tbl:columnheaders />
5941 01 Feb 12 nicklas 273               </tbl:headerrow>
5941 01 Feb 12 nicklas 274             </tbl:headers>
5042 11 Aug 09 martin 275             <tbl:rows>
1959 09 Feb 06 nicklas 276             <%
5042 11 Aug 09 martin 277             for (User user : users)
5042 11 Aug 09 martin 278             {
5042 11 Aug 09 martin 279               %>
5042 11 Aug 09 martin 280               <tbl:row>
5042 11 Aug 09 martin 281                 <tbl:cell column="name"><base:icon 
5946 03 Feb 12 nicklas 282                     image="deleted.png" 
5042 11 Aug 09 martin 283                     tooltip="This item has been scheduled for deletion" 
5042 11 Aug 09 martin 284                     visible="<%=user.isRemoved()%>"
5042 11 Aug 09 martin 285                   /><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
5042 11 Aug 09 martin 286                 <tbl:cell column="type">User</tbl:cell>
5042 11 Aug 09 martin 287                 <tbl:cell column="description"><%=HTML.encodeTags(user.getDescription())%></tbl:cell>
5042 11 Aug 09 martin 288               </tbl:row>
5042 11 Aug 09 martin 289               <%
5042 11 Aug 09 martin 290             }
5042 11 Aug 09 martin 291             for (Group child : groups)
5042 11 Aug 09 martin 292             {
5042 11 Aug 09 martin 293               %>
5042 11 Aug 09 martin 294               <tbl:row>
5042 11 Aug 09 martin 295                 <tbl:cell column="name"><base:icon 
5946 03 Feb 12 nicklas 296                     image="deleted.png" 
5042 11 Aug 09 martin 297                     tooltip="This item has been scheduled for deletion" 
5042 11 Aug 09 martin 298                     visible="<%=child.isRemoved()%>"
5042 11 Aug 09 martin 299                   /><%=Base.getLinkedName(ID, child, false, true)%></tbl:cell>
5042 11 Aug 09 martin 300                 <tbl:cell column="type">Group</tbl:cell>
5042 11 Aug 09 martin 301                 <tbl:cell column="description"><%=HTML.encodeTags(child.getDescription())%></tbl:cell>
5042 11 Aug 09 martin 302               </tbl:row>
5042 11 Aug 09 martin 303               <%
5042 11 Aug 09 martin 304             }
1959 09 Feb 06 nicklas 305             %>
5042 11 Aug 09 martin 306             </tbl:rows>
5042 11 Aug 09 martin 307           </tbl:data>
5042 11 Aug 09 martin 308           </tbl:table>
5941 01 Feb 12 nicklas 309           <%
5941 01 Feb 12 nicklas 310         }
5941 01 Feb 12 nicklas 311         %>
5941 01 Feb 12 nicklas 312       </base:section>
5507 19 Nov 10 nicklas 313       <jsp:include page="../../common/anytoany/list_anytoany.jsp">
5507 19 Nov 10 nicklas 314         <jsp:param name="ID" value="<%=ID%>" />
5507 19 Nov 10 nicklas 315         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5507 19 Nov 10 nicklas 316         <jsp:param name="item_id" value="<%=itemId%>" />
5507 19 Nov 10 nicklas 317         <jsp:param name="title" value="Other items related to this group" />
5507 19 Nov 10 nicklas 318       </jsp:include>
5941 01 Feb 12 nicklas 319     </t:tab>
5941 01 Feb 12 nicklas 320     </t:tabcontrol>
1959 09 Feb 06 nicklas 321   </base:body>
1959 09 Feb 06 nicklas 322   </base:page>
1959 09 Feb 06 nicklas 323   <%
1959 09 Feb 06 nicklas 324 }
1959 09 Feb 06 nicklas 325 finally
1959 09 Feb 06 nicklas 326 {
1959 09 Feb 06 nicklas 327   if (dc != null) dc.close();
1959 09 Feb 06 nicklas 328 }
1959 09 Feb 06 nicklas 329
1959 09 Feb 06 nicklas 330 %>