Vorlage:SH
Aus BogenWiki
(Unterschied zwischen Versionen)
Nugman (Diskussion | Beiträge) |
Nugman (Diskussion | Beiträge) |
||
| Zeile 51: | Zeile 51: | ||
return [nRowsShown, nRowsHidden]; | return [nRowsShown, nRowsHidden]; | ||
} | } | ||
| - | function AddNodesSHBD(sSel,aNodes) | + | function AddNodesSHBD(sSel,aNodes=[]) |
{ | { | ||
console.log('AddNodesSHBD('+sSel+','+aNodes+')'); | console.log('AddNodesSHBD('+sSel+','+aNodes+')'); | ||
| Zeile 59: | Zeile 59: | ||
return aNodes; | return aNodes; | ||
} | } | ||
| - | function SetBtnStateSHBD(sBtnID, | + | function SetBtnStateSHBD(sBtnID,sState) |
{ | { | ||
| - | console.log('SetBtnStateSHBD('+sBtnID+','+ | + | console.log('SetBtnStateSHBD('+sBtnID+','+sState+')'); |
let sNewImage = '???'; | let sNewImage = '???'; | ||
let sNewTitle = '???'; | let sNewTitle = '???'; | ||
| - | switch ( | + | switch (sState) { |
case 'showall': sNewImage = 'HideT'; sNewTitle = 'Alle verbergen'; break; | case 'showall': sNewImage = 'HideT'; sNewTitle = 'Alle verbergen'; break; | ||
case 'showallavail': sNewImage = 'ShowT'; sNewTitle = 'Alle anzeigen'; break; | case 'showallavail': sNewImage = 'ShowT'; sNewTitle = 'Alle anzeigen'; break; | ||
| Zeile 74: | Zeile 74: | ||
eHeaderBtn.title = sNewTitle; | eHeaderBtn.title = sNewTitle; | ||
} | } | ||
| - | function SetRowStateSHBD(sRowID, | + | function SetRowStateSHBD(sRowID,sState) |
{ | { | ||
| - | console.log('SetRowStateSHBD('+sRowID+','+ | + | console.log('SetRowStateSHBD('+sRowID+','+sState+')'); |
sNewDisplayState = '???'; | sNewDisplayState = '???'; | ||
| - | switch ( | + | switch (sState) { |
case 'showall': sNewDisplayState = 'table-row'; break; | case 'showall': sNewDisplayState = 'table-row'; break; | ||
case 'showallavail': sNewDisplayState = (sRowID.split('-')[1] == 'objrow' ? 'table-row' : 'none'); break; | case 'showallavail': sNewDisplayState = (sRowID.split('-')[1] == 'objrow' ? 'table-row' : 'none'); break; | ||
| Zeile 86: | Zeile 86: | ||
console.log('[ShowHideBD()]: Node='+sRowID+', '+eRow.style.display+' => '+sNewDisplayState); | console.log('[ShowHideBD()]: Node='+sRowID+', '+eRow.style.display+' => '+sNewDisplayState); | ||
eRow.style.display = sNewDisplayState; | eRow.style.display = sNewDisplayState; | ||
| + | } | ||
| + | function GetActAndNewStateSHBD(nRowsShown,nRowsHidden) | ||
| + | { | ||
| + | console.log('[ShowHideBD()]: nRowsShown='+nRowsShown+', nRowsHidden="'+nRowsHidden+'"'); | ||
| + | // ActState NewState | ||
| + | // nRowsShown == 0, nRowsHidden > 0: hideall => showallavail | ||
| + | // nRowsShown > 0, nRowsHidden > 0: showallavail => showall | ||
| + | // nRowsShown > 0, nRowsHidden == 0: showall => hideall | ||
| + | let ActState = ''; | ||
| + | switch ((nRowsShown==0 ? '0' : 'N')+(nRowsHidden==0 ? '0' : 'N')) | ||
| + | case '0N': sActState = 'hideall'; sNewState = 'showallavail'; break; | ||
| + | case 'NN': sActState = 'showallavail'; sNewState = 'showall'; break; | ||
| + | case 'N0': sActState = 'showall'; sNewState = 'hideall'; break; | ||
| + | } | ||
| + | return [sActState,sNewState]; | ||
} | } | ||
function ShowHideBD(sSHID,sCmd) | function ShowHideBD(sSHID,sCmd) | ||
| Zeile 107: | Zeile 122: | ||
case 'toggleall': | case 'toggleall': | ||
// determine current state and new state | // determine current state and new state | ||
| - | [nRowsShown, nRowsHidden] = CountSHBD(sSHID); | + | let [nRowsShown, nRowsHidden] = CountSHBD(sSHID); |
| - | + | let [sActState,sNewState] = GetActAndNewStateSHBD(nRowsShown,nRowsHidden) | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
// show/hide rows | // show/hide rows | ||
| - | let | + | let aNodesAll = AddNodesSHBD('tr[id^=SH-objrow-'+sSHID+']') |
| - | + | ||
| - | + | ||
aNodesAll = AddNodesSHBD('tr[id^=SH-emptyrow-'+sSHID+']',aNodesAll) | aNodesAll = AddNodesSHBD('tr[id^=SH-emptyrow-'+sSHID+']',aNodesAll) | ||
// update display state of the rows | // update display state of the rows | ||
for (let i = 0; i < aNodesAll.length; i++) { | for (let i = 0; i < aNodesAll.length; i++) { | ||
| - | SetRowStateSHBD(aNodesAll[i].id, | + | SetRowStateSHBD(aNodesAll[i].id,sNewSate); |
} | } | ||
// update header button | // update header button | ||
| - | SetBtnStateSHBD('SH-headbtn-'+sSHID, | + | SetBtnStateSHBD('SH-headbtn-'+sSHID,sNewSate); |
// update group buttons | // update group buttons | ||
| - | + | let aNodesGroup = AddNodesSHBD('tr[id^=SH-divrow-'+sSHID+']'); | |
| - | let | + | |
| - | + | ||
| - | + | ||
for (var i = 0; i < aNodesGroup.length; i++) { | for (var i = 0; i < aNodesGroup.length; i++) { | ||
let sSHGroupID = aNodesGroup[i].split('-')[2]; | let sSHGroupID = aNodesGroup[i].split('-')[2]; | ||
let [nGroupRowsShown, nGroupRowsHidden] = CountSHBD(sSHGroupID); | let [nGroupRowsShown, nGroupRowsHidden] = CountSHBD(sSHGroupID); | ||
| - | let | + | let [sGroupActState,sGroupNewState] = GetActAndNewStateSHBD(nGroupRowsShown,nGroupRowsHidden) |
| - | + | SetBtnStateSHBD(sSHGroupID,sGroupActState); | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
} | } | ||
break; | break; | ||
Version vom 06:27, 2. Okt. 2026
Zeigen/Verbergen:
dies ist ein Test ...
dies ist ein Test ...
dies ist ein Test ...
dies ist ein Test ...
