54 lines
1.1 KiB
JavaScript
54 lines
1.1 KiB
JavaScript
class VrtsTestRunsPage extends window.HTMLElement {
|
|
constructor() {
|
|
super();
|
|
this.resolveElements();
|
|
}
|
|
|
|
resolveElements() {
|
|
this.$runsListTable = this.querySelector(
|
|
'form .vrts-test-runs-list-table'
|
|
);
|
|
}
|
|
|
|
connectedCallback() {
|
|
this.highlightNewTestRuns();
|
|
}
|
|
|
|
highlightNewTestRuns() {
|
|
const testRunIds = new Set(
|
|
JSON.parse(
|
|
window.localStorage.getItem( 'vrtsNewTestRuns' ) || '[]'
|
|
)
|
|
);
|
|
|
|
const rows = this.$runsListTable.querySelectorAll(
|
|
'tr[data-test-run-id]'
|
|
);
|
|
|
|
let staggerTimeout = 0;
|
|
|
|
rows.forEach( ( row ) => {
|
|
const testRunId = row.getAttribute( 'data-test-run-id' );
|
|
|
|
if ( row.getAttribute( 'data-test-run-new' ) === 'true' ) {
|
|
if ( ! testRunIds.has( testRunId ) ) {
|
|
testRunIds.add( testRunId );
|
|
setTimeout( () => {
|
|
row.classList.add( 'test-run-highlighted' );
|
|
}, staggerTimeout );
|
|
staggerTimeout += 200;
|
|
}
|
|
} else if ( testRunIds.has( testRunId ) ) {
|
|
testRunIds.delete( testRunId );
|
|
}
|
|
} );
|
|
|
|
window.localStorage.setItem(
|
|
'vrtsNewTestRuns',
|
|
JSON.stringify( [ ...testRunIds ] )
|
|
);
|
|
}
|
|
}
|
|
|
|
window.customElements.define( 'vrts-test-runs-page', VrtsTestRunsPage );
|