Spaces:
Running
Running
| (function (root) { | |
| "use strict"; | |
| const FINGERS = ["index", "middle", "ring"]; | |
| function present(value) { | |
| return value !== null && value !== undefined && value !== ""; | |
| } | |
| function summary(row) { | |
| const recommendation = row && row.session_recommendation; | |
| if (!recommendation || typeof recommendation !== "object" || Array.isArray(recommendation)) { | |
| return null; | |
| } | |
| const perFinger = {}; | |
| const storedPerFinger = recommendation.per_finger; | |
| if (storedPerFinger && typeof storedPerFinger === "object") { | |
| FINGERS.forEach((finger) => { | |
| const item = storedPerFinger[finger]; | |
| if (item && item.status === "ok" && present(item.best_match)) { | |
| perFinger[finger] = item.best_match; | |
| } | |
| }); | |
| } | |
| const sessionId = present(row.session_id) | |
| ? String(row.session_id) | |
| : (present(recommendation.session_id) ? String(recommendation.session_id) : ""); | |
| return { | |
| overallSize: present(recommendation.overall_best_size) | |
| ? recommendation.overall_best_size | |
| : null, | |
| handedness: present(recommendation.handedness) ? recommendation.handedness : "", | |
| successfulShots: present(recommendation.successful_shots) | |
| ? recommendation.successful_shots | |
| : null, | |
| attemptIndex: present(row.session_attempt_index) | |
| ? row.session_attempt_index | |
| : (present(recommendation.attempt_index) ? recommendation.attempt_index : null), | |
| sessionId, | |
| shortSessionId: sessionId ? sessionId.slice(0, 8) : "", | |
| perFinger, | |
| }; | |
| } | |
| root.AdminSession = { summary }; | |
| }(window)); | |