source: trunk/www/views/rawbioassays/view_rawbioassay.jsp @ 5937

Last change on this file since 5937 was 5937, checked in by Nicklas Nordborg, 10 years ago

References #1655: GUI improvements

  • Fixes rest of view pages in biomaterials menu.
  • Use SVG filter to make disabled button images grayscale.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Id
File size: 20.1 KB
Line 
1<%-- $Id: view_rawbioassay.jsp 5937 2012-01-27 11:00:26Z nicklas $
2  ------------------------------------------------------------------
3  Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg, Martin Svensson
4  Copyright (C) 2007 Martin Svensson
5
6  This file is part of BASE - BioArray Software Environment.
7  Available at http://base.thep.lu.se/
8
9  BASE is free software; you can redistribute it and/or
10  modify it under the terms of the GNU General Public License
11  as published by the Free Software Foundation; either version 3
12  of the License, or (at your option) any later version.
13
14  BASE is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  GNU General Public License for more details.
18
19  You should have received a copy of the GNU General Public License
20  along with BASE. If not, see <http://www.gnu.org/licenses/>.
21  ------------------------------------------------------------------
22
23  @author Nicklas
24  @version 2.0
25--%>
26<%@ page pageEncoding="UTF-8" session="false"
27  buffer="500kb"
28  import="net.sf.basedb.core.SessionControl"
29  import="net.sf.basedb.core.DbControl"
30  import="net.sf.basedb.core.SystemItems"
31  import="net.sf.basedb.core.Item"
32  import="net.sf.basedb.core.ItemContext"
33  import="net.sf.basedb.core.Permission"
34  import="net.sf.basedb.core.AnnotationType"
35  import="net.sf.basedb.core.AnnotationSet"
36  import="net.sf.basedb.core.ExtendedProperties"
37  import="net.sf.basedb.core.ExtendedProperty"
38  import="net.sf.basedb.core.RawBioAssay"
39  import="net.sf.basedb.core.Experiment"
40  import="net.sf.basedb.core.RawDataType"
41  import="net.sf.basedb.core.SpotImages"
42  import="net.sf.basedb.core.Protocol"
43  import="net.sf.basedb.core.Software"
44  import="net.sf.basedb.core.ArrayDesign"
45  import="net.sf.basedb.core.Job"
46  import="net.sf.basedb.core.File"
47  import="net.sf.basedb.core.User"
48  import="net.sf.basedb.core.Group"
49  import="net.sf.basedb.core.ItemQuery"
50  import="net.sf.basedb.core.ItemResultIterator"
51  import="net.sf.basedb.core.ItemResultList"
52  import="net.sf.basedb.core.Include"
53  import="net.sf.basedb.core.MultiPermissions"
54  import="net.sf.basedb.core.PermissionDeniedException"
55  import="net.sf.basedb.core.PluginDefinition"
56  import="net.sf.basedb.core.plugin.GuiContext"
57  import="net.sf.basedb.core.plugin.Plugin"
58  import="net.sf.basedb.core.Project"
59  import="net.sf.basedb.core.query.Orders"
60  import="net.sf.basedb.core.query.Hql"
61  import="net.sf.basedb.util.formatter.Formatter"
62  import="net.sf.basedb.clients.web.Base"
63  import="net.sf.basedb.clients.web.ChangeHistoryUtil"
64  import="net.sf.basedb.clients.web.PermissionUtil"
65  import="net.sf.basedb.clients.web.util.HTML"
66  import="net.sf.basedb.util.Values"
67  import="net.sf.basedb.util.formatter.Formatter"
68  import="net.sf.basedb.clients.web.formatter.FormatterFactory"
69  import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
70  import="net.sf.basedb.clients.web.extensions.JspContext"
71  import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
72  import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
73  import="net.sf.basedb.util.extensions.ExtensionsInvoker"
74  import="java.util.Collections"
75  import="java.util.Date"
76  import="java.util.Map"
77  import="java.util.Set"
78  import="java.util.List"
79  import="java.util.Date"
80%>
81<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
82<%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
83<%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
84<%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
85<%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
86<%!
87  private static final Item itemType = Item.RAWBIOASSAY;
88  private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
89%>
90<%
91final String root = request.getContextPath()+"/";
92final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
93final String ID = sc.getId();
94final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
95final int itemId = cc.getId();
96final String tab = Values.getString(request.getParameter("tab"), "properties");
97final float scale = Base.getScale(sc);
98final DbControl dc = sc.newDbControl();
99try
100{
101  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
102
103  String title = null;
104  RawBioAssay rawBioAssay = RawBioAssay.getById(dc, itemId);
105  RawDataType rawDataType = null;
106  try
107  {
108    rawDataType = rawBioAssay.getRawDataType();
109  }
110  catch (Throwable t)
111  {}
112 
113  Job job = null;
114  boolean readJob = true;
115  try
116  {
117    job = rawBioAssay.getJob();
118  }
119  catch (PermissionDeniedException ex)
120  {
121    readJob = false;
122  }
123  final Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
124  Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
125  final boolean writePermission = rawBioAssay.hasPermission(Permission.WRITE);
126  final boolean deletePermission = rawBioAssay.hasPermission(Permission.DELETE);
127  final boolean sharePermission = rawBioAssay.hasPermission(Permission.SET_PERMISSION);
128  final boolean setOwnerPermission = rawBioAssay.hasPermission(Permission.SET_OWNER);
129  final boolean isRemoved = rawBioAssay.isRemoved();
130  final boolean isUsed = isRemoved && rawBioAssay.isUsed();
131  final boolean deletePermanentlyPermission = deletePermission && !isUsed;
132  final boolean isOwner = rawBioAssay.isOwner();
133  JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, rawBioAssay);
134  ExtensionsInvoker invoker = ToolbarUtil.useExtensions(jspContext);
135  %>
136  <base:page title="<%=title%>">
137  <base:head scripts="table.js,tabcontrol.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css">
138    <ext:scripts context="<%=jspContext%>" />
139    <ext:stylesheets context="<%=jspContext%>" />
140    <script language="JavaScript">
141    function editItem()
142    {
143      Main.viewOrEditItem('<%=ID%>', '<%=itemType.name()%>', <%=itemId%>, true);
144    }
145    function shareItem()
146    {
147      Main.openPopup('index.jsp?ID=<%=ID%>&cmd=ShareItem&item_id=<%=itemId%>', 'ShareRawBioAssay', 600, 400);
148    }
149    function deleteItem()
150    {
151      location.replace('index.jsp?ID=<%=ID%>&cmd=DeleteItem&item_id=<%=itemId%>');
152    }
153    function restoreItem()
154    {
155      location.replace('index.jsp?ID=<%=ID%>&cmd=RestoreItem&item_id=<%=itemId%>');
156    }
157    function deleteItemPermanently()
158    {
159      Main.deleteItemPermanently('<%=ID%>', true, '<%=itemType.name()%>', <%=itemId%>, '&callback=itemDeleted');
160    }
161    function itemDeleted()
162    {
163      Main.listItems('<%=ID%>', '<%=itemType.name()%>');
164    }
165    function showUsingItems()
166    {
167      Main.showUsingItems('<%=ID%>', '<%=itemType.name()%>', <%=itemId%>);
168    }
169    function setOwner()
170    {
171      Main.openPopup('index.jsp?ID=<%=ID%>&cmd=SetOwnerOfItem&item_id=<%=itemId%>', 'SetOwnerOfItem', 450, 300);
172    }
173    function runPlugin(cmd)
174    {
175      Main.openPopup('index.jsp?ID=<%=ID%>&cmd='+cmd+'&item_id=<%=itemId%>', 'RunPlugin'+cmd, 750, 500);
176    }
177    function viewRawData()
178    {
179      location.href = 'rawdata/index.jsp?ID=<%=ID%>&cmd=List&rawbioassay_id=<%=itemId%>';
180    }
181    function editSpotImages()
182    {
183      Main.openPopup('index.jsp?ID=<%=ID%>&cmd=EditSpotImages&item_id=<%=itemId%>', 'EditSpotImages', 600, 400);
184    }
185    function switchTab(tabControlId, tabId)
186    {
187      if (TabControl.isActive(tabControlId, tabId)) return;
188      if ((tabId == 'overview' || tabId == 'history') && tabId != '<%=tab%>')
189      {
190        location.href = 'index.jsp?ID=<%=ID%>&cmd=ViewItem&item_id=<%=itemId%>&tab='+tabId;
191      }
192      else if (tabId == 'rawdata')
193      {
194        viewRawData();
195      }
196      else
197      {
198        TabControl.setActiveTab(tabControlId, tabId);
199      }
200    }
201    </script>
202  </base:head>
203  <base:body>
204    <p>
205    <p:path>
206      <p:pathelement title="Raw bioassays" href="<%="index.jsp?ID="+ID%>" />
207      <p:pathelement title="<%=HTML.encodeTags(rawBioAssay.getName())%>" />
208    </p:path>
209   
210    <t:tabcontrol id="main" active="<%=tab%>" switch="switchTab" remember="false">
211    <t:tab id="properties" title="Properties">
212   
213    <tbl:toolbar
214      >
215      <tbl:button 
216        disabled="<%=writePermission ? false : true%>" 
217        image="edit.gif" 
218        onclick="editItem()" 
219        title="Edit&hellip;" 
220        tooltip="<%=writePermission ? "Edit this raw bioassay" : "You do not have permission to edit this raw bioassay"%>" 
221      />
222      <tbl:button 
223        disabled="<%=deletePermission ? false : true%>" 
224        image="delete.gif" 
225        onclick="deleteItem()" 
226        title="Delete"
227        visible="<%=!rawBioAssay.isRemoved()%>"
228        tooltip="<%=deletePermission ? "Delete this raw bioassay" : "You do not have permission to delete this rawbioassay"%>" 
229      />
230      <tbl:button 
231        disabled="<%=writePermission ? false : true%>" 
232        image="restore.gif" 
233        onclick="restoreItem()" 
234        title="Restore"
235        visible="<%=rawBioAssay.isRemoved()%>"
236        tooltip="<%=writePermission ? "Restore this raw bioassay" : "You do not have permission to restore this rawbioassay"%>" 
237      />
238      <tbl:button 
239        disabled="<%=sharePermission ? false : true%>"
240        image="share.gif"
241        onclick="shareItem()" 
242        title="Share&hellip;" 
243        tooltip="<%=sharePermission ? "Share this raw bioassay to other user, groups and projects" : "You do not have permission to share this raw bioassay"%>"
244      />
245      <tbl:button 
246        disabled="<%=setOwnerPermission ? false : true%>"
247        image="take_ownership.png"
248        onclick="setOwner()" 
249        title="Set owner&hellip;"
250        tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
251      />
252      <tbl:button 
253        image="import.gif" 
254        onclick="runPlugin('ImportItem')" 
255        title="Import&hellip;" 
256        tooltip="Import data" 
257        visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
258      />
259      <tbl:button 
260        image="export.gif" 
261        onclick="runPlugin('ExportItem')" 
262        title="Export&hellip;" 
263        tooltip="Export data" 
264        visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
265      />
266      <tbl:button 
267        image="runplugin.gif" 
268        onclick="runPlugin('RunPlugin')" 
269        title="Run plugin&hellip;" 
270        tooltip="Run a plugin" 
271        visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
272      />
273      <tbl:button
274        onclick="editSpotImages()"
275        image="runplugin.gif" 
276        title="Create spot images&hellip;"
277        visible="<%=writePermission && rawBioAssay.getNumDbSpots() > 0%>"
278      />
279      <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
280        wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
281      <tbl:button
282        image="help.png"
283        onclick="<%="Main.openHelp('" + ID +"', 'rawbioassay.view.properties')"%>"
284        title="Help&hellip;"
285        tooltip="Get help about this page"
286      />
287      </tbl:toolbar>
288    <div class="boxedbottom">
289      <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(rawBioAssay)%></i></div>
290      <%
291      if (rawBioAssay.isRemoved() || rawBioAssay.isShared())
292      {
293        %>
294        <div class="itemstatus">
295          <base:icon 
296            image="<%=deletePermanentlyPermission ? "deleted.gif" : "deleted_disabled.gif"%>"
297            onclick="<%=deletePermanentlyPermission ? "deleteItemPermanently()" : null%>"
298            tooltip="<%=deletePermanentlyPermission ? "Permanently delete this item" : null%>"
299            visible="<%=isRemoved%>"> This item has been flagged for deletion<br></base:icon>
300          <base:icon image="used.gif" 
301            onclick="showUsingItems()"
302            tooltip="Show the items that are using this one"
303            visible="<%=isUsed%>"> This item is used by other items and can't be permanently deleted<br></base:icon>
304          <base:icon image="shared.gif" 
305            visible="<%=rawBioAssay.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
306        </div>
307        <%
308      }
309      %>
310     
311      <table width="100%">
312      <tr >
313      <td>
314     
315      <table class="form" cellspacing="0">
316      <tr>
317        <td class="prompt">Name</td>
318        <td><%=HTML.encodeTags(rawBioAssay.getName())%></td>
319      </tr>
320      <tr>
321        <td class="prompt">Registered</td>
322        <td><%=dateFormatter.format(rawBioAssay.getEntryDate())%></td>
323      </tr>
324      <tr>
325        <td class="prompt">Platform</td>
326        <td><base:propertyvalue item="<%=rawBioAssay%>" property="platform" /></td>
327      </tr>
328      <tr>
329        <td class="prompt">Variant</td>
330        <td><base:propertyvalue item="<%=rawBioAssay%>" property="variant" /></td>
331      </tr>
332      <tr>
333        <td class="prompt">Raw data type</td>
334        <td><base:catch><%=HTML.encodeTags(rawBioAssay.getRawDataType().getName())%></base:catch></td>
335      </tr>
336      <tr>
337        <td class="prompt">Spots</td>
338        <td><%=rawBioAssay.hasData() ? "yes (db: " + rawBioAssay.getNumDbSpots() + 
339            "; file: " + rawBioAssay.getNumFileSpots() + ")" : "no"%></td>
340      </tr>
341      <tr>
342        <td class="prompt">Parent bioassay</td>
343        <td><base:propertyvalue item="<%=rawBioAssay%>" property="parentBioAssay" /></td>
344      </tr>
345      <tr>
346        <td class="prompt">Parent extract</td>
347        <td><base:propertyvalue item="<%=rawBioAssay%>" property="parentExtract" /></td>
348      </tr>
349      <tr>
350        <td class="prompt">Protocol</td>
351        <td><base:propertyvalue item="<%=rawBioAssay%>" property="protocol" /></td>
352      </tr>
353      <tr>
354        <td class="prompt">Software</td>
355        <td><base:propertyvalue item="<%=rawBioAssay%>" property="software" /></td>
356      </tr>
357      <tr>
358        <td class="prompt">Array design</td>
359        <td><base:propertyvalue item="<%=rawBioAssay%>" property="arrayDesign" /></td>
360      </tr>
361      <tr>
362        <td class="prompt">Owner</td>
363        <td><base:propertyvalue item="<%=rawBioAssay%>" property="owner" /></td>
364      </tr>
365      <tr>
366        <td class="prompt">Description</td>
367        <td><%=HTML.niceFormat(rawBioAssay.getDescription())%></td>
368      </tr>
369      </table>
370     
371      </td>
372      <td>
373     
374      <%
375      if (rawBioAssay.getNumDbSpots() > 0)
376      {
377        %>
378        <h4 style="margin-top: 0px;">Raw data import</h4>
379        <table class="form" cellspacing="0">
380        <tr>
381          <td class="prompt">Job</td>
382          <td><%=Base.getLinkedName(ID, job, !readJob, true)%></td>
383        </tr>
384        <tr>
385          <td class="prompt">Date / time</td>
386          <td><%=job == null ? "" : dateTimeFormatter.format(job.getEnded())%></td>
387        </tr>
388        <tr>
389          <td class="prompt">Plugin</td>
390          <td><base:propertyvalue item="<%=rawBioAssay%>" property="job.pluginDefinition" /></td>
391        </tr>
392        <tr>
393          <td class="prompt">Configuration / file format</td>
394          <td><base:propertyvalue item="<%=rawBioAssay%>" property="job.pluginConfiguration" /></td>
395        </tr>
396        </table>
397        <%
398      }
399      %>
400     
401      <h4>Spot images</h4>
402      <%
403      if (!rawBioAssay.hasSpotImages())
404      {
405        %>
406        No spot images has been created for this raw bioassay.
407        <%
408      }
409      else
410      {
411        SpotImages spi = rawBioAssay.getSpotImages();
412        %>
413        <table class="form" cellspacing="0">
414        <tr>
415          <td class="prompt">X scale</td>
416          <td><%=spi.getXScale()%></td>
417          <td>&nbsp;&nbsp;</td>
418          <td class="prompt">Spot size</td>
419          <td><%=spi.getSpotsize()%></td>
420        </tr>
421        <tr>
422          <td class="prompt">Y scale</td>
423          <td><%=spi.getYScale()%></td>
424          <td>&nbsp;&nbsp;</td>
425          <td class="prompt">Gamma correction</td>
426          <td><%=spi.getGamma()%></td>
427        </tr>
428        <tr>
429          <td class="prompt">X offset</td>
430          <td><%=spi.getXOffset()%></td>
431          <td>&nbsp;&nbsp;</td>
432          <td class="prompt">Quality</td>
433          <td><%=spi.getQuality()%></td>
434        </tr>
435        <tr>
436          <td class="prompt">Y offset</td>
437          <td><%=spi.getYOffset()%></td>
438        </tr>
439        <tr>
440          <td class="prompt">Red image file</td>
441          <td><base:propertyvalue item="<%=spi%>" property="redImageFile" /></td>
442        </tr>
443        <tr>
444          <td class="prompt">Green image file</td>
445          <td><base:propertyvalue item="<%=spi%>" property="greenImageFile" /></td>
446        </tr>
447        <tr>
448          <td class="prompt">Blue image file</td>
449          <td><base:propertyvalue item="<%=spi%>" property="blueImageFile" /></td>
450        </tr>
451        <tr>
452          <td class="prompt">Spot images file</td>
453          <td><base:propertyvalue item="<%=spi%>" property="spotImagesFile" /></td>
454        </tr>
455        </table>
456        <%
457      }
458      %>
459
460      </td>
461      </tr>
462      </table>
463     
464      <jsp:include page="../../common/datafiles/list_files.jsp">
465        <jsp:param name="item_type" value="<%=itemType.name()%>" />
466        <jsp:param name="item_id" value="<%=itemId%>" />
467        <jsp:param name="ID" value="<%=ID%>" />
468      </jsp:include>
469     
470      <%
471      Set<String> names = rawBioAssay.getHeaderNames();
472      if (names == null || names.size() == 0)
473      {
474        %>
475        <h4>Raw data headers</h4>
476        None.
477        <%
478      }
479      else
480      {
481        %>
482        <base:section 
483          id="headers"
484          title="<%="Raw data headers (" + (names == null ? 0 : names.size()) + ")"%>"
485          context="<%=cc%>"
486          >
487          <table class="form" cellspacing="0">
488          <%
489          boolean needsTr = true;
490          if (names != null)
491          {
492            for (String name : names)
493            {
494              %>
495              <%=needsTr ? "<tr>" : "" %>
496                <td class="prompt"><%=HTML.encodeTags(name)%></td>
497                <td><%=HTML.encodeTags(rawBioAssay.getHeader(name))%></td>
498                <td>&nbsp;&nbsp;</td>
499              <%=needsTr ? "" : "</tr>"%>
500              <%
501              needsTr = !needsTr;
502            }
503            %>
504            <%=needsTr ? "" : "</tr>"%>
505            <%
506          }
507          %>
508          </table>
509        </base:section>
510        <%
511      }
512      %>
513
514      <%
515      ItemQuery<Experiment> experimentQuery = rawBioAssay.getExperiments();
516      experimentQuery.include(Include.ALL);
517      experimentQuery.order(Orders.asc(Hql.property("name")));
518      ItemResultList<Experiment> experiments = experimentQuery.list(dc);
519      if (experiments.size() == 0)
520      {
521        %>
522        <h4>Experiments</h4>
523        This raw bioassay isn't used in any experiments
524        (or, you don't have permission to view them).
525        <%
526      }
527      else
528      {
529        %>
530        <base:section 
531          id="experiments"
532          title="<%="Experiments (" + experiments.size() + ")"%>"
533          context="<%=cc%>"
534          >
535          <tbl:table
536            id="experiments"
537           
538            columns="all"
539            >
540          <tbl:columndef 
541            id="name"
542            title="Name"
543          />
544          <tbl:columndef 
545            id="description"
546            title="Description"
547          />
548          <tbl:data>
549            <tbl:columns>
550            </tbl:columns>
551            <tbl:rows>
552            <%
553            for (Experiment item : experiments)
554            {
555              %>
556              <tbl:row>
557                <tbl:cell column="name"><base:icon 
558                  image="deleted.gif" 
559                  tooltip="This item has been scheduled for deletion" 
560                  visible="<%=item.isRemoved()%>"
561                /><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
562                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
563              </tbl:row>
564              <%
565            }
566            %>
567            </tbl:rows>
568          </tbl:data>
569          </tbl:table>
570        </base:section>
571        <%
572      }
573      %>
574      <jsp:include page="../../common/anytoany/list_anytoany.jsp">
575        <jsp:param name="ID" value="<%=ID%>" />
576        <jsp:param name="item_type" value="<%=itemType.name()%>" />
577        <jsp:param name="item_id" value="<%=itemId%>" />
578        <jsp:param name="title" value="Other items related to this sample" />
579      </jsp:include>
580      <jsp:include page="../../common/share/list_share.jsp">
581        <jsp:param name="ID" value="<%=ID%>" />
582        <jsp:param name="item_type" value="<%=itemType.name()%>" />
583        <jsp:param name="item_id" value="<%=itemId%>" />
584        <jsp:param name="title" value="Shared to" />
585      </jsp:include>
586      </div>
587      </t:tab>
588     
589      <t:tab id="annotations" title="Annotations &amp; parameters" 
590        tooltip="View annotation values and protocol parameters" clazz="white">
591        <jsp:include page="../../common/annotations/list_annotations.jsp">
592          <jsp:param name="item_type" value="<%=itemType.name()%>" />
593          <jsp:param name="item_id" value="<%=itemId%>" />
594          <jsp:param name="ID" value="<%=ID%>" />
595        </jsp:include>
596      </t:tab>
597
598      <t:tab id="rawdata" title="Raw data" visible="<%=rawBioAssay.getNumDbSpots() > 0%>" />
599      <t:tab id="overview" title="Overview" 
600        tooltip="Display a tree overview of related items">
601        <%
602        if ("overview".equals(tab))
603        {
604          %>
605          <jsp:include page="../../common/overview/overview.jsp">
606            <jsp:param name="item_type" value="<%=itemType.name()%>" />
607            <jsp:param name="item_id" value="<%=itemId%>" />
608            <jsp:param name="ID" value="<%=ID%>" />
609          </jsp:include>
610          <%
611        }
612        %>
613      </t:tab>
614      <t:tab id="history" title="Change history" 
615        tooltip="Displays a log of all modifications made to this item"
616        visible="<%=ChangeHistoryUtil.showChangeHistoryTab(sc)%>">
617        <%
618        if ("history".equals(tab))
619        {
620          %>
621          <jsp:include page="../../common/history/frameset.jsp">
622            <jsp:param name="source_type" value="<%=itemType.name()%>" />
623            <jsp:param name="source_id" value="<%=itemId%>" />
624            <jsp:param name="ID" value="<%=ID%>" />
625          </jsp:include>
626          <%
627        }
628        %>
629      </t:tab>
630      </t:tabcontrol>
631
632  </base:body>
633  </base:page>
634  <%
635}
636finally
637{
638  if (dc != null) dc.close();
639}
640
641%>
Note: See TracBrowser for help on using the repository browser.