File size: 1,649 Bytes
a537c27
 
 
 
 
 
8679eba
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a537c27
8679eba
a537c27
8679eba
 
 
 
 
 
 
 
a537c27
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
function sparkProjectList() {
    apiGet('/spark/project_list')
        .then(data => {
            const body = document.getElementById('spark-body');
            body.innerHTML = '';

            if (data && Array.isArray(data.projects) && data.projects.length > 0) {
                data.projects.forEach(proj => {
                    const row = document.createElement('tr');

                    row.innerHTML = `
                        <td>${proj.project_name}</td>
                        <td>${proj.version}</td>
                        <td>${proj.enabled ? '🟒' : 'πŸ”΄'}</td>
                        <td>${getStatusIcon(proj.status)} ${proj.status}</td>
                        <td>${proj.last_accessed}</td>
                    `;
                    body.appendChild(row);
                });
            } else {
                const row = document.createElement('tr');
                row.innerHTML = `<td colspan="5" class="text-danger">⚠️ Failed to load Spark project list or no projects available.</td>`;
                body.appendChild(row);
            }
        })
        .catch(err => {
            console.error(err);
            const body = document.getElementById('spark-body');
            body.innerHTML = '';
            const row = document.createElement('tr');
            row.innerHTML = `<td colspan="5" class="text-danger">❌ Error connecting to Spark service.</td>`;
            body.appendChild(row);
        });
}

function getStatusIcon(status) {
    if (status === 'loading') return 'βš™οΈ';
    if (status === 'ready') return 'βœ…';
    if (status === 'error') return '❌';
    return 'ℹ️';
}