www/views/itemlists/edit_list.jsp

Code
Comments
Other
Rev Date Author Line
6742 17 Feb 15 nicklas 1 <%-- $Id$
6742 17 Feb 15 nicklas 2   ------------------------------------------------------------------
6742 17 Feb 15 nicklas 3   Copyright (C) 2015 Nicklas Nordborg
6742 17 Feb 15 nicklas 4
6742 17 Feb 15 nicklas 5   This file is part of BASE - BioArray Software Environment.
6742 17 Feb 15 nicklas 6   Available at http://base.thep.lu.se/
6742 17 Feb 15 nicklas 7
6742 17 Feb 15 nicklas 8   BASE is free software; you can redistribute it and/or
6742 17 Feb 15 nicklas 9   modify it under the terms of the GNU General Public License
6742 17 Feb 15 nicklas 10   as published by the Free Software Foundation; either version 3
6742 17 Feb 15 nicklas 11   of the License, or (at your option) any later version.
6742 17 Feb 15 nicklas 12
6742 17 Feb 15 nicklas 13   BASE is distributed in the hope that it will be useful,
6742 17 Feb 15 nicklas 14   but WITHOUT ANY WARRANTY; without even the implied warranty of
6742 17 Feb 15 nicklas 15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
6742 17 Feb 15 nicklas 16   GNU General Public License for more details.
6742 17 Feb 15 nicklas 17
6742 17 Feb 15 nicklas 18   You should have received a copy of the GNU General Public License
6742 17 Feb 15 nicklas 19   along with BASE. If not, see <http://www.gnu.org/licenses/>.
6742 17 Feb 15 nicklas 20   ------------------------------------------------------------------
6742 17 Feb 15 nicklas 21
6742 17 Feb 15 nicklas 22   @author Nicklas
6742 17 Feb 15 nicklas 23 --%>
6742 17 Feb 15 nicklas 24 <%@ page pageEncoding="UTF-8" session="false"
6742 17 Feb 15 nicklas 25   import="net.sf.basedb.core.SessionControl"
6742 17 Feb 15 nicklas 26   import="net.sf.basedb.core.DbControl"
6742 17 Feb 15 nicklas 27   import="net.sf.basedb.core.Item"
6742 17 Feb 15 nicklas 28   import="net.sf.basedb.core.ItemContext"
6742 17 Feb 15 nicklas 29   import="net.sf.basedb.core.Permission"
6742 17 Feb 15 nicklas 30   import="net.sf.basedb.core.ItemList"
6753 20 Feb 15 nicklas 31   import="net.sf.basedb.core.ItemSubtype"
6753 20 Feb 15 nicklas 32   import="net.sf.basedb.core.ItemQuery"
6742 17 Feb 15 nicklas 33   import="net.sf.basedb.core.Metadata"
6753 20 Feb 15 nicklas 34   import="net.sf.basedb.core.RawDataType"
6753 20 Feb 15 nicklas 35   import="net.sf.basedb.core.RawDataTypes"
6742 17 Feb 15 nicklas 36   import="net.sf.basedb.core.PermissionDeniedException"
6742 17 Feb 15 nicklas 37   import="net.sf.basedb.clients.web.Base"
6742 17 Feb 15 nicklas 38   import="net.sf.basedb.clients.web.util.HTML"
6742 17 Feb 15 nicklas 39   import="net.sf.basedb.core.plugin.GuiContext"
6742 17 Feb 15 nicklas 40   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
6742 17 Feb 15 nicklas 41   import="net.sf.basedb.clients.web.extensions.JspContext"
6742 17 Feb 15 nicklas 42   import="net.sf.basedb.clients.web.extensions.edit.EditUtil"
7604 25 Feb 19 nicklas 43   import="net.sf.basedb.clients.web.extensions.tabcontrol.TabAction"
6742 17 Feb 15 nicklas 44   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
6742 17 Feb 15 nicklas 45   import="net.sf.basedb.util.Values"
6753 20 Feb 15 nicklas 46   import="org.json.simple.JSONObject"
6753 20 Feb 15 nicklas 47   import="org.json.simple.JSONArray"
6742 17 Feb 15 nicklas 48 %>
6742 17 Feb 15 nicklas 49 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
6742 17 Feb 15 nicklas 50 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
6742 17 Feb 15 nicklas 51 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
6742 17 Feb 15 nicklas 52 <%
6742 17 Feb 15 nicklas 53 final Item itemType = Item.ITEMLIST;
6742 17 Feb 15 nicklas 54 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
6742 17 Feb 15 nicklas 55 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
6742 17 Feb 15 nicklas 56 final int itemId = cc.getId();
6803 25 Mar 15 nicklas 57 final int cloneId = Values.getInt(request.getParameter("clone_id"));
6742 17 Feb 15 nicklas 58 final String ID = sc.getId();
6742 17 Feb 15 nicklas 59 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 60 final DbControl dc = sc.newDbControl(":Edit "+itemType);
6742 17 Feb 15 nicklas 61 try
6742 17 Feb 15 nicklas 62 {
6742 17 Feb 15 nicklas 63   String title = null;
6742 17 Feb 15 nicklas 64   ItemList list = null;
6750 19 Feb 15 nicklas 65   boolean addItems = Values.getBoolean(request.getParameter("addItems"));
6750 19 Feb 15 nicklas 66   Item memberType = addItems ? Item.valueOf(request.getParameter("memberType")) : null;
6750 19 Feb 15 nicklas 67   String formId = addItems ? Values.getStringOrNull(request.getParameter("formId")) : null;
7747 16 Sep 19 nicklas 68   String subContext = Values.getString(request.getParameter("subContext"), "");
7747 16 Sep 19 nicklas 69   
7747 16 Sep 19 nicklas 70   ItemContext filterContext = addItems && memberType != null ? sc.getCurrentContext(memberType, subContext) : null;
7747 16 Sep 19 nicklas 71   boolean hasSourceFilter = filterContext != null && filterContext.getNumPropertyFilters() > 0;
7747 16 Sep 19 nicklas 72   
6753 20 Feb 15 nicklas 73   ItemQuery<ItemSubtype> subtypesQuery = null;
6753 20 Feb 15 nicklas 74   boolean readCurrentSubtype = true;
6753 20 Feb 15 nicklas 75   ItemSubtype currentSubtype = null;
6750 19 Feb 15 nicklas 76   
6753 20 Feb 15 nicklas 77   RawDataType currentRawDataType = null;
6753 20 Feb 15 nicklas 78
6803 25 Mar 15 nicklas 79   if (itemId == 0 && cloneId == 0)
6742 17 Feb 15 nicklas 80   {
6742 17 Feb 15 nicklas 81     title = "Create item list";
6742 17 Feb 15 nicklas 82     cc.removeObject("item");
6753 20 Feb 15 nicklas 83     subtypesQuery = Base.getSubtypesQuery(null);
6750 19 Feb 15 nicklas 84     
6742 17 Feb 15 nicklas 85     if (memberType == null)
6742 17 Feb 15 nicklas 86     {
6742 17 Feb 15 nicklas 87       memberType = Item.fromValue(Values.getInt(cc.getPropertyValue("memberType")));
6742 17 Feb 15 nicklas 88     }
6742 17 Feb 15 nicklas 89   }
6742 17 Feb 15 nicklas 90   else
6742 17 Feb 15 nicklas 91   {
6803 25 Mar 15 nicklas 92     list = ItemList.getById(dc, itemId == 0 ? cloneId : itemId);
6742 17 Feb 15 nicklas 93     list.checkPermission(Permission.WRITE);
6742 17 Feb 15 nicklas 94     memberType = list.getMemberType();
6753 20 Feb 15 nicklas 95     subtypesQuery = Base.getSubtypesQuery(memberType);
6803 25 Mar 15 nicklas 96     if (itemId == 0)
6803 25 Mar 15 nicklas 97     {
6803 25 Mar 15 nicklas 98       title = "Create copy -- " + HTML.encodeTags(list.getName());
6803 25 Mar 15 nicklas 99     }
6803 25 Mar 15 nicklas 100     else
6803 25 Mar 15 nicklas 101     {
6803 25 Mar 15 nicklas 102       cc.setObject("item", list);
6803 25 Mar 15 nicklas 103       title = "Edit item list -- " + HTML.encodeTags(list.getName());
6803 25 Mar 15 nicklas 104     }
6753 20 Feb 15 nicklas 105     currentRawDataType = list.getRawDataType();
6753 20 Feb 15 nicklas 106     try
6753 20 Feb 15 nicklas 107     {
6753 20 Feb 15 nicklas 108       currentSubtype = list.getItemSubtype();
6753 20 Feb 15 nicklas 109     }
6753 20 Feb 15 nicklas 110     catch (PermissionDeniedException ex)
6753 20 Feb 15 nicklas 111     {
6753 20 Feb 15 nicklas 112       readCurrentSubtype = false;
6753 20 Feb 15 nicklas 113     }
6742 17 Feb 15 nicklas 114   }
6742 17 Feb 15 nicklas 115   
6753 20 Feb 15 nicklas 116   JSONArray jsonSubtypes = new JSONArray();
6753 20 Feb 15 nicklas 117   if (subtypesQuery != null)
6753 20 Feb 15 nicklas 118   {
6753 20 Feb 15 nicklas 119     for (ItemSubtype subtype : subtypesQuery.list(dc))
6753 20 Feb 15 nicklas 120     {
6753 20 Feb 15 nicklas 121       JSONObject jsonSubtype = new JSONObject();
6753 20 Feb 15 nicklas 122       jsonSubtype.put("id", subtype.getId());
6753 20 Feb 15 nicklas 123       jsonSubtype.put("name", subtype.getName());
6753 20 Feb 15 nicklas 124       jsonSubtype.put("description", subtype.getDescription());
6753 20 Feb 15 nicklas 125       jsonSubtype.put("itemType", subtype.getMainItemType().name());
6753 20 Feb 15 nicklas 126       if (currentSubtype == subtype)
6753 20 Feb 15 nicklas 127       {
6753 20 Feb 15 nicklas 128         jsonSubtype.put("current", 1);
6753 20 Feb 15 nicklas 129       }
6753 20 Feb 15 nicklas 130       jsonSubtypes.add(jsonSubtype);
6753 20 Feb 15 nicklas 131     }
6753 20 Feb 15 nicklas 132   }
6753 20 Feb 15 nicklas 133   
6742 17 Feb 15 nicklas 134   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.item(itemType), list);
7604 25 Feb 19 nicklas 135   ExtensionsInvoker<TabAction> invoker = EditUtil.useEditExtensions(jspContext);
6742 17 Feb 15 nicklas 136   %>
6742 17 Feb 15 nicklas 137   <base:page type="popup" title="<%=title%>" id="edit-page">
6742 17 Feb 15 nicklas 138   <base:head scripts="tabcontrol-2.js,~lists.js" styles="tabcontrol.css">
6742 17 Feb 15 nicklas 139     <ext:scripts context="<%=jspContext%>" />
6742 17 Feb 15 nicklas 140     <ext:stylesheets context="<%=jspContext%>" />
6742 17 Feb 15 nicklas 141   </base:head>
6742 17 Feb 15 nicklas 142   <base:body>
6742 17 Feb 15 nicklas 143     <h1><%=title%> <base:help tabcontrol="settings"/></h1>
6742 17 Feb 15 nicklas 144     <form action="index.jsp?ID=<%=ID%>" method="post" name="list">
6742 17 Feb 15 nicklas 145     <input type="hidden" name="cmd" value="UpdateItem">
6803 25 Mar 15 nicklas 146     <input type="hidden" name="clone_id" value="<%=cloneId%>">
6750 19 Feb 15 nicklas 147     <%
6750 19 Feb 15 nicklas 148     if (subContext != null)
6750 19 Feb 15 nicklas 149     {
6750 19 Feb 15 nicklas 150       %>
6750 19 Feb 15 nicklas 151       <input type="hidden" name="subContext" value="<%=subContext%>">
6750 19 Feb 15 nicklas 152       <%
6750 19 Feb 15 nicklas 153     }
6750 19 Feb 15 nicklas 154     %>
6753 20 Feb 15 nicklas 155     
6753 20 Feb 15 nicklas 156     <div id="page-data" class="datacontainer"
6753 20 Feb 15 nicklas 157       data-subtypes="<%=HTML.encodeTags(jsonSubtypes.toJSONString())%>"
6753 20 Feb 15 nicklas 158     ></div>
6742 17 Feb 15 nicklas 159
6742 17 Feb 15 nicklas 160     <t:tabcontrol id="settings"
6742 17 Feb 15 nicklas 161       subclass="content dialogtabcontrol"
6742 17 Feb 15 nicklas 162       position="bottom"  remember="<%=list != null%>"
6742 17 Feb 15 nicklas 163       extensions="<%=invoker%>">
6742 17 Feb 15 nicklas 164     <t:tab id="info" title="Item list" helpid="itemlist.edit">
6742 17 Feb 15 nicklas 165       <table class="fullform input100">
6742 17 Feb 15 nicklas 166       <tr>
6742 17 Feb 15 nicklas 167         <th>Name</th>
6742 17 Feb 15 nicklas 168         <td><input class="text required auto-init" data-auto-init="<%=list == null ? "focus-select" : "focus" %>" 
6742 17 Feb 15 nicklas 169           type="text" name="name" 
6803 25 Mar 15 nicklas 170           value="<%=HTML.encodeTags(list == null ? Values.getString(cc.getPropertyValue("name"), "New list") : list.getName() + (itemId==0 ? " (copy)":""))%>" 
6742 17 Feb 15 nicklas 171           maxlength="<%=ItemList.MAX_NAME_LENGTH%>"></td>
6742 17 Feb 15 nicklas 172         <td></td>
6742 17 Feb 15 nicklas 173       </tr>
6742 17 Feb 15 nicklas 174       <tr>
6742 17 Feb 15 nicklas 175         <th>Member type</th>
6742 17 Feb 15 nicklas 176         <td>
6753 20 Feb 15 nicklas 177           <select name="memberType" id="memberType" <%=list != null || (addItems && memberType != null) ? "disabled" : "" %> class="selectionlist unchangeable">
6742 17 Feb 15 nicklas 178           <%
6742 17 Feb 15 nicklas 179           for (Item mt : Metadata.getListableItems())
6742 17 Feb 15 nicklas 180           {
6742 17 Feb 15 nicklas 181             %>
6742 17 Feb 15 nicklas 182             <option value="<%=mt.name()%>" <%=memberType == mt ? "selected" : ""%>><%=mt.toString()%>
6742 17 Feb 15 nicklas 183             <%
6742 17 Feb 15 nicklas 184           }
6742 17 Feb 15 nicklas 185           %>
6742 17 Feb 15 nicklas 186           </select>
6742 17 Feb 15 nicklas 187         </td>
6742 17 Feb 15 nicklas 188         <td></td>
6742 17 Feb 15 nicklas 189       </tr>
6753 20 Feb 15 nicklas 190       <tr id="subtypeRow">
6753 20 Feb 15 nicklas 191         <th>Subtype</th>
6753 20 Feb 15 nicklas 192         <td>
6753 20 Feb 15 nicklas 193           <select name="subtype_id" id="subtype_id"
6753 20 Feb 15 nicklas 194             <%=!readCurrentSubtype ? "disabled readonly class=\"disabled selectionlist\"" : "class=\"selectionlist\""%>>
6753 20 Feb 15 nicklas 195           <%
6753 20 Feb 15 nicklas 196           if (!readCurrentSubtype)
6753 20 Feb 15 nicklas 197           {
6753 20 Feb 15 nicklas 198             %>
6753 20 Feb 15 nicklas 199             <option value="-1">- denied -
6753 20 Feb 15 nicklas 200             <%
6753 20 Feb 15 nicklas 201           }
6753 20 Feb 15 nicklas 202           %>
6753 20 Feb 15 nicklas 203           </select>
6753 20 Feb 15 nicklas 204         </td>
6753 20 Feb 15 nicklas 205         <td></td>
6753 20 Feb 15 nicklas 206       </tr>
6753 20 Feb 15 nicklas 207       <tr id="rawDataTypeRow">
6753 20 Feb 15 nicklas 208         <th>Raw data type</th>
6753 20 Feb 15 nicklas 209         <td>
6753 20 Feb 15 nicklas 210           <select name="rawdatatype" id="rawdatatype" class="selectionlist">
6753 20 Feb 15 nicklas 211           <option value="">- any -
6753 20 Feb 15 nicklas 212           <%
6753 20 Feb 15 nicklas 213           for (RawDataType rdt : RawDataTypes.getRawDataTypes())
6753 20 Feb 15 nicklas 214           {
6753 20 Feb 15 nicklas 215             String selected = rdt.equals(currentRawDataType) ? "selected" : "";
6753 20 Feb 15 nicklas 216             %>
6753 20 Feb 15 nicklas 217             <option value="<%=rdt.getId()%>" <%=selected%>><%=HTML.encodeTags(rdt.getName())%>
6753 20 Feb 15 nicklas 218             <%
6753 20 Feb 15 nicklas 219           }
6753 20 Feb 15 nicklas 220           %>
6753 20 Feb 15 nicklas 221           </select>
6753 20 Feb 15 nicklas 222         </td>
6753 20 Feb 15 nicklas 223       </tr>
7813 19 May 20 nicklas 224       <%
7813 19 May 20 nicklas 225       // NOTE! We can't just check sc.getActiveProjectId() since the user may not have USE permission
7813 19 May 20 nicklas 226       if (itemId == 0 && (sc.getProjectKeyId() != 0 || sc.getItemKeyId() != 0))
7813 19 May 20 nicklas 227       {
7813 19 May 20 nicklas 228         %>
7813 19 May 20 nicklas 229         <tr>
7813 19 May 20 nicklas 230           <th>Private list?</th>
7813 19 May 20 nicklas 231           <td>
7813 19 May 20 nicklas 232             <label><input type="radio" name="private" value="1">Yes</label>
7813 19 May 20 nicklas 233             <label><input type="radio" name="private" value="0" checked>Shared to <i><%=HTML.encodeTags(sc.getActiveProjectName()) %></i></label>
7813 19 May 20 nicklas 234           </td>
7813 19 May 20 nicklas 235           <td></td>
7813 19 May 20 nicklas 236         </tr>
7813 19 May 20 nicklas 237         <%
7813 19 May 20 nicklas 238       }
7813 19 May 20 nicklas 239       %>
6742 17 Feb 15 nicklas 240       <tr>
6742 17 Feb 15 nicklas 241         <th>External ID</th>
6742 17 Feb 15 nicklas 242         <td><input class="text" type="text" name="external_id" 
6742 17 Feb 15 nicklas 243           value="<%=HTML.encodeTags(list == null ? Values.getString(cc.getPropertyValue("externalId"), "") : list.getExternalId())%>" 
6742 17 Feb 15 nicklas 244           maxlength="<%=ItemList.MAX_EXTERNAL_ID_LENGTH%>"></td>
6742 17 Feb 15 nicklas 245         <td></td>
6742 17 Feb 15 nicklas 246       </tr>
6786 19 Mar 15 nicklas 247       <tr>
6786 19 Mar 15 nicklas 248         <th>Modify members</th>
6786 19 Mar 15 nicklas 249         <td>
6786 19 Mar 15 nicklas 250           <label><input type="checkbox" name="disableManual" id="disableManual" value="1"
6786 19 Mar 15 nicklas 251             <%=list != null && list.getDisableManualMembers() ? "checked" : "" %>
6786 19 Mar 15 nicklas 252             >Disable manual</label><br>
6786 19 Mar 15 nicklas 253           <label><input type="checkbox" name="disableSyncFilters" id="disableSyncFilters" value="1"
6786 19 Mar 15 nicklas 254             <%=list != null && list.getDisableSyncFilters() ? "checked" : "" %>
6811 30 Mar 15 nicklas 255             >Disable synchronization filters</label>
6786 19 Mar 15 nicklas 256         </td>
6786 19 Mar 15 nicklas 257         <td></td>
6786 19 Mar 15 nicklas 258       </tr>
6750 19 Feb 15 nicklas 259       <%
6750 19 Feb 15 nicklas 260       if (addItems)
6750 19 Feb 15 nicklas 261       {
6750 19 Feb 15 nicklas 262         %>
6750 19 Feb 15 nicklas 263         <tr class="big">
6750 19 Feb 15 nicklas 264           <th>Source items</th>
6750 19 Feb 15 nicklas 265           <td>
6750 19 Feb 15 nicklas 266             <input type="radio" name="source" id="sourceSelected" value="selected"
6750 19 Feb 15 nicklas 267               data-parent-form="<%=formId%>"
6750 19 Feb 15 nicklas 268               ><label for="sourceSelected" id="lblSelected">Selected items</label><br>
6750 19 Feb 15 nicklas 269             <input type="radio" name="source" id="sourcePage" value="page"
6750 19 Feb 15 nicklas 270               ><label for="sourcePage">Current page</label><br>
6750 19 Feb 15 nicklas 271             <input type="radio" name="source" id="sourceAll" value="all" checked
6750 19 Feb 15 nicklas 272               ><label for="sourceAll">All pages</label><br>
7747 16 Sep 19 nicklas 273               <%
7747 16 Sep 19 nicklas 274               if (hasSourceFilter) 
7747 16 Sep 19 nicklas 275               {
7747 16 Sep 19 nicklas 276                 %>
7747 16 Sep 19 nicklas 277                 <input type="checkbox" name="syncFilter" id="syncFilter" value="1" checked style="margin-left:2em;"
7747 16 Sep 19 nicklas 278                   ><label for="syncFilter">Remember current filter for future re-sync</label>
7747 16 Sep 19 nicklas 279                 <%
7747 16 Sep 19 nicklas 280               }
7747 16 Sep 19 nicklas 281               %>
6750 19 Feb 15 nicklas 282           </td>
6750 19 Feb 15 nicklas 283           <td></td>
6750 19 Feb 15 nicklas 284         </tr>
6750 19 Feb 15 nicklas 285         <%
6750 19 Feb 15 nicklas 286       }
6750 19 Feb 15 nicklas 287       %>
6750 19 Feb 15 nicklas 288       
6742 17 Feb 15 nicklas 289       <tr class="dynamic">
6742 17 Feb 15 nicklas 290         <th>Description</th>
6742 17 Feb 15 nicklas 291         <td>
6742 17 Feb 15 nicklas 292           <textarea class="text" rows="6" name="description" id="description"
6742 17 Feb 15 nicklas 293             ><%=HTML.encodeTags(list == null ? cc.getPropertyValue("description") : list.getDescription())%></textarea>
6742 17 Feb 15 nicklas 294         </td>
6742 17 Feb 15 nicklas 295         <td style="width: 20px;">
6742 17 Feb 15 nicklas 296           <base:zoom textarea="description" title="Description" />
6742 17 Feb 15 nicklas 297         </td>
6742 17 Feb 15 nicklas 298       </tr>
6742 17 Feb 15 nicklas 299       </table>
6742 17 Feb 15 nicklas 300     </t:tab>
6742 17 Feb 15 nicklas 301     <t:tab id="annotations" title="Annotations" helpid="annotations.edit">
6742 17 Feb 15 nicklas 302       <jsp:include page="../../common/annotations/annotate_frameset.jsp">
6742 17 Feb 15 nicklas 303         <jsp:param name="item_type" value="<%=itemType.name()%>" />
6742 17 Feb 15 nicklas 304         <jsp:param name="item_id" value="<%=itemId%>" />
6742 17 Feb 15 nicklas 305         <jsp:param name="ID" value="<%=ID%>" />
6742 17 Feb 15 nicklas 306       </jsp:include>
6742 17 Feb 15 nicklas 307     </t:tab>
6742 17 Feb 15 nicklas 308     </t:tabcontrol>
6742 17 Feb 15 nicklas 309     </form>
6742 17 Feb 15 nicklas 310
6742 17 Feb 15 nicklas 311     <div class="legend">
6742 17 Feb 15 nicklas 312       <base:icon image="required.png" />= required information
6742 17 Feb 15 nicklas 313       <%if (list == null) {%><br>
6742 17 Feb 15 nicklas 314         <base:icon image="unchangeable.png" />= can't be changed later
6742 17 Feb 15 nicklas 315       <%}%>
6742 17 Feb 15 nicklas 316     </div>
6742 17 Feb 15 nicklas 317
6742 17 Feb 15 nicklas 318     <base:buttongroup subclass="dialogbuttons">
6742 17 Feb 15 nicklas 319       <base:button id="btnSave" title="Save" />
6742 17 Feb 15 nicklas 320       <base:button id="close" title="Cancel" />
6742 17 Feb 15 nicklas 321     </base:buttongroup>
6742 17 Feb 15 nicklas 322   </base:body>
6742 17 Feb 15 nicklas 323   </base:page>
6742 17 Feb 15 nicklas 324   <%
6742 17 Feb 15 nicklas 325 }
6742 17 Feb 15 nicklas 326 finally
6742 17 Feb 15 nicklas 327 {
6742 17 Feb 15 nicklas 328   if (dc != null) dc.close();
6742 17 Feb 15 nicklas 329 }
6742 17 Feb 15 nicklas 330 %>