www/views/reporters/index.jsp

Code
Comments
Other
Rev Date Author Line
1606 14 Nov 05 nicklas 1 <%-- $Id$
1606 14 Nov 05 nicklas 2   ------------------------------------------------------------------
3675 16 Aug 07 jari 3   Copyright (C) 2005 Nicklas Nordborg
5425 23 Sep 10 nicklas 4   Copyright (C) 2006 Johan Enell, Jari Häkkinen, Nicklas Nordborg
1606 14 Nov 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/
1606 14 Nov 05 nicklas 8
1606 14 Nov 05 nicklas 9   BASE is free software; you can redistribute it and/or
1606 14 Nov 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
1606 14 Nov 05 nicklas 12   of the License, or (at your option) any later version.
1606 14 Nov 05 nicklas 13
1606 14 Nov 05 nicklas 14   BASE is distributed in the hope that it will be useful,
1606 14 Nov 05 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
1606 14 Nov 05 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1606 14 Nov 05 nicklas 17   GNU General Public License for more details.
1606 14 Nov 05 nicklas 18
1606 14 Nov 05 nicklas 19   You should have received a copy of the GNU General Public License
4511 11 Sep 08 jari 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
1606 14 Nov 05 nicklas 21   ------------------------------------------------------------------
1606 14 Nov 05 nicklas 22
1606 14 Nov 05 nicklas 23   @author Nicklas
1606 14 Nov 05 nicklas 24   @version 2.0
1606 14 Nov 05 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1606 14 Nov 05 nicklas 27   import="net.sf.basedb.core.SessionControl"
1606 14 Nov 05 nicklas 28   import="net.sf.basedb.core.DbControl"
1606 14 Nov 05 nicklas 29   import="net.sf.basedb.core.Item"
1727 19 Dec 05 nicklas 30   import="net.sf.basedb.core.ItemContext"
1727 19 Dec 05 nicklas 31   import="net.sf.basedb.core.ExtendedProperties"
1727 19 Dec 05 nicklas 32   import="net.sf.basedb.core.ExtendedProperty"
1727 19 Dec 05 nicklas 33   import="net.sf.basedb.core.ReporterBatcher"
1606 14 Nov 05 nicklas 34   import="net.sf.basedb.core.Reporter"
1606 14 Nov 05 nicklas 35   import="net.sf.basedb.core.ReporterType"
1606 14 Nov 05 nicklas 36   import="net.sf.basedb.core.data.ReporterData"
1606 14 Nov 05 nicklas 37   import="net.sf.basedb.core.Permission"
1727 19 Dec 05 nicklas 38   import="net.sf.basedb.core.DataQuery"
1727 19 Dec 05 nicklas 39   import="net.sf.basedb.core.PermissionDeniedException"
3792 27 Sep 07 martin 40   import="net.sf.basedb.core.BaseException"
4093 18 Jan 08 enell 41   import="net.sf.basedb.core.User"
1727 19 Dec 05 nicklas 42   import="net.sf.basedb.util.RemovableUtil"
1727 19 Dec 05 nicklas 43   import="net.sf.basedb.util.ShareableUtil"
5432 29 Sep 10 nicklas 44   import="net.sf.basedb.util.formatter.Formatter"
1606 14 Nov 05 nicklas 45   import="net.sf.basedb.clients.web.Base"
1727 19 Dec 05 nicklas 46   import="net.sf.basedb.clients.web.WebException"
2753 20 Oct 06 nicklas 47   import="net.sf.basedb.util.Values"
1606 14 Nov 05 nicklas 48   import="net.sf.basedb.clients.web.util.HTML"
5432 29 Sep 10 nicklas 49   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
5501 18 Nov 10 nicklas 50   import="net.sf.basedb.core.plugin.GuiContext"
5501 18 Nov 10 nicklas 51   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
5501 18 Nov 10 nicklas 52   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
5501 18 Nov 10 nicklas 53   import="net.sf.basedb.clients.web.extensions.JspContext"
5501 18 Nov 10 nicklas 54   import="net.sf.basedb.clients.web.extensions.edit.EditUtil"
7604 25 Feb 19 nicklas 55   import="net.sf.basedb.clients.web.extensions.edit.OnSaveAction"
5501 18 Nov 10 nicklas 56   import="net.sf.basedb.clients.web.extensions.edit.OnSaveRenderer"
6040 30 Mar 12 nicklas 57   import="net.sf.basedb.clients.web.extensions.list.ListColumnExportRenderer"
7604 25 Feb 19 nicklas 58   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6040 30 Mar 12 nicklas 59   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
1727 19 Dec 05 nicklas 60   import="java.util.Enumeration"
2747 19 Oct 06 enell 61   import="java.util.List"
7496 11 Jul 18 nicklas 62   import="java.util.Map"
1606 14 Nov 05 nicklas 63 %>
1606 14 Nov 05 nicklas 64 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1606 14 Nov 05 nicklas 65 <%!
1727 19 Dec 05 nicklas 66   private static final ItemContext defaultContext = Base.createDefaultContext("name", "name,externalId,symbol,description");
1727 19 Dec 05 nicklas 67   private static final Item itemType = Item.REPORTER;
1606 14 Nov 05 nicklas 68 %>
1606 14 Nov 05 nicklas 69 <%
1727 19 Dec 05 nicklas 70 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
1606 14 Nov 05 nicklas 71 final String ID = sc.getId();
1727 19 Dec 05 nicklas 72 final String cmd = request.getParameter("cmd");
1727 19 Dec 05 nicklas 73 final String root = request.getContextPath()+"/";
1775 16 Jan 06 nicklas 74 final String mode = request.getParameter("mode");
1775 16 Jan 06 nicklas 75 final String callback = request.getParameter("callback");
1775 16 Jan 06 nicklas 76 final String itemId = request.getParameter("item_id");
1775 16 Jan 06 nicklas 77 final String listPage = "list_reporters.jsp?ID="+ID
1775 16 Jan 06 nicklas 78   +(mode == null ? "" : "&mode="+mode)
1775 16 Jan 06 nicklas 79   +(callback == null ? "" : "&callback="+callback)
1775 16 Jan 06 nicklas 80   +(itemId == null ? "" : "&item_id="+itemId);
1727 19 Dec 05 nicklas 81 final String viewPage = "view_reporter.jsp?ID="+ID;
1727 19 Dec 05 nicklas 82 final String editPage = "edit_reporter.jsp?ID="+ID;
1606 14 Nov 05 nicklas 83
1727 19 Dec 05 nicklas 84 String forward = null;
1727 19 Dec 05 nicklas 85 String redirect = null;
1727 19 Dec 05 nicklas 86 String message = null;
1727 19 Dec 05 nicklas 87 DbControl dc = null;
1606 14 Nov 05 nicklas 88 try
1606 14 Nov 05 nicklas 89 {
1727 19 Dec 05 nicklas 90   if (cmd == null || "List".equals(cmd))
1606 14 Nov 05 nicklas 91   {
1738 09 Jan 06 nicklas 92     // Display the list page without updatinging the current context
2811 26 Oct 06 nicklas 93     Base.getAndSetCurrentContext(sc, itemType, null, defaultContext, true);
1727 19 Dec 05 nicklas 94     redirect = listPage;
1606 14 Nov 05 nicklas 95   }
1727 19 Dec 05 nicklas 96   else if ("UpdateContext".equals(cmd))
1727 19 Dec 05 nicklas 97   {
1738 09 Jan 06 nicklas 98     // Display the list page after updating the current context from the request parameters
1727 19 Dec 05 nicklas 99     Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1727 19 Dec 05 nicklas 100     redirect = listPage;
1727 19 Dec 05 nicklas 101   }
1727 19 Dec 05 nicklas 102   else if ("LoadContext".equals(cmd))
1727 19 Dec 05 nicklas 103   {
1738 09 Jan 06 nicklas 104     // Display the list page after loading a saved context
1727 19 Dec 05 nicklas 105     int contextId = Values.getInt(request.getParameter("context"));
1749 10 Jan 06 nicklas 106     Base.loadContext(sc, contextId, defaultContext);
1727 19 Dec 05 nicklas 107     redirect = listPage;
1727 19 Dec 05 nicklas 108   }
1738 09 Jan 06 nicklas 109   
1727 19 Dec 05 nicklas 110   else if ("ViewItem".equals(cmd))
1727 19 Dec 05 nicklas 111   {
1738 09 Jan 06 nicklas 112     // Display the view page for a single item 
1727 19 Dec 05 nicklas 113     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1765 13 Jan 06 nicklas 114     forward = viewPage;
1727 19 Dec 05 nicklas 115   }
1727 19 Dec 05 nicklas 116   else if ("EditItem".equals(cmd))
1727 19 Dec 05 nicklas 117   {
1738 09 Jan 06 nicklas 118     // Display the edit page for a single item (should be opened in a popup)
1727 19 Dec 05 nicklas 119     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1727 19 Dec 05 nicklas 120     redirect = editPage;
1727 19 Dec 05 nicklas 121   }
1727 19 Dec 05 nicklas 122   else if ("NewItem".equals(cmd))
1727 19 Dec 05 nicklas 123   {
1738 09 Jan 06 nicklas 124     // Display the edit page for a new item (should be opened in a popup)
1727 19 Dec 05 nicklas 125     if (!sc.hasPermission(Permission.CREATE, itemType))
1606 14 Nov 05 nicklas 126     {
1727 19 Dec 05 nicklas 127       throw new PermissionDeniedException(Permission.CREATE, itemType.toString());
1606 14 Nov 05 nicklas 128     }
1727 19 Dec 05 nicklas 129     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1727 19 Dec 05 nicklas 130     cc.setId(0);
1727 19 Dec 05 nicklas 131     redirect = editPage;
1727 19 Dec 05 nicklas 132   }
1727 19 Dec 05 nicklas 133   else if ("UpdateItem".equals(cmd))
1727 19 Dec 05 nicklas 134   {
1738 09 Jan 06 nicklas 135     // Update the properties on an item (will close the popup)
1727 19 Dec 05 nicklas 136     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, defaultContext);
2597 25 Aug 06 nicklas 137     final int maxRecent = Base.getMaxRecent(sc);
7954 12 May 21 nicklas 138     dc = sc.newDbControl(":Edit "+itemType);
7605 26 Feb 19 nicklas 139     ReporterData reporter = cc.getObject("item");
1727 19 Dec 05 nicklas 140     if (reporter == null)
1606 14 Nov 05 nicklas 141     {
1727 19 Dec 05 nicklas 142       reporter = Reporter.getNew(Values.getStringOrNull(request.getParameter("externalId")));
1606 14 Nov 05 nicklas 143     }
1727 19 Dec 05 nicklas 144     else
1606 14 Nov 05 nicklas 145     {
1727 19 Dec 05 nicklas 146       reporter.setExternalId(Values.getStringOrNull(request.getParameter("externalId")));
1606 14 Nov 05 nicklas 147     }
5501 18 Nov 10 nicklas 148     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.item(Item.REPORTER), reporter);
7604 25 Feb 19 nicklas 149     ExtensionsInvoker<OnSaveAction> invoker = EditUtil.useOnSaveExtensions(jspContext);
5501 18 Nov 10 nicklas 150     try
1606 14 Nov 05 nicklas 151     {
5501 18 Nov 10 nicklas 152       reporter.setName(Values.getStringOrNull(request.getParameter("name")));
5501 18 Nov 10 nicklas 153       reporter.setDescription(Values.getStringOrNull(request.getParameter("description")));
5501 18 Nov 10 nicklas 154       reporter.setSymbol(Values.getStringOrNull(request.getParameter("symbol")));
5501 18 Nov 10 nicklas 155       int reporterTypeId = Values.getInt(request.getParameter("reportertype_id"), -1);
5501 18 Nov 10 nicklas 156       if (reporterTypeId >= 0) // < 0 = denied or unchanged
2747 19 Oct 06 enell 157       {
5501 18 Nov 10 nicklas 158         ReporterType rt = reporterTypeId == 0 ? null : ReporterType.getById(dc, reporterTypeId);
5501 18 Nov 10 nicklas 159         Reporter.setReporterType(reporter, rt);
7703 11 Apr 19 nicklas 160         cc.setRecent(Item.REPORTERTYPE, rt, maxRecent);
2747 19 Oct 06 enell 161       }
7496 11 Jul 18 nicklas 162       List<ExtendedProperty> reporterProperties = ExtendedProperties.getProperties("ReporterData", true);
5501 18 Nov 10 nicklas 163       if (reporterProperties != null)
5501 18 Nov 10 nicklas 164       {
7496 11 Jul 18 nicklas 165         Map<String, String[]> parameters = request.getParameterMap();
5501 18 Nov 10 nicklas 166         for (ExtendedProperty ep : reporterProperties)
5501 18 Nov 10 nicklas 167         {
5501 18 Nov 10 nicklas 168           String name = ep.getName();
7496 11 Jul 18 nicklas 169           if (parameters.containsKey("ep."+name))
7496 11 Jul 18 nicklas 170           {
7604 25 Feb 19 nicklas 171             Formatter<?> formatter = FormatterFactory.getExtendedPropertyFormatter(sc, ep);
7496 11 Jul 18 nicklas 172             Object value = formatter.parseString(Values.getStringOrNull(request.getParameter("ep."+name)));
7496 11 Jul 18 nicklas 173             reporter.setExtended(name, value);
7496 11 Jul 18 nicklas 174           }
5501 18 Nov 10 nicklas 175         }
5501 18 Nov 10 nicklas 176       }
5501 18 Nov 10 nicklas 177       ReporterBatcher batcher = ReporterBatcher.getNew(dc);
5501 18 Nov 10 nicklas 178       if (reporter.getId() != 0)
5501 18 Nov 10 nicklas 179       {
5501 18 Nov 10 nicklas 180         message = "Reporter updated";
5501 18 Nov 10 nicklas 181         batcher.update(reporter);
5501 18 Nov 10 nicklas 182       }
5501 18 Nov 10 nicklas 183       else
5501 18 Nov 10 nicklas 184       {
5501 18 Nov 10 nicklas 185         message = "Reporter created";
5501 18 Nov 10 nicklas 186         batcher.insert(reporter);
5501 18 Nov 10 nicklas 187       }
5501 18 Nov 10 nicklas 188       batcher.close();
5501 18 Nov 10 nicklas 189       
5501 18 Nov 10 nicklas 190       // OnSave extensions
5501 18 Nov 10 nicklas 191       invoker.render(OnSaveRenderer.ON_SAVE);
5501 18 Nov 10 nicklas 192       dc.commit();
5501 18 Nov 10 nicklas 193       invoker.render(OnSaveRenderer.ON_COMMIT);
1606 14 Nov 05 nicklas 194     }
5501 18 Nov 10 nicklas 195     catch (Exception ex)
1606 14 Nov 05 nicklas 196     {
5501 18 Nov 10 nicklas 197       invoker.render(OnSaveRenderer.onRollback(ex));
5501 18 Nov 10 nicklas 198       throw ex;
1606 14 Nov 05 nicklas 199     }
5501 18 Nov 10 nicklas 200     finally
1612 15 Nov 05 nicklas 201     {
5501 18 Nov 10 nicklas 202       cc.removeObject("item");
1612 15 Nov 05 nicklas 203     }
1727 19 Dec 05 nicklas 204   }
1738 09 Jan 06 nicklas 205   else if ("DeleteItem".equals(cmd))
1727 19 Dec 05 nicklas 206   {
1738 09 Jan 06 nicklas 207     // Delete a single item and then return to the list page
7954 12 May 21 nicklas 208     dc = sc.newDbControl(":Delete "+itemType);
1727 19 Dec 05 nicklas 209     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1738 09 Jan 06 nicklas 210     ReporterBatcher batcher = ReporterBatcher.getNew(dc);
3792 27 Sep 07 martin 211     try
3792 27 Sep 07 martin 212     {
3792 27 Sep 07 martin 213       batcher.delete(cc.getId());
3792 27 Sep 07 martin 214       batcher.close();
3792 27 Sep 07 martin 215       dc.commit();    
3792 27 Sep 07 martin 216       redirect = listPage;
3792 27 Sep 07 martin 217     }
3792 27 Sep 07 martin 218     catch (BaseException bex)
3792 27 Sep 07 martin 219     {
3792 27 Sep 07 martin 220       message = "The reporter can not be deleted. " +
3792 27 Sep 07 martin 221         "Probably because it is used by other items";
6192 31 Oct 12 nicklas 222       redirect = viewPage;
3792 27 Sep 07 martin 223     }
1738 09 Jan 06 nicklas 224   }
1738 09 Jan 06 nicklas 225   else if ("DeleteItems".equals(cmd))
1738 09 Jan 06 nicklas 226   {
1738 09 Jan 06 nicklas 227     // Delete all selected items on the list page
7954 12 May 21 nicklas 228     dc = sc.newDbControl(":Delete "+itemType);
1738 09 Jan 06 nicklas 229     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1738 09 Jan 06 nicklas 230     ReporterBatcher batcher = ReporterBatcher.getNew(dc);
3792 27 Sep 07 martin 231     batcher.setBatchSize(1);
3792 27 Sep 07 martin 232     int notDeleted = 0;
1738 09 Jan 06 nicklas 233     for (int reporterId : cc.getSelected())
1738 09 Jan 06 nicklas 234     {
3792 27 Sep 07 martin 235       try
3792 27 Sep 07 martin 236       {
3792 27 Sep 07 martin 237         batcher.delete(reporterId);
3792 27 Sep 07 martin 238       }
3792 27 Sep 07 martin 239       catch (BaseException bex)
3792 27 Sep 07 martin 240       {
3792 27 Sep 07 martin 241         notDeleted++;
3792 27 Sep 07 martin 242       }      
3792 27 Sep 07 martin 243     }    
1738 09 Jan 06 nicklas 244     dc.commit();
3792 27 Sep 07 martin 245     message = notDeleted > 0 ? notDeleted + " reporters can not be deleted. " +
3792 27 Sep 07 martin 246         "Probably because they are used by other items" : null;
6192 31 Oct 12 nicklas 247     redirect = listPage;
1738 09 Jan 06 nicklas 248   }
1738 09 Jan 06 nicklas 249   else if ("ExportItems".equals(cmd))
1738 09 Jan 06 nicklas 250   {
1738 09 Jan 06 nicklas 251     // Run an export plugin in a list context
1738 09 Jan 06 nicklas 252     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1727 19 Dec 05 nicklas 253     final DataQuery<ReporterData> query = Reporter.getQuery();
7954 12 May 21 nicklas 254     dc = sc.newDbControl(":Export "+itemType);
7914 23 Feb 21 nicklas 255     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 256     cc.configureQuery(dc, query, jspContext, true);
6040 30 Mar 12 nicklas 257     cc.setQuery(query);
7604 25 Feb 19 nicklas 258     ExtensionsInvoker<ListColumnAction<ReporterData,?>> listInvoker = ListColumnUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 259     listInvoker.render(new ListColumnExportRenderer<ReporterData>(cc));
5590 16 Mar 11 nicklas 260     dc.close();
1738 09 Jan 06 nicklas 261     redirect = "../../common/export/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=LIST&title=Export+reporters";
1727 19 Dec 05 nicklas 262   }
1738 09 Jan 06 nicklas 263   else if ("ExportItem".equals(cmd))
1727 19 Dec 05 nicklas 264   {
1738 09 Jan 06 nicklas 265     // Run an export plugin in single-item context
1727 19 Dec 05 nicklas 266     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1738 09 Jan 06 nicklas 267     redirect = "../../common/export/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=ITEM&title=Export+reporter";
1738 09 Jan 06 nicklas 268   }
1738 09 Jan 06 nicklas 269   else if ("ImportItems".equals(cmd))
1738 09 Jan 06 nicklas 270   {
1738 09 Jan 06 nicklas 271     // Run an import plugin in a list context
1738 09 Jan 06 nicklas 272     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1727 19 Dec 05 nicklas 273     final DataQuery<ReporterData> query = Reporter.getQuery();
7954 12 May 21 nicklas 274     dc = sc.newDbControl(":Import "+itemType);
7914 23 Feb 21 nicklas 275     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 276     cc.configureQuery(dc, query, jspContext, true);
5590 16 Mar 11 nicklas 277     dc.close();
1727 19 Dec 05 nicklas 278     cc.setQuery(query);
1730 20 Dec 05 nicklas 279     redirect = "../../common/import/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=LIST&title=Import+reporters";
1727 19 Dec 05 nicklas 280   }
1738 09 Jan 06 nicklas 281   else if ("ImportItem".equals(cmd))
1727 19 Dec 05 nicklas 282   {
1738 09 Jan 06 nicklas 283     // Run an import plugin in single-item context
1727 19 Dec 05 nicklas 284     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1738 09 Jan 06 nicklas 285     redirect = "../../common/import/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=ITEM&title=Import+reporter";
1738 09 Jan 06 nicklas 286   }
1738 09 Jan 06 nicklas 287   else if ("RunListPlugin".equals(cmd))
1738 09 Jan 06 nicklas 288   {
1738 09 Jan 06 nicklas 289     // Run another plugin in a list context
1738 09 Jan 06 nicklas 290     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1727 19 Dec 05 nicklas 291     final DataQuery<ReporterData> query = Reporter.getQuery();
7954 12 May 21 nicklas 292     dc = sc.newDbControl(":Run plugin "+itemType);
7914 23 Feb 21 nicklas 293     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 294     cc.configureQuery(dc, query, jspContext, true);
5590 16 Mar 11 nicklas 295     dc.close();
1727 19 Dec 05 nicklas 296     cc.setQuery(query);
1787 18 Jan 06 nicklas 297     redirect = "../../common/plugin/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=LIST&main_type=OTHER&title=Run+plugin";
1727 19 Dec 05 nicklas 298   }
1738 09 Jan 06 nicklas 299   else if ("RunPlugin".equals(cmd))
1738 09 Jan 06 nicklas 300   {
1738 09 Jan 06 nicklas 301     // Run another plugin in single-item context
1738 09 Jan 06 nicklas 302     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1787 18 Jan 06 nicklas 303     redirect = "../../common/plugin/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=ITEM&main_type=OTHER&title=Run+plugin";
1738 09 Jan 06 nicklas 304   }
2428 27 Jun 06 nicklas 305   else if ("CreateReporterList".equals(cmd))
2428 27 Jun 06 nicklas 306   {
2428 27 Jun 06 nicklas 307     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2428 27 Jun 06 nicklas 308     final DataQuery<ReporterData> query = Reporter.getQuery();
7954 12 May 21 nicklas 309     dc = sc.newDbControl(":Create reporter list");
7914 23 Feb 21 nicklas 310     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 311     cc.configureQuery(dc, query, jspContext, true);
5590 16 Mar 11 nicklas 312     dc.close();
2428 27 Jun 06 nicklas 313     cc.setQuery(query);
4305 21 May 08 nicklas 314     redirect = "../reporterlists/index.jsp?ID="+ID+"&cmd=NewItem&addReporters=1&formId=reporters&fromContext=REPORTER";
2428 27 Jun 06 nicklas 315   }
1727 19 Dec 05 nicklas 316   else
1727 19 Dec 05 nicklas 317   {
1727 19 Dec 05 nicklas 318     throw new WebException("popup", "Invalid command", "The command {1} is not recognised as a valid command.", cmd);
1727 19 Dec 05 nicklas 319   }
1606 14 Nov 05 nicklas 320 }
1606 14 Nov 05 nicklas 321 finally
1606 14 Nov 05 nicklas 322 {
1606 14 Nov 05 nicklas 323   if (dc != null) dc.close();
1606 14 Nov 05 nicklas 324 }
1727 19 Dec 05 nicklas 325
1727 19 Dec 05 nicklas 326 if (forward != null)
1727 19 Dec 05 nicklas 327 {
6192 31 Oct 12 nicklas 328   sc.setSessionSetting("alert-message", message);
1727 19 Dec 05 nicklas 329   pageContext.forward(forward);
1727 19 Dec 05 nicklas 330 }
1727 19 Dec 05 nicklas 331 else if (redirect != null)
1727 19 Dec 05 nicklas 332 {
6192 31 Oct 12 nicklas 333   sc.setSessionSetting("alert-message", message);
1727 19 Dec 05 nicklas 334   response.sendRedirect(redirect);
1727 19 Dec 05 nicklas 335 }
1727 19 Dec 05 nicklas 336 else if (message == null)
1727 19 Dec 05 nicklas 337 {
1727 19 Dec 05 nicklas 338   response.sendRedirect(root + "common/close_popup.jsp?refresh_opener=1&wait=0");
1727 19 Dec 05 nicklas 339 }
1727 19 Dec 05 nicklas 340 else
1727 19 Dec 05 nicklas 341 {
1727 19 Dec 05 nicklas 342   response.sendRedirect(root + "common/close_popup.jsp?refresh_opener=1&message="+HTML.urlEncode(message));
1727 19 Dec 05 nicklas 343 }
1727 19 Dec 05 nicklas 344 %>
1727 19 Dec 05 nicklas 345