Spaces:
Sleeping
Sleeping
Update templates/index.html
Browse files- templates/index.html +39 -4
templates/index.html
CHANGED
@@ -93,13 +93,48 @@
|
|
93 |
challengesTitle.style.marginTop = '10px';
|
94 |
challengesTitle.textContent = 'Challenges:';
|
95 |
|
96 |
-
const challengesList = document.createElement('
|
97 |
challengesList.className = 'key-issue-challenges';
|
98 |
|
99 |
issue.challenges.forEach(challenge => {
|
100 |
-
const
|
101 |
-
|
102 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
});
|
104 |
|
105 |
const impactTitle = document.createElement('div');
|
|
|
93 |
challengesTitle.style.marginTop = '10px';
|
94 |
challengesTitle.textContent = 'Challenges:';
|
95 |
|
96 |
+
const challengesList = document.createElement('div');
|
97 |
challengesList.className = 'key-issue-challenges';
|
98 |
|
99 |
issue.challenges.forEach(challenge => {
|
100 |
+
const challengeTag = document.createElement('div');
|
101 |
+
challengeTag.className = 'challenge-tag';
|
102 |
+
challengeTag.textContent = challenge;
|
103 |
+
|
104 |
+
// Add click handler to toggle selection
|
105 |
+
challengeTag.addEventListener('click', function(e) {
|
106 |
+
e.stopPropagation(); // Prevent triggering parent card click
|
107 |
+
this.classList.toggle('selected');
|
108 |
+
|
109 |
+
// Update selected challenges data
|
110 |
+
const selectedChallenges = JSON.parse(issueCard.dataset.selectedChallenges || '[]');
|
111 |
+
const challengeText = this.textContent;
|
112 |
+
|
113 |
+
if (this.classList.contains('selected')) {
|
114 |
+
// Add challenge to selected list if not already there
|
115 |
+
if (!selectedChallenges.includes(challengeText)) {
|
116 |
+
selectedChallenges.push(challengeText);
|
117 |
+
}
|
118 |
+
} else {
|
119 |
+
// Remove challenge from selected list
|
120 |
+
const index = selectedChallenges.indexOf(challengeText);
|
121 |
+
if (index !== -1) {
|
122 |
+
selectedChallenges.splice(index, 1);
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
// Update dataset
|
127 |
+
issueCard.dataset.selectedChallenges = JSON.stringify(selectedChallenges);
|
128 |
+
|
129 |
+
// Update card selected state based on whether any challenges are selected
|
130 |
+
if (selectedChallenges.length > 0) {
|
131 |
+
issueCard.classList.add('selected');
|
132 |
+
} else {
|
133 |
+
issueCard.classList.remove('selected');
|
134 |
+
}
|
135 |
+
});
|
136 |
+
|
137 |
+
challengesList.appendChild(challengeTag);
|
138 |
});
|
139 |
|
140 |
const impactTitle = document.createElement('div');
|