Commit graph

77 commits

Author SHA1 Message Date
Kiran Ashok
a7092c6580
Feat :: Reducing no of rerenders due to exposed variables (#7473)
* csa reducing rerenders

* perf optimisation : reducing rerenders for rest of the components

* cleanup

* fix :: child components exposed variables

* fix :: table breaking in subcontainer , review fixes

* fix :: modal bug

* fix :: clear text not working for textarea
2023-12-11 15:11:00 +05:30
Nakul Nagargade
c6ef28ad89
[Refactor]7380 - Improve performance by preventing states used as prop when not necessary (#7412)
* [Refactor]7380 - Improve performance by preventing states used as prop when not necessary

* Fix selected component being returned as undefined in sidebar inspector

* reduce Container re-render

* reduce Container re-render and bug fix

* Remove ununsed state

* initial commit

* Clean code

* Fix selecting component

* Refactor code

* Refactor code

* Resolve code comments

* Fix Subcontainer not being able to have drag ability for childrens

* Resolve code comments

* Fix cypress maximum state update issue

* Fixes editor render on canvas click, on hover and component click

* Fix extra renders on dragging components

* remove commit

* Remove console

* Fix editing version being undefined

* Fix

* Fix events being not updated

* Fix bugs

* Fix version not changing

* Remove console

* remove editor old
2023-12-08 15:35:30 +05:30
Arpit
3f737b0b1d
[hotfix] fixes: should have the new color value with fx option (#8131)
* fixes: should have the new color value with fx option

* fixes: default value for fx

* fixes: component meta data mutates on drop

* version bumped to v2.24.1
2023-11-10 16:55:43 +05:30
Arpit
f0a403e619
Release : Appbuilder - appdefinition architecture revamp (#7448)
* importing service: updated

* import service, categorize and update events with associations

* fix: deleting events associated with pages on page delete

* handle app version: creation, updates, switching versions from app builder

* on version switch: no updates should be triggeted to server

* versioning for query events

* fixes: new components db transaction fails for newly created pages

* fixes: query chaining with events

* map older query ids to new for event action: run query

* fixes: multi-editor support

* fixes/multi-editor: users should be able to edit different version of the app at real time without sync

* minor fixes

* fixes: undo/redo savings with latest app def updates

* fixes: execution of page switch action

* fixes: csa events

* fixes: csa selection dropdown

* fixes: on csa action changed, the action params should also be updated correctly

* fixes: event rendering actions

* fixes: table event - row hovered

* fixes: table event - on search

* fixes: table event - onNewRowsAdded

* fixes: table event - onBulkUpdate

* fixes: table column updates

* fixes: table column updates to component definition

* re-order events

* handle adding widgets to sub containers

* fixes: csa for modals

* fixes: deletes children components on deleting parent

* fixes: components with default children

* fixed events for imported app

* gs- crash fix

* fixes: global settings UI

* fixes: header and user

* fixes: page switch event

* fixes: adapts to new event manager ui

* import app

* add event index for creating app versions

* fixes: table rendering on viewer

* fixes: event execution for viewer

* fixes: loading app with slug

* fixes: Page side bar is not rendered in viewer

* fixes: version manager ui for released versions

* fixes: tabs default children saving

* fixes: app resource mapping for parent-child components

* fixes: duplicate pages

* fixes: page load events for viewer

* fixes: enable and disable pages

* fixes: hide and show pages

* fixes: on maintaince toggle button

* fixes: new version child components are not tied to its parent

* fixes: redo breaks- on deleting a component and undo then redo (editor)

* new export schema and handling apps impport with new and older schemas

* table events: column and actions events

* fixes: query confirmations popup

* fixes: copy/paste

* fixes: cut/paste

* fixes: event mapping for newer versions for new components, pages and queries id

* fixes: app resource mapping for imported apps

* fixes: cascade events for table actions and colulmns

* Migrates the existing JSON-based app definition schema to a structured table-based architecture. This enhancement introduces component and page-specific permissions, improves data organization, and enables fine-grained access control. Additionally, it adds the 'globalSettings' column to the 'appVersion' table.

* cleanup

* fixes: enable and disable pages

* fixes: hide/show page and set saving state for cloning pages

* cleanup

* fixes: page disable menu

* fixes: migrations for data query events

* fixes: switching app version from version creation modal results in editor loading state

* fixes: setting up the page title

* fixes: Page duplication has same page handler name.

* fixes: updating general styles of a component

* fixes: delete component should trigger confirmations box for one widget and for multiple should process deletion

* fixes: CSA for button(component) does not work for page event handler.

* fixes: component name update [calendar]

* fixes: Duplicating pages do not create child components

* improves copy-paste mechanism of widgets

* fix: calendar subcontainer components comes out of the parent container on copy/paste

* fix:Form properties, no option for selecting submit button.

* fixes: Dark mode issue with event handler.

* fixes: display preferences for components

* fixes:have to select the selected version again to create a new

* fixes: Pages menu is not getting disabled when enabled and vice-versa

* fixes: correct naming of duplicating pages

* fixes: 2 action button even with no event attached to one, it gets attached to both.

* fixes: event deletion for action btn removal

* fixes: Keyboard action to move component is not saving

* reduce outbound calls when widget re-positioned with keyboard

* fixes: Not able to delete component from Inspector

* fixes: cloning of widgets

* fixes: Request confirmation before query run toggle is not visible on viewer mode. (can't run query if confirmation toggle is on)

* fixes: event sorting

* fixes: events mapping for versioning: queries and components

* fixes: importing app bug - query running issue when importing apps

* [appdef-2.0] fixes: event action linking for imported apps (#7627)

* fixes: event action linking for imported apps

* cleanup

* fixes: Toggling display preferences is not saving for components. (#7629)

* fixes: dnd issue for mobile view (#7632)

* default page menu settings should be true

* [appdef-2] event manager selector bug (#7631)

* fixes: on selecting query - 3 outbound calls are done to the server, and event manager re-renders 3times resulting in flikering ui

* reduces outbound calls for updating csa actions to 1

* [appdef] - copy associated events for cloned components (#7634)

* fixes: Copying  component is not coping the events associated with the component.

* cleanup

* [appdef-2] : Fixes frontend issues (#7636)

* Fix UI issues

* Fix Scrollbar is not available after we pin the inspector.

* Fix button  jumping places if switched from extended monitor to laptop.

* Fix white background around canvas

* fixes: Component inspector go blank after switching to different pages after dropping components (#7637)

* fixes: general properties of widgets are not getting saved (#7638)

* fixes: selecting the components via selecto (#7653)

* fixes: multiple undo-redo simlut. (#7656)

* fixes: copy associated events for cloned queries (#7657)

* Fixes not able toggle of Listview pagination toggle (#7701)

* Fix UI issues

* Fix Scrollbar is not available after we pin the inspector.

* Fix button  jumping places if switched from extended monitor to laptop.

* fix enable pagination not getting toggled in listview

* Fix form children not being displayed

* fixes: dnd fix for widgets dropped inside subcontainer (#7691)

* [Appdef-2] copy-paste, cut and  clone fix for widgets (#7687)

* fixes: copy/cut/paste and cloning of widgets

* cleanup

* can copy/paste-clone in listview

* fixes: on mulit-widget selected via mouse area selection: widget manager should be rendered (#7688)

* fixes: on deleting tabs widgets should delete its children (#7692)

* fixes: column data generated from restapi does not render correct columns in viewer (#7695)

* [appdef-2] fixes: multiple query confirmations trigger (#7704)

* fixes: multiple query confirmations trigger

* fixes: multiple outbound calls in the inital load, run queries on app load with confirmations:editor&viewer

* fixes: correct confirmations list to the stote

* [appdef-2] fixes:Event handler are running twice for page load (#7705)

* fixes:Event handler are running twice for page load(eg- add 2 show alert and change the page).

* fixes: for viewer page events

* fixes: container widget is not getting saved on drop (#7718)

* fixes: Create app version from is empty if we delete another version. (#7720)

* [appdef-2] fixes: on versioned app (switching or creating) version, the componet layout is wrongly updated to the container dnd (#7721)

* fixes: on versioned app (switching or creating) version, the component layout is wrongly updated to the container dnd

* fixes: container widget is not saving

* fixes: triggering confirmation box for every query with on load trigger (#7728)

* Fixes canvas background and go to app crashing (#7725)

* Fix UI issues

* Fix Scrollbar is not available after we pin the inspector.

* Fix button  jumping places if switched from extended monitor to laptop.

* fix enable pagination not getting toggled in listview

* Fix form children not being displayed

* Fix Go to app is crashing the application.

* Fix fx for canvas background color is not working.

* fixes: cloned/copied table with actions (#7758)

* fixes: calendar and form widgets (#7735)

* fixes: rendering of components in viewer for mobile (#7759)

* fixes: toggling, resizing, dropping widgets in both display preferences (#7760)

* fixes: page switch action via runjs actions (#7762)

* fixes: component validations do not get saved (#7766)

* [appdef-2] subcontainer dnd height outbound fix (#7767)

* fixes: listview children can be dragged outside its outbound limit

* cleanup

* fixes: widget inspector going to empty component (#7768)

* fixes: goToApp not running from runjs in viewer mode (#7770)

* fixes: multi-components cloning or copy/paste have same name (#7761)

* Fix disabled page is being displayed on switch page event dropdown (#7769)

* Fix kanban rendering leading to infinite look

* Fix disabled page is being displayed on switch page event dropdown

* Fix Kanban widget getting into infinite loop (#7808)

* Fix kanban rendering leading to infinite look

* Fix disabled page is being displayed on switch page event dropdown

* Fix kanban getting into infinite loop

* adds support of constants to current state of the ediotr (#7821)

* removes loader added for testing (#7822)

* [appdef] fixes - dnd container cloning edge cases (#7820)

* fixes: copy/pasting components updating wrong display preferences

* fixes: copy/pasting tabs and cloning components inside tabs

* fixes: duplication of calendar component bug

* if components in subcontainer(children) are selected via selecto along with its parent, children should not be going through duplication

* if components in subcontainer(children) are selected via selecto along with its parent, children should not be going through duplication

* fixes: Resolving App Version and Timestamp Update Challenges (#7863)

* Fixes query confirmation issue on viewer (#7862)

* [appdef ]fixes: components copied from template app to a new page or app do not render in canvas (#7867)

* fixes: components copied from template app to a new page or app does not render in canvas

* fixes: table crash on coping from other pages with columns

* adds the column exists check

* fixes: tables crash for imported apps with auto generated cols

* appdefinition refactor/cleanup (#7872)

* cleanup controllers and request calls from frontend

* removing unwanted console logs and unused variables

* revering v1 apis og

* adding length validation for page dto

* adding dtos for components

* updated dtos for components and pages

* added dto for event handlers

* fixes event handler dto

* fixes: page dto

* adds/fixes event handlers creating dtp

* fixes: event handler service and dtos

* [appdef] fixes: Creating page not changing the slug (#7873)

* fixes: Creating page not changing the slug

* removes extra whitespace

* [appdef] fixes: on importing a exported app child components are not present in the parent component (#7864)

* fixes: on importing a exported app child components are not present in the parent component

* handles parent component mapping for tabs and calendar component

* handles parent component mapping for tabs and calendar component for new versions

* [appdef] api endpoint fixes (#7888)

* fixes: moved fetching app version to v2 api

* fixes: app slug api

* Fixes CurrentUser & Mode not present in globals in inspector (#7812)

* Fix current user not being present in inspector

* Add Mode in globas in inspector

* Fix creating page not changing the slug.

* Revert "Fix creating page not changing the slug."

This reverts commit 0ff9c18ab8.

* Fixes  on adding query params in event handler, breaking the app (#7889)

* Fix on version change if left sidebar is open canvas not scrolling right

* Fix on adding query params in event handler, breaking the app

* Fix

* Fix on version change if left sidebar is open canvas not scrolling right (#7884)

* fixes: fixes on on app load switch page action via run queires (#7858)

* fixes: fixes on on app load switch page action via run queires

* Fix

* refactor

* Fix on load event not appearing on viewer

---------

Co-authored-by: Nakul Nagargade <nakul@tooljet.com>

* [appdef] fixes: event actions mapping for import-export (#7895)

* fixes: event actions mapping for import-export

* fixes: updates organisation id

* fixes: templates event mapping

* do not app again for not normalized apps

* [appdef]migrations fix (#7910)

* fixes: page attributes

* fixes: table action and column events for imported apps (prev) and app migrations

* adds processDataInBatches

* fixes: app data migrations

* create a new queryBuilder instance for each batch to ensure that there's no interference between batches

* fix: app migration

* cleanup

* cleanup

* fixes: table column data not updated on boxes changes in container (#7919)

* fixes: creating all pages from all versions (#7905)

* Fix state not changing in chart (#7900)

* Fix in chart, toggles are not working

* Update Chart.jsx

---------

Co-authored-by: Arpit <arpitnath42@gmail.com>

* fix event param not updating (#7902)

* [appdef] Pages attributes are missing on versioning or imported app (#7904)

* fixes: on creating new version pages attributes are not copied

* fixes: on importing apps with  pages attributes are not copied

* fixes: component double duplication issues

* fixes: deleting children components via selecto (#7915)

* fixes: component deletion fixes

* fixes: cloning components to a new version should also create associated events

* fixes: creating components on cloning with general styles or properties

* fixes: creatinng general properties on version

* fixes: imported app

* fixes added to app migrations

* fixes: mobile view

* fixes: Created a new version with multiple pages from second page, the new version shows the homepage with second page URL

* fixes: table crash due to columnDeletionHistory saved as an object instead of an array

* fixes: on creating new version, data_queries should be created (#7975)

* [appdef] fixes: migrations  (#7951)

* refactor migrations with batching

* event actions: switch page should be mapped to correct new page id

* fixes: importing json-schema app with multiple version: same components do not get render in the canvas

* fixes: import/export of legecy apps

* event actions mapping to correct page ids: migrations

* fixes: migrations  children not rendered in subcontainer components

* adapts to main/viewer changes

* fixes: viewer with #6698

* fixes: viewer route

* fixes: page switch via validateRoutes

* fixes: on delete version fetchApp fails

* handle error on saving changes

* skip name opts

* typo fix

* Instead of relying on the schema, we choose to use the Tooljet version as the determining factor for decoupling import flows

* fixes: slug updates from global settings

* fixes: slug app link (#8008)

* fixes: on version changed the preview link should also update (#8009)

* fixes: on cut and paste events should not cascade (#8010)

* fixes: query options to new mapped ids

* [appdef] fixes: cloning apps (#8012)

* fixes: cloning apps

* fixes: slug status from share modal

* fixes: query confirmations list on viewer (#8017)

* undo-fix

* fixes: updates current state with page data on creating new page

* Fix failing specs (#8031)

* [appdef] fixes : ghost child components are being created on imported/cloned apps and while migrating (#8026)

* fixes: ignore ghost components while importing

* added the fix in migrations

* fixes: adding other components

* fixes: table column resizes

* updates layout dto

* update component dto

* fixes: tabs children are not rendered as the are not in their repsective parent container (#8036)

* moving editorFunc to Editor.jsx

* cleanup

* fixes: e2e test for clone

* cleanup

* fixes: toggle maintaince

* bumping version

* multi-edit: ymap-fix-1

* Revert "multi-edit: ymap-fix-1"

This reverts commit 8b799c3c51.

* [appdef] fixes: viewer route: keeps on reloading for private apps (#8051)

* fixes: viewer route: keeps on reloading for pribate apps

* should return the response

* test: ymap updates-1

* fixes: v1 apps with dq queries resuts in app crash

* Updated import spec

* Revert "Updated import spec"

This reverts commit 802136cdc3.

* Fixed failed platform test cases for app desinition re-design (#8053)

* Fix failed platform test cases

* Modify user permission test cases

* fixes: trial-5: fixing vanishing of components

* Revert "fixes: trial-5: fixing vanishing of components"

This reverts commit a22aec12c7.

* fixes: trail-6: fix

* fixes: trail-7: fix

* Revert "fixes: trail-7: fix"

This reverts commit 08f373c415.

* Revert "fixes: trail-6: fix"

This reverts commit c4e19b5d05.

* multi-edit: ymap-fix

* Revert "multi-edit: ymap-fix"

This reverts commit 92f49c0cde.

* fixes: multi-user updates: adding or removing

* event handlers sycned for multi-user

* should take slug instead of appid if slug is present

* updating adding ymap logic

* versioning with multi-user

* fixes: saving issue

* dont skip ymap

* adds delay to ymap

* ymap-update-order-fixed

* ymap-update-order-fixed-1.1

* ymap-update-order-fixed-1.2

* test=fix

* Updated import spec (#8061)

* cleanup

* lint fixed

* fixes: cloning apps with tabs

* veiwer on event should return

* fixes: event should map with show/hide modal component id

* Fix failing appbuilder specs (#8117)

* cherrypicked ee/00195c064

* bumping version to v2.24.0

* fixed modal actionid typo

* fixes: slugs issues for released an public apps (#8119)

* Fix failed test cases (#8121)

* reverting global slug input

* fixes: versioning with cloned page and ghost components (#8122)

---------

Co-authored-by: Nakul Nagargade <133095394+nakulnagargade@users.noreply.github.com>
Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
Co-authored-by: Midhun Kumar E <midhun752@gmail.com>
Co-authored-by: nandinisaha13 <nandinisaha13@gmail.com>
Co-authored-by: Mekhla Asopa <dadhichmekhla@gmail.com>
Co-authored-by: Ajith KV <ajith.jaban@gmail.com>
Co-authored-by: Mekhla Asopa <59684099+Mekhla-Asopa@users.noreply.github.com>
2023-11-08 11:09:47 +05:30
Kiran Ashok
e5d75bd4cf
Feat :: Editor UI revamp (#7275)
* temp commit ::  editor redesign

* fix :: components panel ui

* style updates

* fix :: arrangement widget list

* fix :: light mode widget list

* style fixes query manager

* updates

* updates heaer styles

* global settings fix

* left sidebar states and icon change

* cleanup

* minor fixes :: review

* fix opacity mode toggle

* detailing in hover states , bugfixes

* fix :: coloring whole app , debugger ui

* cleanup

* fix :: revert some changes , fix statistics widget

* feat :: navbar with new layout

* fix :: lint warnings

* cleanup

* cleanup

* minor fixes

* fix :: reusing serchbox

* removed unwanted prop

* Revert "cleanup"

This reverts commit b18abe19fb.

* fix :: icons sidebar

* fix :: padding searchbar

* style fix

* radix :: dark theme for portals

* fix :: icon styles

* fix :: all codehinter styles

* update :: base bg color app

* fix :: viewer color

* minor fixes :: icon left sidebar

* typo

* fix :: styling save message header

* icon :: fix for layout and inspector queries

* fix :: canvas and editor bg

* fix :: release btn style

* fix :: navbar border

* undo redo tooltip

* fix :: page input

* remove released btn icon

* fix :: for icon not loading proper in inspector

* fix :: dark mode toggle icon size

* fix :: share  app ui

* fix :: style fixes , inspector runpy icon

* fix :: ui runpy codehinter

* fix :: inputs in gds connection

* cleanup

* fix :: copilot codehinter ui

* fix :: share modal button

* fix :: canvas bg text

* style fix debugger

* fix :: whole dahsboard layout and border for all codehinters

* fix :: icon fills

* fix :: icon fill color sidebar

* darkmode fill color

* minor style fix

* Widget inspector redesign (#7355)

* Setup Storybook

* Update storybook config

* Add tab and toggle group component

* Created list component

* Properties tab

* update codehinter dropdown components

* Refactor styling

* Inspector header changes

* Fix es lint issue

* Fix

* feat :: styling color picker styles panel

* Fix color picker alignment

* feat :: remove alpha

* Fix UI bugs

* fix :: color picker

* Ui fix

* Backward compatible pagination changes

* fix

* Feedback changes

* UI feedback

* Check fix

* Fix

* fix :: canvas bg popover

* Styles fix

* Fix conflct issues

* minor style fix style tab

* Fix

* review comments fix :: hovering in color picker

* Code review and design feedback

* UI feedback

* Fix UI styles

* Fix pagination issue

* fix :: dark mode issues in select , number input

* fix :: remove extra boreder

* fix :: table column popover ui and component popover inspector

* fix :: datepickre input table column

* fix :: colopicker in table column inspector

* fix :: link column type ui in table

* fix :: column delete ui and delete not triggering

* Fix list item not dragging

* fix :: closing of popover on link column select

* style fix table popover

* Pass dark mode to Event manager button

* fix :: ux event manager

* cleanup

* cleanup

* fix :: delete page modal ui

---------

Co-authored-by: stepinfwd <stepinfwd@gmail.com>

* style fixes

---------

Co-authored-by: Nakul Nagargade <133095394+nakulnagargade@users.noreply.github.com>
2023-09-04 13:30:39 +05:30
Kiran Ashok
aabe7bb492
Feature :: Exposing CSA for child widgets of form and listview (#7142)
* feat :: exposing child widget of form and listview  , removing register action

* feat :: exposing only components and not child items

* fix :: removing value of funcation info

* lint fixes

* reverted

* test commit :: lint fix

* fix :: initial render showing all components

* fix :: data and children values are same

* kanban breaking fix

* fix for exposed variable not being accessible in initial render

* comments

* fix :: all components showing up in inspector during initial render for form and listview widget

* reduce rerenders in button due to exposed vars

* combining useeffects for lesser rerenders

* fix showing of child widgets of list and form in inspector during intial render

* fix :: ui break

* combining useeffects in form

* test commit :: reducing rerenders fromsetexposed variable called multipole time

* fix :: reduce rerenders by combining multiple setExosedvariable calls

* Revert "fix :: reduce rerenders by combining multiple setExosedvariable calls"

This reverts commit 78c9e46944.

* bugfix

* bugfix :: events not firing

* fixes and revertions

* fix :: perf checking for parent in box in case of form and listview

* fix :: initial render bug

* fix :: removed csa functions from listview data key

* fix bugs , actions not working

* fix :: dependencies

* fix :: testing bugs

* tabs:: event firing bug

* fix :: multiselect not firing event

* bugfix ::  multiselect csa not triggering

* fix :: kanban csa

* fix :: table csa , kanban move card

* fix :: bug filepicker csa
2023-09-01 13:55:03 +05:30
Nakul Nagargade
06b558c84a
Prevent app re-renders on hovering widgets in canvas (#7015)
* Move version manager editor states to zustand

* Update appDataStore to appVersionsManagerStore

* Move released version popup state to global

* Move isVersionReleased to global store

* Rename appVersionsManagerStore to appVersionStore and destructure zustand data inside components

* Move showComments and toggleComments states to zustand store

* Move current layout from editor local states to editor store

* Move hovered component to zustand

* Move selected components to zustand

* Merge branch 'refactor/zustand-edior-store' into zustand-editor-store-2

* Fix

* FIx

* Remove util function

* Reolve code comments

* Resolve code comments
2023-08-31 13:42:32 +05:30
Johnson Cherian
27c966a9e0
fix: round element width to multiple of gridwidth (#7085)
* fix: round element width to multiple of gridwidth

* fix: roundd the width to multiple of gridwidth on resize
2023-07-24 16:51:03 +05:30
Kiran Ashok
1e8b43307f
Feature :: Restrict certain components from being added onto certain container-components (#6903)
* feat :: restrict dropping of certain child items

* add restriction for calendar and kanban

* feat :: making a centralized restricted widgets data

* fix undefined messages

* fix :: adding diff messages for popout and kanban card

* updated logic keys in restricted obj to remove passing down of props

* bugfix :: pass parent prop in modal widget

* error toast styles for widget drop in containers

* fix :: restricted table to be added as child widget to kanban card
2023-07-20 13:51:43 +05:30
Nakul Nagargade
3f75baa7ef
Move the entire current state to Zustand store (#6812)
* Move current state to Zustand store

* Remove console logs

* Bug fixes

* Bug fix

* Code refactor

* Fix table not rendering when selected

* Refactor

* Resolve imports

* Resolve code comments

* Prevent current state store zustand actions not to exposed to user

* Fix

* Move current state from viewer to Zustand store

* Bug fix

* Resolve code comments

* BugFix

* Bug fix

* bug fix

* fix action button event not being triggered in table

* Resolved comments
2023-07-19 11:42:28 +05:30
Johnson Cherian
d99d6ce3d1
Fixed widget position calculation on resize (#6907)
* fix: correct widget position calculation on resize

* fix: fix widget misalaignment issue for contianer

* Update frontend/src/Editor/Container.jsx

Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>

* Update frontend/src/Editor/SubContainer.jsx

Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>

* fix: prevent state update id no size change on resize action

* fix: round position of widget to multiple of spacing

---------

Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-07-18 15:28:49 +05:30
Nakul Nagargade
f321c19265
Move showComments and currentLayout to zustand store (#6646)
* Move version manager editor states to zustand

* Update appDataStore to appVersionsManagerStore

* Move released version popup state to global

* Move isVersionReleased to global store

* Rename appVersionsManagerStore to appVersionStore and destructure zustand data inside components

* Move showComments and toggleComments states to zustand store

* Move current layout from editor local states to editor store

* Resolve code comments

* Bug fixes
2023-07-18 13:11:31 +05:30
Kiran Ashok
59eee6c12c
Listview component with grid option (#6975)
* feat :: list view component with grid mode

* cypress fix and migration fix for older app to default mode to list
2023-07-11 14:30:54 +05:30
Nakul Nagargade
0a82e50afb
Move Editor's version manager regarding states to zustand store (#6593)
* Move version manager editor states to zustand

* Update appDataStore to appVersionsManagerStore

* Move released version popup state to global

* Move isVersionReleased to global store

* Rename appVersionsManagerStore to appVersionStore and destructure zustand data inside components

* Remove closeCreateVersionModalPrompt and showCreateVersionModalPrompt

* Refactor isVersionReleased

* Resolve code comments

* update action on clicking release version btn

* Resolve code comments

* Resolve code comments

* Resolve code comments

* Fix isVersionReleased not getting updated on editor mount

* Fix released version error message not shaking on editng released version

* Resolve code comments

* Fix preview in query giving internal server error
2023-06-29 15:30:10 +05:30
Muhsin Shah C P
f215d1df96
App version creation flow enhancement - New released version warning popup - Current version issues (#5947)
* current version issue

* working on modal design

* Added released version popup and shake animation

* refactoring the code

* improved the experience

* extra changes

* css revert

* fix: disable components & properties

* fix: switched released version saving & create version modal input value retain issues

* fix: retained values issues

* fix: edit version modal current name issue
- disabled comment's icon

* override grayed out effect for preview

* fix: text overflow issue

* css fix: overflow

* added check for sub-containers

* fixed and added specs

* UI and UX fixes

* lint fix

* added clearInternal fn

* change:added clearInternal fn

* refactoring the code

* removed the comments

* added some code that were missing after the merge

* fixed merge issues

* fixed undo redo

* reverted the store changes
2023-05-11 12:32:21 +05:30
Kavin Venkatachalam
6d07cd34cc
Introduced global state management (#5980)
* global store init

* Moved query data to new component

* Removed unwanted code

* Removed data queries prop drilling

* Moved query state out of editor

* Added unsafe to componentWillReceiveProps

* Selected first query when the version is changed

* Fixed bug on renaming query

* Fixed issue on dark theme

* Fixed running query on page load in viewer

* Added global data source in store

* Disabled devtools on production

* Fixed bug on selecting query after deletion

* Reset store when editor is loaded

* Fixed losing events on renaming first query
2023-05-10 15:44:38 +05:30
Kiran Ashok
a438bf35ee
Adding scroll for container widget (#5877)
* adding scroll for container

* added container for scroll

* feat:: added container widget scroll

* updated container doc

---------

Co-authored-by: Shubhendra <withshubh@gmail.com>
2023-04-11 16:05:19 +05:30
Kavin Venkatachalam
70ffc1e27b
Kanban Widget 2.0 (#5380)
* Kanban 2.0 init

* Implemented Kanban 2.0

* Moved add card button to the header

* Added debounce functionality

* Added CSA to Kanban

* Formatted Kanban

* Updated default data on Kanban

* Handled undefined data and exposed lastUpdatedCard

* Added lastCardAdded exposed variable in Kanban

* Fixed id bug on Kanban

* Fixed width issue on Kanban

* Fixed dark mode

* Commented onUpdate event for every action

* Rename containerId to columnId in lastCardMovement in Kanban

* Updated min width in kanban card

* Fixed bug on dropping items into cards when first container is empty

* kanban2 docs

* updated info in kanban doc

---------

Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com>
Co-authored-by: Shubhendra <withshubh@gmail.com>
2023-03-24 15:22:25 +05:30
Kavin Venkatachalam
4c94de899d
Updated React to 18.2.0 (#5555)
* updated react to 18.2.0

* Updated Frontend Packages (#5569)

* Updated tabler icon and fixed react hot keys issue

* Fixed vulnerabilities

* Updated dom purify and yjs

* Reverted Eslint update

* React-big-calendar update

* Updated and fixed changes related to react-bootstrap

* Updated eslint package

* Fixes react-select-search ui

* Updated packages in root

* Updated & Fixed React-tooltip changes

* Updated and fixed changes related to react-router-dom

* Fixed copyToClipboard bug on usersTable

* Fixed folder popover issue and comment issue

* Fixed flickering issue on Editor

* Fixed routing and dark mode bugs

* Fixed app crash on page options click

* Fixed SVG issues in data sources

* Fixed calendar widget crash

* Fixed popover issue in table

* Fixed dark mode issue on react-select-search

* Fixed popover issue in tooljetdb table

* Fixed popover issue in pages

* Fixed search bar crash

* Fixes dark mode issue on react-select-search

* Resolved conflicts
2023-03-20 17:04:24 +05:30
Kavin Venkatachalam
6af42b8faf
Fixes widget alignment issue inside container (#5699)
* Fixes widget alignment issue inside container

* Fixes widget alignment issue inside tab
2023-03-07 12:38:40 +05:30
EatPrayCode
14d7ed08cd
Fix: Show on desktop bug fixed for widgets using subcontainer (#5496)
* Fix: Show on desktop bug fixed for widgets using subcontainer

* Eslint error

* Fixed lint errors

---------

Co-authored-by: Kavin Venkatachalam <kavin.saratha@gmail.com>
2023-02-23 12:03:53 +05:30
Kavin Venkatachalam
1efcec9e09
[Feature]: Update Node from 14 to 18 (#5393)
* Updated package.json to support node 18

* Updated package-lock.json with force install

* Updated frontend package.json

* Updated server package.json

* update frontend package-lock.json

* update render dockerfile

* update dockerfiles for node 18

* update node version in actions

* fix setup script for AMI

* install using nvm

* debug

* source bashrc

* change ami os version

* change base ami

* make use of ubuntu focal lts version

* update script

* change branch name

* revert branch name

* update workflow

* node upgrade [plugins] modules updated (#5482)

* modules updated

* adds saphana and oracle package

* adds saphana and oracle package

* eslint rules for -unresolved and resolved properties

---------

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
Co-authored-by: Arpit <arpitnath42@gmail.com>
2023-02-06 17:38:44 +05:30
Kavin Venkatachalam
efe3216f9d
[Bugfix]: Updated Local State After Deleting the Child Widget in Form (#4985)
* Fixed bugs on form widget

* Passed childComponents data to the parent
2022-12-20 17:08:36 +05:30
Sherfin Shamsudeen
642c5caa71
Feature/multi page applications (Task ID - CU-2h1bfvw) (#4729)
* Add routes for multi-page apps

* Modify Editor, Viewer and Inspector to accept new app structure

* Show a page selector on left side bar

* Align component deletion logic with new app schema

* Make subcontainer work with multi-page apps

* Load components state properly in viewer

* Use UUID instead of handle for pages

* Display sidebar on viewer to switch pages

* Add proper URL suffixing for pages in viewer

* Add action to switch page

* Revert translation file back to its pre-existing linting

* Fix bug that caused modal to not open/close

* Add support for query params in page switch

* Fix the issue that caused navigation to fail while accessed via slug

* Add missing SwitchPage file

* Add support for page level variables

* Add migration to convert existing apps to new schema

* Add rollback for converting multi-page definitions back to single-page

* Fix migration for multi-page apps

* Adapt import/export service for multi-pages

* [improvements] Multi-page applications (#4755)

* UI updates for page selector popup card

* delete page

* delete page check: if only one page exits

* switch to home page if the selected page is removed

* adds and switch to new page

* updating page name

* updates to home page and starting page

* handle updating the home page when home page is deleted

* search box for filtering pages and minor style updates for the page handler card

* header search box style fixes

* for creating a new page, page handle needs to be unique

* seperating into smaller components

* updated pinned icon for page selector styles and settinf styles

* Leftsidebar header ui component

* handle dark theme

* page handle ui and dark theme fixes for page menu

* page handler edit modal

* pinned state and update pinned state for menu options triggered

* dark theme fixes for edit modal

* handle on update should not be empty or prev

* page handler updater

* added loading state for saving

* handles cancels

* fixes slug ui

* fixes crash for older app versions

* updates the query params when handle gets an update

* update homePage to homePageId

* removes console.log

* go back to the popover for modal close

* fixes: Difficult to select page

* fixes: Difficult to select the three-dot menu

* fixes: on visiting the root url, navigate to homepage on viewer

* adds tooltip for url

* updates the page selector sidebar with sync with query manager

* refactor and cleanup

* refactor and cleanup

* Compute component state when page is switched

* modal should not close on click outside

* disable save button if there is not change in the page handle input

* should show/hide page menu when hovered

* page icon

* updates delete icon for disabled state

* query manager should always be on top of page selector

* checks if homePage key exists in pages def

* updates page handler menu

* updates the clear icon

* page handler menu position

* page handler menu position

* handle icon

* alert msg

* global settings handler for updating viewer page navigation

* show/hode page navigation for viewer

* info text for toggle

* Multipages:with sortable list [DnD] (#4783)

* applied sortable list

* on sort updates the definitions

* fixies: app crash for dnd

* viwer: canvas width should be 100% when navigation drawer is disbaled

* fixes: homepage/startpage  reload

* clean up

Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com>

* Multipage UI viewer (#4801)

* new ui changes for viewer pages

* fixes postions for debugger and datasources popover

* removes console.log

* Multipage : hide page and unhide page feature (#4803)

* adds: ability to hide pages

* hides pages in viewer

* unhide page

* hide icon

* allow accessing hidden pages from url

* add: duplicate page (#4802)

* add: duplicate page

* do not copy the  same references from the original page

* page name and page handler should be unique for duplicate pages too

* Add support for on-page-load events

* Add icon from page settings menu item

* Convert existing templates to multi-page schema

* error logs for page level and app level errors (#4842)

* Adapt comments feature for multi-pages

* [Bugfix] multipage - page menu interactions (#4844)

* fixes: menu popup interaction

* fixes: on modal input focus, we switch the page

* Adapt multi-player to multi-pages

* Add editingPageId to ymap

* Log self, others and editor props in real-time avatar generation

* Save editing page id to appDef

* Add editingPageId to presence in RealtimeCursors

* adds no results ui for empty search results (#4869)

* page icon updated (#4870)

* fixes:Version switching crashes if the target version does not contain the current page (#4868)

* Remove unnecessary setting of editingPageId on ymap

* Remove unnecessary console.log

* [Bugfix] Multipages: widget inspector event popover unmounts (#4887)

* introduced a local state for events

* cleaned up inspector.jsx

* fixes: table widget inspector event accordion

* Do not run switchPage twice when viewer is loaded

* Preview should open the currently editing page

* Properly place navigation and canvas in viewer

* Update app definition whenever event manager changes are made

* Add support for browser back and forward button in multi-pages

* Rename handleBackButton to handlePageSwitchingBasedOnURLparam

* Add support for cut/copy/paste and clone

* Fix the crash caused by boxShadow

* Add support for background colors in viewer in multi-pages

* Run queries to be run on load on viewer, in multi-pages

* Fix issue that caused inspector popovers to collapse

* resolves workspace vars in viewer mode (#4892)

* Multipage : Navigation for Mobile-ui (#4814)

* refactored to components

* burger menu for mobile ui

* merge conflict fix for hidden pages

* hamburger menu positioned in the header

* viewer header reafctored

* viewer mobile page manu styles

* handles dark theme

* mobile menu with dark mode toggle in the footer

* components are moved to page level, handle for mobile layout

* style fixes

* removing unwanted code block

* dark theme fixes

* style fixes

* fixes: events are sortable (#4895)

* fixes: events are sortable

* Remove uneccesarily repeated call of setEvents in EventManager

Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com>

* renamed settings to Event handlers (#4898)

* updates the page setting title to Page Events

* temp commit

* Add support for setting max width in percentage

* fixes: paramUpdates for boxes: 🙌🏻

* [Bugfix] Multipage - viewer canvas dark theme (#4897)

* fixes: darktheme bg for viewer canvas

* reverts canvas size

* Fix for inspector bouncing back to previous values

* resolves pages variables in pythong and js transformation (#4905)

* csa support to event manager for pages (#4907)

* Add support for setting canvas width in percentages

* Persist page level variables across page switches

* latest definitions is merged with the current appdef (#4914)

* latest definitions is merged with the current appdef

* mutating the local obj

* cleanup

* iterate through pages for new versions are created

Co-authored-by: Arpit <arpitnath42@gmail.com>
2022-12-08 17:51:09 +05:30
Kavin Venkatachalam
12a770cbc4
[Feature]: Form Widget (#4595)
* Created form widget

* Fixed the same name issue in defaultChildren

* Dynamically added buttons to the form inspector

* Added data to exposed variable and handled button click

* Added Reset functionality, CSA to the form widget

* Added Form widget icon

* form component docs

Co-authored-by: Shubhendra <withshubh@gmail.com>
2022-12-08 14:41:02 +05:30
Kavin Venkatachalam
49224f4e48
Open widget manager on dropping the widget into canvas (#4866) 2022-12-05 16:58:47 +05:30
Arpit
065494c0ef
fixes: scroll issue for subcontainer layer for modal (#4410)
* fixes: scroll issue for subcontainer layer for modal

* fixes: container crash

* clean up
2022-10-21 13:51:32 +05:30
Kavin Venkatachalam
0d1916d27e
Triggered selection only when it is dragged on main canvas (#4342) 2022-10-14 14:44:40 +05:30
Arpit
9392b0a189
fixes: children can be dragged to the bottom, making the container layer scrollable (#4323) 2022-10-06 14:44:57 +05:30
Alvaro Cabrera Durán
2d385a13f6
fix: pass-down dataQueries to allow runQuery on modals, closes #4099 (#4100) 2022-09-28 12:20:45 +05:30
Midhun Kumar E
4d42efaa8f
Add cypress test for listview (#4070)
* Add data-cy

* Add utils

* Add spec and constants

* Fix commented lines.

* Added missing preview
2022-09-23 13:38:28 +05:30
Arpit
ec4af908df
[Feature]: Default Children for Tab Widget (#3786)
* refactored: subcontainer layer

* refactor container and cleanup drag layers

* removes unused, commented code

* fixes default component width in subcontainers

* init

* handle adding default widget in subcontainer and container layers

* fixes: snapping of widget to subcontainer layer

* reafactor and cleanup

* fixes container crash

* clean up

* init

* handle parentId for tabs widgets for adding default wdigets

* adds default widgets to tabs

* refactored default widget props in the widget config

* update default widgets

* update default widgets

* handles default widgets inside nested components

* clean up

* clean up
2022-08-19 10:18:18 +05:30
Arpit
8fd356926b
[improvement] Listview widget - Adds default children when dropped for the first time (#3716)
* refactored: subcontainer layer

* refactor container and cleanup drag layers

* removes unused, commented code

* fixes default component width in subcontainers

* init

* handle adding default widget in subcontainer and container layers

* fixes: snapping of widget to subcontainer layer

* reafactor and cleanup

* fixes container crash

* clean up

* handles default widgets inside nested components

* fixes: removes vague validation error,
2022-08-11 17:22:06 +05:30
Arpit
268045b2fa
Refactor: Container and SubContainer Drag and Drop Layer (#3715)
* refactored: subcontainer layer

* refactor container and cleanup drag layers

* removes unused, commented code

* fixes default component width in subcontainers
2022-08-09 15:45:19 +05:30
Kavin Venkatachalam
df11f4b1f6
[Feature]: Area Selection on Drag (#3665)
* Added area selection

* Disable selection while dragging widgets inside subcontainer

* cleanup area selection
2022-08-02 13:36:48 +05:30
Sherfin Shamsudeen
bc93818621
Feature/component property validation (#2782)
* Initial architecture for component property validation

* Coerce to default and log invalid properties

* eslint rule:frontend for  specifying the path to the  @types/

* removes comment for eslint-disable-next-line

* reverts 27946f1 & adding a temporary fix

* Remove incorrect property validations

* Avoid race condiiton in setting state for error logs

* Fix issue where only one error got logged

* Flush out any errors that are logged

* Remove unnecessary console.log

* Add validations for Table properties

* Add support for multiple validations

* Add validation for chart component

* Add validation for modal

* Set default value common to all validation schemas for component properties

* Add validations for password widget

* Add validations for datepicker

* Add information about default value on validation error message

* Remove unwanted console.log

* Do not validate properties on Viewer

* Use meta information from widget config instead of component state to validate

* Do not coerce to default values while validating

* Do not validate existing components

* Update package-lock.json in sync with develop

* Add validation for general properties

* Add support for size validation of component properties and styles

* Add support for min and max spec in size validation

* Support pattern validation for string properties

* Make size validation specifiable along with type specification

* Component validation optimizations

* Remove unnecessary comments

* Remove unnecessary default value param from validation

* Fixed visibility style validation bug

* Added custom validation to PDF & Custom component

* property/style validation statistics

* values changed to string

* validation button group widget

* bugfix

* Added property validation to timeline widget

* Added visibility prop validation to timeline widget

* steps property/style validation

* svg component property validation

* component property validation numberinput

* bugfix

* validation textarea

* validation vertical divider

* property validation html widget

* validation :: checkbox

* image property validation

* validation :: rangeslider widget

* validation :: circular progress bar

* validation spinner

* added props and style validation

* tags validation

* validation :: pagination

* timer :: validation

* validation :: toggle

* validation :: divider

* validation :: radiobutton

* added props and style validation

* validation:: iframe

* validation :: password input

* validation:: code editor

* validation :: listview

* validation :: star rating

* validation :: modal

* validation :: qrscanner

* validation :: datepicker

* multiselect :: validation

* added union validation for border radius

* added props and style validation

* added props and styles validation

* added props and styles validations

* added props and styles validations

* added props and style validations

* added props and styles validations

* added prop and style validations

* added props and styles validations

* Added ID validation to steps widget

* Removed default value

* Added validation key to SVG widget

* Removed default value

* table validations

* table validations

* removing default value

* removing defaultval

* removing default val

* removing default val

* padding validation update

* updating number validation

* updatin number validation

* validation updates

* border validation

* border radius validation

* number input validation

* validation updates

* border radius validation

* validation update

* Updated misspelled schema text

* Updated Tabs validation schema

* Updated tooltip element schema

* Updated validation for multi select

* Updated validation for dropdown

* Updated validation for text widget

* Rectified mispelled validation

* Fixed : validation not working for format

* Added Array validation to chart widget

* format prop bug fix

* draft complete :: table validation

* Fixed misspelled text

* Don't validate properties that are not defined on widgetConfig

Co-authored-by: arpitnath <arpitnath42@gmail.com>
Co-authored-by: Kavin Venkatachalam <kavin.saratha@gmail.com>
Co-authored-by: stepinfwd <stepinfwd@gmail.com>
Co-authored-by: manishkushare <kushare.manish9@gmail.com>
Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2022-07-19 18:51:45 +05:30
Sherfin Shamsudeen
8b966711e1
Expose actions of list view children only once (#3518) 2022-07-07 18:25:22 +05:30
Sherfin Shamsudeen
ff0397f1ef Merge branch 'main' into develop 2022-07-03 16:22:33 +05:30
Sherfin Shamsudeen
74cbbac6e8 Invoke subcontainer option change callback only if it is supplied 2022-07-03 02:09:36 +05:30
Sherfin Shamsudeen
4bd2fd74d0
Add support for ListView inside ListView (#3454)
* Add support for ListView inside ListView

* Remove unnecessary triggering mechanism for useEffect in ListView

* Remove unnecessary extraProps param
2022-07-02 18:00:30 +05:30
Kiran Ashok
7797bc33e0
Undefined error in multiple cases (#3180)
* Cannot read properties of null (reading 'x')

* Cannot read properties of null (reading 'first_name') - realtime cursor

* Cannot read properties of undefined (reading 'events')

* Uncaught TypeError: onComponentHover is not a function fix

* Cannot read properties of undefined (reading 'layouts')

* reverting
2022-06-23 15:27:03 +05:30
Sherfin Shamsudeen
738acff277
Remove needless resize of container children when clicked and dragged (#3240) 2022-06-09 16:01:02 +05:30
Sherfin Shamsudeen
0071e43125
Stop container children from getting resized when handle is clicked (#3232) 2022-06-09 11:16:19 +05:30
Kavin Venkatachalam
ed43ca844a
[Feature]: Added universal props for widgets with Tooltip (#3096)
* Added universal props for widget

* Fixed lint issues

* Updated export name

* Fixed lint errors

* Updated genral variable name

* Updated file name in doc
2022-06-02 11:51:52 +05:30
Manish Kushare
6b6cb5fc32
[Improvement] : Filepicker widget (#3021)
* solve the bug- now only 1 message is shown for exceeding max file count

* added edge case to only show unique error message

* persisting previous accepted files upon rejecting a file

* fixes: retain existing selected files on rejection

* cleanup

* fixes: dropzone active even with listed selected files

* handles rejected files sizes for error msgs

* on dialogue box closed, should list files if exits

* fixes: show list of files if exits when files are rejected

* fixes: show list of files if exits when files are rejected

* fixes reject message for file sizes

* clean up

Co-authored-by: arpitnath <arpitnath42@gmail.com>
2022-05-24 15:49:33 +05:30
Arpit
7221040a1b
fixes app crash in subcontainer layer (#3081) 2022-05-18 18:33:04 +05:30
Arpit
71200bf28d
fixes container crash on viewer (#3042) 2022-05-11 20:10:48 +05:30
Navaneeth Pk
e8ca5cbc73
Ability to select multiple widgets from canvas and change their position (#2979)
* Better canvas

* fixes sets the active node to the selected widget on the editor

* removing selectedComponent and fixing currentTab msg alignment for inspector

* useKeyHooks custom hotkey hook

* handles escape key on editor

* handles delete for multiple widgets

* removes unwanted comments

* fixes: all the widgets are deleted at once, in a single action

* hide delete button from widegt config handler when multiple components are selected

* fixes delete button width for long chars

* Revert "fixes delete button width for long chars"

This reverts commit 79dadfa7d3.

* fixes display config handler for selected widgets on layout/container widgets

* subcontainer layer dnd improvement for multi-widget

Co-authored-by: arpitnath <arpitnath42@gmail.com>
2022-05-11 14:43:13 +05:30
Arpit
0182283819
refers 665b69fa81 (#2560) 2022-03-17 18:16:28 +05:30
Arpit
44bbbc8936
[Hotfix] resolves widget width inside modal(resize issue) (#2476)
* resolves widget width inside modal(resize issue)

* removes comments
2022-03-10 17:21:46 +05:30