Refactor platform card layout to enhance UI structure and improve event handling
Browse files- index.html +15 -18
index.html
CHANGED
@@ -91,22 +91,14 @@
|
|
91 |
for (const platform of platforms) {
|
92 |
platformContainer.innerHTML +=
|
93 |
`<div class="card mb-2" data-platform="${platform.id}">
|
94 |
-
<div class="card-body d-flex align-items-center"
|
95 |
-
|
96 |
-
data-bs-toggle="collapse"
|
97 |
-
data-bs-target="#collapse-${platform.id}"
|
98 |
-
aria-expanded="false"
|
99 |
aria-controls="collapse-${platform.id}">
|
100 |
-
|
101 |
-
|
102 |
-
</span>
|
103 |
<div class="spinner-border text-primary d-none me-2"></div>
|
104 |
<span class="status"></span>
|
105 |
-
<i class="ms-2 d-none bi bi-info-circle-fill"
|
106 |
-
data-bs-toggle="collapse"
|
107 |
-
data-bs-target="#collapse-${platform.id}"
|
108 |
-
aria-expanded="false"
|
109 |
-
aria-controls="collapse-${platform.id}"></i>
|
110 |
</div>
|
111 |
<div class="collapse p-3 pt-0 fst-italic" id="collapse-${platform.id}">
|
112 |
<hr class="mt-0" />
|
@@ -137,6 +129,7 @@
|
|
137 |
|
138 |
card.classList.remove('bg-success-subtle', 'bg-danger-subtle', 'bg-warning-subtle');
|
139 |
spinner.classList.remove('d-none');
|
|
|
140 |
statusSpan.textContent = 'Checking...';
|
141 |
|
142 |
fetch(`/check/${platform.id}/${username}`)
|
@@ -160,14 +153,18 @@
|
|
160 |
collapse.innerHTML = error;
|
161 |
}).finally(() => {
|
162 |
spinner.classList.add('d-none');
|
163 |
-
|
164 |
-
i_toggle.classList.remove('d-none');
|
165 |
-
} else {
|
166 |
-
i_toggle.classList.add('d-none');
|
167 |
-
}
|
168 |
});
|
169 |
});
|
170 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
</script>
|
172 |
</body>
|
173 |
|
|
|
91 |
for (const platform of platforms) {
|
92 |
platformContainer.innerHTML +=
|
93 |
`<div class="card mb-2" data-platform="${platform.id}">
|
94 |
+
<div class="card-body d-flex align-items-center" data-bs-toggle="collapse"
|
95 |
+
data-bs-target="#collapse-${platform.id}" aria-expanded="false"
|
|
|
|
|
|
|
96 |
aria-controls="collapse-${platform.id}">
|
97 |
+
<img src="${platform.img}" alt="${platform.name}" class="platform-logo">
|
98 |
+
<span class="me-auto">${platform.name}</span>
|
|
|
99 |
<div class="spinner-border text-primary d-none me-2"></div>
|
100 |
<span class="status"></span>
|
101 |
+
<i class="ms-2 d-none bi bi-info-circle-fill"></i>
|
|
|
|
|
|
|
|
|
102 |
</div>
|
103 |
<div class="collapse p-3 pt-0 fst-italic" id="collapse-${platform.id}">
|
104 |
<hr class="mt-0" />
|
|
|
129 |
|
130 |
card.classList.remove('bg-success-subtle', 'bg-danger-subtle', 'bg-warning-subtle');
|
131 |
spinner.classList.remove('d-none');
|
132 |
+
i_toggle.classList.add('d-none');
|
133 |
statusSpan.textContent = 'Checking...';
|
134 |
|
135 |
fetch(`/check/${platform.id}/${username}`)
|
|
|
153 |
collapse.innerHTML = error;
|
154 |
}).finally(() => {
|
155 |
spinner.classList.add('d-none');
|
156 |
+
i_toggle.classList.remove('d-none');
|
|
|
|
|
|
|
|
|
157 |
});
|
158 |
});
|
159 |
});
|
160 |
+
|
161 |
+
platformContainer.addEventListener('click', e => {
|
162 |
+
if (e.target.closest(".status > a")){
|
163 |
+
e.stopPropagation();
|
164 |
+
e.preventDefault()
|
165 |
+
window.open(e.target.href, '_blank').focus();
|
166 |
+
}
|
167 |
+
});
|
168 |
</script>
|
169 |
</body>
|
170 |
|