aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--solr-8.3.1/CHANGES.txt2
-rw-r--r--solr-8.3.1/bin/solr-8983.pid2
-rw-r--r--src/client/documents/Documents.ts4
-rw-r--r--src/client/views/nodes/QueryBox.tsx2
-rw-r--r--src/client/views/search/SearchBox.scss8
-rw-r--r--src/client/views/search/SearchBox.tsx51
6 files changed, 48 insertions, 21 deletions
diff --git a/solr-8.3.1/CHANGES.txt b/solr-8.3.1/CHANGES.txt
index 219888b49..78ee2efc1 100644
--- a/solr-8.3.1/CHANGES.txt
+++ b/solr-8.3.1/CHANGES.txt
@@ -66,7 +66,7 @@ Upgrade Notes
----------------------
* Users who have written test cases that extend SolrTestCaseJ4 may see NullPointerExceptions if
- their tests directly reference both SolrTestCaseJ4.initCoreDataDir and SolrTestCaseJ4.deleteCore().
+ their tests directly reference both SolrTestCaseJ4.initCoreDataDir and TestCaseJ4.deleteCore().
This change in behavior is due to a bug fix in deleteCore() to ensure the dataDir is properly reset
in tests that call initCore()/deleteCore() multiple times in a given test (class). initCoreDataDir
is now deprecated, and users are encouraged to use SolrTestCaseJ4.initAndGetDataDir() in it's place.
diff --git a/solr-8.3.1/bin/solr-8983.pid b/solr-8.3.1/bin/solr-8983.pid
index 779eb1af5..5fee47e8f 100644
--- a/solr-8.3.1/bin/solr-8983.pid
+++ b/solr-8.3.1/bin/solr-8983.pid
@@ -1 +1 @@
-17656
+81262
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index 1a2969cf5..8676abbfd 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -41,7 +41,7 @@ import { ComputedField, ScriptField } from "../../new_fields/ScriptField";
import { ProxyField } from "../../new_fields/Proxy";
import { DocumentType } from "./DocumentTypes";
import { RecommendationsBox } from "../views/RecommendationsBox";
-import { SearchBox } from "../views/search/SearchBox";
+import { filterData} from "../views/search/SearchBox";
//import { PresBox } from "../views/nodes/PresBox";
//import { PresField } from "../../new_fields/PresField";
@@ -166,7 +166,7 @@ export interface DocumentOptions {
syntaxColor?: string; // can be applied to text for syntax highlighting all matches in the text
searchText?: string, //for searchbox
searchQuery?: string, // for queryBox
- filterQuery?: string,
+ filterQuery?: filterData,
linearViewIsExpanded?: boolean; // is linear view expanded
}
diff --git a/src/client/views/nodes/QueryBox.tsx b/src/client/views/nodes/QueryBox.tsx
index 7016b4f04..419768719 100644
--- a/src/client/views/nodes/QueryBox.tsx
+++ b/src/client/views/nodes/QueryBox.tsx
@@ -28,7 +28,7 @@ export class QueryBox extends DocAnnotatableComponent<FieldViewProps, QueryDocum
render() {
const dragging = !SelectionManager.GetIsDragging() ? "" : "-dragging";
return <div className={`queryBox${dragging}`} onWheel={(e) => e.stopPropagation()} >
- <SearchBox id={this.props.Document[Id]} searchQuery={StrCast(this.dataDoc.searchQuery)} filterQquery={StrCast(this.dataDoc.filterQuery)} />
+ <SearchBox id={this.props.Document[Id]} searchQuery={StrCast(this.dataDoc.searchQuery)} filterQuery={this.dataDoc.filterQuery} />
</div >;
}
} \ No newline at end of file
diff --git a/src/client/views/search/SearchBox.scss b/src/client/views/search/SearchBox.scss
index f0223ca76..804a623f7 100644
--- a/src/client/views/search/SearchBox.scss
+++ b/src/client/views/search/SearchBox.scss
@@ -44,9 +44,11 @@
&.searchBox-filter {
align-self: stretch;
+ button{
+ transform:none;
+ }
button:hover{
- transform:scale(1.0);
- background:"#121721";
+ transform:none;
}
}
@@ -95,7 +97,7 @@
background: #121721;
flex-direction: column;
transform-origin: top;
- transition: height 0.3s ease, display 0.6s ease;
+ transition: height 0.3s ease, display 0.6s ease, overflow 0.6s ease;
height:0px;
overflow:hidden;
diff --git a/src/client/views/search/SearchBox.tsx b/src/client/views/search/SearchBox.tsx
index 49b6b18ca..bc77bff2e 100644
--- a/src/client/views/search/SearchBox.tsx
+++ b/src/client/views/search/SearchBox.tsx
@@ -19,13 +19,14 @@ import { FieldView } from '../nodes/FieldView';
import { DocumentType } from "../../documents/DocumentTypes";
import { DocumentView } from '../nodes/DocumentView';
import { SelectionManager } from '../../util/SelectionManager';
+import { FilterQuery } from 'mongodb';
library.add(faTimes);
export interface SearchProps {
id: string;
searchQuery?: string;
- filterQquery?: string;
+ filterQuery?: filterData;
}
export enum Keys {
@@ -34,6 +35,13 @@ export enum Keys {
DATA = "data"
}
+export interface filterData{
+ deletedDocsStatus: boolean;
+ authorFieldStatus: boolean;
+ titleFieldStatus:boolean;
+ basicWordStatus:boolean;
+ icons: string[];
+}
@observer
export class SearchBox extends React.Component<SearchProps> {
@@ -65,6 +73,7 @@ export class SearchBox extends React.Component<SearchProps> {
@observable private _nodeStatus: boolean = false;
@observable private _keyStatus: boolean = false;
+ @observable private newAssign: boolean = true;
constructor(props: any) {
super(props);
@@ -77,10 +86,19 @@ export class SearchBox extends React.Component<SearchProps> {
this.inputRef.current.focus();
runInAction(() => this._searchbarOpen = true);
}
- if (this.props.searchQuery && this.props.filterQquery) {
+ if (this.props.searchQuery && this.props.filterQuery && this.newAssign) {
console.log(this.props.searchQuery);
const sq = this.props.searchQuery;
runInAction(() => {
+
+ this._deletedDocsStatus=this.props.filterQuery!.deletedDocsStatus;
+ this._authorFieldStatus=this.props.filterQuery!.authorFieldStatus
+ this._titleFieldStatus=this.props.filterQuery!.titleFieldStatus;
+ this._basicWordStatus=this.props.filterQuery!.basicWordStatus;
+ this._icons=this.props.filterQuery!.icons;
+ this.newAssign=false;
+ });
+ runInAction(() => {
this._searchString = sq;
this.submitSearch();
});
@@ -166,10 +184,10 @@ export class SearchBox extends React.Component<SearchProps> {
}
//if should be searched in a specific collection
- if (this._collectionStatus) {
- query = this.addCollectionFilter(query);
- query = query.replace(/\s+/g, ' ').trim();
- }
+ // if (this._collectionStatus) {
+ // query = this.addCollectionFilter(query);
+ // query = query.replace(/\s+/g, ' ').trim();
+ // }
return query;
}
@@ -416,7 +434,14 @@ export class SearchBox extends React.Component<SearchProps> {
y += 300;
}
}
- return Docs.Create.QueryDocument({ _autoHeight: true, title: this._searchString, filterQuery: this.filterQuery, searchQuery: this._searchString });
+ const filter : filterData = {
+ deletedDocsStatus: this._deletedDocsStatus,
+ authorFieldStatus: this._authorFieldStatus,
+ titleFieldStatus: this._titleFieldStatus,
+ basicWordStatus: this._basicWordStatus,
+ icons: this._icons,
+ }
+ return Docs.Create.QueryDocument({ _autoHeight: true, title: this._searchString, filterQuery: filter, searchQuery: this._searchString });
}
@action.bound
@@ -450,10 +475,10 @@ export class SearchBox extends React.Component<SearchProps> {
const scrollY = e ? e.currentTarget.scrollTop : this._resultsRef.current ? this._resultsRef.current.scrollTop : 0;
const itemHght = 53;
const startIndex = Math.floor(Math.max(0, scrollY / itemHght));
- const endIndex = Math.ceil(Math.min(this._numTotalResults - 1, startIndex + (this._resultsRef.current.getBoundingClientRect().height / itemHght)));
-
+ //const endIndex = Math.ceil(Math.min(this._numTotalResults - 1, startIndex + (this._resultsRef.current.getBoundingClientRect().height / itemHght)));
+ const endIndex= 30;
this._endIndex = endIndex === -1 ? 12 : endIndex;
-
+ this._endIndex=30;
if ((this._numTotalResults === 0 || this._results.length === 0) && this._openNoResults) {
this._visibleElements = [<div className="no-result">No Search Results</div>];
return;
@@ -649,11 +674,11 @@ export class SearchBox extends React.Component<SearchProps> {
<input value={this._searchString} onChange={this.onChange} type="text" placeholder="Search..." id="search-input" ref={this.inputRef}
className="searchBox-barChild searchBox-input" onPointerDown={this.openSearch} onKeyPress={this.enter} onFocus={this.openSearch}
style={{ width: this._searchbarOpen ? "500px" : "100px" }} />
- <button className="searchBox-barChild searchBox-filter" title="Advanced Filtering Options" onClick={() => this.handleFilterChange()}><FontAwesomeIcon icon="ellipsis-v" color="white" /></button>
+ <button className="searchBox-barChild searchBox-filter" style={{transform:"none"}} title="Advanced Filtering Options" onClick={() => this.handleFilterChange()}><FontAwesomeIcon icon="ellipsis-v" color="white" /></button>
</div>
- <div id={`filterhead${this.props.id}`} className="filter-form" >
- <div id={`filterhead2${this.props.id}`} className="filter-header" style={this._filterOpen ? {} : {}}>
+ <div id={`filterhead${this.props.id}`} className="filter-form" style={this._filterOpen && this._numTotalResults >0 ? {overflow:"visible"} : {overflow:"hidden"}}>
+ <div id={`filterhead2${this.props.id}`} className="filter-header" >
<button className="filter-item" style={this._basicWordStatus ? { background: "#aaaaa3", } : {}} onClick={this.handleWordQueryChange}>Keywords</button>
<button className="filter-item" style={this._keyStatus ? { background: "#aaaaa3" } : {}} onClick={this.handleKeyChange}>Keys</button>
<button className="filter-item" style={this._nodeStatus ? { background: "#aaaaa3" } : {}} onClick={this.handleNodeChange}>Nodes</button>