+ {allVersionsToggle && (
+
+ )}
{aggs.map((agg) => (
))}
@@ -17,4 +25,9 @@ export const SearchAppFacets = ({ aggs, appName }) => {
SearchAppFacets.propTypes = {
aggs: PropTypes.array.isRequired,
appName: PropTypes.string.isRequired,
+ allVersionsToggle: PropTypes.bool,
+};
+
+SearchAppFacets.defaultProps = {
+ allVersionsToggle: false,
};
diff --git a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/SearchAppLayout.jsx b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/SearchAppLayout.jsx
index 99bdd256..18817905 100644
--- a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/SearchAppLayout.jsx
+++ b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/SearchAppLayout.jsx
@@ -23,14 +23,17 @@ export const ActiveFiltersCountFloatingLabelComponent = ({
className,
}) => {
const { filters } = currentQueryState;
- const searchAppContext = useContext(SearchConfigurationContext);
- const {
- initialQueryState: { filters: initialFilters },
- } = searchAppContext;
+ const { aggs } = useContext(SearchConfigurationContext);
+ const aggNames = aggs.map((agg) => agg.aggName);
+ const activeFiltersNumber = filters
+ .map((filter) => filter[0])
+ .filter((filter) => aggNames.includes(filter)).length;
return (
-
+ activeFiltersNumber > 0 && (
+
+ )
);
};
diff --git a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/SearchAppLayoutWithSearchbar.jsx b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/SearchAppLayoutWithSearchbar.jsx
index a6b2e9ed..0aaa8a24 100644
--- a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/SearchAppLayoutWithSearchbar.jsx
+++ b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/SearchAppLayoutWithSearchbar.jsx
@@ -42,7 +42,13 @@ export const SearchAppLayoutWithSearchbarHOC = ({
/>
-
+
+
+
@@ -68,9 +74,7 @@ export const SearchAppLayoutWithSearchbarHOC = ({
className="facets-sidebar-open-button"
>
-
-
-
+
{
- const _isChecked = (userSelectionFilters) => {
- const isFilterActive =
- userSelectionFilters.filter((filter) => filter[0] === filterValue[0])
- .length > 0;
- return isFilterActive;
- };
-
- const onToggleClicked = () => {
- updateQueryFilters(filterValue);
- };
-
- const isChecked = _isChecked(userSelectionFilters);
- return (
-
-
- {title}
-
-
-
-
-
- );
-};
-
-SearchFiltersToggleElement.propTypes = {
- title: PropTypes.string.isRequired,
- label: PropTypes.string.isRequired,
- filterValue: PropTypes.array.isRequired,
- userSelectionFilters: PropTypes.array.isRequired,
- updateQueryFilters: PropTypes.func.isRequired,
-};
diff --git a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/ShouldActiveFiltersRender.jsx b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/ShouldActiveFiltersRender.jsx
index 7ebc51ab..e8e89852 100644
--- a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/ShouldActiveFiltersRender.jsx
+++ b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/ShouldActiveFiltersRender.jsx
@@ -9,14 +9,13 @@ const ShouldActiveFiltersRenderComponent = ({
children,
}) => {
const { filters } = currentQueryState;
- const searchAppContext = useContext(SearchConfigurationContext);
- const {
- initialQueryState: { filters: initialFilters },
- } = searchAppContext;
+ const { aggs } = useContext(SearchConfigurationContext);
+ const aggNames = aggs.map((agg) => agg.aggName);
+ const activeFiltersNumber = filters
+ .map((filter) => filter[0])
+ .filter((filter) => aggNames.includes(filter)).length;
return (
- initialFilters?.length}>
- {children}
-
+ 0}>{children}
);
};
diff --git a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/index.js b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/index.js
index 28f165ca..b90f4952 100644
--- a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/index.js
+++ b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/index.js
@@ -11,7 +11,6 @@ export {
export { SearchAppResultOptions } from "./SearchAppResultOptions";
export { SearchAppSearchbarContainer } from "./SearchAppSearchbarContainer";
export { SearchAppSort } from "./SearchAppSort";
-export { SearchFiltersToggleElement } from "./SearchFiltersToggleElement";
export { SearchAppResults } from "./SearchAppResults";
export { EmptyResultsElement } from "./EmptyResultsElement";
export { ResultsPerPageLabel } from "./ResultsPerPageLabel";
diff --git a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/util.js b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/util.js
index 909638ee..17fb4c29 100644
--- a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/util.js
+++ b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/search/util.js
@@ -16,12 +16,12 @@ import {
SearchAppLayout,
SearchAppResultOptions,
SearchAppSearchbarContainer,
- SearchFiltersToggleElement,
SearchAppSort,
SearchAppResults,
FoldableBucketAggregationElement,
} from "@js/oarepo_ui/search";
import { loadAppComponents } from "../util";
+import { RDMToggleComponent } from "@js/invenio_app_rdm/search/components";
export function parseSearchAppConfigs(
configDataAttr = "invenio-search-config"
@@ -66,7 +66,7 @@ export function createSearchAppsInit({
[`${overridableIdPrefix}.SearchApp.searchbarContainer`]:
SearchAppSearchbarContainerWithConfig,
[`${overridableIdPrefix}.SearchFilters.Toggle.element`]:
- SearchFiltersToggleElement,
+ RDMToggleComponent,
[`${overridableIdPrefix}.SearchApp.sort`]: SearchAppSort,
[`${overridableIdPrefix}.SearchApp.results`]: SearchAppResults,
};
diff --git a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/util.js b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/util.js
index 9939ff35..16041e60 100644
--- a/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/util.js
+++ b/oarepo_ui/theme/assets/semantic-ui/js/oarepo_ui/util.js
@@ -8,6 +8,7 @@ import * as Yup from "yup";
import { i18next } from "@translations/oarepo_ui/i18next";
import { format } from "date-fns";
import axios from "axios";
+import { overrideStore } from "react-overridable";
export const getInputFromDOM = (elementName) => {
const element = document.getElementsByName(elementName);
@@ -126,6 +127,8 @@ export async function loadAppComponents({
...resourceConfigComponents,
...componentOverrides,
...templateComponents,
+ // make it possible to override from invenio.cfg as intermediary step, until this is decomissioned
+ ...overrideStore.getAll(),
};
return loadComponents(overridableIdPrefix, components);
diff --git a/oarepo_ui/theme/assets/semantic-ui/less/oarepo_ui/themes/default/views/card.overrides b/oarepo_ui/theme/assets/semantic-ui/less/oarepo_ui/themes/default/views/card.overrides
index 5465f844..f5d751fb 100644
--- a/oarepo_ui/theme/assets/semantic-ui/less/oarepo_ui/themes/default/views/card.overrides
+++ b/oarepo_ui/theme/assets/semantic-ui/less/oarepo_ui/themes/default/views/card.overrides
@@ -1,4 +1,11 @@
-.ui.card.foldable.facet {
- width: 100%;
- padding-right: 1rem;
+.ui.card {
+ &.foldable.facet {
+ width: 100%;
+ padding-right: 1rem;
+ }
+ &.borderless.facet {
+ .content {
+ border-top: none;
+ }
+ }
}