mast.jsp revision 2e3cf399f97f30eab07248830e49d29fcb3e7f27
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering<%--
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering$Id$
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart PoetteringCDDL HEADER START
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart PoetteringThe contents of this file are subject to the terms of the
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart PoetteringCommon Development and Distribution License (the "License").
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart PoetteringYou may not use this file except in compliance with the License.
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart PoetteringSee LICENSE.txt included in this distribution for the specific
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poetteringlanguage governing permissions and limitations under the License.
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart PoetteringWhen distributing Covered Code, include this CDDL HEADER in each
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poetteringfile and include the License file at LICENSE.txt.
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart PoetteringIf applicable, add the following below this CDDL HEADER, with the
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poetteringfields enclosed by brackets "[]" replaced with your own identifying
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poetteringinformation: Portions Copyright [yyyy] [name of copyright owner]
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart PoetteringCDDL HEADER END
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart PoetteringCopyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
b5efdb8af40ea759a1ea584c1bc44ecc81dd00ceLennart PoetteringPortions Copyright 2011 Jens Elkner.
07630cea1f3a845c09309f197ac7c4f11edd3b62Lennart Poettering
b5efdb8af40ea759a1ea584c1bc44ecc81dd00ceLennart Poettering--%><%--
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering
063bc36469fd89a6341526fd35530c3406a3ed0aHristo VenevAfter include you are here: /body/div#page/div#content/
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering
b07eb677a0cd73a5bff1b43349676ad611578d11Zbigniew Jędrzejewski-Szmek--%><%@ page session="false" errorPage="error.jsp" import="
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poetteringjava.io.File,
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poetteringjava.io.IOException,
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev
14c35ce7c1b9649bef14efeb3121660e541dd97aThomas Hindoe Paaboel Andersenorg.opensolaris.opengrok.configuration.Project,
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poetteringorg.opensolaris.opengrok.history.HistoryGuru,
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poetteringorg.opensolaris.opengrok.web.EftarFileReader,
b07eb677a0cd73a5bff1b43349676ad611578d11Zbigniew Jędrzejewski-Szmekorg.opensolaris.opengrok.web.PageConfig,
b07eb677a0cd73a5bff1b43349676ad611578d11Zbigniew Jędrzejewski-Szmekorg.opensolaris.opengrok.web.Prefix,
b07eb677a0cd73a5bff1b43349676ad611578d11Zbigniew Jędrzejewski-Szmekorg.opensolaris.opengrok.web.Util"%><%
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering/* ---------------------- mast.jsp start --------------------- */
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering{
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering cfg = PageConfig.get(request);
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering String redir = cfg.canProcess();
14c35ce7c1b9649bef14efeb3121660e541dd97aThomas Hindoe Paaboel Andersen if (redir == null || redir.length() > 0) {
14c35ce7c1b9649bef14efeb3121660e541dd97aThomas Hindoe Paaboel Andersen if (redir == null) {
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering response.sendError(HttpServletResponse.SC_NOT_FOUND);
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering } else {
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering response.sendRedirect(redir);
b1c517669986f23960b60ef637f141be9f7033f5Hristo Venev }
b1c517669986f23960b60ef637f141be9f7033f5Hristo Venev return;
b1c517669986f23960b60ef637f141be9f7033f5Hristo Venev }
b1c517669986f23960b60ef637f141be9f7033f5Hristo Venev // jel: hmmm - questionable for dynamic content
b1c517669986f23960b60ef637f141be9f7033f5Hristo Venev long flast = cfg.getLastModified();
b1c517669986f23960b60ef637f141be9f7033f5Hristo Venev if (request.getDateHeader("If-Modified-Since") >= flast) {
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev return;
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev }
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev response.setDateHeader("Last-Modified", flast);
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev // Use UTF-8 if no encoding is specified in the request
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev if (request.getCharacterEncoding() == null) {
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev request.setCharacterEncoding("UTF-8");
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev }
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev // set the default page title
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev String path = cfg.getPath();
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev cfg.setTitle("Cross Reference: " + path);
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev String context = request.getContextPath();
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev cfg.getEnv().setUrlPrefix(context + Prefix.SEARCH_R + "?");
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev String uriEncodedPath = cfg.getUriEncodedPath();
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev String rev = cfg.getRequestedRevision();
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev%><%@
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venevinclude file="httpheader.jspf"
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev%><body>
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering<script type="text/javascript">/* <![CDATA[ */
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering document.hash = '<%= Util.escapeXml(cfg.getDocumentHash())
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering %>';document.rev = '<%= Util.escapeXml(rev)
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev %>';document.link = '<%= context + Prefix.XREF_P + uriEncodedPath
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev %>';document.annotate = <%= cfg.annotate() %>;
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering document.domReady.push(function() {domReadyMast();});
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering document.pageReady.push(function() { pageReadyMast();});
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering/* ]]> */</script>
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering<div id="page">
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering <div id="whole_header">
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering <form action="<%= context + Prefix.SEARCH_P %>">
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev<div id="header"><%@
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poetteringinclude file="pageheader.jspf"
92134489ab35f6d173cb6fb6f676c1b5d88f5556Lennart Poettering
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev%>
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev <div id="pagetitle"><span id="filename"
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev >Cross Reference: <%= cfg.getCrossFilename() %></span><%
063bc36469fd89a6341526fd35530c3406a3ed0aHristo Venev String dtag = cfg.getDefineTagsIndex();
b1c517669986f23960b60ef637f141be9f7033f5Hristo Venev if (dtag.length() > 0) {
b1c517669986f23960b60ef637f141be9f7033f5Hristo Venev %><br/><%= dtag %><%
decad9103eab4c5f24dbc55dc7d2cdabce87a302Lennart Poettering }
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering %></div>
cfbc22abd0525570a6e58968d518ea9a7d0403baLennart Poettering</div>
<div id="Masthead">
<tt><a href="<%= context + Prefix.XREF_P %>/">xref</a>: <%= Util
.breadcrumbPath(context + Prefix.XREF_P, path,'/',"",true,cfg.isDir())
%></tt>
</div>
<div id="bar">
<ul>
<li><a href="<%= context %>/"><span id="home"></span>Home</a></li><%
if (!cfg.hasHistory()) {
%><li><span id="history"></span><span class="c">History</span></li><%
} else {
%><li><a href="<%= context + Prefix.HIST_L + uriEncodedPath
%>"><span id="history"></span>History</a></li><%
}
if (!cfg.hasAnnotations() /* || cfg.getPrefix() == Prefix.HIST_S */ ) {
%><li><span class="c"><span class="annotate"></span>Annotate</span></li><%
} else if (cfg.annotate()) {
%><li><span id="toggle-annotate-by-javascript" style="display: none"><a
href="#" onclick="javascript:toggle_annotations(); return false;"
title="Show or hide line annotation(commit revisions,authors)."
><span class="annotate"></span>Annotate</a></span><span
id="toggle-annotate"><a href="<%=
context + Prefix.XREF_P + uriEncodedPath
+ (rev.length() == 0 ? "" : "?") + Util.escapeXml(rev)
%>"><span class="annotate"></span>Annotate</a></span></li><%
} else {
%><li><a href="#" onclick="javascript:get_annotations(); return false;"
><span class="annotate"></span>Annotate</a></li><%
}
if (!cfg.isDir()) {
if (cfg.getPrefix() == Prefix.XREF_P) {
%><li><a href="#" onclick="javascript:lntoggle();return false;"
title="<%= "Show or hide line numbers (might be slower if "
+ "file has more than 10 000 lines)."
%>"><span id="line"></span>Line#</a></li><li><a
href="#" onclick="javascript:lsttoggle();return false;"
title="Show or hide symbol list."><%--
--%><span id="defbox"></span>Navigate</a></li><%
}
%>
<li><a href="<%= context + Prefix.RAW_P + uriEncodedPath
+ (rev.length() == 0 ? "" : "?") + Util.escapeXml(rev)
%>"><span id="raw"></span>Raw</a></li>
<li><a href="<%= context + Prefix.DOWNLOAD_P + uriEncodedPath
+ (rev.length() == 0 ? "" : "?") + Util.escapeXml(rev)
%>"><span id="download"></span>Download</a></li>
<%
}
%><li><input type="text" id="search" name="q" class="q" />
<input type="submit" value="Search" class="submit" /></li><%
Project proj = cfg.getProject();
String[] vals = cfg.getSearchOnlyIn();
%><li><input type="checkbox" name="path" value='"<%= vals[0]
%>"' <%= vals[2] %>/> only in <b><%= vals[1] %></b></li>
</ul><%
if (proj != null) {
%>
<input type="hidden" name="project" value="<%=proj.getDescription()%>" /><%
}
%>
<input type="hidden" id="contextpath" value="<%=request.getContextPath()%>" />
</div>
</form>
</div>
<div id="content">
<%
}
/* ---------------------- mast.jsp end --------------------- */
%>