zitgit 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +0 -1
- data/README.md +11 -2
- data/lib/grit/status.rb +36 -0
- data/lib/zitgit.rb +22 -32
- data/lib/zitgit/helpers/git.rb +37 -0
- data/lib/zitgit/helpers/views.rb +17 -0
- data/lib/zitgit/version.rb +1 -1
- data/public/coffee/application.coffee +139 -24
- data/public/css/app.css +75 -15
- data/public/images/refresh.png +0 -0
- data/public/js/application.js +186 -19
- data/public/scss/app.scss +90 -10
- data/views/commits/detail.slim +14 -4
- data/views/commits/labels.slim +6 -6
- data/views/commits/list.slim +5 -4
- data/views/diffs/image.slim +11 -0
- data/views/diffs/large.slim +12 -0
- data/views/diffs/line.slim +5 -0
- data/views/diffs/list.slim +30 -21
- data/views/index.slim +6 -1
- data/views/layout.slim +1 -0
- data/views/refs/dropdown.slim +2 -1
- data/views/status/added.slim +10 -0
- data/views/status/changed.slim +21 -0
- data/views/status/deleted.slim +9 -0
- data/views/status/list.slim +30 -0
- data/zitgit.gemspec +1 -0
- metadata +30 -3
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -6,17 +6,26 @@ Simple sinatra-based web-interface to view git repository history
|
|
6
6
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
|
-
gem "grit", '~> 2.5.0', git: 'https://github.com/gitlabhq/grit.git', ref: '42297cdcee16284d2e4eff23d41377f52fc28b9d'
|
10
9
|
gem 'zitgit'
|
11
10
|
|
11
|
+
or install from GitHub:
|
12
|
+
|
13
|
+
gem 'zitgit', git: 'https://github.com/rsludge/zitgit.git'
|
14
|
+
|
12
15
|
And then execute:
|
13
16
|
|
14
17
|
$ bundle install
|
15
18
|
|
16
|
-
|
19
|
+
Or install with:
|
20
|
+
|
21
|
+
$ gem install zitgit
|
17
22
|
|
18
23
|
## Usage
|
19
24
|
|
20
25
|
Just run `zitgit` from git repo folder and view your repository history on http://localhost:5555
|
21
26
|
|
22
27
|
Or you can run it on different port with `zitgit -p <port_number>`
|
28
|
+
|
29
|
+
## Develop
|
30
|
+
|
31
|
+
Clone repository from GitHub and run `bundle install`. Launch guard to manage assets.
|
data/lib/grit/status.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
module Grit
|
2
|
+
class Status
|
3
|
+
class StatusFile
|
4
|
+
def diff_string
|
5
|
+
old = @base.object(self.sha_repo)
|
6
|
+
new = @base.object(self.sha_index)
|
7
|
+
data_old = old.content.split(/\n/).map! { |e| e.chomp }
|
8
|
+
data_new = new.content.split(/\n/).map! { |e| e.chomp }
|
9
|
+
diffs = Difference::LCS.diff(data_old, data_new)
|
10
|
+
file_length_difference = 0
|
11
|
+
lines = 3
|
12
|
+
oldhunk = hunk = nil
|
13
|
+
output = "--- a/#{self.path}\n+++ b/#{self.path}"
|
14
|
+
format = :unified
|
15
|
+
diffs.each do |piece|
|
16
|
+
begin
|
17
|
+
hunk = Difference::LCS::Hunk.new(data_old, data_new, piece, lines, file_length_difference)
|
18
|
+
file_length_difference = hunk.file_length_difference
|
19
|
+
next unless oldhunk
|
20
|
+
if lines > 0 && hunk.overlaps?(oldhunk)
|
21
|
+
hunk.unshift(oldhunk)
|
22
|
+
else
|
23
|
+
output << oldhunk.diff(format)
|
24
|
+
end
|
25
|
+
ensure
|
26
|
+
oldhunk = hunk
|
27
|
+
output << "\n"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
output << oldhunk.diff(format)
|
31
|
+
output << "\n"
|
32
|
+
output
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/zitgit.rb
CHANGED
@@ -1,54 +1,44 @@
|
|
1
|
-
require_relative
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
end
|
1
|
+
require_relative 'zitgit/version'
|
2
|
+
require_relative 'zitgit/helpers/views'
|
3
|
+
require_relative 'zitgit/helpers/git'
|
4
|
+
require_relative 'grit/status'
|
6
5
|
require 'sinatra/base'
|
7
6
|
require 'grit'
|
8
7
|
require 'slim'
|
8
|
+
require 'base64'
|
9
9
|
|
10
10
|
module Zitgit
|
11
11
|
class Zitgit < Sinatra::Base
|
12
12
|
configure do
|
13
13
|
set :root, File.expand_path('..', File.dirname(__FILE__))
|
14
14
|
end
|
15
|
-
|
16
|
-
helpers
|
17
|
-
def heads(commit)
|
18
|
-
repo = Grit::Repo.new('.')
|
19
|
-
repo.heads.select{|head| head.commit.id == commit.id}
|
20
|
-
end
|
21
|
-
|
22
|
-
def remotes(commit)
|
23
|
-
repo = Grit::Repo.new('.')
|
24
|
-
repo.remotes.select{|head| head.commit.id == commit.id}
|
25
|
-
end
|
26
|
-
|
27
|
-
def tags(commit)
|
28
|
-
repo = Grit::Repo.new('.')
|
29
|
-
repo.tags.select{|head| head.commit.id == commit.id}
|
30
|
-
end
|
31
|
-
end
|
15
|
+
helpers ViewsHelpers
|
16
|
+
helpers GitHelpers
|
32
17
|
|
33
18
|
get '/' do
|
34
|
-
repo = Grit::Repo.new('.')
|
35
|
-
@current_branch = Grit::Head.current(repo)
|
36
|
-
@commits = repo.commits(@current_branch.name, 200)
|
19
|
+
@repo = Grit::Repo.new('.')
|
20
|
+
@current_branch = Grit::Head.current(@repo)
|
21
|
+
@commits = @repo.commits(@current_branch.name, 200)
|
37
22
|
@last_commit = @commits[0]
|
38
|
-
@repo_name = File.basename(repo.working_dir)
|
39
|
-
@branches = repo.heads
|
40
|
-
@remotes = repo.remotes
|
41
|
-
@tags = repo.tags
|
42
|
-
@index = repo.index
|
23
|
+
@repo_name = File.basename(@repo.working_dir)
|
24
|
+
@branches = @repo.heads
|
25
|
+
@remotes = @repo.remotes
|
26
|
+
@tags = @repo.tags
|
27
|
+
@index = @repo.index
|
43
28
|
slim :index
|
44
29
|
end
|
45
30
|
|
46
31
|
get "/ref/:ref_name" do |ref_name|
|
47
|
-
repo = Grit::Repo.new('')
|
48
|
-
commits = repo.commits(ref_name, 200)
|
32
|
+
@repo = Grit::Repo.new('.')
|
33
|
+
commits = @repo.commits(ref_name, 200)
|
49
34
|
slim :branch, :locals => { commits: commits }, :layout => false
|
50
35
|
end
|
51
36
|
|
37
|
+
get "/status/" do
|
38
|
+
@repo = Grit::Repo.new('.')
|
39
|
+
slim :'status/list', :locals => {repo: @repo}, :layout => false
|
40
|
+
end
|
41
|
+
|
52
42
|
run! if app_file == $0
|
53
43
|
end
|
54
44
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module GitHelpers
|
2
|
+
def heads(commit)
|
3
|
+
repo = Grit::Repo.new('.')
|
4
|
+
repo.heads.select{|head| head.commit.id == commit.id}
|
5
|
+
end
|
6
|
+
|
7
|
+
def remotes(commit)
|
8
|
+
repo = Grit::Repo.new('.')
|
9
|
+
repo.remotes.select{|head| head.commit.id == commit.id}
|
10
|
+
end
|
11
|
+
|
12
|
+
def tags(commit)
|
13
|
+
repo = Grit::Repo.new('.')
|
14
|
+
repo.tags.select{|head| head.commit.id == commit.id}
|
15
|
+
end
|
16
|
+
|
17
|
+
def merge_commit?(commit)
|
18
|
+
commit.parents.count > 1
|
19
|
+
end
|
20
|
+
|
21
|
+
def large_commit?(commit)
|
22
|
+
commit.diffs.count > 20
|
23
|
+
end
|
24
|
+
|
25
|
+
def large_diff?(diff)
|
26
|
+
diff.diff.lines.count > 200
|
27
|
+
end
|
28
|
+
|
29
|
+
def is_head_ref(ref)
|
30
|
+
ref.name.split('/').index('HEAD')
|
31
|
+
end
|
32
|
+
|
33
|
+
def is_image(diff)
|
34
|
+
image_exts = ['.jpg', '.jpeg', '.png', '.gif']
|
35
|
+
image_exts.include?(File.extname(diff.a_path)) or image_exts.include?(File.extname(diff.b_path))
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ViewsHelpers
|
2
|
+
def strip_message(text, length)
|
3
|
+
text.length > length ? text[0, length] + '...' : text
|
4
|
+
end
|
5
|
+
|
6
|
+
def summ_line(line)
|
7
|
+
line.match(/@@\s+-([^\s]+)\s+\+([^\s]+)\s+@@/)
|
8
|
+
[Regexp.last_match(1), Regexp.last_match(2)].map{|item|
|
9
|
+
parts = item.split(',')
|
10
|
+
if parts.count == 2
|
11
|
+
parts[0] + '-' + (parts[0].to_i + parts[1].to_i).to_s
|
12
|
+
else
|
13
|
+
item
|
14
|
+
end
|
15
|
+
}.join(' -> ')
|
16
|
+
end
|
17
|
+
end
|
data/lib/zitgit/version.rb
CHANGED
@@ -1,43 +1,157 @@
|
|
1
1
|
ChangeCommit = ($commit)->
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
$target_commit = $commit.clone()
|
3
|
+
$('.commits-table tr.selected').removeClass 'selected'
|
4
|
+
$('.status').removeClass 'selected'
|
5
|
+
$commit.parents('tr').addClass 'selected'
|
6
|
+
$('.show_commit').html $target_commit
|
7
|
+
$('.show_commit .diffs li').niceScroll({
|
8
|
+
cursorcolor: '#ccc',
|
9
|
+
cursorwidth: 14,
|
10
|
+
})
|
11
|
+
UpdateDiffsWidth()
|
12
|
+
|
13
|
+
LoadStatus = ->
|
14
|
+
$('.commits-table tr.selected').removeClass 'selected'
|
15
|
+
$('.status').addClass 'selected'
|
16
|
+
$status_content = $('.status .status_content').clone()
|
17
|
+
$('.show_commit').html $status_content
|
18
|
+
$('.show_commit .diffs li').niceScroll({
|
19
|
+
cursorcolor: '#ccc',
|
20
|
+
cursorwidth: 14,
|
21
|
+
})
|
22
|
+
UpdateDiffsWidth()
|
7
23
|
|
8
24
|
SetHeight = ->
|
9
25
|
commit_offset = $('.show_commit').offset().top
|
10
26
|
$('.show_commit').height(window.innerHeight - commit_offset)
|
11
27
|
history_offset = $('.history').offset().top
|
12
28
|
$('.history').height(window.innerHeight - history_offset)
|
13
|
-
|
14
29
|
|
15
30
|
UpdateDiffsWidth = ->
|
16
|
-
|
17
|
-
|
31
|
+
$('.show_commit .diffs li').each (index)->
|
32
|
+
$(this).find('div').css('width', $(this)[0].scrollWidth)
|
18
33
|
|
19
|
-
$ ->
|
34
|
+
SelectDiff = ($diff) ->
|
35
|
+
$('.show_commit .diff-names .selected').removeClass('selected')
|
36
|
+
$diff.addClass('selected')
|
37
|
+
if $diff.hasClass('all')
|
38
|
+
$('.show_commit .diffs li').removeClass('hidden')
|
39
|
+
else
|
40
|
+
index = $diff.index() - 1
|
41
|
+
$('.show_commit .diffs li').addClass('hidden')
|
42
|
+
$('.show_commit .diffs li:eq('+index+')').removeClass('hidden')
|
43
|
+
|
44
|
+
ChangeBranch = ($link)->
|
45
|
+
timeout = setTimeout ->
|
46
|
+
$('.loader').show()
|
47
|
+
$('.main').hide()
|
48
|
+
, 1500
|
49
|
+
$.get $link.attr('href'), (data)->
|
50
|
+
clearTimeout(timeout)
|
51
|
+
$('.loader').hide()
|
52
|
+
$('.current_branch').text ''
|
53
|
+
if $link.parents('.ref_label').length
|
54
|
+
list_class = $link.parents('.ref_label').attr('data-dropdown-name')
|
55
|
+
$('.dropdown.'+list_class+'').parent('.has-dropdown').find('.current_branch').text $link.text()
|
56
|
+
else
|
57
|
+
$link.parents('.has-dropdown').find('.current_branch').text $link.text()
|
58
|
+
$('.commits-table').replaceWith data
|
59
|
+
$('.main').show()
|
60
|
+
ChangeCommit $('.commits-table tbody tr:first .commit')
|
61
|
+
|
62
|
+
SwitchBranch = ->
|
20
63
|
$('.top-bar .dropdown li a').on 'click', (e) ->
|
21
64
|
e.preventDefault()
|
22
|
-
$
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
65
|
+
ChangeBranch($(this))
|
66
|
+
$('body').on 'click', '.ref_label a', (e) ->
|
67
|
+
e.preventDefault()
|
68
|
+
ChangeBranch($(this))
|
69
|
+
|
70
|
+
RefreshStatus = ->
|
71
|
+
$.get '/status/', (data)->
|
72
|
+
$('.status').replaceWith data
|
73
|
+
|
74
|
+
RefreshContent = ->
|
75
|
+
RefreshStatus()
|
76
|
+
$('.current_branch').each (index)->
|
77
|
+
if $(this).text() != ''
|
78
|
+
branch_name = $(this).text()
|
79
|
+
$(this).parent('.has-dropdown').find('.dropdown li a').each (index)->
|
80
|
+
if $(this).text() == branch_name
|
81
|
+
ChangeBranch($(this))
|
82
|
+
return false
|
83
|
+
return false
|
84
|
+
|
85
|
+
SelectRow = ($row) ->
|
86
|
+
if $row.offset().top < $('.history').offset().top
|
87
|
+
current_scroll = $('.history').scrollTop()
|
88
|
+
$('.history').scrollTop(current_scroll + $row.offset().top - $('.history').offset().top)
|
89
|
+
offset = $row.offset().top - $('.history').offset().top
|
90
|
+
if offset + $row.outerHeight() > $('.history').outerHeight()
|
91
|
+
current_scroll = $('.history').scrollTop()
|
92
|
+
$('.history').scrollTop(current_scroll + offset + $row.outerHeight() - $('.history').outerHeight())
|
93
|
+
ChangeCommit $row.find('.commit')
|
94
|
+
|
95
|
+
TableArrows = ->
|
96
|
+
motions = [38, 40, 33, 34, 35, 36]
|
97
|
+
$('.history').on 'keydown', (e)->
|
98
|
+
if motions.indexOf(e.keyCode) == -1
|
99
|
+
return
|
100
|
+
e.preventDefault()
|
101
|
+
e.stopPropagation()
|
102
|
+
if e.keyCode == 38 #up
|
103
|
+
$next = $('.commits-table tr.selected').prev()
|
104
|
+
else if e.keyCode == 40 #down
|
105
|
+
$next = $('.commits-table tr.selected').next()
|
106
|
+
else if e.keyCode == 33 #page up
|
107
|
+
$next_rows = $('.commits-table tr.selected').prevAll()
|
108
|
+
if $next_rows.length >= 10
|
109
|
+
$next = $next_rows.eq(9)
|
110
|
+
else
|
111
|
+
$next = $next_rows.last()
|
112
|
+
else if e.keyCode == 34 #page down
|
113
|
+
$next_rows = $('.commits-table tr.selected').nextAll()
|
114
|
+
if $next_rows.length >= 10
|
115
|
+
$next = $next_rows.eq(9)
|
116
|
+
else
|
117
|
+
$next = $next_rows.last()
|
118
|
+
else if e.keyCode == 36 #home
|
119
|
+
$next = $('.commits-table tbody tr:first')
|
120
|
+
else if e.keyCode == 35 #end
|
121
|
+
$next = $('.commits-table tr:last')
|
122
|
+
if $next and $next.length > 0
|
123
|
+
SelectRow($next)
|
35
124
|
|
125
|
+
CommitArrows = ->
|
126
|
+
motions = [38, 40]
|
127
|
+
$('.show_commit').on 'keydown', (e)->
|
128
|
+
if motions.indexOf(e.keyCode) == -1
|
129
|
+
return
|
130
|
+
e.preventDefault()
|
131
|
+
e.stopPropagation()
|
132
|
+
if e.keyCode == 38 #up
|
133
|
+
$next = $('.show_commit .diff-names li.selected').prev()
|
134
|
+
else if e.keyCode == 40 #down
|
135
|
+
$next = $('.show_commit .diff-names li.selected').next()
|
136
|
+
if $next and $next.length > 0
|
137
|
+
SelectDiff($next)
|
138
|
+
|
139
|
+
$ ->
|
36
140
|
$('.history').on 'click', '.commits-table tr', (e)->
|
37
141
|
ChangeCommit $(this).find('.commit')
|
142
|
+
$('.history').on 'click', '.status-link', (e)->
|
143
|
+
e.preventDefault()
|
144
|
+
LoadStatus()
|
145
|
+
$('.refresh').on 'click', (e)->
|
146
|
+
e.preventDefault()
|
147
|
+
RefreshContent()
|
148
|
+
$('.show_commit').on 'click', '.diff-names li', (e)->
|
149
|
+
SelectDiff $(this)
|
38
150
|
|
39
|
-
|
151
|
+
SwitchBranch()
|
40
152
|
SetHeight()
|
153
|
+
TableArrows()
|
154
|
+
CommitArrows()
|
41
155
|
|
42
156
|
$(window).resize ->
|
43
157
|
SetHeight()
|
@@ -52,7 +166,8 @@ $ ->
|
|
52
166
|
railalign: 'left',
|
53
167
|
horizrailenabled: false
|
54
168
|
})
|
55
|
-
$('.diffs li').niceScroll({
|
169
|
+
$('.show_commit .diffs li').niceScroll({
|
56
170
|
cursorcolor: '#ccc',
|
57
171
|
cursorwidth: 14,
|
58
172
|
})
|
173
|
+
UpdateDiffsWidth()
|
data/public/css/app.css
CHANGED
@@ -3952,8 +3952,11 @@ a.th {
|
|
3952
3952
|
|
3953
3953
|
.top-bar {
|
3954
3954
|
z-index: 6; }
|
3955
|
+
.top-bar .refresh img {
|
3956
|
+
position: relative;
|
3957
|
+
top: 8px; }
|
3955
3958
|
|
3956
|
-
.
|
3959
|
+
.main .history.columns {
|
3957
3960
|
padding: 0 0 0 15px; }
|
3958
3961
|
|
3959
3962
|
.ref_label {
|
@@ -3962,15 +3965,26 @@ a.th {
|
|
3962
3965
|
border-radius: 12px;
|
3963
3966
|
padding: 2px 4px;
|
3964
3967
|
float: left; }
|
3968
|
+
.ref_label a {
|
3969
|
+
color: #000; }
|
3965
3970
|
|
3966
3971
|
.branch_label {
|
3967
|
-
background:
|
3972
|
+
background: #ffeeee;
|
3973
|
+
border-color: #581313; }
|
3974
|
+
.branch_label a {
|
3975
|
+
color: #581313; }
|
3968
3976
|
|
3969
3977
|
.remote_label {
|
3970
|
-
background:
|
3978
|
+
background: #ffe3e3;
|
3979
|
+
border-color: #b32222; }
|
3980
|
+
.remote_label a {
|
3981
|
+
color: #b32222; }
|
3971
3982
|
|
3972
3983
|
.tag_label {
|
3973
|
-
background: #
|
3984
|
+
background: #ffe6bc;
|
3985
|
+
border-color: #ff9800; }
|
3986
|
+
.tag_label a {
|
3987
|
+
color: #ff9800; }
|
3974
3988
|
|
3975
3989
|
.commits-table {
|
3976
3990
|
table-layout: fixed;
|
@@ -3988,9 +4002,16 @@ a.th {
|
|
3988
4002
|
.commits-table .badges .ref_label {
|
3989
4003
|
font-size: 12px;
|
3990
4004
|
border-radius: 8px;
|
3991
|
-
padding: 0 2px;
|
4005
|
+
padding: 0 2px;
|
4006
|
+
max-width: 134px;
|
4007
|
+
word-wrap: break-word;
|
4008
|
+
text-align: center; }
|
4009
|
+
.commits-table .badges .sha {
|
4010
|
+
font-size: 10px; }
|
3992
4011
|
.commits-table .author {
|
3993
4012
|
width: 180px; }
|
4013
|
+
.commits-table .message div {
|
4014
|
+
max-height: 56px; }
|
3994
4015
|
.commits-table tbody tr.selected {
|
3995
4016
|
background: #c3e2ff; }
|
3996
4017
|
.commits-table tbody tr.selected td {
|
@@ -4009,15 +4030,19 @@ a.th {
|
|
4009
4030
|
padding-top: 14px;
|
4010
4031
|
list-style-type: none; }
|
4011
4032
|
.diff-names li {
|
4012
|
-
margin-bottom: -
|
4033
|
+
margin-bottom: -4px;
|
4034
|
+
padding: 0 4px; }
|
4013
4035
|
.diff-names li .new_file {
|
4014
4036
|
color: green; }
|
4015
4037
|
.diff-names li .deleted {
|
4016
4038
|
color: red; }
|
4039
|
+
.diff-names .selected {
|
4040
|
+
background: #a7d5ff; }
|
4017
4041
|
|
4018
4042
|
.diffs {
|
4019
4043
|
background: #fff;
|
4020
|
-
list-style-type: none;
|
4044
|
+
list-style-type: none;
|
4045
|
+
font-family: monospace; }
|
4021
4046
|
.diffs li {
|
4022
4047
|
border-bottom: solid #ddd 8px;
|
4023
4048
|
overflow-x: scroll; }
|
@@ -4026,20 +4051,26 @@ a.th {
|
|
4026
4051
|
font-size: 14px; }
|
4027
4052
|
.diffs li .diff-first-line {
|
4028
4053
|
font-weight: bold;
|
4029
|
-
background: #
|
4030
|
-
border-bottom: 1px solid
|
4054
|
+
background: #eee;
|
4055
|
+
border-bottom: 1px solid #777; }
|
4031
4056
|
.diffs li .diff-summ-line {
|
4032
|
-
background: #
|
4057
|
+
background: #eee;
|
4033
4058
|
font-weight: bold; }
|
4034
4059
|
.diffs li .diff-added-line {
|
4035
4060
|
color: #096707;
|
4036
4061
|
background: #87f49f; }
|
4062
|
+
.diffs li .diff-added-line .trailing {
|
4063
|
+
background: #036420; }
|
4037
4064
|
.diffs li .diff-removed-line {
|
4038
4065
|
position: relative;
|
4039
4066
|
left: 0;
|
4040
4067
|
right: 0;
|
4041
4068
|
color: #742b2b;
|
4042
4069
|
background: #ffb1cb; }
|
4070
|
+
.diffs li .diff-removed-line .trailing {
|
4071
|
+
background: #c10000; }
|
4072
|
+
.diffs img {
|
4073
|
+
display: block; }
|
4043
4074
|
|
4044
4075
|
.hidden {
|
4045
4076
|
display: none; }
|
@@ -4049,19 +4080,30 @@ a.th {
|
|
4049
4080
|
background: #ddd;
|
4050
4081
|
border-radius: 16px; }
|
4051
4082
|
.show_commit .commit .author_info {
|
4052
|
-
/*width: 50%;*/
|
4053
4083
|
float: left;
|
4054
|
-
font-weight: bold;
|
4084
|
+
font-weight: bold;
|
4085
|
+
clear: left;
|
4086
|
+
color: #eee;
|
4087
|
+
text-shadow: 1px 1px 0px #333, 1px -1px 0px #333, -1px 1px 0px #333, -1px -1px 0px #333; }
|
4055
4088
|
.show_commit .commit .commit_sha {
|
4056
4089
|
margin-bottom: 14px;
|
4057
|
-
|
4058
|
-
|
4059
|
-
.show_commit .commit .
|
4090
|
+
clear: left;
|
4091
|
+
float: left; }
|
4092
|
+
.show_commit .commit .commit_date {
|
4093
|
+
margin-bottom: 14px;
|
4060
4094
|
float: right; }
|
4095
|
+
.show_commit .commit .stats {
|
4096
|
+
float: right;
|
4097
|
+
text-align: right; }
|
4061
4098
|
.show_commit .commit .stats .additions {
|
4062
4099
|
color: green; }
|
4063
4100
|
.show_commit .commit .stats .deletions {
|
4064
4101
|
color: red; }
|
4102
|
+
.show_commit .commit .stats .merge_commit {
|
4103
|
+
font-weight: bold;
|
4104
|
+
position: relative;
|
4105
|
+
top: 8px;
|
4106
|
+
color: #0300ff; }
|
4065
4107
|
|
4066
4108
|
.loader {
|
4067
4109
|
margin: 0 auto;
|
@@ -4069,3 +4111,21 @@ a.th {
|
|
4069
4111
|
height: 64px;
|
4070
4112
|
background: url("/images/loader.gif") no-repeat;
|
4071
4113
|
display: none; }
|
4114
|
+
|
4115
|
+
.status {
|
4116
|
+
margin-bottom: 8px;
|
4117
|
+
padding: 4px 0; }
|
4118
|
+
.status .status_content {
|
4119
|
+
display: none; }
|
4120
|
+
.status .status-link {
|
4121
|
+
display: block;
|
4122
|
+
font-weight: bold;
|
4123
|
+
color: #000;
|
4124
|
+
padding-left: 16px;
|
4125
|
+
font-size: 20px; }
|
4126
|
+
.status.selected {
|
4127
|
+
background: #c3e2ff;
|
4128
|
+
border-bottom: 2px solid #78c3ff;
|
4129
|
+
border-top: 2px solid #78c3ff;
|
4130
|
+
border-left: 1px solid #78c3ff;
|
4131
|
+
border-right: 1px solid #78c3ff; }
|