history.jsp revision 1281
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox UserCDDL HEADER START
1c57c3f79db0bf0358bbe6d7b5ad650c0c852f4bTinderbox UserThe contents of this file are subject to the terms of the
8c225507766814e78e168b17a24b8a47ca7f8c37Tinderbox UserCommon Development and Distribution License (the "License").
1c57c3f79db0bf0358bbe6d7b5ad650c0c852f4bTinderbox UserYou may not use this file except in compliance with the License.
1c57c3f79db0bf0358bbe6d7b5ad650c0c852f4bTinderbox UserSee LICENSE.txt included in this distribution for the specific
1c57c3f79db0bf0358bbe6d7b5ad650c0c852f4bTinderbox Userlanguage governing permissions and limitations under the License.
1c57c3f79db0bf0358bbe6d7b5ad650c0c852f4bTinderbox UserWhen distributing Covered Code, include this CDDL HEADER in each
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userfile and include the License file at LICENSE.txt.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserIf applicable, add the following below this CDDL HEADER, with the
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userfields enclosed by brackets "[]" replaced with your own identifying
f9ce6280cec79deb16ff6d9807aa493ff23e10d9Tinderbox Userinformation: Portions Copyright [yyyy] [name of copyright owner]
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserCDDL HEADER END
14a656f94b1fd0ababd84a772228dfa52276ba15Evan HuntCopyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserPortions Copyright 2011 Jens Elkner.
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User--%><%@page import="
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userorg.opensolaris.opengrok.history.HistoryException,
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntorg.opensolaris.opengrok.configuration.RuntimeEnvironment"
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntinclude file="mast.jsp"
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt%><%/* ---------------------- history.jsp start --------------------- */
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User PageConfig cfg = PageConfig.get(request);
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User String path = cfg.getPath();
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User String context = request.getContextPath();
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User RuntimeEnvironment env = cfg.getEnv();
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User String uriEncodedName = cfg.getUriEncodedPath();
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User boolean striked = false;
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User String userPage = env.getUserPage();
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User String userPageSuffix = env.getUserPageSuffix();
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User if (userPageSuffix == null) {
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User // Set to empty string so we can append it to the URL
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User // unconditionally later.
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User userPageSuffix = "";
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User String bugPage = env.getBugPage();
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User String bugRegex = env.getBugPattern();
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User if (bugRegex == null || bugRegex.equals("")) {
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User bugRegex = "\\b([12456789][0-9]{6})\\b";
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User Pattern bugPattern = Pattern.compile(bugRegex);
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User String reviewPage = env.getReviewPage();
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User String reviewRegex = env.getReviewPattern();
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User if(reviewRegex == null || reviewRegex.equals("")) {
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User reviewRegex = "\\b(\\d{4}/\\d{3})\\b";
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User Pattern reviewPattern = Pattern.compile(reviewRegex);
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User Format df = new SimpleDateFormat("dd-MMM-yyyy");
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User History hist=null;
a1ff871f78b7d907d6fc3a382beea2a640fe8423Tinderbox User hist = HistoryGuru.getInstance().getHistory(f);
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User } catch (Exception e) {
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User // should not happen
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User %><h3>Problem</h3><p class="error"><%= e.getMessage() %></p><%
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User if (hist != null) {
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User%><script type="text/javascript">/* <![CDATA[ */
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox Userdocument.domReady.push(function() {domReadyHistory();});
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User/* ]]> */</script>
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User<form action="<%= context + Prefix.DIFF_P + uriEncodedName %>">
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User<table class="src" id="revisions">
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User <caption>History log of <a href="<%= context + Prefix.XREF_P
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User + uriEncodedName %>"><%= path %></a></caption>
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User <th>Revision</th><%
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User <th><input type="submit" value=" Compare "/></th><%
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User <th>Date</th>
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User <th>Author</th>
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User <th>Comments <%
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User %><a href="#" onclick="javascript: toggle_filelist(); return false;">
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User <span class="filelist-hidden">
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User (<<< Hide modified files)</span>
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User <span class="filelist">
a1ff871f78b7d907d6fc3a382beea2a640fe8423Tinderbox User (Show modified files >>>)</span></a><%
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User for (HistoryEntry entry : hist.getHistoryEntries()) {
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if (rev == null || rev.length() == 0) {
550d3276d0490c4918f089ccb1528a3eb0951b0aTinderbox User <td><%= rev %></td><%
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User String rp = uriEncodedName;
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User <td><a name="<%= rev %>" href="<%=
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User context + Prefix.XREF_P + rp + "?r=" + Util.URIEncode(rev) %>"><%=
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User rev %></a></td>
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User <input type="radio"<%
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User if (count == 0 ) {
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User %> disabled="disabled"<%
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User } else if (count == 1) {
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User %> checked="checked"<%
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User %> name="r1" value="<%= rp %>@<%= rev%>"/>
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User <input type="radio"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User if (count == 0) {
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User %> checked="checked"<%
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt %> value="<%= rp %>@<%= rev %>"/></td><%
d253648fe3331622cebea02d60aaecca3082d78dTinderbox User striked = true;
d253648fe3331622cebea02d60aaecca3082d78dTinderbox User <td><del><%= rev %></del></td>
d253648fe3331622cebea02d60aaecca3082d78dTinderbox User if (date != null) {
d253648fe3331622cebea02d60aaecca3082d78dTinderbox User %><%= df.format(date) %><%
d253648fe3331622cebea02d60aaecca3082d78dTinderbox User String author = entry.getAuthor();
d253648fe3331622cebea02d60aaecca3082d78dTinderbox User if (author == null) {
d253648fe3331622cebea02d60aaecca3082d78dTinderbox User %>(no author)<%
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User } else if (userPage != null && userPage.length() > 0) {
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User %><a href="<%= userPage + Util.htmlize(author) + userPageSuffix
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User %>"><%= Util.htmlize(author)%></a><%
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User %><%= author %><%
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User String cout = Util.htmlize(entry.getMessage());
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User if (bugPage != null && bugPage.length() > 0) {
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User cout = bugPattern.matcher(cout).replaceAll("<a href=\""
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User + bugPage + "$1\">$1</a>");
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User if (reviewPage != null && reviewPage.length() > 0) {
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User cout = reviewPattern.matcher(cout).replaceAll("<a href=\""
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User + reviewPage + "$1\">$1</a>");
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User %><%= cout %><%
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User Set<String> files = entry.getFiles();
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User if (files != null) {
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User %><span class="filelist-hidden"><br/><%
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User for (String ifile : files) {
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User String jfile = ifile;
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User if ("/".equals(path)) {
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User } else if (ifile.startsWith(path)
f14ce68ee54a5a4587fbde4ffacb117946df2d73Tinderbox User if (rev == "") {
f14ce68ee54a5a4587fbde4ffacb117946df2d73Tinderbox User<a class="h" href="<%= context + Prefix.XREF_P + ifile %>"><%= jfile %></a><br/><%
f14ce68ee54a5a4587fbde4ffacb117946df2d73Tinderbox User<a class="h" href="<%= context + Prefix.XREF_P + ifile %>?r=<%= rev %>"><%= jfile %></a><br/><%
0d6a6642b2be93cffa651c54a9b8810dd2d31392Tinderbox User if (striked) {
abe69df9a7de5cda07a2b8e19e8b7c981bcd7a9dTinderbox User%><p><b>Note:</b> No associated file changes are available for
abe69df9a7de5cda07a2b8e19e8b7c981bcd7a9dTinderbox Userrevisions with strike-through numbers (eg. <del>1.45</del>)</p><%
abe69df9a7de5cda07a2b8e19e8b7c981bcd7a9dTinderbox User<p class="rssbadge"><a href="<%=context + Prefix.RSS_P + uriEncodedName
abe69df9a7de5cda07a2b8e19e8b7c981bcd7a9dTinderbox User%>" title="RSS XML Feed of latest changes"><span id="rssi"></span></a></p><%
abe69df9a7de5cda07a2b8e19e8b7c981bcd7a9dTinderbox User/* ---------------------- history.jsp end --------------------- */