This is an automated email from the ASF dual-hosted git repository. dklco pushed a commit to branch SLING-8947-grid-missing-fields in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 1294061a0d3e70f807c8cc96fecbbceb50962777 Author: Dan Klco <[email protected]> AuthorDate: Mon Dec 23 13:02:17 2019 -0500 SLING-8919 - Updating to support filtering by title and data-value --- ui/src/main/frontend/js/cms.nav.js | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/ui/src/main/frontend/js/cms.nav.js b/ui/src/main/frontend/js/cms.nav.js index cac2a49..eb5a946 100644 --- a/ui/src/main/frontend/js/cms.nav.js +++ b/ui/src/main/frontend/js/cms.nav.js @@ -44,12 +44,26 @@ rava.bind('.contentnav', { const searchParam = urlParams.get('search'); const cnav = this; const search = document.querySelector('.contentnav-search input[name=search]'); + function attrContains(ctx, attr) { + let matches = false; + const value = search.value.toLowerCase(); + ctx.querySelectorAll(`*[${attr}]`).forEach((it) => { + if (it.getAttribute(attr).indexOf(value) !== -1) { + matches = true; + } + }); + return matches; + } function filter(event) { - event.stopPropagation(); - event.preventDefault(); + if (event) { + event.stopPropagation(); + event.preventDefault(); + } const value = search.value.toLowerCase(); cnav.querySelectorAll('.contentnav__item').forEach((item) => { - if (item.innerText.toLowerCase().indexOf(value) === -1 && !item.querySelector(`*[data-value="${resourceParam}"]`)) { + if (item.innerText.toLowerCase().indexOf(value) === -1 + && !attrContains(item, 'title') + && !attrContains(item, 'data-value')) { item.classList.add('is-hidden'); } else { item.classList.remove('is-hidden'); @@ -72,7 +86,7 @@ rava.bind('.contentnav', { document.querySelector('.contentnav-search input[name=search]').value = resourceParam; } else if (searchParam) { document.querySelector('.contentnav-search input[name=search]').value = searchParam; - filter(new Event('fake')); + filter(); } }, },
