Add trivial menu entries to all menus
authorChristian Thaeter <ct@pipapo.org>
Thu, 24 Jan 2008 22:52:06 +0000 (23:52 +0100)
committerChristian Thaeter <ct@pipapo.org>
Thu, 24 Jan 2008 22:52:06 +0000 (23:52 +0100)
planned things are commented out as TODO

src/actions.c
src/object_blob.c
src/object_commit.c
src/object_tag.c
src/object_tree.c

index a2729e2..cf12842 100644 (file)
@@ -173,8 +173,8 @@ static Html
 webgit_main_action (struct webgit_query* query)
 {
   return html(
-              html(html_tag("div", html_attr("id", "sub-menu")), webgit_main_menu_action (query)), html_nl (),
-              html(html_tag("div", html_attr("id", "content")), webgit_main_content_action (query)), html_nl ()
+              html(html_tag("div", html_attr ("id", "sub-menu")), webgit_main_menu_action (query)), html_nl (),
+              html(html_tag("div", html_attr ("id", "content")), webgit_main_content_action (query)), html_nl ()
               );
 }
 
@@ -186,23 +186,7 @@ static Html
 webgit_summary_menu_action (struct webgit_repo_info* repo)
 {
   return html (html_tag ("div"),
-               repo->logo ?
-               html (
-                     html_tag ("a",
-                               html_attr ("href", repo->logolink ? repo->logolink : "/")),
-                     html (
-                           html_tag ("img",
-                                     html_attr ("src", repo->logo),
-                                     html_attr ("alt", html (repo->name,"-logo"))
-                                     )
-                           )
-                     )
-               : html (
-                       html_tag ("img",
-                                 html_attr ("src", webgit_webskinpath (repo->query, "icons/webgit_logo.png")),
-                                 html_attr ("alt", "Webgit-Logo")
-                                 )
-                       ), "<br />",
+               webgit_repo_logo (repo), "<br />",
                repo->readme ? html_include (repo->readme) : html (), "<br />",
                html (
                      html_tag ("a",
@@ -212,13 +196,8 @@ webgit_summary_menu_action (struct webgit_repo_info* repo)
                                           )
                                ),
                      "Configure"
-                     ),"<br />",
-               html (
-                     html_tag ("a",
-                               html_attr ("href", repo->query->request->script_name)
-                               ),
-                     "Main Page"
-                     ),"<br />"
+                     ), "<br />",
+               webgit_main_link (repo->query, html ("Main")), "<br />"
                );
 }
 
@@ -322,8 +301,8 @@ webgit_summary_action (struct webgit_query* query)
   webgit_repoinfo_find_last (repo);
 
   return html(
-              html(html_tag("div", html_attr("id", "sub-menu")), webgit_summary_menu_action (repo)), html_nl (),
-              html(html_tag("div", html_attr("id", "content")), webgit_summary_content_action (repo)), html_nl ()
+              html(html_tag("div", html_attr ("id", "sub-menu")), webgit_summary_menu_action (repo)), html_nl (),
+              html(html_tag("div", html_attr ("id", "content")), webgit_summary_content_action (repo)), html_nl ()
               );
 }
 
@@ -337,8 +316,8 @@ webgit_log_action (struct webgit_query* query)
   webgit_repo_enter (query);
 
   return html(
-              html(html_tag("div"), webgit_log_menu_action (query)), html_nl (),
-              html(html_tag("div", html_attr("id", "content")), webgit_log_content_action (query)), html_nl ()
+              html(html_tag("div", html_attr ("id", "sub-menu")), webgit_log_menu_action (query)), html_nl (),
+              html(html_tag("div", html_attr ("id", "content")), webgit_log_content_action (query)), html_nl ()
               );
 }
 
