Skip to content

Commit e1db32a

Browse files
authored
Merge pull request #89 from pnp/refinement-results-for-search
refinement results tab for search
2 parents a80cd1e + 08a5974 commit e1db32a

File tree

10 files changed

+331
-149
lines changed

10 files changed

+331
-149
lines changed

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sp-editor",
3-
"version": "7.5.4",
3+
"version": "7.5.5",
44
"private": true,
55
"homepage": ".",
66
"dependencies": {

public/manifest.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "SP Editor",
33
"homepage_url": "https://microsoftedge.microsoft.com/addons/detail/affnnhcbfmcbbdlcadgkdbfafigmjdkk",
4-
"version": "7.5.4",
4+
"version": "7.5.5",
55
"description": "Create and update SharePoint Online/SP2013/SP2016/SP2019 css/js files, inject files to web, manage web/list properties, list Webhook",
66
"manifest_version": 3,
77
"devtools_page": "devtools.html",

src/pages/search/chrome/runsearch.ts

+1
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ export const runsearch = (payload: SP.ISearchQuery, extPath: string) => {
166166
TotalRows: r.postquery.PrimaryQueryResult?.RelevantResults?.TotalRows,
167167
TotalRowsIncludingDuplicates: r.postquery.PrimaryQueryResult?.RelevantResults?.TotalRowsIncludingDuplicates,
168168
RawSearchResults: r.postquery.PrimaryQueryResult,
169+
Refiners: r.postquery.PrimaryQueryResult?.RefinementResults,
169170
};
170171
return result;
171172
})

src/pages/search/components/commands.tsx

+40-2
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,50 @@ const SearchCommands = () => {
227227
color: MessageBarColors.danger,
228228
})
229229
);
230-
dispatch(setSearchResults([], [], undefined));
230+
dispatch(setSearchResults([], [], [], [], undefined));
231231
} else {
232232
var items: any[] = [];
233233
var groups: any[] = [];
234234
var uniqueKey = 0;
235235
var startIndex = 0;
236+
//console.log('Refiners: ', res.Refiners.Refiners.results);
237+
238+
// Map refiners
239+
var refinersItems: any[] = [];
240+
var refinersGroups: any[] = [];
241+
var refinersUniqueKey = 0;
242+
var refinersStartIndex = 0;
243+
244+
if (res.Refiners && res.Refiners.Refiners && res.Refiners.Refiners.results) {
245+
res.Refiners.Refiners.results.forEach((refiner: any) => {
246+
if (refiner.Entries && refiner.Entries.results) {
247+
// Create a group for each refiner
248+
refinersGroups.push({
249+
key: refiner.Name || `refiner-${refinersStartIndex}`,
250+
name: refiner.Name || "Unknown Refiner",
251+
startIndex: refinersStartIndex,
252+
count: refiner.Entries.results.length,
253+
level: 0,
254+
isCollapsed: true,
255+
});
256+
257+
// Map each entry in the refiner
258+
const refinementItems = refiner.Entries.results.map((entry: any, index: number) => ({
259+
key: refinersUniqueKey++,
260+
refinementName: entry.RefinementName || "",
261+
refinementValue: entry.RefinementValue || "",
262+
refinementCount: entry.RefinementCount || "0",
263+
refinementToken: entry.RefinementToken || "",
264+
refinerName: refiner.Name || "Unknown Refiner",
265+
row: index + 1
266+
}));
267+
268+
refinersItems = [...refinersItems, ...refinementItems];
269+
refinersStartIndex += refiner.Entries.results.length;
270+
}
271+
});
272+
}
273+
236274
res.PrimarySearchResults.forEach((item: any) => {
237275
const temp = Object.keys(item)
238276
.map((name) => ({
@@ -264,7 +302,7 @@ const SearchCommands = () => {
264302
startIndex += Object.keys(item).length;
265303
});
266304

267-
dispatch(setSearchResults(items, groups, res));
305+
dispatch(setSearchResults(items, groups, refinersItems, refinersGroups, res));
268306
}
269307
} else {
270308
//console.log('Injection failed: ', injectionResults);

src/pages/search/components/searchqueryform.tsx

+17-1
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ const SearchQueryForm = () => {
229229
dispatch(
230230
setSearchQuery({
231231
...searchQuery,
232-
QueryTemplate: newValue ? newValue : '',
232+
QueryTemplate: newValue ?? '',
233233
})
234234
)
235235
}
@@ -288,6 +288,22 @@ const SearchQueryForm = () => {
288288
else dispatch(setSearchQuery({ ...searchQuery, SortList: [] }));
289289
}}
290290
/>
291+
<TextField
292+
autoAdjustHeight
293+
multiline
294+
spellCheck={false}
295+
defaultValue={searchQuery.Refiners}
296+
label="Refiners"
297+
placeholder='eg. ContentType,FileType'
298+
onChange={(event, newValue?: string) => {
299+
dispatch(
300+
setSearchQuery({
301+
...searchQuery,
302+
Refiners: newValue ? newValue.replace(/\s+/g, '') : '',
303+
})
304+
);
305+
}}
306+
/>
291307
<TextField
292308
autoAdjustHeight
293309
multiline

0 commit comments

Comments
 (0)