Commit Graph

49 Commits

Author SHA1 Message Date
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
Favour Ohanekwu
3f9e1a34eb
do not show errors for private widgets (#11883) 2022-03-16 15:27:22 +01:00
Anand Srinivasan
ae733ca2f0
fix: unrelated widgets in loading state (#11370)
* log loading actions

* isLoading: check entity properties

* rename variables

* unit tests

* add descriptions

* clean test data

* include JS_Object self-dependencies

* add comment

* fix basic tests

* fix unit tests

* updated unit tests

* add test case

* update comment

* console - disable lint errors

* code clean up

* change folder

* find loading entites as a method

* updated unit tests

* check if entity exists in dataTree

* update test cases

* getEntityDependants - add specific path test case
2022-03-08 13:56:03 +00:00
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
Apeksha Bhosale
980c8cbf57
fix: added new library and reduced function calls for global data (#11001) 2022-02-11 16:22:27 +05:30
Rishabh Rathod
1bcf344154
fix: Race condition issue of meta reducer update (#10837)
* Fix race condition issue of meta reducer update

* refactor comment

* Fix logic to update meta state
2022-02-04 17:52:25 +05:30
rashmi rai
e73ccc7f25
fix: props is now required in type Validator (#10854) 2022-02-03 15:27:08 +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
Favour Ohanekwu
1b858bcf5c
fix: Remove private widgets from autocompletion (#10535) 2022-01-21 13:08:40 +01:00
Favour Ohanekwu
f7ce277e4c
fix: currentItem showing error in debugger for list widgets (#10338) 2022-01-20 11:59:03 +01: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
Apeksha Bhosale
9a7a5e06af
fix: changed conditions for variables as variables were undefined (#9748) 2021-12-14 13:01:40 +05:30
Apeksha Bhosale
8cb3436524
fix: this is undefined in js editor (#9174)
* replace this in js object

* move this replacement in data tree factory
2021-11-16 14:12:31 +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
Apeksha Bhosale
b34102f685
fix: added errors to debugger (#8195)
* added errors to debugger

* comment added
2021-10-06 12:42:22 +05:30
Hetu Nandu
94e3ffef67
feat: Linting in trigger fields (#7638) 2021-10-05 13:52:27 +00:00
Apeksha Bhosale
1aac46a66d
don't send errors to sentry (#7906) 2021-09-29 20:11:55 +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
Apeksha Bhosale
386e788e28
fix: pushing and removing errors from debugger for js object (#7465)
* pushing and removing errors from debugger for js object

* added message part of messages

* changes for linting and errors showing

* added try catch for executing function

* PR comments fixed

* PR comment fixed
2021-09-21 11:32:45 +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
3380227cbb
feat: Enable Promises in Appsmith (#6253) 2021-08-27 14:55:28 +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
Hetu Nandu
ba06d797de
Improve autocomplete sorting (#5798) 2021-07-20 15:32:56 +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
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
arunvjn
a133a320cf
Added replacer in stringfy method to optionally use toString method for big ints. (#4745) 2021-05-28 21:30:21 +05:30
akash-codemonk
8bd6ed3a70
Feature: Show current value in the debugger when widget property has an error (#4592) 2021-05-26 13:47:52 +05:30
akash-codemonk
9e082a6156
Feature: Show widget error state (#4558) 2021-05-18 19:24:40 +05:30
Satish Gandham
8ad7eecdeb - Auto fix sort ddestructured props rule 2021-05-13 14:05:39 +05:30
Trisha Anand
6cf3b8a901
In case the chart series data id starts with a number, it was incorrectly identified as a number instead of a string which led to incorrect path computed to check in binding paths (#4322) 2021-05-05 16:50:59 +05:30
Hetu Nandu
c8bce7344b
Set derived values as undefined if cyclic dependency (#4159) 2021-04-27 19:09:52 +05:30
Hetu Nandu
4d73e7e0b3
Widget validation for nested property paths (#3947) 2021-04-21 20:04:25 +05:30
Hetu Nandu
9a4c317f20
Store value improvements (#3663) 2021-03-24 10:39:47 +05:30
Hetu Nandu
89effdd2fb
Refactor evaluate function and add tests (#3536) 2021-03-13 19:42:21 +05:30
Piyush
462379721d
Reset widget global function (#3181) 2021-03-02 18:19:36 +05:30
Hetu Nandu
6f7ce24a2f
Fix action subtree evaluation (#3142) 2021-02-22 16:44:08 +05:30
Piyush Mishra
a4fe0a461e
Table Widget New Features (#2816)
- Each column has more options and can be configured in the property pane instead of the table
- Table level styles can now be set in the property pane
- Property sections are collapsible

Co-authored-by: vicky-primathon.in <vicky.bansal@primathon.in>
Co-authored-by: nandan.anantharamu <nandan.anantharamu@thoughtspot.com>
Co-authored-by: Abhinav Jha <abhinav@appsmith.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
2021-02-16 15:59:08 +05:30
Hetu Nandu
22afbe8971
Fix Array paths (#2775) 2021-01-29 09:59:23 -08:00
Piyush Mishra
164de6fb7e
Avoid double validation (#2687) 2021-01-29 11:34:28 +05:30
Hetu Nandu
3f2e60dc0d
Sanitise any other possible place which could send functions (#2704) 2021-01-25 16:49:31 +05:30
Hetu Nandu
5dc01c677d
Batching widget property updates (#2685)
- Changed the updateWidgetProperty redux action to use an object of updates instead of single update
- Added the new batchUpdateWidgetProperty action
> This action will calculate dynamicPath changes for all the updates and update them together
- Added the new deleteWidgetProperty action
>This action will delete a property and any dynamicPaths/child dynamicPaths that exist
2021-01-25 14:27:26 +05:30
Trisha Anand
6704e05ad0
Sub tree fixes for issues found on Jarvis (#2482) 2021-01-11 13:26:17 +05:30
Hetu Nandu
4387200262
Sub tree evaluation (#1841)
Co-authored-by: Trisha Anand <trisha@appsmith.com>
Co-authored-by: Piyush Mishra <piyush@codeitout.com>
Co-authored-by: Nikhil Nandagopal <nikhil@appsmith.com>
Co-authored-by: Akash N <akash@codemonk.in>
2021-01-04 15:46:08 +05:30