From 23968d89fc673791ba55da190e9ec53690695647 Mon Sep 17 00:00:00 2001 From: "Nathan.fooo" <86001920+appflowy@users.noreply.github.com> Date: Thu, 22 Aug 2024 07:45:51 +0800 Subject: [PATCH 1/7] chore: Upgrade collab version (#6028) * chore: write collab to disk if it's not exist * chore: write collab if it's not exit * chore: fix test * chore: upgrade appflowy collab * chore: upgrade appflowy collab * chore: update collab version * chore: fix test --- frontend/appflowy_tauri/src-tauri/Cargo.lock | 14 +++++++------- frontend/appflowy_tauri/src-tauri/Cargo.toml | 14 +++++++------- frontend/appflowy_web_app/src-tauri/Cargo.lock | 14 +++++++------- frontend/appflowy_web_app/src-tauri/Cargo.toml | 14 +++++++------- frontend/rust-lib/Cargo.lock | 14 +++++++------- frontend/rust-lib/Cargo.toml | 14 +++++++------- .../tests/database/af_cloud/util.rs | 3 ++- frontend/rust-lib/flowy-database2/src/manager.rs | 3 ++- .../src/services/database/database_editor.rs | 11 +++++------ .../flowy-database2/src/services/database/util.rs | 3 ++- .../src/services/database_view/view_editor.rs | 3 ++- .../src/services/database_view/view_operation.rs | 8 ++++---- .../src/services/share/csv/import.rs | 3 ++- frontend/rust-lib/flowy-database2/src/template.rs | 5 ++--- .../tests/database/mock_data/board_mock_data.rs | 3 ++- .../tests/database/mock_data/calendar_mock_data.rs | 3 ++- .../tests/database/mock_data/grid_mock_data.rs | 3 ++- 17 files changed, 69 insertions(+), 63 deletions(-) diff --git a/frontend/appflowy_tauri/src-tauri/Cargo.lock b/frontend/appflowy_tauri/src-tauri/Cargo.lock index 99f7541e17c7c..c8d23c0f3eb9f 100644 --- a/frontend/appflowy_tauri/src-tauri/Cargo.lock +++ b/frontend/appflowy_tauri/src-tauri/Cargo.lock @@ -963,7 +963,7 @@ dependencies = [ [[package]] name = "collab" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "arc-swap", @@ -988,7 +988,7 @@ dependencies = [ [[package]] name = "collab-database" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "async-trait", @@ -1018,7 +1018,7 @@ dependencies = [ [[package]] name = "collab-document" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "arc-swap", @@ -1038,7 +1038,7 @@ dependencies = [ [[package]] name = "collab-entity" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "bytes", @@ -1057,7 +1057,7 @@ dependencies = [ [[package]] name = "collab-folder" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "arc-swap", @@ -1100,7 +1100,7 @@ dependencies = [ [[package]] name = "collab-plugins" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "async-stream", @@ -1180,7 +1180,7 @@ dependencies = [ [[package]] name = "collab-user" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "collab", diff --git a/frontend/appflowy_tauri/src-tauri/Cargo.toml b/frontend/appflowy_tauri/src-tauri/Cargo.toml index 23e30f4bfd21f..c52affb1901b5 100644 --- a/frontend/appflowy_tauri/src-tauri/Cargo.toml +++ b/frontend/appflowy_tauri/src-tauri/Cargo.toml @@ -116,13 +116,13 @@ custom-protocol = ["tauri/custom-protocol"] # To switch to the local path, run: # scripts/tool/update_collab_source.sh # ⚠️⚠️⚠️️ -collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } +collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } # Working directory: frontend # To update the commit ID, run: diff --git a/frontend/appflowy_web_app/src-tauri/Cargo.lock b/frontend/appflowy_web_app/src-tauri/Cargo.lock index 56ffd7657572a..23520cb464c08 100644 --- a/frontend/appflowy_web_app/src-tauri/Cargo.lock +++ b/frontend/appflowy_web_app/src-tauri/Cargo.lock @@ -946,7 +946,7 @@ dependencies = [ [[package]] name = "collab" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "arc-swap", @@ -971,7 +971,7 @@ dependencies = [ [[package]] name = "collab-database" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "async-trait", @@ -1001,7 +1001,7 @@ dependencies = [ [[package]] name = "collab-document" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "arc-swap", @@ -1021,7 +1021,7 @@ dependencies = [ [[package]] name = "collab-entity" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "bytes", @@ -1040,7 +1040,7 @@ dependencies = [ [[package]] name = "collab-folder" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "arc-swap", @@ -1083,7 +1083,7 @@ dependencies = [ [[package]] name = "collab-plugins" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "async-stream", @@ -1163,7 +1163,7 @@ dependencies = [ [[package]] name = "collab-user" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "collab", diff --git a/frontend/appflowy_web_app/src-tauri/Cargo.toml b/frontend/appflowy_web_app/src-tauri/Cargo.toml index 10142f4acc6af..1fd172a734e7f 100644 --- a/frontend/appflowy_web_app/src-tauri/Cargo.toml +++ b/frontend/appflowy_web_app/src-tauri/Cargo.toml @@ -116,13 +116,13 @@ custom-protocol = ["tauri/custom-protocol"] # To switch to the local path, run: # scripts/tool/update_collab_source.sh # ⚠️⚠️⚠️️ -collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } +collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } # Working directory: frontend # To update the commit ID, run: diff --git a/frontend/rust-lib/Cargo.lock b/frontend/rust-lib/Cargo.lock index 01f2ca464a46f..9f6162a0ba9b7 100644 --- a/frontend/rust-lib/Cargo.lock +++ b/frontend/rust-lib/Cargo.lock @@ -824,7 +824,7 @@ dependencies = [ [[package]] name = "collab" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "arc-swap", @@ -849,7 +849,7 @@ dependencies = [ [[package]] name = "collab-database" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "async-trait", @@ -879,7 +879,7 @@ dependencies = [ [[package]] name = "collab-document" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "arc-swap", @@ -899,7 +899,7 @@ dependencies = [ [[package]] name = "collab-entity" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "bytes", @@ -918,7 +918,7 @@ dependencies = [ [[package]] name = "collab-folder" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "arc-swap", @@ -961,7 +961,7 @@ dependencies = [ [[package]] name = "collab-plugins" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "async-stream", @@ -1041,7 +1041,7 @@ dependencies = [ [[package]] name = "collab-user" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=6a5e7e49c159fcf782df84208cdb26c212c28ede#6a5e7e49c159fcf782df84208cdb26c212c28ede" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" dependencies = [ "anyhow", "collab", diff --git a/frontend/rust-lib/Cargo.toml b/frontend/rust-lib/Cargo.toml index cb09e65d6b3fa..4f21b5f610ca0 100644 --- a/frontend/rust-lib/Cargo.toml +++ b/frontend/rust-lib/Cargo.toml @@ -136,13 +136,13 @@ rocksdb = { git = "https://github.com/rust-rocksdb/rust-rocksdb", rev = "1710120 # To switch to the local path, run: # scripts/tool/update_collab_source.sh # ⚠️⚠️⚠️️ -collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } -collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "6a5e7e49c159fcf782df84208cdb26c212c28ede" } +collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } # Working directory: frontend # To update the commit ID, run: diff --git a/frontend/rust-lib/event-integration-test/tests/database/af_cloud/util.rs b/frontend/rust-lib/event-integration-test/tests/database/af_cloud/util.rs index 25ef9920c844c..0c155c634e1df 100644 --- a/frontend/rust-lib/event-integration-test/tests/database/af_cloud/util.rs +++ b/frontend/rust-lib/event-integration-test/tests/database/af_cloud/util.rs @@ -1,5 +1,6 @@ use collab_database::database::{gen_database_id, gen_database_view_id, gen_row_id, DatabaseData}; -use collab_database::views::{DatabaseLayout, DatabaseView}; +use collab_database::entity::DatabaseView; +use collab_database::views::DatabaseLayout; use event_integration_test::database_event::TestRowBuilder; use collab_database::fields::Field; diff --git a/frontend/rust-lib/flowy-database2/src/manager.rs b/frontend/rust-lib/flowy-database2/src/manager.rs index f4f95b8d39a59..6c204ce627570 100644 --- a/frontend/rust-lib/flowy-database2/src/manager.rs +++ b/frontend/rust-lib/flowy-database2/src/manager.rs @@ -8,9 +8,10 @@ use std::sync::{Arc, Weak}; use collab::core::collab::DataSource; use collab::preclude::Collab; use collab_database::database::{Database, DatabaseData}; +use collab_database::entity::{CreateDatabaseParams, CreateViewParams}; use collab_database::error::DatabaseError; use collab_database::rows::RowId; -use collab_database::views::{CreateDatabaseParams, CreateViewParams, DatabaseLayout}; +use collab_database::views::DatabaseLayout; use collab_database::workspace_database::{ DatabaseCollabService, DatabaseMeta, EncodeCollabByOid, WorkspaceDatabase, }; diff --git a/frontend/rust-lib/flowy-database2/src/services/database/database_editor.rs b/frontend/rust-lib/flowy-database2/src/services/database/database_editor.rs index fcd6c253a1e40..8d226c6d17749 100644 --- a/frontend/rust-lib/flowy-database2/src/services/database/database_editor.rs +++ b/frontend/rust-lib/flowy-database2/src/services/database/database_editor.rs @@ -22,11 +22,10 @@ use crate::utils::cache::AnyTypeCache; use crate::DatabaseUser; use async_trait::async_trait; use collab_database::database::Database; +use collab_database::entity::DatabaseView; use collab_database::fields::{Field, TypeOptionData}; use collab_database::rows::{Cell, Cells, Row, RowCell, RowDetail, RowId}; -use collab_database::views::{ - DatabaseLayout, DatabaseView, FilterMap, LayoutSetting, OrderObjectPosition, -}; +use collab_database::views::{DatabaseLayout, FilterMap, LayoutSetting, OrderObjectPosition}; use collab_entity::CollabType; use collab_integrate::collab_builder::{AppFlowyCollabBuilder, CollabBuilderConfig}; use flowy_error::{internal_error, ErrorCode, FlowyError, FlowyResult}; @@ -508,7 +507,7 @@ impl DatabaseEditor { .await .ok_or_else(|| FlowyError::internal().with_context("error while copying row"))?; - let (index, row_order) = database.create_row_in_view(view_id, params); + let (index, row_order) = database.create_row_in_view(view_id, params)?; trace!( "duplicate row: {:?} at index:{}, new row:{:?}", row_id, @@ -578,9 +577,9 @@ impl DatabaseEditor { } = view_editor.v_will_create_row(params).await?; let mut database = self.database.write().await; - let (index, order_id) = database.create_row_in_view(&view_editor.view_id, collab_params); + let (index, order_id) = database.create_row_in_view(&view_editor.view_id, collab_params)?; let row_detail = database.get_row_detail(&order_id.id).await; - drop(database); // Explicitly release the lock here + drop(database); if let Some(row_detail) = row_detail { trace!("created row: {:?} at {}", row_detail, index); diff --git a/frontend/rust-lib/flowy-database2/src/services/database/util.rs b/frontend/rust-lib/flowy-database2/src/services/database/util.rs index 4a3810b198b42..76e34e22ab443 100644 --- a/frontend/rust-lib/flowy-database2/src/services/database/util.rs +++ b/frontend/rust-lib/flowy-database2/src/services/database/util.rs @@ -1,4 +1,5 @@ -use collab_database::views::{DatabaseLayout, DatabaseView}; +use collab_database::entity::DatabaseView; +use collab_database::views::DatabaseLayout; use crate::entities::{ DatabaseLayoutPB, DatabaseLayoutSettingPB, DatabaseViewSettingPB, FieldSettingsPB, FilterPB, diff --git a/frontend/rust-lib/flowy-database2/src/services/database_view/view_editor.rs b/frontend/rust-lib/flowy-database2/src/services/database_view/view_editor.rs index 47dc49c51637b..12a2385ace656 100644 --- a/frontend/rust-lib/flowy-database2/src/services/database_view/view_editor.rs +++ b/frontend/rust-lib/flowy-database2/src/services/database_view/view_editor.rs @@ -3,9 +3,10 @@ use std::collections::HashMap; use std::sync::Arc; use collab_database::database::{gen_database_calculation_id, gen_database_sort_id, gen_row_id}; +use collab_database::entity::DatabaseView; use collab_database::fields::Field; use collab_database::rows::{Cells, Row, RowDetail, RowId}; -use collab_database::views::{DatabaseLayout, DatabaseView}; +use collab_database::views::DatabaseLayout; use lib_infra::util::timestamp; use tokio::sync::{broadcast, RwLock}; use tracing::instrument; diff --git a/frontend/rust-lib/flowy-database2/src/services/database_view/view_operation.rs b/frontend/rust-lib/flowy-database2/src/services/database_view/view_operation.rs index 95c092702ee7a..534fec85b8725 100644 --- a/frontend/rust-lib/flowy-database2/src/services/database_view/view_operation.rs +++ b/frontend/rust-lib/flowy-database2/src/services/database_view/view_operation.rs @@ -1,11 +1,11 @@ use async_trait::async_trait; use collab_database::database::Database; -use std::collections::HashMap; -use std::sync::Arc; - +use collab_database::entity::DatabaseView; use collab_database::fields::{Field, TypeOptionData}; use collab_database::rows::{Row, RowCell, RowDetail, RowId}; -use collab_database::views::{DatabaseLayout, DatabaseView, LayoutSetting}; +use collab_database::views::{DatabaseLayout, LayoutSetting}; +use std::collections::HashMap; +use std::sync::Arc; use tokio::sync::RwLock; use flowy_error::FlowyError; diff --git a/frontend/rust-lib/flowy-database2/src/services/share/csv/import.rs b/frontend/rust-lib/flowy-database2/src/services/share/csv/import.rs index 8cf6aa4e237fd..dab2b981c9ee2 100644 --- a/frontend/rust-lib/flowy-database2/src/services/share/csv/import.rs +++ b/frontend/rust-lib/flowy-database2/src/services/share/csv/import.rs @@ -1,9 +1,10 @@ use std::{fs::File, io::prelude::*}; use collab_database::database::{gen_database_id, gen_field_id, gen_row_id, timestamp}; +use collab_database::entity::{CreateDatabaseParams, CreateViewParams}; use collab_database::fields::Field; use collab_database::rows::{new_cell_builder, Cell, CreateRowParams}; -use collab_database::views::{CreateDatabaseParams, CreateViewParams, DatabaseLayout}; +use collab_database::views::DatabaseLayout; use collab_entity::EncodedCollab; use flowy_error::{FlowyError, FlowyResult}; diff --git a/frontend/rust-lib/flowy-database2/src/template.rs b/frontend/rust-lib/flowy-database2/src/template.rs index c0347be580f03..0afa6fdd76d13 100644 --- a/frontend/rust-lib/flowy-database2/src/template.rs +++ b/frontend/rust-lib/flowy-database2/src/template.rs @@ -1,8 +1,7 @@ use collab_database::database::{gen_database_id, gen_row_id, timestamp}; +use collab_database::entity::{CreateDatabaseParams, CreateViewParams}; use collab_database::rows::CreateRowParams; -use collab_database::views::{ - CreateDatabaseParams, CreateViewParams, DatabaseLayout, LayoutSettings, -}; +use collab_database::views::{DatabaseLayout, LayoutSettings}; use crate::entities::FieldType; use crate::services::cell::{insert_select_option_cell, insert_text_cell}; diff --git a/frontend/rust-lib/flowy-database2/tests/database/mock_data/board_mock_data.rs b/frontend/rust-lib/flowy-database2/tests/database/mock_data/board_mock_data.rs index d722a352f3c83..4bcb6d02d5876 100644 --- a/frontend/rust-lib/flowy-database2/tests/database/mock_data/board_mock_data.rs +++ b/frontend/rust-lib/flowy-database2/tests/database/mock_data/board_mock_data.rs @@ -1,5 +1,6 @@ use collab_database::database::{gen_database_id, gen_database_view_id, gen_row_id, DatabaseData}; -use collab_database::views::{DatabaseLayout, DatabaseView, LayoutSetting, LayoutSettings}; +use collab_database::entity::DatabaseView; +use collab_database::views::{DatabaseLayout, LayoutSetting, LayoutSettings}; use strum::IntoEnumIterator; use crate::database::mock_data::{COMPLETED, FACEBOOK, GOOGLE, PAUSED, PLANNED, TWITTER}; diff --git a/frontend/rust-lib/flowy-database2/tests/database/mock_data/calendar_mock_data.rs b/frontend/rust-lib/flowy-database2/tests/database/mock_data/calendar_mock_data.rs index 4c7553f754a20..476d8b7fafe15 100644 --- a/frontend/rust-lib/flowy-database2/tests/database/mock_data/calendar_mock_data.rs +++ b/frontend/rust-lib/flowy-database2/tests/database/mock_data/calendar_mock_data.rs @@ -1,5 +1,6 @@ use collab_database::database::{gen_database_id, gen_database_view_id, gen_row_id, DatabaseData}; -use collab_database::views::{DatabaseLayout, DatabaseView, LayoutSetting, LayoutSettings}; +use collab_database::entity::DatabaseView; +use collab_database::views::{DatabaseLayout, LayoutSetting, LayoutSettings}; use flowy_database2::services::field_settings::default_field_settings_for_fields; use strum::IntoEnumIterator; diff --git a/frontend/rust-lib/flowy-database2/tests/database/mock_data/grid_mock_data.rs b/frontend/rust-lib/flowy-database2/tests/database/mock_data/grid_mock_data.rs index 6896e47ccb6b7..fbc62606a7ac0 100644 --- a/frontend/rust-lib/flowy-database2/tests/database/mock_data/grid_mock_data.rs +++ b/frontend/rust-lib/flowy-database2/tests/database/mock_data/grid_mock_data.rs @@ -1,5 +1,6 @@ use collab_database::database::{gen_database_id, gen_database_view_id, gen_row_id, DatabaseData}; -use collab_database::views::{DatabaseLayout, DatabaseView}; +use collab_database::entity::DatabaseView; +use collab_database::views::DatabaseLayout; use strum::IntoEnumIterator; use crate::database::mock_data::{COMPLETED, FACEBOOK, GOOGLE, PAUSED, PLANNED, TWITTER}; From 0e844678fc248a77ca2e346c65ff72fcdcedf2be Mon Sep 17 00:00:00 2001 From: Bartosz Sypytkowski Date: Thu, 22 Aug 2024 02:42:32 +0200 Subject: [PATCH 2/7] chore: Remove last sync at (#6029) * chore: update dependencies to stop using last sync at field * chore: apply cargo fmt * chore: fix dependencies * chore: upgrade client api --------- Co-authored-by: nathan --- frontend/appflowy_tauri/src-tauri/Cargo.lock | 41 ++++++++++--------- frontend/appflowy_tauri/src-tauri/Cargo.toml | 16 ++++---- .../appflowy_web_app/src-tauri/Cargo.lock | 41 ++++++++++--------- .../appflowy_web_app/src-tauri/Cargo.toml | 16 ++++---- frontend/rust-lib/Cargo.lock | 39 +++++++++--------- frontend/rust-lib/Cargo.toml | 18 ++++---- 6 files changed, 87 insertions(+), 84 deletions(-) diff --git a/frontend/appflowy_tauri/src-tauri/Cargo.lock b/frontend/appflowy_tauri/src-tauri/Cargo.lock index c8d23c0f3eb9f..8c809e7d6fcc8 100644 --- a/frontend/appflowy_tauri/src-tauri/Cargo.lock +++ b/frontend/appflowy_tauri/src-tauri/Cargo.lock @@ -172,7 +172,7 @@ checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "app-error" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bincode", @@ -192,7 +192,7 @@ dependencies = [ [[package]] name = "appflowy-ai-client" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bytes", @@ -826,7 +826,7 @@ dependencies = [ [[package]] name = "client-api" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "again", "anyhow", @@ -877,19 +877,20 @@ dependencies = [ [[package]] name = "client-api-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "collab-entity", "collab-rt-entity", "database-entity", "gotrue-entity", "shared-entity", + "uuid", ] [[package]] name = "client-websocket" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "futures-channel", "futures-util", @@ -963,7 +964,7 @@ dependencies = [ [[package]] name = "collab" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "arc-swap", @@ -988,7 +989,7 @@ dependencies = [ [[package]] name = "collab-database" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "async-trait", @@ -1018,7 +1019,7 @@ dependencies = [ [[package]] name = "collab-document" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "arc-swap", @@ -1038,7 +1039,7 @@ dependencies = [ [[package]] name = "collab-entity" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "bytes", @@ -1057,7 +1058,7 @@ dependencies = [ [[package]] name = "collab-folder" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "arc-swap", @@ -1100,7 +1101,7 @@ dependencies = [ [[package]] name = "collab-plugins" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "async-stream", @@ -1138,7 +1139,7 @@ dependencies = [ [[package]] name = "collab-rt-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bincode", @@ -1163,7 +1164,7 @@ dependencies = [ [[package]] name = "collab-rt-protocol" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "async-trait", @@ -1180,7 +1181,7 @@ dependencies = [ [[package]] name = "collab-user" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "collab", @@ -1426,7 +1427,7 @@ dependencies = [ "cssparser-macros", "dtoa-short", "itoa 1.0.6", - "phf 0.11.2", + "phf 0.8.0", "smallvec", ] @@ -1551,7 +1552,7 @@ checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "database-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "app-error", @@ -3076,7 +3077,7 @@ dependencies = [ [[package]] name = "gotrue" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "futures-util", @@ -3093,7 +3094,7 @@ dependencies = [ [[package]] name = "gotrue-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "app-error", @@ -3525,7 +3526,7 @@ dependencies = [ [[package]] name = "infra" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bytes", @@ -6122,7 +6123,7 @@ dependencies = [ [[package]] name = "shared-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "app-error", diff --git a/frontend/appflowy_tauri/src-tauri/Cargo.toml b/frontend/appflowy_tauri/src-tauri/Cargo.toml index c52affb1901b5..66a3b28567f78 100644 --- a/frontend/appflowy_tauri/src-tauri/Cargo.toml +++ b/frontend/appflowy_tauri/src-tauri/Cargo.toml @@ -53,7 +53,7 @@ collab-user = { version = "0.2" } # Run the script: # scripts/tool/update_client_api_rev.sh new_rev_id # ⚠️⚠️⚠️️ -client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "7878a018a18553e3d8201e572a0c066c14ba3b35" } +client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "ae3833ea91c238a66ca7bda63763d1d654740fb4" } [dependencies] serde_json.workspace = true @@ -116,13 +116,13 @@ custom-protocol = ["tauri/custom-protocol"] # To switch to the local path, run: # scripts/tool/update_collab_source.sh # ⚠️⚠️⚠️️ -collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } # Working directory: frontend # To update the commit ID, run: diff --git a/frontend/appflowy_web_app/src-tauri/Cargo.lock b/frontend/appflowy_web_app/src-tauri/Cargo.lock index 23520cb464c08..6542daf3ae126 100644 --- a/frontend/appflowy_web_app/src-tauri/Cargo.lock +++ b/frontend/appflowy_web_app/src-tauri/Cargo.lock @@ -163,7 +163,7 @@ checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "app-error" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bincode", @@ -183,7 +183,7 @@ dependencies = [ [[package]] name = "appflowy-ai-client" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bytes", @@ -800,7 +800,7 @@ dependencies = [ [[package]] name = "client-api" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "again", "anyhow", @@ -851,19 +851,20 @@ dependencies = [ [[package]] name = "client-api-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "collab-entity", "collab-rt-entity", "database-entity", "gotrue-entity", "shared-entity", + "uuid", ] [[package]] name = "client-websocket" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "futures-channel", "futures-util", @@ -946,7 +947,7 @@ dependencies = [ [[package]] name = "collab" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "arc-swap", @@ -971,7 +972,7 @@ dependencies = [ [[package]] name = "collab-database" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "async-trait", @@ -1001,7 +1002,7 @@ dependencies = [ [[package]] name = "collab-document" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "arc-swap", @@ -1021,7 +1022,7 @@ dependencies = [ [[package]] name = "collab-entity" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "bytes", @@ -1040,7 +1041,7 @@ dependencies = [ [[package]] name = "collab-folder" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "arc-swap", @@ -1083,7 +1084,7 @@ dependencies = [ [[package]] name = "collab-plugins" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "async-stream", @@ -1121,7 +1122,7 @@ dependencies = [ [[package]] name = "collab-rt-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bincode", @@ -1146,7 +1147,7 @@ dependencies = [ [[package]] name = "collab-rt-protocol" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "async-trait", @@ -1163,7 +1164,7 @@ dependencies = [ [[package]] name = "collab-user" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "collab", @@ -1416,7 +1417,7 @@ dependencies = [ "cssparser-macros", "dtoa-short", "itoa 1.0.10", - "phf 0.11.2", + "phf 0.8.0", "smallvec", ] @@ -1541,7 +1542,7 @@ checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "database-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "app-error", @@ -3143,7 +3144,7 @@ dependencies = [ [[package]] name = "gotrue" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "futures-util", @@ -3160,7 +3161,7 @@ dependencies = [ [[package]] name = "gotrue-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "app-error", @@ -3597,7 +3598,7 @@ dependencies = [ [[package]] name = "infra" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bytes", @@ -6186,7 +6187,7 @@ dependencies = [ [[package]] name = "shared-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "app-error", diff --git a/frontend/appflowy_web_app/src-tauri/Cargo.toml b/frontend/appflowy_web_app/src-tauri/Cargo.toml index 1fd172a734e7f..5dcbc5b76bf4b 100644 --- a/frontend/appflowy_web_app/src-tauri/Cargo.toml +++ b/frontend/appflowy_web_app/src-tauri/Cargo.toml @@ -52,7 +52,7 @@ collab-user = { version = "0.2" } # Run the script: # scripts/tool/update_client_api_rev.sh new_rev_id # ⚠️⚠️⚠️️ -client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "7878a018a18553e3d8201e572a0c066c14ba3b35" } +client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "ae3833ea91c238a66ca7bda63763d1d654740fb4" } [dependencies] serde_json.workspace = true @@ -116,13 +116,13 @@ custom-protocol = ["tauri/custom-protocol"] # To switch to the local path, run: # scripts/tool/update_collab_source.sh # ⚠️⚠️⚠️️ -collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } # Working directory: frontend # To update the commit ID, run: diff --git a/frontend/rust-lib/Cargo.lock b/frontend/rust-lib/Cargo.lock index 9f6162a0ba9b7..b323a2e3c87c0 100644 --- a/frontend/rust-lib/Cargo.lock +++ b/frontend/rust-lib/Cargo.lock @@ -163,7 +163,7 @@ checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "app-error" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bincode", @@ -183,7 +183,7 @@ dependencies = [ [[package]] name = "appflowy-ai-client" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bytes", @@ -718,7 +718,7 @@ dependencies = [ [[package]] name = "client-api" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "again", "anyhow", @@ -769,19 +769,20 @@ dependencies = [ [[package]] name = "client-api-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "collab-entity", "collab-rt-entity", "database-entity", "gotrue-entity", "shared-entity", + "uuid", ] [[package]] name = "client-websocket" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "futures-channel", "futures-util", @@ -824,7 +825,7 @@ dependencies = [ [[package]] name = "collab" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "arc-swap", @@ -849,7 +850,7 @@ dependencies = [ [[package]] name = "collab-database" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "async-trait", @@ -879,7 +880,7 @@ dependencies = [ [[package]] name = "collab-document" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "arc-swap", @@ -899,7 +900,7 @@ dependencies = [ [[package]] name = "collab-entity" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "bytes", @@ -918,7 +919,7 @@ dependencies = [ [[package]] name = "collab-folder" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "arc-swap", @@ -961,7 +962,7 @@ dependencies = [ [[package]] name = "collab-plugins" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "async-stream", @@ -999,7 +1000,7 @@ dependencies = [ [[package]] name = "collab-rt-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bincode", @@ -1024,7 +1025,7 @@ dependencies = [ [[package]] name = "collab-rt-protocol" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "async-trait", @@ -1041,7 +1042,7 @@ dependencies = [ [[package]] name = "collab-user" version = "0.2.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=4c0d2cd#4c0d2cdeefbde35b22d0716303339030b66af6a5" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=520b75dbe84ff17a55cf9424a55028781ae0bfc6#520b75dbe84ff17a55cf9424a55028781ae0bfc6" dependencies = [ "anyhow", "collab", @@ -1375,7 +1376,7 @@ checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "database-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "app-error", @@ -2754,7 +2755,7 @@ dependencies = [ [[package]] name = "gotrue" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "futures-util", @@ -2771,7 +2772,7 @@ dependencies = [ [[package]] name = "gotrue-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "app-error", @@ -3136,7 +3137,7 @@ dependencies = [ [[package]] name = "infra" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "bytes", @@ -5344,7 +5345,7 @@ dependencies = [ [[package]] name = "shared-entity" version = "0.1.0" -source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=d503905#d5039059313804103f34eee49ee9844c255a99c0" +source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=ae3833ea91c238a66ca7bda63763d1d654740fb4#ae3833ea91c238a66ca7bda63763d1d654740fb4" dependencies = [ "anyhow", "app-error", diff --git a/frontend/rust-lib/Cargo.toml b/frontend/rust-lib/Cargo.toml index 4f21b5f610ca0..b8ad17cc1c5ef 100644 --- a/frontend/rust-lib/Cargo.toml +++ b/frontend/rust-lib/Cargo.toml @@ -100,8 +100,8 @@ dashmap = "6.0.1" # Run the script.add_workspace_members: # scripts/tool/update_client_api_rev.sh new_rev_id # ⚠️⚠️⚠️️ -client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "d503905" } -client-api-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "d503905" } +client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "ae3833ea91c238a66ca7bda63763d1d654740fb4" } +client-api-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "ae3833ea91c238a66ca7bda63763d1d654740fb4" } [profile.dev] opt-level = 0 @@ -136,13 +136,13 @@ rocksdb = { git = "https://github.com/rust-rocksdb/rust-rocksdb", rev = "1710120 # To switch to the local path, run: # scripts/tool/update_collab_source.sh # ⚠️⚠️⚠️️ -collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } -collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "4c0d2cd" } +collab = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-entity = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-folder = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-document = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-database = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-plugins = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } +collab-user = { version = "0.2", git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "520b75dbe84ff17a55cf9424a55028781ae0bfc6" } # Working directory: frontend # To update the commit ID, run: From 104bf12ac7ef9045487c434af46c703ea60eddd6 Mon Sep 17 00:00:00 2001 From: "Lucas.Xu" Date: Thu, 22 Aug 2024 09:32:29 +0800 Subject: [PATCH 3/7] feat: optimize settings on mobile (#6031) * feat: optimize settings on mobile * feat: open discord link when clicking help button * fix: flutter analyze --- frontend/appflowy_flutter/ios/Podfile.lock | 4 +- .../presentation/home/mobile_folders.dart | 37 +---- .../presentation/home/mobile_home_page.dart | 2 + .../home/mobile_home_page_header.dart | 22 +-- .../home/setting/settings_popup_menu.dart | 143 ++++++++++++++++++ .../notifications/widgets/header.dart | 2 +- .../application/user/user_workspace_bloc.dart | 5 + .../flowy_icons/16x/m_settings_member.svg | 6 + frontend/resources/translations/en.json | 6 + 9 files changed, 178 insertions(+), 49 deletions(-) create mode 100644 frontend/appflowy_flutter/lib/mobile/presentation/home/setting/settings_popup_menu.dart create mode 100644 frontend/resources/flowy_icons/16x/m_settings_member.svg diff --git a/frontend/appflowy_flutter/ios/Podfile.lock b/frontend/appflowy_flutter/ios/Podfile.lock index af96ce7ccb767..8829c71074cf9 100644 --- a/frontend/appflowy_flutter/ios/Podfile.lock +++ b/frontend/appflowy_flutter/ios/Podfile.lock @@ -174,7 +174,7 @@ SPEC CHECKSUMS: file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655 flowy_infra_ui: 0455e1fa8c51885aa1437848e361e99419f34ebc Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - fluttertoast: 723e187574b149e68e63ca4d39b837586b903cfa + fluttertoast: e9a18c7be5413da53898f660530c56f35edfba9c image_picker_ios: 99dfe1854b4fa34d0364e74a78448a0151025425 integration_test: ce0a3ffa1de96d1a89ca0ac26fca7ea18a749ef4 irondash_engine_context: 3458bf979b90d616ffb8ae03a150bafe2e860cc9 @@ -196,4 +196,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: d0d9b4ff572d8695c38eb3f9b490f55cdfc57eca -COCOAPODS: 1.11.3 +COCOAPODS: 1.15.2 diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_folders.dart b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_folders.dart index dc9602ca13a64..c7a4acd07f0cc 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_folders.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_folders.dart @@ -1,20 +1,16 @@ -import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/mobile/presentation/home/section_folder/mobile_home_section_folder.dart'; import 'package:appflowy/mobile/presentation/home/space/mobile_space.dart'; -import 'package:appflowy/mobile/presentation/presentation.dart'; import 'package:appflowy/workspace/application/menu/sidebar_sections_bloc.dart'; import 'package:appflowy/workspace/application/sidebar/folder/folder_bloc.dart'; import 'package:appflowy/workspace/application/sidebar/space/space_bloc.dart'; import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart'; -import 'package:appflowy/workspace/presentation/home/home_sizes.dart'; import 'package:appflowy_backend/protobuf/flowy-user/protobuf.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; -import 'package:go_router/go_router.dart'; // Contains Public And Private Sections class MobileFolders extends StatelessWidget { @@ -73,13 +69,7 @@ class _MobileFolderState extends State<_MobileFolder> { child: Column( children: [ ..._buildSpaceOrSection(context, state), - const VSpace(4.0), - const Padding( - padding: EdgeInsets.symmetric( - horizontal: HomeSpaceViewSizes.mHorizontalPadding, - ), - child: _TrashButton(), - ), + const VSpace(80.0), ], ), ); @@ -122,28 +112,3 @@ class _MobileFolderState extends State<_MobileFolder> { ]; } } - -class _TrashButton extends StatelessWidget { - const _TrashButton(); - - @override - Widget build(BuildContext context) { - return SizedBox( - height: 52, - child: FlowyButton( - expand: true, - margin: const EdgeInsets.symmetric(vertical: 8, horizontal: 2.0), - leftIcon: const FlowySvg( - FlowySvgs.m_delete_s, - ), - leftIconSize: const Size.square(18), - iconPadding: 10.0, - text: FlowyText.regular( - LocaleKeys.trash_text.tr(), - fontSize: 16.0, - ), - onTap: () => context.push(MobileHomeTrashPage.routeName), - ), - ); - } -} diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page.dart b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page.dart index d3a0a5ed23db2..c3f0340953388 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page.dart @@ -249,6 +249,8 @@ class _HomePageState extends State<_HomePage> { return; } + Log.info('workspace action result: $actionResult'); + final actionType = actionResult.actionType; final result = actionResult.result; final isLoading = actionResult.isLoading; diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page_header.dart b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page_header.dart index ccd663a5b34a8..24c0b5432fd62 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page_header.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/home/mobile_home_page_header.dart @@ -2,7 +2,6 @@ import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/mobile/presentation/base/gesture.dart'; import 'package:appflowy/mobile/presentation/bottom_sheet/bottom_sheet.dart'; -import 'package:appflowy/mobile/presentation/home/mobile_home_setting_page.dart'; import 'package:appflowy/mobile/presentation/home/workspaces/workspace_menu_bottom_sheet.dart'; import 'package:appflowy/plugins/base/emoji/emoji_picker_screen.dart'; import 'package:appflowy/shared/icon_emoji_picker/flowy_icon_emoji_picker.dart'; @@ -18,6 +17,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:go_router/go_router.dart'; +import 'setting/settings_popup_menu.dart'; + class MobileHomePageHeader extends StatelessWidget { const MobileHomePageHeader({ super.key, @@ -45,15 +46,16 @@ class MobileHomePageHeader extends StatelessWidget { ? _MobileWorkspace(userProfile: userProfile) : _MobileUser(userProfile: userProfile), ), - GestureDetector( - onTap: () => context.push( - MobileHomeSettingPage.routeName, - ), - child: const Padding( - padding: EdgeInsets.all(8.0), - child: FlowySvg(FlowySvgs.m_notification_settings_s), - ), - ), + const HomePageSettingsPopupMenu(), + // GestureDetector( + // onTap: () => context.push( + // MobileHomeSettingPage.routeName, + // ), + // child: const Padding( + // padding: EdgeInsets.all(8.0), + // child: FlowySvg(FlowySvgs.m_notification_settings_s), + // ), + // ), const HSpace(8.0), ], ), diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/home/setting/settings_popup_menu.dart b/frontend/appflowy_flutter/lib/mobile/presentation/home/setting/settings_popup_menu.dart new file mode 100644 index 0000000000000..ae7842d08f09d --- /dev/null +++ b/frontend/appflowy_flutter/lib/mobile/presentation/home/setting/settings_popup_menu.dart @@ -0,0 +1,143 @@ +import 'package:appflowy/core/helpers/url_launcher.dart'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; +import 'package:appflowy/generated/locale_keys.g.dart'; +import 'package:appflowy/mobile/presentation/presentation.dart'; +import 'package:appflowy/mobile/presentation/setting/workspace/invite_members_screen.dart'; +import 'package:easy_localization/easy_localization.dart'; +import 'package:flowy_infra_ui/flowy_infra_ui.dart'; +import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; + +enum _MobileSettingsPopupMenuItem { + settings, + members, + trash, + help, +} + +class HomePageSettingsPopupMenu extends StatelessWidget { + const HomePageSettingsPopupMenu({super.key}); + + @override + Widget build(BuildContext context) { + return PopupMenuButton<_MobileSettingsPopupMenuItem>( + offset: const Offset(0, 36), + padding: EdgeInsets.zero, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.all( + Radius.circular(12.0), + ), + ), + // todo: replace it with shadows + shadowColor: const Color(0x68000000), + elevation: 10, + child: const Padding( + padding: EdgeInsets.all(8.0), + child: FlowySvg( + FlowySvgs.m_settings_more_s, + ), + ), + itemBuilder: (BuildContext context) => + >[ + _buildItem( + value: _MobileSettingsPopupMenuItem.settings, + svg: FlowySvgs.m_notification_settings_s, + text: LocaleKeys.settings_popupMenuItem_settings.tr(), + ), + const PopupMenuDivider(height: 0.5), + _buildItem( + value: _MobileSettingsPopupMenuItem.members, + svg: FlowySvgs.m_settings_member_s, + text: LocaleKeys.settings_popupMenuItem_members.tr(), + ), + const PopupMenuDivider(height: 0.5), + _buildItem( + value: _MobileSettingsPopupMenuItem.trash, + svg: FlowySvgs.trash_s, + text: LocaleKeys.settings_popupMenuItem_trash.tr(), + ), + const PopupMenuDivider(height: 0.5), + _buildItem( + value: _MobileSettingsPopupMenuItem.help, + svg: FlowySvgs.message_support_s, + text: LocaleKeys.settings_popupMenuItem_helpAndSupport.tr(), + ), + ], + onSelected: (_MobileSettingsPopupMenuItem value) { + switch (value) { + case _MobileSettingsPopupMenuItem.members: + _openMembersPage(context); + break; + case _MobileSettingsPopupMenuItem.trash: + _openTrashPage(context); + break; + case _MobileSettingsPopupMenuItem.settings: + _openSettingsPage(context); + break; + case _MobileSettingsPopupMenuItem.help: + _openHelpPage(context); + break; + } + }, + ); + } + + PopupMenuItem _buildItem({ + required T value, + required FlowySvgData svg, + required String text, + }) { + return PopupMenuItem( + value: value, + padding: EdgeInsets.zero, + child: _PopupButton( + svg: svg, + text: text, + ), + ); + } + + void _openMembersPage(BuildContext context) { + context.push(InviteMembersScreen.routeName); + } + + void _openTrashPage(BuildContext context) { + context.push(MobileHomeTrashPage.routeName); + } + + void _openHelpPage(BuildContext context) { + afLaunchUrlString('https://discord.com/invite/9Q2xaN37tV'); + } + + void _openSettingsPage(BuildContext context) { + context.push(MobileHomeSettingPage.routeName); + } +} + +class _PopupButton extends StatelessWidget { + const _PopupButton({ + required this.svg, + required this.text, + }); + + final FlowySvgData svg; + final String text; + + @override + Widget build(BuildContext context) { + return Container( + height: 44, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: Row( + children: [ + FlowySvg(svg, size: const Size.square(20)), + const HSpace(12), + FlowyText.regular( + text, + fontSize: 16, + ), + ], + ), + ); + } +} diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/notifications/widgets/header.dart b/frontend/appflowy_flutter/lib/mobile/presentation/notifications/widgets/header.dart index c42fc48cd3519..9f1311d1e714f 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/notifications/widgets/header.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/notifications/widgets/header.dart @@ -18,7 +18,7 @@ class MobileNotificationPageHeader extends StatelessWidget { child: Row( mainAxisSize: MainAxisSize.min, children: [ - const HSpace(16.0), + const HSpace(18.0), FlowyText( LocaleKeys.settings_notifications_titles_notifications.tr(), fontSize: 20, diff --git a/frontend/appflowy_flutter/lib/workspace/application/user/user_workspace_bloc.dart b/frontend/appflowy_flutter/lib/workspace/application/user/user_workspace_bloc.dart index e10e9cc6c88be..16fed97f7c452 100644 --- a/frontend/appflowy_flutter/lib/workspace/application/user/user_workspace_bloc.dart +++ b/frontend/appflowy_flutter/lib/workspace/application/user/user_workspace_bloc.dart @@ -493,6 +493,11 @@ class UserWorkspaceActionResult { final UserWorkspaceActionType actionType; final bool isLoading; final FlowyResult? result; + + @override + String toString() { + return 'UserWorkspaceActionResult(actionType: $actionType, isLoading: $isLoading, result: $result)'; + } } @freezed diff --git a/frontend/resources/flowy_icons/16x/m_settings_member.svg b/frontend/resources/flowy_icons/16x/m_settings_member.svg new file mode 100644 index 0000000000000..edd1e3fe83158 --- /dev/null +++ b/frontend/resources/flowy_icons/16x/m_settings_member.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/resources/translations/en.json b/frontend/resources/translations/en.json index 05d15177a7542..dfd9602ed598a 100644 --- a/frontend/resources/translations/en.json +++ b/frontend/resources/translations/en.json @@ -395,6 +395,12 @@ }, "settings": { "title": "Settings", + "popupMenuItem": { + "settings": "Settings", + "members": "Members", + "trash": "Trash", + "helpAndSupport": "Help & Support" + }, "accountPage": { "menuLabel": "My account", "title": "My account", From b2b72d2130d0f8326dac544f8c65a8980bce56ca Mon Sep 17 00:00:00 2001 From: Evililim <12346464+Evililim@users.noreply.github.com> Date: Thu, 22 Aug 2024 03:34:06 +0200 Subject: [PATCH 4/7] chore: update French translations (#5973) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: update translations with Fink 🐦 * Corrections demandée par Ninja i18n * Chore: Correction for Ninja i18n --- frontend/resources/translations/fr-FR.json | 848 ++++++++++++++++++++- 1 file changed, 819 insertions(+), 29 deletions(-) diff --git a/frontend/resources/translations/fr-FR.json b/frontend/resources/translations/fr-FR.json index 0283ca9a32b7a..e11bdebcedaea 100644 --- a/frontend/resources/translations/fr-FR.json +++ b/frontend/resources/translations/fr-FR.json @@ -47,12 +47,25 @@ "unmatchedPasswordError": "Les deux mots de passe ne sont pas identiques", "syncPromptMessage": "La synchronisation des données peut prendre un certain temps. Merci de ne pas fermer pas cette page.", "or": "OU", + "signInWithGoogle": "Continuer avec Google", + "signInWithGithub": "Continuer avec Github", + "signInWithDiscord": "Continuer avec Discord", + "signUpWithGoogle": "S'inscrire avec Google", + "signUpWithGithub": "S'inscrire avec Github", + "signUpWithDiscord": "S'inscrire avec Discord", "signInWith": "Se connecter avec :", "signInWithEmail": "Se connecter via e-mail", + "signInWithMagicLink": "Continuer", + "signUpWithMagicLink": "S'inscrire avec Magic Link", "pleaseInputYourEmail": "Veuillez entrer votre adresse e-mail", + "settings": "Paramètres", "magicLinkSent": "Lien magique envoyé à votre email, veuillez vérifier votre boîte de réception", "invalidEmail": "S'il vous plaît, mettez une adresse email valide", + "alreadyHaveAnAccount": "Déjà un compte ?", "logIn": "Connexion", + "generalError": "Une erreur s'est produite. Veuillez réessayer plus tard", + "limitRateError": "Pour des raisons de sécurité, vous ne pouvez demander un Magic Link que toutes les 60 secondes", + "magicLinkSentDescription": "Un Magic Link vous a été envoyé par e-mail. Cliquez sur le lien pour vous connecter. Le lien expirera dans 5 minutes.", "LogInWithGoogle": "Se connecter avec Google", "LogInWithGithub": "Se connecter avec Github", "LogInWithDiscord": "Se connecter avec Discord", @@ -63,6 +76,7 @@ "chooseWorkspace": "Choisissez votre espace de travail", "create": "Créer un espace de travail", "reset": "Réinitialiser l'espace de travail", + "renameWorkspace": "Renommer l'espace de travail", "resetWorkspacePrompt": "La réinitialisation de l'espace de travail supprimera toutes les pages et données qu'elles contiennent. Êtes-vous sûr de vouloir réinitialiser l'espace de travail ? Alternativement, vous pouvez contacter l'équipe d'assistance pour restaurer l'espace de travail", "hint": "Espace de travail", "notFoundError": "Espace de travail introuvable", @@ -98,7 +112,15 @@ "html": "HTML", "clipboard": "Copier dans le presse-papier", "csv": "CSV", - "copyLink": "Copier le lien" + "copyLink": "Copier le lien", + "publishToTheWeb": "Publier sur le Web", + "publishToTheWebHint": "Créer un site Web avec AppFlowy", + "publish": "Publier", + "unPublish": "Annuler la publication", + "visitSite": "Visitez le site", + "exportAsTab": "Exporter en tant que", + "publishTab": "Publier", + "shareTab": "Partager" }, "moreAction": { "small": "petit", @@ -129,7 +151,9 @@ "openNewTab": "Ouvrir dans un nouvel onglet", "moveTo": "Déplacer vers", "addToFavorites": "Ajouter aux Favoris", - "copyLink": "Copier le lien" + "copyLink": "Copier le lien", + "changeIcon": "Changer d'icône", + "collapseAllPages": "Réduire toutes les sous-pages" }, "blankPageTitle": "Page vierge", "newPageText": "Nouvelle page", @@ -137,6 +161,31 @@ "newGridText": "Nouvelle grille", "newCalendarText": "Nouveau calendrier", "newBoardText": "Nouveau tableau", + "chat": { + "newChat": "Chat IA", + "inputMessageHint": "Demandez à l'IA @:appName", + "inputLocalAIMessageHint": "Demander l'IA locale @:appName", + "unsupportedCloudPrompt": "Cette fonctionnalité n'est disponible que lors de l'utilisation du cloud @:appName", + "serverUnavailable": "Service temporairement indisponible. Veuillez réessayer ultérieurement.", + "aiServerUnavailable": "🌈 Oh-oh ! 🌈. Une licorne a mangé notre réponse. Veuillez réessayer !", + "clickToRetry": "Cliquez pour réessayer", + "regenerateAnswer": "Régénérer", + "question1": "Comment utiliser Kanban pour gérer les tâches", + "question2": "Expliquez la méthode GTD", + "question3": "Pourquoi utiliser Rust", + "question4": "Recette avec ce qu'il y a dans ma cuisine", + "aiMistakePrompt": "L'IA peut faire des erreurs. Vérifiez les informations importantes.", + "chatWithFilePrompt": "Voulez-vous discuter avec le fichier ?", + "indexFileSuccess": "Indexation du fichier réussie", + "inputActionNoPages": "Aucun résultat de page", + "referenceSource": "{} source trouvée", + "referenceSources": "{} sources trouvées", + "clickToMention": "Cliquez pour mentionner une page", + "uploadFile": "Téléchargez des fichiers PDF, MD ou TXT pour discuter avec", + "questionTitle": "Idées", + "questionDetail": "Bonjour {} ! Comment puis-je vous aider aujourd'hui ?", + "indexingFile": "Indexation {}" + }, "trash": { "text": "Corbeille", "restoreAll": "Tout restaurer", @@ -215,7 +264,8 @@ "dragRow": "Appuyez longuement pour réorganiser la ligne", "viewDataBase": "Voir la base de données", "referencePage": "Ce {nom} est référencé", - "addBlockBelow": "Ajouter un bloc ci-dessous" + "addBlockBelow": "Ajouter un bloc ci-dessous", + "aiGenerate": "Générer" }, "sideBar": { "closeSidebar": "Fermer le menu latéral", @@ -232,6 +282,35 @@ "addAPageToPrivate": "Ajouter une page à l'espace privé", "addAPageToWorkspace": "Ajouter une page à l'espace de travail", "recent": "Récent", + "today": "Aujourd'hui", + "thisWeek": "Cette semaine", + "others": "Favoris précédents", + "justNow": "tout à l' heure", + "minutesAgo": "Il y a {count} minutes", + "lastViewed": "Dernière consultation", + "favoriteAt": "Favoris", + "emptyRecent": "Aucun document récent", + "emptyRecentDescription": "Quand vous consultez des documents, ils apparaîtront ici pour les retrouver facilement", + "emptyFavorite": "Aucun document favori", + "emptyFavoriteDescription": "Commencez à explorer et marquez les documents comme favoris. Ils seront répertoriés ici pour un accès rapide !", + "removePageFromRecent": "Supprimer cette page des Récents ?", + "removeSuccess": "Supprimé avec succès", + "favoriteSpace": "Favoris", + "RecentSpace": "Récent", + "Spaces": "Espaces", + "upgradeToPro": "Passer à Pro", + "upgradeToAIMax": "Débloquez une l'IA illimitée", + "storageLimitDialogTitle": "Vous n'avez plus d'espace de stockage gratuit. Effectuez une mise à niveau pour débloquer un espace de stockage illimité", + "aiResponseLimitTitle": "Vous n'avez plus de réponses d'IA gratuites. Passez au plan Pro ou achetez un module complémentaire d'IA pour débloquer des réponses illimitées", + "aiResponseLimitDialogTitle": "La limite des réponses de l'IA a été atteinte", + "aiResponseLimit": "Vous n'avez plus de réponses IA gratuites.\n\nAccédez à Paramètres -> Plans -> Cliquez sur AI Max ou Pro Plan pour obtenir plus de réponses AI", + "askOwnerToUpgradeToPro": "Votre espace de stockage gratuit est presque plein. Demandez au propriétaire de votre espace de travail de passer au plan Pro", + "askOwnerToUpgradeToAIMax": "Votre espace de travail est à court de réponses d'IA gratuites. Demandez au propriétaire de votre espace de travail de mettre à niveau le plan ou d'acheter des modules complémentaires d'IA", + "purchaseStorageSpace": "Acheter un espace de stockage", + "purchaseAIResponse": "Acheter", + "askOwnerToUpgradeToLocalAI": "Demander au propriétaire de l'espace de travail d'activer l'IA locale", + "upgradeToAILocal": "Exécutez des modèles locaux sur votre appareil pour une confidentialité optimale", + "upgradeToAILocalDesc": "Discutez avec des PDF, améliorez votre écriture et remplissez automatiquement des tableaux à l'aide de l'IA locale", "public": "Publique", "clickToHidePublic": "Cliquez pour masquer l'espace public\nLes pages que vous avez créées ici sont visibles par tous les membres", "addAPageToPublic": "Ajouter une page à l'espace public" @@ -250,6 +329,7 @@ }, "button": { "ok": "OK", + "confirm": "Confirmer", "done": "Fait", "cancel": "Annuler", "signIn": "Se connecter", @@ -272,11 +352,15 @@ "update": "Mettre à jour", "share": "Partager", "removeFromFavorites": "Retirer des favoris", + "removeFromRecent": "Supprimer des récents", "addToFavorites": "Ajouter aux favoris", + "favoriteSuccessfully": "Succès en favoris", + "unfavoriteSuccessfully": "Succès retiré des favoris", "rename": "Renommer", "helpCenter": "Centre d'aide", "add": "Ajouter", "yes": "Oui", + "no": "Non", "clear": "Nettoyer", "remove": "Retirer", "dontRemove": "Ne pas retirer", @@ -289,6 +373,12 @@ "signInGoogle": "Se connecter avec Google", "signInGithub": "Se connecter avec Github", "signInDiscord": "Se connecter avec Discord", + "more": "Plus", + "create": "Créer", + "close": "Fermer", + "next": "Suivant", + "previous": "Précédent", + "submit": "Soumettre", "tryAGain": "Réessayer" }, "label": { @@ -316,6 +406,10 @@ "accountPage": { "menuLabel": "Mon compte", "title": "Mon compte", + "general": { + "title": "Nom du compte et image de profil", + "changeProfilePicture": "Changer la photo de profil" + }, "email": { "title": "Email", "actions": { @@ -323,6 +417,7 @@ } }, "login": { + "title": "Connexion au compte", "loginLabel": "Connexion", "logoutLabel": "Déconnexion" } @@ -348,20 +443,32 @@ "dark": "Foncé" } }, + "resetCursorColor": { + "title": "Réinitialiser la couleur du curseur du document", + "description": "Êtes-vous sûr de vouloir réinitialiser la couleur du curseur ?" + }, + "resetSelectionColor": { + "title": "Réinitialiser la couleur de sélection du document", + "description": "Êtes-vous sûr de vouloir réinitialiser la couleur de sélection ?" + }, "theme": { "title": "Thème", - "description": "Sélectionnez un thème prédéfini ou téléchargez votre propre thème personnalisé." + "description": "Sélectionnez un thème prédéfini ou téléchargez votre propre thème personnalisé.", + "uploadCustomThemeTooltip": "Télécharger un thème personnalisé" }, "workspaceFont": { - "title": "Police de caractère de l'espace de travail" + "title": "Police de caractère de l'espace de travail", + "noFontHint": "Aucune police trouvée, essayez un autre terme." }, "textDirection": { "title": "Sens du texte", "leftToRight": "De gauche à droite", "rightToLeft": "De droite à gauche", - "auto": "Auto" + "auto": "Auto", + "enableRTLItems": "Activer les éléments de la barre d'outils RTL" }, "layoutDirection": { + "title": "Sens de mise en page", "leftToRight": "De gauche à droite", "rightToLeft": "De droite à gauche" }, @@ -373,6 +480,7 @@ "local": "Locale", "us": "US", "iso": "ISO", + "friendly": "Facile à lire", "dmy": "J/M/A" } }, @@ -396,25 +504,372 @@ "manageDataPage": { "menuLabel": "Gérer les données", "title": "Gérer les données", + "description": "Gérez le stockage local des données ou importez vos données existantes dans @:appName .", "dataStorage": { + "title": "Emplacement de stockage des fichiers", + "tooltip": "L'emplacement où vos fichiers sont stockés", "actions": { "change": "Changer de chemin", "open": "Ouvrir le répertoire", + "openTooltip": "Ouvrir l’emplacement actuel du dossier de données", "copy": "Copier le chemin", - "copiedHint": "Lien copié !" + "copiedHint": "Lien copié !", + "resetTooltip": "Réinitialiser à l'emplacement par défaut" }, "resetDialog": { - "title": "Êtes-vous sûr ?" + "title": "Êtes-vous sûr ?", + "description": "La réinitialisation du chemin d'accès à l'emplacement de données par défaut ne supprimera pas vos données. Si vous souhaitez réimporter vos données actuelles, vous devriez sauvegarder le chemin d'accès actuel." } }, "importData": { "title": "Importer des données", + "tooltip": "Importer des données depuis les dossiers de sauvegarde/données @:appName", + "description": "Copier les données à partir d'un dossier de données externe @:appName", "action": "Parcourir le dossier" }, "encryption": { - "title": "Chiffrement" + "title": "Chiffrement", + "tooltip": "Gérez la manière dont vos données sont stockées et cryptées", + "descriptionNoEncryption": "L'activation du cryptage crypte toutes les données. Cette opération ne peut pas être annulée.", + "descriptionEncrypted": "Vos données sont cryptées.", + "action": "Crypter les données", + "dialog": { + "title": "Crypter toutes vos données ?", + "description": "Le cryptage de toutes vos données permettra de les protéger et de les sécuriser. Cette action NE PEUT PAS être annulée. Êtes-vous sûr de vouloir continuer ?" + } + }, + "cache": { + "title": "Vider le cache", + "description": "Aide à résoudre des problèmes tels que des image qui ne se chargent pas, des pages manquantes dans un espace ou les polices qui ne se chargent pas. Cela n'affectera pas vos données.", + "dialog": { + "title": "Vider le cache", + "description": "Aide à résoudre des problèmes tels que des image qui ne se chargent pas, des pages manquantes dans un espace ou les polices qui ne se chargent pas. Cela n'affectera pas vos données.", + "successHint": "Cache vidé !" + } + }, + "data": { + "fixYourData": "Corrigez vos données", + "fixButton": "Réparer", + "fixYourDataDescription": "Si vous rencontrez des problèmes avec vos données, vous pouvez essayer de les résoudre ici." } }, + "shortcutsPage": { + "menuLabel": "Raccourcis", + "title": "Raccourcis", + "editBindingHint": "Saisir une nouvelle liaison", + "searchHint": "Rechercher", + "actions": { + "resetDefault": "Réinitialiser les paramètres par défaut" + }, + "errorPage": { + "message": "Échec du chargement des raccourcis : {}", + "howToFix": "Veuillez réessayer. Si le problème persiste, veuillez nous contacter sur GitHub." + }, + "resetDialog": { + "title": "Réinitialiser les raccourcis", + "description": "Cela réinitialisera tous vos raccourcis clavier aux valeurs par défaut, vous ne pourrez pas annuler cette opération plus tard, êtes-vous sûr de vouloir continuer ?", + "buttonLabel": "Réinitialiser" + }, + "conflictDialog": { + "title": "{} est actuellement utilisé", + "descriptionPrefix": "Ce raccourci clavier est actuellement utilisé par ", + "descriptionSuffix": ". Si vous remplacez ce raccourci clavier, il sera supprimé de {}.", + "confirmLabel": "Continuer" + }, + "editTooltip": "Appuyez pour commencer à modifier le raccourci clavier", + "keybindings": { + "toggleToDoList": "Basculer vers la liste des tâches", + "insertNewParagraphInCodeblock": "Insérer un nouveau paragraphe", + "pasteInCodeblock": "Coller dans le bloc de code", + "selectAllCodeblock": "Sélectionner tout", + "indentLineCodeblock": "Insérer deux espaces au début de la ligne", + "outdentLineCodeblock": "Supprimer deux espaces au début de la ligne", + "twoSpacesCursorCodeblock": "Insérer deux espaces au niveau du curseur", + "copy": "Copier la sélection", + "paste": "Coller le contenu", + "cut": "Couper la sélection", + "alignLeft": "Aligner le texte à gauche", + "alignCenter": "Aligner le texte au centre", + "alignRight": "Aligner le texte à droite", + "undo": "Annuler", + "convertToParagraph": "Convertir un bloc en paragraphe", + "backspace": "Supprimer", + "deleteLeftWord": "Supprimer le mot de gauche", + "deleteLeftSentence": "Supprimer la phrase de gauche", + "delete": "Supprimer le caractère de droite", + "deleteMacOS": "Supprimer le caractère de gauche", + "deleteRightWord": "Supprimer le mot de droite", + "moveCursorLeft": "Déplacer le curseur vers la gauche", + "moveCursorBeginning": "Déplacer le curseur au début", + "moveCursorLeftWord": "Déplacer le curseur d'un mot vers la gauche", + "moveCursorLeftSelect": "Sélectionnez et déplacez le curseur vers la gauche", + "moveCursorBeginSelect": "Sélectionnez et déplacez le curseur au début", + "moveCursorLeftWordSelect": "Sélectionnez et déplacez le curseur d'un mot vers la gauche", + "moveCursorRight": "Déplacer le curseur vers la droite", + "moveCursorEnd": "Déplacer le curseur jusqu'à la fin", + "moveCursorRightWord": "Déplacer le curseur d'un mot vers la droite", + "moveCursorRightSelect": "Sélectionnez et déplacez le curseur vers la droite", + "moveCursorEndSelect": "Sélectionnez et déplacez le curseur jusqu'à la fin", + "moveCursorRightWordSelect": "Sélectionnez et déplacez le curseur vers la droite d'un mot", + "moveCursorUp": "Déplacer le curseur vers le haut", + "moveCursorTopSelect": "Sélectionnez et déplacez le curseur vers le haut", + "moveCursorTop": "Déplacer le curseur vers le haut", + "moveCursorUpSelect": "Sélectionnez et déplacez le curseur vers le haut", + "moveCursorBottomSelect": "Sélectionnez et déplacez le curseur vers le bas", + "moveCursorBottom": "Déplacer le curseur vers le bas", + "moveCursorDown": "Déplacer le curseur vers le bas", + "moveCursorDownSelect": "Sélectionnez et déplacez le curseur vers le bas", + "home": "Faites défiler vers le haut", + "end": "Faites défiler vers le bas", + "toggleBold": "Inverser le gras", + "toggleItalic": "Inverser l'italique", + "toggleUnderline": "Inverser le soulignement", + "toggleStrikethrough": "Inverser le barré", + "toggleCode": "Inverser la mise en forme code", + "toggleHighlight": "Inverser la surbrillance", + "showLinkMenu": "Afficher le menu des liens", + "openInlineLink": "Ouvrir le lien en ligne", + "openLinks": "Ouvrir tous les liens sélectionnés", + "indent": "Augmenter le retrait", + "outdent": "Diminuer le retrait", + "exit": "Quitter l'édition", + "pageUp": "Faites défiler une page vers le haut", + "pageDown": "Faites défiler une page vers le bas", + "selectAll": "Sélectionner tout", + "pasteWithoutFormatting": "Coller le contenu sans formatage", + "showEmojiPicker": "Afficher le sélecteur d'emoji", + "enterInTableCell": "Ajouter un saut de ligne dans le tableau", + "leftInTableCell": "Déplacer d'une cellule vers la gauche dans le tableau", + "rightInTableCell": "Déplacer d'une cellule vers la droite dans le tableau", + "upInTableCell": "Déplacer d'une cellule vers le haut dans le tableau", + "downInTableCell": "Déplacer d'une cellule vers le bas dans le tableau", + "tabInTableCell": "Aller à la prochaine cellule vide dans le tableau", + "shiftTabInTableCell": "Aller à la précédente cellule vide dans le tableau", + "backSpaceInTableCell": "S'arrêter au début de la cellule" + }, + "commands": { + "codeBlockNewParagraph": "Insérer un nouveau paragraphe à côté du bloc de code", + "codeBlockIndentLines": "Insérer deux retraits au début du bloc de code", + "codeBlockOutdentLines": "Supprimer deux retraits au début du bloc de code", + "codeBlockAddTwoSpaces": "Insérer deux retraits au niveau du curseur dans le bloc de code", + "codeBlockSelectAll": "Sélectionner tout le contenu d'un bloc de code", + "codeBlockPasteText": "Coller du texte dans le bloc de code", + "textAlignLeft": "Aligner le texte à gauche", + "textAlignCenter": "Aligner le texte au centre", + "textAlignRight": "Aligner le texte à droite" + }, + "couldNotLoadErrorMsg": "Impossible de charger les raccourcis, réessayez", + "couldNotSaveErrorMsg": "Impossible d'enregistrer les raccourcis, réessayez" + }, + "aiPage": { + "title": "Paramètres de l'IA", + "menuLabel": "Paramètres IA", + "keys": { + "enableAISearchTitle": "Recherche IA", + "aiSettingsDescription": "Choisissez votre modèle préféré pour alimenter AppFlowy AI. Inclut désormais GPT 4-o, Claude 3,5, Llama 3.1 et Mistral 7B", + "llmModel": "Modèle de langage", + "llmModelType": "Type de modèle de langue", + "downloadLLMPrompt": "Télécharger {}", + "downloadAppFlowyOfflineAI": "Le téléchargement du package hors ligne AI permettra à AI de fonctionner sur votre appareil. Voulez-vous continuer ?", + "downloadLLMPromptDetail": "Le téléchargement du modèle local {} prendra jusqu'à {} d'espace de stockage. Voulez-vous continuer ?", + "downloadBigFilePrompt": "Le téléchargement peut prendre environ 10 minutes.", + "downloadAIModelButton": "Télécharger", + "downloadingModel": "Téléchargement", + "localAILoaded": "Modèle d'IA local ajouté avec succès et prêt à être utilisé", + "localAIStart": "Démarrage du chat avec l'IA locale...", + "localAILoading": "Chargement du modèle d'IA locale...", + "localAIStopped": "IA locale arrêtée", + "failToLoadLocalAI": "Impossible de démarrer l'IA locale", + "restartLocalAI": "Redémarrer l'IA locale", + "disableLocalAITitle": "Désactiver l'IA locale", + "disableLocalAIDescription": "Voulez-vous désactiver l'IA locale ?", + "localAIToggleTitle": "Basculer pour activer ou désactiver l'IA locale", + "offlineAIInstruction1": "Suivre les", + "offlineAIInstruction2": "instructions", + "offlineAIInstruction3": "pour activer l'IA hors ligne.", + "offlineAIDownload1": "Si vous n'avez pas téléchargé l'IA AppFlowy, veuillez", + "offlineAIDownload2": "télécharger", + "offlineAIDownload3": "d'abord", + "activeOfflineAI": "Activer", + "downloadOfflineAI": "Télécharger", + "openModelDirectory": "Ouvrir le dossier" + } + }, + "planPage": { + "planUsage": { + "title": "Résumé de l'utilisation du plan", + "storageLabel": "Stockage", + "unlimitedStorageLabel": "Stockage illimité", + "collaboratorsLabel": "Membres", + "aiResponseLabel": "Réponses de l'IA", + "memberProToggle": "Plus de membres et une IA illimitée", + "aiMaxToggle": "IA illimitée et accès à des modèles avancés", + "aiOnDeviceToggle": "IA locale pour une confidentialité ultime", + "aiCredit": { + "title": "Ajoutez des crédit IA @:appName ", + "priceDescription": "pour 1 000 crédits", + "purchase": "Acheter l'IA", + "infoItemOne": "10 000 réponses par base de données", + "infoItemTwo": "1 000 réponses par espace de travail" + }, + "currentPlan": { + "bannerLabel": "Plan actuel", + "freeTitle": "Gratuit", + "teamTitle": "Équipe", + "freeInfo": "Idéal pour les particuliers jusqu'à 2 membres pour tout organiser", + "proInfo": "Idéal pour les petites et moyennes équipes jusqu'à 10 membres.", + "teamInfo": "Parfait pour toutes les équipes productives et bien organisées.", + "upgrade": "Changer de plan", + "canceledInfo": "Votre forfait est annulé, vous serez rétrogradé au plan gratuit le {}." + }, + "addons": { + "title": "Compléments", + "addLabel": "Ajouter", + "activeLabel": "Ajouté", + "aiMax": { + "priceInfo": "par utilisateur et par mois, facturé annuellement" + }, + "aiOnDevice": { + "description": "Exécutez Mistral 7B, LLAMA 3 et d'autres modèles locaux sur votre machine", + "priceInfo": "par utilisateur et par mois, facturé annuellement", + "recommend": "Recommand2 M1 ou plus récent" + } + }, + "deal": { + "bannerLabel": "Offre de nouvelle année !", + "title": "Développez votre équipe !", + "viewPlans": "Voir les plans" + } + } + }, + "billingPage": { + "menuLabel": "Facturation", + "title": "Facturation", + "plan": { + "freeLabel": "Gratuit", + "planButtonLabel": "Changer de plan", + "billingPeriod": "Période de facturation", + "periodButtonLabel": "Changer la période " + }, + "paymentDetails": { + "title": "Détails de paiement", + "methodLabel": "Mode de paiement", + "methodButtonLabel": "Changer de mode de paiement" + }, + "addons": { + "title": "Compléments", + "addLabel": "Ajouter", + "removeLabel": "Retirer", + "renewLabel": "Renouveler", + "aiMax": { + "label": "IA Max", + "description": "Débloquez une IA illimitée et des modèles avancés", + "activeDescription": "Prochaine facture due le {}", + "canceledDescription": "IA Max sera disponible jusqu'au {}" + }, + "aiOnDevice": { + "label": "IA local pour Mac", + "description": "Débloquez une IA illimitée locale sur votre appareil", + "activeDescription": "Prochaine facture due le {}", + "canceledDescription": "IA locale pour Mac sera disponible jusqu'au {}" + } + }, + "currentPeriodBadge": "ACTUEL", + "changePeriod": "Changer de période", + "monthlyInterval": "Mensuel", + "monthlyPriceInfo": "par personne, facturé mensuellement", + "annualInterval": "Annuellement", + "annualPriceInfo": "par personne, facturé annuellement" + }, + "comparePlanDialog": { + "title": "Comparer et sélectionner un plan", + "planFeatures": "Plan\nCaractéristiques", + "current": "Actuel", + "actions": { + "current": "Actuel" + }, + "freePlan": { + "title": "Gratuit", + "description": "Pour les particuliers jusqu'à 2 membres pour tout organiser", + "priceInfo": "gratuit pour toujours" + }, + "proPlan": { + "description": "Pour les petites équipes pour gérer les projets et les bases de connaissance", + "priceInfo": "par utilisateur et par mois\nfacturé annuellement\n\n{} facturé mensuellement" + }, + "planLabels": { + "itemOne": "Espaces de travail", + "itemTwo": "Membres", + "itemThree": "Stockage", + "itemFour": "Collaboration en temps réel", + "itemFive": "Application mobile", + "itemSix": "Réponses de l'IA", + "intelligentSearch": "Recherche intelligente", + "tooltipSeven": "Vous permet de personnaliser une partie de l'URL de votre espace de travail" + }, + "freeLabels": { + "itemOne": "facturé par espace de travail", + "itemTwo": "jusqu'à 2", + "itemThree": "5 Go", + "itemFour": "Oui", + "itemFive": "Oui", + "intelligentSearch": "Recherche intelligente" + }, + "proLabels": { + "itemOne": "facturé par espace de travail", + "itemTwo": "jusqu'à 10", + "itemThree": "illimité", + "itemFour": "Oui", + "itemFive": "Oui", + "itemSix": "illimité", + "intelligentSearch": "Recherche intelligente" + }, + "paymentSuccess": { + "title": "Vous êtes maintenant sur le plan {} !", + "description": "Votre paiement a été traité avec succès et votre forfait est mis à niveau vers @:appName {}. Vous pouvez consulter les détails de votre forfait sur la page Forfait" + }, + "downgradeDialog": { + "title": "Êtes-vous sûr de vouloir rétrograder votre forfait ?" + } + }, + "cancelSurveyDialog": { + "commonOther": "Autre", + "otherHint": "Écrivez votre réponse ici", + "questionOne": { + "question": "Qu'est-ce qui vous a poussé à annuler votre @:appName Pro ?", + "answerOne": "Coût trop élevé", + "answerTwo": "Les fonctionnalités ne répondent pas à mes attentes", + "answerThree": "J'ai trouvé une meilleure alternative", + "answerFour": "Je ne l'ai pas suffisamment utilisé pour justifier la dépense", + "answerFive": "Problème de service ou difficultés techniques" + }, + "questionTwo": { + "question": "Quelle est la probabilité que vous envisagiez de vous réabonner à @:appName Pro à l'avenir ?", + "answerOne": "Très probablement", + "answerTwo": "Assez probable", + "answerThree": "Pas sûr", + "answerFour": "Peu probable", + "answerFive": "Très peu probable" + }, + "questionThree": { + "question": "Quelle fonctionnalité Pro avez-vous le plus appréciée lors de votre abonnement ?", + "answerOne": "Collaboration multi-utilisateurs", + "answerTwo": "Historique des versions plus long", + "answerThree": "Réponses IA illimitées", + "answerFour": "Accès aux modèles d'IA locaux" + }, + "questionFour": { + "question": "Comment décririez-vous votre expérience globale avec @:appName ?", + "answerOne": "Super", + "answerTwo": "Bien", + "answerThree": "Moyenne", + "answerFour": "En dessous de la moyenne", + "answerFive": "Insatisfait" + } + }, + "common": { + "reset": "Réinitialiser" + }, "menu": { "appearance": "Apparence", "language": "Langue", @@ -474,13 +929,56 @@ "enableNotifications": { "label": "Activer les notifications", "hint": "Désactivez-la pour empêcher l'affichage des notifications locales." + }, + "showNotificationsIcon": { + "label": "Afficher l'icône des notifications", + "hint": "Désactiver pour masquer l'icône de notification dans la barre latérale." + }, + "archiveNotifications": { + "allSuccess": "Toutes les notifications ont été archivées avec succès", + "success": "Notification archivée avec succès" + }, + "markAsReadNotifications": { + "allSuccess": "Tout a été marqué comme lu avec succès", + "success": "Marqué comme lu avec succès" + }, + "action": { + "markAsRead": "Marquer comme lu", + "multipleChoice": "Sélectionnez plus" + }, + "settings": { + "settings": "Paramètres", + "markAllAsRead": "Marquer tout comme lu", + "archiveAll": "Archiver tout" + }, + "emptyInbox": { + "title": "Aucune notification pour le moment", + "description": "Vous serez averti ici des @mentions" + }, + "emptyUnread": { + "title": "Aucune notification non lue", + "description": "Vous êtes à jour !" + }, + "emptyArchived": { + "title": "Aucune notification archivée", + "description": "Vous n'avez pas encore archivé de notifications" + }, + "tabs": { + "inbox": "Boîte de réception", + "unread": "Non lu", + "archived": "Archivé" + }, + "refreshSuccess": "Les notifications ont été actualisées avec succès", + "titles": { + "reminder": "Rappel" } }, "appearance": { "resetSetting": "Réinitialiser ce paramètre", "fontFamily": { "label": "Famille de polices", - "search": "Recherche" + "search": "Recherche", + "defaultFont": "Système" }, "themeMode": { "label": " Mode du Thème", @@ -492,6 +990,9 @@ "documentSettings": { "cursorColor": "Couleur du curseur du document", "selectionColor": "Couleur de sélection du document", + "pickColor": "Sélectionnez une couleur", + "colorShade": "Nuance de couleur", + "opacity": "Opacité", "hexEmptyError": "La couleur hexadécimale ne peut pas être vide", "hexLengthError": "La valeur hexadécimale doit comporter 6 chiffres", "hexInvalidError": "Valeur hexadécimale invalide", @@ -547,6 +1048,7 @@ "members": { "title": "Paramètres des membres", "inviteMembers": "Inviter des membres", + "inviteHint": "Invitation par email", "sendInvite": "Envoyer une invitation", "copyInviteLink": "Copier le lien d'invitation", "label": "Membres", @@ -566,11 +1068,17 @@ "one": "{} membre", "other": "{} membres" }, + "inviteFailedDialogTitle": "Échec de l'envoi de l'invitation", + "inviteFailedMemberLimit": "La limite de membres a été atteinte, veuillez effectuer une mise à niveau pour inviter plus de membres.", "memberLimitExceeded": "Vous avez atteint la limite maximale de membres autorisée pour votre compte. Si vous souhaitez ajouter d'autres membres pour continuer votre travail, veuillez en faire la demande sur Github.", + "memberLimitExceededUpgrade": "mise à niveau", + "memberLimitExceededPro": "Limite de membres atteinte, si vous avez besoin de plus de membres, contactez ", "failedToAddMember": "Échec de l'ajout d'un membre", "addMemberSuccess": "Membre ajouté avec succès", "removeMember": "Supprimer un membre", - "areYouSureToRemoveMember": "Êtes-vous sûr de vouloir supprimer ce membre ?" + "areYouSureToRemoveMember": "Êtes-vous sûr de vouloir supprimer ce membre ?", + "inviteMemberSuccess": "L'invitation a été envoyée avec succès", + "failedToInviteMember": "Impossible d'inviter un membre" } }, "files": { @@ -619,8 +1127,8 @@ "tooltipSelectIcon": "Sélectionner l'icône", "selectAnIcon": "Sélectionnez une icône", "pleaseInputYourOpenAIKey": "Veuillez entrer votre clé AI", - "pleaseInputYourStabilityAIKey": "Veuillez saisir votre clé de Stability AI", - "clickToLogout": "Cliquez pour déconnecter l'utilisateur actuel" + "clickToLogout": "Cliquez pour déconnecter l'utilisateur actuel", + "pleaseInputYourStabilityAIKey": "Veuillez saisir votre clé de Stability AI" }, "mobile": { "personalInfo": "Informations personnelles", @@ -680,6 +1188,7 @@ "typeAValue": "Tapez une valeur...", "layout": "Mise en page", "databaseLayout": "Mise en page", + "viewList": "Vues de base de données", "editView": "Modifier vue", "boardSettings": "Paramètres du tableau", "calendarSettings": "Paramètres du calendrier", @@ -687,8 +1196,7 @@ "duplicateView": "Dupliquer la vue", "deleteView": "Supprimer la vue", "numberOfVisibleFields": "{} affiché(s)", - "Properties": "Propriétés", - "viewList": "Vues de base de données" + "Properties": "Propriétés" }, "textFilter": { "contains": "Contient", @@ -773,6 +1281,7 @@ "urlFieldName": "URL", "checklistFieldName": "Check-list", "relationFieldName": "Relation", + "translateTo": "Traduire en", "numberFormat": "Format du nombre", "dateFormat": "Format de la date", "includeTime": "Inclure l'heure", @@ -820,7 +1329,8 @@ "one": "Cacher {count} champ caché", "many": "Cacher {count} champs masqués", "other": "Cacher {count} champs masqués" - } + }, + "openAsFullPage": "Ouvrir en pleine page" }, "sort": { "ascending": "Ascendant", @@ -845,9 +1355,12 @@ "action": "Action", "add": "Cliquez sur ajouter ci-dessous", "drag": "Glisser pour déplacer", + "deleteRowPrompt": "Etes-vous sûr de vouloir supprimer cette ligne ? Cette action ne peut pas être annulée", + "deleteCardPrompt": "Etes-vous sûr de vouloir supprimer cette carte ? Cette action ne peut pas être annulée", "dragAndClick": "Faites glisser pour déplacer, cliquez pour ouvrir le menu", "insertRecordAbove": "Insérer l'enregistrement ci-dessus", - "insertRecordBelow": "Insérer l'enregistrement ci-dessous" + "insertRecordBelow": "Insérer l'enregistrement ci-dessous", + "noContent": "Aucun contenu" }, "selectOption": { "create": "Créer", @@ -931,6 +1444,30 @@ }, "document": { "selectADocumentToLinkTo": "Sélectionnez un Document vers lequel créer un lien" + }, + "name": { + "text": "Texte", + "heading1": "Titre 1", + "heading2": "Titre 2", + "heading3": "Titre 3", + "bulletedList": "Liste à puces", + "numberedList": "Liste numérotée", + "checkbox": "Case à cocher", + "linkedDoc": "Lien vers la page", + "grid": "Grille", + "linkedGrid": "Grille liée", + "linkedKanban": "Kanban lié", + "calendar": "Calendrier", + "linkedCalendar": "Calendrier lié", + "quote": "Citation", + "divider": "Diviseur", + "table": "Tableau", + "mathEquation": "Équation mathématique", + "emoji": "Émoji", + "aiWriter": "Rédacteur IA", + "dateOrReminder": "Date ou rappel", + "photoGallery": "Galerie de photos", + "file": "Fichier" } }, "selectionMenu": { @@ -959,6 +1496,7 @@ "smartEditCouldNotFetchResult": "Impossible de récupérer le résultat d'AI", "smartEditCouldNotFetchKey": "Impossible de récupérer la clé AI", "smartEditDisabled": "Connectez AI dans les paramètres", + "appflowyAIEditDisabled": "Connectez-vous pour activer les fonctionnalités de l'IA", "discardResponse": "Voulez-vous supprimer les réponses de l'IA ?", "createInlineMathEquation": "Créer une équation", "fonts": "Polices", @@ -1019,7 +1557,27 @@ "image": { "addAnImage": "Ajouter une image", "copiedToPasteBoard": "Le lien de l'image a été copié dans le presse-papiers", - "imageUploadFailed": "Téléchargement de l'image échoué" + "addAnImageDesktop": "Ajouter une image", + "addAnImageMobile": "Cliquez pour ajouter une ou plusieurs images", + "dropImageToInsert": "Déposez les images à insérer", + "imageUploadFailed": "Téléchargement de l'image échoué", + "imageDownloadFailed": "Le téléchargement de l'image a échoué, veuillez réessayer", + "imageDownloadFailedToken": "Le téléchargement de l'image a échoué en raison d'un jeton d'utilisateur manquant, veuillez réessayer", + "errorCode": "Code erreur" + }, + "photoGallery": { + "name": "Galerie de photos", + "imageGalleryKeyword": "Galerie d'images", + "photoBrowserKeyword": "navigateur de photos", + "galleryKeyword": "galerie", + "addImageTooltip": "Ajouter une image", + "changeLayoutTooltip": "Changer la mise en page", + "browserLayout": "Navigateur", + "gridLayout": "Grille", + "deleteBlockTooltip": "Supprimer toute la galerie" + }, + "math": { + "copiedToPasteBoard": "L'équation mathématique a été copiée dans le presse-papiers" }, "urlPreview": { "copiedToPasteBoard": "Le lien a été copié dans le presse-papier", @@ -1051,7 +1609,33 @@ "newDatabase": "Nouvelle Base de données", "linkToDatabase": "Lien vers la Base de données" }, - "date": "Date" + "date": "Date", + "video": { + "label": "Vidéo", + "emptyLabel": "Ajouter une vidéo", + "placeholder": "Collez le lien vidéo", + "copiedToPasteBoard": "Le lien vidéo a été copié dans le presse-papiers", + "insertVideo": "Ajouter une vidéo", + "invalidVideoUrl": "L'URL source n'est pas encore prise en charge.", + "invalidVideoUrlYouTube": "YouTube n'est pas encore pris en charge.", + "supportedFormats": "Formats pris en charge : MP4, WebM, MOV, AVI, FLV, MPEG/M4V, H.264" + }, + "file": { + "name": "Fichier", + "uploadTab": "Télécharger", + "placeholderText": "Télécharger ou intégrer un fichier", + "placeholderDragging": "Glisser le fichier à télécharger", + "dropFileToUpload": "Glisser le fichier à télécharger", + "fileUploadHint": "Glisser un fichier ici pour le télécharger\nou cliquez pour parcourir", + "networkHint": "Coller un lien de fichier", + "networkUrlInvalid": "URL non valide, veuillez corriger l'URL et réessayer", + "fileTooBigError": "La taille du fichier est trop grande, veuillez télécharger un fichier d'une taille inférieure à 10 Mo", + "renameFile": { + "title": "Renommer le fichier", + "description": "Entrez le nouveau nom pour ce fichier", + "nameEmptyError": "Le nom du fichier ne peut pas être laissé vide." + } + } }, "outlineBlock": { "placeholder": "Table de contenu" @@ -1086,7 +1670,8 @@ "invalidImageSize": "La taille de l'image doit être inférieure à 5 Mo", "invalidImageFormat": "Le format d'image n'est pas pris en charge. Formats pris en charge : JPEG, PNG, GIF, SVG", "invalidImageUrl": "URL d'image non valide", - "noImage": "Aucun fichier ou répertoire de ce nom" + "noImage": "Aucun fichier ou répertoire de ce nom", + "multipleImagesFailed": "Une ou plusieurs images n'ont pas pu être téléchargées, veuillez réessayer" }, "embedLink": { "label": "Lien intégré", @@ -1097,14 +1682,28 @@ }, "searchForAnImage": "Rechercher une image", "pleaseInputYourOpenAIKey": "veuillez saisir votre clé AI dans la page Paramètres", - "pleaseInputYourStabilityAIKey": "veuillez saisir votre clé Stability AI dans la page Paramètres", "saveImageToGallery": "Enregistrer l'image", "failedToAddImageToGallery": "Échec de l'ajout d'une image à la galerie", "successToAddImageToGallery": "Image ajoutée à la galerie avec succès", "unableToLoadImage": "Impossible de charger l'image", "maximumImageSize": "La taille d'image maximale est 10Mo", "uploadImageErrorImageSizeTooBig": "L'image doit faire moins de 10Mo", - "imageIsUploading": "L'image est en cours de téléchargement" + "imageIsUploading": "L'image est en cours de téléchargement", + "openFullScreen": "Ouvrir en plein écran", + "interactiveViewer": { + "toolbar": { + "previousImageTooltip": "Image précédente", + "nextImageTooltip": "Image suivante", + "zoomOutTooltip": "Zoom arrière", + "zoomInTooltip": "Agrandir", + "changeZoomLevelTooltip": "Changer le niveau de zoom", + "openLocalImage": "Ouvrir l'image", + "downloadImage": "Télécharger l'image", + "closeViewer": "Fermer la visionneuse", + "deleteImageTooltip": "Supprimer l'image" + } + }, + "pleaseInputYourStabilityAIKey": "veuillez saisir votre clé Stability AI dans la page Paramètres" }, "codeBlock": { "language": { @@ -1136,14 +1735,21 @@ "tooltip": "Cliquez pour ouvrir la page" }, "deleted": "Supprimer", - "deletedContent": "Ce document n'existe pas ou a été supprimé" + "deletedContent": "Ce document n'existe pas ou a été supprimé", + "noAccess": "Pas d'accès" }, "toolbar": { "resetToDefaultFont": "Réinitialiser aux valeurs par défaut" }, "errorBlock": { "theBlockIsNotSupported": "La version actuelle ne prend pas en charge ce bloc.", + "clickToCopyTheBlockContent": "Cliquez pour copier le contenu du bloc", "blockContentHasBeenCopied": "Le contenu du bloc a été copié." + }, + "mobilePageSelector": { + "title": "Sélectionner une page", + "failedToLoad": "Impossible de charger la liste des pages", + "noPagesFound": "Aucune page trouvée" } }, "board": { @@ -1185,6 +1791,15 @@ "showGroup": "Afficher le groupe", "showGroupContent": "Êtes-vous sûr de vouloir afficher ce groupe sur le tableau ?", "failedToLoad": "Échec du chargement de la vue du tableau" + }, + "dateCondition": { + "today": "Aujourd'hui", + "yesterday": "Hier", + "tomorrow": "Demain", + "lastSevenDays": "7 derniers jours", + "nextSevenDays": "7 prochains jours", + "lastThirtyDays": "30 derniers jours", + "nextThirtyDays": "30 prochains jours" } }, "calendar": { @@ -1195,7 +1810,13 @@ "today": "Aujourd'hui", "jumpToday": "Aller à aujourd'hui", "previousMonth": "Mois précédent", - "nextMonth": "Mois prochain" + "nextMonth": "Mois prochain", + "views": { + "day": "Jour", + "week": "Semaine", + "month": "Mois", + "year": "Année" + } }, "mobileEventScreen": { "emptyTitle": "Pas d'événements", @@ -1208,10 +1829,10 @@ "layoutDateField": "Calendrier de mise en page par", "changeLayoutDateField": "Modifier le champ de mise en page", "noDateTitle": "Pas de date", + "noDateHint": "Les événements non planifiés s'afficheront ici", "unscheduledEventsTitle": "Événements non planifiés", "clickToAdd": "Cliquez pour ajouter au calendrier", - "name": "Disposition du calendrier", - "noDateHint": "Les événements non planifiés s'afficheront ici" + "name": "Disposition du calendrier" }, "referencedCalendarPrefix": "Vue", "quickJumpYear": "Sauter à", @@ -1224,6 +1845,7 @@ }, "search": { "label": "Recherche", + "sidebarSearchIcon": "Rechercher et accéder rapidement à une page", "placeholder": { "actions": "Actions de recherche..." } @@ -1285,6 +1907,7 @@ }, "inlineActions": { "noResults": "Aucun résultat", + "recentPages": "Pages récentes", "pageReference": "Référence de page", "docReference": "Référence de document", "boardReference": "Référence du tableau", @@ -1500,7 +2123,9 @@ }, "favorite": { "noFavorite": "Aucune page favorite", - "noFavoriteHintText": "Faites glisser la page vers la gauche pour l'ajouter à vos favoris" + "noFavoriteHintText": "Faites glisser la page vers la gauche pour l'ajouter à vos favoris", + "removeFromSidebar": "Supprimer de la barre latérale", + "addToSidebar": "Épingler sur la barre latérale" }, "cardDetails": { "notesPlaceholder": "Entrez un / pour insérer un bloc ou commencez à taper" @@ -1553,10 +2178,13 @@ "workplaceIconSubtitle": "Téléchargez une image ou utilisez un emoji pour votre espace de travail. L'icône s'affichera dans votre barre latérale et dans vos notifications", "renameError": "Échec du changement de nom du lieu de travail", "updateIconError": "Échec de la mise à jour de l'icône", + "chooseAnIcon": "Choisissez une icône", "appearance": { "name": "Apparence", "themeMode": { - "auto": "Auto" + "auto": "Auto", + "light": "Claire", + "dark": "Sombre" }, "language": "Langue" } @@ -1567,10 +2195,172 @@ "noNetworkConnected": "Aucun réseau connecté" } }, + "pageStyle": { + "title": "Style de page", + "layout": "Mise en page", + "coverImage": "Image de couverture", + "pageIcon": "Icône de page", + "colors": "Couleurs", + "gradient": "Dégradé", + "backgroundImage": "Image d'arrière-plan", + "presets": "Préréglages", + "pageCover": "Couverture de page", + "none": "Aucun", + "photoPermissionDescription": "Autoriser l'accès à la photothèque pour le téléchargement d'images.", + "openSettings": "Ouvrir les paramètres", + "photoPermissionTitle": "@:appName souhaite accéder à votre photothèque", + "doNotAllow": "Ne pas autoriser" + }, "commandPalette": { "placeholder": "Tapez pour rechercher des vues...", + "recentHistory": "Historique récent", "navigateHint": "naviguer", "loadingTooltip": "Nous recherchons des résultats...", - "betaTooltip": "Nous ne prenons actuellement en charge que la recherche de pages" + "betaLabel": "BÊTA", + "betaTooltip": "Nous ne prenons actuellement en charge que la recherche de pages", + "noResultsHint": "Nous n'avons pas trouvé ce que vous cherchez, essayez avec un autre terme.", + "clearSearchTooltip": "Effacer le champ de recherche" + }, + "space": { + "delete": "Supprimer", + "deleteConfirmation": "Supprimer: ", + "deleteConfirmationDescription": "Toutes les pages de cet espace seront supprimées et déplacées vers la corbeille, et toutes les pages publiées seront dépubliées.", + "rename": "Renommer l'espace", + "changeIcon": "Changer d'icône", + "manage": "Gérer l'espace", + "addNewSpace": "Créer un espace", + "collapseAllSubPages": "Réduire toutes les sous-pages", + "createNewSpace": "Créer un nouvel espace", + "createSpaceDescription": "Créez plusieurs espaces publics et privés pour mieux organiser votre travail.", + "spaceName": "Nom de l'espace", + "spaceNamePlaceholder": "par exemple, marketing, ingénierie, ressources humaines", + "permission": "Autorisation", + "publicPermission": "Publique", + "publicPermissionDescription": "Tous les membres de l'espace de travail avec un accès complet", + "privatePermission": "Privé", + "privatePermissionDescription": "Vous seul pouvez accéder à cet espace", + "spaceIconBackground": "Couleur d'arrière-plan", + "spaceIcon": "Icône", + "dangerZone": "Zone de danger", + "unableToDeleteLastSpace": "Impossible de supprimer le dernier espace", + "unableToDeleteSpaceNotCreatedByYou": "Impossible de supprimer les espaces créés par d'autres", + "enableSpacesForYourWorkspace": "Activer les espaces pour votre espace de travail", + "title": "Espaces", + "defaultSpaceName": "Général", + "upgradeSpaceTitle": "Activer les espaces", + "upgradeSpaceDescription": "Créez plusieurs espaces publics et privés pour mieux organiser votre espace de travail.", + "upgradeYourSpace": "Créer plusieurs espaces", + "quicklySwitch": "Passer rapidement à l’espace suivant", + "duplicate": "dupliquer l'espace ", + "movePageToSpace": "Déplacer la page vers l'espace", + "switchSpace": "Changer d'espace" + }, + "publish": { + "hasNotBeenPublished": "Cette page n'a pas encore été publiée", + "reportPage": "Page de rapport", + "databaseHasNotBeenPublished": "La publication d'une base de données n'est pas encore prise en charge.", + "createdWith": "Créé avec", + "downloadApp": "Télécharger AppFlowy", + "copy": { + "codeBlock": "Le contenu du bloc de code a été copié dans le presse-papiers", + "imageBlock": "Le lien de l'image a été copié dans le presse-papiers", + "mathBlock": "L'équation mathématique a été copiée dans le presse-papiers" + }, + "containsPublishedPage": "Cette page contient une ou plusieurs pages publiées. Si vous continuez, elles ne seront plus publiées. Voulez-vous procéder à la suppression ?", + "publishSuccessfully": "Publié avec succès", + "unpublishSuccessfully": "Dépublié avec succès", + "publishFailed": "Impossible de publier", + "unpublishFailed": "Impossible de dépublier", + "noAccessToVisit": "Pas d'accès à cette page...", + "createWithAppFlowy": "Créer un site Web avec AppFlowy", + "fastWithAI": "Rapide et facile avec l'IA.", + "tryItNow": "Essayez maintenant", + "onlyGridViewCanBePublished": "Seule la vue Grille peut être publiée", + "database": { + "zero": "Publier {} vue sélectionné", + "one": "Publier {} vues sélectionnées", + "many": "Publier {} vues sélectionnées", + "other": "Publier {} vues sélectionnées" + }, + "mustSelectPrimaryDatabase": "La vue principale doit être sélectionnée", + "noDatabaseSelected": "Aucune base de données sélectionnée, veuillez sélectionner au moins une base de données.", + "unableToDeselectPrimaryDatabase": "Impossible de désélectionner la base de données principale", + "saveThisPage": "Sauvegarder cette page", + "duplicateTitle": "Où souhaitez-vous ajouter", + "selectWorkspace": "Sélectionnez un espace de travail", + "addTo": "Ajouter à", + "duplicateSuccessfully": "Dupliqué avec succès. Vous souhaitez consulter les documents ?", + "duplicateSuccessfullyDescription": "Vous n'avez pas l'application ? Le téléchargement commencera automatiquement après avoir cliqué sur « Télécharger ».", + "downloadIt": "Télécharger", + "openApp": "Ouvrir dans l'application", + "duplicateFailed": "Duplication échouée", + "membersCount": { + "zero": "Aucun membre", + "one": "1 membre", + "many": "{count} membres", + "other": "{count} membres" + } + }, + "web": { + "continue": "Continuer", + "or": "ou", + "continueWithGoogle": "Continuer avec Google", + "continueWithGithub": "Continuer avec GitHub", + "continueWithDiscord": "Continuer avec Discord", + "and": "et", + "termOfUse": "Termes", + "privacyPolicy": "politique de confidentialité", + "signInError": "Erreur de connexion", + "login": "Inscrivez-vous ou connectez-vous" + }, + "globalComment": { + "comments": "Commentaires", + "addComment": "Ajouter un commentaire", + "reactedBy": "réagi par", + "addReaction": "Ajouter une réaction", + "reactedByMore": "et {count} autres", + "showSeconds": { + "one": "Il y a 1 seconde", + "other": "Il y a {count} secondes", + "zero": "Tout à l' heure", + "many": "Il y a {count} secondes" + }, + "showMinutes": { + "one": "Il y a 1 minute", + "other": "Il y a {count} minutes", + "many": "Il y a {count} minutes" + }, + "showHours": { + "one": "il y a 1 heure", + "other": "Il y a {count} heures", + "many": "Il y a {count} heures" + }, + "showDays": { + "one": "Il y a 1 jour", + "other": "Il y a {count} jours", + "many": "Il y a {count} jours" + }, + "showMonths": { + "one": "Il y a 1 mois", + "other": "Il y a {count} mois", + "many": "Il y a {count} mois" + }, + "showYears": { + "one": "Il y a 1 an", + "other": "Il y a {count} ans", + "many": "Il y a {count} ans" + }, + "reply": "Répondre", + "deleteComment": "Supprimer le commentaire", + "youAreNotOwner": "Vous n'êtes pas le propriétaire de ce commentaire", + "confirmDeleteDescription": "Etes-vous sûr de vouloir supprimer ce commentaire ?", + "hasBeenDeleted": "Supprimé", + "replyingTo": "En réponse à", + "noAccessDeleteComment": "Vous n'êtes pas autorisé à supprimer ce commentaire", + "collapse": "Réduire", + "readMore": "En savoir plus", + "failedToAddComment": "Problème lors de l'ajout du commentaire", + "commentAddedSuccessfully": "Commentaire ajouté avec succès.", + "commentAddedSuccessTip": "Vous venez d'ajouter ou de répondre à un commentaire. Souhaitez-vous passer en haut de la page pour voir les derniers commentaires ?" } } \ No newline at end of file From a78752d42726140ed33ff226e2a5e355cf68810a Mon Sep 17 00:00:00 2001 From: Francisco Di Marzo Borghi Date: Wed, 21 Aug 2024 22:36:26 -0300 Subject: [PATCH 5/7] fix: removed Wayland Header (#5991) * fix: sync AppImage recipe linux version with release * fix: don't draw custom header on Wayland sessions * chore(AppImage): reset `app_info.version` --- .../appflowy_flutter/linux/my_application.cc | 33 +------------------ .../appimage/AppImageBuilder.yml | 22 ++++++------- 2 files changed, 12 insertions(+), 43 deletions(-) diff --git a/frontend/appflowy_flutter/linux/my_application.cc b/frontend/appflowy_flutter/linux/my_application.cc index 25b07c8d9cd19..2a3a02cac477d 100644 --- a/frontend/appflowy_flutter/linux/my_application.cc +++ b/frontend/appflowy_flutter/linux/my_application.cc @@ -28,38 +28,7 @@ static void my_application_activate(GApplication *application) GtkWindow *window = GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); - - // Use a header bar when running in GNOME as this is the common style used - // by applications and is the setup most users will be using (e.g. Ubuntu - // desktop). - // If running on X and not using GNOME then just use a traditional title bar - // in case the window manager does more exotic layout, e.g. tiling. - // If running on Wayland assume the header bar will work (may need changing - // if future cases occur). - gboolean use_header_bar = TRUE; -#ifdef GDK_WINDOWING_X11 - GdkScreen *screen = gtk_window_get_screen(window); - if (GDK_IS_X11_SCREEN(screen)) - { - const gchar *wm_name = gdk_x11_screen_get_window_manager_name(screen); - if (g_strcmp0(wm_name, "GNOME Shell") != 0) - { - use_header_bar = FALSE; - } - } -#endif - if (use_header_bar) - { - GtkHeaderBar *header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); - gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "AppFlowy"); - gtk_header_bar_set_show_close_button(header_bar, TRUE); - gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); - } - else - { - gtk_window_set_title(window, "AppFlowy"); - } + gtk_window_set_title(window, "AppFlowy"); gtk_window_set_default_size(window, 1280, 720); gtk_widget_show(GTK_WIDGET(window)); diff --git a/frontend/scripts/linux_distribution/appimage/AppImageBuilder.yml b/frontend/scripts/linux_distribution/appimage/AppImageBuilder.yml index cd8103df9eb12..d361b8d3acc76 100644 --- a/frontend/scripts/linux_distribution/appimage/AppImageBuilder.yml +++ b/frontend/scripts/linux_distribution/appimage/AppImageBuilder.yml @@ -22,20 +22,20 @@ AppDir: - amd64 allow_unauthenticated: true sources: - - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy main restricted - - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy-updates main restricted - - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy universe - - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy-updates universe - - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy multiverse - - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy-updates multiverse + - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ noble main restricted + - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ noble-updates main restricted + - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ noble universe + - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ noble-updates universe + - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ noble multiverse + - sourceline: deb http://id.archive.ubuntu.com/ubuntu/ noble-updates multiverse - sourceline: - deb http://id.archive.ubuntu.com/ubuntu/ jammy-backports main restricted + deb http://id.archive.ubuntu.com/ubuntu/ noble-backports main restricted universe multiverse - - sourceline: deb http://security.ubuntu.com/ubuntu jammy-security main restricted - - sourceline: deb http://security.ubuntu.com/ubuntu jammy-security universe - - sourceline: deb http://security.ubuntu.com/ubuntu jammy-security multiverse + - sourceline: deb http://security.ubuntu.com/ubuntu noble-security main restricted + - sourceline: deb http://security.ubuntu.com/ubuntu noble-security universe + - sourceline: deb http://security.ubuntu.com/ubuntu noble-security multiverse - sourceline: - deb https://ppa.launchpadcontent.net/touchegg/stable/ubuntu/ jammy + deb https://ppa.launchpadcontent.net/touchegg/stable/ubuntu/ noble main - sourceline: deb https://packagecloud.io/slacktechnologies/slack/debian/ jessie From 190e3bedda51fc0501e07024eae201fdef6e2edb Mon Sep 17 00:00:00 2001 From: "Lucas.Xu" Date: Thu, 22 Aug 2024 11:14:01 +0800 Subject: [PATCH 6/7] chore: update member exceeded hint text (#6034) * chore: update member exceeded hint text * fix: disable ai writer widget on mobile --- .../setting/workspace/invite_members_screen.dart | 10 +++++++--- .../openai/widgets/auto_completion_node_widget.dart | 4 ++++ frontend/resources/translations/en.json | 1 + 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/setting/workspace/invite_members_screen.dart b/frontend/appflowy_flutter/lib/mobile/presentation/setting/workspace/invite_members_screen.dart index 1aa088d963b31..b9658d670ca3e 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/setting/workspace/invite_members_screen.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/setting/workspace/invite_members_screen.dart @@ -134,7 +134,8 @@ class _InviteMemberPageState extends State<_InviteMemberPage> { const VSpace(16), if (exceededLimit) ...[ FlowyText.regular( - LocaleKeys.settings_appearance_members_inviteFailedMemberLimit.tr(), + LocaleKeys.settings_appearance_members_inviteFailedMemberLimitMobile + .tr(), fontSize: 14.0, maxLines: 3, color: Theme.of(context).colorScheme.error, @@ -205,7 +206,9 @@ class _InviteMemberPageState extends State<_InviteMemberPage> { (f) { Log.error('add workspace member failed: $f'); final message = f.code == ErrorCode.WorkspaceMemberLimitExceeded - ? LocaleKeys.settings_appearance_members_memberLimitExceeded.tr() + ? LocaleKeys + .settings_appearance_members_inviteFailedMemberLimitMobile + .tr() : LocaleKeys.settings_appearance_members_failedToAddMember.tr(); setState(() { exceededLimit = f.code == ErrorCode.WorkspaceMemberLimitExceeded; @@ -229,7 +232,8 @@ class _InviteMemberPageState extends State<_InviteMemberPage> { (f) { Log.error('invite workspace member failed: $f'); final message = f.code == ErrorCode.WorkspaceMemberLimitExceeded - ? LocaleKeys.settings_appearance_members_inviteFailedMemberLimit + ? LocaleKeys + .settings_appearance_members_inviteFailedMemberLimitMobile .tr() : LocaleKeys.settings_appearance_members_failedToInviteMember .tr(); diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart index 1484d330b978a..f33d4b5342995 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart @@ -137,6 +137,10 @@ class _AutoCompletionBlockComponentState @override Widget build(BuildContext context) { + if (PlatformExtension.isMobile) { + return const SizedBox.shrink(); + } + return Card( elevation: 5, color: Theme.of(context).colorScheme.surface, diff --git a/frontend/resources/translations/en.json b/frontend/resources/translations/en.json index dfd9602ed598a..b85d1c2656131 100644 --- a/frontend/resources/translations/en.json +++ b/frontend/resources/translations/en.json @@ -1109,6 +1109,7 @@ }, "inviteFailedDialogTitle": "Failed to send invite", "inviteFailedMemberLimit": "Member limit has been reached, please upgrade to invite more members.", + "inviteFailedMemberLimitMobile": "Your workspace has reached the member limit. Upgrade on Desktop to unlock more features.", "memberLimitExceeded": "Member limit reached, to invite more members, please ", "memberLimitExceededUpgrade": "upgrade", "memberLimitExceededPro": "Member limit reached, if you require more members contact ", From c371c6cd63d5b0d01e5c0afcd6203af029c497ed Mon Sep 17 00:00:00 2001 From: "Lucas.Xu" Date: Thu, 22 Aug 2024 11:38:50 +0800 Subject: [PATCH 7/7] fix: ai writer generate button color (#6035) * fix: ai writer generate button color * fix: replace ai writer button with outlined rounded button --- .../widgets/auto_completion_node_widget.dart | 54 ++++++++++++------- .../menu/sidebar/space/shared_widget.dart | 42 +++------------ .../workspace/_sidebar_workspace_actions.dart | 22 ++++---- .../shared/single_setting_action.dart | 4 ++ .../lib/style_widget/button.dart | 3 +- .../style_widget/primary_rounded_button.dart | 43 +++++++++++++++ 6 files changed, 102 insertions(+), 66 deletions(-) diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart index f33d4b5342995..63735fe3b67d0 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/openai/widgets/auto_completion_node_widget.dart @@ -140,9 +140,12 @@ class _AutoCompletionBlockComponentState if (PlatformExtension.isMobile) { return const SizedBox.shrink(); } - - return Card( + + final child = Card( elevation: 5, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), color: Theme.of(context).colorScheme.surface, child: Container( margin: const EdgeInsets.all(10), @@ -169,6 +172,11 @@ class _AutoCompletionBlockComponentState ), ), ); + + return Padding( + padding: const EdgeInsets.only(left: 40), + child: child, + ); } Widget _buildInputWidget(BuildContext context) { @@ -474,16 +482,23 @@ class AutoCompletionInputFooter extends StatelessWidget { return Row( mainAxisSize: MainAxisSize.min, children: [ - FlowyTextButton.primary( + PrimaryRoundedButton( text: LocaleKeys.button_generate.tr(), - context: context, - onPressed: onGenerate, + margin: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 10.0, + ), + radius: 8.0, + onTap: onGenerate, ), const Space(10, 0), - FlowyTextButton.secondary( + OutlinedRoundedButton( text: LocaleKeys.button_cancel.tr(), - context: context, - onPressed: onExit, + margin: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 10.0, + ), + onTap: onExit, ), Flexible( child: Container( @@ -517,22 +532,23 @@ class AutoCompletionFooter extends StatelessWidget { Widget build(BuildContext context) { return Row( children: [ - FlowyTextButton.primary( - context: context, + PrimaryRoundedButton( text: LocaleKeys.button_keep.tr(), - onPressed: onKeep, + margin: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 9.0, + ), + onTap: onKeep, ), - const Space(10, 0), - FlowyTextButton.secondary( - context: context, + const HSpace(10), + OutlinedRoundedButton( text: LocaleKeys.document_plugins_autoGeneratorRewrite.tr(), - onPressed: onRewrite, + onTap: onRewrite, ), - const Space(10, 0), - FlowyTextButton.secondary( - context: context, + const HSpace(10), + OutlinedRoundedButton( text: LocaleKeys.button_discard.tr(), - onPressed: onDiscard, + onTap: onDiscard, ), ], ); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/space/shared_widget.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/space/shared_widget.dart index 992647bc086e1..bfe836ba46ba3 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/space/shared_widget.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/space/shared_widget.dart @@ -185,22 +185,9 @@ class SpaceCancelOrConfirmButton extends StatelessWidget { return Row( mainAxisAlignment: MainAxisAlignment.end, children: [ - DecoratedBox( - decoration: ShapeDecoration( - shape: RoundedRectangleBorder( - side: const BorderSide(color: Color(0x1E14171B)), - borderRadius: BorderRadius.circular(8), - ), - ), - child: FlowyButton( - useIntrinsicWidth: true, - margin: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 9.0), - text: FlowyText.regular( - LocaleKeys.button_cancel.tr(), - lineHeight: 1.0, - ), - onTap: onCancel, - ), + OutlinedRoundedButton( + text: LocaleKeys.button_cancel.tr(), + onTap: onCancel, ), const HSpace(12.0), DecoratedBox( @@ -244,24 +231,11 @@ class SpaceOkButton extends StatelessWidget { return Row( mainAxisAlignment: MainAxisAlignment.end, children: [ - DecoratedBox( - decoration: ShapeDecoration( - color: confirmButtonColor ?? Theme.of(context).colorScheme.primary, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8), - ), - ), - child: FlowyButton( - useIntrinsicWidth: true, - margin: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 9.0), - radius: BorderRadius.circular(8), - text: FlowyText.regular( - confirmButtonName, - lineHeight: 1.0, - color: Colors.white, - ), - onTap: onConfirm, - ), + PrimaryRoundedButton( + text: confirmButtonName, + margin: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 9.0), + radius: 8.0, + onTap: onConfirm, ), ], ); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/_sidebar_workspace_actions.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/_sidebar_workspace_actions.dart index 5aaae7eec4750..fa2893535af2b 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/_sidebar_workspace_actions.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/_sidebar_workspace_actions.dart @@ -133,17 +133,17 @@ class _WorkspaceMoreActionWrapper extends CustomActionCell { }, ).show(context); case WorkspaceMoreAction.leave: - await showDialog( + await showConfirmDialog( context: context, - builder: (_) => NavigatorOkCancelDialog( - message: LocaleKeys.workspace_leaveCurrentWorkspacePrompt.tr(), - onOkPressed: () { - workspaceBloc.add( - UserWorkspaceEvent.leaveWorkspace(workspace.workspaceId), - ); - }, - okTitle: LocaleKeys.button_yes.tr(), - ), + title: LocaleKeys.workspace_leaveCurrentWorkspace.tr(), + description: + LocaleKeys.workspace_leaveCurrentWorkspacePrompt.tr(), + confirmLabel: LocaleKeys.button_yes.tr(), + onConfirm: () { + workspaceBloc.add( + UserWorkspaceEvent.leaveWorkspace(workspace.workspaceId), + ); + }, ); } }, @@ -175,7 +175,7 @@ class _WorkspaceMoreActionWrapper extends CustomActionCell { case WorkspaceMoreAction.leave: return FlowySvg( FlowySvgs.logout_s, - color: Theme.of(context).colorScheme.error, + color: onHover ? Theme.of(context).colorScheme.error : null, ); case WorkspaceMoreAction.divider: return const SizedBox.shrink(); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/shared/single_setting_action.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/shared/single_setting_action.dart index 95fd067265712..bc48db3e9fea0 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/shared/single_setting_action.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/shared/single_setting_action.dart @@ -128,6 +128,10 @@ class SingleSettingAction extends StatelessWidget { } Color? hoverColor(BuildContext context) { + if (buttonType.isDangerous) { + return Theme.of(context).colorScheme.error.withOpacity(0.1); + } + if (buttonType.isPrimary) { return Theme.of(context).colorScheme.primary.withOpacity(0.9); } diff --git a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/button.dart b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/button.dart index be69e143759a4..3b9ba094300bc 100644 --- a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/button.dart +++ b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/button.dart @@ -263,8 +263,7 @@ class FlowyButton extends StatelessWidget { (Platform.isIOS || Platform.isAndroid) ? BoxDecoration( border: Border.all( - color: borderColor ?? - Theme.of(context).colorScheme.outline, + color: borderColor ?? Theme.of(context).colorScheme.outline, width: 1.0, ), borderRadius: radius, diff --git a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/primary_rounded_button.dart b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/primary_rounded_button.dart index 4593ee1d22ba7..af76b2cd6abac 100644 --- a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/primary_rounded_button.dart +++ b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/primary_rounded_button.dart @@ -54,3 +54,46 @@ class PrimaryRoundedButton extends StatelessWidget { ); } } + +class OutlinedRoundedButton extends StatelessWidget { + const OutlinedRoundedButton({ + super.key, + required this.text, + this.onTap, + this.margin, + this.radius, + }); + + final String text; + final VoidCallback? onTap; + final EdgeInsets? margin; + final double? radius; + + @override + Widget build(BuildContext context) { + return DecoratedBox( + decoration: ShapeDecoration( + shape: RoundedRectangleBorder( + side: Theme.of(context).brightness == Brightness.light + ? const BorderSide(color: Color(0x1E14171B)) + : const BorderSide(color: Colors.white10), + borderRadius: BorderRadius.circular(radius ?? 8), + ), + ), + child: FlowyButton( + useIntrinsicWidth: true, + margin: margin ?? + const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 9.0, + ), + radius: BorderRadius.circular(radius ?? 8), + text: FlowyText.regular( + text, + lineHeight: 1.0, + ), + onTap: onTap, + ), + ); + } +}