@@ -438,12 +417,12 @@ webgit_branch_menu_action (struct webgit_repo_info* repo)
 {
   (void) repo;
   return html (html_tag ("div"),
-               "Project or webgit logo<br />",
-               "switch-branch-dropdown <br />",
-               "push/fetch/merge <br />",
-               "branch administation <br />",
-               "link to project summary <br />",
-               "link to main page <br />"
+               webgit_repo_logo (repo), "<br />",
+               // TODO: "switch-branch-dropdown <br />",
+               // TODO: "push/fetch/merge <br />",
+               // TODO: "branch administation <br />",
+               webgit_summary_link (repo->query, repo, html("Summary")), "<br />",
+               webgit_main_link (repo->query, html ("Main"))
                );
 }
 
@@ -455,21 +434,40 @@ webgit_branch_action (struct webgit_query* query)
   webgit_repoinfo_find_last (repo);
 
   return html(
-              html(html_tag("div", html_attr("id", "sub-menu")), webgit_branch_menu_action (repo)), html_nl (),
-              html(html_tag("div", html_attr("id", "content")), webgit_branch_table (repo, query->head, query->count), html_nl ())
+              html(html_tag("div", html_attr ("id", "sub-menu")), webgit_branch_menu_action (repo)), html_nl (),
+              html(html_tag("div", html_attr ("id", "content")),
+                   webgit_branch_table (repo, query->head, query->count), html_nl ())
               );
 }
 
 
-
 /*
   show tag
 */
+static Html
+webgit_tag_menu_action (struct webgit_repo_info* repo)
+{
+  (void) repo;
+  return html (html_tag ("div"),
+               webgit_repo_logo (repo), "<br />",
+               // TODO: "tag administation <br />",
+               webgit_summary_link (repo->query, repo, html("Summary")), "<br />",
+               webgit_main_link (repo->query, html ("Main"))
+               );
+}
+
+
 static Html
 webgit_tag_action (struct webgit_query* query)
 {
-  (void) query;
-  return html("tag");
+  struct webgit_repo_info* repo = webgit_repo_enter (query);
+  webgit_repoinfo_find_last (repo);
+
+  return html(
+              html(html_tag("div", html_attr ("id", "sub-menu")), webgit_tag_menu_action (repo)), html_nl (),
+              html(html_tag("div", html_attr ("id", "content")),
+                   webgit_tag_table (repo, query->head, query->count), html_nl ())
+              );
 }
 
 
@@ -481,11 +479,11 @@ webgit_config_menu_action (struct webgit_repo_info* repo)
 {
   (void) repo;
   return html (html_tag ("div"),
-               "Project or webgit logo<br />",
-               "manage remotes? <br />",
-               "manage subprojects? <br />",
-               "link to project summary <br />",
-               "link to main page <br />"
+               webgit_repo_logo (repo), "<br />",
+               // TODO: "manage remotes? <br />",
+               // TODO: "manage subprojects? <br />",
+               webgit_summary_link (repo->query, repo, html("Summary")), "<br />",
+               webgit_main_link (repo->query, html ("Main"))
                );
 }
 
@@ -549,7 +547,7 @@ webgit_config_action (struct webgit_query* query)
     }
 
   return html(
-              html (html_tag ("div"), webgit_config_menu_action (repo)), html_nl (),
+              html (html_tag ("div", html_attr("id", "sub-menu")), webgit_config_menu_action (repo)), html_nl (),
               html (html_tag ("div", html_attr("id", "content")), webgit_config_content_action (repo)), html_nl ()
               );
 }
index 4da019f..d0da4d9 100644 (file)
 static Html
 webgit_object_blob_menu_action (struct webgit_repo_info* repo, unsigned char* sha1, void* buf, unsigned long size)
 {
-  (void) repo;
   (void) sha1;
   (void) buf;
   (void) size;
   return html (html_tag ("div"),
-               "Project or webgit logo<br />",
-               "diff against.. <br />",
-               "log <br />",
-               "history <br />",
-               "blame <br />",
-               "Back to tree <br />",
-               "link to project summary <br />",
-               "link to main page <br />"
+               webgit_repo_logo (repo), "<br />",
+               // TODO: "diff against.. <br />",
+               // TODO: "log <br />",
+               // TODO: "history <br />",
+               // TODO: "blame <br />",
+               // TODO: "Back to tree <br />",
+               webgit_summary_link (repo->query, repo, html("Summary")), "<br />",
+               webgit_main_link (repo->query, html ("Main"))
                );
 }
 
