nothumanallowed 3.6.0 → 3.6.1
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/src/services/web-ui.mjs +19 -12
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nothumanallowed",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.1",
|
|
4
4
|
"description": "NotHumanAllowed — 38 AI agents for security, code, DevOps, data & daily ops. Ask agents directly, plan your day with 5 specialist agents, manage tasks, connect Gmail + Calendar.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/src/services/web-ui.mjs
CHANGED
|
@@ -204,10 +204,11 @@ function loadDash(){
|
|
|
204
204
|
}
|
|
205
205
|
function loadAgents(){return apiGet('/api/agents').then(function(r){agentsList=(r&&r.agents)||[]})}
|
|
206
206
|
function updateBadges(){
|
|
207
|
-
var eb=document.getElementById('emailBadge'),tb=document.getElementById('taskBadge');
|
|
208
|
-
var ue=dash.emails.length,ut=dash.tasks.filter(function(t){return t.status!=='done'}).length;
|
|
207
|
+
var eb=document.getElementById('emailBadge'),tb=document.getElementById('taskBadge'),cb=document.getElementById('calBadge');
|
|
208
|
+
var ue=dash.emails.length,ut=dash.tasks.filter(function(t){return t.status!=='done'}).length,uc=dash.events.length;
|
|
209
209
|
if(eb){eb.textContent=ue;eb.style.display=ue>0?'':'none'}
|
|
210
210
|
if(tb){tb.textContent=ut;tb.style.display=ut>0?'':'none'}
|
|
211
|
+
if(cb){cb.textContent=uc;cb.style.display=uc>0?'':'none'}
|
|
211
212
|
}
|
|
212
213
|
|
|
213
214
|
// ---- HELPERS ----
|
|
@@ -370,21 +371,27 @@ function renderCalendar(el){
|
|
|
370
371
|
});
|
|
371
372
|
h+='</div>';
|
|
372
373
|
|
|
373
|
-
// Calendar grid
|
|
374
|
-
h+='<div style="display:grid;grid-template-columns:repeat(7,1fr);gap:
|
|
374
|
+
// Calendar grid — square cells
|
|
375
|
+
h+='<div style="display:grid;grid-template-columns:repeat(7,1fr);gap:3px">';
|
|
375
376
|
// Empty cells before first day
|
|
376
|
-
for(var i=0;i<startDay;i++){h+='<div style="
|
|
377
|
+
for(var i=0;i<startDay;i++){h+='<div style="aspect-ratio:1;background:var(--bg);border-radius:6px"></div>'}
|
|
377
378
|
// Day cells
|
|
378
379
|
for(var d=1;d<=daysInMonth;d++){
|
|
379
380
|
var key=calKey(calYear,calMonth,d);
|
|
380
381
|
var today=isToday(calYear,calMonth,d);
|
|
381
382
|
var evts=calEventsCache[key]||[];
|
|
382
|
-
var
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
383
|
+
var count=evts.length;
|
|
384
|
+
var bg=today?'var(--greendim)':'var(--bg2)';
|
|
385
|
+
var bdr=today?'var(--green3)':count>0?'var(--amber)':'var(--border)';
|
|
386
|
+
h+='<div onclick="openDayDetail(\\x27'+key+'\\x27)" style="aspect-ratio:1;background:'+bg+';border:1px solid '+bdr+';border-radius:6px;padding:6px;cursor:pointer;display:flex;flex-direction:column;overflow:hidden">';
|
|
387
|
+
h+='<div style="font-size:14px;font-weight:'+(today?'800':'500')+';color:'+(today?'var(--green)':'var(--text)')+'">'+d+'</div>';
|
|
388
|
+
if(count>0){
|
|
389
|
+
h+='<div style="flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:1px;min-height:0">';
|
|
390
|
+
evts.slice(0,2).forEach(function(x){
|
|
391
|
+
h+='<div style="font-size:8px;color:var(--amber);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:var(--bg3);border-radius:2px;padding:1px 3px">'+esc(x.summary)+'</div>';
|
|
392
|
+
});
|
|
393
|
+
if(count>2)h+='<div style="font-size:8px;color:var(--dim);text-align:center">+'+String(count-2)+'</div>';
|
|
394
|
+
h+='</div>';
|
|
388
395
|
}
|
|
389
396
|
h+='</div>';
|
|
390
397
|
}
|
|
@@ -551,7 +558,7 @@ init();
|
|
|
551
558
|
<div class="sidebar__section">
|
|
552
559
|
<div class="sidebar__label">Data</div>
|
|
553
560
|
<div class="nav-item" data-view="emails" onclick="switchView('emails')"><span class="nav-item__icon">✉</span> Emails <span class="nav-item__badge" id="emailBadge" style="display:none">0</span></div>
|
|
554
|
-
<div class="nav-item" data-view="calendar" onclick="switchView('calendar')"><span class="nav-item__icon">📅</span> Calendar</div>
|
|
561
|
+
<div class="nav-item" data-view="calendar" onclick="switchView('calendar')"><span class="nav-item__icon">📅</span> Calendar <span class="nav-item__badge" id="calBadge" style="display:none;background:var(--amber)">0</span></div>
|
|
555
562
|
</div>
|
|
556
563
|
<div class="sidebar__section">
|
|
557
564
|
<div class="sidebar__label">AI</div>
|