Vorlage:SH
Aus BogenWiki
(Unterschied zwischen Versionen)
Nugman (Diskussion | Beiträge) |
Nugman (Diskussion | Beiträge) |
||
| Zeile 28: | Zeile 28: | ||
console.log('CountSHBD('+sSHID+')'); | console.log('CountSHBD('+sSHID+')'); | ||
let nRowsShown = 0; | let nRowsShown = 0; | ||
| - | let | + | let nRowsAvail = 0; |
| + | let nRowsTotal = 0; | ||
// count display state of rows with objects | // count display state of rows with objects | ||
let sNodeSel = 'tr[id^=SH-objrow-'+sSHID+']'; | let sNodeSel = 'tr[id^=SH-objrow-'+sSHID+']'; | ||
| - | |||
let aNodes = document.querySelectorAll(sNodeSel); | let aNodes = document.querySelectorAll(sNodeSel); | ||
| - | + | nRowsAvail = aNodes.length; | |
| - | for (var i = 0; i < aNodes.length; i++) | + | nRowsTotal = aNodes.length; |
| + | for (var i = 0; i < aNodes.length; i++) | ||
nRowsShown = (aNodes[i].style.display=='table-row' ? nRowsShown+1 : nRowsShown); | nRowsShown = (aNodes[i].style.display=='table-row' ? nRowsShown+1 : nRowsShown); | ||
| - | |||
| - | |||
| - | |||
// count display state of empty rows | // count display state of empty rows | ||
sNodeSel = 'tr[id^=SH-emptyrow-'+sSHID+']'; | sNodeSel = 'tr[id^=SH-emptyrow-'+sSHID+']'; | ||
| - | |||
aNodes = document.querySelectorAll(sNodeSel); | aNodes = document.querySelectorAll(sNodeSel); | ||
| - | + | nRowsTotal += aNodes.length; | |
| - | for (var i = 0; i < aNodes.length; i++) | + | for (var i = 0; i < aNodes.length; i++) |
nRowsShown = (aNodes[i].style.display=='table-row' ? nRowsShown+1 : nRowsShown); | nRowsShown = (aNodes[i].style.display=='table-row' ? nRowsShown+1 : nRowsShown); | ||
| - | + | console.log('[CountSHBD()]: Shown='+nRowsShown+', Avail='+nRowsAvail+', Total='+nRowsTotal); | |
| - | + | return [nRowsShown,nRowsAvail,nRowsTotal]; | |
| - | console.log('[CountSHBD()]: | + | |
| - | return [nRowsShown, | + | |
} | } | ||
function AddNodesSHBD(sSel,aNodes=[]) | function AddNodesSHBD(sSel,aNodes=[]) | ||
| Zeile 87: | Zeile 82: | ||
eRow.style.display = sNewDisplayState; | eRow.style.display = sNewDisplayState; | ||
} | } | ||
| - | function GetActAndNewStateSHBD( | + | function GetActAndNewStateSHBD(sSHID) |
{ | { | ||
| - | console.log('GetActAndNewStateSHBD(): nRowsShown='+nRowsShown+', | + | console.log('GetActAndNewStateSHBD(): sSHID="'+sSHID+'"'); |
| - | // | + | let nRowsShown = 0; |
| - | // nRowsShown == 0, | + | let nRowsAvail = 0; |
| - | // nRowsShown | + | let nRowsTotal = 0; |
| - | // nRowsShown | + | // count display state of rows with objects |
| + | let sNodeSel = 'tr[id^=SH-objrow-'+sSHID+']'; | ||
| + | let aNodes = document.querySelectorAll(sNodeSel); | ||
| + | nRowsAvail = aNodes.length; | ||
| + | nRowsTotal = aNodes.length; | ||
| + | for (var i = 0; i < aNodes.length; i++) | ||
| + | nRowsShown = (aNodes[i].style.display=='table-row' ? nRowsShown+1 : nRowsShown); | ||
| + | // count display state of empty rows | ||
| + | sNodeSel = 'tr[id^=SH-emptyrow-'+sSHID+']'; | ||
| + | aNodes = document.querySelectorAll(sNodeSel); | ||
| + | nRowsTotal += aNodes.length; | ||
| + | for (var i = 0; i < aNodes.length; i++) | ||
| + | nRowsShown = (aNodes[i].style.display=='table-row' ? nRowsShown+1 : nRowsShown); | ||
| + | console.log('[GetActAndNewStateSHBD()]: Shown='+nRowsShown+', Avail='+nRowsAvail+', Total='+nRowsTotal); | ||
| + | // ActState NewState | ||
| + | // nRowsShown == 0, nRowsAvail < nRowsTotal: hideall => showavail | ||
| + | // nRowsShown == 0, nRowsAvail == nRowsTotal: hideall => showall | ||
| + | // nRowsShown == nRowsAvail < nRowsTotal: showavail => hideall | ||
| + | // nRowsShown == nRowsAvail == nRowsTotal: showall => hideall | ||
let sActState = ''; | let sActState = ''; | ||
let sNewState = ''; | let sNewState = ''; | ||
| - | + | if (nRowsShown == 0) { | |
| - | + | sActState = 'hideall'; | |
| - | + | sNewState = (nRowsavail < nRowsTotal ? 'schowavail' : 'schowall'); | |
| - | + | } else { | |
| + | sActState = (nRowsavail < nRowsTotal ? 'schowavail' : 'schowall'); | ||
| + | sNewState = 'hideall'; | ||
} | } | ||
console.log('[GetActAndNewStateSHBD()]: sActState='+sActState+', sNewState="'+sNewState+'"'); | console.log('[GetActAndNewStateSHBD()]: sActState='+sActState+', sNewState="'+sNewState+'"'); | ||
| Zeile 108: | Zeile 123: | ||
console.log('ShowHideBD('+sSHID+','+sCmd+')'); | console.log('ShowHideBD('+sSHID+','+sCmd+')'); | ||
let aNodesAll = []; | let aNodesAll = []; | ||
| - | |||
| - | |||
let sActState = ''; | let sActState = ''; | ||
let sNewState = ''; | let sNewState = ''; | ||
| Zeile 129: | Zeile 142: | ||
case 'toggleall': | case 'toggleall': | ||
// determine current state and new state | // determine current state and new state | ||
| - | + | [sActState,sNewState] = GetActAndNewStateSHBD(sSHID) | |
| - | [sActState,sNewState] = GetActAndNewStateSHBD( | + | |
// show/hide rows | // show/hide rows | ||
aNodesAll = AddNodesSHBD('tr[id^=SH-objrow-'+sSHID+']') | 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,sNewState); | SetRowStateSHBD(aNodesAll[i].id,sNewState); | ||
| - | |||
// update header button | // update header button | ||
SetBtnStateSHBD('SH-headbtn-'+sSHID,sNewState); | SetBtnStateSHBD('SH-headbtn-'+sSHID,sNewState); | ||
| Zeile 144: | Zeile 155: | ||
for (var i = 0; i < aNodesGroup.length; i++) { | for (var i = 0; i < aNodesGroup.length; i++) { | ||
let sSHGroupID = aNodesGroup[i].id.split('-')[2]; | let sSHGroupID = aNodesGroup[i].id.split('-')[2]; | ||
| - | + | let [sGroupActState,sGroupNewState] = GetActAndNewStateSHBD(sSHGroupID) | |
| - | let [sGroupActState,sGroupNewState] = GetActAndNewStateSHBD( | + | |
SetBtnStateSHBD('SH-divbtn-'+sSHGroupID,sGroupNewState); | SetBtnStateSHBD('SH-divbtn-'+sSHGroupID,sGroupNewState); | ||
} | } | ||
break; | break; | ||
case 'togglegroup': | case 'togglegroup': | ||
| - | + | [sActState,sNewState] = GetActAndNewStateSHBD(sSHID) | |
| - | [sActState,sNewState] = GetActAndNewStateSHBD( | + | |
// show/hide rows | // show/hide rows | ||
aNodesAll = AddNodesSHBD('tr[id^=SH-objrow-'+sSHID+']') | aNodesAll = AddNodesSHBD('tr[id^=SH-objrow-'+sSHID+']') | ||
Version vom 21:27, 2. Okt. 2026
Zeigen/Verbergen:
dies ist ein Test ...
dies ist ein Test ...
dies ist ein Test ...
dies ist ein Test ...
