Skip to content

Commit 7d22eb8

Browse files
committed
feat(matrix): allow matrix columns to be sorted
1 parent d81f129 commit 7d22eb8

File tree

3 files changed

+55
-6
lines changed

3 files changed

+55
-6
lines changed

lib/pact_broker/api/pact_broker_urls.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def new_verification_url pact, number, base_url
7676
].join('/')
7777
end
7878

79-
def verification_url verification, base_url
79+
def verification_url verification, base_url = ''
8080
[ base_url, 'pacts',
8181
'provider', url_encode(verification.provider_name),
8282
'consumer', url_encode(verification.consumer_name),

lib/pact_broker/ui/view_models/matrix_line.rb

+37
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,51 @@ def initialize line
1313
@line = line
1414
end
1515

16+
def provider_name
17+
@line[:provider_name]
18+
end
19+
20+
def consumer_name
21+
@line[:consumer_name]
22+
end
23+
24+
def pact_version_sha
25+
@line[:pact_version_sha]
26+
end
27+
28+
# verification number
29+
def number
30+
@line[:number]
31+
end
32+
1633
def consumer_version_number
1734
@line[:consumer_version_number]
1835
end
1936

37+
def consumer_version_number_url
38+
pact_url_from_params('', @line)
39+
end
40+
41+
def consumer_version_order
42+
@line[:consumer_version_order]
43+
end
44+
2045
def provider_version_number
2146
@line[:provider_version]
2247
end
2348

49+
def provider_version_number_url
50+
hal_browser_url(verification_url(self))
51+
end
52+
53+
def provider_version_order
54+
if @line[:execution_date]
55+
@line[:execution_date].to_time.to_i
56+
else
57+
0
58+
end
59+
end
60+
2461
def verification_status
2562
case @line[:success]
2663
when true then "Verified"

lib/pact_broker/ui/views/matrix/show.haml

+17-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
.container
99
%h1.page-header
1010
= title
11-
%table.table.table-bordered.table-striped{id: 'relationships'}
11+
%table.table.table-bordered.table-striped{id: 'matrix'}
1212
%thead
1313
%th.consumer
1414
= "#{consumer_name} version"
@@ -18,13 +18,25 @@
1818
%span.glyphicon.glyphicon-sort.sort
1919
%th.verification-result
2020
Verification
21+
%span.glyphicon.glyphicon-sort.sort
2122
%tbody
2223
- lines.each do | line |
2324
%tr
24-
%td.consumer-version
25-
= line.consumer_version_number
26-
%td.provider
27-
= line.provider_version_number
25+
%td.consumer-version{'data-sort-value' => line.consumer_version_order}
26+
%a{href: line.consumer_version_number_url}
27+
= line.consumer_version_number
28+
%td.provider{'data-sort-value' => line.provider_version_order}
29+
%a{href: line.provider_version_number_url}
30+
= line.provider_version_number
2831
%td.verification-result{class: line.verification_status_class}
2932
= line.verification_status
3033

34+
:javascript
35+
$(function(){
36+
$("#matrix").tablesorter({
37+
textExtraction : function(node, table, cellIndex){
38+
n = $(node);
39+
return n.attr('data-sort-value') || n.text();
40+
}
41+
});
42+
});

0 commit comments

Comments
 (0)