Commit Graph

161 Commits

Author SHA1 Message Date
Lars Hjemli
f34478cbe0 Refactor snapshot support
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>
2008-03-24 16:00:27 +01:00
Lars Hjemli
f3c1a187fe Add struct cgit_page to cgit_context
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>
2008-03-24 00:51:19 +01:00
Lars Hjemli
b1f9b9c145 Introduce html.h
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>
2008-03-18 08:13:10 +01:00
Lars Hjemli
b88fb016d0 Improve initialization of git directory
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>
2008-02-16 21:48:19 +01:00
Lars Hjemli
d1f3bbe9d2 Move cgit_repo into cgit_context
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>
2008-02-16 13:56:09 +01:00
Lars Hjemli
b228d4ff82 Add all config variables into struct cgit_context
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>
2008-02-16 13:10:50 +01:00
Lars Hjemli
d14d77fe95 Introduce struct cgit_context
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>
2008-02-16 12:07:28 +01:00
Lars Hjemli
620bb3e5e4 Add plain patch view
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>
2007-12-11 02:43:24 +01:00
Lars Hjemli
afcdd083da Add support for automatic and custom clone urls
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>
2007-12-03 01:49:38 +01:00
Lars Hjemli
dabb34af76 Merge branch 'stable'
* stable:
  Handle missing timestamp in commit/tag objects
  Set commit date on snapshot contents
