summaryrefslogtreecommitdiffabout
path: root/ui-log.c
authorLars Hjemli <hjemli@gmail.com>2007-05-18 11:55:52 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-05-18 11:55:52 (UTC)
commite189344a7dfe6fa1b07434d5170e6441dcbaf788 (patch) (unidiff)
treef1500b97f95a710dba27469510114388be435d01 /ui-log.c
parentc1ad6cb77889880ad0189a689840fbfa6e5cbc80 (diff)
downloadcgit-e189344a7dfe6fa1b07434d5170e6441dcbaf788.zip
cgit-e189344a7dfe6fa1b07434d5170e6441dcbaf788.tar.gz
cgit-e189344a7dfe6fa1b07434d5170e6441dcbaf788.tar.bz2
Add knobs to enable/disable files/lines changed in log view
These columns can cause lots of IO on the server, so add settings to explicitly enable them. Also, add per repo settings to optionally disable the columns if sitewide enabled. While at it, do not allow repo.snapshot to enable snapshots if the global setting is disabled. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'ui-log.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-log.c33
1 files changed, 21 insertions, 12 deletions
diff --git a/ui-log.c b/ui-log.c
index 9d0ec02..4237921 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -19,7 +19,8 @@ void count_lines(char *line, int size)
19void inspect_files(struct diff_filepair *pair) 19void inspect_files(struct diff_filepair *pair)
20{ 20{
21 files++; 21 files++;
22 cgit_diff_files(pair->one->sha1, pair->two->sha1, count_lines); 22 if (cgit_repo->enable_log_linecount)
23 cgit_diff_files(pair->one->sha1, pair->two->sha1, count_lines);
23} 24}
24 25
25void print_commit(struct commit *commit) 26void print_commit(struct commit *commit)
@@ -39,13 +40,17 @@ void print_commit(struct commit *commit)
39 html_link_open(url, NULL, NULL); 40 html_link_open(url, NULL, NULL);
40 html_ntxt(cgit_max_msg_len, info->subject); 41 html_ntxt(cgit_max_msg_len, info->subject);
41 html_link_close(); 42 html_link_close();
42 files = 0; 43 if (cgit_repo->enable_log_filecount) {
43 lines = 0; 44 files = 0;
44 cgit_diff_commit(commit, inspect_files); 45 lines = 0;
45 html("</td><td class='right'>"); 46 cgit_diff_commit(commit, inspect_files);
46 htmlf("%d", files); 47 html("</td><td class='right'>");
47 html("</td><td class='right'>"); 48 htmlf("%d", files);
48 htmlf("%d", lines); 49 if (cgit_repo->enable_log_linecount) {
50 html("</td><td class='right'>");
51 htmlf("%d", lines);
52 }
53 }
49 html("</td><td>"); 54 html("</td><td>");
50 html_txt(info->author); 55 html_txt(info->author);
51 html("</td></tr>\n"); 56 html("</td></tr>\n");
@@ -81,10 +86,14 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path)
81 86
82 html("<table class='list nowrap'>"); 87 html("<table class='list nowrap'>");
83 html("<tr class='nohover'><th class='left'>Date</th>" 88 html("<tr class='nohover'><th class='left'>Date</th>"
84 "<th class='left'>Message</th>" 89 "<th class='left'>Message</th>");
85 "<th class='left'>Files</th>" 90
86 "<th class='left'>Lines</th>" 91 if (cgit_repo->enable_log_filecount) {
87 "<th class='left'>Author</th></tr>\n"); 92 html("<th class='left'>Files</th>");
93 if (cgit_repo->enable_log_linecount)
94 html("<th class='left'>Lines</th>");
95 }
96 html("<th class='left'>Author</th></tr>\n");
88 97
89 if (ofs<0) 98 if (ofs<0)
90 ofs = 0; 99 ofs = 0;