www/admin/annotationtypecategories/list_categories.jsp

Code
Comments
Other
Rev Date Author Line
2356 08 Jun 06 dominic 1 <%-- $Id$
2356 08 Jun 06 dominic 2   ------------------------------------------------------------------
3675 16 Aug 07 jari 3   Copyright (C) 2006 Nicklas Nordborg, Dominic Oyeniran
3675 16 Aug 07 jari 4   Copyright (C) 2007 Johan Enell, Martin Svensson
2356 08 Jun 06 dominic 5
2356 08 Jun 06 dominic 6   This file is part of BASE - BioArray Software Environment.
2356 08 Jun 06 dominic 7   Available at http://base.thep.lu.se/
2356 08 Jun 06 dominic 8
2356 08 Jun 06 dominic 9   BASE is free software; you can redistribute it and/or
2356 08 Jun 06 dominic 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
2356 08 Jun 06 dominic 12   of the License, or (at your option) any later version.
2356 08 Jun 06 dominic 13
2356 08 Jun 06 dominic 14   BASE is distributed in the hope that it will be useful,
2356 08 Jun 06 dominic 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
2356 08 Jun 06 dominic 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2356 08 Jun 06 dominic 17   GNU General Public License for more details.
2356 08 Jun 06 dominic 18
2356 08 Jun 06 dominic 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/>.
2356 08 Jun 06 dominic 21   ------------------------------------------------------------------
2356 08 Jun 06 dominic 22
2356 08 Jun 06 dominic 23   @author Dominic
2356 08 Jun 06 dominic 24   @version 2.0
2356 08 Jun 06 dominic 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
2356 08 Jun 06 dominic 27   import="net.sf.basedb.core.SessionControl"
2356 08 Jun 06 dominic 28   import="net.sf.basedb.core.DbControl"
2356 08 Jun 06 dominic 29   import="net.sf.basedb.core.Item"
2356 08 Jun 06 dominic 30   import="net.sf.basedb.core.AnnotationTypeCategory"
2356 08 Jun 06 dominic 31   import="net.sf.basedb.core.AnnotationType"
2356 08 Jun 06 dominic 32   import="net.sf.basedb.core.ItemQuery"
2356 08 Jun 06 dominic 33   import="net.sf.basedb.core.Include"
2356 08 Jun 06 dominic 34   import="net.sf.basedb.core.Type"
2356 08 Jun 06 dominic 35   import="net.sf.basedb.core.Metadata"
2356 08 Jun 06 dominic 36   import="net.sf.basedb.core.ItemResultIterator"
2356 08 Jun 06 dominic 37   import="net.sf.basedb.core.ItemResultList"
2356 08 Jun 06 dominic 38   import="net.sf.basedb.core.ItemContext"
3552 06 Jul 07 martin 39   import="net.sf.basedb.core.Nameable"
2356 08 Jun 06 dominic 40   import="net.sf.basedb.core.Permission"
2356 08 Jun 06 dominic 41   import="net.sf.basedb.core.PluginDefinition"
2515 14 Aug 06 nicklas 42   import="net.sf.basedb.core.query.Restrictions"
2515 14 Aug 06 nicklas 43   import="net.sf.basedb.core.query.Expressions"
2356 08 Jun 06 dominic 44   import="net.sf.basedb.core.query.Orders"
2356 08 Jun 06 dominic 45   import="net.sf.basedb.core.query.Hql"
2356 08 Jun 06 dominic 46   import="net.sf.basedb.core.plugin.GuiContext"
2356 08 Jun 06 dominic 47   import="net.sf.basedb.core.plugin.Plugin"
2356 08 Jun 06 dominic 48   import="net.sf.basedb.util.Enumeration"
3552 06 Jul 07 martin 49   import="net.sf.basedb.util.ShareableUtil"
2356 08 Jun 06 dominic 50   import="net.sf.basedb.clients.web.Base"
2356 08 Jun 06 dominic 51   import="net.sf.basedb.clients.web.ModeInfo"
2356 08 Jun 06 dominic 52   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 53   import="net.sf.basedb.util.Values"
2515 14 Aug 06 nicklas 54   import="net.sf.basedb.clients.web.PermissionUtil"
4698 10 Dec 08 nicklas 55   import="net.sf.basedb.util.formatter.Formatter"
4698 10 Dec 08 nicklas 56   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4886 03 Apr 09 nicklas 57   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4886 03 Apr 09 nicklas 58   import="net.sf.basedb.clients.web.extensions.JspContext"
4886 03 Apr 09 nicklas 59   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 60   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4886 03 Apr 09 nicklas 61   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 62   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6045 03 Apr 12 nicklas 63   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
4886 03 Apr 09 nicklas 64   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
4698 10 Dec 08 nicklas 65   import="java.util.Date"
3552 06 Jul 07 martin 66   import="java.util.Iterator"
2356 08 Jun 06 dominic 67   import="java.util.List"
2356 08 Jun 06 dominic 68   import="java.util.Map"
2356 08 Jun 06 dominic 69   import="java.util.Set"
2356 08 Jun 06 dominic 70 %>
2356 08 Jun 06 dominic 71 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2356 08 Jun 06 dominic 72 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
4886 03 Apr 09 nicklas 73 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
2356 08 Jun 06 dominic 74 <%!
2356 08 Jun 06 dominic 75   private static final Item itemType = Item.ANNOTATIONTYPECATEGORY;
2356 08 Jun 06 dominic 76   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST);
2356 08 Jun 06 dominic 77     
2356 08 Jun 06 dominic 78 %>
2356 08 Jun 06 dominic 79 <%
2356 08 Jun 06 dominic 80 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
2356 08 Jun 06 dominic 81 final String ID = sc.getId();
2356 08 Jun 06 dominic 82 final boolean createPermission = sc.hasPermission(Permission.CREATE, itemType);
2356 08 Jun 06 dominic 83 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
2356 08 Jun 06 dominic 84
2356 08 Jun 06 dominic 85 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
2356 08 Jun 06 dominic 86 final String callback = request.getParameter("callback");
2356 08 Jun 06 dominic 87 final String title = mode.generateTitle("annotation type category", "annotation type categories");
7954 12 May 21 nicklas 88 final DbControl dc = sc.newDbControl(":List "+itemType);
2356 08 Jun 06 dominic 89 ItemResultIterator<AnnotationTypeCategory> annotationTypeCategories = null;
2356 08 Jun 06 dominic 90 try
2356 08 Jun 06 dominic 91 {
4698 10 Dec 08 nicklas 92   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
2515 14 Aug 06 nicklas 93   // Query for annotation types in the current category
2515 14 Aug 06 nicklas 94   final ItemQuery<AnnotationType> annotationTypeQuery = AnnotationType.getQuery(null);
2515 14 Aug 06 nicklas 95   annotationTypeQuery.include(cc.getInclude());
2515 14 Aug 06 nicklas 96   annotationTypeQuery.join(Hql.innerJoin("categories", "ctg"));
2515 14 Aug 06 nicklas 97   annotationTypeQuery.restrict(Restrictions.eq(Hql.alias("ctg"), Expressions.parameter("category")));
2515 14 Aug 06 nicklas 98   annotationTypeQuery.order(Orders.asc(Hql.property("name"))); 
2515 14 Aug 06 nicklas 99
2356 08 Jun 06 dominic 100   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
7914 23 Feb 21 nicklas 101   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
2356 08 Jun 06 dominic 102   try
2356 08 Jun 06 dominic 103   {
2515 14 Aug 06 nicklas 104     final ItemQuery<AnnotationTypeCategory> query = 
7914 23 Feb 21 nicklas 105       Base.getConfiguredQuery(dc, cc, jspContext, true, AnnotationTypeCategory.getQuery(), mode);
2356 08 Jun 06 dominic 106     annotationTypeCategories = query.iterate(dc);
2356 08 Jun 06 dominic 107   }
2356 08 Jun 06 dominic 108   catch (Throwable ex)
2356 08 Jun 06 dominic 109   {
2356 08 Jun 06 dominic 110     cc.setMessage(ex.getMessage());
2356 08 Jun 06 dominic 111   }
2356 08 Jun 06 dominic 112   int numListed = 0;
7604 25 Feb 19 nicklas 113   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 114   ExtensionsInvoker<ListColumnAction<AnnotationTypeCategory,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
2356 08 Jun 06 dominic 115   %>
6289 05 Jun 13 nicklas 116   <base:page title="<%=title==null ? "Annotation type categories" : title%>" type="<%=mode.getPageType()%>" id="list-page">
2356 08 Jun 06 dominic 117   
6289 05 Jun 13 nicklas 118   <base:head scripts="table.js,~categories.js" styles="table.css,toolbar.css">
4886 03 Apr 09 nicklas 119     <ext:scripts context="<%=jspContext%>" />
4886 03 Apr 09 nicklas 120     <ext:stylesheets context="<%=jspContext%>" />
2356 08 Jun 06 dominic 121   </base:head>
2356 08 Jun 06 dominic 122   
2356 08 Jun 06 dominic 123   <base:body>
5954 13 Feb 12 nicklas 124     <h1><%=title==null ? "Annotation type categories" : title%></h1>
5954 13 Feb 12 nicklas 125     <div class="content">
2356 08 Jun 06 dominic 126     <tbl:table 
2356 08 Jun 06 dominic 127       id="annotationTypeCategories" 
2356 08 Jun 06 dominic 128       columns="<%=cc.getSetting("columns")%>"
2356 08 Jun 06 dominic 129       sortby="<%=cc.getSortProperty()%>" 
2356 08 Jun 06 dominic 130       direction="<%=cc.getSortDirection()%>"
2356 08 Jun 06 dominic 131       action="index.jsp"
2356 08 Jun 06 dominic 132       sc="<%=sc%>"
2356 08 Jun 06 dominic 133       item="<%=itemType%>"
6706 02 Feb 15 nicklas 134       filterrows="<%=cc.getFilterRows()%>"
5954 13 Feb 12 nicklas 135       subclass="fulltable"
7982 14 Jun 21 nicklas 136       stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>"
2356 08 Jun 06 dominic 137       >
2356 08 Jun 06 dominic 138       <tbl:hidden 
2356 08 Jun 06 dominic 139         name="mode" 
2356 08 Jun 06 dominic 140         value="<%=mode.getName()%>" 
2356 08 Jun 06 dominic 141       />
2356 08 Jun 06 dominic 142       <tbl:hidden 
2356 08 Jun 06 dominic 143         name="callback" 
2356 08 Jun 06 dominic 144         value="<%=callback%>" 
2356 08 Jun 06 dominic 145         skip="<%=callback == null%>" 
2356 08 Jun 06 dominic 146       />
2356 08 Jun 06 dominic 147
2356 08 Jun 06 dominic 148       <tbl:columndef 
2356 08 Jun 06 dominic 149         id="name"
2356 08 Jun 06 dominic 150         property="name"
2356 08 Jun 06 dominic 151         datatype="string"
2356 08 Jun 06 dominic 152         title="Name"
2356 08 Jun 06 dominic 153         sortable="true" 
2356 08 Jun 06 dominic 154         filterable="true"
2356 08 Jun 06 dominic 155         exportable="true"
2356 08 Jun 06 dominic 156         show="always" 
2356 08 Jun 06 dominic 157       />
2356 08 Jun 06 dominic 158       <tbl:columndef 
4332 12 Jun 08 martin 159         id="id"
4387 11 Aug 08 nicklas 160         clazz="uniquecol"
4332 12 Jun 08 martin 161         property="id"
4332 12 Jun 08 martin 162         datatype="int"
4332 12 Jun 08 martin 163         title="ID"
4332 12 Jun 08 martin 164         sortable="true"
4332 12 Jun 08 martin 165         filterable="true"
4332 12 Jun 08 martin 166         exportable="true"
4332 12 Jun 08 martin 167       />
4332 12 Jun 08 martin 168       <tbl:columndef 
4698 10 Dec 08 nicklas 169         id="entryDate"
4698 10 Dec 08 nicklas 170         property="entryDate"
4698 10 Dec 08 nicklas 171         datatype="date"
4698 10 Dec 08 nicklas 172         title="Registered"
4698 10 Dec 08 nicklas 173         sortable="true" 
4698 10 Dec 08 nicklas 174         filterable="true"
4698 10 Dec 08 nicklas 175         exportable="true"
4698 10 Dec 08 nicklas 176         formatter="<%=dateFormatter%>"
4698 10 Dec 08 nicklas 177       />
4698 10 Dec 08 nicklas 178       <tbl:columndef 
2515 14 Aug 06 nicklas 179         id="annotationTypes"
2515 14 Aug 06 nicklas 180         title="Annotation types"
4609 28 Oct 08 nicklas 181         property="&annotationTypes(name)"
4609 28 Oct 08 nicklas 182         datatype="string"
4609 28 Oct 08 nicklas 183         filterable="true"
4907 28 Apr 09 martin 184         exportable="true"
2515 14 Aug 06 nicklas 185       />
2515 14 Aug 06 nicklas 186       <tbl:columndef 
2356 08 Jun 06 dominic 187         id="owner"
2356 08 Jun 06 dominic 188         property="owner.name"
2356 08 Jun 06 dominic 189         datatype="string"
2356 08 Jun 06 dominic 190         title="Owner"
2356 08 Jun 06 dominic 191         sortable="true" 
2356 08 Jun 06 dominic 192         filterable="true"
2356 08 Jun 06 dominic 193         exportable="true"
2356 08 Jun 06 dominic 194       />
2356 08 Jun 06 dominic 195       <tbl:columndef 
2356 08 Jun 06 dominic 196         id="description"
2356 08 Jun 06 dominic 197         property="description"
2356 08 Jun 06 dominic 198         datatype="string"
2475 31 Jul 06 dominic 199         title="Description" 
2356 08 Jun 06 dominic 200         sortable="true" 
2356 08 Jun 06 dominic 201         filterable="true" 
2356 08 Jun 06 dominic 202         exportable="true"
2356 08 Jun 06 dominic 203       />
2515 14 Aug 06 nicklas 204       <tbl:columndef
2515 14 Aug 06 nicklas 205         id="permission"
2515 14 Aug 06 nicklas 206         title="Permission"
2515 14 Aug 06 nicklas 207       />
3552 06 Jul 07 martin 208       <tbl:columndef
3552 06 Jul 07 martin 209         id="sharedTo"
3552 06 Jul 07 martin 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"
3552 06 Jul 07 martin 214       />
6045 03 Apr 12 nicklas 215       <tbl:columndef 
6045 03 Apr 12 nicklas 216         id="xt-columns" 
6045 03 Apr 12 nicklas 217         extensions="<%=columnsInvoker%>" 
6045 03 Apr 12 nicklas 218         jspcontext="<%=jspContext%>" 
6045 03 Apr 12 nicklas 219       />
6604 18 Nov 14 nicklas 220       <div class="panelgroup bg-filled-50 bottomborder">
5954 13 Feb 12 nicklas 221         <tbl:toolbar
5954 13 Feb 12 nicklas 222           subclass="bottomborder"
5954 13 Feb 12 nicklas 223           visible="<%=mode.hasToolbar()%>"
5954 13 Feb 12 nicklas 224           >
5954 13 Feb 12 nicklas 225           <tbl:button 
6289 05 Jun 13 nicklas 226             id="btnNewItem"
5954 13 Feb 12 nicklas 227             disabled="<%=!createPermission%>" 
5954 13 Feb 12 nicklas 228             image="new.png" 
5954 13 Feb 12 nicklas 229             title="New&hellip;" 
5954 13 Feb 12 nicklas 230             tooltip="<%=createPermission ? "Create new annotation type category" : "You do not have permission to create annotation type categories"%>" 
5954 13 Feb 12 nicklas 231           />
5954 13 Feb 12 nicklas 232           <tbl:button 
6289 05 Jun 13 nicklas 233             id="btnDeleteItems"
5954 13 Feb 12 nicklas 234             image="delete.png"
5954 13 Feb 12 nicklas 235             title="Delete" 
5954 13 Feb 12 nicklas 236             tooltip="Delete the selected items" 
5954 13 Feb 12 nicklas 237           />
5954 13 Feb 12 nicklas 238           <tbl:button 
6289 05 Jun 13 nicklas 239             id="btnRestoreItems"
5954 13 Feb 12 nicklas 240             image="restore.png"
5954 13 Feb 12 nicklas 241             title="Restore" 
5954 13 Feb 12 nicklas 242             tooltip="Restore the selected (deleted) items"
5954 13 Feb 12 nicklas 243           />
5954 13 Feb 12 nicklas 244           <tbl:button 
6289 05 Jun 13 nicklas 245             id="btnShareItems"
5954 13 Feb 12 nicklas 246             image="share.png"
5954 13 Feb 12 nicklas 247             title="Share&hellip;" 
5954 13 Feb 12 nicklas 248             tooltip="Share the selected items"
5954 13 Feb 12 nicklas 249           />
5954 13 Feb 12 nicklas 250           <tbl:button 
6289 05 Jun 13 nicklas 251             id="btnSetOwner"
5954 13 Feb 12 nicklas 252             image="take_ownership.png"
5954 13 Feb 12 nicklas 253             title="Set owner&hellip;"
5954 13 Feb 12 nicklas 254             tooltip="Change owner of the selected items"
5954 13 Feb 12 nicklas 255           />
5954 13 Feb 12 nicklas 256           <tbl:button 
6289 05 Jun 13 nicklas 257             id="btnColumns"
5954 13 Feb 12 nicklas 258             image="columns.png" 
5954 13 Feb 12 nicklas 259             title="Columns&hellip;" 
5954 13 Feb 12 nicklas 260             tooltip="Show, hide and re-order columns" 
5954 13 Feb 12 nicklas 261           />
5954 13 Feb 12 nicklas 262           <tbl:button 
6289 05 Jun 13 nicklas 263             id="btnImport"
6289 05 Jun 13 nicklas 264             data-plugin-type="IMPORT"
5954 13 Feb 12 nicklas 265             image="import.png" 
5954 13 Feb 12 nicklas 266             title="Import&hellip;" 
5954 13 Feb 12 nicklas 267             tooltip="Import data" 
5954 13 Feb 12 nicklas 268             visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5954 13 Feb 12 nicklas 269           />
5954 13 Feb 12 nicklas 270           <tbl:button 
6289 05 Jun 13 nicklas 271             id="btnExport"
6289 05 Jun 13 nicklas 272             data-plugin-type="EXPORT"
5954 13 Feb 12 nicklas 273             image="export.png" 
5954 13 Feb 12 nicklas 274             title="Export&hellip;" 
5954 13 Feb 12 nicklas 275             tooltip="Export data" 
5954 13 Feb 12 nicklas 276             visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5954 13 Feb 12 nicklas 277           />
5954 13 Feb 12 nicklas 278           <tbl:button 
6289 05 Jun 13 nicklas 279             id="btnRunPlugin"
6289 05 Jun 13 nicklas 280             data-plugin-type="OTHER"
5954 13 Feb 12 nicklas 281             image="runplugin.png" 
5954 13 Feb 12 nicklas 282             title="Run plugin&hellip;" 
5954 13 Feb 12 nicklas 283             tooltip="Run a plugin" 
5954 13 Feb 12 nicklas 284             visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5954 13 Feb 12 nicklas 285           />
5954 13 Feb 12 nicklas 286           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 287             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5954 13 Feb 12 nicklas 288         </tbl:toolbar>
5954 13 Feb 12 nicklas 289         <tbl:panel>
6182 23 Oct 12 nicklas 290           <tbl:presetselector />
5954 13 Feb 12 nicklas 291           <tbl:navigator
5954 13 Feb 12 nicklas 292             page="<%=cc.getPage()%>" 
5954 13 Feb 12 nicklas 293             rowsperpage="<%=cc.getRowsPerPage()%>" 
5954 13 Feb 12 nicklas 294             totalrows="<%=annotationTypeCategories == null ? 0 : annotationTypeCategories.getTotalCount()%>" 
5954 13 Feb 12 nicklas 295             visible="<%=mode.hasNavigator()%>"
5954 13 Feb 12 nicklas 296           />
5954 13 Feb 12 nicklas 297         </tbl:panel>
5954 13 Feb 12 nicklas 298       </div>
2356 08 Jun 06 dominic 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>
6706 02 Feb 15 nicklas 305           <%
6706 02 Feb 15 nicklas 306           int numFilters = cc.getNumPropertyFilters();
6706 02 Feb 15 nicklas 307           int numRows = cc.getFilterRows();
6706 02 Feb 15 nicklas 308           for (int filterNo = 0; filterNo < numRows; filterNo++)
6706 02 Feb 15 nicklas 309           {
6706 02 Feb 15 nicklas 310             boolean lastRow = filterNo == numRows-1;
6706 02 Feb 15 nicklas 311             %>
6706 02 Feb 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>
6706 02 Feb 15 nicklas 339               </tbl:header>
6706 02 Feb 15 nicklas 340               <tbl:propertyfilter row="<%=filterNo%>" />
6706 02 Feb 15 nicklas 341             </tbl:headerrow>
6706 02 Feb 15 nicklas 342             <%
6706 02 Feb 15 nicklas 343           }
6706 02 Feb 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>
2356 08 Jun 06 dominic 348           <%
5954 13 Feb 12 nicklas 349           if (cc.getMessage() != null)
5954 13 Feb 12 nicklas 350           {
5954 13 Feb 12 nicklas 351             %>
6604 18 Nov 14 nicklas 352             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 353               <div class="messagecontainer error"><%=cc.getMessage()%></div>
5954 13 Feb 12 nicklas 354             </tbl:panel>
5954 13 Feb 12 nicklas 355             <%
5954 13 Feb 12 nicklas 356             cc.setMessage(null);
5954 13 Feb 12 nicklas 357           }
2356 08 Jun 06 dominic 358           int index = cc.getPage()*cc.getRowsPerPage();
2356 08 Jun 06 dominic 359           int selectedItemId = cc.getId();
2356 08 Jun 06 dominic 360           if (annotationTypeCategories != null)
2356 08 Jun 06 dominic 361           {
2356 08 Jun 06 dominic 362             while (annotationTypeCategories.hasNext())
2356 08 Jun 06 dominic 363             {
2356 08 Jun 06 dominic 364               AnnotationTypeCategory item = annotationTypeCategories.next();
2356 08 Jun 06 dominic 365               int itemId = item.getId();
6221 10 Jan 13 nicklas 366               
2356 08 Jun 06 dominic 367               String name = HTML.encodeTags(item.getName());
6221 10 Jan 13 nicklas 368               
4003 26 Nov 07 nicklas 369               boolean deletePermission = item.hasPermission(Permission.DELETE);
2515 14 Aug 06 nicklas 370               boolean sharePermission = item.hasPermission(Permission.SET_PERMISSION);
2515 14 Aug 06 nicklas 371               boolean writePermission = item.hasPermission(Permission.WRITE);
2515 14 Aug 06 nicklas 372               String tooltip = mode.isSelectionMode() ? 
2515 14 Aug 06 nicklas 373                   "Select this item" : "View this item" + (writePermission ? " (use CTRL, ALT or SHIFT to edit)" : "");
2356 08 Jun 06 dominic 374               index++;
2356 08 Jun 06 dominic 375               numListed++;
2356 08 Jun 06 dominic 376               %>
2356 08 Jun 06 dominic 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>
6289 05 Jun 13 nicklas 418                 <tbl:cell column="name"><div 
6289 05 Jun 13 nicklas 419                   class="link table-item"
6289 05 Jun 13 nicklas 420                   data-item-id="<%=itemId%>"
6289 05 Jun 13 nicklas 421                   data-no-edit="<%=writePermission ? 0 : 1 %>" 
6289 05 Jun 13 nicklas 422                   tabindex="0"
2515 14 Aug 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()%>" />
2356 08 Jun 06 dominic 426                 <tbl:cell column="owner"><base:propertyvalue item="<%=item%>" property="owner.name" /></tbl:cell>
2356 08 Jun 06 dominic 427                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
2515 14 Aug 06 nicklas 428                 <tbl:cell column="permission"><%=PermissionUtil.getShortPermissions(item)%></tbl:cell>
2515 14 Aug 06 nicklas 429                 <tbl:cell column="annotationTypes">
2515 14 Aug 06 nicklas 430                   <%
2515 14 Aug 06 nicklas 431                   annotationTypeQuery.setParameter("category", itemId, Type.INT);
2515 14 Aug 06 nicklas 432                   try
2515 14 Aug 06 nicklas 433                   {
2515 14 Aug 06 nicklas 434                     String separator = "";
2515 14 Aug 06 nicklas 435                     for (AnnotationType at : annotationTypeQuery.list(dc))
2515 14 Aug 06 nicklas 436                     {
2515 14 Aug 06 nicklas 437                       out.write(separator);
2515 14 Aug 06 nicklas 438                       if (mode.hasPropertyLink())
2515 14 Aug 06 nicklas 439                       {
2515 14 Aug 06 nicklas 440                         out.write(Base.getLinkedName(ID, at, false, mode.hasEditLink()));
2515 14 Aug 06 nicklas 441                       }
2515 14 Aug 06 nicklas 442                       else
2515 14 Aug 06 nicklas 443                       {
2515 14 Aug 06 nicklas 444                         out.write(HTML.encodeTags(at.getName()));
2515 14 Aug 06 nicklas 445                       }
2515 14 Aug 06 nicklas 446                       separator = ", ";
2515 14 Aug 06 nicklas 447                     }
2515 14 Aug 06 nicklas 448                   }
2515 14 Aug 06 nicklas 449                   catch (Throwable t)
2515 14 Aug 06 nicklas 450                   {
2515 14 Aug 06 nicklas 451                     %>
2515 14 Aug 06 nicklas 452                     <div class="error"><%=t.getMessage()%></div>
2515 14 Aug 06 nicklas 453                     <%
2515 14 Aug 06 nicklas 454                   }
2515 14 Aug 06 nicklas 455                   %>
2515 14 Aug 06 nicklas 456                 </tbl:cell>
3552 06 Jul 07 martin 457                 <tbl:cell column="sharedTo">
3552 06 Jul 07 martin 458                   <%
3552 06 Jul 07 martin 459                   Iterator<Nameable> sharees = ShareableUtil.getSharedTo(dc, item).iterator();
3552 06 Jul 07 martin 460                   while(sharees.hasNext())
3552 06 Jul 07 martin 461                   {
3552 06 Jul 07 martin 462                     Nameable n = sharees.next();
3552 06 Jul 07 martin 463                     if (mode.hasPropertyLink())
3552 06 Jul 07 martin 464                     {
3552 06 Jul 07 martin 465                       out.write(Base.getLinkedName(ID, n, false, mode.hasEditLink()));
3552 06 Jul 07 martin 466                     }
3552 06 Jul 07 martin 467                     else
3552 06 Jul 07 martin 468                     {
3552 06 Jul 07 martin 469                       out.write(HTML.encodeTags(n.getName()));
3552 06 Jul 07 martin 470                     }
3552 06 Jul 07 martin 471                     out.write(sharees.hasNext() ? ", " : "");
3552 06 Jul 07 martin 472                   }
3552 06 Jul 07 martin 473                   %>
3552 06 Jul 07 martin 474                 </tbl:cell>
6045 03 Apr 12 nicklas 475                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6045 03 Apr 12 nicklas 476                   <tbl:cell column="xt-columns" />
6045 03 Apr 12 nicklas 477                 </tbl:xt-cells>
2356 08 Jun 06 dominic 478               </tbl:row>
2356 08 Jun 06 dominic 479               <%
2356 08 Jun 06 dominic 480             }
2356 08 Jun 06 dominic 481           }
5954 13 Feb 12 nicklas 482           if (numListed == 0)
5954 13 Feb 12 nicklas 483           {
5954 13 Feb 12 nicklas 484             %>
6604 18 Nov 14 nicklas 485             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 486               <div class="messagecontainer note">
5954 13 Feb 12 nicklas 487               <%=annotationTypeCategories == null || annotationTypeCategories.getTotalCount() == 0 ? "No annotation type categories were found" : "No annotation types categories on this page. Please select another page!" %>
5954 13 Feb 12 nicklas 488               </div>
5954 13 Feb 12 nicklas 489             </tbl:panel>
5954 13 Feb 12 nicklas 490             <%
5954 13 Feb 12 nicklas 491           }
2356 08 Jun 06 dominic 492           %>
5954 13 Feb 12 nicklas 493         </tbl:rows>
2356 08 Jun 06 dominic 494       </tbl:data>
2356 08 Jun 06 dominic 495     </tbl:table>
5954 13 Feb 12 nicklas 496     </div>
5954 13 Feb 12 nicklas 497     
5951 09 Feb 12 nicklas 498     <base:buttongroup subclass="dialogbuttons">
6289 05 Jun 13 nicklas 499       <base:button id="btnOk" title="Ok" visible="<%=mode.hasOkButton()%>" />
6289 05 Jun 13 nicklas 500       <base:button id="close" title="Cancel" visible="<%=mode.hasCancelButton()%>" />
6289 05 Jun 13 nicklas 501       <base:button id="close" title="Close" visible="<%=mode.hasCloseButton()%>" />
2356 08 Jun 06 dominic 502     </base:buttongroup>
5951 09 Feb 12 nicklas 503     
2356 08 Jun 06 dominic 504   </base:body>
2356 08 Jun 06 dominic 505   </base:page>
2356 08 Jun 06 dominic 506   <%
2356 08 Jun 06 dominic 507 }
2356 08 Jun 06 dominic 508 finally
2356 08 Jun 06 dominic 509 {
2356 08 Jun 06 dominic 510   if (annotationTypeCategories != null) annotationTypeCategories.close();
2356 08 Jun 06 dominic 511   if (dc != null) dc.close();
2356 08 Jun 06 dominic 512 }
3675 16 Aug 07 jari 513 %>