mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2026-03-24 04:46:56 +00:00
[PR #4420] [CLOSED] feat: support editor to show workspace folder overview #6245
Labels
No labels
2024
2025
2026
acct mgmt
AI
automation
bug
calendar
ci
CJK
cloud
code-block
collaboration
copy-paste
database
data migration
data sync
deploy
desktop
develop
develop
documentation
duplicate
editor
editor-plugin
emoji
export
files
flutter-only
follow-up
formula
good first issue for devs
good first issue for experienced devs
grid
hacktoberfest
HACKTOBERFEST-ACCEPTED
help wanted
i18n
icons
images
importer
improvements
infra
install
integrations
IR
kanban board
login
look and joy
mentorship
mobile
mobile
needs design
new feature
new feature
non-coding
notes
notifications
onboarding
organization
P0+
permission
platform-linux
platform-mac
platform-windows
plugins
program
pull-request
Q1 25
Q1 26
Q2 24
Q2 25
Q3 24
Q3 25
Q4 24
Q4 25
react
regression
rust
rust
Rust-only
Rust-only
Rust-starter
Rust-starter
self-hosted
shortcuts
side panel
slash-menu
sync v2
table
tablet
task
tauri
templates
tests
themes
translation
v0.5.6
v0.5.8
v0.5.9
v0.6.0
v0.6.1
v0.6.4
v0.6.7
v0.6.8
v0.7.1
v0.7.4
v0.7.4
v0.7.5
v0.7.6
v0.7.7
v0.7.8
v0.8.0
v0.8.4
v0.8.5
v0.8.9
web
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
AppFlowy-IO/AppFlowy#6245
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/AppFlowy-IO/AppFlowy/pull/4420
Author: @Jayaprakash-dev
Created: 1/19/2024
Status: ❌ Closed
Base:
main← Head:feat_workspace_folder_overview📝 Commits (10+)
58de1d6feat: support workspace overview to display folder structure in a concise view4f447fefeat: addsRegisterOverviewListenerIdto receive updates from all level of child views60b6d99feat: addGetAllLevelOfViews&RegisterOverviewListernerIdevent and its handler in rust backend0f2a842feat: support storing overview listener Ids & add overview child views update notification2d4bf63refactor: overview block widget style and supportDidUpdateWorkspaceOverviewChildViewsnotificationd762f02test: integration test for overview blocka5c447efeat: Notify all overview listeners instead of stopping at one.4159b90fix: overview block rebuilding issue5795105test: adds test for workspace view update and deletion cases971412arefactor: improved code file, renamed folders, and updated class names📊 Changes
17 files changed (+1017 additions, -52 deletions)
View changed files
➕
frontend/appflowy_flutter/integration_test/folder/workspace_overview/overview_test.dart(+122 -0)📝
frontend/appflowy_flutter/lib/env/cloud_env_test.dart(+1 -1)➕
frontend/appflowy_flutter/lib/plugins/document/application/workspace_overview/overview_adapter_service.dart(+14 -0)➕
frontend/appflowy_flutter/lib/plugins/document/application/workspace_overview/workspace_overview_bloc.dart(+185 -0)📝
frontend/appflowy_flutter/lib/plugins/document/presentation/editor_configuration.dart(+12 -0)📝
frontend/appflowy_flutter/lib/plugins/document/presentation/editor_page.dart(+2 -0)➕
frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/workspace_overview/overview_block_component.dart(+330 -0)📝
frontend/appflowy_flutter/lib/plugins/document/presentation/editor_style.dart(+11 -0)📝
frontend/appflowy_flutter/lib/workspace/application/view/view_listener.dart(+13 -0)📝
frontend/appflowy_flutter/lib/workspace/application/view/view_service.dart(+7 -0)📝
frontend/resources/translations/en.json(+5 -1)📝
frontend/rust-lib/flowy-folder/src/event_handler.rs(+25 -1)📝
frontend/rust-lib/flowy-folder/src/event_map.rs(+12 -0)📝
frontend/rust-lib/flowy-folder/src/manager.rs(+152 -11)📝
frontend/rust-lib/flowy-folder/src/manager_init.rs(+7 -1)📝
frontend/rust-lib/flowy-folder/src/manager_observer.rs(+116 -37)📝
frontend/rust-lib/flowy-folder/src/notification.rs(+3 -0)📄 Description
Description
I've addressed the issue #4282 by implementing the Workspace folder Overview feature, allowing users to create an outline for workspace folder/sub pages structures using the slash commands
/overviewor/workspace overview. This facilitates easy navigation in nested document structures.Implemented Changes
Added
GetAllLevelOfViewsevent in the backend to retrieve all levels of child views. Previously, only theGetViewevent returned first-level children.Added a struct
WorkspaceOverviewListenerIdManagerin the Rust backend. This struct stores overview block listener IDs to notify them about updates in child views from all levels. Additionally, a new notification eventDidUpdateWorkspaceOverviewChildViewshas been added to inform overview listener IDs about changes. This ensures that the struct and overview ID listener are specifically designed to handle updates across all child view levels.Implemented navigation to pages from the workspace overview block.
The only issue is that we need to assign the view ID to the editor document in AppFlowy-IO/appflowy-editor repo. This enables us to retrieve the view from the backend using the stored view ID, like this:
In Overview block component widget builder
In
Documentclass ofAppflowyEditorclass:Testing
I have tested this implementation thoroughly, ensuring it functions as expected and addressing the outlined issue.
Note
Note: There might be some syntax issues in the Rust code as I am a newbie in Rust programming. I welcome suggestions and feedback to improve the code quality.
Screenshots
https://github.com/AppFlowy-IO/AppFlowy/assets/68953739/1855d71d-bd35-407f-ab36-396aa0ebdd80
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.