www/views/reporterlists/list_reporterlists.jsp

Code
Comments
Other
Rev Date Author Line
2149 04 Apr 06 nicklas 1 <%-- $Id$
2149 04 Apr 06 nicklas 2   ------------------------------------------------------------------
5425 23 Sep 10 nicklas 3   Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg, Martin Svensson
3675 16 Aug 07 jari 4   Copyright (C) 2007 Johan Enell, Martin Svensson
2149 04 Apr 06 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/
2149 04 Apr 06 nicklas 8
2149 04 Apr 06 nicklas 9   BASE is free software; you can redistribute it and/or
2149 04 Apr 06 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
2149 04 Apr 06 nicklas 12   of the License, or (at your option) any later version.
2149 04 Apr 06 nicklas 13
2149 04 Apr 06 nicklas 14   BASE is distributed in the hope that it will be useful,
2149 04 Apr 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
2149 04 Apr 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2149 04 Apr 06 nicklas 17   GNU General Public License for more details.
2149 04 Apr 06 nicklas 18
2149 04 Apr 06 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/>.
2149 04 Apr 06 nicklas 21   ------------------------------------------------------------------
2149 04 Apr 06 nicklas 22
2149 04 Apr 06 nicklas 23   @author Nicklas
2149 04 Apr 06 nicklas 24   @version 2.0
2149 04 Apr 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
2149 04 Apr 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
2149 04 Apr 06 nicklas 28   import="net.sf.basedb.core.DbControl"
2149 04 Apr 06 nicklas 29   import="net.sf.basedb.core.Item"
2149 04 Apr 06 nicklas 30   import="net.sf.basedb.core.ReporterList"
2149 04 Apr 06 nicklas 31   import="net.sf.basedb.core.ItemQuery"
2149 04 Apr 06 nicklas 32   import="net.sf.basedb.core.ItemResultIterator"
2149 04 Apr 06 nicklas 33   import="net.sf.basedb.core.ItemContext"
3553 09 Jul 07 martin 34   import="net.sf.basedb.core.Nameable"
2149 04 Apr 06 nicklas 35   import="net.sf.basedb.core.Permission"
2149 04 Apr 06 nicklas 36   import="net.sf.basedb.core.RawDataTypes"
2149 04 Apr 06 nicklas 37   import="net.sf.basedb.core.RawDataType"
2149 04 Apr 06 nicklas 38   import="net.sf.basedb.core.PluginDefinition"
2149 04 Apr 06 nicklas 39   import="net.sf.basedb.core.plugin.GuiContext"
2149 04 Apr 06 nicklas 40   import="net.sf.basedb.core.plugin.Plugin"
2149 04 Apr 06 nicklas 41   import="net.sf.basedb.util.Enumeration"
3553 09 Jul 07 martin 42   import="net.sf.basedb.util.ShareableUtil"
2149 04 Apr 06 nicklas 43   import="net.sf.basedb.clients.web.Base"
2149 04 Apr 06 nicklas 44   import="net.sf.basedb.clients.web.ModeInfo"
2401 21 Jun 06 martin 45   import="net.sf.basedb.clients.web.PermissionUtil"
2149 04 Apr 06 nicklas 46   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 47   import="net.sf.basedb.util.Values"
4698 10 Dec 08 nicklas 48   import="net.sf.basedb.util.formatter.Formatter"
4698 10 Dec 08 nicklas 49   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4879 03 Apr 09 nicklas 50   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4879 03 Apr 09 nicklas 51   import="net.sf.basedb.clients.web.extensions.JspContext"
4879 03 Apr 09 nicklas 52   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 53   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4879 03 Apr 09 nicklas 54   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 55   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6040 30 Mar 12 nicklas 56   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
4879 03 Apr 09 nicklas 57   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
4698 10 Dec 08 nicklas 58   import="java.util.Date"
3553 09 Jul 07 martin 59   import="java.util.Iterator"
2149 04 Apr 06 nicklas 60   import="java.util.List"
2149 04 Apr 06 nicklas 61   import="java.util.Map"
2149 04 Apr 06 nicklas 62 %>
2149 04 Apr 06 nicklas 63 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2149 04 Apr 06 nicklas 64 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
4879 03 Apr 09 nicklas 65 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
2149 04 Apr 06 nicklas 66 <%!
2149 04 Apr 06 nicklas 67   private static final Item itemType = Item.REPORTERLIST;
2149 04 Apr 06 nicklas 68   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST);
2149 04 Apr 06 nicklas 69 %>
2149 04 Apr 06 nicklas 70 <%
2149 04 Apr 06 nicklas 71 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
2149 04 Apr 06 nicklas 72 final String ID = sc.getId();
2149 04 Apr 06 nicklas 73 final boolean createPermission = sc.hasPermission(Permission.CREATE, itemType);
2149 04 Apr 06 nicklas 74 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
2149 04 Apr 06 nicklas 75
2149 04 Apr 06 nicklas 76 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
2149 04 Apr 06 nicklas 77 final String callback = request.getParameter("callback");
2149 04 Apr 06 nicklas 78 final String title = mode.generateTitle("reporter list", "reporter lists");
7954 12 May 21 nicklas 79 final DbControl dc = sc.newDbControl(":List "+itemType);
2149 04 Apr 06 nicklas 80 ItemResultIterator<ReporterList> reporterLists = null;
2149 04 Apr 06 nicklas 81 try
2149 04 Apr 06 nicklas 82 {
4698 10 Dec 08 nicklas 83   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
2149 04 Apr 06 nicklas 84   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
7914 23 Feb 21 nicklas 85   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
2149 04 Apr 06 nicklas 86   try
2149 04 Apr 06 nicklas 87   {
7914 23 Feb 21 nicklas 88     final ItemQuery<ReporterList> query = Base.getConfiguredQuery(dc, cc, jspContext, true, ReporterList.getQuery(), mode);
2149 04 Apr 06 nicklas 89     reporterLists = query.iterate(dc);
2149 04 Apr 06 nicklas 90   }
2149 04 Apr 06 nicklas 91   catch (Throwable t)
2149 04 Apr 06 nicklas 92   {
2149 04 Apr 06 nicklas 93     cc.setMessage(t.getMessage());
2149 04 Apr 06 nicklas 94   }
2149 04 Apr 06 nicklas 95   int numListed = 0;
7604 25 Feb 19 nicklas 96   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 97   ExtensionsInvoker<ListColumnAction<ReporterList,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
2149 04 Apr 06 nicklas 98   %>
6311 23 Aug 13 nicklas 99   <base:page title="<%=title==null ? "Reporter lists" : title%>" type="<%=mode.getPageType()%>" id="list-page">
6311 23 Aug 13 nicklas 100   <base:head scripts="table.js,~reporterlists.js" styles="table.css,toolbar.css">
4879 03 Apr 09 nicklas 101     <ext:scripts context="<%=jspContext%>" />
4879 03 Apr 09 nicklas 102     <ext:stylesheets context="<%=jspContext%>" />
2149 04 Apr 06 nicklas 103   </base:head>
2149 04 Apr 06 nicklas 104   
2149 04 Apr 06 nicklas 105   <base:body>
5952 10 Feb 12 nicklas 106     <h1><%=title==null ? "Reporter lists" : title%></h1>
5952 10 Feb 12 nicklas 107     <div class="content">
2149 04 Apr 06 nicklas 108     <tbl:table 
2149 04 Apr 06 nicklas 109       id="reporterLists" 
2149 04 Apr 06 nicklas 110       columns="<%=cc.getSetting("columns")%>"
2149 04 Apr 06 nicklas 111       sortby="<%=cc.getSortProperty()%>" 
2149 04 Apr 06 nicklas 112       direction="<%=cc.getSortDirection()%>"
2149 04 Apr 06 nicklas 113       action="index.jsp"
2149 04 Apr 06 nicklas 114       sc="<%=sc%>"
2149 04 Apr 06 nicklas 115       item="<%=itemType%>"
6698 30 Jan 15 nicklas 116       filterrows="<%=cc.getFilterRows()%>"
5952 10 Feb 12 nicklas 117       subclass="fulltable"
7982 14 Jun 21 nicklas 118       stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>"
2149 04 Apr 06 nicklas 119       >
2149 04 Apr 06 nicklas 120       <tbl:hidden 
2149 04 Apr 06 nicklas 121         name="mode" 
2149 04 Apr 06 nicklas 122         value="<%=mode.getName()%>" 
2149 04 Apr 06 nicklas 123       />
2149 04 Apr 06 nicklas 124       <tbl:hidden 
2149 04 Apr 06 nicklas 125         name="callback" 
2149 04 Apr 06 nicklas 126         value="<%=callback%>" 
2149 04 Apr 06 nicklas 127         skip="<%=callback == null%>" 
2149 04 Apr 06 nicklas 128       />
2149 04 Apr 06 nicklas 129       <tbl:columndef 
2149 04 Apr 06 nicklas 130         id="name"
2149 04 Apr 06 nicklas 131         property="name"
2149 04 Apr 06 nicklas 132         datatype="string"
2149 04 Apr 06 nicklas 133         title="Name"
2149 04 Apr 06 nicklas 134         sortable="true" 
2149 04 Apr 06 nicklas 135         filterable="true"
2149 04 Apr 06 nicklas 136         exportable="true"
2149 04 Apr 06 nicklas 137         show="always" 
2149 04 Apr 06 nicklas 138       />
2149 04 Apr 06 nicklas 139       <tbl:columndef 
4332 12 Jun 08 martin 140         id="id"
4387 11 Aug 08 nicklas 141         clazz="uniquecol"
4332 12 Jun 08 martin 142         property="id"
4332 12 Jun 08 martin 143         datatype="int"
4332 12 Jun 08 martin 144         title="ID"
4332 12 Jun 08 martin 145         sortable="true"
4332 12 Jun 08 martin 146         filterable="true"
4332 12 Jun 08 martin 147         exportable="true"
4332 12 Jun 08 martin 148       />
4332 12 Jun 08 martin 149       <tbl:columndef 
4698 10 Dec 08 nicklas 150         id="entryDate"
4698 10 Dec 08 nicklas 151         property="entryDate"
4698 10 Dec 08 nicklas 152         datatype="date"
4698 10 Dec 08 nicklas 153         title="Registered"
4698 10 Dec 08 nicklas 154         sortable="true" 
4698 10 Dec 08 nicklas 155         filterable="true"
4698 10 Dec 08 nicklas 156         exportable="true"
4698 10 Dec 08 nicklas 157         formatter="<%=dateFormatter%>"
4698 10 Dec 08 nicklas 158       />
4698 10 Dec 08 nicklas 159       <tbl:columndef 
2149 04 Apr 06 nicklas 160         id="externalId"
2149 04 Apr 06 nicklas 161         property="externalId"
2149 04 Apr 06 nicklas 162         datatype="string"
2149 04 Apr 06 nicklas 163         title="External ID"
2149 04 Apr 06 nicklas 164         sortable="true" 
2149 04 Apr 06 nicklas 165         filterable="true"
2149 04 Apr 06 nicklas 166         exportable="true"
2149 04 Apr 06 nicklas 167       />
2149 04 Apr 06 nicklas 168       <tbl:columndef 
2428 27 Jun 06 nicklas 169         id="numReporters"
4299 14 May 08 nicklas 170         property="size"
4299 14 May 08 nicklas 171         datatype="int"
4299 14 May 08 nicklas 172         title="Size"
4299 14 May 08 nicklas 173         sortable="true" 
4299 14 May 08 nicklas 174         filterable="true"
4299 14 May 08 nicklas 175         exportable="true"
2428 27 Jun 06 nicklas 176       />
2428 27 Jun 06 nicklas 177       <tbl:columndef 
2149 04 Apr 06 nicklas 178         id="owner"
2149 04 Apr 06 nicklas 179         property="owner.name"
2149 04 Apr 06 nicklas 180         datatype="string"
2149 04 Apr 06 nicklas 181         title="Owner"
2149 04 Apr 06 nicklas 182         sortable="true" 
2149 04 Apr 06 nicklas 183         filterable="true"
2149 04 Apr 06 nicklas 184         exportable="true"
2149 04 Apr 06 nicklas 185       />
2149 04 Apr 06 nicklas 186       <tbl:columndef 
2149 04 Apr 06 nicklas 187         id="experiment"
2149 04 Apr 06 nicklas 188         property="experiment"
2149 04 Apr 06 nicklas 189         datatype="string"
2149 04 Apr 06 nicklas 190         title="Experiment"
2149 04 Apr 06 nicklas 191         sortable="true" 
2149 04 Apr 06 nicklas 192         filterable="true"
2149 04 Apr 06 nicklas 193         exportable="true"
2149 04 Apr 06 nicklas 194       />
2149 04 Apr 06 nicklas 195       <tbl:columndef 
2149 04 Apr 06 nicklas 196         id="description"
2149 04 Apr 06 nicklas 197         property="description"
2149 04 Apr 06 nicklas 198         datatype="string"
2149 04 Apr 06 nicklas 199         title="Description" 
2149 04 Apr 06 nicklas 200         sortable="true" 
2149 04 Apr 06 nicklas 201         filterable="true" 
2149 04 Apr 06 nicklas 202         exportable="true"
2149 04 Apr 06 nicklas 203       />
2401 21 Jun 06 martin 204       <tbl:columndef
2401 21 Jun 06 martin 205         id="permission"
2401 21 Jun 06 martin 206         title="Permission"
2401 21 Jun 06 martin 207       />
5165 28 Oct 09 nicklas 208       <tbl:columndef
5165 28 Oct 09 nicklas 209         id="sharedTo"
5165 28 Oct 09 nicklas 210         title="Shared to"
5165 28 Oct 09 nicklas 211         filterable="true"
5165 28 Oct 09 nicklas 212         filterproperty="!sharedTo.name"
5165 28 Oct 09 nicklas 213         datatype="string"
3553 09 Jul 07 martin 214       />
6040 30 Mar 12 nicklas 215       <tbl:columndef 
6040 30 Mar 12 nicklas 216         id="xt-columns" 
6040 30 Mar 12 nicklas 217         extensions="<%=columnsInvoker%>" 
6040 30 Mar 12 nicklas 218         jspcontext="<%=jspContext%>" 
6040 30 Mar 12 nicklas 219       />
6604 18 Nov 14 nicklas 220       <div class="panelgroup bg-filled-50 bottomborder">
5952 10 Feb 12 nicklas 221         <tbl:toolbar
5952 10 Feb 12 nicklas 222           subclass="bottomborder"
5952 10 Feb 12 nicklas 223           visible="<%=mode.hasToolbar()%>"
5952 10 Feb 12 nicklas 224           >
5952 10 Feb 12 nicklas 225           <tbl:button 
6311 23 Aug 13 nicklas 226             id="btnNewItem"
5952 10 Feb 12 nicklas 227             disabled="<%=!createPermission%>" 
5952 10 Feb 12 nicklas 228             image="new.png" 
5952 10 Feb 12 nicklas 229             title="New&hellip;" 
5952 10 Feb 12 nicklas 230             tooltip="<%=createPermission ? "Create new reporter list" : "You do not have permission to create reporter lists"%>" 
5952 10 Feb 12 nicklas 231           />
5952 10 Feb 12 nicklas 232           <tbl:button 
6311 23 Aug 13 nicklas 233             id="btnDeleteItems"
5952 10 Feb 12 nicklas 234             image="delete.png"
5952 10 Feb 12 nicklas 235             title="Delete" 
5952 10 Feb 12 nicklas 236             tooltip="Delete the selected items" 
5952 10 Feb 12 nicklas 237           />
5952 10 Feb 12 nicklas 238           <tbl:button 
6311 23 Aug 13 nicklas 239             id="btnRestoreItems"
5952 10 Feb 12 nicklas 240             image="restore.png"
5952 10 Feb 12 nicklas 241             title="Restore" 
5952 10 Feb 12 nicklas 242             tooltip="Restore the selected (deleted) items"
5952 10 Feb 12 nicklas 243           />
5952 10 Feb 12 nicklas 244           <tbl:button 
6311 23 Aug 13 nicklas 245             id="btnShareItems"
5952 10 Feb 12 nicklas 246             image="share.png"
5952 10 Feb 12 nicklas 247             title="Share&hellip;" 
5952 10 Feb 12 nicklas 248             tooltip="Share the selected items"
5952 10 Feb 12 nicklas 249           />
5952 10 Feb 12 nicklas 250           <tbl:button 
6311 23 Aug 13 nicklas 251             id="btnSetOwner"
5952 10 Feb 12 nicklas 252             image="take_ownership.png"
5952 10 Feb 12 nicklas 253             title="Set owner&hellip;"
5952 10 Feb 12 nicklas 254             tooltip="Change owner of the selected items"
5952 10 Feb 12 nicklas 255           />
5952 10 Feb 12 nicklas 256           <tbl:button 
6311 23 Aug 13 nicklas 257             id="btnColumns"
5952 10 Feb 12 nicklas 258             image="columns.png" 
5952 10 Feb 12 nicklas 259             title="Columns&hellip;" 
5952 10 Feb 12 nicklas 260             tooltip="Show, hide and re-order columns" 
5952 10 Feb 12 nicklas 261           />
5952 10 Feb 12 nicklas 262           <tbl:button 
6311 23 Aug 13 nicklas 263             id="btnImport"
6311 23 Aug 13 nicklas 264             data-plugin-type="IMPORT"
5952 10 Feb 12 nicklas 265             image="import.png" 
5952 10 Feb 12 nicklas 266             title="Import&hellip;" 
5952 10 Feb 12 nicklas 267             tooltip="Import data" 
5952 10 Feb 12 nicklas 268             visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5952 10 Feb 12 nicklas 269           />
5952 10 Feb 12 nicklas 270           <tbl:button 
6311 23 Aug 13 nicklas 271             id="btnExport"
6311 23 Aug 13 nicklas 272             data-plugin-type="EXPORT"
5952 10 Feb 12 nicklas 273             image="export.png" 
5952 10 Feb 12 nicklas 274             title="Export&hellip;" 
5952 10 Feb 12 nicklas 275             tooltip="Export data" 
5952 10 Feb 12 nicklas 276             visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5952 10 Feb 12 nicklas 277           />
5952 10 Feb 12 nicklas 278           <tbl:button 
6311 23 Aug 13 nicklas 279             id="btnRunPlugin"
6311 23 Aug 13 nicklas 280             data-plugin-type="OTHER"
5952 10 Feb 12 nicklas 281             image="runplugin.png" 
5952 10 Feb 12 nicklas 282             title="Run plugin&hellip;" 
5952 10 Feb 12 nicklas 283             tooltip="Run a plugin" 
5952 10 Feb 12 nicklas 284             visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5952 10 Feb 12 nicklas 285           />
5952 10 Feb 12 nicklas 286           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 287             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5952 10 Feb 12 nicklas 288         </tbl:toolbar>
5952 10 Feb 12 nicklas 289         <tbl:panel>
6182 23 Oct 12 nicklas 290           <tbl:presetselector />
5952 10 Feb 12 nicklas 291           <tbl:navigator
5952 10 Feb 12 nicklas 292             page="<%=cc.getPage()%>" 
5952 10 Feb 12 nicklas 293             rowsperpage="<%=cc.getRowsPerPage()%>" 
5952 10 Feb 12 nicklas 294             totalrows="<%=reporterLists == null ? 0 : reporterLists.getTotalCount()%>" 
5952 10 Feb 12 nicklas 295             visible="<%=mode.hasNavigator()%>"
5952 10 Feb 12 nicklas 296           />
5952 10 Feb 12 nicklas 297         </tbl:panel>
5952 10 Feb 12 nicklas 298       </div>
2149 04 Apr 06 nicklas 299       <tbl:data>
5948 08 Feb 12 nicklas 300         <tbl:headers>
5948 08 Feb 12 nicklas 301           <tbl:headerrow>
7943 04 May 21 nicklas 302             <tbl:header clazz="row-index bg-filled-100" />
5948 08 Feb 12 nicklas 303             <tbl:columnheaders />
5948 08 Feb 12 nicklas 304           </tbl:headerrow>
6698 30 Jan 15 nicklas 305           <%
6698 30 Jan 15 nicklas 306           int numFilters = cc.getNumPropertyFilters();
6698 30 Jan 15 nicklas 307           int numRows = cc.getFilterRows();
6698 30 Jan 15 nicklas 308           for (int filterNo = 0; filterNo < numRows; filterNo++)
6698 30 Jan 15 nicklas 309           {
6698 30 Jan 15 nicklas 310             boolean lastRow = filterNo == numRows-1;
6698 30 Jan 15 nicklas 311             %>
6698 30 Jan 15 nicklas 312             <tbl:headerrow>
7943 04 May 21 nicklas 313               <tbl:header subclass="row-index bg-filled-100">
7943 04 May 21 nicklas 314                 <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 315                   <div class="index"></div>
7943 04 May 21 nicklas 316                   <div class="check">
7943 04 May 21 nicklas 317                     <base:icon 
7943 04 May 21 nicklas 318                       subclass="link table-check"
7943 04 May 21 nicklas 319                       image="check_uncheck.png" 
7943 04 May 21 nicklas 320                       tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)" 
7943 04 May 21 nicklas 321                       visible="<%=lastRow && mode.hasCheck()%>"
7943 04 May 21 nicklas 322                     />
7943 04 May 21 nicklas 323                   </div>
7943 04 May 21 nicklas 324                   <div class="icons">
7943 04 May 21 nicklas 325                     <base:icon
7943 04 May 21 nicklas 326                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 327                       image="add.png"
7943 04 May 21 nicklas 328                       tooltip="Add extra filter row"
7943 04 May 21 nicklas 329                       visible="<%=lastRow%>"
7943 04 May 21 nicklas 330                     /><base:icon
7943 04 May 21 nicklas 331                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 332                       image="remove.png"
7943 04 May 21 nicklas 333                       tooltip="Remove this filter row"
7943 04 May 21 nicklas 334                       visible="<%=numRows > 1 || numFilters > 0 %>"
7943 04 May 21 nicklas 335                       data-remove-row="<%=filterNo%>"
7943 04 May 21 nicklas 336                     />
7943 04 May 21 nicklas 337                   </div>
7943 04 May 21 nicklas 338                 </div>
6698 30 Jan 15 nicklas 339               </tbl:header>
6698 30 Jan 15 nicklas 340               <tbl:propertyfilter row="<%=filterNo%>" />
6698 30 Jan 15 nicklas 341             </tbl:headerrow>
6698 30 Jan 15 nicklas 342             <%
6698 30 Jan 15 nicklas 343           }
6698 30 Jan 15 nicklas 344           %>
7913 22 Feb 21 nicklas 345           <tbl:columnsubtitles />
5948 08 Feb 12 nicklas 346         </tbl:headers>
5948 08 Feb 12 nicklas 347         <tbl:rows>
2149 04 Apr 06 nicklas 348           <%
5952 10 Feb 12 nicklas 349           if (cc.getMessage() != null)
5952 10 Feb 12 nicklas 350           {
5952 10 Feb 12 nicklas 351             %>
6604 18 Nov 14 nicklas 352             <tbl:panel subclass="bg-filled-50">
5952 10 Feb 12 nicklas 353               <div class="messagecontainer error"><%=cc.getMessage()%></div>
5952 10 Feb 12 nicklas 354             </tbl:panel>
5952 10 Feb 12 nicklas 355             <%
5952 10 Feb 12 nicklas 356             cc.setMessage(null);
5952 10 Feb 12 nicklas 357           }
2149 04 Apr 06 nicklas 358           int index = cc.getPage()*cc.getRowsPerPage();
2149 04 Apr 06 nicklas 359           int selectedItemId = cc.getId();
2149 04 Apr 06 nicklas 360           if (reporterLists != null)
2507 09 Aug 06 martin 361           {            
2149 04 Apr 06 nicklas 362             while (reporterLists.hasNext())
2149 04 Apr 06 nicklas 363             {
2149 04 Apr 06 nicklas 364               ReporterList item = reporterLists.next();
2149 04 Apr 06 nicklas 365               int itemId = item.getId();
6221 10 Jan 13 nicklas 366               
6221 10 Jan 13 nicklas 367               
4003 26 Nov 07 nicklas 368               boolean deletePermission = item.hasPermission(Permission.DELETE);
2437 28 Jun 06 nicklas 369               boolean sharePermission = item.hasPermission(Permission.SET_PERMISSION);
2507 09 Aug 06 martin 370               boolean writePermission = item.hasPermission(Permission.WRITE);
2507 09 Aug 06 martin 371               String tooltip = mode.isSelectionMode() ?
2507 09 Aug 06 martin 372                   "Select this item" : "View this item" + (writePermission ? " (use CTRL, ALT or SHIFT to edit)" : "");
2149 04 Apr 06 nicklas 373               String name = HTML.encodeTags(item.getName());
2149 04 Apr 06 nicklas 374               index++;
2149 04 Apr 06 nicklas 375               numListed++;
2149 04 Apr 06 nicklas 376               %>
2149 04 Apr 06 nicklas 377               <tbl:row>
7943 04 May 21 nicklas 378                 <tbl:header clazz="row-index bg-filled-100">
7943 04 May 21 nicklas 379                   <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 380                     <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
7943 04 May 21 nicklas 381                     <div class="check">
7943 04 May 21 nicklas 382                       <base:input
7943 04 May 21 nicklas 383                         type="checkbox" 
7943 04 May 21 nicklas 384                         name="<%=itemId%>" 
7943 04 May 21 nicklas 385                         value="<%=itemId%>" 
7943 04 May 21 nicklas 386                         title="<%=name%>" 
7943 04 May 21 nicklas 387                         checked="<%=cc.getSelected().contains(itemId)%>"
7943 04 May 21 nicklas 388                         visible="<%=mode.hasCheck()%>"
7943 04 May 21 nicklas 389                       />
7943 04 May 21 nicklas 390                       <base:input 
7943 04 May 21 nicklas 391                         type="radio" 
7943 04 May 21 nicklas 392                         name="item_id" 
7943 04 May 21 nicklas 393                         value="<%=itemId%>" 
7943 04 May 21 nicklas 394                         title="<%=name%>" 
7943 04 May 21 nicklas 395                         checked="<%=selectedItemId == itemId%>"
7943 04 May 21 nicklas 396                         visible="<%=mode.hasRadio()%>"
7943 04 May 21 nicklas 397                       />
7943 04 May 21 nicklas 398                     </div>
7943 04 May 21 nicklas 399                     <div class="icons">
7943 04 May 21 nicklas 400                       <base:icon 
7943 04 May 21 nicklas 401                         image="deleted.png"
7943 04 May 21 nicklas 402                         id="<%="delete."+itemId %>"
7943 04 May 21 nicklas 403                         subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
7943 04 May 21 nicklas 404                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 405                         tooltip="This item has been scheduled for deletion" 
7943 04 May 21 nicklas 406                         visible="<%=item.isRemoved()%>"
7943 04 May 21 nicklas 407                       /><base:icon 
7943 04 May 21 nicklas 408                         image="shared.png" 
7943 04 May 21 nicklas 409                         id="<%="share."+itemId %>"
7943 04 May 21 nicklas 410                         subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
7943 04 May 21 nicklas 411                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 412                         tooltip="This item is shared to other users, groups and/or projects" 
7943 04 May 21 nicklas 413                         visible="<%=item.isShared()%>"
7943 04 May 21 nicklas 414                       />
7943 04 May 21 nicklas 415                     </div>
7943 04 May 21 nicklas 416                   </div>
7943 04 May 21 nicklas 417                 </tbl:header>
6311 23 Aug 13 nicklas 418                 <tbl:cell column="name"><div
6311 23 Aug 13 nicklas 419                   class="link table-item"
6311 23 Aug 13 nicklas 420                   data-item-id="<%=itemId%>"
6311 23 Aug 13 nicklas 421                   data-no-edit="<%=writePermission ? 0 : 1 %>" 
6311 23 Aug 13 nicklas 422                   tabindex="0"
2433 27 Jun 06 nicklas 423                   title="<%=tooltip%>"><%=name%></div></tbl:cell>
4332 12 Jun 08 martin 424                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
4698 10 Dec 08 nicklas 425                 <tbl:cell column="entryDate" value="<%=item.getEntryDate()%>" />
2354 07 Jun 06 martin 426                 <tbl:cell column="owner"
2354 07 Jun 06 martin 427                   ><base:propertyvalue 
2354 07 Jun 06 martin 428                     item="<%=item%>" 
2354 07 Jun 06 martin 429                     property="owner"
2354 07 Jun 06 martin 430                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 431                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 432                   /></tbl:cell>
2354 07 Jun 06 martin 433                 <tbl:cell column="experiment"
2354 07 Jun 06 martin 434                   ><base:propertyvalue 
2354 07 Jun 06 martin 435                     item="<%=item%>" 
2354 07 Jun 06 martin 436                     property="experiment"
2354 07 Jun 06 martin 437                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 438                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 439                   /></tbl:cell>
2149 04 Apr 06 nicklas 440                 <tbl:cell column="externalId"><%=HTML.encodeTags(item.getExternalId())%></tbl:cell>
4299 14 May 08 nicklas 441                 <tbl:cell column="numReporters"><%=item.getSize()%></tbl:cell>
2149 04 Apr 06 nicklas 442                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
2401 21 Jun 06 martin 443                 <tbl:cell column="permission"><%=PermissionUtil.getShortPermissions(item)%></tbl:cell>
3553 09 Jul 07 martin 444                 <tbl:cell column="sharedTo">
3553 09 Jul 07 martin 445                   <%
3553 09 Jul 07 martin 446                   Iterator<Nameable> sharees = ShareableUtil.getSharedTo(dc, item).iterator();
3553 09 Jul 07 martin 447                   while(sharees.hasNext())
3553 09 Jul 07 martin 448                   {
3553 09 Jul 07 martin 449                     Nameable n = sharees.next();
3553 09 Jul 07 martin 450                     if (mode.hasPropertyLink())
3553 09 Jul 07 martin 451                     {
3553 09 Jul 07 martin 452                       out.write(Base.getLinkedName(ID, n, false, mode.hasEditLink()));
3553 09 Jul 07 martin 453                     }
3553 09 Jul 07 martin 454                     else
3553 09 Jul 07 martin 455                     {
3553 09 Jul 07 martin 456                       out.write(HTML.encodeTags(n.getName()));
3553 09 Jul 07 martin 457                     }
3553 09 Jul 07 martin 458                     out.write(sharees.hasNext() ? ", " : "");
3553 09 Jul 07 martin 459                   }
3553 09 Jul 07 martin 460                   %>
3553 09 Jul 07 martin 461                 </tbl:cell>
6040 30 Mar 12 nicklas 462                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6040 30 Mar 12 nicklas 463                   <tbl:cell column="xt-columns" />
6040 30 Mar 12 nicklas 464                 </tbl:xt-cells>
2149 04 Apr 06 nicklas 465               </tbl:row>
2149 04 Apr 06 nicklas 466               <%
2149 04 Apr 06 nicklas 467               }
2149 04 Apr 06 nicklas 468             }
5952 10 Feb 12 nicklas 469           if (numListed == 0)
5952 10 Feb 12 nicklas 470           {
5952 10 Feb 12 nicklas 471             %>
6604 18 Nov 14 nicklas 472             <tbl:panel subclass="bg-filled-50">
5952 10 Feb 12 nicklas 473               <div class="messagecontainer note">
5952 10 Feb 12 nicklas 474               <%=reporterLists == null || reporterLists.getTotalCount() == 0 ? "No reporter lists were found" : "No reporter lists on this page. Please select another page!" %>
5952 10 Feb 12 nicklas 475               </div>
5952 10 Feb 12 nicklas 476             </tbl:panel>
5952 10 Feb 12 nicklas 477             <%
5952 10 Feb 12 nicklas 478           }
2149 04 Apr 06 nicklas 479           %>
2149 04 Apr 06 nicklas 480           </tbl:rows>
2149 04 Apr 06 nicklas 481       </tbl:data>
2149 04 Apr 06 nicklas 482     </tbl:table>
5952 10 Feb 12 nicklas 483     </div>
5952 10 Feb 12 nicklas 484     
5951 09 Feb 12 nicklas 485     <base:buttongroup subclass="dialogbuttons">
6311 23 Aug 13 nicklas 486       <base:button id="btnOk" title="Ok" visible="<%=mode.hasOkButton()%>" />
6311 23 Aug 13 nicklas 487       <base:button id="close" title="Cancel" visible="<%=mode.hasCancelButton()%>" />
6311 23 Aug 13 nicklas 488       <base:button id="close" title="Close" visible="<%=mode.hasCloseButton()%>" />
2149 04 Apr 06 nicklas 489     </base:buttongroup>
5951 09 Feb 12 nicklas 490     
2149 04 Apr 06 nicklas 491   </base:body>
2149 04 Apr 06 nicklas 492   </base:page>
2149 04 Apr 06 nicklas 493   <%
2149 04 Apr 06 nicklas 494 }
2149 04 Apr 06 nicklas 495 finally
2149 04 Apr 06 nicklas 496 {
2149 04 Apr 06 nicklas 497   if (reporterLists != null) reporterLists.close();
2149 04 Apr 06 nicklas 498   if (dc != null) dc.close();
2149 04 Apr 06 nicklas 499 }
3675 16 Aug 07 jari 500 %>