summary refs log tree commit diff
path: root/ui-shared.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'stable'Lars Hjemli2011-03-051-1/+1
|\
| * ui-shared: silence warningBernhard Reutner-Fischer2011-02-191-1/+1
| | | | | | | | | | | | | | | | warning: format ‘%ld’ expects type ‘long int’, but argument 2 has type ‘size_t’ Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | implement repo.logo and repo.logo-linkBernhard Reutner-Fischer2011-02-191-4/+14
| | | | | | | | | | | | | | | | Allow for per repo logo and logo-link; Use global logo and logo-link per default. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'jh/ignorews'Lars Hjemli2010-07-181-0/+10
|\ \
| * | ui-diff: Add link to ignore/show whitespace changes in diffsJohan Herland2010-07-181-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a link to the "Diffstat" line to ignore/show whitespace changes in the generated diff. To support this, cgit_commit_link() and cgit_diff_link() has learned to preserve the ctx.qry.ignorews variable. Signed-off-by: Johan Herland <johan@herland.net>
* | | Merge branch 'lh/range-search'Lars Hjemli2010-06-221-0/+1
|\ \ \ | |/ / |/| |
| * | ui-log.c: allow commit range as search expressionLars Hjemli2010-06-191-0/+1
| | | | | | | | | | | | | | | Inspired-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | ui-diff: Add links to increase/decrease number of context lines in diffsJohan Herland2010-06-191-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add two links to the "Diffstat" line to show more/less context lines in the generated diff. To support this, cgit_commit_link() and cgit_diff_link() has learned to preserve the ctx.qry.context variable. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | ui-shared: Preserve path limit in "tab bar" linksJohan Herland2010-06-191-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using the "tab bar" in the pageheader to navigate between pages, any path limit in effect on the current page is forgotten in the link to the target page, even if the target page can interpret and use the path limit constructively. Instead, preserve the current page's path limit in the "tab bar" links to other pages, where the path limit is useful to the target page. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | ui-commit: Preserve path limit in links to commit pageJohan Herland2010-06-191-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This includes adding a path argument to cgit_commit_link() and updating all its callers. The callers from within the commit page (i.e. the "commit", "unidiff"/"side-by-side diff" and "parent" links) all preserve the path limit of the current commit page. All other callers pass NULL (i.e. no path limit). Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | ui-patch: Apply path limit to generated patchJohan Herland2010-06-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Also indicate in the comment section of the patch that a path limit was applied, too easily see when a generated patch is only partial. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | ui-shared: Teach "breadcrumb" navigation to path limit display beneath tab barJohan Herland2010-06-191-1/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a path limit is in effect, and displayed directly beneath the tab bar, it should offer breadcrumb navigation (like what the 'tree' page does), to allow changing the path limit easily. Implementing this requires a robust way to link back to the current page with a changed ctx->qry.path, but without losing track of the other query arguments. This is solved by adding the new cgit_self_link() function, which is then invoked repeatedly by the new cgit_print_path_crumbs() function while manipulating ctx->qry.path. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | ui-shared: Display path limit directly beneath tab bar in relevant pagesJohan Herland2010-06-191-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Design-wise, the path is shown by "expanding" the grey border between the tab bar and the content area of the page to house the current path limit. This is only displayed on pages where the path limit is relevant, and only when a path limit is in effect. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | ui-shared: Replace ctx.qry.path with ctx.qry.vpathJohan Herland2010-06-191-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In all cases where ui-shared uses ctx.qry.path, it is done so in the context of a in-project path, and not in the context in which the 'refs' page or the 'clone'-related functionality uses ctx.qry.path. Make this explicit by using ctx.qry.vpath instead. This path introduces no fundamental difference in functionality except for fixing some minor bugs, for example the Atom feed reference from a "$repo/refs/heads/" page. Note that the usage of ctx.qry.path in the other ui-<page>.c files is ok, since that code presumably is only executed in the context of its own <page>, so the correct interpretation of ctx.qry.path is never in question. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | ui-shared: Remove needless cgit_get_cmd() call, and refactor hc() accordinglyJohan Herland2010-06-191-19/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The call to cgit_get_cmd() and the following fallback handling (to "summary" or "repoindex") in cgit_print_pageheader() is unnecessary, since the same fallback handling was already done when ctx.qry.page was set when cgit_get_cmd() was called from process_request() in cgit.c. As such, hc() can also be rewritten to simply compare the given 'page' string against ctx.qry.page. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | ui-shared: Improve const-ness in APIJohan Herland2010-06-191-36/+40
|/ / | | | | | | | | | | | | This is needed to prevent const-related warnings in later patches. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2010-02-271-2/+2
|\|
| * ui-shared.c: fix segfault when repo is emptyFlorian Pritz2010-02-271-2/+2
| | | | | | | | | | | | | | | | | | PATH_INFO="/$REPONAME/commit/?id=1" QUERY_STRING="id=1" ./cgit.cgi triggers segfault when the repository is empty and therefore ctx.qry.head is unset Signed-off-by: Florian Pritz <bluewind@xssn.at> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'ro/ssdiff'Lars Hjemli2009-12-081-6/+28
|\ \
| * | Add possibility to switch between unidiff and side-by-side-diff.Ragnar Ouchterlony2009-09-161-6/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A new config option side-by-side-diffs added, defaulting to 0, meaning unidiff. Also a query option (ss) is used toggle this. In the commit page you can switch between the two diff formats by clicking on the link on the "commit"-row, to the right of (patch). In the diff page you can switch by using the link at the start of the page. All commit-links and diff-links will remember the choice. Signed-off-by: Ragnar Ouchterlony <ragnar@lysator.liu.se> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'stable'Lars Hjemli2009-11-071-1/+1
|\ \ \ | | |/ | |/|
| * | Nov is the correct abbreviationDanijel Tašov2009-11-071-1/+1
| |/
* / ui-shared.c: prettify download links when generated from tag pageLars Hjemli2009-10-161-2/+7
|/ | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'stable'Lars Hjemli2009-08-181-8/+11
|\
| * ui-shared: don't print header <img/> if there isn't a logo definedMatthew Metnetsky2009-08-181-8/+11
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-shared: add support for header/footer options when embedded=1Lars Hjemli2009-08-111-5/+12
| | | | | | | | | | | | | | | | | | | | | | When embedded=1, cgit used to ignore the header and footer options. But honoring these options when embedded=1 makes it possible to "frame" the html fragment generated by cgit with any kind of static content, i.e. it should become easier to integrate cgit with site-specfic layouts. Original-patch-by: Mark Constable <markc@renta.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-shared: add support for NO_HTTP=1/--nohttpLars Hjemli2009-08-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | cgit_print_http_headers() used to do nothing if 'embedded' was specified in cgitrc, but that was wrong - we never want to skip the headers when invoked as a CGI app. Sadly, there's no easy way to detect if we're invoked as a CGI app or if we're invoked by another CGI app, so for the latter case cgit needs to be invoked with either --nohttp on the command line or NO_HTTP=1 in the environment. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Cleanup handling of environment variablesLars Hjemli2009-08-101-23/+9
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'lh/embedded'Lars Hjemli2009-07-251-6/+22
|\ \ | | | | | | | | | | | | | | | Conflicts: cgitrc.5.txt ui-shared.c
| * | Add support for 'noheader' optionLars Hjemli2009-07-251-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | This option can be used to disable the standard cgit page header, which might be useful in combination with the 'embedded' option. Suggested-by: Mark Constable <markc@renta.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Add support for an 'embedded' option in cgitrcLars Hjemli2009-02-021-0/+10
| |/ | | | | | | | | | | | | | | | | | | When activated, cgit will neither generate http headers nor any 'framing' html elements (like <html> and <body>). Also, all page content is now wrapped in a <div id='cgit'> element to make it easier to select the correct cgit classes when embedded/themed. Suggested-by: Matt Sealey <matt@genesi-usa.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'ml/head-include'Lars Hjemli2009-07-251-1/+3
|\ \
| * | Add head-include configuration option.Mark Lodato2009-06-071-1/+3
| |/ | | | | | | | | | | This patch adds an option to the configuration file, "head-include", which works just like "header" or "footer", except the content is put into the HTML's <head> tag.
* | Merge branch 'plain-etag'Lars Hjemli2009-07-251-0/+6
|\ \ | | | | | | | | | | | | Conflicts: ui-shared.c
| * | Add support for HEAD requestsLars Hjemli2009-02-191-0/+4
| | | | | | | | | | | | | | | | | | This is a quick 'n dirty hack which makes cgit honor HEAD requests. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Add support for ETag in 'plain' viewLars Hjemli2009-02-191-0/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | When downloading a blob identified by its path, the client might want to know if the blob has been modified since a previous download of the same path. To this end, an ETag containing the blob SHA1 seems to be ideal. Todo: add support for HEAD requests... Suggested-by: Owen Taylor <otaylor@redhat.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'do/https'Lars Hjemli2009-07-251-1/+13
|\ \ | | | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | use cgit_httpscheme() for atom feedDiego Ongaro2009-06-111-1/+2
| | |
| * | add cgit_httpscheme() -> http:// or https://Diego Ongaro2009-06-111-0/+11
| |/
* / Return http statuscode 404 on unknown branchLars Hjemli2009-06-071-0/+2
|/ | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for a custom headerLars Hjemli2009-01-291-0/+2
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'lh/stats'Lars Hjemli2009-01-271-3/+12
|\ | | | | | | | | | | | | | | | | | | Conflicts: cgit.c cgit.css cgit.h ui-tree.c Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * ui-shared: externalize add_hidden_formfields()Lars Hjemli2008-12-071-3/+3
| | | | | | | | | | | | This function will be reused by ui-stats.c in the next commit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * ui-shared: add and use cgit_stats_link()Lars Hjemli2008-12-071-2/+8
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * ui-stats: replace 'enable-stats' setting with 'max-stats'Lars Hjemli2008-12-071-1/+1
| | | | | | | | | | | | | | | | | | The new 'max-stats' and 'repo.max-stats' settings makes it possible to define the maximum statistics period, both globally and per repo. Hence, it is now feasible to allow statistics on repositories with a high commit frequency, like linux-2.6, by setting repo.max-stats to e.g. 'month'. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Add a 'stats' page to each repoLars Hjemli2008-12-061-0/+3
| | | | | | | | | | | | | | | | | | | | | | This new page, which is disabled by default, can be used to print some statistics about the number of commits per period in the repository, where period can be either weeks, months, quarters or years. The function can be activated globally by setting 'enable-stats=1' in cgitrc and disabled for individual repos by setting 'repo.enable-stats=0'. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Lars Hjemli2009-01-111-1/+6
|\ \
| * | Avoid SEGFAULT on invalid requestsLars Hjemli2009-01-111-1/+6
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an unknown page is requested, either on the querystring or via PATH_INFO, we end up with a null-referencing cgit_cmd. This null- pointer is then used as argument to the hc() function (which decides what tab to render as 'active'), but this function failed to check if a valid cmd was specified and a SEGFAULT would occur. This patch fixes the issue by introducing a 'fallback-cmd' which specifies what tab to render as 'active' when no valid cmd is requested. While at it, we now also keep track of the active repository even if an invalid cmd was requested since we want to show the error message about the invalid request in the correct context. Noticed-by: Robin Redeker <elmex@ta-sa.org> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'full-log'Lars Hjemli2008-12-061-2/+10
|\ \ | | | | | | | | | | | | | | | Conflicts: cgit.c cgit.h
| * | ui-log: add support for showing the full commit messageLars Hjemli2008-11-291-2/+10
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some users prefer to see the full message, so to make these users happy the new querystring parameter "showmsg" can be used to print the full commit message per log entry. A link is provided in the log heading to make this function accessible, and all links and forms tries to preserve the users preference. Note: the new link is not displayed on the summary page since the point of the summary page is to be a summary, but it is still obeyed if specified manually. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-shared: shorten the sha1 printed by cgit_object_linkLars Hjemli2008-12-011-6/+8
| | | | | | | | | | | | | | | | Such links was printed as the object type followed by the objects complete sha1. We still use the complete sha1 in the link but we no longer show it in all its glory; only the first 10 hex chars are printed. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-shared: exploit snapshot dwimmery in cgit_print_snapshot_linksLars Hjemli2008-12-011-2/+1
|/ | | | | | | | Since we know that ui-snapshot.c is able to extract the revision from the filename, there's no longer necessary to specify the revision with a 'id' querystring argument. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared: specify correct css class for summary tabLars Hjemli2008-10-061-1/+2
| | | | | | | When introducing cgit_summary_link() in 49ecbbdd I forgot to specify the css class. This fixes it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared: add cgit_tag_link()Lars Hjemli2008-10-051-0/+6
| | | | | | | This function can be used to generate properly escaped links to the tag page. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared: generate proper links in cgit_object_link()Lars Hjemli2008-10-051-15/+7
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared: use html_url_path() to get properly escaped url in form actionLars Hjemli2008-10-051-2/+2
| | | | | | | When a repo uses an url with e.g. '#' or '?' characters this needs to be properly escaped when used as action in a form tag. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared: reword the standard page footerLars Hjemli2008-10-051-2/+2
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared: do not print repo name on the "summary" tabLars Hjemli2008-10-051-2/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-repolist + ui-shared: Use cgit_summary_link()Lars Hjemli2008-10-051-4/+3
| | | | | | | This makes is possible to use cgit with repository urls containing special url characters like '#' and '?'. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared.c: add cgit_summary_link()Lars Hjemli2008-10-051-0/+5
| | | | | | | This function can be used to generate a link to the summary page for the currently active repo. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared.c: use html_url_path() in repolink()Lars Hjemli2008-10-051-4/+4
| | | | | | | This makes sure that reponames and paths are properly escaped when used as urls. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared.c: use html_url_arg()Lars Hjemli2008-10-051-10/+10
| | | | | | | | | The link-generating functions are updated to use the new html_url_arg function, thereby fixing links to strange repos, branches and files. Also, the test-suite is updated to verify some cases of strange urls. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* use Host: header to generate cgit_hosturlEric Wong2008-09-021-7/+12
| | | | | | | | | | | | | | | | | | | | | I run an instance of lighttpd for cgit behind nginx (nginx doesn't execute CGI). So the port (SERVER_PORT=33333) that lighttpd runs on sends to cgit is different from the standard port 80 that public clients connect to (via nginx). This was causing the Atom feed URL to show the private port number that lighttpd was running on. Since the HTTP/1.1 "Host" header includes the port number if running on a non-standard port, it allows non-client-facing HTTP servers to transparently generate public URLs that clients can see. So use the "Host" header if it is available and fall back to SERVER_NAME/SERVER_PORT for some clients that don't set HTTP_HOST. Signed-off-by: Eric Wong <normalperson@yhbt.net>
* Merge branch 'lh/plain'Lars Hjemli2008-09-011-0/+8
|\ | | | | | | | | | | | | * lh/plain: Supply status description to html_status() ui-tree: link to plain view instead of blob view Implement plain view
| * ui-tree: link to plain view instead of blob viewLars Hjemli2008-08-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | 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>
| * Implement plain viewLars Hjemli2008-08-061-0/+2
| | | | | | | | | | | | | | This implements a way to access plain blobs by path (similar to the tree view) instead of by sha1. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add atom-supportLars Hjemli2008-08-011-0/+23
|/ | | | | | | This enables a page which generates atom feeds for the current branch and path, heavily inspired by the atom-support in gitweb. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Added `local-time` option to cgitrcStefan Naewe2008-08-011-4/+7
| | | | | | | | | When `local-time` is set, commit, tag and patch timestamps will be printed in the servers timezone. Also, regardless of the value of `local-time`, these timestamps will now always show the timezone. Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Be prepared for empty repositoriesLars Hjemli2008-07-271-1/+2
| | | | | | Before this patch, cgit would segfault on repositories with no refs. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared: show repo owner along with descriptionLars Hjemli2008-07-271-3/+3
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add a favicon option to cgitrcLars Hjemli2008-07-191-0/+5
| | | | | | This option is used to specify a shortcut icon on all cgit pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for including a footer on all pagesLars Hjemli2008-06-261-4/+10
| | | | | | | | | The new cgitrc option `footer` can be used to include a html-file which replaces the standard 'generated by cgit' message at the bottom of each page. Suggested-by: Peter Danenberg <pcd@wikitex.org> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add link to index page from repo header, remove page nameLars Hjemli2008-05-041-2/+2
| | | | | | | | | | | This makes it more obvious how to get back to the index, especially when the config option `logo-link` is used. And the page name displayed in the header provided no extra information. It only consumed space and deserved to die. While at it, make sure that the different parts of the header doesn't wrap when horizontal space is limited. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add footer with page creation time and cgit version on all pagesLars Hjemli2008-05-031-0/+3
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add cgit_index_link() function with support for offsetLars Hjemli2008-05-031-5/+17
| | | | | | This function will be used to build a pager in ui-repolist. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add 'about site' and 'about repo' pagesLars Hjemli2008-04-291-3/+50
| | | | | | | | This commit uses the options and changes from the last few commits to implement a new 'about' command which works both with and without a repo. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Re-enable 'index-info' and add support for 'root-desc' in cgitrcLars Hjemli2008-04-291-1/+4
| | | | | | | | | | | | | The 'index-info' option got lost when the layout was converted from sidebar to old-fashioned header (noticed by Harley Laue, thanks!), and this commit re-enables it. But there is now also an alternative in the 'root-desc' option; where 'index-info' specifies a file to include, 'root-desc' specifies the text literally. This might be nicer for the one-liner descriptions which these options typically provides. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Cleanup page headerLars Hjemli2008-04-151-17/+4
| | | | | | Fix some invalid html, remove dead code. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Remove 'patch' link from tab, add to commit viewLars Hjemli2008-04-131-2/+0
| | | | | | | | | | It's a bit confusing to enter the patch view from the tab, since it has no layout. And the commit view has always lacked showing the commit id. Both of these warts are fixed by this commit, which adds a new header line in the commit view which shows the commit id as a 'permalink' to the current commit and also adds a link to the patch view of the current commit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Implement minimal freetext search in the repolistLars Hjemli2008-04-131-1/+10
| | | | | | | This makes the repolist much more usable when there's a lot of repositories registered in cgitrc. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* More layout fixesLars Hjemli2008-04-131-15/+50
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Reintroduce the branch switcherLars Hjemli2008-04-121-0/+7
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add fixed link to index page from repo headerLars Hjemli2008-04-121-3/+9
| | | | | | | This makes it easier to get back to the index page, and also re-enables the usage of logo-link in cgitrc. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Replace sidebar/logoLars Hjemli2008-04-121-81/+44
| | | | | | | | | This replaces the sidebar with a more 'common' header layout and also updates the logo. Not quite finished yet, though. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Refactor snapshot supportLars Hjemli2008-03-241-1/+16
| | | | | | | | | The snapshot support needs to be split between output- and config-related functions to get the layering between shared.c and ui-*.c right. There is also some codestyle-issues which needs fixing to make the snapshot functions more similar to the rest of the cgit code. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add struct cgit_page to cgit_contextLars Hjemli2008-03-241-61/+51
| | | | | | | | This struct is used when generating http headers, and as such is another small step towards the goal of the whole cleanup series; to invoke each page/view function with a function pointer. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Introduce html.hLars Hjemli2008-03-181-0/+16
| | | | | | | | All html-functions can be quite easily separated from the rest of cgit, so lets do it; the only issue was html_filemode which uses some git-defined macros so the function is moved into ui-shared.c::cgit_print_filemode(). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Improve initialization of git directoryLars Hjemli2008-02-161-1/+1
| | | | | | | Using the functions offered by libgit feels like the right thing to do. Also, make sure that config errors gets properly reported. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move cgit_repo into cgit_contextLars Hjemli2008-02-161-14/+14
| | | | | | | | This removes the global variable which is used to keep track of the currently selected repository, and adds a new variable in the cgit_context structure. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add all config variables into struct cgit_contextLars Hjemli2008-02-161-30/+30
| | | | | | | | This removes another big set of global variables, and introduces the cgit_prepare_context() function which populates a context-variable with compile-time default values. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Introduce struct cgit_contextLars Hjemli2008-02-161-43/+43
| | | | | | | | | This struct will hold all the cgit runtime information currently found in a multitude of global variables. The first cleanup removes all querystring-related variables. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add plain patch viewLars Hjemli2007-12-111-0/+8
| | | | | | | | | | The new view mimics the output from `git format-patch`, making it possible to cherry-pick directly from cgit with something like `curl $url | git am`. Inspired by a patch to `git-apply` by Mike Hommey: http://thread.gmane.org/gmane.comp.version-control.git/67611/focus=67610 Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for automatic and custom clone urlsLars Hjemli2007-12-031-0/+17
| | | | | | | | | | | | | This adds support for two new parameters to cgitrc: clone-prefix and repo.clone-url. If clone-prefix is specified, all repos will get a clone url printed in the sidebar; the url is generated by clone-prefix + repo.url. Additionally, each repo can specify repo.clone-url which will override any such auto-generated url. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'stable'Lars Hjemli2007-12-021-0/+4
|\ | | | | | | | | | | * stable: Handle missing timestamp in commit/tag objects Set commit date on snapshot contents
| * Handle missing timestamp in commit/tag objectsLars Hjemli2007-12-021-0/+4
| | | | | | | | | | | | | | | | | | | | When a commit or tag lacks author/committer/tagger timestamp, do not skip the next line in the commit/tag object. Also, do not bother to print timestamps with value 0 as it is close to certain to be bogus. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add cell-spacing in htmlLars Hjemli2007-11-161-1/+1
| | | | | | | | | | | | There are some browsers which don't support the border-spacing property Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Use tables for page layoutLars Hjemli2007-11-161-10/+12
| | | | | | | | | | | | | | It feels like the Right Thing, and it fixes some rendering problems in a much used webbrowser. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add support for "robots" meta-tagLars Hjemli2007-11-111-0/+2
| | | | | | | | | | | | | | | | | | With this change, cgit will start to generate the "robots" meta-tag, using a default value of "index, nofollow". The default value can be modified with a new cgitrc variable, "robots". Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Generate valid html for "downloads" menu headerLars Hjemli2007-11-111-1/+1
| | | | | | | | | | Noticed-by: http://validator.w3.org Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Fix html error detected by test-suiteLars Hjemli2007-11-111-12/+12
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add commit->msg_encoding, allocate msg dynamicly.Jonathan Bastien-Filiatrault2007-11-051-1/+1
|/
* Don't show the the branch selector button if javascript is enabledLars Hjemli2007-11-031-1/+1
| | | | | Suggested-by: Olivier Ramonat <olivier@ramonat.fr> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Do not require javascript-enabled clientsLars Hjemli2007-11-031-0/+4
| | | | | | | | A simple submit-button is all that's required to make the branch selector drop-down work on any client, so lets add one. Noticed-by: Olivier Ramonat <olivier@ramonat.fr> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Don't include current SHA1 in 'log' menu-itemLars Hjemli2007-11-031-2/+2
| | | | | | | This ensures that the menu-item always prints the log for the active branch. Predictability is good. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Don't include current path in menu linksLars Hjemli2007-11-031-3/+2
| | | | | | The menu-links are a lot more predictable this way. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Fix search form action/hidden fieldsLars Hjemli2007-11-031-18/+24
| | | | | | | | The search form didn't properly honor the current path, so this commit fixes cgit_fileurl() and add_hidden_formfields() to make the issue go away. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add search parameters to cgit_log_linkLars Hjemli2007-11-031-2/+11
| | | | | | This makes the [prev] and [next] links work correctly on search results. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Change the cgit layoutLars Hjemli2007-10-301-50/+122
| | | | | | | | | | | | | | | | | This modifies and hopefully improves the layout of all cgit pages: * Remove the header from all pages and replace it with a sidebar; most pages have sufficient width but many needs more height. * Add a dropdown-box to switch between branches, using a one-liner javascript to reload the current page in context of the selected branch. * Include refs found below refs/archives in the sidebar, appearing as a set of menuitems below a 'download' heading. * Include the brand new cgit logo Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Teach cgit_object_link() about tag objectsLars Hjemli2007-10-281-0/+3
| | | | | | | This makes random tag links more helpfull, e.g. when a branch head references a tag object, link to the tag page. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Teach log search about --grep, --author and --committerLars Hjemli2007-10-281-2/+7
| | | | | | | This makes the log searching more explicit, using a dropdown box to specify the commit field to match against. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add links to the new refs page from summary pageLars Hjemli2007-10-271-0/+6
| | | | | | | If either branches or tags are filtered on the summary page, add a link to refs/heads and/or refs/tags right below the last branch/tag. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cgit_print_snapshot_links: use url to specify snapshot nameLars Hjemli2007-07-231-0/+6
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'master' of git://git.klever.net/patchwork/cgitLars Hjemli2007-07-221-4/+37
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'master' of git://git.klever.net/patchwork/cgit: link raw blob from tree file view fix: changed view link to blob in summary. allow selective enabling of snapshots shorten snapshot names to repo basename introduce cgit_repobasename added snapshot filename to the link add plain uncompressed tar snapshort format introduced .tar.bz2 snapshots compress .tar.gz using gzip as a filter added a chk_non_negative check css: adjust vertical-align of commit info th cells add support for snapshot tarballs Conflicts: ui-summary.c Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * introduce cgit_repobasenameMichael Krelin2007-07-211-0/+24
| | | | | | | | | | | | | | that shortens reponame stripping any directories and .git suffixes, that is turning 'dir/repo.git/' or 'dir/repo/.git/' or alikes into mere 'repo'. Signed-off-by: Michael Krelin <hacker@klever.net>
| * added snapshot filename to the linkMichael Krelin2007-07-211-4/+13
| | | | | | | | | | | | | | - changed cgit_pageurl into cgit_fileurl with the filename parameter - rewritten cgit_pageurl as a wrapper around cgit_fileurl Signed-off-by: Michael Krelin <hacker@klever.net>
* | Add ui-tag.cLars Hjemli2007-07-221-0/+24
|/ | | | | | | This file implements the tag-command, i.e. printing of annotated tags. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'lh/menu'Lars Hjemli2007-06-291-16/+55
|\ | | | | | | | | | | | | | | | | | | | | | | * lh/menu: Add ofs argument to cgit_log_link and use it in ui-log.c Add trim_end() and use it to remove trailing slashes from repo paths Do not include current path in the "tree" menu link Add setting to enable/disable extra links on index page Change S/L/T to summary/log/tree Change "files" to "tree" Include querystring as part of cached filename for repo summary page Add more menuitems on repo pages
| * Add ofs argument to cgit_log_link and use it in ui-log.cLars Hjemli2007-06-291-3/+19
| | | | | | | | | | | | | | This fixes a bug in the prev/next links on the log page: when on the default branch the links to prev/next page would contain h=(null). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Do not include current path in the "tree" menu linkLars Hjemli2007-06-261-1/+1
| | | | | | | | | | | | | | | | When generating the menu links on repo pages the tree link included the current path. This made the link pretty useless whenever the current path was set so this commit just passes NULL instead. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Change "files" to "tree"Lars Hjemli2007-06-181-1/+1
| | | | | | | | | | | | | | | | This renames the menu link and the shortcut on the repo index page from the strange "files" to the more gittish "tree". Suggested-by: Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Add more menuitems on repo pagesLars Hjemli2007-06-181-14/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In an attempt to get better usability, a set of 'semistatic' menuitems are added to the page header on all pages except the repository index. The menuitems (summary, log, files, commit and diff) honours the current branch and revision. To switch the current branch one can use the branch links on the summary page. The backlink to the repository index page is now available by clicking the static page heading. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add version info from git-describeLars Hjemli2007-06-181-1/+1
|/ | | | | | | | A new script, gen-version.sh, is now invoked from 'make version' to generate the file VERSION. This file contains a version identifier generated by git-describe and is included in the Makefile. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add cgit_diff_link()Lars Hjemli2007-06-171-0/+22
| | | | | | | | | | | | | | | | | | This adds a new function used to generate links to the diff page and uses it everywhere such links appear (expect for single files in the diffstat displayed on the commit page: this is now a link to the tree page). The updated diff-page now expects zero, one or two revision specifiers, in parameters head, id and id2. Id defaults to head unless otherwise specified, while head (as usual) defaults to repo.defbranch. If id2 isn't specified, it defaults to the first parent of id1. The most important change is of course that now all repo pages (summary, log, tree, commit and diff) has support for passing on the current branch and revision, i.e. the road is now open for a 'static' menu with links to all of these pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add cgit_commit_link() + support for id=sha1 to commit viewLars Hjemli2007-06-171-2/+14
| | | | | | | | This adds a function to generate links to the commit page and extends said page to use id from querystring as primary revision specified (fallback to h). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add git_log_link() and fix bug in generic repolink functionLars Hjemli2007-06-171-4/+16
| | | | | | | | | | | The generic repolink function compared head with cgit_query_head, which almost always would be the same pointer. The test now compares with repo.defbranch, which is the wanted behavour. Bug discovered while adding cgit_log_link(), so this commit also contain that change. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared: use strcmp() to compare stringsLars Hjemli2007-06-171-2/+2
| | | | | | | Somehow a couple of pointer comparisions crept into the new repolink() and cgit_tree_link() functions. Fix it. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add and use cgit_tree_link()Lars Hjemli2007-06-171-0/+64
| | | | | | | This creates a new function used to generate links to 'tree' page and uses the function everywhere a link to the 'tree' page is generated. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use &amp; instead of & in URLs.Ondrej Jirman2007-05-311-2/+2
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Bad html: it's nice to add alt-attributesLars Hjemli2007-05-241-1/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Bad html: <form> should have an action-attributeLars Hjemli2007-05-241-1/+1
| | | | | | Don't know how the href-attribute got in there... Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add cgit_print_age() functionLars Hjemli2007-05-221-3/+44
| | | | | | | This function can be used to print relative dates, just as in gitweb. Next step will be to actually use the new function. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Enable url=value querystring parameterLars Hjemli2007-05-181-1/+4
| | | | | | | This makes is possible to use repo-urls like '/pub/scm/git/git.git' and even add path specifications, like '/pub/scm/git/git.git/log/documentation'. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Make git_pageurl handle NULL querystringsLars Hjemli2007-05-161-2/+6
| | | | | | This is suddenly useful after the repo.defbranch-related changes. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Don't hardcode urls when SCRIPT_NAME is availableLars Hjemli2007-05-151-2/+2
| | | | | | | Also, let the makefile define the name of the installed cgi and use that definition as a default value for cgit_script_name variable. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-shared.c: fix whitespace breakageLars Hjemli2007-05-151-6/+5
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Layout updateLars Hjemli2007-02-211-10/+27
|
* Add support for snapshotsLars Hjemli2007-02-081-0/+11
| | | | | | | | Make a link from the commit viewer to a snapshot of the corresponding tree. Currently only zip-format is supported. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Fix search for non-virtual urlsLars Hjemli2007-02-031-0/+6
| | | | | | | | When cgit don't use virtual urls, the current repo and page url parameters must be included in the search form as hidden input fields. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Change global document layoutLars Hjemli2007-01-281-2/+3
| | | | | | Use a document-wide table for the main layout Signed-off-by: Lars Hjemli <larsh@slaptop.hjemli.net>
* Use long instead of int when converting from TTL to secondsLars Hjemli2007-01-051-1/+1
| | | | | | Just to be really, really sure about embarrasing overflow settings Signed-off-by: Lars Hjemli <larsh@hal-2004.(none)>
* Add generic support for search box in page headerLars Hjemli2006-12-281-1/+27
| | | | | | | This adds the ability to show a search box in any pageheader with correct href and hidden form data, but does not enable the box on any pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Make repo header a link to summary pageLars Hjemli2006-12-161-0/+4
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move cgit_print_date into ui-shared, reuse in ui-summaryLars Hjemli2006-12-161-0/+12
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move functions for repolist output into ui-repolist.cLars Hjemli2006-12-111-0/+21
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move common output-functions into ui-shared.cLars Hjemli2006-12-111-0/+76
While at it, replace the cgit_[lib_]error constants with a proper function Signed-off-by: Lars Hjemli <hjemli@gmail.com>