fix: [one-click-binding] filter out the non searchable columns from … (#26386)
…columns dropdowns > Pull Request Template > > Use this template to quickly create a well written pull request. Delete all quotes before creating the pull request. > ## Description > Add a TL;DR when description is extra long (helps content team) > > Please include a summary of the changes and which issue has been fixed. Please also include relevant motivation > and context. List any dependencies that are required for this change > > Links to Notion, Figma or any other documents that might be relevant to the PR > > #### PR fixes following issue(s) Fixes https://github.com/appsmithorg/appsmith/issues/26374 > if no issue exists, please create an issue and ask the maintainers about this first > > #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [x] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [x] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
This commit is contained in:
parent
d78b709c12
commit
debcc6d0af
|
|
@ -20,7 +20,7 @@ export function useConnectData() {
|
||||||
|
|
||||||
const widget = useSelector((state: AppState) => getWidget(state, widgetId));
|
const widget = useSelector((state: AppState) => getWidget(state, widgetId));
|
||||||
|
|
||||||
const { columns, primaryColumn } = useColumns("");
|
const { columns, primaryColumn } = useColumns("", false);
|
||||||
|
|
||||||
const isLoading = useSelector(
|
const isLoading = useSelector(
|
||||||
getisOneClickBindingConnectingForWidget(widgetId),
|
getisOneClickBindingConnectingForWidget(widgetId),
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,12 @@ type Props = {
|
||||||
alias: string;
|
alias: string;
|
||||||
label: string;
|
label: string;
|
||||||
onSelect: () => void;
|
onSelect: () => void;
|
||||||
|
isSearcheable: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
function ColumnDropdown(props: Props) {
|
function ColumnDropdown(props: Props) {
|
||||||
|
const { alias, isSearcheable } = props;
|
||||||
|
|
||||||
const {
|
const {
|
||||||
disabled,
|
disabled,
|
||||||
error,
|
error,
|
||||||
|
|
@ -22,7 +25,7 @@ function ColumnDropdown(props: Props) {
|
||||||
options,
|
options,
|
||||||
selected,
|
selected,
|
||||||
show,
|
show,
|
||||||
} = useColumns(props.alias);
|
} = useColumns(alias, isSearcheable);
|
||||||
|
|
||||||
if (show) {
|
if (show) {
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,9 @@ import { DropdownOption as Option } from "../../CommonControls/DatasourceDropdow
|
||||||
import { getisOneClickBindingConnectingForWidget } from "selectors/oneClickBindingSelectors";
|
import { getisOneClickBindingConnectingForWidget } from "selectors/oneClickBindingSelectors";
|
||||||
import AnalyticsUtil from "utils/AnalyticsUtil";
|
import AnalyticsUtil from "utils/AnalyticsUtil";
|
||||||
import { getWidget } from "sagas/selectors";
|
import { getWidget } from "sagas/selectors";
|
||||||
|
import { ALLOWED_SEARCH_DATATYPE } from "pages/Editor/GeneratePage/components/constants";
|
||||||
|
|
||||||
export function useColumns(alias: string) {
|
export function useColumns(alias: string, isSearcheable: boolean) {
|
||||||
const { config, propertyName, updateConfig, widgetId } = useContext(
|
const { config, propertyName, updateConfig, widgetId } = useContext(
|
||||||
WidgetQueryGeneratorFormContext,
|
WidgetQueryGeneratorFormContext,
|
||||||
);
|
);
|
||||||
|
|
@ -69,7 +70,15 @@ export function useColumns(alias: string) {
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
} else if (isArray(columns)) {
|
} else if (isArray(columns)) {
|
||||||
return columns.map((column: any) => {
|
return columns
|
||||||
|
.filter((column: any) => {
|
||||||
|
return (
|
||||||
|
!isSearcheable ||
|
||||||
|
(column.type &&
|
||||||
|
ALLOWED_SEARCH_DATATYPE.includes(column.type.toLowerCase()))
|
||||||
|
);
|
||||||
|
})
|
||||||
|
.map((column: any) => {
|
||||||
return {
|
return {
|
||||||
id: column.name,
|
id: column.name,
|
||||||
label: column.name,
|
label: column.name,
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ export default function WidgetSpecificControls(props: Props) {
|
||||||
<ColumnDropdown
|
<ColumnDropdown
|
||||||
alias="searchableColumn"
|
alias="searchableColumn"
|
||||||
id="searchableColumn"
|
id="searchableColumn"
|
||||||
|
isSearcheable
|
||||||
label="Select a searchable column"
|
label="Select a searchable column"
|
||||||
onSelect={noop}
|
onSelect={noop}
|
||||||
/>
|
/>
|
||||||
|
|
@ -24,13 +25,14 @@ export default function WidgetSpecificControls(props: Props) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (props.aliases?.length) {
|
if (props.aliases?.length) {
|
||||||
aliases = props.aliases.map(({ name }) => {
|
aliases = props.aliases.map(({ isSearcheable, name }) => {
|
||||||
const label = name.slice(0, 1).toUpperCase() + name.slice(1);
|
const label = name.slice(0, 1).toUpperCase() + name.slice(1);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ColumnDropdown
|
<ColumnDropdown
|
||||||
alias={`alias.${name}`}
|
alias={`alias.${name}`}
|
||||||
id={name}
|
id={name}
|
||||||
|
isSearcheable={!!isSearcheable}
|
||||||
key={name}
|
key={name}
|
||||||
label={label}
|
label={label}
|
||||||
onSelect={noop}
|
onSelect={noop}
|
||||||
|
|
|
||||||
|
|
@ -198,10 +198,14 @@ function* BindWidgetToDatasource(
|
||||||
const runResponse: ReduxAction<unknown> = yield take([
|
const runResponse: ReduxAction<unknown> = yield take([
|
||||||
ReduxActionTypes.RUN_ACTION_SUCCESS,
|
ReduxActionTypes.RUN_ACTION_SUCCESS,
|
||||||
ReduxActionErrorTypes.EXECUTE_PLUGIN_ACTION_ERROR,
|
ReduxActionErrorTypes.EXECUTE_PLUGIN_ACTION_ERROR,
|
||||||
|
ReduxActionErrorTypes.RUN_ACTION_ERROR,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
runResponse.type === ReduxActionErrorTypes.EXECUTE_PLUGIN_ACTION_ERROR
|
[
|
||||||
|
ReduxActionErrorTypes.EXECUTE_PLUGIN_ACTION_ERROR,
|
||||||
|
ReduxActionErrorTypes.RUN_ACTION_ERROR,
|
||||||
|
].includes(runResponse.type)
|
||||||
) {
|
) {
|
||||||
throw new Error(`Unable to run action: ${actionToRun.name}`);
|
throw new Error(`Unable to run action: ${actionToRun.name}`);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user