about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLars Hjemli <hjemli@gmail.com>2008-08-06 11:07:13 +0200
committerLars Hjemli <hjemli@gmail.com>2008-08-06 11:21:30 +0200
commit65b7b876aaaf50fc15060533359d6561f4f1819a (patch)
treec5cfe73456cf31afb13bcb12c5331fa711f89d71
parentImplement plain view (diff)
downloadcgit-pink-65b7b876aaaf50fc15060533359d6561f4f1819a.tar.gz
cgit-pink-65b7b876aaaf50fc15060533359d6561f4f1819a.zip
ui-tree: link to plain view instead of blob view
The urls for plain view makes it possible to download blobs without knowing
their SHA1, but the function needs to be promoted and the link from tree
view seems like a perfect fit.

PS: Although hidden, the blob view still is nice for direct blob access so
there's no point in removing it.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r--ui-shared.c6
-rw-r--r--ui-shared.h2
-rw-r--r--ui-tree.c8
3 files changed, 12 insertions, 4 deletions
diff --git a/ui-shared.c b/ui-shared.c
index 4408969..a2e0dd2 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -243,6 +243,12 @@ void cgit_tree_link(char *name, char *title, char *class, char *head,
 	reporevlink("tree", name, title, class, head, rev, path);
 }
 
+void cgit_plain_link(char *name, char *title, char *class, char *head,
+		     char *rev, char *path)
+{
+	reporevlink("plain", name, title, class, head, rev, path);
+}
+
 void cgit_log_link(char *name, char *title, char *class, char *head,
 		   char *rev, char *path, int ofs, char *grep, char *pattern)
 {
diff --git a/ui-shared.h b/ui-shared.h
index 07da4b4..c5ce056 100644
--- a/ui-shared.h
+++ b/ui-shared.h
@@ -11,6 +11,8 @@ extern void cgit_index_link(char *name, char *title, char *class,
 			    char *pattern, int ofs);
 extern void cgit_tree_link(char *name, char *title, char *class, char *head,
 			   char *rev, char *path);
+extern void cgit_plain_link(char *name, char *title, char *class, char *head,
+			    char *rev, char *path);
 extern void cgit_log_link(char *name, char *title, char *class, char *head,
 			  char *rev, char *path, int ofs, char *grep,
 			  char *pattern);
diff --git a/ui-tree.c b/ui-tree.c
index 9a837e2..79332fc 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -35,10 +35,10 @@ static void print_object(const unsigned char *sha1, char *path)
 		return;
 	}
 
-	html(" blob: <a href='");
-	html_attr(cgit_pageurl(ctx.qry.repo, "blob",
-			       fmt("id=%s&path=%s", sha1_to_hex(sha1), path)));
-	htmlf("'>%s</a>",sha1_to_hex(sha1));
+	html(" (");
+	cgit_plain_link("plain", NULL, NULL, ctx.qry.head,
+		        curr_rev, path);
+	htmlf(")<br/>blob: %s", sha1_to_hex(sha1));
 
 	html("<table summary='blob content' class='blob'>\n");
 	idx = 0;