www/lims/platemappings/index.jsp

Code
Comments
Other
Rev Date Author Line
892 07 Jul 05 nicklas 1 <%-- $Id$
892 07 Jul 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
892 07 Jul 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/
892 07 Jul 05 nicklas 8
892 07 Jul 05 nicklas 9   BASE is free software; you can redistribute it and/or
892 07 Jul 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
892 07 Jul 05 nicklas 12   of the License, or (at your option) any later version.
892 07 Jul 05 nicklas 13
892 07 Jul 05 nicklas 14   BASE is distributed in the hope that it will be useful,
892 07 Jul 05 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
892 07 Jul 05 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
892 07 Jul 05 nicklas 17   GNU General Public License for more details.
892 07 Jul 05 nicklas 18
892 07 Jul 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/>.
892 07 Jul 05 nicklas 21   ------------------------------------------------------------------
892 07 Jul 05 nicklas 22
892 07 Jul 05 nicklas 23   @author Nicklas
892 07 Jul 05 nicklas 24   @version 2.0
892 07 Jul 05 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
892 07 Jul 05 nicklas 27   import="net.sf.basedb.core.SessionControl"
892 07 Jul 05 nicklas 28   import="net.sf.basedb.core.DbControl"
892 07 Jul 05 nicklas 29   import="net.sf.basedb.core.Item"
1850 26 Jan 06 nicklas 30   import="net.sf.basedb.core.Include"
892 07 Jul 05 nicklas 31   import="net.sf.basedb.core.PlateMapping"
892 07 Jul 05 nicklas 32   import="net.sf.basedb.core.PlateGeometry"
1418 07 Oct 05 nicklas 33   import="net.sf.basedb.core.ItemQuery"
1418 07 Oct 05 nicklas 34   import="net.sf.basedb.core.ItemResultIterator"
892 07 Jul 05 nicklas 35   import="net.sf.basedb.core.Permission"
1850 26 Jan 06 nicklas 36   import="net.sf.basedb.core.ItemContext"
1850 26 Jan 06 nicklas 37   import="net.sf.basedb.core.MultiPermissions"
4587 15 Oct 08 martin 38   import="net.sf.basedb.core.OwnedItem"
1850 26 Jan 06 nicklas 39   import="net.sf.basedb.core.PermissionDeniedException"
1850 26 Jan 06 nicklas 40   import="net.sf.basedb.core.ItemAlreadyExistsException"
1850 26 Jan 06 nicklas 41   import="net.sf.basedb.util.RemovableUtil"
1850 26 Jan 06 nicklas 42   import="net.sf.basedb.util.ShareableUtil"
2919 15 Nov 06 nicklas 43   import="net.sf.basedb.util.OwnableUtil"
892 07 Jul 05 nicklas 44   import="net.sf.basedb.clients.web.Base"
1850 26 Jan 06 nicklas 45   import="net.sf.basedb.clients.web.WebException"
2753 20 Oct 06 nicklas 46   import="net.sf.basedb.util.Values"
892 07 Jul 05 nicklas 47   import="net.sf.basedb.clients.web.util.HTML"
5498 17 Nov 10 nicklas 48   import="net.sf.basedb.core.plugin.GuiContext"
5498 17 Nov 10 nicklas 49   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
5498 17 Nov 10 nicklas 50   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
5498 17 Nov 10 nicklas 51   import="net.sf.basedb.clients.web.extensions.JspContext"
5498 17 Nov 10 nicklas 52   import="net.sf.basedb.clients.web.extensions.edit.EditUtil"
7604 25 Feb 19 nicklas 53   import="net.sf.basedb.clients.web.extensions.edit.OnSaveAction"
5498 17 Nov 10 nicklas 54   import="net.sf.basedb.clients.web.extensions.edit.OnSaveRenderer"
6039 29 Mar 12 nicklas 55   import="net.sf.basedb.clients.web.extensions.list.ListColumnExportRenderer"
7604 25 Feb 19 nicklas 56   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6039 29 Mar 12 nicklas 57   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
1850 26 Jan 06 nicklas 58   import="java.util.Enumeration"
1850 26 Jan 06 nicklas 59   import="java.util.Set"
1850 26 Jan 06 nicklas 60   import="java.util.HashSet"
1850 26 Jan 06 nicklas 61   import="java.util.List"
1850 26 Jan 06 nicklas 62   import="java.util.ArrayList"
1850 26 Jan 06 nicklas 63   import="java.util.Collections"
892 07 Jul 05 nicklas 64 %>
892 07 Jul 05 nicklas 65 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
892 07 Jul 05 nicklas 66 <%!
1850 26 Jan 06 nicklas 67   private static final ItemContext defaultContext = Base.createDefaultContext("name", "name,image,sourceCount,sourceGeometry,destinationCount,destinationGeometry,description");
1850 26 Jan 06 nicklas 68   private static final Item itemType = Item.PLATEMAPPING;
892 07 Jul 05 nicklas 69 %>
892 07 Jul 05 nicklas 70 <%
1850 26 Jan 06 nicklas 71 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
892 07 Jul 05 nicklas 72 final String ID = sc.getId();
1850 26 Jan 06 nicklas 73 final String cmd = request.getParameter("cmd");
1850 26 Jan 06 nicklas 74 final String root = request.getContextPath()+"/";
1850 26 Jan 06 nicklas 75 final String mode = request.getParameter("mode");
1850 26 Jan 06 nicklas 76 final String callback = request.getParameter("callback");
1850 26 Jan 06 nicklas 77 final String itemId = request.getParameter("item_id");
1850 26 Jan 06 nicklas 78 final String listPage = "list_mappings.jsp?ID="+ID
1850 26 Jan 06 nicklas 79   +(mode == null ? "" : "&mode="+mode)
1850 26 Jan 06 nicklas 80   +(callback == null ? "" : "&callback="+callback)
1850 26 Jan 06 nicklas 81   +(itemId == null ? "" : "&item_id="+itemId);
1850 26 Jan 06 nicklas 82 final String viewPage = "view_mapping.jsp?ID="+ID;
1850 26 Jan 06 nicklas 83 final String editPage = "edit_mapping.jsp?ID="+ID;
892 07 Jul 05 nicklas 84
1850 26 Jan 06 nicklas 85 String forward = null;
1850 26 Jan 06 nicklas 86 String redirect = null;
1850 26 Jan 06 nicklas 87 String message = null;
1850 26 Jan 06 nicklas 88 DbControl dc = null;
1850 26 Jan 06 nicklas 89
892 07 Jul 05 nicklas 90 try
892 07 Jul 05 nicklas 91 {
1850 26 Jan 06 nicklas 92   if (cmd == null || "List".equals(cmd))
1850 26 Jan 06 nicklas 93   {
1850 26 Jan 06 nicklas 94     // Display the list page without updatinging the current context
2811 26 Oct 06 nicklas 95     Base.getAndSetCurrentContext(sc, itemType, null, defaultContext, true);
1850 26 Jan 06 nicklas 96     redirect = listPage;
1850 26 Jan 06 nicklas 97   }
1850 26 Jan 06 nicklas 98   else if ("UpdateContext".equals(cmd))
1850 26 Jan 06 nicklas 99   {
1850 26 Jan 06 nicklas 100     // Display the list page after updating the current context from the request parameters
1850 26 Jan 06 nicklas 101     Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 102     redirect = listPage;
1850 26 Jan 06 nicklas 103   }
1850 26 Jan 06 nicklas 104   else if ("LoadContext".equals(cmd))
1850 26 Jan 06 nicklas 105   {
1850 26 Jan 06 nicklas 106     // Display the list page after loading a saved context
1850 26 Jan 06 nicklas 107     int contextId = Values.getInt(request.getParameter("context"));
1850 26 Jan 06 nicklas 108     Base.loadContext(sc, contextId, defaultContext);
1850 26 Jan 06 nicklas 109     redirect = listPage;
1850 26 Jan 06 nicklas 110   }
892 07 Jul 05 nicklas 111
1850 26 Jan 06 nicklas 112   else if ("ViewItem".equals(cmd))
1850 26 Jan 06 nicklas 113   {
1850 26 Jan 06 nicklas 114     // Display the view page for a single item 
1850 26 Jan 06 nicklas 115     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 116     forward = viewPage;
1850 26 Jan 06 nicklas 117   }
1850 26 Jan 06 nicklas 118   else if ("EditItem".equals(cmd))
1850 26 Jan 06 nicklas 119   {
1850 26 Jan 06 nicklas 120     // Display the edit page for a single item (should be opened in a popup)
1850 26 Jan 06 nicklas 121     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 122     redirect = editPage;
1850 26 Jan 06 nicklas 123   }
1850 26 Jan 06 nicklas 124   else if ("NewItem".equals(cmd))
1850 26 Jan 06 nicklas 125   {
1850 26 Jan 06 nicklas 126     // Display the edit page for a new item (should be opened in a popup)
1850 26 Jan 06 nicklas 127     if (!sc.hasPermission(Permission.CREATE, itemType))
892 07 Jul 05 nicklas 128     {
1850 26 Jan 06 nicklas 129       throw new PermissionDeniedException(Permission.CREATE, itemType.toString());
892 07 Jul 05 nicklas 130     }
1850 26 Jan 06 nicklas 131     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 132     cc.setId(0);
1850 26 Jan 06 nicklas 133     redirect = editPage;
1850 26 Jan 06 nicklas 134   }
1850 26 Jan 06 nicklas 135   else if ("UpdateItem".equals(cmd))
1850 26 Jan 06 nicklas 136   {
1850 26 Jan 06 nicklas 137     // Update the properties on an item (will close the popup)
1850 26 Jan 06 nicklas 138     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, defaultContext);
7954 12 May 21 nicklas 139     dc = sc.newDbControl(":Edit "+itemType);
7605 26 Feb 19 nicklas 140     PlateMapping mapping = cc.getObject("item");
1850 26 Jan 06 nicklas 141     if (mapping == null)
892 07 Jul 05 nicklas 142     {
1850 26 Jan 06 nicklas 143       int sourceGeometryId = Values.getInt(request.getParameter("sourcegeometry_id"));
1850 26 Jan 06 nicklas 144       int sourceCount = Values.getInt(request.getParameter("source_count"));
1850 26 Jan 06 nicklas 145       int destinationGeometryId = Values.getInt(request.getParameter("destinationgeometry_id"));
1850 26 Jan 06 nicklas 146       int destinationCount = Values.getInt(request.getParameter("destination_count"));
1850 26 Jan 06 nicklas 147       
1850 26 Jan 06 nicklas 148       mapping = PlateMapping.getNew(dc, 
1850 26 Jan 06 nicklas 149         PlateGeometry.getById(dc, sourceGeometryId), sourceCount,
1850 26 Jan 06 nicklas 150         PlateGeometry.getById(dc, destinationGeometryId), destinationCount
1850 26 Jan 06 nicklas 151       );
1850 26 Jan 06 nicklas 152       message = "Plate mapping created";
1850 26 Jan 06 nicklas 153       dc.saveItem(mapping);
892 07 Jul 05 nicklas 154     }
1850 26 Jan 06 nicklas 155     else
892 07 Jul 05 nicklas 156     {
5060 19 Aug 09 nicklas 157       dc.reattachItem(mapping, false);
1850 26 Jan 06 nicklas 158       message = "Plate mapping updated";
892 07 Jul 05 nicklas 159     }
5498 17 Nov 10 nicklas 160     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.item(Item.PLATEMAPPING), mapping);
7604 25 Feb 19 nicklas 161     ExtensionsInvoker<OnSaveAction> invoker = EditUtil.useOnSaveExtensions(jspContext);
5498 17 Nov 10 nicklas 162     try
5498 17 Nov 10 nicklas 163     {
5498 17 Nov 10 nicklas 164       mapping.setName(Values.getStringOrNull(request.getParameter("name")));
5498 17 Nov 10 nicklas 165       mapping.setDescription(Values.getStringOrNull(request.getParameter("description")));
5498 17 Nov 10 nicklas 166       
5498 17 Nov 10 nicklas 167       // OnSave extensions
5498 17 Nov 10 nicklas 168       invoker.render(OnSaveRenderer.ON_SAVE);
5498 17 Nov 10 nicklas 169       dc.commit();
5498 17 Nov 10 nicklas 170       invoker.render(OnSaveRenderer.ON_COMMIT);
5498 17 Nov 10 nicklas 171     }
5498 17 Nov 10 nicklas 172     catch (Exception ex)
5498 17 Nov 10 nicklas 173     {
5498 17 Nov 10 nicklas 174       invoker.render(OnSaveRenderer.onRollback(ex));
5498 17 Nov 10 nicklas 175       throw ex;
5498 17 Nov 10 nicklas 176     }
5498 17 Nov 10 nicklas 177     finally
5498 17 Nov 10 nicklas 178     {
5498 17 Nov 10 nicklas 179       cc.removeObject("item");
5498 17 Nov 10 nicklas 180     }
1850 26 Jan 06 nicklas 181   }
1850 26 Jan 06 nicklas 182   else if ("DeleteItem".equals(cmd))
1850 26 Jan 06 nicklas 183   {
1850 26 Jan 06 nicklas 184     // Delete a single item and then return to the view page
7954 12 May 21 nicklas 185     dc = sc.newDbControl(":Delete "+itemType);
1850 26 Jan 06 nicklas 186     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 187     RemovableUtil.setRemoved(dc, itemType, Collections.singleton(cc.getId()), true);
1850 26 Jan 06 nicklas 188     dc.commit();
1850 26 Jan 06 nicklas 189     redirect = viewPage;
1850 26 Jan 06 nicklas 190   }
1850 26 Jan 06 nicklas 191   else if ("DeleteItems".equals(cmd))
1850 26 Jan 06 nicklas 192   {
1850 26 Jan 06 nicklas 193     // Delete all selected items on the list page
7954 12 May 21 nicklas 194     dc = sc.newDbControl(":Delete "+itemType);
1850 26 Jan 06 nicklas 195     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 196     int numTotal = cc.getSelected().size();
1850 26 Jan 06 nicklas 197     int numRemoved = RemovableUtil.setRemoved(dc, itemType, cc.getSelected(), true);
1850 26 Jan 06 nicklas 198     dc.commit();
1850 26 Jan 06 nicklas 199     if (numTotal != numRemoved)
892 07 Jul 05 nicklas 200     {
1850 26 Jan 06 nicklas 201       message = (numRemoved == 0 ? "No" : "Only "+numRemoved+" of "+numTotal) + " items could be deleted, because you have no DELETE permission";
892 07 Jul 05 nicklas 202     }
6192 31 Oct 12 nicklas 203     redirect = listPage;
1850 26 Jan 06 nicklas 204   }
1850 26 Jan 06 nicklas 205   else if ("RestoreItem".equals(cmd))
1850 26 Jan 06 nicklas 206   {
1850 26 Jan 06 nicklas 207     // Restore a single item and then return to the view page
7954 12 May 21 nicklas 208     dc = sc.newDbControl(":Restore "+itemType);
1850 26 Jan 06 nicklas 209     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 210     RemovableUtil.setRemoved(dc, itemType, Collections.singleton(cc.getId()), false);
1850 26 Jan 06 nicklas 211     dc.commit();
1850 26 Jan 06 nicklas 212     redirect = viewPage;
1850 26 Jan 06 nicklas 213   }
1850 26 Jan 06 nicklas 214   else if ("RestoreItems".equals(cmd))
1850 26 Jan 06 nicklas 215   {
1850 26 Jan 06 nicklas 216     // Restore all selected items on the list page
7954 12 May 21 nicklas 217     dc = sc.newDbControl(":Restore "+itemType);
1850 26 Jan 06 nicklas 218     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 219     int numTotal = cc.getSelected().size();
1850 26 Jan 06 nicklas 220     int numRemoved = RemovableUtil.setRemoved(dc, itemType, cc.getSelected(), false);
1850 26 Jan 06 nicklas 221     dc.commit();
1850 26 Jan 06 nicklas 222     if (numTotal != numRemoved)
892 07 Jul 05 nicklas 223     {
2528 15 Aug 06 martin 224       message = (numRemoved == 0 ? "No" : "Only "+numRemoved+" of "+numTotal) + " items could be restored, because you have no WRITE permission";
892 07 Jul 05 nicklas 225     }
6192 31 Oct 12 nicklas 226     redirect = listPage;
1850 26 Jan 06 nicklas 227   }
1850 26 Jan 06 nicklas 228   else if ("ShareItem".equals(cmd))
1850 26 Jan 06 nicklas 229   {
1850 26 Jan 06 nicklas 230     // Display a popup window for sharing a single item
7954 12 May 21 nicklas 231     dc = sc.newDbControl(":Share "+itemType);
1850 26 Jan 06 nicklas 232     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 233     MultiPermissions permissions = ShareableUtil.getMultiPermissions(dc, itemType, Collections.singleton(cc.getId()));
1850 26 Jan 06 nicklas 234     dc.close();
1850 26 Jan 06 nicklas 235     cc.setObject("MultiPermissions", permissions);
1850 26 Jan 06 nicklas 236     redirect = "../../common/share/share.jsp?ID="+ID+"&item_type="+itemType.name();
1850 26 Jan 06 nicklas 237   }
1850 26 Jan 06 nicklas 238   else if ("ShareItems".equals(cmd))
1850 26 Jan 06 nicklas 239   {
1850 26 Jan 06 nicklas 240     // Display a popup window for sharing all selected items on the list page
7954 12 May 21 nicklas 241     dc = sc.newDbControl(":Share "+itemType);
1850 26 Jan 06 nicklas 242     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 243     MultiPermissions permissions = ShareableUtil.getMultiPermissions(dc, itemType, cc.getSelected());
1850 26 Jan 06 nicklas 244     dc.close();
1850 26 Jan 06 nicklas 245     cc.setObject("MultiPermissions", permissions);
1850 26 Jan 06 nicklas 246     redirect = "../../common/share/share.jsp?ID="+ID+"&item_type="+itemType.name();
1850 26 Jan 06 nicklas 247   }
4578 13 Oct 08 martin 248   else if ("SetOwnerOfItem".equals(cmd))
2919 15 Nov 06 nicklas 249   {
4578 13 Oct 08 martin 250     // Change owner of items selected on a list page
7954 12 May 21 nicklas 251     dc = sc.newDbControl(":Set owner of "+itemType);
2919 15 Nov 06 nicklas 252     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
4587 15 Oct 08 martin 253     OwnedItem item = (OwnedItem)itemType.getById(dc, cc.getId());
4587 15 Oct 08 martin 254     cc.setObject("OwnedItems", Collections.singleton(item));
4578 13 Oct 08 martin 255     redirect = "../../common/ownership/ownership.jsp?ID="+ID+"&item_type="+itemType.name();
2919 15 Nov 06 nicklas 256   }
4578 13 Oct 08 martin 257   else if ("SetOwnerOfItems".equals(cmd))
2919 15 Nov 06 nicklas 258   {
4578 13 Oct 08 martin 259     // Change owner of items selected on a list page
7954 12 May 21 nicklas 260     dc = sc.newDbControl(":Set owner of "+itemType);
2919 15 Nov 06 nicklas 261     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
4587 15 Oct 08 martin 262     Set<OwnedItem> items = new HashSet<OwnedItem>();
4587 15 Oct 08 martin 263     for (Integer id : cc.getSelected())
4587 15 Oct 08 martin 264     {
4587 15 Oct 08 martin 265       if (id != null) items.add((OwnedItem)itemType.getById(dc, id));
4587 15 Oct 08 martin 266     }
4587 15 Oct 08 martin 267     dc.close();
4587 15 Oct 08 martin 268     cc.setObject("OwnedItems", items);
4578 13 Oct 08 martin 269     redirect = "../../common/ownership/ownership.jsp?ID="+ID+"&item_type="+itemType.name();
2919 15 Nov 06 nicklas 270   }
1850 26 Jan 06 nicklas 271   else if ("ExportItems".equals(cmd))
1850 26 Jan 06 nicklas 272   {
1850 26 Jan 06 nicklas 273     // Run an export plugin in a list context
1850 26 Jan 06 nicklas 274     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 275     final ItemQuery<PlateMapping> query = PlateMapping.getQuery();
7954 12 May 21 nicklas 276     dc = sc.newDbControl(":Export "+itemType);
7914 23 Feb 21 nicklas 277     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 278     cc.configureQuery(dc, query, jspContext, true);
6039 29 Mar 12 nicklas 279     cc.setQuery(query);
7604 25 Feb 19 nicklas 280     ExtensionsInvoker<ListColumnAction<PlateMapping,?>> listInvoker = ListColumnUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 281     listInvoker.render(new ListColumnExportRenderer<PlateMapping>(cc));
5590 16 Mar 11 nicklas 282     dc.close();
1850 26 Jan 06 nicklas 283     redirect = "../../common/export/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=LIST&title=Export+plate+mappings";
1850 26 Jan 06 nicklas 284   }
1850 26 Jan 06 nicklas 285   else if ("ExportItem".equals(cmd))
1850 26 Jan 06 nicklas 286   {
1850 26 Jan 06 nicklas 287     // Run an export plugin in single-item context
1850 26 Jan 06 nicklas 288     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 289     redirect = "../../common/export/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=ITEM&title=Export+plate+mapping";
1850 26 Jan 06 nicklas 290   }
1850 26 Jan 06 nicklas 291   else if ("ImportItems".equals(cmd))
1850 26 Jan 06 nicklas 292   {
1850 26 Jan 06 nicklas 293     // Run an import plugin in a list context
1850 26 Jan 06 nicklas 294     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 295     final ItemQuery<PlateMapping> query = PlateMapping.getQuery();
7954 12 May 21 nicklas 296     dc = sc.newDbControl(":Import "+itemType);
7914 23 Feb 21 nicklas 297     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 298     cc.configureQuery(dc, query, jspContext, true);
5590 16 Mar 11 nicklas 299     dc.close();
1850 26 Jan 06 nicklas 300     cc.setQuery(query);
1850 26 Jan 06 nicklas 301     redirect = "../../common/import/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=LIST&title=Import+plate+mappings";
1850 26 Jan 06 nicklas 302   }
1850 26 Jan 06 nicklas 303   else if ("ImportItem".equals(cmd))
1850 26 Jan 06 nicklas 304   {
1850 26 Jan 06 nicklas 305     // Run an import plugin in single-item context
1850 26 Jan 06 nicklas 306     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 307     redirect = "../../common/import/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=ITEM&title=Import+plate+mapping";
1850 26 Jan 06 nicklas 308   }
1850 26 Jan 06 nicklas 309   else if ("RunListPlugin".equals(cmd))
1850 26 Jan 06 nicklas 310   {
1850 26 Jan 06 nicklas 311     // Run another plugin in a list context
1850 26 Jan 06 nicklas 312     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 313     final ItemQuery<PlateMapping> query = PlateMapping.getQuery();
7954 12 May 21 nicklas 314     dc = sc.newDbControl(":Run plugin "+itemType);
7914 23 Feb 21 nicklas 315     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 316     cc.configureQuery(dc, query, jspContext, true);
5590 16 Mar 11 nicklas 317     dc.close();
1850 26 Jan 06 nicklas 318     cc.setQuery(query);
1850 26 Jan 06 nicklas 319     redirect = "../../common/plugin/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=LIST&main_type=OTHER&title=Run+plugin";
1850 26 Jan 06 nicklas 320   }
1850 26 Jan 06 nicklas 321   else if ("RunPlugin".equals(cmd))
1850 26 Jan 06 nicklas 322   {
1850 26 Jan 06 nicklas 323     // Run another plugin in single-item context
1850 26 Jan 06 nicklas 324     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
1850 26 Jan 06 nicklas 325     redirect = "../../common/plugin/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=ITEM&main_type=OTHER&title=Run+plugin";
1850 26 Jan 06 nicklas 326   }
1850 26 Jan 06 nicklas 327   else
1850 26 Jan 06 nicklas 328   {
1850 26 Jan 06 nicklas 329     throw new WebException("popup", "Invalid command", "The command {1} is not recognised as a valid command.", cmd);
1850 26 Jan 06 nicklas 330   }
892 07 Jul 05 nicklas 331 }
892 07 Jul 05 nicklas 332 finally
892 07 Jul 05 nicklas 333 {
892 07 Jul 05 nicklas 334   if (dc != null) dc.close();
892 07 Jul 05 nicklas 335 }
1850 26 Jan 06 nicklas 336
1850 26 Jan 06 nicklas 337 if (forward != null)
1850 26 Jan 06 nicklas 338 {
6192 31 Oct 12 nicklas 339   sc.setSessionSetting("alert-message", message);
1850 26 Jan 06 nicklas 340   pageContext.forward(forward);
1850 26 Jan 06 nicklas 341 }
1850 26 Jan 06 nicklas 342 else if (redirect != null)
1850 26 Jan 06 nicklas 343 {
6192 31 Oct 12 nicklas 344   sc.setSessionSetting("alert-message", message);
1850 26 Jan 06 nicklas 345   response.sendRedirect(redirect);
1850 26 Jan 06 nicklas 346 }
1850 26 Jan 06 nicklas 347 else if (message == null)
1850 26 Jan 06 nicklas 348 {
1850 26 Jan 06 nicklas 349   response.sendRedirect(root + "common/close_popup.jsp?refresh_opener=1&wait=0");
1850 26 Jan 06 nicklas 350 }
1850 26 Jan 06 nicklas 351 else
1850 26 Jan 06 nicklas 352 {
1850 26 Jan 06 nicklas 353   response.sendRedirect(root + "common/close_popup.jsp?refresh_opener=1&message="+HTML.urlEncode(message));
1850 26 Jan 06 nicklas 354 }
1850 26 Jan 06 nicklas 355 %>
1850 26 Jan 06 nicklas 356