index e656623..c3bf8a7 100644 (file)
@@ -183,12 +183,14 @@ webgit_object_commit_menu_action (struct webgit_repo_info* repo, unsigned char*
   (void) buf;
   (void) size;
   return html (html_tag ("div"),
-               "Project or webgit logo<br />",
-               "create branch <br />",
-               "cherry pick? <br />",
-               "log <br />",
-               "link to project summary <br />",
-               "link to main page <br />"
+               webgit_repo_logo (repo), "<br />",
+               // TODO: "diff against.. <br />",
+               // TODO: "log <br />",
+               // TODO: "create branch <br />",
+               // TODO: "cherry pick? <br />",
+               // TODO: "log <br />",
+               webgit_summary_link (repo->query, repo, html("Summary")), "<br />",
+               webgit_main_link (repo->query, html ("Main"))
                );
 }
 
index e02961d..514b76c 100644 (file)
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+#include "repo.h"
+#include "log.h"
+#include "tag.h"
+#include "summary.h"
+#include "actions.h"
 #include "object.h"
 
 #define SHA1_HEADER <openssl/sha.h>
@@ -136,19 +141,32 @@ webgit_object_tag_message_parse (void* buffer, unsigned long size)
 static Html
 webgit_object_tag_menu_action (struct webgit_repo_info* repo, struct tag* tag, void *buffer, unsigned long size)
 {
-  (void) repo;
-  (void) tag;
   (void) buffer;
   (void) size;
 
+  struct object* derefed = deref_tag ((struct object*)tag, NULL, 0);
+  char* sha1hex = sha1_to_hex (derefed->sha1);
+
   return html (html_tag ("div"),
-               "Project or webgit logo<br />",
-               "commit <br />",
-               "log <br />",
-               "gpg info <br />",
-               "snapshot <br />",
-               "link to project summary <br />",
-               "link to main page <br />"
+               webgit_repo_logo (repo), "<br />",
+               // TODO: "diff against.. <br />",
+               // TODO: "history <br />",
+               // TODO: "snapshot <br />",
+               // TODO: "commit <br />",
+               // TODO: "gpg info <br />",
+               // TODO: "snapshot <br />",
+               webgit_log_link (repo->query,
+                                repo->name,
+                                NULL,
+                                sha1hex, 40,
+                                repo->query->count,
+                                html ("Log")
+                                ), "<br />",
+               webgit_tag_link (repo, NULL, repo->query->count,
+                                html ("Tags")
+                                ), "<br />",
+               webgit_summary_link (repo->query, repo, html("Summary")), "<br />",
+               webgit_main_link (repo->query, html ("Main"))
                );
 }
 
index 463e46c..077fda3 100644 (file)
@@ -31,13 +31,13 @@ webgit_object_tree_menu_action (struct webgit_repo_info* repo, unsigned char* sh
   (void) sha1;
   (void) tree;
   return html (html_tag ("div"),
-               "Project or webgit logo<br />",
-               "diff against.. <br />",
-               "history <br />",
-               "snapshot <br />",
-               "Back to parent tree <br />",
-               "link to project summary <br />",
-               "link to main page <br />"
+               webgit_repo_logo (repo), "<br />",
+               // TODO: "diff against.. <br />",
+               // TODO: "history <br />",
+               // TODO: "snapshot <br />",
+               // TODO: "Back to parent tree <br />",
+               webgit_summary_link (repo->query, repo, html("Summary")), "<br />",
+               webgit_main_link (repo->query, html ("Main"))
                );
 }