diff --git a/src/pat/contentbrowser/src/ContentBrowser.svelte b/src/pat/contentbrowser/src/ContentBrowser.svelte
index 240dd6363..0cc19fe62 100644
--- a/src/pat/contentbrowser/src/ContentBrowser.svelte
+++ b/src/pat/contentbrowser/src/ContentBrowser.svelte
@@ -180,8 +180,10 @@
const possibleFocusEls = [
...document.querySelectorAll(".levelColumn .inPath"), // previously selected folder
...document.querySelectorAll(".levelColumn .selectedItem"), // previously selected item
- document.querySelector(".levelColumn .contentItem"), // default first item
];
+ if(!possibleFocusEls.length && document.querySelector(".levelColumn .contentItem")) {
+ possibleFocusEls.push(document.querySelector(".levelColumn .contentItem"));
+ }
if (possibleFocusEls.length) {
keyboardNavInitialized = true;
possibleFocusEls[0].focus();
@@ -310,18 +312,12 @@
}
function itemInPath(item) {
- return $currentPath.indexOf(item.path) != -1;
+ return $config.mode == "browse" && $currentPath.indexOf(item.path) != -1;
}
- function filterItems() {
- let timeoutId;
- if (timeoutId) {
- clearTimeout(timeoutId);
- }
- timeoutId = setTimeout(() => {
- contentItems.get({ path: $currentPath, searchTerm: this.value });
- }, 300);
- }
+ const filterItems = utils.debounce((e) => {
+ contentItems.get({ path: $currentPath, searchTerm: e.target.value });
+ }, 300);
function loadMore(node) {
const observer = new IntersectionObserver(
@@ -506,6 +502,9 @@
}}
/>
{item.Title}
+ {#if $config.mode == "search"}
+
{item.path}
+ {/if}
{/if}
{#if item.is_folderish && $config.mode == "browse"}
diff --git a/src/pat/contentbrowser/src/ContentStore.js b/src/pat/contentbrowser/src/ContentStore.js
index 5dad55168..d986aa54e 100644
--- a/src/pat/contentbrowser/src/ContentStore.js
+++ b/src/pat/contentbrowser/src/ContentStore.js
@@ -133,7 +133,7 @@ export default function (config, pathCache) {
page: page,
};
if (searchTerm) {
- if (searchTerm.length < 3) {
+ if (searchTerm.length < 2) {
// minimum length of search term
return;
}
@@ -205,7 +205,7 @@ export default function (config, pathCache) {
page = 1,
}) => {
if (config.mode === "search") {
- await search(searchTerm, page)
+ await search(searchTerm, page);
} else if (loadMorePath) {
const pC = get(pathCache);
if (!(loadMorePath in pC)) {
diff --git a/src/pat/contentbrowser/src/utils.js b/src/pat/contentbrowser/src/utils.js
index 64cd30676..395af9861 100644
--- a/src/pat/contentbrowser/src/utils.js
+++ b/src/pat/contentbrowser/src/utils.js
@@ -53,7 +53,7 @@ export async function request({
},
],
};
- if (selectableTypes) {
+ if (selectableTypes.length) {
vocabQuery.criteria.push({
i: "portal_type",
o: "plone.app.querystring.operation.list.contains",