diff options
author | Lars Hjemli | 2008-05-03 10:37:02 +0200 |
---|---|---|
committer | Lars Hjemli | 2008-05-03 10:37:02 +0200 |
commit | 141f1c3eb657470e81bbf998f44f9723f9009def (patch) | |
tree | a591e720b4a532fc7f53e74d611bb63629c8c5dc | |
parent | Merge branch 'lh/cache' (diff) | |
download | cgit-141f1c3eb657470e81bbf998f44f9723f9009def.tar.gz cgit-141f1c3eb657470e81bbf998f44f9723f9009def.zip |
Add cgit_index_link() function with support for offset
This function will be used to build a pager in ui-repolist. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-shared.c | 22 | ||||
-rw-r--r-- | ui-shared.h | 2 |
2 files changed, 19 insertions, 5 deletions
diff --git a/ui-shared.c b/ui-shared.c index d08ede9..f366354 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -114,7 +114,7 @@ char *cgit_currurl() | |||
114 | return fmt("%s/", ctx.cfg.virtual_root); | 114 | return fmt("%s/", ctx.cfg.virtual_root); |
115 | } | 115 | } |
116 | 116 | ||
117 | static void site_url(char *page, char *search) | 117 | static void site_url(char *page, char *search, int ofs) |
118 | { | 118 | { |
119 | char *delim = "?"; | 119 | char *delim = "?"; |
120 | 120 | ||
@@ -133,11 +133,16 @@ static void site_url(char *page, char *search) | |||
133 | html(delim); | 133 | html(delim); |
134 | html("q="); | 134 | html("q="); |
135 | html_attr(search); | 135 | html_attr(search); |
136 | delim = "&"; | ||
137 | } | ||
138 | if (ofs) { | ||
139 | html(delim); | ||
140 | htmlf("ofs=%d", ofs); | ||
136 | } | 141 | } |
137 | } | 142 | } |
138 | 143 | ||
139 | static void site_link(char *page, char *name, char *title, char *class, | 144 | static void site_link(char *page, char *name, char *title, char *class, |
140 | char *search) | 145 | char *search, int ofs) |
141 | { | 146 | { |
142 | html("<a"); | 147 | html("<a"); |
143 | if (title) { | 148 | if (title) { |
@@ -151,12 +156,18 @@ static void site_link(char *page, char *name, char *title, char *class, | |||
151 | html("'"); | 156 | html("'"); |
152 | } | 157 | } |
153 | html(" href='"); | 158 | html(" href='"); |
154 | site_url(page, search); | 159 | site_url(page, search, ofs); |
155 | html("'>"); | 160 | html("'>"); |
156 | html_txt(name); | 161 | html_txt(name); |
157 | html("</a>"); | 162 | html("</a>"); |
158 | } | 163 | } |
159 | 164 | ||
165 | void cgit_index_link(char *name, char *title, char *class, char *pattern, | ||
166 | int ofs) | ||
167 | { | ||
168 | site_link(NULL, name, title, class, pattern, ofs); | ||
169 | } | ||
170 | |||
160 | static char *repolink(char *title, char *class, char *page, char *head, | 171 | static char *repolink(char *title, char *class, char *page, char *head, |
161 | char *path) | 172 | char *path) |
162 | { | 173 | { |
@@ -596,9 +607,10 @@ void cgit_print_pageheader(struct cgit_context *ctx) | |||
596 | html("<input type='submit' value='search'/>\n"); | 607 | html("<input type='submit' value='search'/>\n"); |
597 | html("</form>\n"); | 608 | html("</form>\n"); |
598 | } else { | 609 | } else { |
599 | site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL); | 610 | site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL, 0); |
600 | if (ctx->cfg.root_readme) | 611 | if (ctx->cfg.root_readme) |
601 | site_link("about", "about", NULL, hc(cmd, "about"), NULL); | 612 | site_link("about", "about", NULL, hc(cmd, "about"), |
613 | NULL, 0); | ||
602 | html("</td><td class='form'>"); | 614 | html("</td><td class='form'>"); |
603 | html("<form method='get' action='"); | 615 | html("<form method='get' action='"); |
604 | html_attr(cgit_rooturl()); | 616 | html_attr(cgit_rooturl()); |
diff --git a/ui-shared.h b/ui-shared.h index 76c2b1f..3005d30 100644 --- a/ui-shared.h +++ b/ui-shared.h | |||
@@ -7,6 +7,8 @@ extern char *cgit_fileurl(const char *reponame, const char *pagename, | |||
7 | extern char *cgit_pageurl(const char *reponame, const char *pagename, | 7 | extern char *cgit_pageurl(const char *reponame, const char *pagename, |
8 | const char *query); | 8 | const char *query); |
9 | 9 | ||
10 | extern void cgit_index_link(char *name, char *title, char *class, | ||
11 | char *pattern, int ofs); | ||
10 | extern void cgit_tree_link(char *name, char *title, char *class, char *head, | 12 | extern void cgit_tree_link(char *name, char *title, char *class, char *head, |
11 | char *rev, char *path); | 13 | char *rev, char *path); |
12 | extern void cgit_log_link(char *name, char *title, char *class, char *head, | 14 | extern void cgit_log_link(char *name, char *title, char *class, char *head, |