2007-12-02 22:28:37 +01:00
Lars Hjemli
fc4c4ba3a9 Handle missing timestamp in commit/tag objects
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>
2007-12-02 22:27:07 +01:00
Lars Hjemli
e8e6721817 Add cell-spacing in html
There are some browsers which don't support the border-spacing property

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-16 10:28:29 +01:00
Lars Hjemli
6ef637e090 Use tables for page layout
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>
2007-11-16 09:52:03 +01:00
Lars Hjemli
d267d88c9c Add support for "robots" meta-tag
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>
2007-11-11 21:57:21 +01:00
Lars Hjemli
1b7c5b2e0b Generate valid html for "downloads" menu header
Noticed-by: http://validator.w3.org
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-11 13:44:39 +01:00
Lars Hjemli
2915483ef6 Fix html error detected by test-suite
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-11 13:04:28 +01:00
Jonathan Bastien-Filiatrault
3845e177e4 Add commit->msg_encoding, allocate msg dynamicly. 2007-11-05 18:13:30 -05:00
Lars Hjemli
72ede12551 Don't show the the branch selector button if javascript is enabled
Suggested-by: Olivier Ramonat <olivier@ramonat.fr>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-03 14:17:58 +01:00
Lars Hjemli
601c76eb15 Do not require javascript-enabled clients
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>
2007-11-03 14:05:12 +01:00
Lars Hjemli
1e4ff4dc50 Don't include current SHA1 in 'log' menu-item
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>
2007-11-03 11:33:28 +01:00
Lars Hjemli
cda7194e30 Don't include current path in menu links
The menu-links are a lot more predictable this way.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-03 11:23:47 +01:00
Lars Hjemli
68cf9b4f85 Fix search form action/hidden fields
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>
2007-11-03 11:15:56 +01:00
Lars Hjemli
51140311bb Add search parameters to cgit_log_link
This makes the [prev] and [next] links work correctly on search results.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-03 10:42:37 +01:00
Lars Hjemli
0c8e184e9c Change the cgit layout
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>
2007-10-30 13:38:34 +01:00
Lars Hjemli
fc5880fab8 Teach cgit_object_link() about tag objects
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>
2007-10-28 15:41:58 +01:00
Lars Hjemli
68ca032dbe Teach log search about --grep, --author and --committer
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>
2007-10-28 15:23:00 +01:00
Lars Hjemli
ac1f493b6b Add links to the new refs page from summary page
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>
2007-10-27 10:53:28 +02:00
Lars Hjemli
eb45342e73 cgit_print_snapshot_links: use url to specify snapshot name
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-07-23 00:27:32 +02:00
Lars Hjemli
1d4aaff696 Merge branch 'master' of git://git.klever.net/patchwork/cgit
* '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>
2007-07-22 23:57:56 +02:00
Lars Hjemli
4e9107abfe Add ui-tag.c
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>
2007-07-22 23:44:57 +02:00
Michael Krelin
1cb8bedf1e introduce cgit_repobasename
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>
2007-07-21 15:24:07 +02:00
Michael Krelin
0df096f6e1 added snapshot filename to the link
- 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>
2007-07-21 13:13:40 +02:00
Lars Hjemli
16a3d2779c Merge branch 'lh/menu'
* 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
2007-06-29 20:32:08 +02:00
Lars Hjemli
103940fe6b Add ofs argument to cgit_log_link and use it in ui-log.c
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>
2007-06-29 20:31:00 +02:00
Lars Hjemli
42e459bb1f Do not include current path in the "tree" menu link
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>
2007-06-26 17:32:08 +02:00
Lars Hjemli
1f34fb9d4f Change "files" to "tree"
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>
2007-06-18 22:06:00 +02:00
Lars Hjemli
f69250358a Add version info from git-describe
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>
2007-06-18 10:38:40 +02:00
Lars Hjemli
b8be028a30 Add more menuitems on repo pages
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>
2007-06-18 08:29:53 +02:00
Lars Hjemli
4a0be58666 Add cgit_diff_link()
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>
2007-06-17 18:12:03 +02:00
Lars Hjemli
42a7eb9c73 Add cgit_commit_link() + support for id=sha1 to commit view
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>
2007-06-17 14:53:02 +02:00
Lars Hjemli
48c487d72d Add git_log_link() and fix bug in generic repolink function
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>
2007-06-17 13:57:51 +02:00
Lars Hjemli
486c87ec29 ui-shared: use strcmp() to compare strings
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>
2007-06-17 12:58:59 +02:00
Lars Hjemli
44947bfcdc Add and use cgit_tree_link()
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>
2007-06-17 01:39:05 +02:00
Ondrej Jirman
1a63cfcc3d Use &amp; instead of & in URLs.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-31 10:18:38 +02:00
Lars Hjemli
7dc99a4bbb Bad html: it's nice to add alt-attributes
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-24 00:08:36 +02:00
Lars Hjemli
ef473df0b3 Bad html: <form> should have an action-attribute
Don't know how the href-attribute got in there...

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-24 00:06:25 +02:00
Lars Hjemli
5db39170b6 Add cgit_print_age() function
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>
2007-05-22 23:12:41 +02:00
Lars Hjemli
30ccdcaa74 Enable url=value querystring parameter
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>
2007-05-18 22:51:01 +02:00
Lars Hjemli
723469962b Make git_pageurl handle NULL querystrings
This is suddenly useful after the repo.defbranch-related changes.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-16 02:06:28 +02:00
Lars Hjemli
ea2831f1c8 Don't hardcode urls when SCRIPT_NAME is available
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>
2007-05-15 00:48:31 +02:00
Lars Hjemli
6fb7d09fea ui-shared.c: fix whitespace breakage
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-15 00:22:17 +02:00
Lars Hjemli
66cacd053b Layout update 2007-02-21 00:24:36 +01:00
Lars Hjemli
ab2ab95f09 Add support for snapshots
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>
2007-02-08 13:58:58 +01:00
Lars Hjemli
bb3e7950c3 Fix search for non-virtual urls
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>
2007-02-03 13:10:26 +01:00
Lars Hjemli
8596cda71d Change global document layout
Use a document-wide table for the main layout

Signed-off-by: Lars Hjemli <larsh@slaptop.hjemli.net>
2007-01-28 11:33:55 +01:00
Lars Hjemli
f98e72684b Use long instead of int when converting from TTL to seconds
Just to be really, really sure about embarrasing overflow settings

Signed-off-by: Lars Hjemli <larsh@hal-2004.(none)>
2007-01-05 18:20:23 +01:00
Lars Hjemli
e39d738c39 Add generic support for search box in page header
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>
2006-12-28 02:01:49 +01:00
Lars Hjemli
0de2055b75 Make repo header a link to summary page
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-16 00:49:37 +01:00
Lars Hjemli
148fb9622c Move cgit_print_date into ui-shared, reuse in ui-summary
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-16 00:33:28 +01:00
Lars Hjemli
74620f12e4 Move functions for repolist output into ui-repolist.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-11 16:49:18 +01:00
Lars Hjemli
5a106eb09b Move common output-functions into ui-shared.c
While at it, replace the cgit_[lib_]error constants with a proper function

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-11 16:38:30 +01:00