Feat: clickable graphs

This commit is contained in:
Sallu9007
2025-05-13 18:27:52 +05:30
parent 4e308df660
commit 124e629f4a
2 changed files with 47 additions and 5 deletions

View File

@@ -90,6 +90,18 @@
if (window.comparisonChartInstance) {
window.comparisonChartInstance.destroy();
}
// Map each bar to its corresponding page
const modelPages = [
'ActivitiesAttendedResponses',
'ActivitiesOrganisedResponses',
'BooksPublishedResponses',
'ExternalEngagementResponses',
'IvOrganisedResponses',
'OnlineCoursesResponses',
'PatentsResponses',
'PublicationsResponses'
];
const barLinks = modelPages.map(page => `/admin/${page}`);
window.comparisonChartInstance = new Chart(ctx, {
type: 'bar',
data: {
@@ -152,6 +164,16 @@
y: {
beginAtZero: true
}
},
onClick: function(evt, elements) {
if (elements.length > 0) {
const idx = elements[0].index;
const departmentId = departmentSelector.value;
// Only redirect if the bar index is within the modelPages range
if (idx < barLinks.length) {
window.location.href = `${barLinks[idx]}?department_id=${departmentId}`;
}
}
}
}
});
@@ -192,8 +214,13 @@
if (window.contributionChartInstance) {
window.contributionChartInstance.destroy();
}
// Define bar links for each label (customize as needed)
const barLinks = data.labels.map((label, idx) => {
// Example: redirect to /admin/contribution/{id} (replace with your actual route/logic)
return `/admin/contribution/${data.ids ? data.ids[idx] : idx+1}`;
});
window.contributionChartInstance = new Chart(ctx, {
type: 'bar', // Changed to bar chart
type: 'bar',
data: {
labels: data.labels,
datasets: [{
@@ -258,6 +285,12 @@
y: {
beginAtZero: true
}
},
onClick: function(evt, elements) {
if (elements.length > 0) {
const idx = elements[0].index;
window.location.href = barLinks[idx];
}
}
}
});