diff --git a/index.html b/index.html index 10aec1f..78fdda5 100644 --- a/index.html +++ b/index.html @@ -254,17 +254,62 @@ function downloadHTML(){ } // ===== MY EVENTS ===== +var expandedEvents = {}; +function toggleExpand(eid) { expandedEvents[eid] = !expandedEvents[eid]; renderMyEvents(); } + function renderMyEvents(){ var my=getMy(),h='
'; h+='
'; var sf=document.getElementById("mySF");sf=sf?sf.value:""; var list=my;if(sf)list=list.filter(function(e){return e.s===sf}); - h+=''; - list.forEach(function(e){h+=''}); + h+='
МероприятиеРазделСрокПрогрессСтатус
'+e.id+''+esc(e.t)+''+["I","II","III","IV","V"][e.sec]+''+e.due+''+pct(e.p)+''+sb(e.s)+'
'; + list.forEach(function(e){ + var hasSub = e.sub && e.sub.length; + var sc = getSC(e.id); + var subDone = hasSub ? sc.length : 0; + var subTotal = hasSub ? e.sub.length : 0; + h+=''; + h+=''; + h+=''; + h+=''; + h+=''; + + // Sub-items + if(hasSub && expandedEvents[e.id]){ + e.sub.forEach(function(s,i){ + var ch = sc.indexOf(i) >= 0; + h+=''; + h+=''; + h+=''; + }); + } + }); h+='
Мероприятие / ПодпунктыРазделСрокПрогрессСтатус
'+e.id+''; + if(hasSub) h+=''+(expandedEvents[e.id]?'▼':'▶')+''; + h+=''+esc(e.t)+''; + if(hasSub) h+=' ('+subDone+'/'+subTotal+')'; + h+=''+["I","II","III","IV","V"][e.sec]+''+e.due+''+pct(e.p)+''+sb(e.s)+'
'+s.l+') '+esc(s.t)+'
'; document.getElementById("tab-myevents").innerHTML=h; } +function toggleSubItem(eid, subIdx, checked) { + var sc = getSC(eid); + if(checked) { if(sc.indexOf(subIdx) < 0) sc.push(subIdx); } + else { sc = sc.filter(function(x){ return x !== subIdx; }); } + setSC(eid, sc); + // Update event progress based on sub-items + var e = null; for(var i=0;i