Skip to main content

scripts and themes removed from advanced 9/29/25

before </head> 


<script>
(function () {
  const container = document.querySelector('#dock-pane-2a > div > div > ui-view > div.meeting-dashboard');

  if (!container) return;

  function sortAccordion() {
    const accordionContainer = container.querySelector('uib-accordion > div');
    if (!accordionContainer) return;

    // Get all panel-heading elements
    const headings = Array.from(accordionContainer.querySelectorAll('.panel-heading'));

    // Map each heading to its associated panel-collapse (using aria-controls and id)
    const pairs = headings.map(heading => {
      const controlId = heading.querySelector('a')?.getAttribute('aria-controls');
      const panel = controlId ? accordionContainer.querySelector(`#${controlId}`) : null;
      return { heading, panel };
    });

    // Sort based on the .title span text
    pairs.sort((a, b) => {
      const textA = a.heading.querySelector('.title')?.textContent.trim() || '';
      const textB = b.heading.querySelector('.title')?.textContent.trim() || '';
      return textA.localeCompare(textB, undefined, { numeric: true, sensitivity: 'base' });
    });

    // Clear and re-add sorted pairs
    pairs.forEach(({ heading, panel }) => {
      accordionContainer.appendChild(heading);
      if (panel) accordionContainer.appendChild(panel);
    });
  }

  // Initial sort after a brief delay (in case of dynamic loading)
  setTimeout(sortAccordion, 500);

  // Set up MutationObserver to re-sort on changes
  const observer = new MutationObserver(() => {
    sortAccordion();
  });

  observer.observe(container, {
    childList: true,
    subtree: true
  });
})();

</script>
//end 
<script src="https://cdnjs.cloudflare.com/ajax/libs/showdown/1.9.1/showdown.min.js"></script><script>
  $(function() {
    var converter = new showdown.Converter();
    $('#poc table.table td,#poc table.table th').each(function(i, cell) {
      var $cell = $(cell);
      var html = converter.makeHtml($cell.text());
      $cell.html(html);
    });
  });
</script>
 

before </body> 

<!-- hide/form-warning start -->
<script>
  document.addEventListener('DOMContentLoaded', function () {
    const selector = 'body > div:nth-child(1) > div > div > div > div > div.element-type.element-type-form.ng-click-active';

    const interceptFormClick = () => {
      const originalEl = document.querySelector(selector);
      if (originalEl && !originalEl.dataset.replaced) {
        // Clone so Angular won’t bind any handlers
        const clone = originalEl.cloneNode(true);

        // Remove any ng-click attributes (or similar) just in case
        clone.removeAttribute('ng-click');
        clone.removeAttribute('data-ng-click');

        // Optionally remove the active class so it doesn’t look “clickable”
        clone.classList.remove('ng-click-active');

        // Visually indicate it’s disabled
        clone.style.opacity = '0.6';
        clone.style.cursor = 'not-allowed';

        // Warn on click
        clone.addEventListener('click', (e) => {
          e.preventDefault();
          e.stopPropagation();
          alert('Please upgrade to use this feature.');
        });

        // Swap them out
        originalEl.replaceWith(clone);
        clone.dataset.replaced = 'true';
      }
    };

    // Watch for it being added dynamically
    const observer = new MutationObserver(interceptFormClick);
    observer.observe(document.body, { childList: true, subtree: true });

    // Also run immediately in case it’s already there
    interceptFormClick();
  });
</script>
<!-- hide/form-warning end -->
<script>
  document.addEventListener('DOMContentLoaded', function () {
    const interceptInitialEmailClick = () => {
      const originalBtn = document.querySelector('button[ng-click="sendEmailCampaign()"]');

      if (originalBtn && !originalBtn.dataset.replaced) {
        // Clone it so Angular doesn't bind to it
        const clone = originalBtn.cloneNode(true);
        clone.removeAttribute('ng-click');

        // Style it visually if needed
        clone.style.opacity = '0.6';
        clone.style.cursor = 'not-allowed';

        // Add our message
        clone.addEventListener('click', (e) => {
          e.preventDefault();
          e.stopPropagation();
          alert('Please upgrade to use this feature.');
        });

        // Replace original with clone
        originalBtn.replaceWith(clone);
        clone.dataset.replaced = 'true';
      }
    };

    const observer = new MutationObserver(interceptInitialEmailClick);
    observer.observe(document.body, { childList: true, subtree: true });

    interceptInitialEmailClick();
  });
