appsmithorg / appsmith

Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
https://www.appsmith.com
Apache License 2.0
34.66k stars 3.75k forks source link

feat: update response tab UI #37640

Open alex-golovanov opened 15 hours ago

alex-golovanov commented 15 hours ago

Description

Query response tab UI update.

Fixes #35290

Automation

/ok-to-test tags="@tag.All"

:mag: Cypress test results

[!TIP] 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/11962606709 Commit: 6424e5d89a627a62b38adc43fe5416cdab1b96e7 Cypress dashboard. Tags: @tag.All Spec:


Fri, 22 Nov 2024 07:27:57 UTC

Communication

Should the DevRel and Marketing teams inform users about this change?

Summary by CodeRabbit

coderabbitai[bot] commented 15 hours ago

Walkthrough

The pull request introduces modifications across multiple Cypress test files, primarily focusing on standardizing method names and enhancing the structure of test cases related to various data sources. Key changes include renaming the RunQueryNVerifyResponseViews method to runQueryAndVerifyResponseViews, updating method signatures to accept parameters as objects, and refining assertions for better clarity. Additionally, the Response class has undergone significant restructuring to improve response type management and validation logic. The overall aim is to enhance readability, maintainability, and consistency within the test suite and related components.

Changes

File Change Summary
app/client/cypress/e2e/Regression/ClientSide/BugTests/Binding_Bug28287_Spec.ts Updated test for Bug 28287: added step to open response type menu and changed method for asserting response type visibility.
app/client/cypress/e2e/Regression/ServerSide/Datasources/Redis_Basic_Spec.ts Renamed method RunQueryNVerifyResponseViews to runQueryAndVerifyResponseViews, updated method calls with parameters.
app/client/cypress/e2e/Regression/ServerSide/GenerateCRUD/MySQL1_Spec.ts Renamed method RunQueryNVerifyResponseViews to runQueryAndVerifyResponseViews, added new test cases for CRUD validation.
app/client/cypress/e2e/Regression/ServerSide/GenerateCRUD/MySQL2_Spec.ts Renamed method RunQueryNVerifyResponseViews to runQueryAndVerifyResponseViews, updated method to accept object parameters.
app/client/cypress/e2e/Regression/ServerSide/GenerateCRUD/Postgres2_Spec.ts Renamed method RunQueryNVerifyResponseViews to runQueryAndVerifyResponseViews, updated parameters for flexibility.
app/client/cypress/e2e/Regression/ServerSide/Postgres_DataTypes/UUID_Spec.ts Renamed method RunQueryNVerifyResponseViews to runQueryAndVerifyResponseViews, maintained test structure.
app/client/cypress/e2e/Regression/ServerSide/QueryPane/Mongo1_spec.ts Updated method to runQueryAndVerifyResponseViews, removed visibility assertions for response types.
app/client/cypress/e2e/Regression/ServerSide/QueryPane/Querypane_Mongo_Spec.js Updated validateRecordCount method to accept an object with count and operator.
app/client/cypress/e2e/Regression/ServerSide/QueryPane/S3_1_spec.js Renamed method to runQueryAndVerifyResponseViews, updated to select response type from menu.
app/client/cypress/e2e/Sanity/Datasources/Arango_Basic_Spec.ts Renamed method to runQueryAndVerifyResponseViews, updated parameters for flexibility.
app/client/cypress/e2e/Sanity/Datasources/MockDBs_Spec.ts Updated method to runQueryAndVerifyResponseViews, added parameters for detailed query verification.
app/client/cypress/support/Pages/DataSources.ts Added new method runQueryAndVerifyResponseViews, deprecated RunQueryNVerifyResponseViews.
app/client/cypress/support/Pages/IDE/BottomPane/Response.ts Introduced new types and interfaces, updated methods for response type selection and validation.
app/client/packages/design-system/ads/src/Icon/Icon.provider.tsx Added new icons and updated ICON_LOOKUP object.
app/client/src/IDE/Components/BottomView.tsx Adjusted button positioning and state management logic.
app/client/src/PluginActionEditor/components/PluginActionResponse/components/BindDataButton.tsx Updated button label from "Bind Data" to "Display on UI".
app/client/src/PluginActionEditor/components/PluginActionResponse/components/NoResponse.tsx Updated layout and text display for no response.
app/client/src/PluginActionEditor/components/PluginActionResponse/components/QueryResponseTab.tsx Introduced new component for displaying query responses.
app/client/src/PluginActionEditor/components/PluginActionResponse/components/Table.tsx Updated styling and layout for the table component.
app/client/src/PluginActionEditor/components/PluginActionResponse/components/constants.ts Added constant for tab bar height.
app/client/src/ce/constants/messages.ts Added new constant for empty response instruction.
app/client/src/components/editorComponents/ActionExecutionInProgressView.tsx Adjusted styling and properties of UI elements.
app/client/src/components/editorComponents/EntityBottomTabs.tsx Simplified padding styles for tabs list.
app/client/src/pages/Editor/QueryEditor/QueryDebuggerTabs.tsx Removed mock response objects and associated test cases.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant UI
    participant API
    participant DB

    User->>UI: Trigger Query
    UI->>API: Run Query
    API->>DB: Execute Query
    DB-->>API: Return Results
    API-->>UI: Send Results
    UI-->>User: Display Results

Assessment against linked issues

Objective Addressed Explanation
Add query name .run as prefix for the header row.
Move number of records to the new header component.
Acquire query duration & HTTP status and add request execution time to redux.
On hover of query name and number of records, metadata of API run should show up as tooltip.
Move bind data button to the new header component & change its title.
Add content type icons (table, json, raw) to ADS.
Change result type from segmented control to a FAB with dropdown menu.
Change loading state button/spinner/spacing.
Change the empty state text and button alignment.
Update table appearance.
Table columns have a fixed width of 170px now, this needs to be updated to min-width.
Add status bar to error state, hide bind to UI button.
Account for scrollbars that are always shown.
Add dashed underline for status bar function name & meta.
Fix Cypress tests related to result type control change.

Possibly related PRs

Suggested labels

UI Improvement, skip-changelog

Suggested reviewers

"In the land of code, where tests do roam,
We standardize names, making them home.
With buttons that bind and responses that flow,
Our UI shines bright, putting on a show!
So here's to the changes, both big and small,
Together we rise, together we code, standing tall!" 🎉


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
🪧 Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit , please review it.` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### Documentation and Community - Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit. - Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
alex-golovanov commented 9 hours ago

/build-deploy-preview skip-tests=true

github-actions[bot] commented 9 hours ago

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/11962635810. Workflow: On demand build Docker image and deploy preview. skip-tests: true. env: ``. PR: 37640. recreate: .

github-actions[bot] commented 9 hours ago

Deploy-Preview-URL: https://ce-37640.dp.appsmith.com