www/admin/extravaluetypes/index.jsp

Code
Comments
Other
Rev Date Author Line
2658 22 Sep 06 nicklas 1 <%-- $Id$
2658 22 Sep 06 nicklas 2   ------------------------------------------------------------------
3675 16 Aug 07 jari 3   Copyright (C) 2006, 2007 Nicklas Nordborg
2658 22 Sep 06 nicklas 4
2658 22 Sep 06 nicklas 5   This file is part of BASE - BioArray Software Environment.
2658 22 Sep 06 nicklas 6   Available at http://base.thep.lu.se/
2658 22 Sep 06 nicklas 7
2658 22 Sep 06 nicklas 8   BASE is free software; you can redistribute it and/or
2658 22 Sep 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
2658 22 Sep 06 nicklas 11   of the License, or (at your option) any later version.
2658 22 Sep 06 nicklas 12
2658 22 Sep 06 nicklas 13   BASE is distributed in the hope that it will be useful,
2658 22 Sep 06 nicklas 14   but WITHOUT ANY WARRANTY; without even the implied warranty of
2658 22 Sep 06 nicklas 15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2658 22 Sep 06 nicklas 16   GNU General Public License for more details.
2658 22 Sep 06 nicklas 17
2658 22 Sep 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/>.
2658 22 Sep 06 nicklas 20   ------------------------------------------------------------------
2658 22 Sep 06 nicklas 21
2658 22 Sep 06 nicklas 22   @author Nicklas
2658 22 Sep 06 nicklas 23   @version 2.0
2658 22 Sep 06 nicklas 24 --%>
5426 24 Sep 10 nicklas 25 <%@ page pageEncoding="UTF-8" session="false"
2658 22 Sep 06 nicklas 26   import="net.sf.basedb.core.SessionControl"
2658 22 Sep 06 nicklas 27   import="net.sf.basedb.core.DbControl"
2658 22 Sep 06 nicklas 28   import="net.sf.basedb.core.Item"
2658 22 Sep 06 nicklas 29   import="net.sf.basedb.core.Type"
2658 22 Sep 06 nicklas 30   import="net.sf.basedb.core.Include"
2658 22 Sep 06 nicklas 31   import="net.sf.basedb.core.ExtraValueType"
3558 16 Jul 07 nicklas 32   import="net.sf.basedb.core.Formula"
2733 16 Oct 06 nicklas 33   import="net.sf.basedb.core.Coloring"
2658 22 Sep 06 nicklas 34   import="net.sf.basedb.core.ItemQuery"
2658 22 Sep 06 nicklas 35   import="net.sf.basedb.core.Permission"
2658 22 Sep 06 nicklas 36   import="net.sf.basedb.core.ItemContext"
2658 22 Sep 06 nicklas 37   import="net.sf.basedb.core.MultiPermissions"
2658 22 Sep 06 nicklas 38   import="net.sf.basedb.core.PermissionDeniedException"
2658 22 Sep 06 nicklas 39   import="net.sf.basedb.core.ItemAlreadyExistsException"
2658 22 Sep 06 nicklas 40   import="net.sf.basedb.util.RemovableUtil"
2658 22 Sep 06 nicklas 41   import="net.sf.basedb.clients.web.Base"
2658 22 Sep 06 nicklas 42   import="net.sf.basedb.clients.web.WebException"
2753 20 Oct 06 nicklas 43   import="net.sf.basedb.util.Values"
2658 22 Sep 06 nicklas 44   import="net.sf.basedb.clients.web.util.HTML"
5510 19 Nov 10 nicklas 45   import="net.sf.basedb.core.plugin.GuiContext"
5510 19 Nov 10 nicklas 46   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
5510 19 Nov 10 nicklas 47   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
5510 19 Nov 10 nicklas 48   import="net.sf.basedb.clients.web.extensions.JspContext"
5510 19 Nov 10 nicklas 49   import="net.sf.basedb.clients.web.extensions.edit.EditUtil"
7604 25 Feb 19 nicklas 50   import="net.sf.basedb.clients.web.extensions.edit.OnSaveAction"
5510 19 Nov 10 nicklas 51   import="net.sf.basedb.clients.web.extensions.edit.OnSaveRenderer"
6045 03 Apr 12 nicklas 52   import="net.sf.basedb.clients.web.extensions.list.ListColumnExportRenderer"
7604 25 Feb 19 nicklas 53   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6045 03 Apr 12 nicklas 54   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
2658 22 Sep 06 nicklas 55   import="java.util.Enumeration"
2658 22 Sep 06 nicklas 56   import="java.util.Set"
2658 22 Sep 06 nicklas 57   import="java.util.HashSet"
2658 22 Sep 06 nicklas 58   import="java.util.List"
2658 22 Sep 06 nicklas 59   import="java.util.ArrayList"
2658 22 Sep 06 nicklas 60   import="java.util.Collections"
2658 22 Sep 06 nicklas 61 %>
2658 22 Sep 06 nicklas 62 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2658 22 Sep 06 nicklas 63 <%!
2658 22 Sep 06 nicklas 64   private static final ItemContext defaultContext = Base.createDefaultContext("name", "name,externalId,valueType,description");
2658 22 Sep 06 nicklas 65   private static final Item itemType = Item.EXTRAVALUETYPE;
2658 22 Sep 06 nicklas 66 %>
2658 22 Sep 06 nicklas 67 <%
2658 22 Sep 06 nicklas 68 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
2658 22 Sep 06 nicklas 69 final String ID = sc.getId();
2658 22 Sep 06 nicklas 70 final String cmd = request.getParameter("cmd");
2658 22 Sep 06 nicklas 71 final String root = request.getContextPath()+"/";
2658 22 Sep 06 nicklas 72 final String mode = request.getParameter("mode");
2658 22 Sep 06 nicklas 73 final String callback = request.getParameter("callback");
2658 22 Sep 06 nicklas 74 final String itemId = request.getParameter("item_id");
2658 22 Sep 06 nicklas 75 final String listPage = "list_extravaluetypes.jsp?ID="+ID
2658 22 Sep 06 nicklas 76   +(mode == null ? "" : "&mode="+mode)
2658 22 Sep 06 nicklas 77   +(callback == null ? "" : "&callback="+callback)
2658 22 Sep 06 nicklas 78   +(itemId == null ? "" : "&item_id="+itemId);
2658 22 Sep 06 nicklas 79 final String viewPage = "view_extravaluetype.jsp?ID="+ID;
2658 22 Sep 06 nicklas 80 final String editPage = "edit_extravaluetype.jsp?ID="+ID;
2658 22 Sep 06 nicklas 81
2658 22 Sep 06 nicklas 82 String forward = null;
2658 22 Sep 06 nicklas 83 String redirect = null;
2658 22 Sep 06 nicklas 84 String message = null;
2658 22 Sep 06 nicklas 85 DbControl dc = null;
2658 22 Sep 06 nicklas 86
2658 22 Sep 06 nicklas 87 try
2658 22 Sep 06 nicklas 88 {
2658 22 Sep 06 nicklas 89   if (cmd == null || "List".equals(cmd))
2658 22 Sep 06 nicklas 90   {
2658 22 Sep 06 nicklas 91     // Display the list page without updatinging the current context
2811 26 Oct 06 nicklas 92     Base.getAndSetCurrentContext(sc, itemType, null, defaultContext, true);
2658 22 Sep 06 nicklas 93     redirect = listPage;
2658 22 Sep 06 nicklas 94   }
2658 22 Sep 06 nicklas 95   else if ("UpdateContext".equals(cmd))
2658 22 Sep 06 nicklas 96   {
2658 22 Sep 06 nicklas 97     // Display the list page after updating the current context from the request parameters
2658 22 Sep 06 nicklas 98     Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 99     redirect = listPage;
2658 22 Sep 06 nicklas 100   }
2658 22 Sep 06 nicklas 101   else if ("LoadContext".equals(cmd))
2658 22 Sep 06 nicklas 102   {
2658 22 Sep 06 nicklas 103     // Display the list page after loading a saved context
2658 22 Sep 06 nicklas 104     int contextId = Values.getInt(request.getParameter("context"));
2658 22 Sep 06 nicklas 105     Base.loadContext(sc, contextId, defaultContext);
2658 22 Sep 06 nicklas 106     redirect = listPage;
2658 22 Sep 06 nicklas 107   }
2658 22 Sep 06 nicklas 108
2658 22 Sep 06 nicklas 109   else if ("ViewItem".equals(cmd))
2658 22 Sep 06 nicklas 110   {
2658 22 Sep 06 nicklas 111     // Display the view page for a single item 
2658 22 Sep 06 nicklas 112     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 113     forward = viewPage;
2658 22 Sep 06 nicklas 114   }
2658 22 Sep 06 nicklas 115   else if ("EditItem".equals(cmd))
2658 22 Sep 06 nicklas 116   {
2658 22 Sep 06 nicklas 117     // Display the edit page for a single item (should be opened in a popup)
2658 22 Sep 06 nicklas 118     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 119     redirect = editPage;
2658 22 Sep 06 nicklas 120   }
2658 22 Sep 06 nicklas 121   else if ("NewItem".equals(cmd))
2658 22 Sep 06 nicklas 122   {
2658 22 Sep 06 nicklas 123     // Display the edit page for a new item (should be opened in a popup)
2658 22 Sep 06 nicklas 124     if (!sc.hasPermission(Permission.CREATE, itemType))
2658 22 Sep 06 nicklas 125     {
2658 22 Sep 06 nicklas 126       throw new PermissionDeniedException(Permission.CREATE, itemType.toString());
2658 22 Sep 06 nicklas 127     }
2658 22 Sep 06 nicklas 128     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 129     cc.setId(0);
2658 22 Sep 06 nicklas 130     redirect = editPage;
2658 22 Sep 06 nicklas 131   }
2658 22 Sep 06 nicklas 132   else if ("UpdateItem".equals(cmd))
2658 22 Sep 06 nicklas 133   {
2658 22 Sep 06 nicklas 134     // Update the properties on an item (will close the popup)
2658 22 Sep 06 nicklas 135     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, defaultContext);
7954 12 May 21 nicklas 136     dc = sc.newDbControl(":Edit "+itemType);
7605 26 Feb 19 nicklas 137     ExtraValueType extraValueType = cc.getObject("item");
2658 22 Sep 06 nicklas 138     String externalId = Values.getStringOrNull(request.getParameter("external_id"));
2658 22 Sep 06 nicklas 139     if (extraValueType == null)
2658 22 Sep 06 nicklas 140     {
2658 22 Sep 06 nicklas 141       Type valueType = Type.valueOf(request.getParameter("value_type"));
2658 22 Sep 06 nicklas 142       extraValueType = ExtraValueType.getNew(dc, externalId, valueType);
2658 22 Sep 06 nicklas 143       message = "Extra value type created";
2658 22 Sep 06 nicklas 144       dc.saveItem(extraValueType);
2658 22 Sep 06 nicklas 145     }
2658 22 Sep 06 nicklas 146     else
2658 22 Sep 06 nicklas 147     {
5060 19 Aug 09 nicklas 148       dc.reattachItem(extraValueType, false);
2733 16 Oct 06 nicklas 149       message = "Extra value type updated";
2658 22 Sep 06 nicklas 150     }
5510 19 Nov 10 nicklas 151     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.item(Item.EXTRAVALUETYPE), extraValueType);
7604 25 Feb 19 nicklas 152     ExtensionsInvoker<OnSaveAction> invoker = EditUtil.useOnSaveExtensions(jspContext);
5510 19 Nov 10 nicklas 153     try
5510 19 Nov 10 nicklas 154     {
5510 19 Nov 10 nicklas 155       extraValueType.setName(Values.getStringOrNull(request.getParameter("name")));
5510 19 Nov 10 nicklas 156       extraValueType.setDescription(Values.getStringOrNull(request.getParameter("description")));
5510 19 Nov 10 nicklas 157       extraValueType.setExternalId(externalId);
5510 19 Nov 10 nicklas 158       extraValueType.setAverageMethod(Formula.AverageMethod.valueOf(request.getParameter("averageMethod")));
5510 19 Nov 10 nicklas 159       Coloring coloring = extraValueType.getColoring();
5510 19 Nov 10 nicklas 160       coloring.setUsingColors(Values.getBoolean(request.getParameter("use_colors")));
5510 19 Nov 10 nicklas 161       coloring.setLogarithmic(Values.getBoolean(request.getParameter("logarithmic")));
5510 19 Nov 10 nicklas 162       coloring.setMinValue(Values.getFloat(request.getParameter("min_value"), null));
5510 19 Nov 10 nicklas 163       coloring.setMidValue(Values.getFloat(request.getParameter("mid_value"), null));
5510 19 Nov 10 nicklas 164       coloring.setMaxValue(Values.getFloat(request.getParameter("max_value"), null));
5510 19 Nov 10 nicklas 165       
5510 19 Nov 10 nicklas 166       // OnSave extensions
5510 19 Nov 10 nicklas 167       invoker.render(OnSaveRenderer.ON_SAVE);
5510 19 Nov 10 nicklas 168       dc.commit();
5510 19 Nov 10 nicklas 169       invoker.render(OnSaveRenderer.ON_COMMIT);
5510 19 Nov 10 nicklas 170     }
5510 19 Nov 10 nicklas 171     catch (Exception ex)
5510 19 Nov 10 nicklas 172     {
5510 19 Nov 10 nicklas 173       invoker.render(OnSaveRenderer.onRollback(ex));
5510 19 Nov 10 nicklas 174       throw ex;
5510 19 Nov 10 nicklas 175     }
5510 19 Nov 10 nicklas 176     finally
5510 19 Nov 10 nicklas 177     {
5510 19 Nov 10 nicklas 178       cc.removeObject("item");
5510 19 Nov 10 nicklas 179     }
2658 22 Sep 06 nicklas 180   }
2658 22 Sep 06 nicklas 181   else if ("DeleteItem".equals(cmd))
2658 22 Sep 06 nicklas 182   {
2658 22 Sep 06 nicklas 183     // Delete a single item and then return to the view page
7954 12 May 21 nicklas 184     dc = sc.newDbControl(":Delete "+itemType);
2658 22 Sep 06 nicklas 185     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 186     RemovableUtil.setRemoved(dc, itemType, Collections.singleton(cc.getId()), true);
2658 22 Sep 06 nicklas 187     dc.commit();
2658 22 Sep 06 nicklas 188     redirect = viewPage;
2658 22 Sep 06 nicklas 189   }
2658 22 Sep 06 nicklas 190   else if ("DeleteItems".equals(cmd))
2658 22 Sep 06 nicklas 191   {
2658 22 Sep 06 nicklas 192     // Delete all selected items on the list page
7954 12 May 21 nicklas 193     dc = sc.newDbControl(":Delete "+itemType);
2658 22 Sep 06 nicklas 194     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 195     int numTotal = cc.getSelected().size();
2658 22 Sep 06 nicklas 196     int numRemoved = RemovableUtil.setRemoved(dc, itemType, cc.getSelected(), true);
2658 22 Sep 06 nicklas 197     dc.commit();
2658 22 Sep 06 nicklas 198     if (numTotal != numRemoved)
2658 22 Sep 06 nicklas 199     {
2658 22 Sep 06 nicklas 200       message = (numRemoved == 0 ? "No" : "Only "+numRemoved+" of "+numTotal) + " items could be deleted, because you have no DELETE permission";
2658 22 Sep 06 nicklas 201     }
6192 31 Oct 12 nicklas 202     redirect = listPage;
2658 22 Sep 06 nicklas 203   }
2658 22 Sep 06 nicklas 204   else if ("RestoreItem".equals(cmd))
2658 22 Sep 06 nicklas 205   {
2658 22 Sep 06 nicklas 206     // Restore a single item and then return to the view page
7954 12 May 21 nicklas 207     dc = sc.newDbControl(":Restore "+itemType);
2658 22 Sep 06 nicklas 208     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 209     RemovableUtil.setRemoved(dc, itemType, Collections.singleton(cc.getId()), false);
2658 22 Sep 06 nicklas 210     dc.commit();
2658 22 Sep 06 nicklas 211     redirect = viewPage;
2658 22 Sep 06 nicklas 212   }
2658 22 Sep 06 nicklas 213   else if ("RestoreItems".equals(cmd))
2658 22 Sep 06 nicklas 214   {
2658 22 Sep 06 nicklas 215     // Restore all selected items on the list page
7954 12 May 21 nicklas 216     dc = sc.newDbControl(":Restore "+itemType);
2658 22 Sep 06 nicklas 217     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 218     int numTotal = cc.getSelected().size();
2658 22 Sep 06 nicklas 219     int numRemoved = RemovableUtil.setRemoved(dc, itemType, cc.getSelected(), false);
2658 22 Sep 06 nicklas 220     dc.commit();
2658 22 Sep 06 nicklas 221     if (numTotal != numRemoved)
2658 22 Sep 06 nicklas 222     {
2658 22 Sep 06 nicklas 223       message = (numRemoved == 0 ? "No" : "Only "+numRemoved+" of "+numTotal) + " items could be restored, because you have no WRITE permission";
2658 22 Sep 06 nicklas 224     }
6192 31 Oct 12 nicklas 225     redirect = listPage;
2658 22 Sep 06 nicklas 226   }
2658 22 Sep 06 nicklas 227   else if ("ExportItems".equals(cmd))
2658 22 Sep 06 nicklas 228   {
2658 22 Sep 06 nicklas 229     // Run an export plugin in a list context
2658 22 Sep 06 nicklas 230     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 231     final ItemQuery<ExtraValueType> query = ExtraValueType.getQuery();
7954 12 May 21 nicklas 232     dc = sc.newDbControl(":Export "+itemType);
7914 23 Feb 21 nicklas 233     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 234     cc.configureQuery(dc, query, jspContext, true);
6045 03 Apr 12 nicklas 235     cc.setQuery(query);
7604 25 Feb 19 nicklas 236     ExtensionsInvoker<ListColumnAction<ExtraValueType,?>> listInvoker = ListColumnUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 237     listInvoker.render(new ListColumnExportRenderer<ExtraValueType>(cc));
5590 16 Mar 11 nicklas 238     dc.close();
2658 22 Sep 06 nicklas 239     redirect = "../../common/export/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=LIST&title=Export+extra+value+types";
2658 22 Sep 06 nicklas 240   }
2658 22 Sep 06 nicklas 241   else if ("ExportItem".equals(cmd))
2658 22 Sep 06 nicklas 242   {
2658 22 Sep 06 nicklas 243     // Run an export plugin in single-item context
2658 22 Sep 06 nicklas 244     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 245     redirect = "../../common/export/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=ITEM&title=Export+extra+value+type";
2658 22 Sep 06 nicklas 246   }
2658 22 Sep 06 nicklas 247   else if ("ImportItems".equals(cmd))
2658 22 Sep 06 nicklas 248   {
2658 22 Sep 06 nicklas 249     // Run an import plugin in a list context
2658 22 Sep 06 nicklas 250     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 251     final ItemQuery<ExtraValueType> query = ExtraValueType.getQuery();
7954 12 May 21 nicklas 252     dc = sc.newDbControl(":Import "+itemType);
7914 23 Feb 21 nicklas 253     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 254     cc.configureQuery(dc, query, jspContext, true);
5590 16 Mar 11 nicklas 255     dc.close();
2658 22 Sep 06 nicklas 256     cc.setQuery(query);
2658 22 Sep 06 nicklas 257     redirect = "../../common/import/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=LIST&title=Import+extra+value+types";
2658 22 Sep 06 nicklas 258   }
2658 22 Sep 06 nicklas 259   else if ("ImportItem".equals(cmd))
2658 22 Sep 06 nicklas 260   {
2658 22 Sep 06 nicklas 261     // Run an import plugin in single-item context
2658 22 Sep 06 nicklas 262     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 263     redirect = "../../common/import/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=ITEM&title=Import+extra+value+type";
2658 22 Sep 06 nicklas 264   }
2658 22 Sep 06 nicklas 265   else if ("RunListPlugin".equals(cmd))
2658 22 Sep 06 nicklas 266   {
2658 22 Sep 06 nicklas 267     // Run another plugin in a list context
2658 22 Sep 06 nicklas 268     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 269     final ItemQuery<ExtraValueType> query = ExtraValueType.getQuery();
7954 12 May 21 nicklas 270     dc = sc.newDbControl(":Run plugin "+itemType);
7914 23 Feb 21 nicklas 271     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 272     cc.configureQuery(dc, query, jspContext, true);
5590 16 Mar 11 nicklas 273     dc.close();
2658 22 Sep 06 nicklas 274     cc.setQuery(query);
2658 22 Sep 06 nicklas 275     redirect = "../../common/plugin/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=LIST&main_type=OTHER&title=Run+plugin";
2658 22 Sep 06 nicklas 276   }
2658 22 Sep 06 nicklas 277   else if ("RunPlugin".equals(cmd))
2658 22 Sep 06 nicklas 278   {
2658 22 Sep 06 nicklas 279     // Run another plugin in single-item context
2658 22 Sep 06 nicklas 280     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2658 22 Sep 06 nicklas 281     redirect = "../../common/plugin/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=ITEM&main_type=OTHER&title=Run+plugin";
2658 22 Sep 06 nicklas 282   }
2658 22 Sep 06 nicklas 283   else
2658 22 Sep 06 nicklas 284   {
2658 22 Sep 06 nicklas 285     throw new WebException("popup", "Invalid command", "The command {1} is not recognised as a valid command.", cmd);
2658 22 Sep 06 nicklas 286   }
2658 22 Sep 06 nicklas 287 }
2658 22 Sep 06 nicklas 288 finally
2658 22 Sep 06 nicklas 289 {
2658 22 Sep 06 nicklas 290   if (dc != null) dc.close();
2658 22 Sep 06 nicklas 291 }
2658 22 Sep 06 nicklas 292
2658 22 Sep 06 nicklas 293 if (forward != null)
2658 22 Sep 06 nicklas 294 {
6192 31 Oct 12 nicklas 295   sc.setSessionSetting("alert-message", message);
2658 22 Sep 06 nicklas 296   pageContext.forward(forward);
2658 22 Sep 06 nicklas 297 }
2658 22 Sep 06 nicklas 298 else if (redirect != null)
2658 22 Sep 06 nicklas 299 {
6192 31 Oct 12 nicklas 300   sc.setSessionSetting("alert-message", message);
2658 22 Sep 06 nicklas 301   response.sendRedirect(redirect);
2658 22 Sep 06 nicklas 302 }
2658 22 Sep 06 nicklas 303 else if (message == null)
2658 22 Sep 06 nicklas 304 {
2658 22 Sep 06 nicklas 305   response.sendRedirect(root + "common/close_popup.jsp?refresh_opener=1&wait=0");
2658 22 Sep 06 nicklas 306 }
2658 22 Sep 06 nicklas 307 else
2658 22 Sep 06 nicklas 308 {
2658 22 Sep 06 nicklas 309   response.sendRedirect(root + "common/close_popup.jsp?refresh_opener=1&message="+HTML.urlEncode(message));
2658 22 Sep 06 nicklas 310 }
2658 22 Sep 06 nicklas 311 %>
2658 22 Sep 06 nicklas 312