about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJason A. Donenfeld2015-03-03 17:18:42 +0100
committerJason A. Donenfeld2015-03-03 17:18:42 +0100
commit6bcda2f73da605d48279341b1905c1b234a39368 (patch)
treee6b087ef3afa36f6aa92aa619bb51dc21b28d596
parentui-shared: keep filter repolist page in pagination (diff)
downloadcgit-6bcda2f73da605d48279341b1905c1b234a39368.tar.gz
cgit-6bcda2f73da605d48279341b1905c1b234a39368.zip
ui-shared: Add current url helper function.
-rw-r--r--ui-repolist.c4
-rw-r--r--ui-shared.c11
-rw-r--r--ui-shared.h1
3 files changed, 12 insertions, 4 deletions
diff --git a/ui-repolist.c b/ui-repolist.c index 4b16b6e..12ac1fc 100644 --- a/ui-repolist.c +++ b/ui-repolist.c
@@ -108,7 +108,7 @@ static int is_in_url(struct cgit_repo *repo)
108static void print_sort_header(const char *title, const char *sort) 108static void print_sort_header(const char *title, const char *sort)
109{ 109{
110 html("<th class='left'><a href='"); 110 html("<th class='left'><a href='");
111 html_attr(ctx.qry.url); 111 html_attr(cgit_currenturl());
112 htmlf("?s=%s", sort); 112 htmlf("?s=%s", sort);
113 if (ctx.qry.search) { 113 if (ctx.qry.search) {
114 html("&amp;q="); 114 html("&amp;q=");
@@ -315,7 +315,7 @@ void cgit_print_repolist()
315 cgit_close_filter(ctx.repo->owner_filter); 315 cgit_close_filter(ctx.repo->owner_filter);
316 } else { 316 } else {
317 html("<a href='"); 317 html("<a href='");
318 html_attr(ctx.qry.url); 318 html_attr(cgit_currenturl());
319 html("?q="); 319 html("?q=");
320 html_url_arg(ctx.repo->owner); 320 html_url_arg(ctx.repo->owner);
321 html("'>"); 321 html("'>");
diff --git a/ui-shared.c b/ui-shared.c index f8e5bef..838437c 100644 --- a/ui-shared.c +++ b/ui-shared.c
@@ -65,6 +65,13 @@ const char *cgit_hosturl()
65 return fmtalloc("%s:%s", ctx.env.server_name, ctx.env.server_port); 65 return fmtalloc("%s:%s", ctx.env.server_name, ctx.env.server_port);
66} 66}
67 67
68const char *cgit_currenturl()
69{
70 if (!ctx.qry.url)
71 return cgit_rooturl();
72 return ctx.qry.url;
73}
74
68const char *cgit_rooturl() 75const char *cgit_rooturl()
69{ 76{
70 if (ctx.cfg.virtual_root) 77 if (ctx.cfg.virtual_root)
@@ -145,7 +152,7 @@ static void site_url(const char *page, const char *search, const char *sort, int
145 char *delim = "?"; 152 char *delim = "?";
146 153
147 if (!page) 154 if (!page)
148 html_attr(ctx.qry.url); 155 html_attr(cgit_currenturl());
149 else 156 else
150 html_attr(cgit_rooturl()); 157 html_attr(cgit_rooturl());
151 158
@@ -952,7 +959,7 @@ void cgit_print_pageheader(void)
952 NULL, NULL, 0); 959 NULL, NULL, 0);
953 html("</td><td class='form'>"); 960 html("</td><td class='form'>");
954 html("<form method='get' action='"); 961 html("<form method='get' action='");
955 html_attr(ctx.qry.url); 962 html_attr(cgit_currenturl());
956 html("'>\n"); 963 html("'>\n");
957 html("<input type='text' name='q' size='10' value='"); 964 html("<input type='text' name='q' size='10' value='");
958 html_attr(ctx.qry.search); 965 html_attr(ctx.qry.search);
diff --git a/ui-shared.h b/ui-shared.h index 021fe4e..af78a13 100644 --- a/ui-shared.h +++ b/ui-shared.h
@@ -4,6 +4,7 @@
4extern const char *cgit_httpscheme(); 4extern const char *cgit_httpscheme();
5extern const char *cgit_hosturl(); 5extern const char *cgit_hosturl();
6extern const char *cgit_rooturl(); 6extern const char *cgit_rooturl();
7extern const char *cgit_currenturl();
7extern const char *cgit_loginurl(); 8extern const char *cgit_loginurl();
8extern char *cgit_repourl(const char *reponame); 9extern char *cgit_repourl(const char *reponame);
9extern char *cgit_fileurl(const char *reponame, const char *pagename, 10extern char *cgit_fileurl(const char *reponame, const char *pagename,