www/admin/pluginconfigurations/edit_configuration.jsp

Code
Comments
Other
Rev Date Author Line
1995 16 Feb 06 nicklas 1 <%-- $Id$
1995 16 Feb 06 nicklas 2   ------------------------------------------------------------------
5425 23 Sep 10 nicklas 3   Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg, Martin Svensson
1995 16 Feb 06 nicklas 4
2304 22 May 06 jari 5   This file is part of BASE - BioArray Software Environment.
2304 22 May 06 jari 6   Available at http://base.thep.lu.se/
1995 16 Feb 06 nicklas 7
1995 16 Feb 06 nicklas 8   BASE is free software; you can redistribute it and/or
1995 16 Feb 06 nicklas 9   modify it under the terms of the GNU General Public License
4476 05 Sep 08 jari 10   as published by the Free Software Foundation; either version 3
1995 16 Feb 06 nicklas 11   of the License, or (at your option) any later version.
1995 16 Feb 06 nicklas 12
1995 16 Feb 06 nicklas 13   BASE is distributed in the hope that it will be useful,
1995 16 Feb 06 nicklas 14   but WITHOUT ANY WARRANTY; without even the implied warranty of
1995 16 Feb 06 nicklas 15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1995 16 Feb 06 nicklas 16   GNU General Public License for more details.
1995 16 Feb 06 nicklas 17
1995 16 Feb 06 nicklas 18   You should have received a copy of the GNU General Public License
4510 11 Sep 08 jari 19   along with BASE. If not, see <http://www.gnu.org/licenses/>.
1995 16 Feb 06 nicklas 20   ------------------------------------------------------------------
1995 16 Feb 06 nicklas 21
1995 16 Feb 06 nicklas 22
1995 16 Feb 06 nicklas 23   @author Nicklas
1995 16 Feb 06 nicklas 24   @version 2.0
1995 16 Feb 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1995 16 Feb 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
1995 16 Feb 06 nicklas 28   import="net.sf.basedb.core.DbControl"
1995 16 Feb 06 nicklas 29   import="net.sf.basedb.core.Item"
1995 16 Feb 06 nicklas 30   import="net.sf.basedb.core.ItemContext"
1995 16 Feb 06 nicklas 31   import="net.sf.basedb.core.Permission"
1995 16 Feb 06 nicklas 32   import="net.sf.basedb.core.PluginConfiguration"
1995 16 Feb 06 nicklas 33   import="net.sf.basedb.core.PluginDefinition"
1995 16 Feb 06 nicklas 34   import="net.sf.basedb.core.ItemQuery"
1995 16 Feb 06 nicklas 35   import="net.sf.basedb.core.ItemResultList"
1995 16 Feb 06 nicklas 36   import="net.sf.basedb.core.PermissionDeniedException"
5451 26 Oct 10 nicklas 37   import="net.sf.basedb.core.plugin.Plugin"
1995 16 Feb 06 nicklas 38   import="net.sf.basedb.core.query.Orders"
1995 16 Feb 06 nicklas 39   import="net.sf.basedb.core.query.Hql"
1995 16 Feb 06 nicklas 40   import="net.sf.basedb.clients.web.Base"
1995 16 Feb 06 nicklas 41   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 42   import="net.sf.basedb.util.Values"
5508 19 Nov 10 nicklas 43   import="net.sf.basedb.core.plugin.GuiContext"
5508 19 Nov 10 nicklas 44   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
5508 19 Nov 10 nicklas 45   import="net.sf.basedb.clients.web.extensions.JspContext"
5508 19 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"
5508 19 Nov 10 nicklas 48   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
2598 28 Aug 06 nicklas 49   import="java.util.List"
1995 16 Feb 06 nicklas 50 %>
1995 16 Feb 06 nicklas 51 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1995 16 Feb 06 nicklas 52 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
6147 21 Sep 12 nicklas 53 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1995 16 Feb 06 nicklas 54 <%
1995 16 Feb 06 nicklas 55 final Item itemType = Item.PLUGINCONFIGURATION;
1995 16 Feb 06 nicklas 56 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
1995 16 Feb 06 nicklas 57 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1995 16 Feb 06 nicklas 58 final int itemId = cc.getId();
6400 27 Jan 14 nicklas 59 final int cloneId = Values.getInt(request.getParameter("clone_id"));
1995 16 Feb 06 nicklas 60 final String ID = sc.getId();
1995 16 Feb 06 nicklas 61 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 62 final DbControl dc = sc.newDbControl(":Edit "+itemType);
1995 16 Feb 06 nicklas 63 try
1995 16 Feb 06 nicklas 64 {
1995 16 Feb 06 nicklas 65   String title = null;
1995 16 Feb 06 nicklas 66   PluginConfiguration configuration = null;
1995 16 Feb 06 nicklas 67   PluginDefinition currentPlugin = null;
2549 18 Aug 06 martin 68   PluginConfiguration originalConfiguration = null;
2549 18 Aug 06 martin 69   PluginDefinition originalCurrentPlugin = null;
1995 16 Feb 06 nicklas 70   boolean readCurrentPlugin = true;
2436 28 Jun 06 nicklas 71   String name = null;
2575 23 Aug 06 nicklas 72   String description = null;
8107 23 Jan 23 nicklas 73   boolean isDisabled = false;
2598 28 Aug 06 nicklas 74   
2598 28 Aug 06 nicklas 75   // Load recently used items
7605 26 Feb 19 nicklas 76   List<PluginDefinition> recentPlugins = cc.getRecent(dc, Item.PLUGINDEFINITION);
1995 16 Feb 06 nicklas 77
6400 27 Jan 14 nicklas 78   if (itemId == 0 && cloneId == 0)
1995 16 Feb 06 nicklas 79   {
1995 16 Feb 06 nicklas 80     title = "Create configuration";
1995 16 Feb 06 nicklas 81     cc.removeObject("item");
2436 28 Jun 06 nicklas 82     int pluginId = Values.getInt(request.getParameter("plugindefinition_id"));
2436 28 Jun 06 nicklas 83     if (pluginId != 0)
1995 16 Feb 06 nicklas 84     {
2436 28 Jun 06 nicklas 85       currentPlugin = PluginDefinition.getById(dc, pluginId);
2436 28 Jun 06 nicklas 86     }
2436 28 Jun 06 nicklas 87     else if (cc.getPropertyFilter("pluginDefinition.name") != null)
2436 28 Jun 06 nicklas 88     {
1995 16 Feb 06 nicklas 89       currentPlugin = Base.getFirstMatching(dc, PluginDefinition.getQuery(), "name", cc.getPropertyFilter("pluginDefinition.name"));
1995 16 Feb 06 nicklas 90     }
2436 28 Jun 06 nicklas 91     if (currentPlugin != null)
2436 28 Jun 06 nicklas 92     {
2436 28 Jun 06 nicklas 93       name = "New " + currentPlugin.getName() + " configuration";
2436 28 Jun 06 nicklas 94     }
2436 28 Jun 06 nicklas 95     else
2436 28 Jun 06 nicklas 96     {
2436 28 Jun 06 nicklas 97       name = Values.getString(cc.getPropertyValue("name"), "New configuration");
2436 28 Jun 06 nicklas 98     }
2575 23 Aug 06 nicklas 99     description = cc.getPropertyValue("description");
1995 16 Feb 06 nicklas 100   }
6400 27 Jan 14 nicklas 101   else if (cloneId != 0)
2549 18 Aug 06 martin 102   {
6400 27 Jan 14 nicklas 103     originalConfiguration = PluginConfiguration.getById(dc, cloneId);
2549 18 Aug 06 martin 104     cc.removeObject("item");
2549 18 Aug 06 martin 105     title = "Create configuration";
2549 18 Aug 06 martin 106     name = "Copy of " + originalConfiguration.getName();
2575 23 Aug 06 nicklas 107     description = originalConfiguration.getDescription();
8107 23 Jan 23 nicklas 108     isDisabled = originalConfiguration.isDisabled();
2549 18 Aug 06 martin 109     try
2549 18 Aug 06 martin 110     {
2549 18 Aug 06 martin 111       currentPlugin = originalConfiguration.getPluginDefinition();
2549 18 Aug 06 martin 112     }
2549 18 Aug 06 martin 113     catch (PermissionDeniedException ex)
2549 18 Aug 06 martin 114     {
2549 18 Aug 06 martin 115       readCurrentPlugin = false;
2549 18 Aug 06 martin 116     }
2549 18 Aug 06 martin 117   }
1995 16 Feb 06 nicklas 118   else
1995 16 Feb 06 nicklas 119   {
1995 16 Feb 06 nicklas 120     configuration = PluginConfiguration.getById(dc, itemId);
6305 09 Aug 13 nicklas 121     configuration.checkPermission(Permission.WRITE);
1995 16 Feb 06 nicklas 122     cc.setObject("item", configuration);
1995 16 Feb 06 nicklas 123     title = "Edit configuration -- " + HTML.encodeTags(configuration.getName());
2436 28 Jun 06 nicklas 124     name = configuration.getName();
2575 23 Aug 06 nicklas 125     description = configuration.getDescription();
8107 23 Jan 23 nicklas 126     isDisabled = configuration.isDisabled();
1995 16 Feb 06 nicklas 127     try
1995 16 Feb 06 nicklas 128     {
1995 16 Feb 06 nicklas 129       currentPlugin = configuration.getPluginDefinition();
1995 16 Feb 06 nicklas 130     }
1995 16 Feb 06 nicklas 131     catch (PermissionDeniedException ex)
1995 16 Feb 06 nicklas 132     {
1995 16 Feb 06 nicklas 133       readCurrentPlugin = false;
1995 16 Feb 06 nicklas 134     }
1995 16 Feb 06 nicklas 135   }
1995 16 Feb 06 nicklas 136   
5508 19 Nov 10 nicklas 137   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.item(itemType), configuration);
7604 25 Feb 19 nicklas 138   ExtensionsInvoker<TabAction> invoker = EditUtil.useEditExtensions(jspContext);
1995 16 Feb 06 nicklas 139   %>
6305 09 Aug 13 nicklas 140   <base:page type="popup" title="<%=title%>" id="edit-page">
6305 09 Aug 13 nicklas 141   <base:head scripts="tabcontrol-2.js,~configurations.js" styles="tabcontrol.css">
5508 19 Nov 10 nicklas 142     <ext:scripts context="<%=jspContext%>" />
5508 19 Nov 10 nicklas 143     <ext:stylesheets context="<%=jspContext%>" />
1995 16 Feb 06 nicklas 144   </base:head>
6305 09 Aug 13 nicklas 145   <base:body>
5922 11 Jan 12 nicklas 146     <h1><%=title%> <base:help tabcontrol="settings" /></h1>
6162 10 Oct 12 nicklas 147     <form action="index.jsp?ID=<%=ID%>" method="post" name="configuration">
1995 16 Feb 06 nicklas 148     <input type="hidden" name="cmd" value="UpdateItem">
2431 27 Jun 06 nicklas 149     <input type="hidden" name="configure" value="0">
2575 23 Aug 06 nicklas 150     <input type="hidden" name="copyfrom" value="<%=originalConfiguration != null ? originalConfiguration.getId() : 0%>">
1995 16 Feb 06 nicklas 151
5922 11 Jan 12 nicklas 152     <t:tabcontrol id="settings"
5922 11 Jan 12 nicklas 153       subclass="content dialogtabcontrol"
6254 22 Mar 13 nicklas 154       position="bottom" remember="<%=configuration != null%>" 
5508 19 Nov 10 nicklas 155       extensions="<%=invoker%>">
6305 09 Aug 13 nicklas 156     <t:tab id="info" title="Configuration" helpid="pluginconfiguration.edit">
5922 11 Jan 12 nicklas 157       <table class="fullform input100 smaller">
5922 11 Jan 12 nicklas 158       <tr>
6305 09 Aug 13 nicklas 159         <th>Name</th>
6305 09 Aug 13 nicklas 160         <td><input class="text required auto-init" data-auto-init="<%=configuration == null ? "focus-select" : "focus" %>"
6305 09 Aug 13 nicklas 161           type="text" name="name" 
6305 09 Aug 13 nicklas 162           value="<%=HTML.encodeTags(name)%>" 
6305 09 Aug 13 nicklas 163           maxlength="<%=PluginConfiguration.MAX_NAME_LENGTH%>"></td>
6305 09 Aug 13 nicklas 164         <td></td>
6305 09 Aug 13 nicklas 165       </tr>
6305 09 Aug 13 nicklas 166       <tr>
5922 11 Jan 12 nicklas 167         <th>Plugin</th>
1995 16 Feb 06 nicklas 168         <td>
1995 16 Feb 06 nicklas 169           <%
1995 16 Feb 06 nicklas 170           if (configuration == null)
1995 16 Feb 06 nicklas 171           {
6305 09 Aug 13 nicklas 172             String pluginMainType = Values.getStringOrNull(request.getParameter("plugin.mainType"));
6305 09 Aug 13 nicklas 173             String pluginItemType = Values.getStringOrNull(request.getParameter("plugin.itemType"));
6305 09 Aug 13 nicklas 174             
1995 16 Feb 06 nicklas 175             %>
2598 28 Aug 06 nicklas 176             <base:select 
2598 28 Aug 06 nicklas 177               id="plugindefinition_id"
2598 28 Aug 06 nicklas 178               clazz="selectionlist required"
2598 28 Aug 06 nicklas 179               required="true"
2598 28 Aug 06 nicklas 180               current="<%=currentPlugin%>"
2598 28 Aug 06 nicklas 181               recent="<%=recentPlugins%>"
2598 28 Aug 06 nicklas 182               newitem="true"
6305 09 Aug 13 nicklas 183               data-plugin-main-type="<%=pluginMainType == null ? "" : Plugin.MainType.valueOf(pluginMainType).getValue()%>"
6305 09 Aug 13 nicklas 184               data-plugin-item-type="<%=pluginItemType == null ? "": Item.valueOf(pluginItemType).getValue()%>"
2598 28 Aug 06 nicklas 185             />
1995 16 Feb 06 nicklas 186             <%
1995 16 Feb 06 nicklas 187           }
1995 16 Feb 06 nicklas 188           else
1995 16 Feb 06 nicklas 189           {
1995 16 Feb 06 nicklas 190             %>
1995 16 Feb 06 nicklas 191             <%=currentPlugin == null ? "<i>- denied -</i>" : HTML.encodeTags(currentPlugin.getName())%>
1995 16 Feb 06 nicklas 192             <%
1995 16 Feb 06 nicklas 193           }
1995 16 Feb 06 nicklas 194           %>
1995 16 Feb 06 nicklas 195         </td>
5922 11 Jan 12 nicklas 196         <td></td>
1995 16 Feb 06 nicklas 197       </tr>
8107 23 Jan 23 nicklas 198       <tr>
8107 23 Jan 23 nicklas 199         <th>Disabled</th>
8107 23 Jan 23 nicklas 200         <td>
8107 23 Jan 23 nicklas 201           <input type="radio" name="disabled" id="disabledNo" value="0" 
8107 23 Jan 23 nicklas 202             <%=!isDisabled ? "checked" : ""%>><label for="disabledNo">no</label>
8107 23 Jan 23 nicklas 203           <input type="radio" name="disabled" id="disabledYes" value="1" 
8107 23 Jan 23 nicklas 204             <%=isDisabled ? "checked" : ""%>><label for="disabledYes">yes</label>
8107 23 Jan 23 nicklas 205         </td>
8107 23 Jan 23 nicklas 206         <td></td>
8107 23 Jan 23 nicklas 207       </tr>  
5922 11 Jan 12 nicklas 208       <tr class="dynamic">
5922 11 Jan 12 nicklas 209         <th>Description</th>
5922 11 Jan 12 nicklas 210         <td>
6217 14 Dec 12 nicklas 211           <textarea class="text" rows="6" name="description" id="description"
2575 23 Aug 06 nicklas 212             ><%=HTML.encodeTags(description)%></textarea>
1995 16 Feb 06 nicklas 213         </td>
5922 11 Jan 12 nicklas 214         <td style="width: 20px;">
6215 13 Dec 12 nicklas 215           <base:zoom textarea="description" title="Description" />
5922 11 Jan 12 nicklas 216         </td>
1995 16 Feb 06 nicklas 217       </tr>
1995 16 Feb 06 nicklas 218       </table>
1995 16 Feb 06 nicklas 219     </t:tab>
3979 19 Nov 07 nicklas 220     
3979 19 Nov 07 nicklas 221     <t:tab id="annotations" title="Annotations" 
3979 19 Nov 07 nicklas 222       helpid="annotations.edit" tooltip="Enter values for annotations"
6305 09 Aug 13 nicklas 223       visible="<%=currentPlugin != null && currentPlugin.supports("net.sf.basedb.core.plugin.AnnotationSetterPlugin")%>">
6254 22 Mar 13 nicklas 224       <jsp:include page="../../common/annotations/annotate_frameset.jsp">
6254 22 Mar 13 nicklas 225         <jsp:param name="item_type" value="<%=itemType.name()%>" />
6254 22 Mar 13 nicklas 226         <jsp:param name="item_id" value="<%=itemId%>" />
6254 22 Mar 13 nicklas 227         <jsp:param name="ID" value="<%=ID%>" />
6254 22 Mar 13 nicklas 228       </jsp:include>
6254 22 Mar 13 nicklas 229     </t:tab>
5922 11 Jan 12 nicklas 230     </t:tabcontrol>
5922 11 Jan 12 nicklas 231     </form>
3979 19 Nov 07 nicklas 232     
5922 11 Jan 12 nicklas 233     <div class="legend">
5946 03 Feb 12 nicklas 234       <base:icon image="required.png" />= required information
5922 11 Jan 12 nicklas 235     </div>
1995 16 Feb 06 nicklas 236
5922 11 Jan 12 nicklas 237     <base:buttongroup subclass="dialogbuttons">
6305 09 Aug 13 nicklas 238       <base:button id="btnSave" title="Save" />
6305 09 Aug 13 nicklas 239       <base:button id="btnSaveAndConfigure" 
5945 02 Feb 12 nicklas 240         image="runplugin.png" title="Save and configure" 
5922 11 Jan 12 nicklas 241         visible="<%=currentPlugin == null || currentPlugin.supportsConfigurations()%>" />
6305 09 Aug 13 nicklas 242       <base:button id="close" title="Cancel" />
5922 11 Jan 12 nicklas 243     </base:buttongroup>
1995 16 Feb 06 nicklas 244   </base:body>
1995 16 Feb 06 nicklas 245   </base:page>
1995 16 Feb 06 nicklas 246   <%
1995 16 Feb 06 nicklas 247 }
1995 16 Feb 06 nicklas 248 finally
1995 16 Feb 06 nicklas 249 {
1995 16 Feb 06 nicklas 250   if (dc != null) dc.close();
1995 16 Feb 06 nicklas 251 }
1995 16 Feb 06 nicklas 252 %>