Persönliche Werkzeuge

Vorlage:SH

Aus BogenWiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
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;
 
-
      case 'hideall':
 
         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
-
         let sNodeObjSel = 'tr[id^=SH-objrow-'+sSHID+']';
+
         aNodesAll = AddNodesSHBD('tr[id^=SH-objrow-'+sSHID+']',aNodesAll)
-
        let aNodesObj = document.querySelectorAll(sNodeObjSel);
+
         aNodesAll = AddNodesSHBD('tr[id^=SH-emptyrow-'+sSHID+']',aNodesAll)
-
         console.log('[ShowHideBD()]: aNodesObj[].length='+aNodesObj.length);
+
         // update display state of the rows
-
        for (var i = 0; i < aNodesObj.length; i++) { aNodesAll.push(aNodesObj[i]); }
+
-
        // get all empty rows
+
-
        let sNodeEmptySel = 'tr[id^=SH-emptyrow-'+sSHID+']';
+
-
        let aNodesEmpty = document.querySelectorAll(sNodeEmptySel);
+
-
        console.log('[ShowHideBD()]: aNodesEmpty[].length='+aNodesEmpty.length);
+
-
        for (var i = 0; i < aNodesEmpty.length; i++) { aNodesAll.push(aNodesEmpty[i]); }
+
-
        console.log('[ShowHideBD()]: aNodesAll[].length='+aNodesAll.length);
+
-
         // update display state
+
         for (let i = 0; i < aNodesAll.length; i++) {
         for (let i = 0; i < aNodesAll.length; i++) {
-
           sNewDisplayState = '???';
+
           SetRowStateSHBD(aNodesAll[i].id,sToggleTo);
-
          switch (sToggleTo) {
+
-
          case 'showall':      sNewDisplayState = 'table-row'; break;
+
-
          case 'showallavail': sNewDisplayState = (aNodesAll[i].id.split('-')[1] == 'objrow' ? 'table-row' : 'none'); break;
+
-
          case 'hideall':      sNewDisplayState = 'none'; break;
+
-
          }
+
-
          console.log('[ShowHideBD()]: Node='+aNodesAll[i].id+', '+aNodesAll[i].style.display+' => '+sNewDisplayState);
+
-
          aNodesAll[i].style.display = sNewDisplayState;
+
         }
         }
-
         // update button
+
         // update header button
-
         let sNewImage = '???';
+
         SetBtnStateSHBD('SH-headbtn-'+sSHID,sToggleTo);
-
         let sNewTitle = '???';
+
        // update group buttons
-
         switch (sToggleTo) {
+
        // get all group rows
-
         case 'showall':     sNewImage = 'HideT';     sNewTitle = 'Alle verbergen'; break;
+
         let sNodeGroupSel = 'tr[id^=SH-divrow-'+sSHID+']';
-
        case 'showallavail': sNewImage = 'ShowT';     sNewTitle = 'Alle anzeigen'; break;
+
         let aNodesGroup = document.querySelectorAll(sNodeGroupSel);
-
        case 'hideall':      sNewImage = 'ShowMixedT'; sNewTitle = 'Alle vorhandenen anzeigen'; break;
+
         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);
         }
         }
-
        console.log('[ShowHideBD()]: sNewImage='+sNewImage+', sNewTitle="'+sNewTitle+'"');
 
-
        let eHeaderBtn = document.getElementById('SH-headbtn-'+sSHID);
 
-
        eHeaderBtn.src = '/bogenwiki/images/Symbol_'+sNewImage+'.png';
 
-
        eHeaderBtn.title = sNewTitle;
 
         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 ...