Browse Source

Fix subdirectory links in pages servlet (issue-411)

tags/v1.5.1
James Moger 10 years ago
parent
commit
ddaed96036
2 changed files with 12 additions and 3 deletions
  1. 3
    1
      releases.moxie
  2. 9
    2
      src/main/java/com/gitblit/servlet/PagesServlet.java

+ 3
- 1
releases.moxie View File

html: ~ html: ~
text: ~ text: ~
security: ~ security: ~
fixes: ~
fixes:
- Fix subdirectory links in pages servlet (issue-411)
changes: changes:
- improve French translation (pr-176) - improve French translation (pr-176)
- simplify current plugin release detection and ignore the currentRelease registry field - simplify current plugin release detection and ignore the currentRelease registry field
- James Moger - James Moger
- Julien Kirch - Julien Kirch
- Ralph Hoffman - Ralph Hoffman
- Olivier Rouits
} }


# #

+ 9
- 2
src/main/java/com/gitblit/servlet/PagesServlet.java View File

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.eclipse.jgit.lib.FileMode;
import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevTree; import org.eclipse.jgit.revwalk.RevTree;
response.getWriter().append("<thead><tr><th>path</th><th>mode</th><th>size</th></tr>"); response.getWriter().append("<thead><tr><th>path</th><th>mode</th><th>size</th></tr>");
response.getWriter().append("</thead>"); response.getWriter().append("</thead>");
response.getWriter().append("<tbody>"); response.getWriter().append("<tbody>");
String pattern = "<tr><td><a href=\"{0}\">{0}</a></td><td>{1}</td><td>{2}</td></tr>";
String pattern = "<tr><td><a href=\"{0}\">{1}</a></td><td>{2}</td><td>{3}</td></tr>";
final ByteFormat byteFormat = new ByteFormat(); final ByteFormat byteFormat = new ByteFormat();
List<PathModel> entries = JGitUtils.getFilesInPath(r, resource, commit); List<PathModel> entries = JGitUtils.getFilesInPath(r, resource, commit);
if (!entries.isEmpty()) {
if (entries.get(0).path.indexOf('/') > -1) {
// we are in a subdirectory, add parent directory link
entries.add(0, new PathModel("..", resource + "/..", 0, FileMode.TREE.getBits(), null, null));
}
}
for (PathModel entry : entries) { for (PathModel entry : entries) {
response.getWriter().append(MessageFormat.format(pattern, entry.name, JGitUtils.getPermissionsFromMode(entry.mode), byteFormat.format(entry.size)));
response.getWriter().append(MessageFormat.format(pattern, entry.path, entry.name, JGitUtils.getPermissionsFromMode(entry.mode), byteFormat.format(entry.size)));
} }
response.getWriter().append("</tbody>"); response.getWriter().append("</tbody>");
response.getWriter().append("</table>"); response.getWriter().append("</table>");

Loading…
Cancel
Save