Commit Graph

58 Commits

Author SHA1 Message Date
Apeksha Bhosale
4dc6df0013
chore: query module evaluation (#27660)
> Pull Request Template
>
> Use this template to quickly create a well written pull request.
Delete all quotes before creating the pull request.
>
## Description
There are multiple refactors and split for query module's creator flow
changes which involves module input -- it's a new entity introduced as
part of modules project

#### PR fixes following issue(s)
Fixes # (issue number)
Part of
https://app.zenhub.com/workspaces/modules-pod-63e0d668a7fea03850c89c6f/issues/gh/appsmithorg/appsmith/27352

#### Type of change

- Chore (housekeeping or task changes that don't impact user perception)

>
>
## 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
- [ ] JUnit
- [ ] 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
- [ ] 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
- [ ] 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
2023-09-29 16:12:14 +05:30
Ayangade Adeoluwa
bf588ad20f
fix: Improve evaluated url experience (#24301)
This PR improves the evaluated value experience to be able to
accommodate more edge cases and also process different url input types
that a user can provide especially in the case of query parameters.
2023-06-13 15:49:46 +01:00
Favour Ohanekwu
5db37b871e
chore: Log JS Function execution (#24163) 2023-06-09 06:41:07 +01:00
Aman Agarwal
dcdc280750
fix: api url dynamic bindings (#23696)
Currently we batch update actions, which can asynchronously update the
action state. As a result, when a new set action property is called, it
can cause a selection of the old action state values (which in this case
is the dynamicBindingsPathList). In order to mitigate this, we wait for
all the batch updates to be successful, before allowing new action
properties to be set.

Fixes :
https://www.notion.so/appsmith/Evaluation-is-not-working-cce345f9ce564b3483f18dbc3e4a6249

Copying description from [PR 23552
](https://github.com/appsmithorg/appsmith/pull/23552)

#### 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/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] 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

---------

Co-authored-by: Rohit Agarwal <rohit_agarwal@live.in>
Co-authored-by: Ayangade Adeoluwa <adeoluayangade@yahoo.com>
2023-05-26 15:43:18 +05:30
Ayush Pahwa
bf62dc9695
chore: poc to merge DS editor data flows (#22920)
## Description

POC to merge the DS editors for 3 different types of datasources
- Databases and SAAS
- G sheets
- Authenticated API and Graphql

This PR will not merge the G sheets editor since it is tied to a lot of
places in testing and URL. This will be picked in another iteration.

Fixes #22860 
Fixes #23424 
Fixes #21580 
(#1367 from EE)


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

- Chore (housekeeping or task changes that don't impact user perception)


## How Has This Been Tested?

- Manual
- Jest
- Cypress

### Test Plan
-
[PostGreSQL](https://github.com/appsmithorg/TestSmith/issues?q=is%3Aopen+is%3Aissue+label%3APostgres)
[Regression Cases to be executed]
-
[Mongo](https://github.com/appsmithorg/TestSmith/issues?q=is%3Aopen+is%3Aissue+label%3AMongo)
- GraphQL and Rest -
[link](https://docs.google.com/spreadsheets/d/1ak1Fj5vXYEk3WkV-4eZI-r8Lg3X2IKtUcrXpzawbtjk/edit#gid=1177791628)

### 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:
- [ ] Test plan has been approved by relevant developers
- [x] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test
2023-05-22 19:05:59 +07:00
albinAppsmith
629999f124
feat: [epic] appsmith design system version 2 deduplication (#22030)
## Description

### Fixes
- [x] https://github.com/appsmithorg/appsmith/issues/19383
- [x] https://github.com/appsmithorg/appsmith/issues/19384
- [x] https://github.com/appsmithorg/appsmith/issues/19385
- [x] https://github.com/appsmithorg/appsmith/issues/19386
- [x] https://github.com/appsmithorg/appsmith/issues/19387
- [x] https://github.com/appsmithorg/appsmith/issues/19388
- [x] https://github.com/appsmithorg/appsmith/issues/19389
- [x] https://github.com/appsmithorg/appsmith/issues/19390
- [x] https://github.com/appsmithorg/appsmith/issues/19391
- [x] https://github.com/appsmithorg/appsmith/issues/19392
- [x] https://github.com/appsmithorg/appsmith/issues/19393
- [x] https://github.com/appsmithorg/appsmith/issues/19394
- [x] https://github.com/appsmithorg/appsmith/issues/19395
- [x] https://github.com/appsmithorg/appsmith/issues/19396
- [x] https://github.com/appsmithorg/appsmith/issues/19397
- [x] https://github.com/appsmithorg/appsmith/issues/19398
- [x] https://github.com/appsmithorg/appsmith/issues/19399
- [x] https://github.com/appsmithorg/appsmith/issues/19400
- [x] https://github.com/appsmithorg/appsmith/issues/19401
- [x] https://github.com/appsmithorg/appsmith/issues/19402
- [x] https://github.com/appsmithorg/appsmith/issues/19403
- [x] https://github.com/appsmithorg/appsmith/issues/19404
- [x] https://github.com/appsmithorg/appsmith/issues/19405
- [x] https://github.com/appsmithorg/appsmith/issues/19406
- [x] https://github.com/appsmithorg/appsmith/issues/19407
- [x] https://github.com/appsmithorg/appsmith/issues/19408
- [x] https://github.com/appsmithorg/appsmith/issues/19409

Fixes # (issue)
> 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


## How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Provide
instructions, so we can reproduce.
> Please also list any relevant details for your test configuration.
> Delete anything that is not important

- 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:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test

---------

Co-authored-by: Ankita Kinger <ankita@appsmith.com>
Co-authored-by: akash-codemonk <67054171+akash-codemonk@users.noreply.github.com>
Co-authored-by: Tanvi Bhakta <tanvi@appsmith.com>
Co-authored-by: Arsalan <arsalanyaldram0211@outlook.com>
Co-authored-by: Aman Agarwal <aman@appsmith.com>
Co-authored-by: Rohit Agarwal <rohit_agarwal@live.in>
Co-authored-by: Nilesh Sarupriya <nilesh@appsmith.com>
Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com>
Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local>
Co-authored-by: Vijetha-Kaja <vijetha@appsmith.com>
Co-authored-by: Parthvi <80334441+Parthvi12@users.noreply.github.com>
Co-authored-by: Apple <nandan@thinkify.io>
Co-authored-by: Saroj <43822041+sarojsarab@users.noreply.github.com>
Co-authored-by: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com>
Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
Co-authored-by: Aishwarya-U-R <91450662+Aishwarya-U-R@users.noreply.github.com>
Co-authored-by: rahulramesha <rahul@appsmith.com>
Co-authored-by: Aswath K <aswath.sana@gmail.com>
Co-authored-by: Preet Sidhu <preetsidhu.bits@gmail.com>
Co-authored-by: Vijetha-Kaja <119562824+Vijetha-Kaja@users.noreply.github.com>
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2023-05-20 00:07:06 +05:30
Ravi Kumar Prasad
636d1839c7
fix: this.params shows error in IIFE (#22683)
## Description
This fixes the issue where using `this.params` in an IIFE function in
API query params showed error.

**How does this PR fix the issue?**
The PR adds an empty object as `params` in the global `this` context. So
that `this.params` doesn't evaluate to `undefined`.

Fixes #6732

Media
<img width="1182" alt="Screenshot 2023-04-25 at 12 59 36 AM"
src="https://user-images.githubusercontent.com/13567359/234096780-661be709-d5fc-40ed-800f-d5014c2da062.png">



## Type of change
- Bug fix (non-breaking change which fixes an issue)


## How Has This Been Tested?
- 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
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] 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:
- [ ] Test plan has been approved by relevant developers
- [x] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [x] Added Test Plan Approved label after reveiwing all Cypress test
2023-05-03 12:38:39 +05:30
Ivan Akulov
424d2f6965
chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
## Description

This PR upgrades Prettier to v2 + enforces TypeScript’s [`import
type`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export)
syntax where applicable. It’s submitted as a separate PR so we can merge
it easily.

As a part of this PR, we reformat the codebase heavily:
- add `import type` everywhere where it’s required, and
- re-format the code to account for Prettier 2’s breaking changes:
https://prettier.io/blog/2020/03/21/2.0.0.html#breaking-changes

This PR is submitted against `release` to make sure all new code by team
members will adhere to new formatting standards, and we’ll have fewer
conflicts when merging `bundle-optimizations` into `release`. (I’ll
merge `release` back into `bundle-optimizations` once this PR is
merged.)

### Why is this needed?

This PR is needed because, for the Lodash optimization from
7cbb12af88,
we need to use `import type`. Otherwise, `babel-plugin-lodash` complains
that `LoDashStatic` is not a lodash function.

However, just using `import type` in the current codebase will give you
this:

<img width="962" alt="Screenshot 2023-03-08 at 17 45 59"
src="https://user-images.githubusercontent.com/2953267/223775744-407afa0c-e8b9-44a1-90f9-b879348da57f.png">

That’s because Prettier 1 can’t parse `import type` at all. To parse it,
we need to upgrade to Prettier 2.

### Why enforce `import type`?

Apart from just enabling `import type` support, this PR enforces
specifying `import type` everywhere it’s needed. (Developers will get
immediate TypeScript and ESLint errors when they forget to do so.)

I’m doing this because I believe `import type` improves DX and makes
refactorings easier.

Let’s say you had a few imports like below. Can you tell which of these
imports will increase the bundle size? (Tip: it’s not all of them!)

```ts
// app/client/src/workers/Linting/utils.ts
import { Position } from "codemirror";
import { LintError as JSHintError, LintOptions } from "jshint";
import { get, isEmpty, isNumber, keys, last, set } from "lodash";
```

It’s pretty hard, right?

What about now?

```ts
// app/client/src/workers/Linting/utils.ts
import type { Position } from "codemirror";
import type { LintError as JSHintError, LintOptions } from "jshint";
import { get, isEmpty, isNumber, keys, last, set } from "lodash";
```

Now, it’s clear that only `lodash` will be bundled.

This helps developers to see which imports are problematic, but it
_also_ helps with refactorings. Now, if you want to see where
`codemirror` is bundled, you can just grep for `import \{.*\} from
"codemirror"` – and you won’t get any type-only imports.

This also helps (some) bundlers. Upon transpiling, TypeScript erases
type-only imports completely. In some environment (not ours), this makes
the bundle smaller, as the bundler doesn’t need to bundle type-only
imports anymore.

## Type of change

- Chore (housekeeping or task changes that don't impact user perception)


## How Has This Been Tested?

This was tested to not break the build.

### 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
- [x] 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
- [x] 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:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test

---------

Co-authored-by: Satish Gandham <hello@satishgandham.com>
Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
2023-03-16 17:11:47 +05:30
arunvjn
1d9d5bb197
fix: access outer scope variables inside callbacks (#20168)
## Description
Any platform function that accepts a callback were unable to access the
variables declared in its parent scopes. This was a implementation miss
when we originally designed platform functions and again when we turned
almost every platform function into a Promise. This PR fixes this
limitation along with some other edge cases.

- Access outer scope variables inside the callback of run, postMessage,
setInterval, getGeoLocation and watchGeolocation functions.
- Fixes certain edge cases where functions with callbacks when called
inside the then block doesn't get executed. Eg `showAlert.then(() => /*
Doesn't execute */ Api1.run(() => {}))`
- Changes the implementation of all the platform function in appsmith to
maintain the execution metadata (info on from where a function was
invoked, event associated with it etc)

#### Refactor changes
- Added a new folder **_fns_** that would now hold all the platform
functions.
- Introduced a new ExecutionMetadata singleton class that is now
responsible for hold all the meta data related to the current
evaluation.
- Remove TRIGGER_COLLECTOR array where all callback based platform
functions were batched and introduced an Event Emitter based
implementation to handle batched fn calls.
- All callback based functions now emits event when invoked. These
events have handlers attached to the TriggerEmitter object. These
handler does the job of batching these invocations and telling the main
thread. It also ensures that platform fn calls that gets triggered out
the the context of a request/response cycle work.

#### Architecture
<img width="751" alt="Screenshot 2023-02-07 at 10 04 26"
src="https://user-images.githubusercontent.com/32433245/217259200-5eac71bc-f0d3-4d3c-9b69-2a8dc81351bc.png">

Fixes #13156
Fixes #20225 

## Type of change
- Bug fix (non-breaking change which fixes an issue)
- Refactor

## How Has This Been Tested?
- Jest
- Cypress
- Manual


### Test Plan
  - [ ] https://github.com/appsmithorg/TestSmith/issues/2181
  - [ ] https://github.com/appsmithorg/TestSmith/issues/2182
- [ ] Post message -
https://appsmith-git-chore-outer-scope-variable-access-get-appsmith.vercel.app/app/post-msg-app/page1-635fcfba2987b442a739b938/edit
- [ ] Apps:
https://appsmith-git-chore-outer-scope-variable-access-get-appsmith.vercel.app/app/earworm-1/home-630c9d85b4658d0f257c4987/edit
- [ ]
https://appsmith-git-chore-outer-scope-variable-access-get-appsmith.vercel.app/app/automation-test-cases/page-1-630c6b90d4ecd573f6bb01e9/edit#0hmn8m90ei

### 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
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reviewing all Cypress test
2023-02-12 00:03:20 +05:30
GitStart-Appsmith
618626f6a4
feat: [APPSMTH-22] Execute action on widget focus and blur (#18128)
Co-authored-by: balajisoundar <balaji@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-12-12 12:39:22 +05:30
balajisoundar
2df27a6fb2
feat: Option to add new row in Table widget (#17515) 2022-11-05 15:24:20 +05:30
Aman Agarwal
78c89894f8
fix: updated settings page design (#16990)
fix: updated settings page design
2022-10-06 16:36:29 +05:30
Manish Kumar
bfc79bdfd3
feat: Informative error messages on cyclic dependency for queries on page load (#16634)
* This commit addresses the feature https://github.com/appsmithorg/appsmith/issues/16154

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2022-09-24 15:31:52 +05:30
Dhruvik Neharia
88637de7aa
feat: Code Scanner Widget (#15990)
* feat: Add QR Scanner Widget Folder

* feat: Add QR Code Scanner in the Modal

* feat: Add viewfinder and close button

* QR generator

* feat: Change deafult camera in QR Scanner to back camera

* feat: remove qr generator widget from the registry

* feat: update qr scanner icon

* style: qr code scanner modal and video container, remove futile code

* feat: add camera switch control panel to qr scanner

* fix: update input devices list when the menu opens in qr scanner

* fix: viewfinder in qr scanner responsive on mobile

* feat: Add onCodeDetected event to the QR Scanner widget

* feat: Add QR Scanner to autocomplete's entity definitions

* feat: Add tooltip to QR Scanner

* fix: isDisabled for QR Scanner

* feat: Add icon and related properties to QR Scanner

* feat: Add QR Scanner search tags, remove futile styles

* feat: Add QR Scanner to themes, regex for button color

* test: Add one cy test for qr scanner

* revert: Remove qr scanner from system themes, will be merged in a seperate PR

* fix: typo 'disable' to 'disabled' in qr scanner widget

* test: add disabled and visibility cy tests for qr scanner

* test: add open and close qr scanner modal test

* feat: remove qr scanner image for tests

* feat: add TODO item for solving performance issues for QR Generator widget

* feat: shift from react-qr-reader to react-qr-barcode-scanner to enable barcode and QR scanning both

* feat: Update QR Scanner Widget to Code Scanner Widget

* test: update tests from qr scanner to code scanner widget

* refactor: move code scanner's property pane config to individual files

* fix: code scanner error message on permission denied

* feat: remove Modal.setAppElement from code scanner

* fix: hide code scanner scan animation overflow

* feat: code scanner modal close on escape and overlay click

* fix: code scanner video border radius on mobile

* test: scan qr test for code scanner

* feat: Add Modal.setAppElement for code scanner modal accessibility

* fix: typo in search tags of code scanner

* feat: update property pane content helper texts of code scanner

* feat: hide code scanner widget from explorer

* fix: code scanner events not working

* feat: hide code scanner widget from explorer

* feat: Show Code Scanner widget in Explorer

* fix: remove code scanner scan cypress test

* feat: Add barcode reader to search tags and put Modal.setAppElement inside a block in code scanner

Co-authored-by: balajisoundar <balaji@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-09-16 10:25:32 +05:30
Sumit Kumar
0cbe81dfde
feat: merge GraphQL plugin to release (#16554)
* merge GraphQL plugin to release
2022-09-09 21:29:47 +05:30
balajisoundar
a97ab3d9a2
feat: Table widget v2 with support for non-ASCII characters and improved jest coverage (#11307) 2022-07-14 12:32:35 +05:30
Ayangade Adeoluwa
5e8a425038
feat: Revamp datasource form buttons (#11924)
* Revamp datasource form buttons

* Fix issues

* Use default values for individual form plugin

Co-authored-by: Adeoluwa Ayangade <adeoluwaayangade@Adeoluwas-MacBook-Pro.local>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-03-30 13:11:25 +00: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
Hetu Nandu
ac7a73f667
fix: table button multi-line execution (#11525) 2022-03-02 12:07:20 +05:30
Paul Li
12dad5737d
fix: Issues and Enhancements in the camera widget (#10943)
* fix: Issues and Enhancements in the camera widget

-- Fix on an image stretching issue when taking a picture
-- Set background to black
-- Add onImageSave, onVideoSave Actions
-- Rename Camera to Image

* fix: Issues and Enhancements in the camera widget

-- List all device info only when one or more MediaStreams are active

* fix: Issues and Enhancements in the camera widget

-- Always keep camera aspect ratio when resizing

* fix: Issues and Enhancements in the camera widget

-- Add a Cypress test case for onSaveImage property

* Increased wait!

* Camera case failure locator fix

* Camera case locator fix

* Promises restWidget moved to last!

Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-02-17 20:10:32 +08:00
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
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
Aman Agarwal
cc90c6a33a
fix: url action execution order for actions on page load (#10224)
Order of execution was not proper because the dynamic parameters embedded inside url without any trailing slashes and query params did not match with url grouping regex to convert the query params to dsl params.

Fixes #10049
Fixes #10055
2022-01-07 17:27:51 +05:30
Paul Li
1f7be1877b
feat: support iframe.srcdoc in iframe widget (#8693)
* feat: support iframe.srcdoc in iframe widget

-- Add a new property srcDoc and its change handler
-- Rename handlers

* feat: Support iframe.srcdoc in iframe widget

-- Show error messages only if there are no both of URL and inline HTML

Co-authored-by: Arpit Mohan <arpit@appsmith.com>
2022-01-05 13:01:58 +08:00
Paul Li
6c8c7b2da8
feat: camera widget (#8069)
* feat: Camera Widget

-- Scaffold the basic structure of the widget

* feat: Camera Widget

-- Prototype a feature, taking picture

* feat: Camera Widget

-- Add types for MediaRecorder
-- Define media capture status and action types
-- Prototype basic video recording, playing features

* feat: Camera Widget

-- Implement video player
-- Add timer for recording and playing video
-- Add permission and error handling logic
-- Add device selectors

* feat: Camera Widget

-- Place control buttons above device inputs layer
-- Make the widget fully responsive

* feat: Camera Widget

-- Change the color of caret-down icon to white
-- Remove overlaying of web cam and video player
-- Add some padding for device inputs

* feat: Camera Widget

-- Add black background to the container of the widget

* feat: Camera Widget

-- Change the widget icon

* feat: Camera Widget

-- Implement the mute feature of a mic or a camera

* feat: Camera Widget

-- Check media device permissions before getting started

* feat: Camera Widget

-- Add a fullscreen control

* feat: Camera Widget

-- Set error text color to white
-- Change the layout of control panel

* feat: Camera Widget

-- Apply layout change for control panel according to app layout change

* feat: Camera Widget

-- Add a new derived property, videoURL

* feat: Switch Group Widget

-- Adopt theme changes

* feat: Camera Widget

-- Make background grey in case of both error and disabled status

* feat: Camera Widget

-- Update npm dependencies

* feat: Camera Widget

-- Fix on #8788, using muted property

* feat: Camera Widget

-- Show off the microphone setting icon only if the current mode is video
-- Set isMirrored property to true by default

* feat: Camera Widget

-- Add photo viewer

* feat: Camera Widget

-- Add onImageCapture, onRecordingStart, onRecordingStop actions instead of onMediaCapture

* feat: Camera Widget

-- Expose meta properties for the widget

* feat: Camera Widget

-- Fix on responsiveness issue

* feat: Camera Widget

-- Add type definitions for MediaStream recording

* feat: Camera Widget

-- Hide isMirroed property for video mode

* feat: Camera Widget

-- Wrap all the controls with TooltipComponent

* feat:  Camera Widget

-- Implement enter, exit full screen feature

* feat: Camera Widget

-- Add a widget icon for entity explorer

* feat: Camera Widget

-- Fix on the typo for the label of onRecordingStop property

* feat: Camera Widget

-- Enable/disable media tracks

* feat: Camera Widget

-- Set the video's height to 100% in fullscreen mode

* feat: Camera Widget

-- Add overlayers on Webcam

* feat: Camera Widget

-- Set position to relative on fullscreen wrapper div
-- Set the photo viewer's height to 100%

* feat: Camera Widget

-- Add image, mediaCaptureStatus, timer meta properties to keep UI states when the widget is dragged

* feat: Camera Widget

-- Refactor code base, eliminating commented code blocks

* feat: Camera Widget

-- Revert all the changes needed for keeping status when the widget is dragged
-- Set mirroed property to false for video mode
2021-12-24 22:06:59 +08: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
Hetu Nandu
4c54ea21fb
feat: Add support for custom 'this' and 'global' variables during evaluation (#9651) 2021-12-14 14:00:43 +05:30
Paul Li
54579a4e6c
feat: Switch Group widget (#7590)
* Feat: Switch Group Widget

-- The first MVP of the widget

* feat: Switch Group Widget

-- Follow the same config and implementation as the other group widgets

* feat: Switch Group Widget

-- Elaborate the help text for defaultSelectedValues

* feat: Switch Group Widget

-- Add a widget icon

* feat: Switch Group Widget

-- Remove unnecessary property control at ItemsControl.tsx
-- Refactor some code snippets for higher code quality
-- Add basic cypress test cases

* fix: icon for the widget optimised & replaced

* feat: Switch Group Widget

-- Add a unit test for defaultSelectedValuesValidation

* feat: Switch Group Widget

-- Make the validation type for defaultSelectedValues property to ValidationTypes.ARRAY
-- Remove original validation function and its unit test

* feat: Switch Group Widget

-- Fix on typo
-- Fix on formatting issue
-- Change the help text for isRequired property

* feat: Switch Group Widget

-- Revert help text for isRequired property to the original one

* feat: Switch Group Widget

-- Set strict property to true on defaultSelectedValues

* feat: Switch group widget

-- Refactor utility function, getCamelCaseString
-- Add the corresponding test case

* feat: Switch group widget

-- Implement options property as a plain JS field
-- Reimplement update logic for selectedValues when options changes
-- Add a new utility function for checking equality of object arrays
-- Add a unit test for the above function
-- Rewrite the corresponding Cypress test cases

* feat: Switch Group Widget

-- Remove isArrayEqual utility function and directly use functions from lodash

* feat: Swtich Group Widget

-- Make selectedValues as a derived property

* feat: Switch Group Widget

-- Replace the widget icon

* feat: Switch Group Widget

-- Rewrite a test case for onSelectionChange property

* feat: Switch Group Widget

-- Remove redundant calls for openPropertyPane

* feat: Switch Group Widget

-- Remove closePropertyPane call from afterEach hook

* feat: Switch Group Widget

-- Change the selector for every switch element in onSelectionChange test case

* feat: Switch Group Widget

-- Fix on failed Cypress test case, adding closePropertyPane command to onSelectionChange

* feat: Switch Group Widget

-- Remove template literal from a selector

* feat: Switch Group Widget

-- Make click on onSelectionChange test case forced

* feat: Switch Group Widget

-- Fix on crash issue when editing on Options property

* feat: Switch Group Widget

-- Add the widget icon to show in entity explorer

* feat: Switch Group Widget

-- Fix on blue color on mouse down
-- Add a new property for alignment

Co-authored-by: somangshu <somangshu.goswami1508@gmail.com>
2021-12-09 20:02:47 +08:00
arunvjn
f62247b468
feat: Action undo redo (#9045) 2021-12-07 09:45:18 +00:00
Aswath K
8a45e1507e
feat: Add AudioWidget (#7179)
* Create initial version of AudioWidget by copying VideoWidget

* Add EventType for AUDIO

* Change default Audio URL to a podcast related to Appsmith

* Add AudioWidget icon

* Change Entity definition for AudioWidget

* Add cypress test

* Add jest test

* fix: typo
2021-09-24 21:35:53 +05:30
Hetu Nandu
8f84fc0f69
fix: error handling in trigger execution flow (#7671) 2021-09-23 07:21:57 +00:00
Bhavin K
de20a2a52f
feat: add server side pagination in list widget (#7128) 2021-09-22 14:16:51 +05:30
Nidhi
c3f4cdaa15
feat: Introducing SaaS integrations as a plugin (#7560)
* WIP client side changes

* Saas execution flow + scheduled import of remote plugins
2021-09-21 17:35:29 +05:30
akash-codemonk
e9fe54fefe
fix: Show trigger errors in the debugger with widget and property name (#6970) 2021-09-15 10:41:13 +05:30
Abhinav Jha
b49f5097c6
refactor: Widget Development API (#6405) 2021-09-09 20:40:22 +05:30
Nidhi
a7239cfa5b
feat: Changes to add js plugin (#4861)
Adds server side changes for supporting JS editor
2021-09-08 19:17:30 +05:30
Paul Li
4c6fb4fcb6
feat: New widget - Audio Recorder widget (#6702)
User can record audio / play it as feedback and then use the data in any API with the help of this new widget
2021-09-08 16:30:36 +05:30
arunvjn
d119737de9
feat: Introducing JS Snippets (#6453)
Users should be able to look up relevant snippets based on where they trigger snippets from, narrow down the filter results based on entities, customize the snippet with custom data, evaluate and see its real time value.
2021-08-29 09:20:16 +05:30
Hetu Nandu
3380227cbb
feat: Enable Promises in Appsmith (#6253) 2021-08-27 14:55:28 +05:30
Vicky Bansal
cb1604905e
Table sort column APIs (#6068)
User now should have access to the table sort column if any through the `{{table.sortOrder}}` API. This will return an object when sort is active > {column: string, order: enum|‘asc’|'desc'}. There should also be a `onSort` action available which can trigger an Event
2021-08-25 18:50:06 +05:30
Paul Li
532e8f2a74
Feature : Checkbox Group widget (#6199)
Introducing a new widget: `Checkbox Group`, Users can now create a group of checkboxes and have an action trigger and also be able to refer the selected values from the internal API.
2021-08-17 14:41:38 +05:30
Tolulope Adetula
f4e0e8adb0
Feat/server side filtering multiselect (#5737)
The multi-select and select now has the capability to handle server side filtering, i.e. an Appsmith dev can now choose to call an api on search or options using the onFilterUpdate action
2021-08-16 12:26:09 +05:30
Ayush Pahwa
cab6c12471
Added filter for new header and doing atob on the response (#5974)
* Added filter for new header and doing atob on the response

* Added check for status code 200

* Added const vars, added condition of 200 and action type API

* Added comments, NPE check for headers
2021-07-19 20:13:37 +05:30
Paul Li
38ffe86290
Rate widget (#4891)
* FEATURE-3357 : Rate Widget

-- Create the first MVP of rate widget

* FEATURE-3357 : Rate Widget

-- Change the widget name into rating
-- Change the widget icon
-- Fix the overflow issue in case max count is big
-- Fix the issue in case default rate is zero
-- Add validations for maxCount and defaultRate

* FEATURE-3357 : Rate Widget

-- Fix an issue : Stars is cut off if maxCount is greater than 20
-- Add test cases for two validation types, RATE_DEFAULT_RATE and RATE_MAX_COUNT

* FEATURE-3357 : Rate Widget

-- Add expected data type for tooltip field

* FEATURE-3357 : Rate Widget

-- Expose maxCount

* FEATURE-3357 : Rate Widget

-- Change contents of isAllowHalf property
-- Adjust alignment of stars dynamically
-- Decrease default widget width

* FEATURE-3357 : Rate Widget

-- Remove a unnecessary comment block
2021-07-02 15:25:50 +05:30
Paul Li
4d9ea51baa Merge branch 'release' into feature/1726-iframe-widget 2021-06-11 09:21:38 -04:00
Trisha Anand
06cafb6066
Getting Prepared Statement for Postgres, MySQL, and MS-SQL and Smart Substitution for Rest API plugins out of beta (#5019)
* Correcting text for Mongo Form Insert command

* Getting Prepared Statement for Postgres, MySQL, and MS-SQL and Smart Substitution for Rest API plugins out of beta

* Fixed failing test case

* Fixed Ms-sql plugin test failure
2021-06-10 13:55:56 +05:30
Paul Li
e2168f70d8 Merge branch 'release' into feature/1726-iframe-widget 2021-06-10 04:18:56 -04:00
Paul Li
a5cdf32590 FEATURE-1726 : iframe widget
-- Scaffold the widget
-- Bind properties
2021-06-09 05:39:17 -04:00
bhavin
53598e8027 added onclose property and handlers on ModalWidget 2021-06-01 14:50:13 +05:30