Junio C Hamano <junkio@xxxxxxx> writes: > Jakub Narebski <jnareb@xxxxxxxxx> writes: > >> ... That means that we cannot distinguish really well (at >> least color) between tree and blob entries. > > Do we even say links are blue and underlined by forcing that in > our css? > > Doesn't leading drwxr-xr-x mean anything? > > Why is making the distinction important in the first place? Anyhow, I was too tired to sleep after an unscheduled day-job on Sunday X-<, and whipped this up for fun. -- >8 -- [PATCH] gitweb: remove UNIXy mode bits from tree display and replace it with an image icon for cuteness ;-). Signed-off-by: Junio C Hamano <junkio@xxxxxxx> --- gitweb/gitweb.css | 20 ++++++++++++++++++++ gitweb/gitweb.perl | 21 ++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletions(-) diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css index eb9fc38..c4aaf7c 100644 --- a/gitweb/gitweb.css +++ b/gitweb/gitweb.css @@ -211,6 +211,26 @@ td.selflink { padding-right: 0px; } +td.executable { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANAQMAAABIJXY/AAAABlBMVEX///+UAN7OszyBAAAAAXRSTlMAQObYZgAAACVJREFUCNdjYGBgYGdgMEhgUFBgYGJgcBKAIiAbKAIUB8oyMAAANBcCqbivEbgAAAAASUVORK5CYII=); + background-repeat: no-repeat; +} + +td.folder { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANAQMAAABIJXY/AAAABlBMVEX///+UAN7OszyBAAAAAXRSTlMAQObYZgAAAB1JREFUCNdjYGBgkGFgUGJgcPzA4CCABdV/ACoBAFTTBQ822ZerAAAAAElFTkSuQmCC); + background-repeat: no-repeat; +} + +td.regular { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANAQMAAABIJXY/AAAABlBMVEX///+UAN7OszyBAAAAAXRSTlMAQObYZgAAABtJREFUCNdjqD/A4JDA4BDA4FDB4MCBHdX/AACO5wbfUNnbqwAAAABJRU5ErkJggg==); + background-repeat: no-repeat; +} + +td.symlink { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANAQMAAABIJXY/AAAABlBMVEX///+UAN7OszyBAAAAAXRSTlMAQObYZgAAACVJREFUCNdjYGBg4G9gMEhgUFBgcBAAIQYYYlFg4ElgkG8AKgEARSsDX750+Y0AAAAASUVORK5CYII=); + background-repeat: no-repeat; +} + td.sha1 { font-family: monospace; } diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 7e4ec8d..8c54a5d 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -567,6 +567,23 @@ sub age_string { } # convert file mode in octal to symbolic file mode string +sub kind_class { + my ($type, $mode) = @_; + $mode = oct $mode; + if (S_ISDIR($mode & S_IFMT)) { + return 'folder'; + } elsif (S_ISLNK($mode)) { + return 'symlink'; + } elsif (S_ISREG($mode)) { + # git cares only about the executable bit + if ($mode & S_IXUSR) { + return 'executable'; + } else { + return 'regular'; + }; + } +} + sub mode_str { my $mode = oct shift; @@ -1651,7 +1668,9 @@ sub git_print_tree_entry { # the mode of the entry, list is the name of the entry, an href, # and link is the action links of the entry. - print "<td class=\"mode\">" . mode_str($t->{'mode'}) . "</td>\n"; + my $kind = kind_class($t->{'type'}, $t->{'mode'}); + print "<td class=\"$kind\"> </td>\n"; + if ($t->{'type'} eq "blob") { print "<td class=\"list\">" . $cgi->a({-href => href(action=>"blob", hash=>$t->{'hash'}, -- 1.4.2.2.g91c5 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html