www/biomaterials/tags/edit_tag.jsp

Code
Comments
Other
Rev Date Author Line
838 28 Jun 05 nicklas 1 <%-- $Id$
838 28 Jun 05 nicklas 2   ------------------------------------------------------------------
3675 16 Aug 07 jari 3   Copyright (C) 2005 Nicklas Nordborg
5425 23 Sep 10 nicklas 4   Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg, Martin Svensson
838 28 Jun 05 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/
838 28 Jun 05 nicklas 8
838 28 Jun 05 nicklas 9   BASE is free software; you can redistribute it and/or
838 28 Jun 05 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
838 28 Jun 05 nicklas 12   of the License, or (at your option) any later version.
838 28 Jun 05 nicklas 13
838 28 Jun 05 nicklas 14   BASE is distributed in the hope that it will be useful,
838 28 Jun 05 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
838 28 Jun 05 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
838 28 Jun 05 nicklas 17   GNU General Public License for more details.
838 28 Jun 05 nicklas 18
838 28 Jun 05 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/>.
838 28 Jun 05 nicklas 21   ------------------------------------------------------------------
838 28 Jun 05 nicklas 22
838 28 Jun 05 nicklas 23
838 28 Jun 05 nicklas 24   @author Nicklas
838 28 Jun 05 nicklas 25   @version 2.0
838 28 Jun 05 nicklas 26 --%>
5426 24 Sep 10 nicklas 27 <%@ page pageEncoding="UTF-8" session="false"
6335 21 Oct 13 olle 28   import="net.sf.basedb.core.AnnotationType"
838 28 Jun 05 nicklas 29   import="net.sf.basedb.core.SessionControl"
838 28 Jun 05 nicklas 30   import="net.sf.basedb.core.DbControl"
838 28 Jun 05 nicklas 31   import="net.sf.basedb.core.Item"
1864 30 Jan 06 nicklas 32   import="net.sf.basedb.core.ItemContext"
838 28 Jun 05 nicklas 33   import="net.sf.basedb.core.Permission"
5632 17 May 11 nicklas 34   import="net.sf.basedb.core.Tag"
5632 17 May 11 nicklas 35   import="net.sf.basedb.core.ItemSubtype"
1864 30 Jan 06 nicklas 36   import="net.sf.basedb.core.PermissionDeniedException"
5632 17 May 11 nicklas 37   import="net.sf.basedb.core.ItemQuery"
5632 17 May 11 nicklas 38   import="net.sf.basedb.core.Include"
5632 17 May 11 nicklas 39   import="net.sf.basedb.core.query.Orders"
5632 17 May 11 nicklas 40   import="net.sf.basedb.core.query.Hql"
838 28 Jun 05 nicklas 41   import="net.sf.basedb.clients.web.Base"
838 28 Jun 05 nicklas 42   import="net.sf.basedb.clients.web.util.HTML"
5492 16 Nov 10 nicklas 43   import="net.sf.basedb.core.plugin.GuiContext"
5492 16 Nov 10 nicklas 44   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
5492 16 Nov 10 nicklas 45   import="net.sf.basedb.clients.web.extensions.JspContext"
5492 16 Nov 10 nicklas 46   import="net.sf.basedb.clients.web.extensions.edit.EditUtil"
7604 25 Feb 19 nicklas 47   import="net.sf.basedb.clients.web.extensions.tabcontrol.TabAction"
5492 16 Nov 10 nicklas 48   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
2753 20 Oct 06 nicklas 49   import="net.sf.basedb.util.Values"
838 28 Jun 05 nicklas 50 %>
838 28 Jun 05 nicklas 51 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
838 28 Jun 05 nicklas 52 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
6145 21 Sep 12 nicklas 53 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
838 28 Jun 05 nicklas 54 <%
5632 17 May 11 nicklas 55 final Item itemType = Item.TAG;
1864 30 Jan 06 nicklas 56 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
1864 30 Jan 06 nicklas 57 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1864 30 Jan 06 nicklas 58 final int itemId = cc.getId();
838 28 Jun 05 nicklas 59 final String ID = sc.getId();
838 28 Jun 05 nicklas 60 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 61 final DbControl dc = sc.newDbControl(":Edit "+itemType);
838 28 Jun 05 nicklas 62 try
838 28 Jun 05 nicklas 63 {
838 28 Jun 05 nicklas 64   String title = null;
5632 17 May 11 nicklas 65   Tag tag = null;
5632 17 May 11 nicklas 66   boolean readCurrentTagType = true;
5632 17 May 11 nicklas 67   int currentTagTypeId = 0;
1864 30 Jan 06 nicklas 68
1864 30 Jan 06 nicklas 69   if (itemId == 0)
838 28 Jun 05 nicklas 70   {
5632 17 May 11 nicklas 71     title = "Create tag";
1864 30 Jan 06 nicklas 72     cc.removeObject("item");
5632 17 May 11 nicklas 73     currentTagTypeId = Values.getInt(request.getParameter("tagtype_id"));
5632 17 May 11 nicklas 74     if (currentTagTypeId == 0) 
5632 17 May 11 nicklas 75     {
5632 17 May 11 nicklas 76       int recentTagTypeId = Values.getInt(cc.getRecent(Item.ITEMSUBTYPE.name(), 0));
5632 17 May 11 nicklas 77       currentTagTypeId = Values.getInt(cc.getPropertyValue("itemSubtype"), recentTagTypeId);
5632 17 May 11 nicklas 78     }
838 28 Jun 05 nicklas 79   }
838 28 Jun 05 nicklas 80   else
838 28 Jun 05 nicklas 81   {
5632 17 May 11 nicklas 82     tag = Tag.getById(dc, itemId);
5632 17 May 11 nicklas 83     tag.checkPermission(Permission.WRITE);
5632 17 May 11 nicklas 84     cc.setObject("item", tag);
5632 17 May 11 nicklas 85     title = "Edit tag -- " + HTML.encodeTags(tag.getName());
5632 17 May 11 nicklas 86     try
5632 17 May 11 nicklas 87     {
5632 17 May 11 nicklas 88       ItemSubtype tagType = tag.getItemSubtype();
5632 17 May 11 nicklas 89       if (tagType != null) currentTagTypeId = tagType.getId();
5632 17 May 11 nicklas 90     }
5632 17 May 11 nicklas 91     catch (PermissionDeniedException ex)
5632 17 May 11 nicklas 92     {
5632 17 May 11 nicklas 93       readCurrentTagType = false;
5632 17 May 11 nicklas 94     }
838 28 Jun 05 nicklas 95   }
838 28 Jun 05 nicklas 96   
6335 21 Oct 13 olle 97   // Query to retrieve tag types
5632 17 May 11 nicklas 98   final ItemQuery<ItemSubtype> tagTypeQuery = ItemSubtype.getQuery(itemType);
5632 17 May 11 nicklas 99   tagTypeQuery.include(Include.ALL);
5632 17 May 11 nicklas 100   tagTypeQuery.order(Orders.asc(Hql.property("name")));
6217 14 Dec 12 nicklas 101   
5632 17 May 11 nicklas 102   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.item(itemType), tag);
7604 25 Feb 19 nicklas 103   ExtensionsInvoker<TabAction> invoker = EditUtil.useEditExtensions(jspContext);
838 28 Jun 05 nicklas 104   %>
6306 13 Aug 13 nicklas 105   <base:page type="popup" title="<%=title%>" id="edit-page">
6306 13 Aug 13 nicklas 106   <base:head scripts="tabcontrol-2.js,~tags.js" styles="tabcontrol.css">
5492 16 Nov 10 nicklas 107     <ext:scripts context="<%=jspContext%>" />
5492 16 Nov 10 nicklas 108     <ext:stylesheets context="<%=jspContext%>" />
838 28 Jun 05 nicklas 109   </base:head>
6306 13 Aug 13 nicklas 110   <base:body>
5913 15 Dec 11 nicklas 111     <h1><%=title%> <base:help tabcontrol="settings"/></h1>
6162 10 Oct 12 nicklas 112     <form action="index.jsp?ID=<%=ID%>" method="post" name="tag">
1864 30 Jan 06 nicklas 113     <input type="hidden" name="cmd" value="UpdateItem">
1864 30 Jan 06 nicklas 114
5913 15 Dec 11 nicklas 115     <t:tabcontrol id="settings" 
5913 15 Dec 11 nicklas 116       subclass="content dialogtabcontrol"
5632 17 May 11 nicklas 117       position="bottom"  remember="<%=tag != null%>"
5492 16 Nov 10 nicklas 118       extensions="<%=invoker%>">
6306 13 Aug 13 nicklas 119     <t:tab id="info" title="Tag" helpid="tag.edit">
5913 15 Dec 11 nicklas 120       <table class="fullform input100 smaller">
838 28 Jun 05 nicklas 121       <tr>
5913 15 Dec 11 nicklas 122         <th>Name</th>
6306 13 Aug 13 nicklas 123         <td><input class="text required auto-init" data-auto-init="<%=tag == null ? "focus-select" : "focus" %>"
6306 13 Aug 13 nicklas 124           type="text" name="name" 
5632 17 May 11 nicklas 125           value="<%=HTML.encodeTags(tag == null ? Values.getString(cc.getPropertyValue("name"), "New tag") : tag.getName())%>" 
5913 15 Dec 11 nicklas 126           maxlength="<%=Tag.MAX_NAME_LENGTH%>"></td>
5913 15 Dec 11 nicklas 127         <td></td>
838 28 Jun 05 nicklas 128       </tr>
5913 15 Dec 11 nicklas 129       <tr>
5913 15 Dec 11 nicklas 130         <th>Type</th>
5913 15 Dec 11 nicklas 131         <td>
5632 17 May 11 nicklas 132           <select name="tagtype_id" 
5632 17 May 11 nicklas 133             <%=!readCurrentTagType ? "disabled readonly class=\"disabled\"" : "class=\"required\""%>>
5632 17 May 11 nicklas 134           <%
5632 17 May 11 nicklas 135           if (!readCurrentTagType)
5632 17 May 11 nicklas 136           {
5632 17 May 11 nicklas 137             %>
5632 17 May 11 nicklas 138             <option value="-1">- denied -
5632 17 May 11 nicklas 139             <%
5632 17 May 11 nicklas 140           }
5632 17 May 11 nicklas 141           else
5632 17 May 11 nicklas 142           {
5632 17 May 11 nicklas 143             for (ItemSubtype tagType : tagTypeQuery.list(dc))
5632 17 May 11 nicklas 144             {
5632 17 May 11 nicklas 145               int id = tagType.getId();
5632 17 May 11 nicklas 146               if (id != currentTagTypeId && tagType.isRemoved()) continue;
5632 17 May 11 nicklas 147               %>
5632 17 May 11 nicklas 148               <option value="<%=id == currentTagTypeId && tag != null ? -id : id%>" 
5632 17 May 11 nicklas 149                 <%=id == currentTagTypeId ? "selected" : ""%>
5632 17 May 11 nicklas 150                 ><%=HTML.encodeTags(tagType.getName())%>
5632 17 May 11 nicklas 151               <%
5632 17 May 11 nicklas 152             }
5632 17 May 11 nicklas 153           }
5632 17 May 11 nicklas 154           %>
5632 17 May 11 nicklas 155           </select>
5632 17 May 11 nicklas 156         </td>
5913 15 Dec 11 nicklas 157         <td></td>
5632 17 May 11 nicklas 158       </tr>
5913 15 Dec 11 nicklas 159       <tr class="dynamic">
5913 15 Dec 11 nicklas 160         <th>Description</th>
5913 15 Dec 11 nicklas 161         <td>
6217 14 Dec 12 nicklas 162           <textarea class="text" rows="6" name="description" id="description"
5632 17 May 11 nicklas 163             ><%=HTML.encodeTags(tag == null ? cc.getPropertyValue("description") : tag.getDescription())%></textarea>
838 28 Jun 05 nicklas 164         </td>
5913 15 Dec 11 nicklas 165         <td style="width: 20px;">
6215 13 Dec 12 nicklas 166           <base:zoom textarea="description" title="Description" />
5913 15 Dec 11 nicklas 167         </td>
838 28 Jun 05 nicklas 168       </tr>
838 28 Jun 05 nicklas 169       </table>
838 28 Jun 05 nicklas 170     </t:tab>
6335 21 Oct 13 olle 171     <t:tab id="annotations" title="Annotations" helpid="annotations.edit">
6335 21 Oct 13 olle 172       <jsp:include page="../../common/annotations/annotate_frameset.jsp">
6335 21 Oct 13 olle 173         <jsp:param name="item_type" value="<%=itemType.name()%>" />
6335 21 Oct 13 olle 174         <jsp:param name="item_id" value="<%=itemId%>" />
6335 21 Oct 13 olle 175         <jsp:param name="ID" value="<%=ID%>" />
6335 21 Oct 13 olle 176       </jsp:include>
6335 21 Oct 13 olle 177     </t:tab>
838 28 Jun 05 nicklas 178     </t:tabcontrol>
5913 15 Dec 11 nicklas 179     </form>
5913 15 Dec 11 nicklas 180     
5913 15 Dec 11 nicklas 181     <div class="legend">
5946 03 Feb 12 nicklas 182       <base:icon image="required.png" />= required information
5913 15 Dec 11 nicklas 183     </div>
838 28 Jun 05 nicklas 184
5913 15 Dec 11 nicklas 185     <base:buttongroup subclass="dialogbuttons">
6306 13 Aug 13 nicklas 186       <base:button id="btnSave" title="Save" />
6306 13 Aug 13 nicklas 187       <base:button id="close" title="Cancel" />
5913 15 Dec 11 nicklas 188     </base:buttongroup>
838 28 Jun 05 nicklas 189   </base:body>
838 28 Jun 05 nicklas 190   </base:page>
838 28 Jun 05 nicklas 191   <%
838 28 Jun 05 nicklas 192 }
838 28 Jun 05 nicklas 193 finally
838 28 Jun 05 nicklas 194 {
838 28 Jun 05 nicklas 195   if (dc != null) dc.close();
838 28 Jun 05 nicklas 196 }
838 28 Jun 05 nicklas 197 %>