Persönliche Werkzeuge

Vorlage:SH

Aus BogenWiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
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,sNewState)
+
   function SetBtnStateSHBD(sBtnID,sState)
   {
   {
-
     console.log('SetBtnStateSHBD('+sBtnID+','+sNewState+')');
+
     console.log('SetBtnStateSHBD('+sBtnID+','+sState+')');
     let sNewImage = '???';
     let sNewImage = '???';
     let sNewTitle = '???';
     let sNewTitle = '???';
-
     switch (sNewState) {
+
     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,sNewState)
+
   function SetRowStateSHBD(sRowID,sState)
   {
   {
-
     console.log('SetRowStateSHBD('+sRowID+','+sNewState+')');
+
     console.log('SetRowStateSHBD('+sRowID+','+sState+')');
     sNewDisplayState = '???';
     sNewDisplayState = '???';
-
     switch (sNewState) {
+
     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);
-
         console.log('[ShowHideBD()]: nRowsShown='+nRowsShown+', nRowsHidden="'+nRowsHidden+'"');
+
         let [sActState,sNewState] = GetActAndNewStateSHBD(nRowsShown,nRowsHidden)
-
        // nRowsShown == 0, nRowsHidden >  0: hideall => showallavail
+
-
        // nRowsShown >  0, nRowsHidden >  0: showallavail => showall
+
-
        // nRowsShown >  0, nRowsHidden == 0: showall => hideall
+
-
        let sToggleTo = 'showallavail';
+
-
        if (nRowsShown > 0) {
+
-
          if (nRowsHidden > 0)
+
-
            sToggleTo ='showall'
+
-
          else
+
-
            sToggleTo ='hideall';
+
-
        }
+
         // show/hide rows
         // show/hide rows
-
         let aNodesAll = [];
+
         let aNodesAll = AddNodesSHBD('tr[id^=SH-objrow-'+sSHID+']')
-
        // 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)
         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,sToggleTo);
+
           SetRowStateSHBD(aNodesAll[i].id,sNewSate);
         }
         }
         // update header button
         // update header button
-
         SetBtnStateSHBD('SH-headbtn-'+sSHID,sToggleTo);
+
         SetBtnStateSHBD('SH-headbtn-'+sSHID,sNewSate);
         // update group buttons
         // update group buttons
-
        // get all group rows
+
         let aNodesGroup = AddNodesSHBD('tr[id^=SH-divrow-'+sSHID+']');
-
         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++) {
         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 sGroupToggleTo = 'showgroupavail';
+
           let [sGroupActState,sGroupNewState] = GetActAndNewStateSHBD(nGroupRowsShown,nGroupRowsHidden)
-
          if (nGroupRowsShown > 0) {
+
           SetBtnStateSHBD(sSHGroupID,sGroupActState);
-
            if (nGroupRowsHidden > 0)
+
-
              sGroupToggleTo ='showgroup'
+
-
            else
+
-
              sGroupToggleTo ='hidegroup';
+
-
          }
+
-
           ShowHideBD(sSHGroupID,sGroupToggleTo);
+
         }
         }
         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 ...