www/views/reporters/view_reporter.jsp

Code
Comments
Other
Rev Date Author Line
1727 19 Dec 05 nicklas 1 <%-- $Id$
1727 19 Dec 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, Martin Svensson
3675 16 Aug 07 jari 5   Copyright (C) 2007 Nicklas Nordborg
1727 19 Dec 05 nicklas 6
2304 22 May 06 jari 7   This file is part of BASE - BioArray Software Environment.
2304 22 May 06 jari 8   Available at http://base.thep.lu.se/
1727 19 Dec 05 nicklas 9
1727 19 Dec 05 nicklas 10   BASE is free software; you can redistribute it and/or
1727 19 Dec 05 nicklas 11   modify it under the terms of the GNU General Public License
4476 05 Sep 08 jari 12   as published by the Free Software Foundation; either version 3
1727 19 Dec 05 nicklas 13   of the License, or (at your option) any later version.
1727 19 Dec 05 nicklas 14
1727 19 Dec 05 nicklas 15   BASE is distributed in the hope that it will be useful,
1727 19 Dec 05 nicklas 16   but WITHOUT ANY WARRANTY; without even the implied warranty of
1727 19 Dec 05 nicklas 17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1727 19 Dec 05 nicklas 18   GNU General Public License for more details.
1727 19 Dec 05 nicklas 19
1727 19 Dec 05 nicklas 20   You should have received a copy of the GNU General Public License
4511 11 Sep 08 jari 21   along with BASE. If not, see <http://www.gnu.org/licenses/>.
1727 19 Dec 05 nicklas 22   ------------------------------------------------------------------
1727 19 Dec 05 nicklas 23
1727 19 Dec 05 nicklas 24   @author Nicklas
1727 19 Dec 05 nicklas 25   @version 2.0
1727 19 Dec 05 nicklas 26 --%>
5426 24 Sep 10 nicklas 27 <%@ page pageEncoding="UTF-8" session="false"
1727 19 Dec 05 nicklas 28   import="net.sf.basedb.core.SessionControl"
1727 19 Dec 05 nicklas 29   import="net.sf.basedb.core.DbControl"
1727 19 Dec 05 nicklas 30   import="net.sf.basedb.core.SystemItems"
1727 19 Dec 05 nicklas 31   import="net.sf.basedb.core.Item"
1727 19 Dec 05 nicklas 32   import="net.sf.basedb.core.ItemContext"
1727 19 Dec 05 nicklas 33   import="net.sf.basedb.core.Permission"
1727 19 Dec 05 nicklas 34   import="net.sf.basedb.core.ExtendedProperties"
1727 19 Dec 05 nicklas 35   import="net.sf.basedb.core.ExtendedProperty"
1727 19 Dec 05 nicklas 36   import="net.sf.basedb.core.Type"
1727 19 Dec 05 nicklas 37   import="net.sf.basedb.core.Reporter"
1727 19 Dec 05 nicklas 38   import="net.sf.basedb.core.ReporterType"
1727 19 Dec 05 nicklas 39   import="net.sf.basedb.core.data.ReporterData"
1727 19 Dec 05 nicklas 40   import="net.sf.basedb.core.ItemQuery"
1727 19 Dec 05 nicklas 41   import="net.sf.basedb.core.ItemResultIterator"
1727 19 Dec 05 nicklas 42   import="net.sf.basedb.core.PermissionDeniedException"
1738 09 Jan 06 nicklas 43   import="net.sf.basedb.core.PluginDefinition"
1738 09 Jan 06 nicklas 44   import="net.sf.basedb.core.plugin.GuiContext"
1738 09 Jan 06 nicklas 45   import="net.sf.basedb.core.plugin.Plugin"
1727 19 Dec 05 nicklas 46   import="net.sf.basedb.core.query.Orders"
1727 19 Dec 05 nicklas 47   import="net.sf.basedb.core.query.Hql"
1727 19 Dec 05 nicklas 48   import="net.sf.basedb.clients.web.Base"
1727 19 Dec 05 nicklas 49   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 50   import="net.sf.basedb.util.Values"
2942 22 Nov 06 nicklas 51   import="net.sf.basedb.util.formatter.Formatter"
2942 22 Nov 06 nicklas 52   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4879 03 Apr 09 nicklas 53   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4879 03 Apr 09 nicklas 54   import="net.sf.basedb.clients.web.extensions.JspContext"
4879 03 Apr 09 nicklas 55   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 56   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4879 03 Apr 09 nicklas 57   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
4879 03 Apr 09 nicklas 58   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
1727 19 Dec 05 nicklas 59   import="java.util.Date"
1738 09 Jan 06 nicklas 60   import="java.util.Map"
2747 19 Oct 06 enell 61   import="java.util.List"
1727 19 Dec 05 nicklas 62 %>
1727 19 Dec 05 nicklas 63 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1727 19 Dec 05 nicklas 64 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
1853 27 Jan 06 nicklas 65 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
1727 19 Dec 05 nicklas 66 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
4879 03 Apr 09 nicklas 67 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1738 09 Jan 06 nicklas 68 <%!
1738 09 Jan 06 nicklas 69   private static final Item itemType = Item.REPORTER;
1738 09 Jan 06 nicklas 70   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
1738 09 Jan 06 nicklas 71 %>
1727 19 Dec 05 nicklas 72 <%
1727 19 Dec 05 nicklas 73 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
1738 09 Jan 06 nicklas 74 final String ID = sc.getId();
1727 19 Dec 05 nicklas 75 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1727 19 Dec 05 nicklas 76 final int itemId = cc.getId();
1727 19 Dec 05 nicklas 77 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 78 final DbControl dc = sc.newDbControl(":View "+itemType);
1727 19 Dec 05 nicklas 79 try
1727 19 Dec 05 nicklas 80 {
1738 09 Jan 06 nicklas 81   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
1738 09 Jan 06 nicklas 82
1727 19 Dec 05 nicklas 83   String title = null;
1727 19 Dec 05 nicklas 84   ReporterData reporter = Reporter.getById(dc, itemId);
1727 19 Dec 05 nicklas 85   
1727 19 Dec 05 nicklas 86   final boolean writePermission = sc.hasPermission(Permission.WRITE, itemType);
1727 19 Dec 05 nicklas 87   final boolean deletePermission = sc.hasPermission(Permission.DELETE, itemType);
4698 10 Dec 08 nicklas 88   Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
4698 10 Dec 08 nicklas 89   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
4879 03 Apr 09 nicklas 90   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, reporter);
7604 25 Feb 19 nicklas 91   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
1727 19 Dec 05 nicklas 92   %>
6311 23 Aug 13 nicklas 93   <base:page title="<%=title%>" id="view-page">
6311 23 Aug 13 nicklas 94   <base:head scripts="tabcontrol-2.js,~reporters.js" styles="toolbar.css,headertabcontrol.css,path.css">
4879 03 Apr 09 nicklas 95     <ext:scripts context="<%=jspContext%>" />
4879 03 Apr 09 nicklas 96     <ext:stylesheets context="<%=jspContext%>" />
1727 19 Dec 05 nicklas 97   </base:head>
1727 19 Dec 05 nicklas 98   <base:body>
5939 30 Jan 12 nicklas 99     <p:path><p:pathelement 
5939 30 Jan 12 nicklas 100       title="Reporters" href="<%="index.jsp?ID="+ID%>" 
5939 30 Jan 12 nicklas 101       /><p:pathelement title="<%=HTML.encodeTags(reporter.getName())%>" 
5939 30 Jan 12 nicklas 102       /></p:path>
6311 23 Aug 13 nicklas 103     <div id="page-data" data-item-id="<%=itemId%>"></div>
1727 19 Dec 05 nicklas 104     
5939 30 Jan 12 nicklas 105     <t:tabcontrol 
5939 30 Jan 12 nicklas 106       id="main" 
5939 30 Jan 12 nicklas 107       subclass="content mastertabcontrol" 
5939 30 Jan 12 nicklas 108       active="properties">
1853 27 Jan 06 nicklas 109     <t:tab id="properties" title="Properties">
5939 30 Jan 12 nicklas 110       <div>
5939 30 Jan 12 nicklas 111       <table class="fullform bottomborder">
1727 19 Dec 05 nicklas 112       <tr>
5939 30 Jan 12 nicklas 113         <th class="itemstatus"></th>
5939 30 Jan 12 nicklas 114         <td style="padding: 0px;">
6605 18 Nov 14 nicklas 115           <tbl:toolbar subclass="bottomborder bg-filled-50">
5939 30 Jan 12 nicklas 116             <tbl:button 
6311 23 Aug 13 nicklas 117               id="btnEdit"
5942 01 Feb 12 nicklas 118               disabled="<%=!writePermission%>" 
5945 02 Feb 12 nicklas 119               image="edit.png" 
5939 30 Jan 12 nicklas 120               title="Edit&hellip;" 
5939 30 Jan 12 nicklas 121               tooltip="<%=writePermission ? "Edit this reporter" : "You do not have permission to edit this reporter"%>" 
5939 30 Jan 12 nicklas 122             />
5939 30 Jan 12 nicklas 123             <tbl:button 
6311 23 Aug 13 nicklas 124               id="btnDelete"
6311 23 Aug 13 nicklas 125               data-confirm="1"
5942 01 Feb 12 nicklas 126               disabled="<%=!deletePermission%>" 
5946 03 Feb 12 nicklas 127               image="delete.png" 
5939 30 Jan 12 nicklas 128               title="Delete&hellip;" 
5939 30 Jan 12 nicklas 129               tooltip="<%=deletePermission ? "Delete this reporter" : "You do not have permission to delete this reporter"%>" 
5939 30 Jan 12 nicklas 130             />
5939 30 Jan 12 nicklas 131             <tbl:button 
6311 23 Aug 13 nicklas 132               id="btnImport"
5946 03 Feb 12 nicklas 133               image="import.png" 
6311 23 Aug 13 nicklas 134               data-plugin-type="IMPORT"  
5939 30 Jan 12 nicklas 135               title="Import&hellip;" 
5939 30 Jan 12 nicklas 136               tooltip="Import data" 
5939 30 Jan 12 nicklas 137               visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5939 30 Jan 12 nicklas 138             />
5939 30 Jan 12 nicklas 139             <tbl:button 
6311 23 Aug 13 nicklas 140               id="btnExport"
6311 23 Aug 13 nicklas 141               image="export.png"
6311 23 Aug 13 nicklas 142               data-plugin-type="EXPORT" 
5939 30 Jan 12 nicklas 143               title="Export&hellip;" 
5939 30 Jan 12 nicklas 144               tooltip="Export data" 
5939 30 Jan 12 nicklas 145               visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5939 30 Jan 12 nicklas 146             />
5939 30 Jan 12 nicklas 147             <tbl:button 
6311 23 Aug 13 nicklas 148               id="btnRunPlugin"
6311 23 Aug 13 nicklas 149               image="runplugin.png"  
6311 23 Aug 13 nicklas 150               data-plugin-type="OTHER" 
5939 30 Jan 12 nicklas 151               title="Run plugin&hellip;" 
5939 30 Jan 12 nicklas 152               tooltip="Run a plugin" 
5939 30 Jan 12 nicklas 153               visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5939 30 Jan 12 nicklas 154             />
5939 30 Jan 12 nicklas 155             <tbl:button
5939 30 Jan 12 nicklas 156               image="help.png"
6311 23 Aug 13 nicklas 157               subclass="auto-init"
6311 23 Aug 13 nicklas 158               data-auto-init="help"
6311 23 Aug 13 nicklas 159               data-help-id="reporter.view.properties"
5939 30 Jan 12 nicklas 160               title="Help&hellip;"
5939 30 Jan 12 nicklas 161               tooltip="Get help about this page"
5939 30 Jan 12 nicklas 162             />
5939 30 Jan 12 nicklas 163             <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 164               wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5939 30 Jan 12 nicklas 165           </tbl:toolbar>
5939 30 Jan 12 nicklas 166         </td>
5939 30 Jan 12 nicklas 167       </tr>
5939 30 Jan 12 nicklas 168       <tr>
5939 30 Jan 12 nicklas 169         <th>Name</th>
1727 19 Dec 05 nicklas 170         <td><%=HTML.encodeTags(reporter.getName())%></td>
1727 19 Dec 05 nicklas 171       </tr>
1727 19 Dec 05 nicklas 172       <tr>
5939 30 Jan 12 nicklas 173         <th>External ID</th>
5939 30 Jan 12 nicklas 174         <td><%=HTML.encodeTags(reporter.getExternalId())%></td>
4698 10 Dec 08 nicklas 175       </tr>
4698 10 Dec 08 nicklas 176       <tr>
5939 30 Jan 12 nicklas 177         <th>Type</th>
5939 30 Jan 12 nicklas 178         <td><base:propertyvalue dbcontrol="<%=dc%>" item="<%=reporter%>" property="reporterType" /></td>
4698 10 Dec 08 nicklas 179       </tr>
4698 10 Dec 08 nicklas 180       <tr>
5939 30 Jan 12 nicklas 181         <th>Registered</th>
5939 30 Jan 12 nicklas 182         <td><%=dateFormatter.format(reporter.getEntryDate())%></td>
4698 10 Dec 08 nicklas 183       </tr>
4698 10 Dec 08 nicklas 184       <tr>
5939 30 Jan 12 nicklas 185         <th>Last update</th>
5939 30 Jan 12 nicklas 186         <td><%=dateTimeFormatter.format(reporter.getLastUpdate())%></td>
1727 19 Dec 05 nicklas 187       </tr>
1727 19 Dec 05 nicklas 188       <tr>
5943 01 Feb 12 nicklas 189         <th class="subprompt">- from/by</th>
5939 30 Jan 12 nicklas 190         <td><%=HTML.niceFormat(reporter.getLastSource())%></td>
1727 19 Dec 05 nicklas 191       </tr>
1727 19 Dec 05 nicklas 192       <tr>
5939 30 Jan 12 nicklas 193         <th>Gene symbol</th>
1727 19 Dec 05 nicklas 194         <td><%=HTML.encodeTags(reporter.getSymbol())%></td>
1727 19 Dec 05 nicklas 195       </tr>
5939 30 Jan 12 nicklas 196         <tr>
5939 30 Jan 12 nicklas 197           <th>Permissions</th>
5939 30 Jan 12 nicklas 198           <td>
5939 30 Jan 12 nicklas 199           <%=sc.hasPermission(Permission.READ, itemType) ? "Read" : ""%>
5939 30 Jan 12 nicklas 200           <%=sc.hasPermission(Permission.USE, itemType) ? ", Use" : ""%>
5939 30 Jan 12 nicklas 201           <%=sc.hasPermission(Permission.WRITE, itemType) ? ", Write" : ""%>
5939 30 Jan 12 nicklas 202           <%=sc.hasPermission(Permission.DELETE, itemType) ? ", Delete" : ""%>          
5939 30 Jan 12 nicklas 203           </td>
5939 30 Jan 12 nicklas 204         </tr>
5939 30 Jan 12 nicklas 205       <tr>
5939 30 Jan 12 nicklas 206         <th>Description</th>
1939 08 Feb 06 nicklas 207         <td><%=HTML.niceFormat(reporter.getDescription())%></td>
1727 19 Dec 05 nicklas 208       </tr>
1727 19 Dec 05 nicklas 209       </table>
5939 30 Jan 12 nicklas 210       </div>
5045 12 Aug 09 martin 211       <%
5045 12 Aug 09 martin 212       List<ExtendedProperty> reporterProperties = ExtendedProperties.getProperties("ReporterData");
5045 12 Aug 09 martin 213       %>
5045 12 Aug 09 martin 214       <base:section
5045 12 Aug 09 martin 215         id="extendedProperties"
5045 12 Aug 09 martin 216         title="<%="Extended properties (" + reporterProperties.size() + ")"%>"
5045 12 Aug 09 martin 217         context="<%=cc%>"
5045 12 Aug 09 martin 218         >
5939 30 Jan 12 nicklas 219         <table class="fullform fullborder">
5045 12 Aug 09 martin 220           <%        
5045 12 Aug 09 martin 221           if (reporterProperties != null)
2313 23 May 06 nicklas 222           {
5045 12 Aug 09 martin 223             boolean needsTr = true;
5045 12 Aug 09 martin 224             for (ExtendedProperty ep : reporterProperties)
5045 12 Aug 09 martin 225             {
5045 12 Aug 09 martin 226               String name = ep.getName();
7605 26 Feb 19 nicklas 227               Formatter<Object> f = FormatterFactory.getExtendedPropertyFormatter(sc, ep);
5045 12 Aug 09 martin 228               String value = f.format(reporter.getExtended(name));
5045 12 Aug 09 martin 229               %>
5939 30 Jan 12 nicklas 230                 <%=needsTr ? "<tr><th>" : "<th class=\"leftborder\">" %>
5939 30 Jan 12 nicklas 231                 <%=HTML.encodeTags(ep.getTitle())%></th>
5045 12 Aug 09 martin 232                 <td><%=value%></td>
5045 12 Aug 09 martin 233                 <%=needsTr ? "" : "</tr>"%>
5045 12 Aug 09 martin 234               <%
5045 12 Aug 09 martin 235               needsTr = !needsTr;
5045 12 Aug 09 martin 236             }
2747 19 Oct 06 enell 237             %>
5939 30 Jan 12 nicklas 238             <%=needsTr ? "" : "<th class=\"leftborder\"></th><td></td></tr>"%>
2747 19 Oct 06 enell 239             <%
2313 23 May 06 nicklas 240           }
1727 19 Dec 05 nicklas 241           %>
5045 12 Aug 09 martin 242         </table>
5045 12 Aug 09 martin 243       </base:section>
5939 30 Jan 12 nicklas 244     </t:tab>
5939 30 Jan 12 nicklas 245     </t:tabcontrol>
1727 19 Dec 05 nicklas 246
1853 27 Jan 06 nicklas 247
1727 19 Dec 05 nicklas 248   </base:body>
1727 19 Dec 05 nicklas 249   </base:page>
1727 19 Dec 05 nicklas 250   <%
1727 19 Dec 05 nicklas 251 }
1727 19 Dec 05 nicklas 252 finally
1727 19 Dec 05 nicklas 253 {
1727 19 Dec 05 nicklas 254   if (dc != null) dc.close();
1727 19 Dec 05 nicklas 255 }
1727 19 Dec 05 nicklas 256
1727 19 Dec 05 nicklas 257 %>