* Added reducers and sagas for cleaning up ui.pageWidgets on creating new application
* Add border and scale to omnibar helpbar on hover
* Added analytics event for omnibar fire on clicking help button
* Linked documentation buttons in API pane and DB query pane to Omnibar
* Added tests to make sure Omnibar has correct styles
* Added margin to make sure border is visible
* Added cypress tests to check that api pane documentation opens the omnibar modal
* Added tests for page widgets reducer reset widget state action
* Added cypress tests to check db documentation opens in global search modal
* remove scale transform
* update recent widgets on selecting widget from omnibar and also clear search when done
* added some documentation links for specific db queries
* added more documentation links, added analytics for omnibar open, set query on opening omnibar from navigation
* remove slicing of 1st option in recent entities, revert previous code and remove console log
* make query syntax better
* add transparent border to remove side effects
* ensure that query is empty upon opening omnibar
* add omnibar documentation helpers to constants
* remove unused files
* added omnibar open and search to readmore button in new query pane
* added analytics event, cleanup and documentation
* removed unused set queries
* Fixed failing cypress tests according to new workflow. Removed invalid comments
* update structure of chart data
* update chart data
* update chart data structure
* remove array like validator
* remove log
* remove log
* widget utils + update tests for chart data validations
* update utils test
* add migrations
* remove unnecessary helper function
* remove unnecessary helper function
* update validation test cases
* WIP
* WIP 2
* Remove validationConfigMap from widget and add to properties
* Update data tree validator to get validation from the correct place
* Minor reference fixes
* Fix test mocks
* fix for bad setting of nested property path
* add test for migration for chart widget function
* fix test for widget utils
* remove unused import;
* remove unsued import
* update migration version
* remove console and add check if data is array
* fix custom fusion chart + validation not working issue
* move custom fusion chart config to chart data section
* remove console and unused import
* fix test
* fix property config test
* fix dynamicbinding path list in migration
* remove old chart validation
* remove old validation test
* fix widget prop utils test
* remove array codepath for widget utils
* fix utils test
* fix utils test
* fix prettier issue
Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro.local>
Co-authored-by: root <root@DESKTOP-9GENCK0.localdomain>
Co-authored-by: hetunandu <hetu@appsmith.com>
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
* Only consider headings till value grid size, but consider all values till this size
* Switched from null to blank for consistency
* Whoops, we don't do null row objects anymore
- return helpful error message when get structure fails for mongo db due to lack of read permission. The message returned is: Appsmith has failed to get database structure. Please provide read permission on the database to fix this.
- any get structure error is also generically being caught by the getStrucuture method in DatasourceStructureSolution.java
- error msg and status code is now returned as part of DatasourceStructure object.
- ErrorDTO is used to store error info.
- ErrorDTO definition is moved to appsmith-interfaces package so that it can be used all packages.
- Other changes:
- stop logging PLUGIN_GET_STRUCTURE_ERROR externally, as this error is mostly triggered by credentials error or -lack of read permission.
- start logging PLUGIN_GET_STRUCTURE_TIMEOUT_ERROR externally, because this is not a user error.
* Fixed the migration script where actions with no default smart substitution configuration get the correct configuration of turned off
* Removed debug logs
* Stupid comment correction
* Updated test
* updated assertions
* Resizing image to take full width of table cell
* updated assertion
* Stop updating dynamicBindingPathList directly from widget
* Fix selectedRow and selectedRows computations
* Fix primaryColumns computations
* Updated test for derived column
* Added tests for computed value
* Added check clear data
* Reordering of test
* updated common method
* Made image size as 100% of table cell size
* add templating logic
* Updated flow and dsl
* Clear old primary columns
* Updated testname
* updated assertion
* use evaluated values for children
* Fix primary columns update on component mount and component update
* add isArray check
* remove property pane enhancement reducer
* add property pane enhancement reducer
* disable items other than template + fix running property enchancment on drop of list widget
* disbled drag, resize, settingsControl, drag for items other than template
* add grid options
* uncomment the widget operation for add child for grid children
* handle delete scenario for child widget in list widget
* WIP: Use the new delete and update property features
* add listdsl.json for testcases
* add test cases for correct no. of items being rendered
* add test cases currentItem binding in list widget
* change dragEnabled to dragDisabled
* change resizeEnabled to resizeDisabled
* change settingsControlEnabled to settingsControlDisabled
* change dropEnabled to dropDisabled
* update settingsControlDisabled default value
* Use deleteProperties in propertyControls
* Fix unsetting of array indices when deleting widget properties
* remove old TableWidget.tsx file
* Fix derived column property update on primary column property update
* Handle undefined primary columns
* Fix filepicker immutable prop issue
* Fix object.freeze issue when adding ids to the property pane configuration
* fix widget issue in grid
* Fix column actions dynamicBindingPathList inclusion issue
* remove consoles + fix typo around batch update
* Remove redundant tests
* js binding test for date picker
* hydate enhancement map on copy list widget
* check for dynamicleaf
* fixes
* improve check
* fix getNextWidgetName
* update template in list widget when copying
* updating template copy logic when copying widget
* update dynamicBindingPathList in copied widget
* Add path parameter to hidden functions in property pane configs
* fix copy bug when copying list widget
* add computed list property control
* Remove time column type
Fix editor prompt for currentRow
Fix undefined derivedColumns scenario
Remove validations for primaryColums and derivedColumns
Fix section toggle for video, image and button column types
* Fix table widget actions and custom column migrations
* Add logs for cyclical dependency map ♻️
* Process array differences
* add property control for list widget
* Fix onClick migrations
* Property pane config parity
* binding and trigger paths from the property pane config (#2920)
* try react virtualized library
* Fix unit test
* Fix unit test ✅
* Fix minor issues in table widget
* Add default meta props to binding paths to ensure eval and validation
* Dummy commit 🎉
* Remove unnecessary datepicker test
Fix chart data as string issue
* Achieve table column sorting and resizing parity with release
* handle scenario where last column isn't available to access
* Fix for panel config path not existing in the widget
* Fix bindings in currentRow (default)
Add dummy property pane config for canvas widget
* Update canvas widgets with dynamicPathLists on delete of property paths
* Add all diffs to change paths and trim later
* Add back default properties 🚶🏻♂️
* Use object based paths instead of arrays for primaryColumns and derivedColumns
* Fix issue in reordered columns
* Fix inccorect update order
* add virtualized list
* Fix failing property pane tests
* minor change
* minor list widget change
* Remove .vscode from git
* Rename ads to alloy
Fix isVisible in list widget
* move grid component to widget folder
* fix import in widget registry
* add sticky row in virtualized list
* add sticky container
* Fix Height of grid widget items container
* fix dragging of items in children other than template children
* update list widget
* update list widget
* Fix padding in list widget
* hide scrollbar in list widget list
* fix copy bug in list widget
* regenrate enhancement map on undo delete widget
* Use enhancementmap for autocomplete in list widget
Basic styles for list widget scrollbar
* add custom control in widget config
* minor commit
* update scrollbar styles
* remove unused variable
* fix typo in custom control
* comment out test cases
* remove unused imports
* remove unused imports
* add JSON stringify in interweave
* add noPad styling in dragLayer for noPad prop
* implement grid gap
* add list item background color prop
* add white color in color picker control
* fix gap in last list item
* remove onBeforeParse in textcomponent
* remove virtualization in grid widget
* allow overflow-y
* add onListItemClick action
* add beta label
* add pagination
* fix actions in pagination in list widget
* add list widget icon
* add list background color default value
* remove extra div
* fix pagination issue
* fix list widget crashing on perpage change
* extract child operation function to widgetblueprint saga
* refactor enhancements
* add enhancement hook
* refactor propertyUpdate hook enhancment
* remove enhacement map
* revert renaming ads to alloy
* add autopagination
* Cleanup unused vars
Re-write loop using map
Fix binding with external input widget
* update default background color
* remove unnessary scrol + fix pagination per page
* remove console.log
* use grid gap in pixel instead of snap
* fix list widget tests for binding
* add tests for on click action and pagination
* remove unnecessary imports
* remove overflow hidden in list component
* Add feature to enable template actions
* update property pane help text for list widget
* disable pagination in editor view
* update property pane options
* add test case for action
* uncomment tests
* fix grid gap validation
* update test cases
* fix property pane opening issue for list tempalte
* Disable form widgets in list widget
* fix template issue for actions
* add validation tests for list data
* update starting template
* add selectedRow + enable pagination in edit mode
* remove extra padding in list widget + popper fix on settingDisabled
* add stop propagation for button click
* fix click event in edit mode
* disallow filepicker widget for list widget
* add test for list widget entity definition for selectItem
* remove unused imports
* fix test
* remove evaluated value for list child widgets
* add comment
* remove log
* fix copying bug in list widget
* add check for not allowing template to copy
* fix test
* add test for property pane actions
* remove unused import
* add draglayercomponent test
* add test for draggable component
* add test for evaluatedvalue popup
* add test for messages.ts
* add test for widgeticons
* add test for property pane selector
* add test for widget config response
* start testing widget configresponse
* add test for enhancements in widget config
* add test for codeeditor
* add test for base widget + list widget
* add test for executeWidgetBlueprintChildOperations
* remove unused import
* add test for widget operation utils
* remove unused import
* add test for handleSpecificCasesWhilePasting
* remove unused function
* remove unused import
* add empty list styling
* resolve all review comments
* fix message test
* add test for widget operation utils
* fix merge conflicts
* move validations in property config
Co-authored-by: Abhinav Jha <abhinav@appsmith.com>
Co-authored-by: nandan.anantharamu <nandan.anantharamu@thoughtspot.com>
Co-authored-by: vicky-primathon.in <vicky.bansal@primathon.in>
Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro.local>
Co-authored-by: Piyush <piyush@codeitout.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: root <root@DESKTOP-9GENCK0.localdomain>
* OrgId is added as a suffix to link datasource entry with orgId when creating document in sequenceDB.
* Each document entry in sequenceDB is linked to organization ID which is then used by the datasourceDB to generate default name. Testcase for testing default names to new datasources (#2212)
* Migration ChangeSet added to setup sequenceDB with organization ID in name field
* Optimization in string operation
* WIP : Migration of data type for smart substitution configuration
* Fixed the migration code. Also reverted editor.jsons back to equality check after migrations of existing actions
* Only fetching actions for plugins which belong to supported plugins.
* Setting a default value of "false" for all the actions which don't have a valid configuration for smart substitution.
* Minor code formatting
* Minor language change in comment
* Removed debug logs
* cherry pick -make new
* revert to enable fix from release
* attempt to hook into existing datasource editor
* gSheets plugin skeleton from Rest API
* Changes for database migration
* fix for auth code
* separate it out
* action page loads!
* add to explorer
* create action from datasource
* Editor JSON WIP
* working query form
* Editor JSON WIP
* import to
* fix toast message
* redirect from datasource and editor pages
* fix onboarding
* fix imports and constants
* refactor form out
* refactor queryForm
* Merge branch 'release' into feature/google-sheets
* Merge branch 'release' into feature/google-sheets
* initial values from settings, editor and form
* Check
* remove dangling code around lightTheme
* Safety net
* remove class
* try mouseover solve
* force click
* changes from review
* fix action form name on import
* Merge branch 'release' into feature/google-sheets
* minor cleanup
* Merge branch 'release' into feature/google-sheets
* WIP
* Google sheets changes
* Merge conflicts
* Merging and fixes, needs refactoring
* Check
* Merge branch 'release' into feature/google-sheets
* Fixed tests
* Add cloud services env variable
* Clean up saga
* Clean up
* Refactoring
* Deleted svg file
* Minor fixes
* Modified design to allow behaviour in google sheets methods (#3486)
* Modified design to allow behaviour in google sheets methods
* Review changes
* Removed sysout
* Added handling of edge cases with table data
* Merge branch 'release' into feature/google-sheets
* Fixes
* Fixes
* Added validations
* Improved tests
* Removed extraneous injected bean
* Review changes
* Fixed bug with method
* Changes to Google sheets plugin's request and response structures (#3692)
* Method changes
* Removed logging
* Renaming options
* Reverting pom version
* Modified type of collection variables, fixed errors
* Converted row offset field to one that supports dynamic bindings
* Review changes
* List SAAS plugin type actions under lightning menu apis (#3820)
* list saas plugin type actions under lightning menu apis
* combine saas plugin type actions in the other sub menu of lightning menu
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
* Fix merge issues
* Prettified query editor and a few fixes w/ ux
* Test fixes
* Reformatting request
* code for REST added (#3876)
Co-authored-by: hetunandu <hetu@appsmith.com>
* Renamed body to row object
* Renamed placeholder for range
* Renamed range heading
* Modifications to handle range semantics
* Use spreadsheet Url instead of id
* Ordering of methods
* Removed logging
* Add tests for Dynamic text controls
* Add tests for url helpers
* Fix coverage config
* Nevermind
* Interface changes
* There is no body here
* Yay to hints
* Delete row field is separately handled as row index
* placeholder support (#4001)
* Fixed tests, typos and creating new sheets with random rows
* Switched to using 'rowIndex' throughout
* binding path added for query input field (#4016)
* - Fixed QA bugs (#4032)
- Split delete sheet into two
- Removed dynamic query input types from hidden keys
* Proper exceptions
* Removed extra logging
* Throw exception if update method does not match any of the columns
* Same for bulk update
* Zero-indexed delete row
* I'm a space bound rocket ship
* Logic to register installations with cs (#4062)
* Logic to register installations with cs
* Clean up
* Casting to string
* Checking to see if this makes the test pass
* Added an extra null check
Co-authored-by: Piyush <piyush@codeitout.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: Apeksha Bhosale <7846888+ApekshaBhosale@users.noreply.github.com>
* Fix map method being called on undefined varaible in MapComponent #3843
Sentry Issue: APPSMITH-N5
* Add type to marker property #3843
Co-authored-by: Satish Gandham <satish@appsmith.com>
* WIP : Type migration from String to Object for value
* Migrating config from string to boolean for prepared statement.
Handled error for already stored actions where PS config is stored as String and not Boolean.
* New dto for refactoring action name which includes actionId as well
* Refactor action name now also takes actionId as payload and fetches the action from db by id instead of name to solve for the scenario where the action names could be duplicated.
* Adding actionId to QP of action refactor API.
* WIP : test for asserting the bug fix
* WIP test
* Fixed the test case asserting refactoring works for an action when there are duplicate action names in the page.
Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
* Added organization slug to the invite Url, which is finally used by email template(#2359)
* Separate method to create email params. Welcome email url variable updated so as to be consistent with other email templates
* Unused enum emailType removed, importing of java.util.* removed as per suggestion
* Added dependencies to be added to dependencyMap on client to Postgres, MSSQL, MySQL and Mongo plugins
* Added Dependency config for API
* Fixed the test case
* Updated test for page spec
* Updated test for pages with widget
* updated test
Co-authored-by: nandan.anantharamu <nandan.anantharamu@thoughtspot.com>
Maven 3.8 now blocks HTTP repositories and only allows HTTPS. However, the version redshift jdbc dependency we are using connects to a separate repository that runs on HTTP. The latest version has switched to using HTTPS instead.
So this PR upgrades redshift dependency from version 2.0.0.1 to 2.0.0.4.
Ref: https://maven.apache.org/docs/3.8.1/release-notes.html#cve-2021-26291
- Return data type list along with action execution result so that the data can be displayed in the correct format.
- Handles these three data types for now : table, json, raw.
- If a plugin has already assigned the data type, then common handler is not used.
- Mongo plugin assigns the data types in the plugin specific flow i.e. does not use the common data type parse / assign method.
- To address review comments:
- added a new enum ActionResultDataType for data types. It is consumed by ParsedDataType. A list of ParsedDataType is returned by ActionExecutionResult
- parsed data in parallel using streams.parallel().
* add row colums styling to organisation settings fields
* add tests to make sure the grid layout is rendered
* added margin to make spacing look similar to before
* remove negative margin and reduce width
* added jest tests to make sure component mounts and that it has correct styles
* revert unnecessary changes related to cypress tests
* added strict checking for null to avoid ts errors
* use early returns on file empty
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
* use early returns on file empty
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
* fixed typo
* added findbytext for sync call
* removed unused imports
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
- add title to action execution errors to improve user experience
- all errors in AppsmithPluginErrors
- action execution related errors in AppsmithError : NO_CONFIGURATION_FOUND_IN_DATASOURCE, INVALID_ACTION, INVALID_DATASOURCE, INVALID_DATASOURCE_CONFIGURATION - as these are the likely errors in an action execution flow (excluding plugin specific flow) that might result from faulty action / datasource configuration by a user.
- title is returned as part of ActionExecutionResult.
- title is set in ActionExecutionResult on failure during action execution.
- In response to review comment - added a new BaseException class, so that both AppsmithException and AppsmithPluginException extend this base class. Also, refactored code to introduce setErrorInfo() function in ActionExecutionResult class to set its attributes.
- Some unrelated cleanup:
- catch PoolInitializationException for Postgres plugin and return AppsmithPuginException
- catch MongoTimeoutException and return AppsmithPluginException
* Annotation set up
* Removed annotation uses
* Redundant condition
* Commented out logging, retained for implementation
* Handling for Collection and Map parameterized types
* Removed comments
* Bug Fix : Escaping _id and _class from primary column keys before storing the DSL
* Fixed the test case failures.
* Updated the replacement strings for _id and _class to include appsmith keyword
* Feature : JSON Smart Substitution in Mongo Plugin
* Added BSON data type for Mongo substitution. Added test case
* Minor comment added
* Minor variable re-naming and correcting failing test cases.
* REST API : Escaping special characters in string before smart substitution
* Incorporated review comment
* added 2 states for path field
* added logic for compact only
* added small condition for no compact
* PR comments fixed
* removed redundant code
* added unit test for code editor functions
* Update app/client/src/components/editorComponents/CodeEditor/index.tsx
* setting cursor
setValue is resetting cursor position to the front. so will update at the end
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
* showing datasource
Exposing 'save as datasource' with empty path but in disable state till value is entered
* sending flag instead of value
* removed classname
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
- Allow users to define key path for FieldValue.delete() and FieldValue.serverTimestamp() values.
- delete() value is only valid for update operation, as Firestore does not seem to support it for any other ops.
- serverTimestamp() is valid for all operations excluding get and delete operations.
* call toUpperCase() only when widgetName exists
* use lodash instead of string class functions
Co-authored-by: root <root@DESKTOP-9GENCK0.localdomain>
* added empty byte array for request body to fix aws signed url signature match problem as detailed here - https://github.com/aws/aws-sdk-java/issues/2205
Co-authored-by: Bernard Worthy <>
* Smart Substitution Debugging - Adding appsmith data type to each parameter in response's request object for execute
* Incorporated review comments.
* Fixed failing test cases.
* Fixed MS-SQL test failures.
- Return hint for localhost URL on the following events:
Test datasource
Save datasource
Update REST API Url
Create datasource from REST API
When page gets loaded for first time.
- Hint message returned: "You may not able to access your localhost if Appsmith is running inside a docker container or on the cloud. Please check out Appsmith's documentation to understand more."
- It has been decided as part of actions pod meeting that these messages will not be persisted.
* WIP : Adding timestamp datatype in Prepared Statement
* Added simple tests for commonly used data types' identification
* Added plugin level test cases for timestamp with Prepared Statement to Postgres
* Lax mustache binding check added to match the client side check when client recognizes a field to have a dynamic binding. This would reduce/remove bad bindings from throwing a 400 during save page.
* Added a test to assert that update layout does not fail in case the binding is technically incorrect because part of the mustache's lie inside quotes. Since client has a lax way of finding a dynamic path, server also follows suite.
* Property pane enhancements
- Property pane sections are collapsible
- Property pane controls can be hidden conditionally
- Property pane configurations now come from the widget instead of a global config file
- Property pane property updates can be hooked with other related updates
- Property pane control and section ids are generated dynamically now.
* Add chart type: "Custom FusionChart" (#2996)
Co-authored-by: Zeger Hoogeboom <zegerhoogeboom@users.noreply.github.com>
Co-authored-by: zeger <zeger@equinoxai.com>