source: branches/2.4-stable/www/common/anytoany/list_anytoany.jsp @ 3707

Last change on this file since 3707 was 3707, checked in by Nicklas Nordborg, 14 years ago

Fixes #740: Missing AnyToAny? item causes ItemNotFoundException? when viewing a transformation

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Id
File size: 4.4 KB
Line 
1<%-- $Id: list_anytoany.jsp 3707 2007-09-05 09:29:16Z nicklas $
2  ------------------------------------------------------------------
3  Copyright (C) 2006 Nicklas Nordborg
4
5  This file is part of BASE - BioArray Software Environment.
6  Available at http://base.thep.lu.se/
7
8  BASE is free software; you can redistribute it and/or
9  modify it under the terms of the GNU General Public License
10  as published by the Free Software Foundation; either version 2
11  of the License, or (at your option) any later version.
12
13  BASE is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  GNU General Public License for more details.
17
18  You should have received a copy of the GNU General Public License
19  along with this program; if not, write to the Free Software
20  Foundation, Inc., 59 Temple Place - Suite 330,
21  Boston, MA  02111-1307, USA.
22  ------------------------------------------------------------------
23
24  @author Nicklas
25  @version 2.0
26--%>
27<%@ page session="false"
28  import="net.sf.basedb.core.SessionControl"
29  import="net.sf.basedb.core.DbControl"
30  import="net.sf.basedb.core.Item"
31  import="net.sf.basedb.core.Permission"
32  import="net.sf.basedb.core.BasicItem"
33  import="net.sf.basedb.core.AnyToAny"
34  import="net.sf.basedb.core.Nameable"
35  import="net.sf.basedb.core.File"
36  import="net.sf.basedb.core.ItemQuery"
37  import="net.sf.basedb.core.ItemResultList"
38  import="net.sf.basedb.core.PermissionDeniedException"
39  import="net.sf.basedb.core.ItemNotFoundException"
40  import="net.sf.basedb.core.query.Orders"
41  import="net.sf.basedb.core.query.Hql"
42  import="net.sf.basedb.clients.web.Base"
43  import="net.sf.basedb.clients.web.util.HTML"
44  import="net.sf.basedb.util.Values"
45  import="java.util.List"
46%>
47<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
48<%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
49
50<%
51String root = request.getContextPath() + "/";
52final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
53final String ID = sc.getId();
54final Item itemType = Item.valueOf(request.getParameter("item_type"));
55final int itemId = Values.getInt(request.getParameter("item_id"));
56final float scale = Base.getScale(sc);
57final DbControl dc = sc.newDbControl();
58
59try
60{
61  final BasicItem item = itemType.getById(dc, itemId);
62  ItemQuery<AnyToAny> query = AnyToAny.getLinksFrom(item);
63  query.order(Orders.asc(Hql.property("name")));
64  ItemResultList<AnyToAny> links = query.list(dc);
65  %>
66
67  <base:page type="include">
68  <base:head />
69  <base:body>
70 
71    <%
72    if (links.getTotalCount() == 0)
73    {
74      %>
75      None.
76      <%
77    }
78    else
79    {
80      %>
81      <tbl:table
82        id="links"
83        clazz="itemlist"
84        columns="all"
85        >
86        <tbl:columndef 
87          id="name"
88          title="Name"
89        />
90        <tbl:columndef 
91          id="item"
92          title="Item"
93        />
94        <tbl:columndef 
95          id="description"
96          title="Description"
97        />
98        <tbl:data>
99          <tbl:columns>
100          </tbl:columns>
101          <tbl:rows>
102          <%
103          for (AnyToAny ata : links)
104          {
105            String name = HTML.encodeTags(ata.getName());
106            BasicItem to = null;
107            boolean readTo = true;
108            boolean missingTo = false;
109            try
110            {
111              to = ata.getTo();
112            }
113            catch (PermissionDeniedException ex)
114            {
115              readTo = false;
116            }
117            catch (ItemNotFoundException ex)
118            {
119              missingTo = true;
120            }
121           
122            String toLink = "";
123            if (to instanceof File)
124            {
125              File toFile = (File)to;
126              toLink = Base.getLinkedFile(ID, toFile, false, true, true, root);
127            }
128            else if (to instanceof Nameable)
129            {
130              Nameable nameable = (Nameable)to;
131              toLink = Base.getLinkedName(ID, nameable, false, true);
132            }
133            else if (!readTo)
134            {
135              toLink = "<i>- denied -</i>";
136            }
137            else if (missingTo)
138            {
139              toLink = "<i>- missing -</i> (" + ata.getToType().toString() + "; id=" + ata.getToId() + ")";
140            }
141            else if (to == null)
142            {
143              toLink = "<i>- none -</i>";
144            }
145            else
146            {
147              toLink = Base.getLink(ID, to.toString(), to.getType(), to.getId(), true);
148            }
149            %>
150            <tbl:row>
151              <tbl:cell column="name"><%=Base.getLinkedName(ID, ata, false, true)%></tbl:cell>
152              <tbl:cell column="item"><%=toLink%></tbl:cell>
153              <tbl:cell column="description"><%=HTML.encodeTags(ata.getDescription())%></tbl:cell>
154            </tbl:row>
155            <%
156          }
157          %>
158          </tbl:rows>
159        </tbl:data>
160      </tbl:table>
161      <%
162    }
163    %>
164    <br>
165
166  </base:body>
167  </base:page>
168  <%
169}
170finally
171{
172  if (dc != null) dc.close();
173}
174
175%>
Note: See TracBrowser for help on using the repository browser.