www/biomaterials/bioplatetypes/index.jsp

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