2021-08-17 06:01:12 +00:00
|
|
|
import '@/_styles/left-sidebar.scss';
|
2023-06-15 07:28:44 +00:00
|
|
|
import React, { useState, useImperativeHandle, forwardRef, useEffect, useRef } from 'react';
|
|
|
|
|
import _ from 'lodash';
|
2021-11-10 08:43:22 +00:00
|
|
|
import { LeftSidebarInspector } from './SidebarInspector';
|
|
|
|
|
import { LeftSidebarDataSources } from './SidebarDatasources';
|
2021-08-17 06:01:12 +00:00
|
|
|
import { DarkModeToggle } from '../../_components/DarkModeToggle';
|
|
|
|
|
import useRouter from '../../_hooks/use-router';
|
2023-07-20 12:12:37 +00:00
|
|
|
import { LeftSidebarDebugger } from './SidebarDebugger/SidebarDebugger';
|
Feature: Collaboration ( realtime comments for canvas ) 🔥 (#810)
* feat: initial commit for collaboration feature
* add dnd to comments
* add positions endpoint
* feat: encapsulate all http common logic in http-client
* segregate sections and transfer responsibility of state
* feat: use-spring to add fade effect :zap:
* fix: open in right
* fix: left-right position css
* add footer for message
* integrate getcomment endpoint
* use fromnow for date ago
* add dnd
* - Add data trasfer object for comment
- Add class-validator package to check the response type from client
- Add comment repository class for persistance layer
- Add comment service with std. http methods
- Update controller with all http methods
- Update comment module
- Fix http-client bug when error is thrown
* fix http client bug when error is thrown
* feat: add entity thread
* feat: add migrations for thread and comment
* update entitites
* add tid to migration
* filter comments by tid(thread_id)
* fix: comment migration, add missing column comment
* feat: integrate in ui
* feat: split comments based on app_id
* fix: dnd to correct position
* package json engines
* engines update
* update npm
* npm 6 to 7
* fix: add user initials to thread
* fix: add firtname lastname to the comments
* - Return user object when save thread called
- Hide password field from user response
- Fix created_at date typo
- Instead of fetch all threads on new thread added, add the response to array of existing threads
* feat: update ui components
* change icon on comments view
* ui fixes
* fix: close icon close the popover
* temp: comment select: false
* use currentUser from localStorage
* fix: on click outside if comment is open, dont hit addThread
* fix: auth token issue in http-client
* on drag hide the comment if open
* add jwt auth
* spec: add test for comment & thread
* cleanup: remove console.log
* feat: add comment actions
* feat: add edit, delete, resolve options
* feat: add mentions component
* feat: add nestjs websockets
* temp
* websocket: establish client-server communication
* ws: add message listner to comments module in ui
* feat: add broadcast method to broadcast new events to all clients :bomb:
* ws: cleanup :call_me_hand:
* fix: remove max height from comment actions
* feat: add user mentions, emoji support
* fix: add static list of users - temp
* update and delete iterations
* - Rename comment, thread to comments, threads
- Add conditional actions
- Show edit, delete only if he is comment owner
- Show resolve only if he is thread owner
* reset engines
* move svgr webpack to deps
* fix: ui issues
* remove log stmt
* refactor: move resolved icon to comment-header
* feat: allow comments to be added on top of widgets
* feat: add keyboard shortcut
* scroll to bottom on comment add
* ui fixes
* feat: add react toast for notification display
* feat: add comment badge
* fix: ws connection
* fix: ws
* remove rvrse
* feat: add comment sidebar
* feat: add comment right sidebar
* fix: add missing foreign key elements
* - upgrade typeorm to 0.2.38
- comment sidebar ui
- added filter ui
* feat: on click of right sidebar notificaiton open the comment box
* reset engines
* fix: add organization id to the comment and thread module
* fix: add current version id
* add currentversion id
* disable comments if no id present
* temp:checking for heroku deploy
* fetch app on edit and deploy version
* rename current_version_id to app_versions_id
* ui fixes
* show mentioned user in blue color
* add ui changes
* add authorization for create thread
* change color to blue on click of comment, add auth for other endpoints of thread
* update threads, notifications using socket
* add auth for comments
* remove events spec file
* fix duplicate key error
* fix notificaitons updation on edit, delete, resolve buttons clicked
* update notifications for edit
* feature toggle changes for frontend
* add check for comments server
* add emoji mart package for emoji
* add reply count in comment sidebar
* subtract 1 from count in comment sidebar
* change empty text when no comments available
2021-11-01 07:28:03 +00:00
|
|
|
import { LeftSidebarComment } from './SidebarComment';
|
2022-12-08 12:21:09 +00:00
|
|
|
import LeftSidebarPageSelector from './SidebarPageSelector';
|
2021-10-13 04:02:18 +00:00
|
|
|
import { ConfirmDialog } from '@/_components';
|
Feature: Collaboration ( realtime comments for canvas ) 🔥 (#810)
* feat: initial commit for collaboration feature
* add dnd to comments
* add positions endpoint
* feat: encapsulate all http common logic in http-client
* segregate sections and transfer responsibility of state
* feat: use-spring to add fade effect :zap:
* fix: open in right
* fix: left-right position css
* add footer for message
* integrate getcomment endpoint
* use fromnow for date ago
* add dnd
* - Add data trasfer object for comment
- Add class-validator package to check the response type from client
- Add comment repository class for persistance layer
- Add comment service with std. http methods
- Update controller with all http methods
- Update comment module
- Fix http-client bug when error is thrown
* fix http client bug when error is thrown
* feat: add entity thread
* feat: add migrations for thread and comment
* update entitites
* add tid to migration
* filter comments by tid(thread_id)
* fix: comment migration, add missing column comment
* feat: integrate in ui
* feat: split comments based on app_id
* fix: dnd to correct position
* package json engines
* engines update
* update npm
* npm 6 to 7
* fix: add user initials to thread
* fix: add firtname lastname to the comments
* - Return user object when save thread called
- Hide password field from user response
- Fix created_at date typo
- Instead of fetch all threads on new thread added, add the response to array of existing threads
* feat: update ui components
* change icon on comments view
* ui fixes
* fix: close icon close the popover
* temp: comment select: false
* use currentUser from localStorage
* fix: on click outside if comment is open, dont hit addThread
* fix: auth token issue in http-client
* on drag hide the comment if open
* add jwt auth
* spec: add test for comment & thread
* cleanup: remove console.log
* feat: add comment actions
* feat: add edit, delete, resolve options
* feat: add mentions component
* feat: add nestjs websockets
* temp
* websocket: establish client-server communication
* ws: add message listner to comments module in ui
* feat: add broadcast method to broadcast new events to all clients :bomb:
* ws: cleanup :call_me_hand:
* fix: remove max height from comment actions
* feat: add user mentions, emoji support
* fix: add static list of users - temp
* update and delete iterations
* - Rename comment, thread to comments, threads
- Add conditional actions
- Show edit, delete only if he is comment owner
- Show resolve only if he is thread owner
* reset engines
* move svgr webpack to deps
* fix: ui issues
* remove log stmt
* refactor: move resolved icon to comment-header
* feat: allow comments to be added on top of widgets
* feat: add keyboard shortcut
* scroll to bottom on comment add
* ui fixes
* feat: add react toast for notification display
* feat: add comment badge
* fix: ws connection
* fix: ws
* remove rvrse
* feat: add comment sidebar
* feat: add comment right sidebar
* fix: add missing foreign key elements
* - upgrade typeorm to 0.2.38
- comment sidebar ui
- added filter ui
* feat: on click of right sidebar notificaiton open the comment box
* reset engines
* fix: add organization id to the comment and thread module
* fix: add current version id
* add currentversion id
* disable comments if no id present
* temp:checking for heroku deploy
* fetch app on edit and deploy version
* rename current_version_id to app_versions_id
* ui fixes
* show mentioned user in blue color
* add ui changes
* add authorization for create thread
* change color to blue on click of comment, add auth for other endpoints of thread
* update threads, notifications using socket
* add auth for comments
* remove events spec file
* fix duplicate key error
* fix notificaitons updation on edit, delete, resolve buttons clicked
* update notifications for edit
* feature toggle changes for frontend
* add check for comments server
* add emoji mart package for emoji
* add reply count in comment sidebar
* subtract 1 from count in comment sidebar
* change empty text when no comments available
2021-11-01 07:28:03 +00:00
|
|
|
import config from 'config';
|
2023-06-15 07:28:44 +00:00
|
|
|
import { LeftSidebarItem } from './SidebarItem';
|
|
|
|
|
import Popover from '@/_ui/Popover';
|
2023-05-10 10:14:38 +00:00
|
|
|
import { usePanelHeight } from '@/_stores/queryPanelStore';
|
2023-06-29 10:00:10 +00:00
|
|
|
import { useAppVersionStore } from '@/_stores/appVersionStore';
|
2023-07-18 07:41:31 +00:00
|
|
|
import { useEditorStore } from '@/_stores/editorStore';
|
2023-06-20 05:38:56 +00:00
|
|
|
import { useDataSources } from '@/_stores/dataSourcesStore';
|
2023-06-29 10:00:10 +00:00
|
|
|
import { shallow } from 'zustand/shallow';
|
2023-07-20 12:12:37 +00:00
|
|
|
import useDebugger from './SidebarDebugger/useDebugger';
|
2023-09-04 08:00:39 +00:00
|
|
|
import { GlobalSettings } from '../Header/GlobalSettings';
|
2024-04-19 07:25:16 +00:00
|
|
|
import cx from 'classnames';
|
2024-06-19 09:06:09 +00:00
|
|
|
import { deepClone } from '@/_helpers/utilities/utils.helpers';
|
2021-08-17 06:01:12 +00:00
|
|
|
|
2022-06-15 10:46:51 +00:00
|
|
|
export const LeftSidebar = forwardRef((props, ref) => {
|
2021-09-12 04:24:47 +00:00
|
|
|
const router = useRouter();
|
2022-06-15 10:46:51 +00:00
|
|
|
const {
|
|
|
|
|
appId,
|
|
|
|
|
switchDarkMode,
|
|
|
|
|
darkMode = false,
|
|
|
|
|
dataSourcesChanged,
|
2023-03-24 16:11:21 +00:00
|
|
|
globalDataSourcesChanged,
|
2022-06-15 10:46:51 +00:00
|
|
|
dataQueriesChanged,
|
|
|
|
|
appDefinition,
|
|
|
|
|
setSelectedComponent,
|
|
|
|
|
removeComponent,
|
|
|
|
|
runQuery,
|
2022-12-08 12:21:09 +00:00
|
|
|
currentPageId,
|
|
|
|
|
addNewPage,
|
|
|
|
|
switchPage,
|
|
|
|
|
deletePage,
|
|
|
|
|
renamePage,
|
|
|
|
|
hidePage,
|
|
|
|
|
unHidePage,
|
|
|
|
|
updateHomePage,
|
|
|
|
|
updatePageHandle,
|
|
|
|
|
showHideViewerNavigationControls,
|
|
|
|
|
updateOnSortingPages,
|
|
|
|
|
apps,
|
|
|
|
|
clonePage,
|
2023-06-15 07:28:44 +00:00
|
|
|
setEditorMarginLeft,
|
2023-09-04 08:00:39 +00:00
|
|
|
globalSettingsChanged,
|
|
|
|
|
toggleAppMaintenance,
|
|
|
|
|
app,
|
2023-09-01 08:53:02 +00:00
|
|
|
disableEnablePage,
|
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 0ff9c18ab8b622a0fa96f6d7b200898c19b060f4.
* 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 8b799c3c51bc45179d2ad4ef405d6a234083d475.
* [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 802136cdc3f06ee6debe3612999593a872b65bb1.
* 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 a22aec12c789d5bd1c9c1e9cea7d9fb1eef87bfb.
* fixes: trail-6: fix
* fixes: trail-7: fix
* Revert "fixes: trail-7: fix"
This reverts commit 08f373c415b9f1599eff9e397f7c4ffbc3f364b8.
* Revert "fixes: trail-6: fix"
This reverts commit c4e19b5d05c94d8c1d5a6ad37263bcec7dcdccb1.
* multi-edit: ymap-fix
* Revert "multi-edit: ymap-fix"
This reverts commit 92f49c0cde33818c9a85478f8dfc3b59a629c3d7.
* 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 05:39:47 +00:00
|
|
|
isMaintenanceOn,
|
2022-06-15 10:46:51 +00:00
|
|
|
} = props;
|
2023-06-20 05:38:56 +00:00
|
|
|
|
|
|
|
|
const dataSources = useDataSources();
|
|
|
|
|
const prevSelectedSidebarItem = localStorage.getItem('selectedSidebarItem');
|
2023-05-10 10:14:38 +00:00
|
|
|
const queryPanelHeight = usePanelHeight();
|
2023-06-20 05:38:56 +00:00
|
|
|
const [selectedSidebarItem, setSelectedSidebarItem] = useState(
|
2023-09-04 08:00:39 +00:00
|
|
|
dataSources?.length === 0 && prevSelectedSidebarItem === 'datasource' ? 'inspect' : prevSelectedSidebarItem
|
2023-06-20 05:38:56 +00:00
|
|
|
);
|
2021-10-13 04:02:18 +00:00
|
|
|
const [showLeaveDialog, setShowLeaveDialog] = useState(false);
|
2022-06-15 10:46:51 +00:00
|
|
|
const [showDataSourceManagerModal, toggleDataSourceManagerModal] = useState(false);
|
2023-01-05 09:17:24 +00:00
|
|
|
const [popoverContentHeight, setPopoverContentHeight] = useState(queryPanelHeight);
|
2023-06-29 10:00:10 +00:00
|
|
|
const { isVersionReleased } = useAppVersionStore(
|
|
|
|
|
(state) => ({
|
|
|
|
|
isVersionReleased: state.isVersionReleased,
|
|
|
|
|
}),
|
|
|
|
|
shallow
|
|
|
|
|
);
|
2024-04-19 07:25:16 +00:00
|
|
|
const { showComments, appMode } = useEditorStore(
|
2023-07-18 07:41:31 +00:00
|
|
|
(state) => ({
|
|
|
|
|
showComments: state?.showComments,
|
2024-04-19 07:25:16 +00:00
|
|
|
appMode: state?.appMode,
|
2023-07-18 07:41:31 +00:00
|
|
|
}),
|
|
|
|
|
shallow
|
|
|
|
|
);
|
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 0ff9c18ab8b622a0fa96f6d7b200898c19b060f4.
* 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 8b799c3c51bc45179d2ad4ef405d6a234083d475.
* [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 802136cdc3f06ee6debe3612999593a872b65bb1.
* 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 a22aec12c789d5bd1c9c1e9cea7d9fb1eef87bfb.
* fixes: trail-6: fix
* fixes: trail-7: fix
* Revert "fixes: trail-7: fix"
This reverts commit 08f373c415b9f1599eff9e397f7c4ffbc3f364b8.
* Revert "fixes: trail-6: fix"
This reverts commit c4e19b5d05c94d8c1d5a6ad37263bcec7dcdccb1.
* multi-edit: ymap-fix
* Revert "multi-edit: ymap-fix"
This reverts commit 92f49c0cde33818c9a85478f8dfc3b59a629c3d7.
* 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 05:39:47 +00:00
|
|
|
const [pinned, setPinned] = useState(!!localStorage.getItem('selectedSidebarItem'));
|
|
|
|
|
|
2023-07-20 12:12:37 +00:00
|
|
|
const { errorLogs, clearErrorLogs, unReadErrorCount, allLog } = useDebugger({
|
|
|
|
|
currentPageId,
|
|
|
|
|
isDebuggerOpen: !!selectedSidebarItem,
|
|
|
|
|
});
|
|
|
|
|
const sideBarBtnRefs = useRef({});
|
2023-06-15 07:28:44 +00:00
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
setPopoverContentHeight(((window.innerHeight - queryPanelHeight - 45) / window.innerHeight) * 100);
|
2023-01-05 09:17:24 +00:00
|
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
|
|
|
}, [queryPanelHeight]);
|
2022-06-15 10:46:51 +00:00
|
|
|
|
2023-06-15 07:28:44 +00:00
|
|
|
useEffect(() => {
|
|
|
|
|
if (!selectedSidebarItem) {
|
|
|
|
|
setEditorMarginLeft(0);
|
|
|
|
|
} else {
|
|
|
|
|
setEditorMarginLeft(350);
|
|
|
|
|
}
|
2023-06-20 05:38:56 +00:00
|
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
2023-06-15 07:28:44 +00:00
|
|
|
}, [selectedSidebarItem]);
|
|
|
|
|
|
2022-06-15 10:46:51 +00:00
|
|
|
useImperativeHandle(ref, () => ({
|
|
|
|
|
dataSourceModalToggleStateHandler() {
|
|
|
|
|
toggleDataSourceManagerModal(true);
|
|
|
|
|
},
|
|
|
|
|
}));
|
2022-12-30 06:39:07 +00:00
|
|
|
|
2022-12-29 11:48:24 +00:00
|
|
|
const handleSelectedSidebarItem = (item) => {
|
2023-06-15 07:28:44 +00:00
|
|
|
if (item === selectedSidebarItem && !pinned) {
|
2022-12-29 11:48:24 +00:00
|
|
|
setSelectedSidebarItem(null);
|
|
|
|
|
} else {
|
|
|
|
|
setSelectedSidebarItem(item);
|
2023-06-15 07:28:44 +00:00
|
|
|
pinned && localStorage.setItem('selectedSidebarItem', item);
|
2022-12-29 11:48:24 +00:00
|
|
|
}
|
2022-12-30 06:39:07 +00:00
|
|
|
};
|
2022-12-29 11:48:24 +00:00
|
|
|
|
2023-06-15 07:28:44 +00:00
|
|
|
const handlePin = (isPin) => {
|
|
|
|
|
isPin
|
|
|
|
|
? localStorage.setItem('selectedSidebarItem', selectedSidebarItem)
|
|
|
|
|
: localStorage.removeItem('selectedSidebarItem');
|
|
|
|
|
|
|
|
|
|
setPinned(isPin);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleInteractOutside = (ev) => {
|
|
|
|
|
const isBtnClicked = Object.values(sideBarBtnRefs.current).some((btnRef) => {
|
|
|
|
|
return btnRef.contains(ev.target);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (!isBtnClicked && !pinned) {
|
|
|
|
|
setSelectedSidebarItem(null);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const setSideBarBtnRefs = (page) => (ref) => {
|
|
|
|
|
sideBarBtnRefs.current[page] = ref;
|
|
|
|
|
};
|
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 0ff9c18ab8b622a0fa96f6d7b200898c19b060f4.
* 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 8b799c3c51bc45179d2ad4ef405d6a234083d475.
* [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 802136cdc3f06ee6debe3612999593a872b65bb1.
* 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 a22aec12c789d5bd1c9c1e9cea7d9fb1eef87bfb.
* fixes: trail-6: fix
* fixes: trail-7: fix
* Revert "fixes: trail-7: fix"
This reverts commit 08f373c415b9f1599eff9e397f7c4ffbc3f364b8.
* Revert "fixes: trail-6: fix"
This reverts commit c4e19b5d05c94d8c1d5a6ad37263bcec7dcdccb1.
* multi-edit: ymap-fix
* Revert "multi-edit: ymap-fix"
This reverts commit 92f49c0cde33818c9a85478f8dfc3b59a629c3d7.
* 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 05:39:47 +00:00
|
|
|
|
2023-09-15 10:18:02 +00:00
|
|
|
const backgroundFxQuery = appDefinition?.globalSettings?.backgroundFxQuery;
|
2023-06-15 07:28:44 +00:00
|
|
|
|
2024-04-05 09:49:05 +00:00
|
|
|
const renderPopoverContent = () => {
|
|
|
|
|
if (selectedSidebarItem === null) return null;
|
|
|
|
|
switch (selectedSidebarItem) {
|
|
|
|
|
case 'page':
|
|
|
|
|
return (
|
|
|
|
|
<LeftSidebarPageSelector
|
|
|
|
|
darkMode={darkMode}
|
|
|
|
|
selectedSidebarItem={selectedSidebarItem}
|
|
|
|
|
appDefinition={appDefinition}
|
|
|
|
|
currentPageId={currentPageId}
|
|
|
|
|
addNewPage={addNewPage}
|
|
|
|
|
switchPage={switchPage}
|
|
|
|
|
deletePage={deletePage}
|
|
|
|
|
renamePage={renamePage}
|
|
|
|
|
hidePage={hidePage}
|
|
|
|
|
unHidePage={unHidePage}
|
|
|
|
|
disableEnablePage={disableEnablePage}
|
|
|
|
|
updateHomePage={updateHomePage}
|
|
|
|
|
updatePageHandle={updatePageHandle}
|
|
|
|
|
clonePage={clonePage}
|
|
|
|
|
pages={
|
2024-06-19 09:06:09 +00:00
|
|
|
Object.entries(deepClone(appDefinition).pages)
|
2024-04-05 09:49:05 +00:00
|
|
|
.map(([id, page]) => ({ id, ...page }))
|
|
|
|
|
.sort((a, b) => a.index - b.index) || []
|
|
|
|
|
}
|
|
|
|
|
homePageId={appDefinition.homePageId}
|
|
|
|
|
showHideViewerNavigationControls={showHideViewerNavigationControls}
|
|
|
|
|
updateOnSortingPages={updateOnSortingPages}
|
|
|
|
|
apps={apps}
|
|
|
|
|
setPinned={handlePin}
|
|
|
|
|
pinned={pinned}
|
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
case 'inspect':
|
|
|
|
|
return (
|
|
|
|
|
<LeftSidebarInspector
|
|
|
|
|
darkMode={darkMode}
|
|
|
|
|
selectedSidebarItem={selectedSidebarItem}
|
|
|
|
|
appDefinition={appDefinition}
|
|
|
|
|
setSelectedComponent={setSelectedComponent}
|
|
|
|
|
removeComponent={removeComponent}
|
|
|
|
|
runQuery={runQuery}
|
|
|
|
|
popoverContentHeight={popoverContentHeight}
|
|
|
|
|
setPinned={handlePin}
|
|
|
|
|
pinned={pinned}
|
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
case 'datasource':
|
|
|
|
|
return (
|
|
|
|
|
<LeftSidebarDataSources
|
|
|
|
|
darkMode={darkMode}
|
|
|
|
|
appId={appId}
|
|
|
|
|
dataSourcesChanged={dataSourcesChanged}
|
|
|
|
|
globalDataSourcesChanged={globalDataSourcesChanged}
|
|
|
|
|
dataQueriesChanged={dataQueriesChanged}
|
|
|
|
|
toggleDataSourceManagerModal={toggleDataSourceManagerModal}
|
|
|
|
|
showDataSourceManagerModal={showDataSourceManagerModal}
|
|
|
|
|
onDeleteofAllDataSources={() => {
|
|
|
|
|
handleSelectedSidebarItem(null);
|
|
|
|
|
handlePin(false);
|
|
|
|
|
delete sideBarBtnRefs.current['datasource'];
|
|
|
|
|
}}
|
|
|
|
|
setPinned={handlePin}
|
|
|
|
|
pinned={pinned}
|
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
case 'debugger':
|
|
|
|
|
return (
|
|
|
|
|
<LeftSidebarDebugger
|
|
|
|
|
darkMode={darkMode}
|
|
|
|
|
errors={errorLogs}
|
|
|
|
|
clearErrorLogs={clearErrorLogs}
|
|
|
|
|
setPinned={handlePin}
|
|
|
|
|
pinned={pinned}
|
|
|
|
|
allLog={allLog}
|
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
case 'settings':
|
|
|
|
|
return (
|
|
|
|
|
<GlobalSettings
|
|
|
|
|
globalSettingsChanged={globalSettingsChanged}
|
|
|
|
|
globalSettings={appDefinition.globalSettings}
|
|
|
|
|
darkMode={darkMode}
|
|
|
|
|
toggleAppMaintenance={toggleAppMaintenance}
|
|
|
|
|
isMaintenanceOn={isMaintenanceOn}
|
|
|
|
|
app={app}
|
|
|
|
|
backgroundFxQuery={backgroundFxQuery}
|
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
}
|
2023-06-15 07:28:44 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return (
|
2024-04-19 07:25:16 +00:00
|
|
|
<div className={cx('left-sidebar', { 'dark-theme theme-dark': darkMode })} data-cy="left-sidebar-inspector">
|
2023-06-15 07:28:44 +00:00
|
|
|
<LeftSidebarItem
|
|
|
|
|
selectedSidebarItem={selectedSidebarItem}
|
|
|
|
|
onClick={() => handleSelectedSidebarItem('page')}
|
|
|
|
|
icon="page"
|
|
|
|
|
className={`left-sidebar-item left-sidebar-layout left-sidebar-page-selector`}
|
|
|
|
|
tip="Pages"
|
|
|
|
|
ref={setSideBarBtnRefs('page')}
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<LeftSidebarItem
|
|
|
|
|
selectedSidebarItem={selectedSidebarItem}
|
|
|
|
|
onClick={() => handleSelectedSidebarItem('inspect')}
|
|
|
|
|
icon="inspect"
|
|
|
|
|
className={`left-sidebar-item left-sidebar-layout left-sidebar-inspector`}
|
|
|
|
|
tip="Inspector"
|
|
|
|
|
ref={setSideBarBtnRefs('inspect')}
|
|
|
|
|
/>
|
2023-09-04 08:00:39 +00:00
|
|
|
|
2023-07-18 09:57:49 +00:00
|
|
|
<LeftSidebarItem
|
|
|
|
|
icon="debugger"
|
|
|
|
|
selectedSidebarItem={selectedSidebarItem}
|
|
|
|
|
// eslint-disable-next-line no-unused-vars
|
|
|
|
|
onClick={(e) => handleSelectedSidebarItem('debugger')}
|
|
|
|
|
className={`left-sidebar-item left-sidebar-layout`}
|
|
|
|
|
badge={true}
|
|
|
|
|
count={unReadErrorCount.unread}
|
|
|
|
|
tip="Debugger"
|
|
|
|
|
ref={setSideBarBtnRefs('debugger')}
|
|
|
|
|
/>
|
2023-09-04 08:00:39 +00:00
|
|
|
<LeftSidebarItem
|
|
|
|
|
icon="settings"
|
|
|
|
|
selectedSidebarItem={selectedSidebarItem}
|
|
|
|
|
// eslint-disable-next-line no-unused-vars
|
|
|
|
|
onClick={(e) => handleSelectedSidebarItem('settings')}
|
|
|
|
|
className={`left-sidebar-item left-sidebar-layout`}
|
|
|
|
|
badge={true}
|
|
|
|
|
tip="Settings"
|
|
|
|
|
ref={setSideBarBtnRefs('settings')}
|
|
|
|
|
/>
|
2023-07-18 09:57:49 +00:00
|
|
|
|
2023-06-20 05:38:56 +00:00
|
|
|
{dataSources?.length > 0 && (
|
|
|
|
|
<LeftSidebarItem
|
|
|
|
|
selectedSidebarItem={selectedSidebarItem}
|
2023-09-04 08:00:39 +00:00
|
|
|
onClick={() => handleSelectedSidebarItem('datasource')}
|
|
|
|
|
icon="datasource"
|
2023-06-20 05:38:56 +00:00
|
|
|
className={`left-sidebar-item left-sidebar-layout sidebar-datasources`}
|
|
|
|
|
tip="Sources"
|
2023-09-04 08:00:39 +00:00
|
|
|
ref={setSideBarBtnRefs('datasource')}
|
2023-06-20 05:38:56 +00:00
|
|
|
/>
|
|
|
|
|
)}
|
2023-09-04 08:00:39 +00:00
|
|
|
|
2023-06-15 07:28:44 +00:00
|
|
|
<Popover
|
|
|
|
|
onInteractOutside={handleInteractOutside}
|
|
|
|
|
open={pinned || !!selectedSidebarItem}
|
2023-07-20 12:12:37 +00:00
|
|
|
popoverContentClassName={`p-0 sidebar-h-100-popover ${selectedSidebarItem}`}
|
2023-06-15 07:28:44 +00:00
|
|
|
side="right"
|
2024-04-05 09:49:05 +00:00
|
|
|
popoverContent={renderPopoverContent()}
|
2023-06-15 07:28:44 +00:00
|
|
|
popoverContentHeight={popoverContentHeight}
|
|
|
|
|
/>
|
2023-09-15 10:18:02 +00:00
|
|
|
|
2021-10-13 04:02:18 +00:00
|
|
|
<ConfirmDialog
|
|
|
|
|
show={showLeaveDialog}
|
2024-07-01 03:16:22 +00:00
|
|
|
message={'The unsaved changes will be lost if you leave the editor, do you want to leave'}
|
2021-10-13 04:02:18 +00:00
|
|
|
onConfirm={() => router.push('/')}
|
|
|
|
|
onCancel={() => setShowLeaveDialog(false)}
|
2023-01-06 11:44:56 +00:00
|
|
|
darkMode={darkMode}
|
2021-10-13 04:02:18 +00:00
|
|
|
/>
|
2021-09-12 04:24:47 +00:00
|
|
|
<div className="left-sidebar-stack-bottom">
|
2023-09-04 08:00:39 +00:00
|
|
|
<div className="">
|
|
|
|
|
{config.COMMENT_FEATURE_ENABLE && (
|
|
|
|
|
<div
|
|
|
|
|
className={`${isVersionReleased && 'disabled'}`}
|
|
|
|
|
style={{ maxHeight: '32px', maxWidth: '32px', marginBottom: '16px' }}
|
|
|
|
|
>
|
|
|
|
|
<LeftSidebarComment
|
|
|
|
|
selectedSidebarItem={showComments ? 'comments' : ''}
|
|
|
|
|
currentPageId={currentPageId}
|
|
|
|
|
ref={setSideBarBtnRefs('comments')}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
2024-04-19 07:25:16 +00:00
|
|
|
|
2021-10-21 17:27:31 +00:00
|
|
|
<DarkModeToggle switchDarkMode={switchDarkMode} darkMode={darkMode} tooltipPlacement="right" />
|
2021-08-17 06:01:12 +00:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2021-09-12 04:24:47 +00:00
|
|
|
);
|
2022-06-15 10:46:51 +00:00
|
|
|
});
|