Move blame information into diff model
And only render blame cells, if the blame column is explicitly enabled.
Stop using a `display:none` css rule for that.
This also means removing one usage of the ugly `querySelector` based
`findRow()` lookup.
Release-Notes: skip
Change-Id: I26a860a705238e1c979d455535b59049ee628952
diff --git a/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls-section_test.ts b/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls-section_test.ts
index 93db66e..772c7ff 100644
--- a/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls-section_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls-section_test.ts
@@ -46,14 +46,12 @@
left-type="contextControl"
right-type="contextControl"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="contextLineNum gr-diff"></td>
<td class="gr-diff"></td>
<td class="contextLineNum gr-diff"></td>
<td class="gr-diff"></td>
</tr>
<tr class="dividerRow gr-diff show-both">
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="dividerCell gr-diff" colspan="4">
<gr-context-controls class="gr-diff" showconfig="both">
</gr-context-controls>
@@ -64,7 +62,6 @@
left-type="contextControl"
right-type="contextControl"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="contextLineNum gr-diff"></td>
<td class="gr-diff"></td>
<td class="contextLineNum gr-diff"></td>
diff --git a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-row.ts b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-row.ts
index a0406be..46af242 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-row.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-row.ts
@@ -24,6 +24,7 @@
import './gr-diff-text';
import {
diffClasses,
+ findBlame,
GrDiffCommentThread,
isLongCommentRange,
isResponsive,
@@ -71,9 +72,6 @@
private right$ = new BehaviorSubject<GrDiffLine | undefined>(undefined);
@property({type: Object})
- blameInfo?: BlameInfo;
-
- @property({type: Object})
responsiveMode?: DiffResponsiveMode;
@property({type: Boolean})
@@ -104,6 +102,8 @@
@state() columns: ColumnsToShow = NO_COLUMNS;
+ @state() blameInfo?: BlameInfo;
+
/**
* Keeps track of whether diff layers have already been applied to the diff
* row. That happens after the DOM has been created in the `updated()`
@@ -154,6 +154,14 @@
() => this.getDiffModel().columnsToShow$,
columnsToShow => (this.columns = columnsToShow)
);
+ subscribe(
+ this,
+ () => this.getDiffModel().blameInfo$,
+ blameInfos => {
+ const line = this.left?.lineNumber(Side.LEFT);
+ this.blameInfo = findBlame(blameInfos, line);
+ }
+ );
}
override willUpdate(changedProperties: PropertyValues) {
diff --git a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-row_test.ts b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-row_test.ts
index 95b0357..9c6121d 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-row_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-row_test.ts
@@ -39,7 +39,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="1"></td>
<td class="gr-diff left lineNum" data-value="1">
<button
aria-label="1 unmodified"
@@ -109,7 +108,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="1"></td>
<td class="gr-diff left lineNum" data-value="1">
<button
aria-label="1 unmodified"
@@ -168,7 +166,6 @@
right-type="add"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="blank gr-diff left no-intraline-info">
<div class="contentText gr-diff" data-side="left"></div>
@@ -219,7 +216,6 @@
right-type="blank"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="1"></td>
<td class="gr-diff left lineNum" data-value="1">
<button
aria-label="1 removed"
diff --git a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-section_test.ts b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-section_test.ts
index e85e945..aab8e22 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-section_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff-builder/gr-diff-section_test.ts
@@ -51,7 +51,6 @@
<table>
<tbody>
<tr class="gr-diff moveControls movedOut">
- <td class="blame gr-diff"></td>
<td class="gr-diff moveControlsLineNumCol"></td>
<td class="gr-diff moveHeader">
<gr-range-header class="gr-diff" icon="move_item">
@@ -88,7 +87,6 @@
<table>
<tbody>
<tr class="gr-diff moveControls movedOut">
- <td class="blame gr-diff"></td>
<td class="gr-diff moveControlsLineNumCol"></td>
<td class="gr-diff moveControlsLineNumCol"></td>
<td class="gr-diff moveHeader">
@@ -143,7 +141,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="1"></td>
<td class="gr-diff left lineNum" data-value="1">
<button
aria-label="1 unmodified"
@@ -192,7 +189,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="1"></td>
<td class="gr-diff left lineNum" data-value="1">
<button
aria-label="1 unmodified"
@@ -241,7 +237,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="1"></td>
<td class="gr-diff left lineNum" data-value="1">
<button
aria-label="1 unmodified"
diff --git a/polygerrit-ui/app/embed/diff/gr-diff-model/gr-diff-model.ts b/polygerrit-ui/app/embed/diff/gr-diff-model/gr-diff-model.ts
index 4a0778b..51fa974 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff-model/gr-diff-model.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff-model/gr-diff-model.ts
@@ -38,7 +38,7 @@
import {GrDiffGroup, GrDiffGroupType} from '../gr-diff/gr-diff-group';
import {assert} from '../../../utils/common-util';
import {isImageDiff} from '../../../utils/diff-util';
-import {ImageInfo} from '../../../types/common';
+import {BlameInfo, ImageInfo} from '../../../types/common';
import {fire} from '../../../utils/event-util';
import {CommentRange} from '../../../api/rest-api';
@@ -56,6 +56,7 @@
showFullContext: FullContext;
errorMessage?: string;
layers: DiffLayer[];
+ blameInfo: BlameInfo[];
}
export interface ColumnsToShow {
@@ -101,6 +102,11 @@
diffState => diffState.path
);
+ readonly blameInfo$: Observable<BlameInfo[]> = select(
+ this.state$,
+ diffState => diffState.blameInfo
+ );
+
readonly renderPrefs$: Observable<RenderPreferences> = select(
this.state$,
diffState => diffState.renderPrefs
@@ -112,15 +118,14 @@
);
readonly columnsToShow$: Observable<ColumnsToShow> = select(
- this.renderPrefs$,
- renderPrefs => {
+ combineLatest([this.blameInfo$, this.renderPrefs$]),
+ ([blameInfo, renderPrefs]) => {
const hideLeft = !!renderPrefs.hide_left_side;
const showSign = !!renderPrefs.show_sign_col;
const unified = renderPrefs.view_mode === DiffViewMode.UNIFIED;
return {
- // TODO: Do not always render the blame column. Move this into renderPrefs.
- blame: true,
+ blame: blameInfo.length > 0,
// Hiding the left side in unified diff mode does not make a lot of sense and is not supported.
leftNumber: !hideLeft || unified,
leftSign: !hideLeft && showSign && !unified,
@@ -211,6 +216,7 @@
groups: [],
showFullContext: FullContext.UNDECIDED,
layers: [],
+ blameInfo: [],
});
this.subscriptions = [this.processDiff()];
}
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-element_test.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-element_test.ts
index be6b72e..8996be3 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-element_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-element_test.ts
@@ -60,7 +60,6 @@
<div class="diffContainer sideBySide">
<table id="diffTable">
<colgroup>
- <col class="blame gr-diff" />
<col class="gr-diff left" width="48" />
<col class="gr-diff left" />
<col class="gr-diff right" width="48" />
@@ -86,7 +85,6 @@
<div class="diffContainer unified">
<table id="diffTable">
<colgroup>
- <col class="blame gr-diff" />
<col class="gr-diff left" width="48" />
<col class="gr-diff right" width="48" />
<col class="gr-diff right" />
@@ -97,7 +95,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="LOST"></td>
<td class="gr-diff left lineNum" data-value="LOST"></td>
<td class="gr-diff lineNum right" data-value="LOST"></td>
<td
@@ -111,7 +108,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="FILE"></td>
<td class="gr-diff left lineNum" data-value="FILE">
<button
aria-label="Add file comment"
@@ -145,7 +141,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="1"></td>
<td class="gr-diff left lineNum" data-value="1">
<button
aria-label="1 unmodified"
@@ -181,7 +176,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="2"></td>
<td class="gr-diff left lineNum" data-value="2">
<button
aria-label="2 unmodified"
@@ -217,7 +211,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="3"></td>
<td class="gr-diff left lineNum" data-value="3">
<button
aria-label="3 unmodified"
@@ -253,7 +246,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="4"></td>
<td class="gr-diff left lineNum" data-value="4">
<button
aria-label="4 unmodified"
@@ -291,7 +283,6 @@
class="add diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="gr-diff lineNum right" data-value="5">
<button
@@ -317,7 +308,6 @@
class="add diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="gr-diff lineNum right" data-value="6">
<button
@@ -343,7 +333,6 @@
class="add diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="gr-diff lineNum right" data-value="7">
<button
@@ -371,7 +360,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="5"></td>
<td class="gr-diff left lineNum" data-value="5">
<button
aria-label="5 unmodified"
@@ -407,7 +395,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="6"></td>
<td class="gr-diff left lineNum" data-value="6">
<button
aria-label="6 unmodified"
@@ -443,7 +430,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="7"></td>
<td class="gr-diff left lineNum" data-value="7">
<button
aria-label="7 unmodified"
@@ -479,7 +465,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="8"></td>
<td class="gr-diff left lineNum" data-value="8">
<button
aria-label="8 unmodified"
@@ -515,7 +500,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="9"></td>
<td class="gr-diff left lineNum" data-value="9">
<button
aria-label="9 unmodified"
@@ -553,7 +537,6 @@
class="diff-row gr-diff remove unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="10"></td>
<td class="gr-diff left lineNum" data-value="10">
<button
aria-label="10 removed"
@@ -579,7 +562,6 @@
class="diff-row gr-diff remove unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="11"></td>
<td class="gr-diff left lineNum" data-value="11">
<button
aria-label="11 removed"
@@ -605,7 +587,6 @@
class="diff-row gr-diff remove unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="12"></td>
<td class="gr-diff left lineNum" data-value="12">
<button
aria-label="12 removed"
@@ -631,7 +612,6 @@
class="diff-row gr-diff remove unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="13"></td>
<td class="gr-diff left lineNum" data-value="13">
<button
aria-label="13 removed"
@@ -659,7 +639,6 @@
class="add diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="gr-diff lineNum right" data-value="13">
<button
@@ -685,7 +664,6 @@
class="add diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="gr-diff lineNum right" data-value="14">
<button
@@ -713,7 +691,6 @@
class="diff-row gr-diff remove unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="16"></td>
<td class="gr-diff left lineNum" data-value="16">
<button
aria-label="16 removed"
@@ -739,7 +716,6 @@
class="add diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="gr-diff lineNum right" data-value="15">
<button
@@ -767,7 +743,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="17"></td>
<td class="gr-diff left lineNum" data-value="17">
<button
aria-label="17 unmodified"
@@ -803,7 +778,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="18"></td>
<td class="gr-diff left lineNum" data-value="18">
<button
aria-label="18 unmodified"
@@ -839,7 +813,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="19"></td>
<td class="gr-diff left lineNum" data-value="19">
<button
aria-label="19 unmodified"
@@ -873,20 +846,17 @@
</tbody>
<tbody class="contextControl gr-diff section">
<tr class="above contextBackground gr-diff unified">
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="contextLineNum gr-diff"></td>
<td class="contextLineNum gr-diff"></td>
<td class="gr-diff"></td>
</tr>
<tr class="dividerRow gr-diff show-both">
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="dividerCell gr-diff" colspan="3">
<gr-context-controls class="gr-diff" showconfig="both">
</gr-context-controls>
</td>
</tr>
<tr class="below contextBackground gr-diff unified">
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="contextLineNum gr-diff"></td>
<td class="contextLineNum gr-diff"></td>
<td class="gr-diff"></td>
@@ -898,7 +868,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="38"></td>
<td class="gr-diff left lineNum" data-value="38">
<button
aria-label="38 unmodified"
@@ -934,7 +903,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="39"></td>
<td class="gr-diff left lineNum" data-value="39">
<button
aria-label="39 unmodified"
@@ -970,7 +938,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="40"></td>
<td class="gr-diff left lineNum" data-value="40">
<button
aria-label="40 unmodified"
@@ -1008,7 +975,6 @@
class="add diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="gr-diff lineNum right" data-value="40">
<button
@@ -1034,7 +1000,6 @@
class="add diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="gr-diff lineNum right" data-value="41">
<button
@@ -1060,7 +1025,6 @@
class="add diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="gr-diff lineNum right" data-value="42">
<button
@@ -1086,7 +1050,6 @@
class="add diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="gr-diff lineNum right" data-value="43">
<button
@@ -1114,7 +1077,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="41"></td>
<td class="gr-diff left lineNum" data-value="41">
<button
aria-label="41 unmodified"
@@ -1150,7 +1112,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="42"></td>
<td class="gr-diff left lineNum" data-value="42">
<button
aria-label="42 unmodified"
@@ -1186,7 +1147,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="43"></td>
<td class="gr-diff left lineNum" data-value="43">
<button
aria-label="43 unmodified"
@@ -1222,7 +1182,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="44"></td>
<td class="gr-diff left lineNum" data-value="44">
<button
aria-label="44 unmodified"
@@ -1258,7 +1217,6 @@
class="both diff-row gr-diff unified"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="45"></td>
<td class="gr-diff left lineNum" data-value="45">
<button
aria-label="45 unmodified"
@@ -1320,7 +1278,6 @@
<div class="diffContainer sideBySide">
<table id="diffTable">
<colgroup>
- <col class="blame gr-diff" />
<col class="gr-diff left" width="48" />
<col class="gr-diff left" />
<col class="gr-diff right" width="48" />
@@ -1334,7 +1291,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="LOST"></td>
<td class="gr-diff left lineNum" data-value="LOST"></td>
<td
class="both content gr-diff left lost no-intraline-info"
@@ -1353,7 +1309,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="FILE"></td>
<td class="gr-diff left lineNum" data-value="FILE">
<button
aria-label="Add file comment"
@@ -1392,7 +1347,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="1"></td>
<td class="gr-diff left lineNum" data-value="1">
<button
aria-label="1 unmodified"
@@ -1437,7 +1391,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="2"></td>
<td class="gr-diff left lineNum" data-value="2">
<button
aria-label="2 unmodified"
@@ -1482,7 +1435,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="3"></td>
<td class="gr-diff left lineNum" data-value="3">
<button
aria-label="3 unmodified"
@@ -1527,7 +1479,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="4"></td>
<td class="gr-diff left lineNum" data-value="4">
<button
aria-label="4 unmodified"
@@ -1574,7 +1525,6 @@
right-type="add"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="blank gr-diff left no-intraline-info">
<div class="contentText gr-diff" data-side="left"></div>
@@ -1605,7 +1555,6 @@
right-type="add"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="blank gr-diff left no-intraline-info">
<div class="contentText gr-diff" data-side="left"></div>
@@ -1636,7 +1585,6 @@
right-type="add"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="blank gr-diff left no-intraline-info">
<div class="contentText gr-diff" data-side="left"></div>
@@ -1669,7 +1617,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="5"></td>
<td class="gr-diff left lineNum" data-value="5">
<button
aria-label="5 unmodified"
@@ -1714,7 +1661,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="6"></td>
<td class="gr-diff left lineNum" data-value="6">
<button
aria-label="6 unmodified"
@@ -1759,7 +1705,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="7"></td>
<td class="gr-diff left lineNum" data-value="7">
<button
aria-label="7 unmodified"
@@ -1804,7 +1749,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="8"></td>
<td class="gr-diff left lineNum" data-value="8">
<button
aria-label="8 unmodified"
@@ -1849,7 +1793,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="9"></td>
<td class="gr-diff left lineNum" data-value="9">
<button
aria-label="9 unmodified"
@@ -1896,7 +1839,6 @@
right-type="blank"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="10"></td>
<td class="gr-diff left lineNum" data-value="10">
<button
aria-label="10 removed"
@@ -1927,7 +1869,6 @@
right-type="blank"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="11"></td>
<td class="gr-diff left lineNum" data-value="11">
<button
aria-label="11 removed"
@@ -1958,7 +1899,6 @@
right-type="blank"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="12"></td>
<td class="gr-diff left lineNum" data-value="12">
<button
aria-label="12 removed"
@@ -1989,7 +1929,6 @@
right-type="blank"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="13"></td>
<td class="gr-diff left lineNum" data-value="13">
<button
aria-label="13 removed"
@@ -2022,7 +1961,6 @@
right-type="add"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="14"></td>
<td class="gr-diff left lineNum" data-value="14">
<button
aria-label="14 removed"
@@ -2067,7 +2005,6 @@
right-type="add"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="15"></td>
<td class="gr-diff left lineNum" data-value="15">
<button
aria-label="15 removed"
@@ -2114,7 +2051,6 @@
right-type="add"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="16"></td>
<td class="gr-diff left lineNum" data-value="16">
<button
aria-label="16 removed"
@@ -2161,7 +2097,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="17"></td>
<td class="gr-diff left lineNum" data-value="17">
<button
aria-label="17 unmodified"
@@ -2206,7 +2141,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="18"></td>
<td class="gr-diff left lineNum" data-value="18">
<button
aria-label="18 unmodified"
@@ -2251,7 +2185,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="19"></td>
<td class="gr-diff left lineNum" data-value="19">
<button
aria-label="19 unmodified"
@@ -2296,14 +2229,12 @@
left-type="contextControl"
right-type="contextControl"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="contextLineNum gr-diff"></td>
<td class="gr-diff"></td>
<td class="contextLineNum gr-diff"></td>
<td class="gr-diff"></td>
</tr>
<tr class="dividerRow gr-diff show-both">
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="dividerCell gr-diff" colspan="4">
<gr-context-controls
class="gr-diff"
@@ -2316,7 +2247,6 @@
left-type="contextControl"
right-type="contextControl"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="contextLineNum gr-diff"></td>
<td class="gr-diff"></td>
<td class="contextLineNum gr-diff"></td>
@@ -2331,7 +2261,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="38"></td>
<td class="gr-diff left lineNum" data-value="38">
<button
aria-label="38 unmodified"
@@ -2376,7 +2305,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="39"></td>
<td class="gr-diff left lineNum" data-value="39">
<button
aria-label="39 unmodified"
@@ -2421,7 +2349,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="40"></td>
<td class="gr-diff left lineNum" data-value="40">
<button
aria-label="40 unmodified"
@@ -2468,7 +2395,6 @@
right-type="add"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="blank gr-diff left no-intraline-info">
<div class="contentText gr-diff" data-side="left"></div>
@@ -2499,7 +2425,6 @@
right-type="add"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="blank gr-diff left no-intraline-info">
<div class="contentText gr-diff" data-side="left"></div>
@@ -2530,7 +2455,6 @@
right-type="add"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="blank gr-diff left no-intraline-info">
<div class="contentText gr-diff" data-side="left"></div>
@@ -2561,7 +2485,6 @@
right-type="add"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="0"></td>
<td class="blankLineNum gr-diff left"></td>
<td class="blank gr-diff left no-intraline-info">
<div class="contentText gr-diff" data-side="left"></div>
@@ -2594,7 +2517,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="41"></td>
<td class="gr-diff left lineNum" data-value="41">
<button
aria-label="41 unmodified"
@@ -2639,7 +2561,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="42"></td>
<td class="gr-diff left lineNum" data-value="42">
<button
aria-label="42 unmodified"
@@ -2684,7 +2605,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="43"></td>
<td class="gr-diff left lineNum" data-value="43">
<button
aria-label="43 unmodified"
@@ -2729,7 +2649,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="44"></td>
<td class="gr-diff left lineNum" data-value="44">
<button
aria-label="44 unmodified"
@@ -2774,7 +2693,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="45"></td>
<td class="gr-diff left lineNum" data-value="45">
<button
aria-label="45 unmodified"
@@ -2859,7 +2777,6 @@
<gr-diff-row class="left-FILE right-FILE"> </gr-diff-row>
<table id="diffTable">
<colgroup>
- <col class="blame gr-diff" />
<col class="gr-diff left" width="48" />
<col class="gr-diff left" />
<col class="gr-diff right" width="48" />
@@ -2873,7 +2790,6 @@
right-type="both"
tabindex="-1"
>
- <td class="blame gr-diff" data-line-number="FILE"></td>
<td class="gr-diff left lineNum" data-value="FILE">
<button
aria-label="Add file comment"
@@ -2906,7 +2822,7 @@
</tbody>
<tbody class="binary-diff gr-diff">
<tr class="gr-diff">
- <td class="gr-diff" colspan="5">
+ <td class="gr-diff" colspan="4">
<span> Difference in binary files </span>
</td>
</tr>
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-styles.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-styles.ts
index 95b2f4e..65c20d8 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-styles.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-styles.ts
@@ -499,20 +499,10 @@
color: var(--blue-700);
}
- col.blame {
- display: none;
- }
td.blame {
- display: none;
padding: 0 var(--spacing-m);
white-space: pre;
}
- :host(.showBlame) col.blame {
- display: table-column;
- }
- :host(.showBlame) td.blame {
- display: table-cell;
- }
td.blame > span {
opacity: 0.6;
}
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts
index 219f16e..6dc292e 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts
@@ -3,7 +3,7 @@
* Copyright 2020 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
-import {CommentRange} from '../../../types/common';
+import {BlameInfo, CommentRange} from '../../../types/common';
import {Side, SpecialFilePath} from '../../../constants/constants';
import {
DiffContextExpandedExternalDetail,
@@ -462,3 +462,10 @@
groups: GrDiffGroup[];
numLines: number;
}
+
+export function findBlame(blameInfos: BlameInfo[], line?: LineNumber) {
+ if (typeof line !== 'number') return undefined;
+ return blameInfos.find(info =>
+ info.ranges.find(range => range.start <= line && line <= range.end)
+ );
+}
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
index a0b579a..4e9e7e5 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
@@ -392,7 +392,7 @@
this.layersChanged();
}
if (changedProperties.has('blame')) {
- this.blameChanged();
+ this.diffModel.updateState({blameInfo: this.blame ?? []});
}
if (changedProperties.has('renderPrefs')) {
this.renderPrefsChanged();
@@ -508,15 +508,6 @@
return !!this.highlights.selectedRange;
}
- private blameChanged() {
- this.setBlame(this.blame ?? []);
- if (this.blame) {
- this.classList.add('showBlame');
- } else {
- this.classList.remove('showBlame');
- }
- }
-
// Private but used in tests.
selectLine(el: Element) {
const lineNumber = Number(el.getAttribute('data-value'));
@@ -545,8 +536,6 @@
private prefsChanged() {
if (!this.prefs) return;
-
- this.blame = null;
this.updatePreferenceStyles();
if (!Number.isInteger(this.prefs.tab_size) || this.prefs.tab_size <= 0) {
@@ -963,21 +952,6 @@
.slice(startIndex, endIndex + 1)
.filter(group => group.lines.length > 0);
}
-
- /**
- * Set the blame information for the diff. For any already-rendered line,
- * re-render its blame cell content.
- */
- setBlame(blame: BlameInfo[]) {
- for (const blameInfo of blame) {
- for (const range of blameInfo.ranges) {
- for (let line = range.start; line <= range.end; line++) {
- const row = this.findRow(Side.LEFT, line);
- if (row) row.blameInfo = blameInfo;
- }
- }
- }
- }
}
function getLineNumberCellWidth(prefs: DiffPreferencesInfo) {
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff_test.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff_test.ts
index bceafa3..5fa4788 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff_test.ts
@@ -190,13 +190,13 @@
element.renderPrefs = {hide_left_side: true};
await element.updateComplete;
let cols = queryAll(element, 'col');
- assert.equal(cols.length, 3);
+ assert.equal(cols.length, 2);
diffModel.updateState({renderPrefs: {hide_left_side: false}});
element.renderPrefs = {hide_left_side: false};
await element.updateComplete;
cols = queryAll(element, 'col');
- assert.equal(cols.length, 5);
+ assert.equal(cols.length, 4);
});
suite('getCursorStops', () => {
@@ -333,32 +333,6 @@
});
});
- suite('blame', () => {
- test('unsetting', async () => {
- element.blame = [];
- const setBlameSpy = sinon.spy(element, 'setBlame');
- element.classList.add('showBlame');
- element.blame = null;
- await element.updateComplete;
- assert.isTrue(setBlameSpy.calledWithExactly([]));
- assert.isFalse(element.classList.contains('showBlame'));
- });
-
- test('setting', async () => {
- element.blame = [
- {
- author: 'test-author',
- time: 12345,
- commit_msg: '',
- id: 'commit id',
- ranges: [{start: 1, end: 2}],
- },
- ];
- await element.updateComplete;
- assert.isTrue(element.classList.contains('showBlame'));
- });
- });
-
const setupSampleDiff = async function (params: {
content: DiffContent[];
ignore_whitespace?: IgnoreWhitespaceType;