www/admin/clients/index.jsp

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