Spaces:
Running
Running
Upload index.html
Browse files- templates/index.html +51 -26
templates/index.html
CHANGED
@@ -139,12 +139,8 @@
|
|
139 |
|
140 |
if (!data || !data.members || !Array.isArray(data.members)) {
|
141 |
console.error("Invalid member data received:", data);
|
142 |
-
members = ["member1"
|
143 |
voiceData = [50, 50];
|
144 |
-
if (members.length > 1) {
|
145 |
-
members.push("その他");
|
146 |
-
voiceData.push(0);
|
147 |
-
}
|
148 |
updateChart();
|
149 |
return;
|
150 |
}
|
@@ -158,20 +154,25 @@
|
|
158 |
updateChart();
|
159 |
} catch (error) {
|
160 |
console.error("Failed to fetch member data:", error);
|
161 |
-
members = ["member1"
|
162 |
voiceData = [50, 50];
|
163 |
-
if (members.length > 1) {
|
164 |
-
members.push("その他");
|
165 |
-
voiceData.push(0);
|
166 |
-
}
|
167 |
updateChart();
|
168 |
}
|
169 |
}
|
170 |
|
171 |
function updateChart() {
|
172 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
speechChart.data.datasets[0].data = voiceData;
|
174 |
-
speechChart.data.datasets[0].backgroundColor = getMemberColors(members.length);
|
175 |
speechChart.update();
|
176 |
}
|
177 |
|
@@ -250,7 +251,8 @@
|
|
250 |
}
|
251 |
|
252 |
function getMemberColors(memberCount) {
|
253 |
-
|
|
|
254 |
return ["#4caf50", "#757575"];
|
255 |
} else {
|
256 |
let colors = [];
|
@@ -262,20 +264,43 @@
|
|
262 |
}
|
263 |
|
264 |
function updateChartData(newRate) {
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
} else {
|
273 |
-
|
274 |
-
|
275 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
276 |
}
|
277 |
-
|
278 |
-
speechChart.data.datasets[0].backgroundColor = getMemberColors(members.length);
|
279 |
speechChart.update();
|
280 |
}
|
281 |
|
@@ -293,4 +318,4 @@
|
|
293 |
}
|
294 |
</script>
|
295 |
</body>
|
296 |
-
</html>
|
|
|
139 |
|
140 |
if (!data || !data.members || !Array.isArray(data.members)) {
|
141 |
console.error("Invalid member data received:", data);
|
142 |
+
members = ["member1"];
|
143 |
voiceData = [50, 50];
|
|
|
|
|
|
|
|
|
144 |
updateChart();
|
145 |
return;
|
146 |
}
|
|
|
154 |
updateChart();
|
155 |
} catch (error) {
|
156 |
console.error("Failed to fetch member data:", error);
|
157 |
+
members = ["member1"];
|
158 |
voiceData = [50, 50];
|
|
|
|
|
|
|
|
|
159 |
updateChart();
|
160 |
}
|
161 |
}
|
162 |
|
163 |
function updateChart() {
|
164 |
+
// 一人モードの場合は、ユーザーとグレー(無音)の比率をチャートに表示
|
165 |
+
if (members.length === 1) {
|
166 |
+
const userName = members[0];
|
167 |
+
speechChart.data.labels = [userName, "無音"];
|
168 |
+
speechChart.data.datasets[0].backgroundColor = ["#4caf50", "#757575"];
|
169 |
+
} else {
|
170 |
+
// 複数メンバーの場合は通常通りの処理
|
171 |
+
speechChart.data.labels = members;
|
172 |
+
speechChart.data.datasets[0].backgroundColor = getMemberColors(members.length);
|
173 |
+
}
|
174 |
+
|
175 |
speechChart.data.datasets[0].data = voiceData;
|
|
|
176 |
speechChart.update();
|
177 |
}
|
178 |
|
|
|
251 |
}
|
252 |
|
253 |
function getMemberColors(memberCount) {
|
254 |
+
// 一人モードの場合は特別な処理をしない(updateChartで処理するため)
|
255 |
+
if (memberCount <= 1) {
|
256 |
return ["#4caf50", "#757575"];
|
257 |
} else {
|
258 |
let colors = [];
|
|
|
264 |
}
|
265 |
|
266 |
function updateChartData(newRate) {
|
267 |
+
// 一人モードの時の処理
|
268 |
+
if (members.length === 1) {
|
269 |
+
if (count_voice === 0) {
|
270 |
+
speechChart.data.datasets[0].data = [newRate, 100 - newRate];
|
271 |
+
before_rate = newRate;
|
272 |
+
} else if (count_voice === 1) {
|
273 |
+
let tmp_rate = (newRate + before_rate) / 2;
|
274 |
+
speechChart.data.datasets[0].data = [tmp_rate, 100 - tmp_rate];
|
275 |
+
before_rate = tmp_rate;
|
276 |
+
} else {
|
277 |
+
let tmp_rate = (newRate + before_rate * 2) / 3;
|
278 |
+
speechChart.data.datasets[0].data = [tmp_rate, 100 - tmp_rate];
|
279 |
+
before_rate = tmp_rate;
|
280 |
+
}
|
281 |
+
count_voice++;
|
282 |
+
|
283 |
+
// 一人モードでは常に緑色とグレーの組み合わせを使用
|
284 |
+
speechChart.data.labels = [members[0], "無音"];
|
285 |
+
speechChart.data.datasets[0].backgroundColor = ["#4caf50", "#757575"];
|
286 |
} else {
|
287 |
+
// 複数メンバーの場合は元の処理
|
288 |
+
if (count_voice === 0) {
|
289 |
+
speechChart.data.datasets[0].data = [newRate, 100 - newRate];
|
290 |
+
before_rate = newRate;
|
291 |
+
} else if (count_voice === 1) {
|
292 |
+
let tmp_rate = (newRate + before_rate) / 2;
|
293 |
+
speechChart.data.datasets[0].data = [tmp_rate, 100 - tmp_rate];
|
294 |
+
before_rate = tmp_rate;
|
295 |
+
} else {
|
296 |
+
let tmp_rate = (newRate + before_rate * 2) / 3;
|
297 |
+
speechChart.data.datasets[0].data = [tmp_rate, 100 - tmp_rate];
|
298 |
+
before_rate = tmp_rate;
|
299 |
+
}
|
300 |
+
count_voice++;
|
301 |
+
speechChart.data.datasets[0].backgroundColor = getMemberColors(members.length);
|
302 |
}
|
303 |
+
|
|
|
304 |
speechChart.update();
|
305 |
}
|
306 |
|
|
|
318 |
}
|
319 |
</script>
|
320 |
</body>
|
321 |
+
</html>
|