-rw-r--r-- | ui-shared.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/ui-shared.c b/ui-shared.c index 9ec4be8..b9c1243 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -61,4 +61,16 @@ char *cgit_pageurl(const char *reponame, const char *pagename, | |||
61 | } | 61 | } |
62 | 62 | ||
63 | char *cgit_currurl() | ||
64 | { | ||
65 | if (!cgit_virtual_root) | ||
66 | return "./cgit.cgi"; | ||
67 | else if (cgit_query_page) | ||
68 | return fmt("%s/%s/%s/", cgit_virtual_root, cgit_query_repo, cgit_query_page); | ||
69 | else if (cgit_query_repo) | ||
70 | return fmt("%s/%s/", cgit_virtual_root, cgit_query_repo); | ||
71 | else | ||
72 | return fmt("%s/", cgit_virtual_root); | ||
73 | } | ||
74 | |||
63 | 75 | ||
64 | void cgit_print_date(unsigned long secs) | 76 | void cgit_print_date(unsigned long secs) |
@@ -99,5 +111,5 @@ void cgit_print_docend() | |||
99 | } | 111 | } |
100 | 112 | ||
101 | void cgit_print_pageheader(char *title) | 113 | void cgit_print_pageheader(char *title, int show_search) |
102 | { | 114 | { |
103 | html("<div id='header'>"); | 115 | html("<div id='header'>"); |
@@ -105,4 +117,18 @@ void cgit_print_pageheader(char *title) | |||
105 | htmlf("<img id='logo' src='%s'/>\n", cgit_logo); | 117 | htmlf("<img id='logo' src='%s'/>\n", cgit_logo); |
106 | htmlf("</a>"); | 118 | htmlf("</a>"); |
119 | if (show_search) { | ||
120 | html("<form method='get' href='"); | ||
121 | html_attr(cgit_currurl()); | ||
122 | html("'>"); | ||
123 | if (cgit_query_head) | ||
124 | html_hidden("h", cgit_query_head); | ||
125 | if (cgit_query_sha1) | ||
126 | html_hidden("id", cgit_query_sha1); | ||
127 | if (cgit_query_sha2) | ||
128 | html_hidden("id2", cgit_query_sha2); | ||
129 | html("<input type='text' name='q' value='"); | ||
130 | html_attr(cgit_query_search); | ||
131 | html("'/></form>"); | ||
132 | } | ||
107 | if (cgit_query_repo) | 133 | if (cgit_query_repo) |
108 | htmlf("<a href='%s'>", cgit_repourl(cgit_query_repo)); | 134 | htmlf("<a href='%s'>", cgit_repourl(cgit_query_repo)); |