{{date:YYYY}}-Q{{date:Q}}
How do you rate your intentions in each area of life?
// we have to sort somehow, so we convert the names to numbers and sort
const s = function(i) {
return Number(i.replace('-Q', ''));
}
const allQuarters =
dv.pages('"journal/quarterly"')
.array()
.sort(function(a, b) {
return s(a.file.name) - s(b.file.name);
})
let currentIndex = allQuarters.findIndex((q) => q.file.name == dv.current().file.name);
const quarters = allQuarters.slice(currentIndex - 3, currentIndex+1);
let datasets = [];
let trans = function(color) {
return color.replace(', 1)', ', 0.5)');
}
let colors = [
'rgba(105,105,105, 1)',
'rgba(169,169,169, 1)',
'rgba(211,211,211, 1)',
]
const purple = 'rgba(139,108,239, 1)';
let highlight = '#fff';
if (document.body.classList.contains('theme-light')) {
colors.reverse();
highlight = '#000';
}
colors.push(purple);
for (let i in quarters) {
let quarter = quarters[i];
if (quarter.hasOwnProperty('roles')) {
let values = quarter.roles.map(o => Object.values(o)).flat()
datasets.unshift({
label: quarter.file.name,
data: values,
fill: true,
backgroundColor: trans(colors[i]),
borderColor: colors[i],
pointBackgroundColor: colors[i],
pointBorderColor: highlight,
pointHoverBackgroundColor: highlight,
pointHoverBorderColor: colors[i]
})
}
}
let data = dv.current().roles
let keys = data.map(o => Object.keys(o)).flat()
const chartData = {
type: 'radar',
data: {
labels: keys,
datasets: datasets
},
options: {
scales: {
r: {
suggestedMin: 0,
suggestedMax: 5
}
}
}
}
window.renderChart(chartData, this.container);
let check = function(bool) {
if (bool) { return "✅" };
return "⛔";
}
let quarter = parseInt(dv.current().file.name.match(/Q\d/)[0].replace('Q', ''));
let year = dv.current().file.name.match(/\d{4}/)[0];
let start = (quarter-1)*13+1
dv.table(
["", "Week", "Goal 1", "Goal 2"], dv.pages('"journal/weekly"')
.filter(function(f) {
let num = f.file.name.match(new RegExp(`${year}-W(\\d+)`));
if (!num) { return false; }
num = parseInt(num[1]);
return num >= start && num < start + 12;
})
.sort(w => w.file.name, 'asc')
.map(w => [(parseInt(w.file.name.match(new RegExp(`${year}-W(\\d+)`))[1]) - start)+1, w.file.link, check(w["Goal1"]), check(w["Goal2"])])
)