twigg-app 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/twigg-app/app/version.rb +1 -1
- data/views/authors/index.haml +20 -0
- data/views/authors/show.haml +12 -0
- data/views/gerrit/authors.haml +38 -0
- data/views/gerrit/index.haml +19 -0
- data/views/gerrit/tags.haml +25 -0
- data/views/pairs/index.haml +33 -0
- data/views/russian-novels/index.haml +9 -0
- data/views/shared/commit_list.haml +22 -0
- data/views/shared/commit_row.haml +19 -0
- data/views/shared/commit_set.haml +18 -0
- data/views/shared/day_links.haml +8 -0
- data/views/shared/progress.haml +2 -0
- data/views/teams/index.haml +20 -0
- data/views/teams/show.haml +12 -0
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fdfbf0ad8a9b1ec00aa15b6f7ca5e8723a8dea9
|
4
|
+
data.tar.gz: 1cafd53c94f68a438904efe2ea1eddf3a15c15e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3c0b18fbe63c0c8bf0f90b35baea9154dd04b1bb4f721a11dbd29f8d60472b74d773e90f1bd3768bddabaea8571c7f9151a911a8a8006278073b6632e9f3a04
|
7
|
+
data.tar.gz: 8d1bfe80372324f7fd7c95439dd9e4cc4d8327b47896d5573dc630641dcc07328197ca4eb8eec61e1fea0269ceb02d67c64b8a77b1890ec1c8037a394be43d06
|
@@ -0,0 +1,20 @@
|
|
1
|
+
- content_for :title do
|
2
|
+
Commit stats over past #{pluralize @days, 'day'}
|
3
|
+
%small
|
4
|
+
%span{day_links}
|
5
|
+
|
6
|
+
%h2= pluralize @commit_set.count, 'commit'
|
7
|
+
%table.table.table-striped.table-hover.table-bordered.sortable
|
8
|
+
%thead
|
9
|
+
%tr
|
10
|
+
%th{ data: { sort: 'int' } } Total commits
|
11
|
+
%th{ data: { sort: 'string-ins' } } Author
|
12
|
+
%th{ data: { sort: 'string-ins' } } Breakdown by project
|
13
|
+
%th
|
14
|
+
%tbody
|
15
|
+
- @commit_set.authors.each do |object|
|
16
|
+
= haml :'shared/commit_row',
|
17
|
+
locals: { author: object[:author],
|
18
|
+
author_href: author_path(object[:author]),
|
19
|
+
author_tooltip: object[:author],
|
20
|
+
commit_set: object[:commit_set] }
|
@@ -0,0 +1,38 @@
|
|
1
|
+
- content_for :title do
|
2
|
+
Author activity in Gerrit over past #{pluralize @days, 'day'}
|
3
|
+
%small
|
4
|
+
%span{day_links}
|
5
|
+
|
6
|
+
%table.table.table-hover.table-bordered.sortable
|
7
|
+
%thead
|
8
|
+
%tr
|
9
|
+
%th
|
10
|
+
%th.text-center{ colspan: 3 } Activity
|
11
|
+
%th.text-center{ colspan: 4 } Quality
|
12
|
+
%tr
|
13
|
+
%th{ data: { sort: 'string-ins' } } Author
|
14
|
+
%th{ data: { sort: 'int' } } Comments posted
|
15
|
+
%th{ data: { sort: 'int' } } Scores assigned
|
16
|
+
%th{ data: { sort: 'int' } } Changes pushed
|
17
|
+
%th{ data: { sort: 'int' } } Comments received
|
18
|
+
%th{ data: { sort: 'float' } } Comments / change
|
19
|
+
%th{ data: { sort: 'int' } } Revisions pushed
|
20
|
+
%th{ data: { sort: 'float' } } Revisions / change
|
21
|
+
%tbody
|
22
|
+
- @authors.each do |author, stats|
|
23
|
+
%tr
|
24
|
+
%td&= author
|
25
|
+
%td{ 'data-sort-value' => stats[:comments_posted] || 0 }
|
26
|
+
= number_with_delimiter(stats[:comments_posted])
|
27
|
+
%td{ 'data-sort-value' => stats[:scores_assigned] || 0 }
|
28
|
+
= number_with_delimiter(stats[:scores_assigned])
|
29
|
+
%td{ 'data-sort-value' => stats[:recently_active_changes] || 0 }
|
30
|
+
= number_with_delimiter(stats[:recently_active_changes])
|
31
|
+
%td{ 'data-sort-value' => stats[:comments_received] || 0 }
|
32
|
+
= number_with_delimiter(stats[:comments_received])
|
33
|
+
- comments_per_change = stats[:comments_received].to_i / stats[:recently_active_changes].to_f
|
34
|
+
%td{ 'data-sort-value' => (comments_per_change.nan? ? 0 : comments_per_change) }= '%.2f' % comments_per_change unless comments_per_change.nan?
|
35
|
+
%td{ 'data-sort-value' => stats[:revisions_pushed] || 0 }
|
36
|
+
= number_with_delimiter(stats[:revisions_pushed])
|
37
|
+
- revisions_per_change = stats[:revisions_pushed].to_i / stats[:recently_active_changes].to_f
|
38
|
+
%td{ 'data-sort-value' => (revisions_per_change.nan? ? 0 : revisions_per_change) }= '%.2f' % revisions_per_change unless revisions_per_change.nan?
|
@@ -0,0 +1,19 @@
|
|
1
|
+
- content_for :title do
|
2
|
+
Open changes in Gerrit
|
3
|
+
|
4
|
+
%h2= pluralize(@changes.count, 'open change')
|
5
|
+
%table.table.table-striped.table-hover.table-bordered
|
6
|
+
%thead
|
7
|
+
%tr
|
8
|
+
%th #
|
9
|
+
%th Subject
|
10
|
+
%th Author
|
11
|
+
%th Last modified
|
12
|
+
%tbody
|
13
|
+
- @changes.each do |change|
|
14
|
+
%tr
|
15
|
+
%td= change.change_id
|
16
|
+
%td
|
17
|
+
%a{ href: change.url }&= change.subject
|
18
|
+
%td&= change.full_name
|
19
|
+
%td= age(change.last_updated_on)
|
@@ -0,0 +1,25 @@
|
|
1
|
+
- content_for :title do
|
2
|
+
Tag use in Gerrit over past #{pluralize @days, 'day'}
|
3
|
+
%small
|
4
|
+
%span{day_links}
|
5
|
+
|
6
|
+
%section{ data: { view: 'Tags', authors: h(@authors.to_json) } }
|
7
|
+
%h2 Global tag use
|
8
|
+
#global-used= haml :'shared/progress'
|
9
|
+
|
10
|
+
%h2 Per-author tag use
|
11
|
+
- @authors.each do |author|
|
12
|
+
%h3&= author
|
13
|
+
%ul.nav.nav-tabs{ data: { tabs: 'tabs' } }
|
14
|
+
- if @stats[:from][author].any?
|
15
|
+
%li.active
|
16
|
+
%a{ href: "##{name_to_id author}-used", data: { toggle: 'tab' } } Used
|
17
|
+
- if @stats[:to][author].any?
|
18
|
+
%li{ class: ('active' unless @stats[:from][author].any?) }
|
19
|
+
%a{ href: "##{name_to_id author}-received", data: { toggle: 'tab' } } Received
|
20
|
+
|
21
|
+
.tab-content
|
22
|
+
- if @stats[:from][author].any?
|
23
|
+
.tab-pane.active{ id: "#{name_to_id author}-used" }
|
24
|
+
- if @stats[:to][author].any?
|
25
|
+
.tab-pane{ class: ('active' unless @stats[:from][author].any?), id: "#{name_to_id author}-received" }
|
@@ -0,0 +1,33 @@
|
|
1
|
+
- content_for :title do
|
2
|
+
Pairing stats over past #{pluralize @days, 'day'}
|
3
|
+
%small
|
4
|
+
%span{day_links}
|
5
|
+
|
6
|
+
%table.pairs.table.table-condensed.text-center
|
7
|
+
%thead
|
8
|
+
%tr
|
9
|
+
%td
|
10
|
+
- @pairs.authors.each do |pairee|
|
11
|
+
%th.text-center
|
12
|
+
%a{ href: author_path(pairee), data: { toggle: 'tooltip' }, title: pairee }
|
13
|
+
&= pairee.scan(/\b\w/).join
|
14
|
+
- @pairs.authors.each do |pairer|
|
15
|
+
%tr
|
16
|
+
%th.text-right
|
17
|
+
%a{ href: author_path(pairer), data: { toggle: 'tooltip' }, title: pairer }
|
18
|
+
&= pairer.scan(/\b\w/).join
|
19
|
+
- @pairs.authors.each do |pairee|
|
20
|
+
- solo = pairer == pairee
|
21
|
+
- alpha = @pairs[pairer][pairee].to_f / (solo ? @pairs.max_solo : @pairs.max_pair) * 0.5
|
22
|
+
- color = 'color: #f8f8ff;' if solo && alpha > 0.4
|
23
|
+
%td{ style: "background: rgba(0, #{solo ? 80 : 255}, #{solo ? 255 : 0}, #{alpha}); #{color}" }
|
24
|
+
- if @pairs[pairer][pairee] > 0
|
25
|
+
- if solo
|
26
|
+
%a{ href: author_path(pairee), data: { toggle: 'tooltip' }, title: pairee }
|
27
|
+
= number_with_delimiter @pairs[pairer][pairee]
|
28
|
+
- else
|
29
|
+
-# need inner container for tooltip, otherwise cell will resize on hover
|
30
|
+
.count{ data: { toggle: 'tooltip' }, title: "#{pairee} & #{pairer}" }
|
31
|
+
= number_with_delimiter @pairs[pairer][pairee]
|
32
|
+
- else
|
33
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
%table.table.table-hover.table-bordered.table-condensed.sortable
|
2
|
+
%tbody
|
3
|
+
- commit_set.commits.each do |commit|
|
4
|
+
%tr
|
5
|
+
%td +#{number_with_delimiter commit.stat[:additions]}
|
6
|
+
%td -#{number_with_delimiter commit.stat[:deletions]}
|
7
|
+
%td
|
8
|
+
%code
|
9
|
+
- if commit.link
|
10
|
+
%a{ href: commit.link, title: commit.commit }&= commit.subject
|
11
|
+
- else
|
12
|
+
&= commit.subject
|
13
|
+
%td
|
14
|
+
- if commit.repo.link
|
15
|
+
%a{ href: commit.repo.link }= commit.repo.name
|
16
|
+
- else
|
17
|
+
= commit.repo.name
|
18
|
+
%tr
|
19
|
+
%th +#{number_with_delimiter commit_set.additions}
|
20
|
+
%th -#{number_with_delimiter commit_set.deletions}
|
21
|
+
%th
|
22
|
+
%th
|
@@ -0,0 +1,19 @@
|
|
1
|
+
%tr
|
2
|
+
%td= number_with_delimiter(commit_set.count)
|
3
|
+
%td
|
4
|
+
%a{ href: author_href, data: { toggle: 'tooltip' }, title: author_tooltip }&= author
|
5
|
+
%td= breakdown(commit_set)
|
6
|
+
%td
|
7
|
+
%a{ data: { toggle: 'modal' }, href: '#' + name_to_id(author) + '-details' }
|
8
|
+
Details
|
9
|
+
.modal.fade{ id: name_to_id(author) + '-details', tabindex: '-1' }
|
10
|
+
.modal-dialog
|
11
|
+
.modal-content
|
12
|
+
.modal-header
|
13
|
+
%button(type='button' class='close' data-dismiss='modal' aria-hidden='true')
|
14
|
+
×
|
15
|
+
%h3 Details for #{author}
|
16
|
+
.modal-body
|
17
|
+
= haml :'shared/commit_list', locals: { commit_set: commit_set }
|
18
|
+
.modal-footer
|
19
|
+
%a(href='#' class='btn btn-default' data-dismiss='modal') Close
|
@@ -0,0 +1,18 @@
|
|
1
|
+
%h2
|
2
|
+
Past #{pluralize days, 'day'}
|
3
|
+
%small
|
4
|
+
%span{day_links}
|
5
|
+
|
6
|
+
%table.table.table-striped.table-hover.table-bordered
|
7
|
+
%tbody
|
8
|
+
%tr
|
9
|
+
%th Total commits
|
10
|
+
%td= number_with_delimiter(commit_set.count)
|
11
|
+
%tr
|
12
|
+
%th Breakdown by project
|
13
|
+
%td= breakdown(commit_set)
|
14
|
+
|
15
|
+
.bar-chart{ data: { view: 'CommitSetBarChart' } }= haml :'shared/progress'
|
16
|
+
|
17
|
+
%h2= pluralize commit_set.count, 'commit'
|
18
|
+
= haml :'shared/commit_list', locals: { commit_set: commit_set }
|
@@ -0,0 +1,20 @@
|
|
1
|
+
- content_for :title do
|
2
|
+
Commit stats over past #{pluralize @days, 'day'}
|
3
|
+
%small
|
4
|
+
%span{day_links}
|
5
|
+
|
6
|
+
%h2= pluralize @commit_set.count, 'commit'
|
7
|
+
%table.table.table-striped.table-hover.table-bordered.sortable
|
8
|
+
%thead
|
9
|
+
%tr
|
10
|
+
%th{ data: { sort: 'int' } } Total commits
|
11
|
+
%th{ data: { sort: 'string-ins' } } Team
|
12
|
+
%th{ data: { sort: 'string-ins' } } Breakdown by project
|
13
|
+
%th
|
14
|
+
%tbody
|
15
|
+
- @commit_set.teams.each do |object|
|
16
|
+
= haml :'shared/commit_row',
|
17
|
+
locals: { author: object[:author],
|
18
|
+
author_href: team_path(object[:author]),
|
19
|
+
author_tooltip: object[:authors].join(', '),
|
20
|
+
commit_set: object[:commit_set] }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twigg-app
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Causes Engineering
|
@@ -408,8 +408,22 @@ files:
|
|
408
408
|
- public/vendor/underscore/test/vendor/runner.js
|
409
409
|
- public/vendor/underscore/underscore-min.js
|
410
410
|
- public/vendor/underscore/underscore.js
|
411
|
+
- views/authors/index.haml
|
412
|
+
- views/authors/show.haml
|
411
413
|
- views/dashboard.haml
|
414
|
+
- views/gerrit/authors.haml
|
415
|
+
- views/gerrit/index.haml
|
416
|
+
- views/gerrit/tags.haml
|
412
417
|
- views/layout.haml
|
418
|
+
- views/pairs/index.haml
|
419
|
+
- views/russian-novels/index.haml
|
420
|
+
- views/shared/commit_list.haml
|
421
|
+
- views/shared/commit_row.haml
|
422
|
+
- views/shared/commit_set.haml
|
423
|
+
- views/shared/day_links.haml
|
424
|
+
- views/shared/progress.haml
|
425
|
+
- views/teams/index.haml
|
426
|
+
- views/teams/show.haml
|
413
427
|
- data/quips.yml
|
414
428
|
homepage: https://github.com/causes/twigg
|
415
429
|
licenses:
|