ninja-terminals 2.1.2 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/public/app.js +0 -52
- package/public/index.html +1 -7
package/package.json
CHANGED
package/public/app.js
CHANGED
|
@@ -202,10 +202,8 @@ const state = {
|
|
|
202
202
|
const grid = document.getElementById('grid');
|
|
203
203
|
const sidebar = document.getElementById('sidebar');
|
|
204
204
|
const activityFeed = document.getElementById('activity-feed');
|
|
205
|
-
const taskQueue = document.getElementById('task-queue');
|
|
206
205
|
const statusCounts = document.getElementById('status-counts');
|
|
207
206
|
const statusProgress = document.getElementById('status-progress');
|
|
208
|
-
const addTaskBtn = document.getElementById('add-task-btn');
|
|
209
207
|
const sidebarToggle = document.getElementById('sidebar-toggle');
|
|
210
208
|
|
|
211
209
|
// ── State Color Map ──────────────────────────────────────────
|
|
@@ -892,41 +890,6 @@ function connectSSE() {
|
|
|
892
890
|
return evtSource;
|
|
893
891
|
}
|
|
894
892
|
|
|
895
|
-
// ── Task Queue ───────────────────────────────────────────────
|
|
896
|
-
|
|
897
|
-
async function fetchTasks() {
|
|
898
|
-
try {
|
|
899
|
-
const res = await fetch(`${API_BASE}/api/tasks`, { headers: auth.getAuthHeader() });
|
|
900
|
-
if (!res.ok) {
|
|
901
|
-
taskQueue.innerHTML = '<div class="no-tasks">No tasks</div>';
|
|
902
|
-
return;
|
|
903
|
-
}
|
|
904
|
-
const tasks = await res.json();
|
|
905
|
-
renderTasks(tasks);
|
|
906
|
-
} catch {
|
|
907
|
-
taskQueue.innerHTML = '<div class="no-tasks">No tasks</div>';
|
|
908
|
-
}
|
|
909
|
-
}
|
|
910
|
-
|
|
911
|
-
function renderTasks(tasks) {
|
|
912
|
-
if (!tasks || !Array.isArray(tasks) || tasks.length === 0) {
|
|
913
|
-
taskQueue.innerHTML = '<div class="no-tasks">No tasks</div>';
|
|
914
|
-
return;
|
|
915
|
-
}
|
|
916
|
-
|
|
917
|
-
taskQueue.innerHTML = '';
|
|
918
|
-
for (const task of tasks) {
|
|
919
|
-
const item = document.createElement('div');
|
|
920
|
-
item.className = 'task-item';
|
|
921
|
-
const dotClass = task.status || 'pending';
|
|
922
|
-
item.innerHTML = `
|
|
923
|
-
<span class="task-dot ${dotClass}"></span>
|
|
924
|
-
<span class="task-name" title="${escapeHtml(task.name || task.id || '')}">${escapeHtml(task.name || task.id || 'Unnamed')}</span>
|
|
925
|
-
<span class="task-status">${escapeHtml(task.status || 'pending')}</span>
|
|
926
|
-
`;
|
|
927
|
-
taskQueue.appendChild(item);
|
|
928
|
-
}
|
|
929
|
-
}
|
|
930
893
|
|
|
931
894
|
// ── Status Polling (fallback + elapsed updates) ──────────────
|
|
932
895
|
|
|
@@ -996,14 +959,6 @@ function setupSidebar() {
|
|
|
996
959
|
document.body.appendChild(mobileToggle);
|
|
997
960
|
}
|
|
998
961
|
|
|
999
|
-
// ── Add Task ─────────────────────────────────────────────────
|
|
1000
|
-
|
|
1001
|
-
function setupAddTask() {
|
|
1002
|
-
addTaskBtn.addEventListener('click', () => {
|
|
1003
|
-
addNewTerminal();
|
|
1004
|
-
});
|
|
1005
|
-
}
|
|
1006
|
-
|
|
1007
962
|
// ── Resize Handler ───────────────────────────────────────────
|
|
1008
963
|
|
|
1009
964
|
let resizeTimeout;
|
|
@@ -1020,7 +975,6 @@ async function startApp() {
|
|
|
1020
975
|
|
|
1021
976
|
// Setup sidebar
|
|
1022
977
|
setupSidebar();
|
|
1023
|
-
setupAddTask();
|
|
1024
978
|
setupLearnings();
|
|
1025
979
|
setupAddTerminal();
|
|
1026
980
|
|
|
@@ -1049,15 +1003,9 @@ async function startApp() {
|
|
|
1049
1003
|
// Connect SSE for real-time updates
|
|
1050
1004
|
connectSSE();
|
|
1051
1005
|
|
|
1052
|
-
// Fetch initial task queue
|
|
1053
|
-
fetchTasks();
|
|
1054
|
-
|
|
1055
1006
|
// Poll status every 3 seconds (fallback for SSE + elapsed updates)
|
|
1056
1007
|
setInterval(pollStatus, 3000);
|
|
1057
1008
|
|
|
1058
|
-
// Poll task queue every 5 seconds
|
|
1059
|
-
setInterval(fetchTasks, 5000);
|
|
1060
|
-
|
|
1061
1009
|
// Initial status bar
|
|
1062
1010
|
updateStatusBar();
|
|
1063
1011
|
|
package/public/index.html
CHANGED
|
@@ -77,13 +77,7 @@
|
|
|
77
77
|
<h3 class="sidebar-title">Activity</h3>
|
|
78
78
|
<div id="activity-feed"></div>
|
|
79
79
|
</div>
|
|
80
|
-
|
|
81
|
-
<div class="sidebar-section">
|
|
82
|
-
<h3 class="sidebar-title">Task Queue</h3>
|
|
83
|
-
<div id="task-queue"></div>
|
|
84
|
-
<button id="add-task-btn" class="add-task-btn">+ Add Task</button>
|
|
85
|
-
</div>
|
|
86
|
-
</aside>
|
|
80
|
+
</aside>
|
|
87
81
|
<main>
|
|
88
82
|
<div id="grid"></div>
|
|
89
83
|
</main>
|