Skip to content

Commit ce88a14

Browse files
authored
Merge pull request #267 from 4dn-dcic/cfm-browse_view
feat: browse view support
2 parents 409000f + 72db4a2 commit ce88a14

18 files changed

+543
-223
lines changed

es/components/browse/SearchView.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
55
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
66
import _inherits from "@babel/runtime/helpers/inherits";
77
import _defineProperty from "@babel/runtime/helpers/defineProperty";
8-
var _excluded = ["href", "context", "showClearFiltersButton", "schemas", "currentAction", "facets", "navigate", "columns", "columnExtensionMap", "placeholderReplacementFxn", "keepSelectionInStorage", "searchViewHeader", "windowWidth", "hideFacets", "hideStickyFooter", "useCustomSelectionController"];
8+
var _excluded = ["href", "context", "showClearFiltersButton", "schemas", "currentAction", "facets", "navigate", "columns", "columnExtensionMap", "placeholderReplacementFxn", "keepSelectionInStorage", "searchViewHeader", "windowWidth", "hideFacets", "hideStickyFooter", "useCustomSelectionController", "facetListSortFxns"];
99
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1010
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1111
function _callSuper(_this, derived, args) {
@@ -102,6 +102,8 @@ export var SearchView = /*#__PURE__*/function (_React$PureComponent) {
102102
hideFacets = _this$props.hideFacets,
103103
hideStickyFooter = _this$props.hideStickyFooter,
104104
useCustomSelectionController = _this$props.useCustomSelectionController,
105+
_this$props$facetList = _this$props.facetListSortFxns,
106+
facetListSortFxns = _this$props$facetList === void 0 ? null : _this$props$facetList,
105107
passProps = _objectWithoutProperties(_this$props, _excluded);
106108
var contextFacets = context.facets;
107109

@@ -118,6 +120,7 @@ export var SearchView = /*#__PURE__*/function (_React$PureComponent) {
118120
windowWidth: windowWidth,
119121
isOwnPage: true,
120122
facets: propFacets || contextFacets,
123+
facetListSortFxns: facetListSortFxns,
121124
hideStickyFooter: hideStickyFooter
122125
});
123126
var controllersAndView = /*#__PURE__*/React.createElement(WindowNavigationController, {

es/components/browse/components/ControlsAndResults.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ export var ControlsAndResults = /*#__PURE__*/function (_React$PureComponent) {
9595
facets = _this$props2.facets,
9696
termTransformFxn = _this$props2.termTransformFxn,
9797
rowHeight = _this$props2.rowHeight,
98+
facetListSortFxns = _this$props2.facetListSortFxns,
9899
separateSingleTermFacets = _this$props2.separateSingleTermFacets,
99100
navigate = _this$props2.navigate,
100101
_this$props2$facetCol = _this$props2.facetColumnClassName,
@@ -145,7 +146,13 @@ export var ControlsAndResults = /*#__PURE__*/function (_React$PureComponent) {
145146
_this$props2$selected = _this$props2.selectedItems,
146147
selectedItems = _this$props2$selected === void 0 ? null : _this$props2$selected,
147148
sortBy = _this$props2.sortBy,
148-
sortColumns = _this$props2.sortColumns;
149+
sortColumns = _this$props2.sortColumns,
150+
_this$props2$userDown = _this$props2.userDownloadAccess,
151+
userDownloadAccess = _this$props2$userDown === void 0 ? {} : _this$props2$userDown,
152+
_this$props2$fetchPro = _this$props2.fetchProps,
153+
fetchProps = _this$props2$fetchPro === void 0 ? null : _this$props2$fetchPro,
154+
_this$props2$customCo = _this$props2.customColumnSearchHref,
155+
customColumnSearchHref = _this$props2$customCo === void 0 ? null : _this$props2$customCo;
149156

150157
// Initial results. Will get cloned to SearchResultTable state and added onto during load-as-you-scroll.
151158
var _ref = context || {},
@@ -172,6 +179,7 @@ export var ControlsAndResults = /*#__PURE__*/function (_React$PureComponent) {
172179
href: href,
173180
columnDefinitions: columnDefinitions,
174181
facets: facets,
182+
facetListSortFxns: facetListSortFxns,
175183
hiddenColumns: hiddenColumns,
176184
addHiddenColumn: addHiddenColumn,
177185
removeHiddenColumn: removeHiddenColumn,
@@ -248,6 +256,10 @@ export var ControlsAndResults = /*#__PURE__*/function (_React$PureComponent) {
248256
maxHeight: maxHeight,
249257
maxResultsBodyHeight: maxResultsBodyHeight,
250258
targetTabKey: targetTabKey,
259+
fetchProps: fetchProps,
260+
userDownloadAccess: userDownloadAccess,
261+
customColumnSearchHref: customColumnSearchHref,
262+
// Used by ResultRow to request data for custom columns
251263
isContextLoading: isContextLoading // <- Only applicable for EmbeddedSearchView, else is false always
252264
}, {
253265
ref: this.searchResultTableRef,

es/components/browse/components/FacetList/FacetTermsList.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,9 @@ export var FacetTermsList = /*#__PURE__*/function (_React$PureComponent2) {
423423
context = _this$props6.context,
424424
schemas = _this$props6.schemas,
425425
searchText = _this$props6.searchText,
426-
handleBasicTermSearch = _this$props6.handleBasicTermSearch;
426+
handleBasicTermSearch = _this$props6.handleBasicTermSearch,
427+
_this$props6$sortFxn = _this$props6.sortFxn,
428+
sortFxn = _this$props6$sortFxn === void 0 ? null : _this$props6$sortFxn;
427429
var _facet$description = facet.description,
428430
facetSchemaDescription = _facet$description === void 0 ? null : _facet$description,
429431
field = facet.field,
@@ -508,6 +510,7 @@ export var FacetTermsList = /*#__PURE__*/function (_React$PureComponent2) {
508510
schemas: schemas,
509511
persistentCount: persistentCount,
510512
basicSearchAutoDisplayLimit: basicSearchAutoDisplayLimit,
513+
sortFxn: sortFxn,
511514
useRadioIcon: useRadioIcon,
512515
persistSelectedTerms: persistSelectedTerms,
513516
filteringFieldTerm: filteringFieldTerm,
@@ -539,7 +542,9 @@ var ListOfTerms = /*#__PURE__*/React.memo(function (props) {
539542
basicSearchAutoDisplayLimit = props.basicSearchAutoDisplayLimit,
540543
useRadioIcon = props.useRadioIcon,
541544
_props$persistSelecte = props.persistSelectedTerms,
542-
propPersistSelectedTerms = _props$persistSelecte === void 0 ? true : _props$persistSelecte;
545+
propPersistSelectedTerms = _props$persistSelecte === void 0 ? true : _props$persistSelecte,
546+
_props$sortFxn = props.sortFxn,
547+
sortFxn = _props$sortFxn === void 0 ? null : _props$sortFxn;
543548
var _facet$search_type = facet.search_type,
544549
searchType = _facet$search_type === void 0 ? 'none' : _facet$search_type;
545550
var facetPersistSelectedTerms = facet.persist_selected_terms,
@@ -655,6 +660,11 @@ var ListOfTerms = /*#__PURE__*/React.memo(function (props) {
655660
} else if (searchType === 'sayt_without_terms') {
656661
unselectedTermComponents = [];
657662
}
663+
664+
// sort unselected terms if custom sort function provided
665+
if (sortFxn && typeof sortFxn === 'function') {
666+
unselectedTermComponents = unselectedTermComponents.sort(sortFxn);
667+
}
658668
var selectedLen = selectedTermComponents.length;
659669
var omittedLen = omittedTermComponents.length;
660670
var unselectedLen = unselectedTermComponents.length;

es/components/browse/components/FacetList/index.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,6 @@ export var FacetList = /*#__PURE__*/function (_React$PureComponent) {
136136
var _this2;
137137
_classCallCheck(this, FacetList);
138138
_this2 = _callSuper(this, FacetList, [props]);
139-
console.log("FacetList props,", props);
140139
_this2.onFilterExtended = _this2.onFilterExtended.bind(_this2);
141140
_this2.onFilterMultipleExtended = _this2.onFilterMultipleExtended.bind(_this2);
142141
_this2.getTermStatus = _this2.getTermStatus.bind(_this2);
@@ -441,6 +440,8 @@ export var FacetList = /*#__PURE__*/function (_React$PureComponent) {
441440
var _this$props5 = this.props,
442441
_this$props5$facets = _this$props5.facets,
443442
facets = _this$props5$facets === void 0 ? null : _this$props5$facets,
443+
_this$props5$facetLis = _this$props5.facetListSortFxns,
444+
facetListSortFxns = _this$props5$facetLis === void 0 ? null : _this$props5$facetLis,
444445
_this$props5$separate = _this$props5.separateSingleTermFacets,
445446
separateSingleTermFacets = _this$props5$separate === void 0 ? false : _this$props5$separate,
446447
context = _this$props5.context,
@@ -465,6 +466,7 @@ export var FacetList = /*#__PURE__*/function (_React$PureComponent) {
465466
termTransformFxn: termTransformFxn,
466467
persistentCount: persistentCount,
467468
separateSingleTermFacets: separateSingleTermFacets,
469+
facetListSortFxns: facetListSortFxns,
468470
openPopover: openPopover,
469471
including: including,
470472
filteringFieldTerm: filteringFieldTerm,
@@ -667,6 +669,7 @@ export var FacetList = /*#__PURE__*/function (_React$PureComponent) {
667669
}));
668670
}
669671
if (aggregation_type === "terms") {
672+
var _props$facetListSortF;
670673
// Account for omitted fields; ensure a facet with the cleaned field is passed in
671674
var cleanFacet = _objectSpread({}, facet);
672675
var lastCharIdx = facetField.length - 1;
@@ -677,6 +680,7 @@ export var FacetList = /*#__PURE__*/function (_React$PureComponent) {
677680
var _isStatic = !_anySelected && facet.terms.length === 1;
678681
return /*#__PURE__*/React.createElement(TermsFacet, _extends({}, props, {
679682
facet: cleanFacet,
683+
sortFxn: props === null || props === void 0 || (_props$facetListSortF = props.facetListSortFxns) === null || _props$facetListSortF === void 0 ? void 0 : _props$facetListSortF[cleanField],
680684
isStatic: _isStatic,
681685
grouping: grouping,
682686
termsSelectedCount: termsSelectedCount,

es/components/browse/components/SearchResultDetailPane.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,7 @@ export var SearchResultDetailPane = /*#__PURE__*/function (_React$PureComponent)
5555
className: "flex-description-container"
5656
}, /*#__PURE__*/React.createElement("h5", null, /*#__PURE__*/React.createElement("i", {
5757
className: "icon icon-fw icon-align-left fas"
58-
}), "\xA0 Description"), /*#__PURE__*/React.createElement(FlexibleDescriptionBox
59-
//windowWidth={this.props.windowWidth}
60-
, {
58+
}), "\xA0 Description"), /*#__PURE__*/React.createElement(FlexibleDescriptionBox, {
6159
description: result.description,
6260
fitTo: "self",
6361
textClassName: "text-normal",

0 commit comments

Comments
 (0)