-
Notifications
You must be signed in to change notification settings - Fork 41
fix PDF rendering issue #70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -31,7 +31,7 @@ const loadStylesheet = function (link) { | |
document.getElementsByTagName('head')[0].appendChild(linkElement); | ||
}; | ||
|
||
const buildReportTable = function ( | ||
const buildReportTable = async function ( | ||
config, | ||
dataTable, | ||
updateColumnOrder, | ||
|
@@ -42,7 +42,7 @@ const buildReportTable = function ( | |
const chartCentreX = bounds.x + bounds.width / 2; | ||
const chartCentreY = bounds.y + bounds.height / 2; | ||
|
||
removeStyles().then(() => { | ||
await removeStyles().then(() => { | ||
if ( | ||
typeof config.customTheme !== 'undefined' && | ||
config.customTheme && | ||
|
@@ -228,17 +228,17 @@ const buildReportTable = function ( | |
.style('font-size', config.headerFontSize + 'px') | ||
.attr('draggable', true) | ||
.call(drag) | ||
.on('mouseover', function(cell) { | ||
.on('mouseover', function (cell) { | ||
d3.select('#tooltip') | ||
.style('left', d3.event.x + 'px') | ||
.style('top', d3.event.y + 'px') | ||
.html(cell.label); | ||
.style('left', d3.event.x + 'px') | ||
.style('top', d3.event.y + 'px') | ||
.html(cell.label); | ||
d3.select('#tooltip').classed('hidden', false); | ||
return dropTarget = cell | ||
return (dropTarget = cell); | ||
}) | ||
.on('mouseout', function(cell) { | ||
.on('mouseout', function (cell) { | ||
d3.select('#tooltip').classed('hidden', true); | ||
return dropTarget = null | ||
return (dropTarget = null); | ||
}); | ||
|
||
var table_rows = table | ||
|
@@ -527,7 +527,7 @@ const buildReportTable = function ( | |
); | ||
}; | ||
|
||
renderTable().then(() => { | ||
await renderTable().then(() => { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The await renderTable(); There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The animate custom theme should NOT be used if the visualization is rendered. Thats a larger change |
||
document.getElementById('reportTable').classList.add('reveal'); | ||
if (config.customTheme === 'animate') { | ||
document.getElementById('visSvg').classList.remove('hidden'); | ||
|
@@ -639,12 +639,17 @@ looker.plugins.visualizations.add({ | |
// console.log(config) | ||
var dataTable = new VisPluginTableModel(data, queryResponse, config); | ||
this.trigger('registerOptions', dataTable.getConfigOptions()); | ||
buildReportTable(config, dataTable, updateColumnOrder, element); | ||
|
||
// DEBUG OUTPUT AND DONE | ||
// console.log('dataTable', dataTable) | ||
// console.log('container', document.getElementById('visContainer').parentNode) | ||
buildReportTable(config, dataTable, updateColumnOrder, element) | ||
.then(() => { | ||
// DEBUG OUTPUT AND DONE | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are you intending to keep these comments in the code? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, it appears to be to aid debubugging |
||
// console.log('dataTable', dataTable) | ||
// console.log('container', document.getElementById('visContainer').parentNode) | ||
|
||
done(); | ||
done(); | ||
}) | ||
.catch(error => { | ||
console.error(error); | ||
done(); | ||
}); | ||
Comment on lines
+642
to
+653
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. To avoid repeating the buildReportTable(config, dataTable, updateColumnOrder, element)
.then(() => {
// DEBUG OUTPUT AND DONE
// console.log('dataTable', dataTable)
// console.log('container', document.getElementById('visContainer').parentNode)
})
.catch(error => {
console.error(error);
})
.finally(() => {
done();
}); Style Guide ReferencesFootnotesThere was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's a pretty good suggestion There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I thought about it but I could not be arsed to do it |
||
}, | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using
await
with.then()
is an anti-pattern1 as it mixes two different asynchronous handling styles. SincebuildReportTable
is anasync
function, it would be more idiomatic and readable to useawait
directly.Style Guide References
Footnotes
Avoid mixing
await
with.then()
for asynchronous operations. (link) ↩There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed but I did not want to refactor that much code. I'm happy to let the content team do more work on this