You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2019/12/23 18:02:31 UTC
[sling-org-apache-sling-app-cms] 04/04: SLING-8919 - Updating to
support filtering by title and data-value
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 <dk...@apache.org>
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();
}
},
},