Persönliche Werkzeuge

Vorlage:SH

Aus BogenWiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Zeile 28: Zeile 28:
     console.log('CountSHBD('+sSHID+')');
     console.log('CountSHBD('+sSHID+')');
     let nRowsShown = 0;
     let nRowsShown = 0;
-
     let nRowsHidden = 0;
+
     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+']';
-
    console.log('[CountSHBD()]: NodeSel="'+sNodeSel+'"');
 
     let aNodes = document.querySelectorAll(sNodeSel);
     let aNodes = document.querySelectorAll(sNodeSel);
-
     console.log('[CountSHBD()]: Nodes[].length='+aNodes.length);
+
     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);
-
      nRowsHidden = (aNodes[i].style.display=='none' ? nRowsHidden+1 : nRowsHidden);
 
-
    }
 
-
    console.log('[CountSHBD()]: nRowsShown='+nRowsShown+', nRowsHidden='+nRowsHidden);
 
     // count display state of empty rows
     // count display state of empty rows
     sNodeSel = 'tr[id^=SH-emptyrow-'+sSHID+']';
     sNodeSel = 'tr[id^=SH-emptyrow-'+sSHID+']';
-
    console.log('[CountSHBD()]: NodeSel="'+sNodeSel+'"');
 
     aNodes = document.querySelectorAll(sNodeSel);
     aNodes = document.querySelectorAll(sNodeSel);
-
     console.log('[CountSHBD()]: Nodes[].length='+aNodes.length);
+
     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);
-
      nRowsHidden = (aNodes[i].style.display=='none' ? nRowsHidden+1 : nRowsHidden);
+
     console.log('[CountSHBD()]: Shown='+nRowsShown+', Avail='+nRowsAvail+', Total='+nRowsTotal);
-
    }
+
     return [nRowsShown,nRowsAvail,nRowsTotal];
-
     console.log('[CountSHBD()]: nRowsShown='+nRowsShown+', nRowsHidden='+nRowsHidden);
+
-
     return [nRowsShown, nRowsHidden];
+
   }
   }
   function AddNodesSHBD(sSel,aNodes=[])
   function AddNodesSHBD(sSel,aNodes=[])
Zeile 87: Zeile 82:
     eRow.style.display = sNewDisplayState;
     eRow.style.display = sNewDisplayState;
   }
   }
-
   function GetActAndNewStateSHBD(nRowsShown,nRowsHidden)
+
   function GetActAndNewStateSHBD(sSHID)
   {
   {
-
     console.log('GetActAndNewStateSHBD(): nRowsShown='+nRowsShown+', nRowsHidden="'+nRowsHidden+'"');
+
     console.log('GetActAndNewStateSHBD(): sSHID="'+sSHID+'"');
-
     //                                   ActState       NewState
+
    let nRowsShown = 0;
-
     // nRowsShown == 0, nRowsHidden > 0: hideall     => showallavail
+
    let nRowsAvail = 0;
-
     // nRowsShown >  0, nRowsHidden >  0: showallavail => showall
+
    let nRowsTotal = 0;
-
     // nRowsShown > 0, nRowsHidden == 0: showall     => hideall
+
    // 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 = '';
-
     switch ((nRowsShown==0 ? '0' : 'N')+(nRowsHidden==0 ? '0' : 'N')) {
+
     if (nRowsShown == 0) {
-
    case '0N': sActState = 'hideall';     sNewState = 'showallavail'; break;
+
      sActState = 'hideall';
-
    case 'NN': sActState = 'showallavail'; sNewState = 'showall'; break;
+
      sNewState = (nRowsavail < nRowsTotal ? 'schowavail' : 'schowall');
-
     case 'N0': sActState = 'showall';     sNewState = 'hideall'; break;
+
     } 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 nRowsShown = -1;
 
-
    let nRowsHidden = -1;
 
     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
-
        [nRowsShown,nRowsHidden] = CountSHBD(sSHID);
+
         [sActState,sNewState] = GetActAndNewStateSHBD(sSHID)
-
         [sActState,sNewState] = GetActAndNewStateSHBD(nRowsShown,nRowsHidden)
+
         // 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 [nGroupRowsShown, nGroupRowsHidden] = CountSHBD(sSHGroupID);
+
           let [sGroupActState,sGroupNewState] = GetActAndNewStateSHBD(sSHGroupID)
-
           let [sGroupActState,sGroupNewState] = GetActAndNewStateSHBD(nGroupRowsShown,nGroupRowsHidden)
+
           SetBtnStateSHBD('SH-divbtn-'+sSHGroupID,sGroupNewState);
           SetBtnStateSHBD('SH-divbtn-'+sSHGroupID,sGroupNewState);
         }
         }
         break;
         break;
       case 'togglegroup':
       case 'togglegroup':
-
        [nRowsShown,nRowsHidden] = CountSHBD(sSHID);
+
         [sActState,sNewState] = GetActAndNewStateSHBD(sSHID)
-
         [sActState,sNewState] = GetActAndNewStateSHBD(nRowsShown,nRowsHidden)
+
         // 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 ...