Commit Graph

70 Commits

Author SHA1 Message Date
Anand Srinivasan
ada1293797
Revert "fix: trigger fields linting issue (#11875)" (#12668)
This reverts commit 186a97c699.
2022-04-07 16:31:31 +05:30
Apeksha Bhosale
9d9803a3d3
added sanity check to avoid unexpected eval error (#12506) 2022-04-05 13:16:11 +05:30
rashmi rai
b1215c8179
fix: evaluation order on first load (#12022) 2022-04-01 13:16:59 +00:00
Anand Srinivasan
186a97c699
fix: trigger fields linting issue (#11875)
* initial fix

* fix warnings

* log evaluation order length

* log time

* logs

* re-order

* rename

* onclick vs release logs

* unit test for loading properties

* clean up

* ends with .tableData

* add comment
2022-03-31 17:07:18 +05:30
Favour Ohanekwu
5b52405210
Support evaluated value in nested property paths (#12341) 2022-03-30 14:28:19 +01:00
ashit-rath
32fee08c5c
feat: JSON Form widget (#8472)
* initial layout

* updated parser to support nested array

* array field rendering

* changes

* ts fix

* minor revert FormWidget

* modified schema structure

* select and switch fields

* added checkbox field

* added RadioGroupField

* partial DateField and defaults, typing refactoring

* added label and field type change

* minor ts changes

* changes

* modified widget/utils for nested panelConfig, modified schema to object approach

* array/object label support

* hide field configuration when children not present

* added tooltip

* field visibility option

* disabled state

* upgraded tslib, form initial values

* custom field configuration - add/hide/edit

* field configuration - label change

* return input when field configuration reaches max depth

* minor changes

* form - scroll, fixedfooter, enitity defn and other minior changes

* form title

* unregister on unmount

* fixes

* zero state

* fix field padding

* patched updating form values, removed linting warnings

* configured action buttons

* minor fix

* minor change

* property pane - sort fields in field configuration

* refactor include all properties

* checkbox properties

* date properties

* refactor typings and radio group properties

* switch, multselect, select, array, object properties

* minor changes

* default value

* ts fixes

* checkbox field properties implementation

* date field prop implementation

* switch field

* select field and fix deep nested meta properties

* multiselect implementation

* minor change

* input field implementation

* fix position jump on field type change

* initial accordian

* field state property and auto-complete of JSONFormComputeControl

* merge fixes

* renamed FormBuilder to JSONForm

* source data validation minor change

* custom field default value fix

* Editable keys for custom field

* minor fixes

* replaced useFieldArray with custom logic, added widget icon

* array and object accordian with border/background styling

* minor change

* disabled states for array and objects

* default value minor fix

* form level styles

* modified logic for isDisabled for array and object, added disabledWhenInvalid, exposed isValid to fieldState for text input, removed useDisableChildren

* added isValid for all field types

* fixed reset to default values

* debounce form values update

* minor change

* minor change

* fix crash - source data change multi-select to array, fix crash - change of options

* fix positioning

* detect date type in source data

* fix crash - when object is passed to regex input field

* fixed default sourceData path for fields

* accodion keep children mounted on collapse

* jest test for schemaParser

* widget/helper and useRegisterFieldInvalid test

* tests for property config helper and generatePanelPropertyConfig

* fix input field validation not appearing

* fix date field type detection

* rename data -> formData

* handle null/undefined field value change in sourceData

* added null/undefined as valid values for defaultValue text field

* auto detect email field

* set formData default value on initial load

* switch field inline positioning

* field margin fix for row direction

* select full width

* fiex date field default value - out of range

* fix any field type to array

* array default value logic change

* base cypress test changes

* initial json form render cy test

* key sanitization

* fix fieldState update logic

* required design, object/array background color, accordion changes, fix - add new custom field

* minor change

* cypress tests

* fix date formatted value, field state cypress test

* cypress - field properties test and fixes

* rename test file

* fix accessort change to blank value, cypress tests

* fix array field default value for modified accessor

* minor fix

* added animate loading

* fix empty state, add new custom field

* test data fix

* fix warnings

* fix timePrecision visibility

* button styling

* ported input v2

* fix jest tests

* fix cypress tests

* perf changes

* perf improvement

* added comments

* multiselect changes

* input field perf refactor

* array field, object field refactor performance

* checkbox field refactor

* refectored date, radio, select and switch

* fixes

* test fixes

* fixes

* minor fix

* rename field renderer

* remove tracked fieldRenderer field

* cypress test fixes

* cypress changes

* array default value fixes

* arrayfield passedDefaultValue

* auto enabled JS mode for few properties, reverted swith and date property controls

* cypress changes

* added widget sniping mode and fixed object passedDefaultValue

* multiselect v2

* select v2

* fix jest tests

* test fixes

* field limit

* rename field type dropdown texts

* field type changes fixes

* jest fixes

* loading state submit button

* default source data for new widget

* modify limit message

* multiseelct default value changes and cypress fix

* select default value

* keep default value intact on field type change

* TextTable cypress text fix

* review changes

* fixed footer changes

* collapse styles section by default

* fixed footer changes

* form modes

* custom field key rentention

* fixed footer fix in view mode

* non ascii characters

* fix meta merge in dataTreeWidget

* minor fixes

* rename useRegisterFieldInvalid.ts -> useRegisterFieldValidity.ts

* modified dependency injection into evaluated values

* refactored fixedfooter logic

* minor change

* accessor update

* minor change

* fixes

* QA fixes date field, scroll content

* fix phone number field, removed visiblity option from array item

* fix sourceData autocomplete

* reset logic

* fix multiselect reset

* form values hydration on widget drag

* code review changes

* reverted order of merge dataTreeWidget

* fixes

* added button titles, fixed hydration issue

* default value fixes

* upgraded react hook form, modified array-level/field-level default value logic

* fixed select validation

* added icon entity explorer, modified icon align control

* modify accessor validation for mongo db _id

* update email field regex

* review changes

* explicitly handle empty source data validation
2022-03-24 12:43:25 +05:30
Apeksha Bhosale
79e165af96
feat: Settings js editor (#9984)
* POC

* Closing channels

* WIP

* v1

* get working with JS editor

* autocomplete

* added comments

* try removing an import

* different way of import

* dependency map added to body

* triggers can be part of js editor functions hence

* removed unwanted lines

* new flow chnages

* Resolve conflicts

* small css changes for empty state

* Fix prettier

* Fixes

* flow changes part 2

* Mock web worker for testing

* Throw errors during evaluation

* Action execution should be non blocking on the main thread to evaluation of further actions

* WIP

* Fix build issue

* Fix warnings

* Rename

* Refactor and add tests for worker util

* Fix response flow post refactor

* added settings icon for js editor

* WIP

* WIP

* WIP

* Tests for promises

* settings for each function of js object added

* Error handling

* Error handing action validation

* Update test

* Passing callback data in the eval trigger flow

* log triggers to be executed

* WIP

* confirm before execution

* Remove debugging

* Fix backwards compatibility

* Avoid passing trigger meta around

* fix button loading

* handle error callbacks

* fix tests

* tests

* fix console error when checking for async

* Fix async function check

* Fix async function check again

* fix bad commit

* Add some comments

* added clientSideExecution flag for js functions

* css changes for settings icon

* unsued code removed

* on page load PART 1

* onPageLoad rest iof changes

* corrected async badge

* removed duplicate test cases

* added confirm modal for js functions

* removed unused code

* small chnage

* dependency was not getting created

* Fix confirmation modal

* unused code removed

* replaced new confirmsaga

* confirmaton box changes

* Fixing JSEditor Run butn locator

* corrected property

* dependency map was failing

* changed key for confirmation box

Co-authored-by: hetunandu <hetu@appsmith.com>
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-03-17 17:35:17 +05:30
Anand Srinivasan
d89e12e3a5
fix: warning message - if child property doesn't exist in data tree (#10351)
* makeParentsDependOnChild - return if child doesn't exist in allKeys

* add unit tests

* add nested object to unit test

* fix unit tests

* fix unit tests

* add warning messages

* add comments for mock
2022-03-03 10:59:52 +00:00
Apeksha Bhosale
eb34255b18
fix: removing unnecessary paths to evaluate (#11341)
* removing unnecessary paths to evaluate

* created regex and small refactor
2022-03-03 13:12:23 +05:30
Hetu Nandu
ac7a73f667
fix: table button multi-line execution (#11525) 2022-03-02 12:07:20 +05:30
Favour Ohanekwu
46810e832a
fix: remove dependencies from trigger fields (#11163) 2022-02-17 21:27:23 +05:30
Apeksha Bhosale
980c8cbf57
fix: added new library and reduced function calls for global data (#11001) 2022-02-11 16:22:27 +05:30
Favour Ohanekwu
1ed7e9086c
keep linting in trigger field in sync with the state of the datatree (#10941) 2022-02-10 23:32:16 +05:30
Anand Srinivasan
c2a6e089db
fix: passing params from JS to API/SQL query (#10826)
* Revert "fix: revert this.params solution (#10322)"

This reverts commit 2bcd73e41d.

* replace 'this.params' with 'executionParams'

* replace 'this?.params' also with 'executionParams'

* fix unit test lint errors

* added unit tests for params handling

* evaluateActionBindings unit test - add default value case

* comments update

* remove un-necessary `executionparams` assigment to `evalTree`
2022-02-04 17:58:46 +05:30
Favour Ohanekwu
caca4131e7
fix: Evaluate PrivateWidgets to fix list widget children evaluation issue (#10737) 2022-02-01 10:48:57 +05:30
Rishabh Rathod
b61ceab94b
fix: Add meta to eval cycle and update it when default changes (#10401)
* Rearrange data tree widget factory

* Remove existing handling of default value override

* Altternate way of meta property override

* Fix tests

Co-authored-by: hetunandu <hetu@appsmith.com>
2022-01-28 16:40:05 +05:30
rashmi rai
10b3fe3800
feat: Validations for Action Forms (#10457) 2022-01-27 15:20:05 +05:30
Apeksha Bhosale
5f91f2d20f
added functions while checking isAsync (#10425) 2022-01-25 13:53:53 +00:00
Favour Ohanekwu
f7ce277e4c
fix: currentItem showing error in debugger for list widgets (#10338) 2022-01-20 11:59:03 +01:00
Anand Srinivasan
2bcd73e41d
fix: revert this.params solution (#10322)
* revert changes

* code clean up

Co-authored-by: Apeksha Bhosale <7846888+ApekshaBhosale@users.noreply.github.com>
2022-01-14 11:50:01 +05:30
arunvjn
5af8112fbe
fix: Fixed undo redo cyclic dependency bug (#9884) 2021-12-25 04:55:22 +00:00
Hetu Nandu
39b0a4e5a6
feat: Native promises support in Appsmith (#8988)
Co-authored-by: Apeksha Bhosale <7846888+ApekshaBhosale@users.noreply.github.com>
2021-12-23 14:17:20 +00:00
Favour Ohanekwu
84a627aaeb
fix: properly lint triggerfields (#9773)
Properly lint trigger fields
2021-12-15 06:18:45 +01:00
Hetu Nandu
4c54ea21fb
feat: Add support for custom 'this' and 'global' variables during evaluation (#9651) 2021-12-14 14:00:43 +05:30
Anand Srinivasan
4ced0954db
feat: Syntax parsing through AST (#9115)
* ast changes

* ast fix for cyclic dependency

* jest test updates for ast

* feat: Extract references in code with AST (#8617)

Co-authored-by: Nidhi <nidhi@appsmith.com>

* undo debugger changes

* code clean up and comments

* update type checks for literal nodes

* include tests for IIFE and direct object access

* fix - dependency map not updated on IIFE/direct object access

* update tslib

* unescape on AST parsing

Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: Nidhi <nidhi@appsmith.com>
2021-12-02 15:33:43 +05:30
Rishabh Rathod
bddafdcb7e
fix: Add default props dependency in dependency map (#9418)
* Add cloneDeep
* Add comments
2021-11-29 09:04:40 +00:00
Favour Ohanekwu
c98bbbe6ae
fix: properly update dependency map (#9169)
Properly update dependency map
2021-11-24 05:43:50 +01:00
Nidhi
51246a0869 fix: Reverted AST 2021-11-10 20:13:21 +05:30
Apeksha Bhosale
229412e19d
Refactor: JS Editor eval flow (#8821)
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
2021-11-08 12:19:22 +05:30
Rishabh Rathod
bef48e8a79
chore: Config changes (#8564)
Change eslint config for console logging from error to warn
Add babel auto-import resolver to avoid using relative paths
2021-11-05 11:19:19 +05:30
Hetu Nandu
c0d0037ce2
feat: Extract references in code with AST (#8617)
Co-authored-by: Nidhi <nidhi@appsmith.com>
2021-11-03 13:12:31 +05:30
Hetu Nandu
94e3ffef67
feat: Linting in trigger fields (#7638) 2021-10-05 13:52:27 +00:00
Hetu Nandu
633db3068e
fix: Single binding sql query causing prepared statement issue (#7792) 2021-10-01 21:05:05 +05:30
akash-codemonk
48f2c584ab
fix: Fix mismatch between errors in debugger and evaluated value popup (#7752) 2021-09-29 17:33:11 +05:30
rahulramesha
6cefc6dbea
feat: Undo/Redo (#6654)
* Scaffolding for undo-redo

* undo redo working Poc commit

* memory performance improvements by diffing

* dont run update on undo/redo"

* merging widget postion update and canvas bottom row update into one dsl update.

* fix tabs widget

* Visible updates per undo redo action (#6838)

Co-authored-by: Rahul R <rahulramesha@Rahuls-MacBook-Pro.local>

* resize atomic operation

* fix switch control state issue

* disallow undo/redo for snipping and comment mode

* disallow undo/redo for snipping and comment mode

* fix color picker issue in undo/redo

* add test for replayDSL

* option control fix, adding logs

* minor position change undo redo updates

* add test cases for replayHelpers

* property Upade visual change

* remove unused code

* global hot key jest test for undo redo

* Fixing batch updates on property change..

* add tests for toggle control in property pane

* unwanted utils.

* add tests for text control

* add tests for deletion

* add tests for dropping a new widget

* adding jest test for replayUtils

* add move widget tests

* add tests for color picker control

* add analytics for undo/redo

* add analytics for undo/redo

* tab addition atomic

* cypress tests for propertyPane, toasts and radiowidget optionControl

* replayDSL end of redo stack fix

* property update changes

* menu option control debounce input

* color picker empty undo fix

* fix cypress tests

* widget add/remove atomic

* revert alternative approach to handle atomic operations

* update replayDSL test

* add some comments

* addressing review comments

* flash color for property pane controls

* Fixing adding of tabs widget as well.

* code review comments.

* merging widget postion update and canvas bottom row update into one dsl update.

* fix ordering of tabs property control

* meta property update canvas min height.

* fixing failed specs.

* Fixing entity explorer update on deleting tab from entity explorer.

* address review comments and minor property update changes

* fixing failing tests

* merge conflicts

* changes to cater widget api.

* fix suggested widget table issue

* draggable list for undo redo

* fix widget name focus

* excluding canvas updates.

* fixing codeEditor update on propertySection collapse

* fixed failing test case

Co-authored-by: Abhinav Jha <abhinav@appsmith.com>
Co-authored-by: Rahul R <rahulramesha@Rahuls-MacBook-Pro.local>
Co-authored-by: root <root@DESKTOP-9GENCK0.localdomain>
Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro.local>
2021-09-21 13:25:56 +05:30
Apeksha Bhosale
09eea59330
feat: JS Editor (#6003)
* Changes to add js plugin

* routes+reducer+create template

* added debugger to js editor page

* entity explorer changes

* create js function

* added copy, move and delete action

* added js plugin

* added existing js functions to data tree

* removed actionconfig for js collection

* new js function added to data tree and entity as well

* parsing flow added

* changes to data tree

* parse and update js functions

* small changes for def creator for js action

* create delete modified

* small changes for update

* update flow change

* entity properties added

* removed linting errors

* small changes in entity explorer

* changes for update

* move, copy implementation

* conflict resolved

* changes for dependecy map creation

* Only make the variables the binding paths

* Basic eval sync working

* Minor fixes

* removed unwanted code

* entity props and autocomplete

* saving in progress show

* redirection fix after delete js action

* removed unnecessary line

* Fixing merge conflict

* added sample body

* removed dummy data and added plugin Type

* few PR comments fixed

* automplete fix

* few more PR comments fix

* PR commnets fix

* move and copy api change

* js colleciton name refactor & 'move to page' changes & search

* view changes

* autocomplete added for js collections

* removing till async is implemented

* small changes

* separate js pane response view

* Executing functions

* js collection to js objects

* entity explorer issue and resolve action on page switch

* removed unused line

* small color fix

* js file icon added

* added js action to property pane

* Property pane changes for actions

* property pane changes for js functions

* showing syntax error for now

* actions sorted in response tab

* added js objects to slash and recent entitties

* enabling this to be used inside of function

* eval fix

* feature flag changes for entity explorer and property pane

* debugger changes

* copy bug fix

* small changes for eval

* debugger bug fix

* chnaged any to specific types

* error in console fix

* icons update

* fixed test case

* test case fix

* non empty check for functions

* evaluate test case fix

* added new icons

* text change

* updated time for debounce for trial

* after release mereg

* changed icon

* after merge

* PR comments simple

* fixed PR comments - redux form, settings remove

* js object interface changes

* name refactor

* export default change

* delete resolve actions chnage

* after merge

* adding execute fn as 3rd option and removed create new js function

* issue 7054 fixed - app crash

* execute function on response tab changes

* refactor function name part 1

* refactor of js function name

* try catch added refactor

* test fix

* not used line removed

* test cases locator fixed

Co-authored-by: Nidhi <nidhi.nair93@gmail.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
2021-09-08 23:02:22 +05:30
Hetu Nandu
f012fd9d69
fix: Revert redux update perf improvements (#6808) 2021-08-24 17:40:25 +05:30
hetunandu
9941c253f7 Revert "Hotfix for logging and debugging redux updates (#6728)"
This reverts commit 4b5ca10e0d.
2021-08-19 18:31:37 +05:30
Hetu Nandu
4b5ca10e0d
Hotfix for logging and debugging redux updates (#6728) 2021-08-19 16:35:16 +05:30
Hetu Nandu
1f16c2d1ee
Tern server performance fix and Best match fix (#6338) 2021-08-04 11:04:44 +05:30
Abhinav Jha
1391b55bae
Widget Property Validation structure (#5270) 2021-07-26 11:20:46 +05:30
Hetu Nandu
7063ee9d2d
Improve information for cyclic dependency error (#5949) 2021-07-20 16:20:22 +05:30
Satish Gandham
fb78233973
[perf] Update redux store with only the values that changed (#5594)
* Pass evaluation order along with dataTree and update only evaluated values in the store.

* - Update the entire changed entitiy

* Make the updates in a way the top level tree reference is changed.

* Clean up.

* - Revert back to using evaluation order and removedPaths as JSON.stringify is expensive

* yarn.lock changes

* Only send eval updates across the worker thread

* - Update the tree with only the updates sent from the worker. (40% improvement)

* Fix evaluation tests

* Remove console.log

Co-authored-by: Satish Gandham <satish@appsmith.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
2021-07-20 10:34:12 +05:30
Hetu Nandu
0c0e165ee0
Improve Codemirror mount performance (#5497) 2021-07-08 12:34:47 +05:30
Hetu Nandu
83af4d372d
Fix top level parallel runs (#5613) 2021-07-07 15:29:44 +05:30
akash-codemonk
7d57311290
Fix: Remove property from dependency map when binding is removed (#5538) 2021-07-01 18:48:46 +05:30
Hetu Nandu
dce3a80e40
Minor fixes for errors (#5361) 2021-06-23 18:55:18 +05:30
Hetu Nandu
eae2e46b9d
Fix cyclical dependency issue when Api returns an error (#5333)
Co-authored-by: Trisha Anand <trisha@appsmith.com>
2021-06-23 12:59:36 +05:30
Hetu Nandu
441f42c72f
Generate linting errors via JSHint (#5034) 2021-06-21 16:39:51 +05:30
Apeksha Bhosale
179d5ae8a9
Improve JS error reporting in the debugger (#4854) 2021-06-04 12:39:36 +05:30