www/admin/quotatypes/index.jsp

Code
Comments
Other
Rev Date Author Line
553 11 May 05 nicklas 1 <%-- $Id$
553 11 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
553 11 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/
553 11 May 05 nicklas 8
553 11 May 05 nicklas 9   BASE is free software; you can redistribute it and/or
553 11 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
553 11 May 05 nicklas 12   of the License, or (at your option) any later version.
553 11 May 05 nicklas 13
553 11 May 05 nicklas 14   BASE is distributed in the hope that it will be useful,
553 11 May 05 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
553 11 May 05 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
553 11 May 05 nicklas 17   GNU General Public License for more details.
553 11 May 05 nicklas 18
553 11 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/>.
553 11 May 05 nicklas 21   ------------------------------------------------------------------
553 11 May 05 nicklas 22
553 11 May 05 nicklas 23   @author Nicklas
553 11 May 05 nicklas 24   @version 2.0
553 11 May 05 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
553 11 May 05 nicklas 27   import="net.sf.basedb.core.SessionControl"
553 11 May 05 nicklas 28   import="net.sf.basedb.core.DbControl"
553 11 May 05 nicklas 29   import="net.sf.basedb.core.Item"
2011 17 Feb 06 nicklas 30   import="net.sf.basedb.core.Include"
553 11 May 05 nicklas 31   import="net.sf.basedb.core.QuotaType"
1418 07 Oct 05 nicklas 32   import="net.sf.basedb.core.ItemQuery"
553 11 May 05 nicklas 33   import="net.sf.basedb.core.Permission"
2011 17 Feb 06 nicklas 34   import="net.sf.basedb.core.ItemContext"
2011 17 Feb 06 nicklas 35   import="net.sf.basedb.core.MultiPermissions"
2011 17 Feb 06 nicklas 36   import="net.sf.basedb.core.PermissionDeniedException"
2011 17 Feb 06 nicklas 37   import="net.sf.basedb.core.ItemAlreadyExistsException"
2011 17 Feb 06 nicklas 38   import="net.sf.basedb.util.RemovableUtil"
553 11 May 05 nicklas 39   import="net.sf.basedb.clients.web.Base"
2011 17 Feb 06 nicklas 40   import="net.sf.basedb.clients.web.WebException"
2753 20 Oct 06 nicklas 41   import="net.sf.basedb.util.Values"
553 11 May 05 nicklas 42   import="net.sf.basedb.clients.web.util.HTML"
5510 19 Nov 10 nicklas 43   import="net.sf.basedb.core.plugin.GuiContext"
5510 19 Nov 10 nicklas 44   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
5510 19 Nov 10 nicklas 45   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
5510 19 Nov 10 nicklas 46   import="net.sf.basedb.clients.web.extensions.JspContext"
5510 19 Nov 10 nicklas 47   import="net.sf.basedb.clients.web.extensions.edit.EditUtil"
7604 25 Feb 19 nicklas 48   import="net.sf.basedb.clients.web.extensions.edit.OnSaveAction"
5510 19 Nov 10 nicklas 49   import="net.sf.basedb.clients.web.extensions.edit.OnSaveRenderer"
6045 03 Apr 12 nicklas 50   import="net.sf.basedb.clients.web.extensions.list.ListColumnExportRenderer"
7604 25 Feb 19 nicklas 51   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6045 03 Apr 12 nicklas 52   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
2011 17 Feb 06 nicklas 53   import="java.util.Enumeration"
2011 17 Feb 06 nicklas 54   import="java.util.Set"
2011 17 Feb 06 nicklas 55   import="java.util.HashSet"
2011 17 Feb 06 nicklas 56   import="java.util.List"
2011 17 Feb 06 nicklas 57   import="java.util.ArrayList"
2011 17 Feb 06 nicklas 58   import="java.util.Collections"
553 11 May 05 nicklas 59 %>
553 11 May 05 nicklas 60 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
553 11 May 05 nicklas 61 <%!
2011 17 Feb 06 nicklas 62   private static final ItemContext defaultContext = Base.createDefaultContext("name", "name,description");
2011 17 Feb 06 nicklas 63   private static final Item itemType = Item.QUOTATYPE;
553 11 May 05 nicklas 64 %>
553 11 May 05 nicklas 65 <%
2011 17 Feb 06 nicklas 66 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
553 11 May 05 nicklas 67 final String ID = sc.getId();
2011 17 Feb 06 nicklas 68 final String cmd = request.getParameter("cmd");
2011 17 Feb 06 nicklas 69 final String root = request.getContextPath()+"/";
2011 17 Feb 06 nicklas 70 final String mode = request.getParameter("mode");
2011 17 Feb 06 nicklas 71 final String callback = request.getParameter("callback");
2011 17 Feb 06 nicklas 72 final String itemId = request.getParameter("item_id");
2011 17 Feb 06 nicklas 73 final String listPage = "list_quotatypes.jsp?ID="+ID
2011 17 Feb 06 nicklas 74   +(mode == null ? "" : "&mode="+mode)
2011 17 Feb 06 nicklas 75   +(callback == null ? "" : "&callback="+callback)
2011 17 Feb 06 nicklas 76   +(itemId == null ? "" : "&item_id="+itemId);
2011 17 Feb 06 nicklas 77 final String viewPage = "view_quotatype.jsp?ID="+ID;
2011 17 Feb 06 nicklas 78 final String editPage = "edit_quotatype.jsp?ID="+ID;
553 11 May 05 nicklas 79
2011 17 Feb 06 nicklas 80 String forward = null;
2011 17 Feb 06 nicklas 81 String redirect = null;
2011 17 Feb 06 nicklas 82 String message = null;
2011 17 Feb 06 nicklas 83 DbControl dc = null;
2011 17 Feb 06 nicklas 84
553 11 May 05 nicklas 85 try
553 11 May 05 nicklas 86 {
2011 17 Feb 06 nicklas 87   if (cmd == null || "List".equals(cmd))
2011 17 Feb 06 nicklas 88   {
2011 17 Feb 06 nicklas 89     // Display the list page without updatinging the current context
2811 26 Oct 06 nicklas 90     Base.getAndSetCurrentContext(sc, itemType, null, defaultContext, true);
2011 17 Feb 06 nicklas 91     redirect = listPage;
2011 17 Feb 06 nicklas 92   }
2011 17 Feb 06 nicklas 93   else if ("UpdateContext".equals(cmd))
2011 17 Feb 06 nicklas 94   {
2011 17 Feb 06 nicklas 95     // Display the list page after updating the current context from the request parameters
2011 17 Feb 06 nicklas 96     Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2011 17 Feb 06 nicklas 97     redirect = listPage;
2011 17 Feb 06 nicklas 98   }
2011 17 Feb 06 nicklas 99   else if ("LoadContext".equals(cmd))
2011 17 Feb 06 nicklas 100   {
2011 17 Feb 06 nicklas 101     // Display the list page after loading a saved context
2011 17 Feb 06 nicklas 102     int contextId = Values.getInt(request.getParameter("context"));
2011 17 Feb 06 nicklas 103     Base.loadContext(sc, contextId, defaultContext);
2011 17 Feb 06 nicklas 104     redirect = listPage;
2011 17 Feb 06 nicklas 105   }
2011 17 Feb 06 nicklas 106
2011 17 Feb 06 nicklas 107   else if ("ViewItem".equals(cmd))
2011 17 Feb 06 nicklas 108   {
2011 17 Feb 06 nicklas 109     // Display the view page for a single item 
2011 17 Feb 06 nicklas 110     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2011 17 Feb 06 nicklas 111     forward = viewPage;
2011 17 Feb 06 nicklas 112   }
2011 17 Feb 06 nicklas 113   else if ("EditItem".equals(cmd))
2011 17 Feb 06 nicklas 114   {
2011 17 Feb 06 nicklas 115     // Display the edit page for a single item (should be opened in a popup)
2011 17 Feb 06 nicklas 116     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2011 17 Feb 06 nicklas 117     redirect = editPage;
2011 17 Feb 06 nicklas 118   }
2011 17 Feb 06 nicklas 119   else if ("UpdateItem".equals(cmd))
2011 17 Feb 06 nicklas 120   {
2011 17 Feb 06 nicklas 121     // Update the properties on an item (will close the popup)
2011 17 Feb 06 nicklas 122     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, defaultContext);
7954 12 May 21 nicklas 123     dc = sc.newDbControl(":Edit "+itemType);
7605 26 Feb 19 nicklas 124     QuotaType quotaType = cc.getObject("item");
5060 19 Aug 09 nicklas 125     dc.reattachItem(quotaType, false);
2011 17 Feb 06 nicklas 126     message = "Quota type updated";
5510 19 Nov 10 nicklas 127     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.item(Item.QUOTATYPE), quotaType);
7604 25 Feb 19 nicklas 128     ExtensionsInvoker<OnSaveAction> invoker = EditUtil.useOnSaveExtensions(jspContext);
5510 19 Nov 10 nicklas 129     try
5510 19 Nov 10 nicklas 130     {
5510 19 Nov 10 nicklas 131       quotaType.setName(Values.getStringOrNull(request.getParameter("name")));
5510 19 Nov 10 nicklas 132       quotaType.setDescription(Values.getStringOrNull(request.getParameter("description")));
5510 19 Nov 10 nicklas 133       
5510 19 Nov 10 nicklas 134       // OnSave extensions
5510 19 Nov 10 nicklas 135       invoker.render(OnSaveRenderer.ON_SAVE);
5510 19 Nov 10 nicklas 136       dc.commit();
5510 19 Nov 10 nicklas 137       invoker.render(OnSaveRenderer.ON_COMMIT);
5510 19 Nov 10 nicklas 138     }
5510 19 Nov 10 nicklas 139     catch (Exception ex)
5510 19 Nov 10 nicklas 140     {
5510 19 Nov 10 nicklas 141       invoker.render(OnSaveRenderer.onRollback(ex));
5510 19 Nov 10 nicklas 142       throw ex;
5510 19 Nov 10 nicklas 143     }
5510 19 Nov 10 nicklas 144     finally
5510 19 Nov 10 nicklas 145     {
5510 19 Nov 10 nicklas 146       cc.removeObject("item");
5510 19 Nov 10 nicklas 147     }
2011 17 Feb 06 nicklas 148   }
2011 17 Feb 06 nicklas 149   else if ("ExportItems".equals(cmd))
2011 17 Feb 06 nicklas 150   {
2011 17 Feb 06 nicklas 151     // Run an export plugin in a list context
2011 17 Feb 06 nicklas 152     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2011 17 Feb 06 nicklas 153     final ItemQuery<QuotaType> query = QuotaType.getQuery();
7954 12 May 21 nicklas 154     dc = sc.newDbControl(":Export "+itemType);
7914 23 Feb 21 nicklas 155     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 156     cc.configureQuery(dc, query, jspContext, true);
6045 03 Apr 12 nicklas 157     cc.setQuery(query);
7604 25 Feb 19 nicklas 158     ExtensionsInvoker<ListColumnAction<QuotaType,?>> listInvoker = ListColumnUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 159     listInvoker.render(new ListColumnExportRenderer<QuotaType>(cc));
5590 16 Mar 11 nicklas 160     dc.close();
2011 17 Feb 06 nicklas 161     redirect = "../../common/export/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=LIST&title=Export+quota+types";
2011 17 Feb 06 nicklas 162   }
2011 17 Feb 06 nicklas 163   else if ("ExportItem".equals(cmd))
2011 17 Feb 06 nicklas 164   {
2011 17 Feb 06 nicklas 165     // Run an export plugin in single-item context
2011 17 Feb 06 nicklas 166     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2011 17 Feb 06 nicklas 167     redirect = "../../common/export/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=ITEM&title=Export+quota+type";
2011 17 Feb 06 nicklas 168   }
2011 17 Feb 06 nicklas 169   else if ("RunListPlugin".equals(cmd))
2011 17 Feb 06 nicklas 170   {
2011 17 Feb 06 nicklas 171     // Run another plugin in a list context
2011 17 Feb 06 nicklas 172     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2011 17 Feb 06 nicklas 173     final ItemQuery<QuotaType> query = QuotaType.getQuery();
7954 12 May 21 nicklas 174     dc = sc.newDbControl(":Run plugin "+itemType);
7914 23 Feb 21 nicklas 175     JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, GuiContext.list(itemType), null);
7914 23 Feb 21 nicklas 176     cc.configureQuery(dc, query, jspContext, true);
5590 16 Mar 11 nicklas 177     dc.close();
2011 17 Feb 06 nicklas 178     cc.setQuery(query);
2011 17 Feb 06 nicklas 179     redirect = "../../common/plugin/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=LIST&main_type=OTHER&title=Run+plugin";
2011 17 Feb 06 nicklas 180   }
2011 17 Feb 06 nicklas 181   else if ("RunPlugin".equals(cmd))
2011 17 Feb 06 nicklas 182   {
2011 17 Feb 06 nicklas 183     // Run another plugin in single-item context
2011 17 Feb 06 nicklas 184     ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, pageContext, defaultContext);
2011 17 Feb 06 nicklas 185     redirect = "../../common/plugin/index.jsp?ID="+ID+"&cmd=SelectPlugin&item_type="+itemType.name()+"&context_type=ITEM&main_type=OTHER&title=Run+plugin";
2011 17 Feb 06 nicklas 186   }
2011 17 Feb 06 nicklas 187   else
2011 17 Feb 06 nicklas 188   {
2011 17 Feb 06 nicklas 189     throw new WebException("popup", "Invalid command", "The command {1} is not recognised as a valid command.", cmd);
2011 17 Feb 06 nicklas 190   }
553 11 May 05 nicklas 191 }
553 11 May 05 nicklas 192 finally
553 11 May 05 nicklas 193 {
553 11 May 05 nicklas 194   if (dc != null) dc.close();
553 11 May 05 nicklas 195 }
2011 17 Feb 06 nicklas 196
2011 17 Feb 06 nicklas 197 if (forward != null)
2011 17 Feb 06 nicklas 198 {
6192 31 Oct 12 nicklas 199   sc.setSessionSetting("alert-message", message);
2011 17 Feb 06 nicklas 200   pageContext.forward(forward);
2011 17 Feb 06 nicklas 201 }
2011 17 Feb 06 nicklas 202 else if (redirect != null)
2011 17 Feb 06 nicklas 203 {
6192 31 Oct 12 nicklas 204   sc.setSessionSetting("alert-message", message);
2011 17 Feb 06 nicklas 205   response.sendRedirect(redirect);
2011 17 Feb 06 nicklas 206 }
2011 17 Feb 06 nicklas 207 else if (message == null)
2011 17 Feb 06 nicklas 208 {
2011 17 Feb 06 nicklas 209   response.sendRedirect(root + "common/close_popup.jsp?refresh_opener=1&wait=0");
2011 17 Feb 06 nicklas 210 }
2011 17 Feb 06 nicklas 211 else
2011 17 Feb 06 nicklas 212 {
2011 17 Feb 06 nicklas 213   response.sendRedirect(root + "common/close_popup.jsp?refresh_opener=1&message="+HTML.urlEncode(message));
2011 17 Feb 06 nicklas 214 }
2011 17 Feb 06 nicklas 215 %>
2011 17 Feb 06 nicklas 216