Vorlage:SH
Aus BogenWiki
(Unterschied zwischen Versionen)
Nugman (Diskussion | Beiträge) |
Nugman (Diskussion | Beiträge) |
||
| Zeile 50: | Zeile 50: | ||
} | } | ||
return [nRowsShown, nRowsHidden]; | return [nRowsShown, nRowsHidden]; | ||
| + | } | ||
| + | function AddNodesSHBD(sSel,aNodes) | ||
| + | { | ||
| + | console.log('AddNodesSHBD('+sSel+','+aNodes+')'); | ||
| + | let aAddNodes = document.querySelectorAll(sSel); | ||
| + | for (var i = 0; i < aAddNodes.length; i++) { aNodes.push(aAddNodes[i]); } | ||
| + | console.log('[AddNodesSHBD()]: aNodes[].length='+aNodes.length); | ||
| + | return aNodes; | ||
| + | } | ||
| + | function SetBtnStateSHBD(sBtnID,sNewState) | ||
| + | { | ||
| + | console.log('SetBtnStateSHBD('+sBtnID+','+sNewState+')'); | ||
| + | let sNewImage = '???'; | ||
| + | let sNewTitle = '???'; | ||
| + | switch (sNewState) { | ||
| + | case 'showall': sNewImage = 'HideT'; sNewTitle = 'Alle verbergen'; break; | ||
| + | case 'showallavail': sNewImage = 'ShowT'; sNewTitle = 'Alle anzeigen'; break; | ||
| + | case 'hideall': sNewImage = 'ShowMixedT'; sNewTitle = 'Alle vorhandenen anzeigen'; break; | ||
| + | } | ||
| + | console.log('[SetBtnStateSHBD()]: sNewImage='+sNewImage+', sNewTitle="'+sNewTitle+'"'); | ||
| + | let eHeaderBtn = document.getElementById(sSHBtnID); | ||
| + | eHeaderBtn.src = '/bogenwiki/images/Symbol_'+sNewImage+'.png'; | ||
| + | eHeaderBtn.title = sNewTitle; | ||
| + | } | ||
| + | function SetRowStateSHBD(sRowID,sNewState) | ||
| + | { | ||
| + | console.log('SetRowStateSHBD('+sRowID+','+sNewState+')'); | ||
| + | sNewDisplayState = '???'; | ||
| + | switch (sNewState) { | ||
| + | case 'showall': sNewDisplayState = 'table-row'; break; | ||
| + | case 'showallavail': sNewDisplayState = (sRowID.split('-')[1] == 'objrow' ? 'table-row' : 'none'); break; | ||
| + | case 'hideall': sNewDisplayState = 'none'; break; | ||
| + | } | ||
| + | eRow = document.getElementById(sRowID); | ||
| + | console.log('[ShowHideBD()]: Node='+sRowID+', '+eRow.style.display+' => '+sNewDisplayState); | ||
| + | eRow.style.display = sNewDisplayState; | ||
} | } | ||
function ShowHideBD(sSHID,sCmd) | function ShowHideBD(sSHID,sCmd) | ||
| Zeile 60: | Zeile 96: | ||
break; | break; | ||
case 'showallavail': | case 'showallavail': | ||
| + | break; | ||
| + | case 'hideall': | ||
break; | break; | ||
case 'showgroup': | case 'showgroup': | ||
break; | break; | ||
case 'showgroupavail': | case 'showgroupavail': | ||
| - | |||
| - | |||
break; | break; | ||
case 'hidegroup': | case 'hidegroup': | ||
| Zeile 85: | Zeile 121: | ||
// show/hide rows | // show/hide rows | ||
let aNodesAll = []; | let aNodesAll = []; | ||
| - | // get all rows with objects | + | // get all rows with objects and all empty rows |
| - | + | aNodesAll = AddNodesSHBD('tr[id^=SH-objrow-'+sSHID+']',aNodesAll) | |
| - | + | aNodesAll = AddNodesSHBD('tr[id^=SH-emptyrow-'+sSHID+']',aNodesAll) | |
| - | + | // update display state of the rows | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | // update display state | + | |
for (let i = 0; i < aNodesAll.length; i++) { | for (let i = 0; i < aNodesAll.length; i++) { | ||
| - | + | SetRowStateSHBD(aNodesAll[i].id,sToggleTo); | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
} | } | ||
| - | // update button | + | // update header button |
| - | + | SetBtnStateSHBD('SH-headbtn-'+sSHID,sToggleTo); | |
| - | let | + | // update group buttons |
| - | + | // get all group rows | |
| - | + | let sNodeGroupSel = 'tr[id^=SH-divrow-'+sSHID+']'; | |
| - | + | let aNodesGroup = document.querySelectorAll(sNodeGroupSel); | |
| - | + | console.log('[ShowHideBD()]: aNodesGroup[].length='+aNodesGroup.length); | |
| + | for (var i = 0; i < aNodesGroup.length; i++) { | ||
| + | let sSHGroupID = aNodesGroup[i].split('-')[2]; | ||
| + | let [nGroupRowsShown, nGroupRowsHidden] = CountSHBD(sSHGroupID); | ||
| + | let sGroupToggleTo = 'showgroupavail'; | ||
| + | if (nGroupRowsShown > 0) { | ||
| + | if (nGroupRowsHidden > 0) | ||
| + | sGroupToggleTo ='showgroup' | ||
| + | else | ||
| + | sGroupToggleTo ='hidegroup'; | ||
| + | } | ||
| + | ShowHideBD(sSHGroupID,sGroupToggleTo); | ||
} | } | ||
| - | |||
| - | |||
| - | |||
| - | |||
break; | break; | ||
case 'togglegroup': | case 'togglegroup': | ||
Version vom 22:25, 1. Okt. 2026
Zeigen/Verbergen:
dies ist ein Test ...
dies ist ein Test ...
dies ist ein Test ...
dies ist ein Test ...
