twigg-app 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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:
|