Skip to content

Commit 99b36d5

Browse files
committed
feat(matrix ui): highlight rows with the same consumer/provider/consumer version/provider version
1 parent 9e5ea8b commit 99b36d5

File tree

3 files changed

+32
-12
lines changed

3 files changed

+32
-12
lines changed

lib/pact_broker/ui/view_models/matrix_line.rb

+8
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,14 @@ def pact_revision_number
5050
@line.pact_revision_number
5151
end
5252

53+
def consumer_version_id
54+
@line.consumer_version_id
55+
end
56+
57+
def provider_version_id
58+
@line.provider_version_id
59+
end
60+
5361
def consumer_version_number
5462
@line.consumer_version_number
5563
end

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,10 @@
9999
%tbody
100100
- lines.each do | line |
101101
%tr
102-
%td.consumer{'data-sort-value' => line.consumer_name}
102+
%td.consumer{'data-sort-value' => line.consumer_name, 'data-consumer-name' => line.consumer_name}
103103
%a{href: line.consumer_name_url}
104104
= line.consumer_name
105-
%td.consumer-version{'data-sort-value' => line.consumer_version_order}
105+
%td.consumer-version{'data-sort-value' => line.consumer_version_order, 'data-consumer-version-id' => line.consumer_version_id}
106106
%div.clippable
107107
%a{href: line.consumer_version_number_url}
108108
= line.display_consumer_version_number
@@ -126,10 +126,10 @@
126126
- else
127127
= line.pact_publication_date
128128

129-
%td.provider{'data-sort-value' => line.provider_name}
129+
%td.provider{'data-sort-value' => line.provider_name, 'data-provider-name' => line.provider_name }
130130
%a{href: line.provider_name_url}
131131
= line.provider_name
132-
%td.provider-version{'data-sort-value' => line.provider_version_order}
132+
%td.provider-version{'data-sort-value' => line.provider_version_order, 'data-provider-version-id' => line.provider_version_id }
133133
%div.clippable
134134
%a{href: line.provider_version_number_url}
135135
= line.display_provider_version_number

public/javascripts/matrix.js

+20-8
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,12 @@ function disableFieldsThatShouldNotBeSubmitted() {
5353
$('.version-selectorizor').prop('disabled', 'disabled');
5454
}
5555

56-
function highlightPactPublicationsWithSameContent(td) {
57-
const pactVersionSha = $(td).data('pact-version-sha');
58-
$('*[data-pact-version-sha="' + pactVersionSha +'"]').addClass('bg-info');
56+
function highlightPactPublicationsWithSameData(td, field) {
57+
const value = $(td).data(field);
58+
$('*[data-' + field + '="' + value +'"]').addClass('bg-info');
5959
}
6060

61-
function unHighlightPactPublicationsWithSameContent(td, event) {
61+
function unHighlightPactPublicationsWithSameData(td, event, field) {
6262
var destinationElement = $(event.toElement || event.relatedTarget);
6363
// Have to use mouseout instead of mouseleave, because the tooltip is a child
6464
// of the td, and the mouseleave will consider that hovering over the tooltip
@@ -68,8 +68,8 @@ function unHighlightPactPublicationsWithSameContent(td, event) {
6868
// The tooltip needs to be a child of the td so that we can style the one showing
6969
// the SHA so that it's wide enough to fit the SHA in.
7070
if (!$(td).find('a').is(destinationElement)) {
71-
const pactVersionSha = $(td).data('pact-version-sha');
72-
$('*[data-pact-version-sha="' + pactVersionSha +'"]').removeClass('bg-info');
71+
const value = $(td).data(field);
72+
$('*[data-' + field + '="' + value +'"]').removeClass('bg-info');
7373
}
7474
}
7575

@@ -90,6 +90,18 @@ $(document).ready(function(){
9090

9191
initializeClipper('.clippable');
9292

93-
$('td.pact-published').mouseover(function(event) { highlightPactPublicationsWithSameContent(this) });
94-
$('td.pact-published').mouseout(function(event) { unHighlightPactPublicationsWithSameContent(this, event)});
93+
$('td.consumer').mouseover(function(event) { highlightPactPublicationsWithSameData(this, 'consumer-name') });
94+
$('td.consumer').mouseout(function(event) { unHighlightPactPublicationsWithSameData(this, event, 'consumer-name') });
95+
96+
$('td.consumer-version').mouseover(function(event) { highlightPactPublicationsWithSameData(this, 'consumer-version-id') });
97+
$('td.consumer-version').mouseout(function(event) { unHighlightPactPublicationsWithSameData(this, event, 'consumer-version-id') });
98+
99+
$('td.pact-published').mouseover(function(event) { highlightPactPublicationsWithSameData(this, 'pact-version-sha') });
100+
$('td.pact-published').mouseout(function(event) { unHighlightPactPublicationsWithSameData(this, event, 'pact-version-sha') });
101+
102+
$('td.provider').mouseover(function(event) { highlightPactPublicationsWithSameData(this, 'provider-name') });
103+
$('td.provider').mouseout(function(event) { unHighlightPactPublicationsWithSameData(this, event, 'provider-name') });
104+
105+
$('td.provider-version').mouseover(function(event) { highlightPactPublicationsWithSameData(this, 'provider-version-id') });
106+
$('td.provider-version').mouseout(function(event) { unHighlightPactPublicationsWithSameData(this, event, 'provider-version-id') });
95107
});

0 commit comments

Comments
 (0)