</script>

//kill engage end
<script>
(function () {
  const container = document.querySelector('#dock-pane-2a > div > div > ui-view > div.meeting-dashboard');

  if (!container) return;

  function sortAccordion() {
    const accordionContainer = container.querySelector('uib-accordion > div');
    if (!accordionContainer) return;

    // Get all panel-heading elements
    const headings = Array.from(accordionContainer.querySelectorAll('.panel-heading'));

    // Map each heading to its associated panel-collapse (using aria-controls and id)
    const pairs = headings.map(heading => {
      const controlId = heading.querySelector('a')?.getAttribute('aria-controls');
      const panel = controlId ? accordionContainer.querySelector(`#${controlId}`) : null;
      return { heading, panel };
    });

    // Sort based on the .title span text
    pairs.sort((a, b) => {
      const textA = a.heading.querySelector('.title')?.textContent.trim() || '';
      const textB = b.heading.querySelector('.title')?.textContent.trim() || '';
      return textA.localeCompare(textB, undefined, { numeric: true, sensitivity: 'base' });
    });

    // Clear and re-add sorted pairs
    pairs.forEach(({ heading, panel }) => {
      accordionContainer.appendChild(heading);
      if (panel) accordionContainer.appendChild(panel);
    });
  }

  // Initial sort after a brief delay (in case of dynamic loading)
  setTimeout(sortAccordion, 500);

  // Set up MutationObserver to re-sort on changes
  const observer = new MutationObserver(() => {
    sortAccordion();
  });

  observer.observe(container, {
    childList: true,
    subtree: true
  });
})();

</script>
//catalog search test begin
<script>
document.addEventListener('DOMContentLoaded', function() {
  // 1) Grab your secondary‐nav container by the full JS path
  var navContainer = document.querySelector(
    "body > div.amplify-container.amplify-container-header.amplify-target-locator > \
     div:nth-child(2) > div:nth-child(1) > header > div > nav > div.secondary-container > div"
  );
  if (!navContainer) {
    console.warn('Catalog-search container not found.');
    return;
  }

  // 2) Build the catalog‐search form
  var catalogForm = document.createElement('form');
  catalogForm.action    = "https://oglesby-prcat.na2.iiivega.com/search";
  catalogForm.target    = "_blank";
  catalogForm.className = "catalog-search-form";
  catalogForm.style.marginTop = "0.5rem";  // a little breathing room
  catalogForm.innerHTML = `
    <div style="display: flex; align-items: center; gap: 0.5rem;">
      <label for="catalog-search-input" style="font-size: 0.9rem; white-space: nowrap;">
        Search the Catalog:
      </label>
      <input
        type="text"
        id="catalog-search-input"
        name="query"
        placeholder="Search the Catalog"
        style="padding: 0.25rem 0.5rem; font-size: 0.9rem;"
      >
      <button
        type="submit"
        style="padding: 0.3rem 0.6rem; font-size: 0.9rem; cursor: pointer;"
      >Go</button>
    </div>
    <input type="hidden" name="searchType" value="everything">
    <input type="hidden" name="pageSize"    value="10">
  `;

  // 3) Append it under that nav container
  navContainer.appendChild(catalogForm);
});
</script>
<script>
// Select all list items containing "Agenda" text or having an href attribute with the value "Agenda"
var items = document.querySelectorAll('li');

// Iterate over each matching list item
items.forEach(function(item) {
    // Check if the inner text or href attribute is "Agenda"
    if (item.innerText.trim() === "Agenda" || item.getAttribute('href') === "Agenda") {
        // Append " & Meeting Notice" to the end
        item.innerText += " & Meeting Notice";
    }
});

</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
    // Select the specified element
    const element = document.querySelector('#page-content > div > section.poc-instances.poc-instances-main-content > div > div > article > div > aside > ul');

    // Check if the element exists
    if (element) {
        // Select all list items within the element
        const listItems = element.querySelectorAll('li');

        // Check if there are more than four list items
        if (listItems.length > 1) {
            // Loop through the list items and hide the excess
            for (let i = 1; i < listItems.length; i++) {
                listItems[i].style.display = 'none';
            }
        }
    }
});
</script>
 

Join our mailing list