Skip to content

Commit

Permalink
fix: adjust search_fields and fields for graphs
Browse files Browse the repository at this point in the history
  • Loading branch information
mguellsegarra committed Dec 24, 2024
1 parent b4cb905 commit e201659
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 59 deletions.
38 changes: 15 additions & 23 deletions src/actionbar/GraphActionBar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,7 @@ import ButtonWithBadge from "./ButtonWithBadge";
import { ReloadOutlined, FilterOutlined } from "@ant-design/icons";
import { View } from "@/types";

function GraphActionBar({
refreshGraph,
mustShowSearchFilter,
}: {
refreshGraph: () => void;
mustShowSearchFilter: boolean;
}) {
function GraphActionBar({ refreshGraph }: { refreshGraph: () => void }) {
const { t } = useLocale();
const {
availableViews,
Expand All @@ -33,22 +27,20 @@ function GraphActionBar({

return (
<Space wrap={true}>
{mustShowSearchFilter && (
<ButtonWithBadge
icon={
<FilterOutlined
style={{ color: searchVisible ? "white" : undefined }}
/>
}
tooltip={t("advanced_search")}
type={searchVisible ? "primary" : "default"}
onClick={() => {
setSearchVisible?.(!searchVisible);
}}
disabled={graphIsLoading}
badgeNumber={searchParams?.length}
/>
)}
<ButtonWithBadge
icon={
<FilterOutlined
style={{ color: searchVisible ? "white" : undefined }}
/>
}
tooltip={t("advanced_search")}
type={searchVisible ? "primary" : "default"}
onClick={() => {
setSearchVisible?.(!searchVisible);
}}
disabled={graphIsLoading}
badgeNumber={searchParams?.length}
/>
<ActionButton
icon={<ReloadOutlined />}
tooltip={t("refresh")}
Expand Down
2 changes: 2 additions & 0 deletions src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ export type GraphView = {
view_id: number;
name: string;
title?: string;
fields: any;
search_fields?: SearchFields;
};

export type View = TreeView | FormView | DashboardView | GraphView;
Expand Down
5 changes: 5 additions & 0 deletions src/views/ActionView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,11 @@ function ActionView(props: Props, ref: any) {
formView={
availableViews.find((v) => v.type === "form") as FormView
}
graphView={
availableViews.find(
(v) => v.view_id === view.view_id,
) as GraphView
}
/>
);
}
Expand Down
86 changes: 50 additions & 36 deletions src/views/actionViews/GraphActionView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
ActionViewContext,
ActionViewContextType,
} from "@/context/ActionViewContext";
import { FormView, TreeView } from "@/types";
import { FormView, GraphView, TreeView } from "@/types";
import { mergeSearchFields } from "@/helpers/formHelper";
import { useSearch } from "@/hooks/useSearch";
import SearchFilter from "@/widgets/views/searchFilter/SearchFilter";
Expand All @@ -21,11 +21,20 @@ export type GraphActionViewProps = {
domain: any;
formView: FormView;
treeView: TreeView;
graphView: GraphView;
};

export const GraphActionView = (props: GraphActionViewProps) => {
const { viewData, visible, model, context, domain, formView, treeView } =
props;
const {
viewData,
visible,
model,
context,
domain,
formView,
treeView,
graphView,
} = props;
const graphRef = useRef();

const actionViewContext = useContext(
Expand Down Expand Up @@ -91,13 +100,19 @@ export const GraphActionView = (props: GraphActionViewProps) => {
});

const searchFields = useMemo(
() => mergeSearchFields([formView?.search_fields, treeView?.search_fields]),
[formView?.search_fields, treeView?.search_fields],
() =>
mergeSearchFields([
formView?.search_fields,
treeView?.search_fields,
graphView?.search_fields,
]),
[
formView?.search_fields,
treeView?.search_fields,
graphView?.search_fields,
],
);

const mustShowSearchFilter =
searchFields.primary.length > 0 || searchFields.secondary.length > 0;

if (!visible) {
return null;
}
Expand All @@ -113,36 +128,35 @@ export const GraphActionView = (props: GraphActionViewProps) => {
refreshGraph={() => {
(graphRef.current as any).refresh();
}}
mustShowSearchFilter={mustShowSearchFilter}
/>
</TitleHeader>
{mustShowSearchFilter && (
<SearchFilter
fields={{ ...treeView?.fields, ...formView?.fields }}
searchFields={mergeSearchFields([
formView?.search_fields,
treeView?.search_fields,
])}
limit={limit!}
onClear={clear}
offset={offset}
isSearching={searchFilterLoading}
onSubmit={(opts: {
params: any;
limit: number;
offset: number;
searchValues: any;
}) => {
setApplyLimit(false);
setSearchParams?.(opts.params);
setSearchVisible?.(false);
}}
searchError={searchError}
searchVisible={searchVisible}
searchValues={searchValues}
showLimitOptions={false}
/>
)}

<SearchFilter
fields={{
...treeView?.fields,
...formView?.fields,
...graphView?.fields,
}}
searchFields={searchFields}
limit={limit!}
onClear={clear}
offset={offset}
isSearching={searchFilterLoading}
onSubmit={(opts: {
params: any;
limit: number;
offset: number;
searchValues: any;
}) => {
setApplyLimit(false);
setSearchParams?.(opts.params);
setSearchVisible?.(false);
}}
searchError={searchError}
searchVisible={searchVisible}
searchValues={searchValues}
showLimitOptions={false}
/>
{tableRefreshing ? (
<Spin />
) : (
Expand Down

0 comments on commit e201659

Please sign in to comment.