diff --git a/packages/client/public/locales/az/Files.json b/packages/client/public/locales/az/Files.json index 63eea95758..8e0acd6f2f 100644 --- a/packages/client/public/locales/az/Files.json +++ b/packages/client/public/locales/az/Files.json @@ -4,8 +4,8 @@ "Archives": "Arxivlər", "BackToParentFolderButton": "Ana qovluğa qayıt", "ByAuthor": "Müəllif", - "ByCreationDate": "Yaradıldı", - "ByLastModifiedDate": "Dəyişdirilib", + "ByCreation": "Yaradıldı", + "ByLastModified": "Dəyişdirilib", "ByTitle": "Başlıq", "CommonEmptyContainerDescription": "'Ümumi' bölməsi portal inzibatçısı tərəfindən bütün istifadəçilərlə paylaşılan faylları ehtiva edir. Orada yalnız portal inzibatçıları fayl yarada bilər. İstifadəçilərə bölmə daxilində müəyyən bir qovluğa tam giriş verilə bilər. Bu şəkildə bu qovluqda fayllar yarada/yükləyə biləcəklər.", "ContainsSpecCharacter": "Başlıqda aşağıdakı simvollardan heç biri ola bilməz: *+: \"<>? |/ ", diff --git a/packages/client/public/locales/bg/Files.json b/packages/client/public/locales/bg/Files.json index 01644afac2..426029df3c 100644 --- a/packages/client/public/locales/bg/Files.json +++ b/packages/client/public/locales/bg/Files.json @@ -4,8 +4,8 @@ "Archives": "Архиви", "BackToParentFolderButton": "Обратно към родителската папка", "ByAuthor": "Автор", - "ByCreationDate": "Създаден", - "ByLastModifiedDate": "Модифициран", + "ByCreation": "Създаден", + "ByLastModified": "Модифициран", "ByTitle": "Заглавие", "CommonEmptyContainerDescription": "Разделът 'Често срещани' съдържа файлове, които са споделени с всички потребители от администратора на портала. Само администраторите на портала могат да създават файлове там. Потребителите могат да се сдобият с Пълен достъп до определена папка в рамките на раздела. По този начин те ще могат да създават/качват файлове във всяка папка.", "ContainsSpecCharacter": "Заглавието не може да съдържа някой от следните символи: *+:\"<>?|/", diff --git a/packages/client/public/locales/cs/Files.json b/packages/client/public/locales/cs/Files.json index 6fe0f2e54e..cfb55385ad 100644 --- a/packages/client/public/locales/cs/Files.json +++ b/packages/client/public/locales/cs/Files.json @@ -4,8 +4,8 @@ "Archives": "Archivy", "BackToParentFolderButton": "Zpět do nadřazené složky", "ByAuthor": "Autor", - "ByCreationDate": "Vytvořeno", - "ByLastModifiedDate": "Upraveno", + "ByCreation": "Vytvořeno", + "ByLastModified": "Upraveno", "ByTitle": "Název", "CommonEmptyContainerDescription": "Sekce 'Sdílené' obsahuje soubory, které správce portálu sdílí se všemi uživateli. Soubory v ní mohou vytvářet pouze správci portálu. Uživatelům lze v rámci sekce udělit plný přístup k určité složce. Tímto způsobem budou moci vytvářet/nahrávat soubory právě v této složce. ", "ContainsSpecCharacter": "Název nesmí obsahovat žádný z následujících znaků: *+:\"<>?|/", diff --git a/packages/client/public/locales/de/Files.json b/packages/client/public/locales/de/Files.json index 6854169cca..563e009710 100644 --- a/packages/client/public/locales/de/Files.json +++ b/packages/client/public/locales/de/Files.json @@ -4,8 +4,8 @@ "Archives": "Archive", "BackToParentFolderButton": "Zurück zum übergeordneten Ordner", "ByAuthor": "Verfasser", - "ByCreationDate": "Erstellt", - "ByLastModifiedDate": "Verändert", + "ByCreation": "Erstellt", + "ByLastModified": "Verändert", "ByTitle": "Titel", "CommonEmptyContainerDescription": "In gemeinsamen Dokumenten finden Sie Dateien, auf denen alle Benutzer Zugriff haben. Nur Portaladministratoren können dort Dateien erstellen. Benutzern kann der vollständigen Zugriff auf einen bestimmten Ordner innerhalb des Abschnitts erteilt werden. Dann können Sie Dateien in diesem Ordner erstellen / hochladen.", "ContainsSpecCharacter": "Der Titel darf diese Symbole nicht beinhalten: *+:\"<>?|/", diff --git a/packages/client/public/locales/el-GR/Files.json b/packages/client/public/locales/el-GR/Files.json index 952410d9f1..b999b20642 100644 --- a/packages/client/public/locales/el-GR/Files.json +++ b/packages/client/public/locales/el-GR/Files.json @@ -4,8 +4,8 @@ "Archives": "Αρχειοθετήσεις", "BackToParentFolderButton": "Επιστροφή στον γονικό φάκελο", "ByAuthor": "Δημιουργός", - "ByCreationDate": "Δημιουργήθηκε", - "ByLastModifiedDate": "Τροποποιήθηκε", + "ByCreation": "Δημιουργήθηκε", + "ByLastModified": "Τροποποιήθηκε", "ByTitle": "Τίτλος", "CommonEmptyContainerDescription": "Η ενότητα «Κοινά» περιέχει αρχεία που μοιράζονται σε όλους τους χρήστες από τον διαχειριστή της πύλης. Μόνο οι διαχειριστές της πύλης μπορούν να δημιουργήσουν αρχεία εκεί. Οι χρήστες μπορούν να έχουν πλήρη πρόσβαση σε έναν συγκεκριμένο φάκελο εντός της ενότητας. Έτσι, θα μπορούν να δημιουργούν/μεταφορτώνουν αρχεία σε αυτόν τον φάκελο.", "ContainsSpecCharacter": "Ο τίτλος δεν μπορεί να περιέχει τους ακόλουθους χαρακτήρες: *+:\"<>?|/", diff --git a/packages/client/public/locales/en/Files.json b/packages/client/public/locales/en/Files.json index 432c8cbcb8..77d58b2666 100644 --- a/packages/client/public/locales/en/Files.json +++ b/packages/client/public/locales/en/Files.json @@ -1,12 +1,12 @@ { - "AdvancedFilter": "Advanced search options", + "AdvancedFilter": "Search options", "All": "All", "AllFiles": "All files", "Archives": "Archives", "BackToParentFolderButton": "Back to parent folder", "ByAuthor": "Author", - "ByCreationDate": "Created", - "ByLastModifiedDate": "Modified", + "ByCreation": "Created", + "ByLastModified": "Modified", "ByOwner": "Owner", "ByTitle": "Title", "CollaborationRooms": "Collaboration", @@ -24,7 +24,9 @@ "EmptyFolderHeader": "No files in this folder", "EmptyRecycleBin": "Empty Trash", "EmptyScreenFolder": "No docs here yet", + "ExcludeSubfolders": "Exclude subfolders", "FavoritesEmptyContainerDescription": "To mark files as favorites or remove them from this list, use the context menu.", + "FileContents": "File contents", "FileRemoved": "File moved to Trash", "FileRenamed": "The document '{{oldTitle}}' is renamed to '{{newTitle}}'", "FillingFormRooms": "Filling form", @@ -33,6 +35,7 @@ "Folder": "Folder", "FolderRemoved": "Folder moved to Trash", "FolderRenamed": "The folder '{{folderTitle}}' is renamed to '{{newFoldedTitle}}'", + "Forms": "Forms", "FromArchive": "Move from archive", "GoToMyButton": "Go to My Documents", "Images": "Images", @@ -40,6 +43,7 @@ "MarkAsFavorite": "Mark as favorite", "MarkRead": "Mark as read", "MarkedAsFavorite": "Added to favorites", + "FormsTemplates": "Forms templates", "Media": "Media", "MoveItem": "{{title}} moved", "MoveItems": "{{qty}} elements have been moved", @@ -74,6 +78,7 @@ "ReviewRooms": "Review", "RoomRemoved": "Room removed", "RoomsRemoved": "Rooms removed", + "SearchByContent": "Search by file contents", "SendByEmail": "Send by email", "Share": "Share", "SharedEmptyContainerDescription": "The 'Shared with Me' section shows files shared to you by teammates. If you haven't seen the latest changes, they are marked as new. You can remove the files from the list using the context menu. ", @@ -93,5 +98,6 @@ "VersionHistory": "Version history", "ViewList": "List", "ViewOnlyRooms": "View-only", - "ViewTiles": "Tiles" + "ViewTiles": "Tiles", + "WithSubfolders": "With subfolders" } diff --git a/packages/client/public/locales/es/Files.json b/packages/client/public/locales/es/Files.json index 15293b1ef1..b7d54a8b79 100644 --- a/packages/client/public/locales/es/Files.json +++ b/packages/client/public/locales/es/Files.json @@ -4,8 +4,8 @@ "Archives": "Archivos", "BackToParentFolderButton": "Volver a la carpeta principal", "ByAuthor": "Autor", - "ByCreationDate": "Creado", - "ByLastModifiedDate": "Modificado", + "ByCreation": "Creado", + "ByLastModified": "Modificado", "ByTitle": "Título", "CommonEmptyContainerDescription": "La sección 'Documentos comunes' contiene archivos compartidos por el administrador del portal con todos los usuarios. Sólo los administradores del portal pueden crear archivos allí. Los usuarios pueden tener acceso completo a una determinada carpeta dentro de la sección. De esta manera podrán crear/subir archivos en esta misma carpeta. ", "ContainsSpecCharacter": "El título no puede contener ninguno de los siguientes caracteres: *+:\"<>?|/", diff --git a/packages/client/public/locales/fi/Files.json b/packages/client/public/locales/fi/Files.json index be75c55a8e..b43252b0c3 100644 --- a/packages/client/public/locales/fi/Files.json +++ b/packages/client/public/locales/fi/Files.json @@ -4,8 +4,8 @@ "Archives": "Arkistot", "BackToParentFolderButton": "Takaisin pääkansioon", "ByAuthor": "Tekijä", - "ByCreationDate": "Luotu", - "ByLastModifiedDate": "Muokattu", + "ByCreation": "Luotu", + "ByLastModified": "Muokattu", "ByTitle": "Otsikko", "CommonEmptyContainerDescription": "’Yleinen’ -osio sisältää tiedostoja, jotka portaalin ylläpitäjä on jakanut kaikille käyttäjille. Vain portaalin ylläpitäjät voivat luoda tiedostoja sinne. Käyttäjille voidaan myöntää täysi käyttöoikeus tiettyyn osion kansioon. Tällä tavalla he voivat luoda/ladata tiedostoja juuri tähän kansioon. ", "ContainsSpecCharacter": "Otsikko ei voi sisältää mitään seuraavista merkeistä: *+: \"<>? |/", diff --git a/packages/client/public/locales/fr/Files.json b/packages/client/public/locales/fr/Files.json index 8b2c0fa571..37e490f0f9 100644 --- a/packages/client/public/locales/fr/Files.json +++ b/packages/client/public/locales/fr/Files.json @@ -4,8 +4,8 @@ "Archives": "Archives", "BackToParentFolderButton": "Retour vers le dossier précédent", "ByAuthor": "Auteur", - "ByCreationDate": "Créé", - "ByLastModifiedDate": "Modifié", + "ByCreation": "Créé", + "ByLastModified": "Modifié", "ByTitle": "Titre", "CommonEmptyContainerDescription": "La section \"Documents Communs\" contient des fichiers partagés par l'administrateur du portail avec tous les utilisateurs. Seuls les administrateurs du portail peuvent y créer des fichiers. Les utilisateurs peuvent obtenir un accès complet à un certain dossier de la section. Ainsi, ils pourront créer/télécharger des fichiers dans ce même dossier. ", "ContainsSpecCharacter": "Le titre ne peut contenir aucun des caractères suivants : *+ :\"<>?|/", diff --git a/packages/client/public/locales/hy-AM/Files.json b/packages/client/public/locales/hy-AM/Files.json index 4d71aeb6f4..ae5dd764da 100644 --- a/packages/client/public/locales/hy-AM/Files.json +++ b/packages/client/public/locales/hy-AM/Files.json @@ -4,8 +4,8 @@ "Archives": "Արխիվներ", "BackToParentFolderButton": "Վերադառնալ ծնող պանակ", "ByAuthor": "Հեղինակ", - "ByCreationDate": "Ստեղծված", - "ByLastModifiedDate": "Փոփոխված", + "ByCreation": "Ստեղծված", + "ByLastModified": "Փոփոխված", "ByTitle": "Անվանում", "CommonEmptyContainerDescription": "'Ընդհանուր'բաժինը պարունակում է ֆայլեր, որոնք կայքէջի ադմինիստրատորի կողմից համօգտագործվում են բոլոր օգտատերերին: Միայն կայքէջի ադմինիստրատորները կարող են այնտեղ ֆայլեր ստեղծել։ Օգտագործողներին կարող է տրվել ամբողջական մուտք դեպի որոշակի պանակ այս բաժնում: Այս կերպ նրանք կկարողանան ստեղծել/վերբեռնել ֆայլեր հենց այս պանակում:", "ContainsSpecCharacter": "Վերնագիրը չի կարող պարունակել հետևյալ նիշերից որևէ մեկը՝ *+:\"<>?|/", diff --git a/packages/client/public/locales/it/Files.json b/packages/client/public/locales/it/Files.json index e88a09bf28..30eb8d44b7 100644 --- a/packages/client/public/locales/it/Files.json +++ b/packages/client/public/locales/it/Files.json @@ -4,8 +4,8 @@ "Archives": "Archivi", "BackToParentFolderButton": "Vai alla cartella superiore", "ByAuthor": "Autore", - "ByCreationDate": "Creato", - "ByLastModifiedDate": "Modificato", + "ByCreation": "Creato", + "ByLastModified": "Modificato", "ByTitle": "Titolo", "CommonEmptyContainerDescription": "La sezione \"Comune\" contiene i file condivisi con tutti gli utenti di tipo amministratore del portale. Solo gli amministratori del portale possono creare file nel posto \"Comune\". Agli utenti può essere concesso l'accesso completo a una determinata cartella all'interno della sezione. In questo modo potranno creare / caricare file in questa stessa cartella.", "ContainsSpecCharacter": "Il titolo non può contenere nessuno dei seguenti caratteri: *+:\"<>?|/", diff --git a/packages/client/public/locales/ja-JP/Files.json b/packages/client/public/locales/ja-JP/Files.json index 291906533f..f655117d36 100644 --- a/packages/client/public/locales/ja-JP/Files.json +++ b/packages/client/public/locales/ja-JP/Files.json @@ -4,8 +4,8 @@ "Archives": "アーカイブ", "BackToParentFolderButton": "親フォルダに戻る", "ByAuthor": "作成者", - "ByCreationDate": "作成", - "ByLastModifiedDate": "変更", + "ByCreation": "作成", + "ByLastModified": "変更", "ByTitle": "タイトル", "CommonEmptyContainerDescription": "「共通」セクションには、ポータル管理者が全ユーザに共有するファイルがあります。ここにファイルを作成できるのは、ポータル管理者のみです。ユーザーは、セクション内の特定のフォルダへのフルアクセスを許可することができます。この場合、ユーザーは、このフォルダにファイルを作成/アップロードすることができます。 ", "ContainsSpecCharacter": "タイトルには以下の文字*+:\"<>?|/は使用できません。", diff --git a/packages/client/public/locales/ko-KR/Files.json b/packages/client/public/locales/ko-KR/Files.json index b974b5ff8d..a6bdd3618f 100644 --- a/packages/client/public/locales/ko-KR/Files.json +++ b/packages/client/public/locales/ko-KR/Files.json @@ -4,8 +4,8 @@ "Archives": "아카이브", "BackToParentFolderButton": "상위 폴더로 돌아가기", "ByAuthor": "생성자", - "ByCreationDate": "생성일", - "ByLastModifiedDate": "수정일", + "ByCreation": "생성일", + "ByLastModified": "수정일", "ByTitle": "제목", "CommonEmptyContainerDescription": "'공통' 섹션은 포털 관리자에 의해 모든 사용자에게 공유된 파일을 포함합니다. 포털 관리자만 공통 섹션에 파일을 생성할 수 있습니다. 사용자는 해당 섹션 내 특정 폴더에 대한 전체 액세스 권한을 부여 받을 수 있습니다. 그리고 이러한 방식으로 해당 폴더에 파일을 생성/업로드할 수 있습니다.", "ContainsSpecCharacter": "제목에는 다음 문자가 포함될 수 없습니다: *+:\"<>?|/", diff --git a/packages/client/public/locales/lo-LA/Files.json b/packages/client/public/locales/lo-LA/Files.json index acb3ec5681..41f250d713 100644 --- a/packages/client/public/locales/lo-LA/Files.json +++ b/packages/client/public/locales/lo-LA/Files.json @@ -4,8 +4,8 @@ "Archives": "ຮວບຮວມ", "BackToParentFolderButton": "ກັບໄປທີ່ແຟ້ມຫຼັກ", "ByAuthor": "ຜູ້ຂຽນ", - "ByCreationDate": "ສ້າງ", - "ByLastModifiedDate": "ແກ້ໄຂ", + "ByCreation": "ສ້າງ", + "ByLastModified": "ແກ້ໄຂ", "ByTitle": "ຫົວຂໍ້", "CommonEmptyContainerDescription": "ສ່ວນ common 'ມີເອກະສານທີ່ແບ່ງປັນໃຫ້ຜູ້ຊົມໃຊ້ທັງໝົດ ໂດຍ Portal admin. ມີພຽງແຕ່ Portal ເປັນຜູ້ຮັບຮອງເທົ່ານັ້ນທີ່ສາມາດສ້າງເອກະສານຢູ່ບ່ອນນັ້ນ. ຜູ້ໃຊ້ສາມາດໄດ້ຮັບການອະນຸຍາດເຂົ້າເຖິງໂຟນເດີທີ່ແນ່ນອນພາຍໃນພາກສ່ວນໃດໜື່ງ. ວິທີນີ້ພວກເຂົາຈະສາມາດສ້າງ / ອັບໂຫລດເອກະສານໃນໂຟນເດີນັ້ນໄດ້.", "ContainsSpecCharacter": "ຫົວຂໍ້ບໍ່ສາມາດມີຕົວອັກສອນຕໍ່ໄປນີ້: * +: \"<>? | /", diff --git a/packages/client/public/locales/lv/Files.json b/packages/client/public/locales/lv/Files.json index 90b51a1422..d6673c9018 100644 --- a/packages/client/public/locales/lv/Files.json +++ b/packages/client/public/locales/lv/Files.json @@ -4,8 +4,8 @@ "Archives": "Arhīvi", "BackToParentFolderButton": "Atpakaļ uz vecāku mapi", "ByAuthor": "Autors", - "ByCreationDate": "Izveidots", - "ByLastModifiedDate": "Modificēts", + "ByCreation": "Izveidots", + "ByLastModified": "Modificēts", "ByTitle": "Nosaukums", "CommonEmptyContainerDescription": "Sadaļā 'Kopējs' ir faili, kurus visiem lietotājiem ir kopīgojis portāla administrators. Failus tur var izveidot tikai portāla administratori. Lietotājiem var piešķirt pilnu piekļuvi noteiktai sadaļas mapei. Tādā veidā viņi varēs izveidot/augšupielādēt failus tieši šajā mapē. ", "ContainsSpecCharacter": "Nosaukumā nedrīkst būt neviena no šīm rakstzīmēm: *+:\"<>?|/", diff --git a/packages/client/public/locales/nl/Files.json b/packages/client/public/locales/nl/Files.json index 770104f7b7..925dd897df 100644 --- a/packages/client/public/locales/nl/Files.json +++ b/packages/client/public/locales/nl/Files.json @@ -4,8 +4,8 @@ "Archives": "Archieven", "BackToParentFolderButton": "Terug naar bovenliggende map", "ByAuthor": "Auteur", - "ByCreationDate": "Aangemaakt", - "ByLastModifiedDate": "Gewijzigd", + "ByCreation": "Aangemaakt", + "ByLastModified": "Gewijzigd", "ByTitle": "Titel", "CommonEmptyContainerDescription": "'Algemene' sectie bevat bestanden die door de portaal beheerder worden gedeeld met alle gebruikers. Alleen portaal beheerders kunnen daar bestanden aanmaken. Gebruikers kunnen volledige toegang krijgen tot een bepaalde map binnen de sectie. Op deze manier kunnen ze bestanden maken/uploaden in deze map. ", "ContainsSpecCharacter": "De titel mag geen van de volgende tekens bevatten: *+:\"<>?|/", diff --git a/packages/client/public/locales/pl/Files.json b/packages/client/public/locales/pl/Files.json index dc8c9f4fcc..2eba1ff7da 100644 --- a/packages/client/public/locales/pl/Files.json +++ b/packages/client/public/locales/pl/Files.json @@ -4,8 +4,8 @@ "Archives": "Archiwa", "BackToParentFolderButton": "Wróć do folderu nadrzędnego", "ByAuthor": "Autor", - "ByCreationDate": "Utworzono", - "ByLastModifiedDate": "Zmodyfikowano", + "ByCreation": "Utworzono", + "ByLastModified": "Zmodyfikowano", "ByTitle": "Tytuł", "CommonEmptyContainerDescription": "Sekcja 'Wspólne' zawiera pliki udostępnione wszystkim użytkownikom przez administratora portalu. Tylko on może tworzyć w niej nowe pliki. Użytkownicy mogą uzyskać pełen dostęp do pewnych folderów znajdujących się w tej sekcji. Dzięki temu będą w stanie tworzyć/wgrywać w nich dowolne pliki. ", "ContainsSpecCharacter": "Tytuł nie może zawierać następujących znaków: *+:\"<>?|/", diff --git a/packages/client/public/locales/pt-BR/Files.json b/packages/client/public/locales/pt-BR/Files.json index d299be80d2..be1be6d21e 100644 --- a/packages/client/public/locales/pt-BR/Files.json +++ b/packages/client/public/locales/pt-BR/Files.json @@ -4,8 +4,8 @@ "Archives": "Arquivos", "BackToParentFolderButton": "Voltar para pasta principal", "ByAuthor": "Autor", - "ByCreationDate": "Criado", - "ByLastModifiedDate": "Modificado", + "ByCreation": "Criado", + "ByLastModified": "Modificado", "ByTitle": "Titulo", "CommonEmptyContainerDescription": "A seção 'Comum' contém arquivos compartilhados a todos os usuários pelo administrador do portal. Somente os administradores do portal podem criar arquivos lá. Os usuários podem ter acesso total a uma determinada pasta dentro da seção. Desta forma, eles poderão criar/enviar arquivos nesta mesma pasta.", "ContainsSpecCharacter": "O título não pode conter nenhum dos seguintes caracteres: *+:\"<>?|/", diff --git a/packages/client/public/locales/pt/Files.json b/packages/client/public/locales/pt/Files.json index 377816bc7e..27fe513ff1 100644 --- a/packages/client/public/locales/pt/Files.json +++ b/packages/client/public/locales/pt/Files.json @@ -4,8 +4,8 @@ "Archives": "Arquivos", "BackToParentFolderButton": "Voltar à pasta principal", "ByAuthor": "Autor", - "ByCreationDate": "Criado", - "ByLastModifiedDate": "Modificado", + "ByCreation": "Criado", + "ByLastModified": "Modificado", "ByTitle": "Titulo", "CommonEmptyContainerDescription": "A secção 'Comum' contém ficheiro partilhados a todos os utilizadores pelo administrador do portal. Apenas os administradores do portal podem criar lá ficheiros. Os utilizadores podem ter acesso total a uma determinada pasta dentro da secção. Desta forma, eles poderão criar/enviar ficheiros nesta mesma pasta.", "ContainsSpecCharacter": "O título não pode conter nenhum dos seguintes caracteres: *+:\"<>?|/", diff --git a/packages/client/public/locales/ro/Files.json b/packages/client/public/locales/ro/Files.json index 81c582328c..6ea8e02aa1 100644 --- a/packages/client/public/locales/ro/Files.json +++ b/packages/client/public/locales/ro/Files.json @@ -4,8 +4,8 @@ "Archives": "Arhive", "BackToParentFolderButton": "Revenire la folderul părinte", "ByAuthor": "Autor", - "ByCreationDate": "A fost creat la", - "ByLastModifiedDate": "Modificat", + "ByCreation": "A fost creat la", + "ByLastModified": "Modificat", "ByTitle": "Titlu", "CommonEmptyContainerDescription": "Secțiunea Comune conține fișiere partajate cu alți utilizatori de către administratorul portalului. Numai administratorii portalului pot crea fișiere acolo. Utilizatorii pot primi acces complet la un anumit dosar din secțiunea. În acest mod, utilizatorii pot crea/încărca fișiere în acest dosar.", "ContainsSpecCharacter": "Numele nu poate conține niciun din caractere următoare: *+:\"<>?|/ ", diff --git a/packages/client/public/locales/ru/Files.json b/packages/client/public/locales/ru/Files.json index 7099f797c2..3bf851de65 100644 --- a/packages/client/public/locales/ru/Files.json +++ b/packages/client/public/locales/ru/Files.json @@ -4,8 +4,8 @@ "Archives": "Архивы", "BackToParentFolderButton": "Вернуться в папку на уровень выше", "ByAuthor": "Автор", - "ByCreationDate": "Создан", - "ByLastModifiedDate": "Изменен", + "ByCreation": "Создан", + "ByLastModified": "Изменен", "ByTitle": "Название", "CollaborationRooms": "Совместное редактирование", "CommonEmptyContainerDescription": "В разделе «Общие документы» отображаются все документы, которыми администратор портала предоставил общий доступ. Только администраторы портала могут создавать папки в этом разделе, но с предоставленным доступом пользователи портала также могут загружать свои файлы здесь. Перетащите файлы со своего компьютера сюда, чтобы загрузить их на свой портал еще проще.", diff --git a/packages/client/public/locales/sk/Files.json b/packages/client/public/locales/sk/Files.json index 2101731075..bedfcf2218 100644 --- a/packages/client/public/locales/sk/Files.json +++ b/packages/client/public/locales/sk/Files.json @@ -4,8 +4,8 @@ "Archives": "Archívy", "BackToParentFolderButton": "Späť do nadradeného priečinka", "ByAuthor": "Autor", - "ByCreationDate": "Vytvorené", - "ByLastModifiedDate": "Upravené", + "ByCreation": "Vytvorené", + "ByLastModified": "Upravené", "ByTitle": "Názov", "CommonEmptyContainerDescription": "Sekcia 'Spoločné' obsahuje súbory zdieľané všetkým používateľom správcom portálu. Súbory tam môžu vytvárať iba správcovia portálu. Používateľom môže byť udelený úplný prístup k určitému priečinku v rámci sekcie. Týmto spôsobom budú môcť vytvárať/nahrávať súbory práve do tohto priečinka.", "ContainsSpecCharacter": "Názov nemôže obsahovať žiadne z nasledujúcich znakov: *+:\"<>?|/", diff --git a/packages/client/public/locales/sl/Files.json b/packages/client/public/locales/sl/Files.json index b9b5f52d93..8287df60cd 100644 --- a/packages/client/public/locales/sl/Files.json +++ b/packages/client/public/locales/sl/Files.json @@ -4,8 +4,8 @@ "Archives": "Arhivi", "BackToParentFolderButton": "Nazaj na starševsko mapo", "ByAuthor": "Avtor", - "ByCreationDate": "Ustvarjeno", - "ByLastModifiedDate": "Popravljeno", + "ByCreation": "Ustvarjeno", + "ByLastModified": "Popravljeno", "ByTitle": "Naslov", "CommonEmptyContainerDescription": "'Skupen' razdelek vsebuje datoteke, ki jih skrbnik portala deli z vsemi uporabniki. Samo skrbniki portala lahko tam ustvarjajo datoteke. Uporabniki lahko dobijo popoln dostop do določene mape v razdelku. Tako bodo lahko ustvarili/naložili datoteke ravno v tej mapi. ", "ContainsSpecCharacter": "Naslov ne sme vsebovati nobenega od naslednjih znakov: *+:\"<>?|/", diff --git a/packages/client/public/locales/tr/Files.json b/packages/client/public/locales/tr/Files.json index 8a4dd4fb1d..34d9c5fe5f 100644 --- a/packages/client/public/locales/tr/Files.json +++ b/packages/client/public/locales/tr/Files.json @@ -4,8 +4,8 @@ "Archives": "Arşivler", "BackToParentFolderButton": "Üst klasöre geri dön", "ByAuthor": "Yazar", - "ByCreationDate": "Oluşturuldu", - "ByLastModifiedDate": "Değiştirilmiş", + "ByCreation": "Oluşturuldu", + "ByLastModified": "Değiştirilmiş", "ByTitle": "Başlık", "CommonEmptyContainerDescription": "'Ortak' bölüm, portal yöneticisi tarafından tüm kullanıcılarla paylaşılan dosyaları içerir. Burada yalnızca portal yöneticileri dosya oluşturabilir. Bu bölüm içinde kullanıcılara belirli bir klasöre Tam erişim verilebilir. Bu şekilde, bu klasörde dosya oluşturabilecek/yükleyebileceklerdir.", "ContainsSpecCharacter": "Başlık şu karakterlerden herhangi birini içeremez:: *+:\"<>?|/", diff --git a/packages/client/public/locales/uk-UA/Files.json b/packages/client/public/locales/uk-UA/Files.json index 0687897c45..ed3be21db7 100644 --- a/packages/client/public/locales/uk-UA/Files.json +++ b/packages/client/public/locales/uk-UA/Files.json @@ -4,8 +4,8 @@ "Archives": "Архіви", "BackToParentFolderButton": "Назад до батьківської папки", "ByAuthor": "Автор", - "ByCreationDate": "Створено", - "ByLastModifiedDate": "Змінено", + "ByCreation": "Створено", + "ByLastModified": "Змінено", "ByTitle": "Заголовок", "CommonEmptyContainerDescription": "Розділ \"Загальне\" містить файли, до яких адміністратор порталу надав доступ усім користувачам. Тільки адміністратори порталу можуть створювати тут файли. Користувачам може бути наданий повний доступ до певної папки в розділі. Це дозволить їм створювати файли в цій папці та передавати їх до неї.", "ContainsSpecCharacter": "Заголовок не може містити жодного з цих символів: *+:\"<>?|/", diff --git a/packages/client/public/locales/vi/Files.json b/packages/client/public/locales/vi/Files.json index c57c8271e0..5330947d23 100644 --- a/packages/client/public/locales/vi/Files.json +++ b/packages/client/public/locales/vi/Files.json @@ -4,8 +4,8 @@ "Archives": "Lưu trữ", "BackToParentFolderButton": "Quay lại thư mục gốc", "ByAuthor": "Tác giả", - "ByCreationDate": "Đã tạo", - "ByLastModifiedDate": "Đã sửa đổi", + "ByCreation": "Đã tạo", + "ByLastModified": "Đã sửa đổi", "ByTitle": "Tiêu đề", "CommonEmptyContainerDescription": "Phần Chung chứa các tệp được quản trị viên cổng thông tin chia sẻ cho tất cả người dùng. Chỉ quản trị viên cổng thông tin mới có thể tạo ệp ở đó. Người dùng có thể được cấp toàn quyền truy cập vào một thư mục nhất định trong phần này. Bằng cách này họ sẽ có thể tạo/tải lên các tệp trong chính thư mục này.", "ContainsSpecCharacter": "Tiêu đề không được chứa bất kỳ ký tự nào sau đây: *+:\"<>?|/", diff --git a/packages/client/public/locales/zh-CN/Files.json b/packages/client/public/locales/zh-CN/Files.json index 95abb9da46..42db798bf1 100644 --- a/packages/client/public/locales/zh-CN/Files.json +++ b/packages/client/public/locales/zh-CN/Files.json @@ -4,8 +4,8 @@ "Archives": "归档", "BackToParentFolderButton": "返回父文件夹", "ByAuthor": "作者", - "ByCreationDate": "创建日期", - "ByLastModifiedDate": "修改日期", + "ByCreation": "创建日期", + "ByLastModified": "修改日期", "ByTitle": "标题", "CommonEmptyContainerDescription": "'Common'部分包含由门户管理员分享给所有用户的文件。仅门户管理员可在此处创建文件。用户将被授予该部分中特定文件夹的完整访问权限。这样其就能在该文件夹中创建/上传文件了。", "ContainsSpecCharacter": "标题中不得包含任意以下字符:*+:\"<>?|/", diff --git a/packages/client/src/HOCs/withHotkeys.js b/packages/client/src/HOCs/withHotkeys.js index d33350f8c6..af057fd04f 100644 --- a/packages/client/src/HOCs/withHotkeys.js +++ b/packages/client/src/HOCs/withHotkeys.js @@ -1,7 +1,7 @@ import React, { useEffect } from "react"; import { useHotkeys } from "react-hotkeys-hook"; import { observer, inject } from "mobx-react"; -import { Events } from "@docspace/client/src/helpers/filesConstants"; +import { Events } from "@docspace/common/constants"; import toastr from "@docspace/components/toast/toastr"; import throttle from "lodash/throttle"; diff --git a/packages/client/src/components/Article/MainButton/index.js b/packages/client/src/components/Article/MainButton/index.js index 752e4843e3..c17ccad13e 100644 --- a/packages/client/src/components/Article/MainButton/index.js +++ b/packages/client/src/components/Article/MainButton/index.js @@ -14,7 +14,7 @@ import MobileView from "./MobileView"; import { combineUrl } from "@docspace/common/utils"; import config from "PACKAGE_FILE"; import withLoader from "../../../HOCs/withLoader"; -import { Events } from "@docspace/client/src/helpers/filesConstants"; +import { Events } from "@docspace/common/constants"; import { getMainButtonItems } from "SRC_DIR/helpers/plugins"; import toastr from "@docspace/components/toast/toastr"; diff --git a/packages/client/src/components/EmptyContainer/index.js b/packages/client/src/components/EmptyContainer/index.js index 3d852f696d..406fc283c1 100644 --- a/packages/client/src/components/EmptyContainer/index.js +++ b/packages/client/src/components/EmptyContainer/index.js @@ -5,7 +5,7 @@ import EmptyFilterContainer from "./EmptyFilterContainer"; import EmptyFolderContainer from "./EmptyFolderContainer"; import { FileAction } from "@docspace/common/constants"; import { isMobile } from "react-device-detect"; -import { Events } from "@docspace/client/src/helpers/filesConstants"; +import { Events } from "@docspace/common/constants"; const linkStyles = { isHovered: true, diff --git a/packages/client/src/components/GlobalEvents/index.js b/packages/client/src/components/GlobalEvents/index.js index fa1933a9db..a54cbe24cd 100644 --- a/packages/client/src/components/GlobalEvents/index.js +++ b/packages/client/src/components/GlobalEvents/index.js @@ -1,7 +1,7 @@ import React, { useState, useEffect, useCallback, memo } from "react"; import { FileAction } from "@docspace/common/constants"; -import { Events } from "@docspace/client/src/helpers/filesConstants"; +import { Events } from "@docspace/common/constants"; import CreateEvent from "./CreateEvent"; import RenameEvent from "./RenameEvent"; diff --git a/packages/client/src/helpers/constants.js b/packages/client/src/helpers/constants.js index 3f28d88ec9..f17faed70e 100644 --- a/packages/client/src/helpers/constants.js +++ b/packages/client/src/helpers/constants.js @@ -51,6 +51,16 @@ export const CategoryType = Object.freeze({ Trash: 7, }); +/** + * Enum for table columns version + * @readonly + */ +export const TableVersions = Object.freeze({ + Files: "2", + Rooms: "1", + Accounts: "2", +}); + export const BINDING_POST = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"; export const BINDING_REDIRECT = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"; diff --git a/packages/client/src/helpers/filesConstants.js b/packages/client/src/helpers/filesConstants.js index ba00c037e4..e2b38d1dba 100644 --- a/packages/client/src/helpers/filesConstants.js +++ b/packages/client/src/helpers/filesConstants.js @@ -11,17 +11,11 @@ export const thumbnailStatuses = { export const ADS_TIMEOUT = 300000; // 5 min -export const Events = Object.freeze({ - CREATE: "create", - RENAME: "rename", - ROOM_CREATE: "create_room", - ROOM_EDIT: "edit_room", -}); - export const FilterGroups = Object.freeze({ filterType: "filter-filterType", filterAuthor: "filter-author", filterFolders: "filter-folders", + filterContent: "filter-withContent", roomFilterType: "filter-type", roomFilterOwner: "filter-owner", roomFilterTags: "filter-tags", diff --git a/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableContainer.js b/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableContainer.js index c23756d4de..5717a8742d 100644 --- a/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableContainer.js +++ b/packages/client/src/pages/AccountsHome/Section/Body/TableView/TableContainer.js @@ -11,10 +11,10 @@ import EmptyScreen from "../EmptyScreen"; import TableRow from "./TableRow"; import TableHeader from "./TableHeader"; import { Base } from "@docspace/components/themes"; +import { TableVersions } from "SRC_DIR/helpers/constants"; -const TABLE_VERSION = "2"; -const COLUMNS_SIZE = `peopleColumnsSize_ver-${TABLE_VERSION}`; -const INFO_PANEL_COLUMNS_SIZE = `infoPanelPeopleColumnsSize_ver-${TABLE_VERSION}`; +const COLUMNS_SIZE = `peopleColumnsSize_ver-${TableVersions.Accounts}`; +const INFO_PANEL_COLUMNS_SIZE = `infoPanelPeopleColumnsSize_ver-${TableVersions.Accounts}`; const marginCss = css` margin-top: -1px; diff --git a/packages/client/src/pages/AccountsHome/Section/Filter/index.js b/packages/client/src/pages/AccountsHome/Section/Filter/index.js index 8888f0fb18..12bf635134 100644 --- a/packages/client/src/pages/AccountsHome/Section/Filter/index.js +++ b/packages/client/src/pages/AccountsHome/Section/Filter/index.js @@ -320,6 +320,11 @@ const SectionFilterContent = ({ fetchPeople(newFilter).finally(() => setIsLoading(false)); }; + const clearAll = () => { + setIsLoading(true); + fetchPeople().finally(() => setIsLoading(false)); + }; + return isLoaded && tReady ? ( ) : ( diff --git a/packages/client/src/pages/Home/InfoPanel/Body/GalleryItem.js b/packages/client/src/pages/Home/InfoPanel/Body/GalleryItem.js index 6f504a9b29..b68f082cdd 100644 --- a/packages/client/src/pages/Home/InfoPanel/Body/GalleryItem.js +++ b/packages/client/src/pages/Home/InfoPanel/Body/GalleryItem.js @@ -56,9 +56,7 @@ const SingleItem = (props) => {
- - {t("Files:ByLastModifiedDate")} - + {t("Files:ByLastModified")} {parseAndFormatDate(selectedItem.attributes.updatedAt)} diff --git a/packages/client/src/pages/Home/InfoPanel/Body/SingleItem.js b/packages/client/src/pages/Home/InfoPanel/Body/SingleItem.js index 99336e58ce..58631cd9cf 100644 --- a/packages/client/src/pages/Home/InfoPanel/Body/SingleItem.js +++ b/packages/client/src/pages/Home/InfoPanel/Body/SingleItem.js @@ -106,6 +106,8 @@ const SingleItem = (props) => { case FileType.Presentation: return t("Home:Presentation"); case FileType.Document: + case FileType.OForm: + case FileType.OFormTemplate: return t("Home:Document"); default: return t("Home:Folder"); @@ -147,8 +149,8 @@ const SingleItem = (props) => { content: styledText(itemSize), }, { - id: "ByLastModifiedDate", - title: t("Files:ByLastModifiedDate"), + id: "ByLastModified", + title: t("Files:ByLastModified"), content: styledText(parseAndFormatDate(item.updated)), }, { @@ -162,8 +164,8 @@ const SingleItem = (props) => { ), }, { - id: "ByCreationDate", - title: t("Files:ByCreationDate"), + id: "ByCreation", + title: t("Files:ByCreation"), content: styledText(parseAndFormatDate(item.created)), }, ]; diff --git a/packages/client/src/pages/Home/Section/Body/TableView/TableContainer.js b/packages/client/src/pages/Home/Section/Body/TableView/TableContainer.js index 8539a6d2a9..e50e69630d 100644 --- a/packages/client/src/pages/Home/Section/Body/TableView/TableContainer.js +++ b/packages/client/src/pages/Home/Section/Body/TableView/TableContainer.js @@ -8,6 +8,7 @@ import TableBody from "@docspace/components/table-container/TableBody"; import { isMobile } from "react-device-detect"; import styled, { css } from "styled-components"; import { Base } from "@docspace/components/themes"; +import { TableVersions } from "SRC_DIR/helpers/constants"; const marginCss = css` margin-top: -1px; @@ -98,15 +99,13 @@ const StyledTableContainer = styled(TableContainer)` StyledTableContainer.defaultProps = { theme: Base }; -const TABLE_VERSION = "2"; -const TABLE_COLUMNS = `filesTableColumns_ver-${TABLE_VERSION}`; -const COLUMNS_SIZE = `filesColumnsSize_ver-${TABLE_VERSION}`; -const COLUMNS_SIZE_INFO_PANEL = `filesColumnsSizeInfoPanel_ver-${TABLE_VERSION}`; +const TABLE_COLUMNS = `filesTableColumns_ver-${TableVersions.Files}`; +const COLUMNS_SIZE = `filesColumnsSize_ver-${TableVersions.Files}`; +const COLUMNS_SIZE_INFO_PANEL = `filesColumnsSizeInfoPanel_ver-${TableVersions.Files}`; -const TABLE_ROOMS_VERSION = "1"; -const TABLE_ROOMS_COLUMNS = `roomsTableColumns_ver-${TABLE_ROOMS_VERSION}`; -const COLUMNS_ROOMS_SIZE = `roomsColumnsSize_ver-${TABLE_ROOMS_VERSION}`; -const COLUMNS_ROOMS_SIZE_INFO_PANEL = `roomsColumnsSizeInfoPanel_ver-${TABLE_ROOMS_VERSION}`; +const TABLE_ROOMS_COLUMNS = `roomsTableColumns_ver-${TableVersions.Rooms}`; +const COLUMNS_ROOMS_SIZE = `roomsColumnsSize_ver-${TableVersions.Rooms}`; +const COLUMNS_ROOMS_SIZE_INFO_PANEL = `roomsColumnsSizeInfoPanel_ver-${TableVersions.Rooms}`; const Table = ({ filesList, diff --git a/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js b/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js index 7e296add5f..847d212456 100644 --- a/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js +++ b/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js @@ -2,6 +2,9 @@ import React from "react"; import TableHeader from "@docspace/components/table-container/TableHeader"; import { inject, observer } from "mobx-react"; import { withTranslation } from "react-i18next"; +import { Events } from "@docspace/common/constants"; + +const WITH_AUTHOR = "withAuthorColumn"; class FilesTableHeader extends React.Component { constructor(props) { @@ -13,9 +16,16 @@ class FilesTableHeader extends React.Component { } getTableColumns = (fromUpdate = false) => { - const { t, personal, tableStorageName, isRooms } = this.props; + const { + t, + personal, + tableStorageName, + isRooms, + isPersonalRoom, + } = this.props; const defaultColumns = []; + if (isRooms) { const columns = [ { @@ -57,7 +67,7 @@ class FilesTableHeader extends React.Component { }, { key: "Activity", - title: t("ByLastModifiedDate"), + title: t("ByLastModified"), enable: true, resizable: true, sortBy: "DateAndTime", @@ -68,6 +78,22 @@ class FilesTableHeader extends React.Component { defaultColumns.push(...columns); } else { + const authorOption = { + key: "Author", + title: t("ByAuthor"), + enable: false, + resizable: true, + sortBy: "Author", + + isDisabled: isPersonalRoom, + onClick: this.onFilter, + onChange: this.onColumnChange, + }; + + if (isPersonalRoom) { + authorOption.defaultSize = 0; + } + const columns = [ { key: "Name", @@ -79,18 +105,10 @@ class FilesTableHeader extends React.Component { minWidth: 210, onClick: this.onFilter, }, - { - key: "Author", - title: t("ByAuthor"), - enable: false, - resizable: true, - sortBy: "Author", - onClick: this.onFilter, - onChange: this.onColumnChange, - }, + authorOption, { key: "Created", - title: t("ByCreationDate"), + title: t("ByCreation"), enable: true, resizable: true, sortBy: "DateAndTimeCreation", @@ -99,7 +117,7 @@ class FilesTableHeader extends React.Component { }, { key: "Modified", - title: t("ByLastModifiedDate"), + title: t("ByLastModified"), enable: true, resizable: true, sortBy: "DateAndTime", @@ -151,12 +169,14 @@ class FilesTableHeader extends React.Component { columns: columns, resetColumnsSize: resetColumnsSize, isRooms: isRooms, + isPersonalRoom: isPersonalRoom, }); } else { this.state = { columns: columns, resetColumnsSize: resetColumnsSize, isRooms: isRooms, + isPersonalRoom: isPersonalRoom, }; } }; @@ -198,6 +218,10 @@ class FilesTableHeader extends React.Component { return this.getTableColumns(true); } + if (this.props.isPersonalRoom !== this.state.isPersonalRoom) { + return this.getTableColumns(true); + } + const { columns } = this.state; if (this.props.withContent !== prevProps.withContent) { const columnIndex = columns.findIndex((c) => c.key === "Share"); @@ -220,6 +244,8 @@ class FilesTableHeader extends React.Component { this.customScrollElm.removeEventListener("scroll", this.onBeginScroll); } getColumns = (defaultColumns, splitColumns) => { + const { isPersonalRoom, isRooms } = this.props; + const columns = []; if (splitColumns) { @@ -227,6 +253,22 @@ class FilesTableHeader extends React.Component { const column = splitColumns.find((key) => key === col.key); column ? (col.enable = true) : (col.enable = false); + if (!isRooms) { + if (column === "Author" && isPersonalRoom) { + col.enable = false; + } + + if (col.key === "Author" && !isPersonalRoom) { + if (!col.enable) { + const withAuthor = localStorage.getItem(WITH_AUTHOR); + + if (withAuthor === "true") { + col.enable = true; + } + } + } + } + columns.push(col); } return columns; @@ -246,6 +288,14 @@ class FilesTableHeader extends React.Component { const tableColumns = columns.map((c) => c.enable && c.key); this.setTableColumns(tableColumns); + + if (key === "Author") { + localStorage.setItem(WITH_AUTHOR, columns[columnIndex].enable); + } + + const event = new Event(Events.CHANGE_COLUMN); + + window.dispatchEvent(event); }; onFilter = (sortBy) => { @@ -361,7 +411,11 @@ export default inject( roomsFilter, fetchRooms, } = filesStore; - const { isPrivacyFolder, isRecentFolder } = treeFoldersStore; + const { + isPrivacyFolder, + isRecentFolder, + isPersonalRoom, + } = treeFoldersStore; const withContent = canShare || (canShare && isPrivacyFolder && isDesktop); const sortingVisible = !isRecentFolder; @@ -386,6 +440,8 @@ export default inject( infoPanelVisible, withPaging, + + isPersonalRoom, }; } )( diff --git a/packages/client/src/pages/Home/Section/Body/TableView/sub-components/TypeCell.js b/packages/client/src/pages/Home/Section/Body/TableView/sub-components/TypeCell.js index 1959312feb..580b0637b9 100644 --- a/packages/client/src/pages/Home/Section/Body/TableView/sub-components/TypeCell.js +++ b/packages/client/src/pages/Home/Section/Body/TableView/sub-components/TypeCell.js @@ -21,6 +21,8 @@ const TypeCell = ({ t, item, sideColor }) => { case FileType.Presentation: return t("Presentation"); case FileType.Document: + case FileType.OForm: + case FileType.OFormTemplate: return t("Document"); default: diff --git a/packages/client/src/pages/Home/Section/Filter/index.js b/packages/client/src/pages/Home/Section/Filter/index.js index 5fa9e4e3b4..ba4ab4037c 100644 --- a/packages/client/src/pages/Home/Section/Filter/index.js +++ b/packages/client/src/pages/Home/Section/Filter/index.js @@ -19,6 +19,7 @@ import { withLayoutSize } from "@docspace/common/utils"; import { getDefaultRoomName } from "@docspace/client/src/helpers/filesUtils"; import withLoader from "../../../../HOCs/withLoader"; +import { TableVersions } from "SRC_DIR/helpers/constants"; const getFilterType = (filterValues) => { const filterType = result( @@ -87,16 +88,16 @@ const getOwner = (filterValues) => { // return filterFolders ? filterFolders : null; // }; -// const getFilterContent = (filterValues) => { -// const filterContent = result( -// find(filterValues, (value) => { -// return value.group === FilterGroups.roomFilterContent; -// }), -// "key" -// ); +const getFilterContent = (filterValues) => { + const filterContent = result( + find(filterValues, (value) => { + return value.group === FilterGroups.filterContent; + }), + "key" + ); -// return filterContent ? filterContent : null; -// }; + return filterContent ? filterContent : null; +}; const getTags = (filterValues) => { const filterTags = filterValues.find( @@ -108,6 +109,14 @@ const getTags = (filterValues) => { return tags; }; +const TABLE_COLUMNS = `filesTableColumns_ver-${TableVersions.Files}`; + +const COLUMNS_SIZE_INFO_PANEL = `filesColumnsSizeInfoPanel_ver-${TableVersions.Files}`; + +const TABLE_ROOMS_COLUMNS = `roomsTableColumns_ver-${TableVersions.Rooms}`; + +const COLUMNS_ROOMS_SIZE_INFO_PANEL = `roomsColumnsSizeInfoPanel_ver-${TableVersions.Rooms}`; + const SectionFilterContent = ({ t, filter, @@ -127,6 +136,7 @@ const SectionFilterContent = ({ infoPanelVisible, isRooms, userId, + isPersonalRoom, setCurrentRoomsFilter, }) => { const onFilter = React.useCallback( @@ -181,18 +191,24 @@ const SectionFilterContent = ({ ); } else { const filterType = getFilterType(data) || null; + const authorType = !!getAuthorType(data) ? getAuthorType(data).includes("user_") ? getAuthorType(data) : `user_${getAuthorType(data)}` : null; const withSubfolders = getSearchParams(data); + const withContent = getFilterContent(data); const newFilter = filter.clone(); newFilter.page = 0; + newFilter.filterType = filterType; + newFilter.authorType = authorType; - newFilter.withSubfolders = withSubfolders; + newFilter.withSubfolders = + withSubfolders === FilterKeys.excludeSubfolders ? "false" : "true"; + newFilter.searchInContent = withContent === "true" ? "true" : null; setIsLoading(true); @@ -296,7 +312,13 @@ const SectionFilterContent = ({ ); const getSelectedInputValue = React.useCallback(() => { - return isRooms ? roomsFilter.filterValue : filter.search; + return isRooms + ? roomsFilter.filterValue + ? roomsFilter.filterValue + : "" + : filter.search + ? filter.search + : ""; }, [isRooms, roomsFilter.filterValue, filter.search]); const getSelectedSortData = React.useCallback(() => { @@ -386,10 +408,26 @@ const SectionFilterContent = ({ }); } } else { + if (filter.withSubfolders === "false") { + filterValues.push({ + key: FilterKeys.excludeSubfolders, + label: t("ExcludeSubfolders"), + group: FilterGroups.filterFolders, + }); + } + + if (filter.searchInContent) { + filterValues.push({ + key: "true", + label: t("FileContents"), + group: FilterGroups.filterContent, + }); + } + if (filter.filterType) { let label = ""; - switch (filter.filterType) { + switch (filter.filterType.toString()) { case FilterType.DocumentsOnly.toString(): label = t("Common:Documents"); break; @@ -414,11 +452,17 @@ const SectionFilterContent = ({ case FilterType.FilesOnly.toString(): label = t("AllFiles"); break; + case FilterType.OFormTemplateOnly.toString(): + label = t("FormsTemplates"); + break; + case FilterType.OFormOnly.toString(): + label = t("Forms"); + break; } filterValues.push({ key: `${filter.filterType}`, - label: label, + label: label.toLowerCase(), group: FilterGroups.filterType, }); } @@ -431,14 +475,6 @@ const SectionFilterContent = ({ label: user.displayName, }); } - - if (filter.withSubfolders === "false") { - filterValues.push({ - key: filter.withSubfolders, - label: "Exclude subfolders", - group: FilterGroups.filterFolders, - }); - } } return filterValues; @@ -446,6 +482,7 @@ const SectionFilterContent = ({ filter.withSubfolders, filter.authorType, filter.filterType, + filter.searchInContent, roomsFilter.type, roomsFilter.subjectId, roomsFilter.tags, @@ -465,18 +502,7 @@ const SectionFilterContent = ({ { key: FilterType.FoldersOnly.toString(), group: FilterGroups.filterType, - label: t("Translations:Folders"), - }, - ] - : ""; - - const allFiles = - !isFavoritesFolder && !isRecentFolder - ? [ - { - key: FilterType.FilesOnly.toString(), - group: FilterGroups.filterType, - label: t("AllFiles"), + label: t("Translations:Folders").toLowerCase(), }, ] : ""; @@ -486,7 +512,7 @@ const SectionFilterContent = ({ { key: FilterType.ImagesOnly.toString(), group: FilterGroups.filterType, - label: t("Images"), + label: t("Images").toLowerCase(), }, ] : ""; @@ -496,7 +522,7 @@ const SectionFilterContent = ({ { key: FilterType.ArchiveOnly.toString(), group: FilterGroups.filterType, - label: t("Archives"), + label: t("Archives").toLowerCase(), }, ] : ""; @@ -506,7 +532,7 @@ const SectionFilterContent = ({ { key: FilterType.MediaOnly.toString(), group: FilterGroups.filterType, - label: t("Media"), + label: t("Media").toLowerCase(), }, ] : ""; @@ -551,27 +577,38 @@ const SectionFilterContent = ({ group: FilterGroups.filterType, label: t("Common:Type"), isHeader: true, - }, - { - key: FilterType.DocumentsOnly.toString(), - group: FilterGroups.filterType, - label: t("Common:Documents"), + isLast: true, }, ...folders, { - key: FilterType.SpreadsheetsOnly.toString(), + key: FilterType.DocumentsOnly.toString(), group: FilterGroups.filterType, - label: t("Translations:Spreadsheets"), + label: t("Common:Documents").toLowerCase(), }, - ...archives, { key: FilterType.PresentationsOnly.toString(), group: FilterGroups.filterType, - label: t("Translations:Presentations"), + label: t("Translations:Presentations").toLowerCase(), }, + { + key: FilterType.SpreadsheetsOnly.toString(), + group: FilterGroups.filterType, + label: t("Translations:Spreadsheets").toLowerCase(), + }, + { + key: FilterType.OFormTemplateOnly.toString(), + group: FilterGroups.filterType, + label: t("FormsTemplates").toLowerCase(), + }, + { + key: FilterType.OFormOnly.toString(), + group: FilterGroups.filterType, + label: t("Forms").toLowerCase(), + }, + ...archives, + ...images, ...media, - ...allFiles, ]; const ownerOptions = [ @@ -580,6 +617,7 @@ const SectionFilterContent = ({ group: FilterGroups.roomFilterOwner, label: t("Common:Owner"), isHeader: true, + withMultiItems: true, }, { key: FilterKeys.me, @@ -672,7 +710,49 @@ const SectionFilterContent = ({ filterOptions.push(...tagsOptions); } } else { - if (!personal) { + if (!isRecentFolder && !isFavoritesFolder) { + const foldersOptions = [ + { + key: FilterGroups.filterFolders, + group: FilterGroups.filterFolders, + label: t("Common:Search"), + isHeader: true, + withoutSeparator: true, + }, + { + key: "folders", + group: FilterGroups.filterFolders, + label: "", + withOptions: true, + options: [ + { key: FilterKeys.withSubfolders, label: t("WithSubfolders") }, + { + key: FilterKeys.excludeSubfolders, + label: t("ExcludeSubfolders"), + }, + ], + }, + ]; + + const contentOptions = [ + { + key: FilterGroups.filterContent, + group: FilterGroups.filterContent, + isHeader: true, + withoutHeader: true, + }, + { + key: "true", + group: FilterGroups.filterContent, + label: t("SearchByContent"), + isCheckbox: true, + }, + ]; + filterOptions.push(...foldersOptions); + filterOptions.push(...contentOptions); + } + + if (!isPersonalRoom) { filterOptions.push( { key: FilterGroups.filterAuthor, @@ -690,29 +770,10 @@ const SectionFilterContent = ({ } filterOptions.push(...typeOptions); - - if (!isRecentFolder && !isFavoritesFolder) { - filterOptions.push( - { - key: FilterGroups.filterFolders, - group: FilterGroups.filterFolders, - label: t("Translations:Folders"), - isHeader: true, - withoutHeader: true, - isLast: true, - }, - { - key: "false", - group: FilterGroups.filterFolders, - label: t("NoSubfolders"), - isToggle: true, - } - ); - } } return filterOptions; - }, [isFavoritesFolder, isRecentFolder, isRooms, t, personal]); + }, [isFavoritesFolder, isRecentFolder, isRooms, t, personal, isPersonalRoom]); const getViewSettingsData = React.useCallback(() => { const viewSettings = [ @@ -733,35 +794,132 @@ const SectionFilterContent = ({ }, [createThumbnails]); const getSortData = React.useCallback(() => { - const commonOptions = isRooms - ? [ - { key: "AZ", label: "Name", default: true }, - { key: "roomType", label: t("Common:Type"), default: true }, - { key: "Tags", label: t("Tags"), default: true }, - { key: "Author", label: t("Common:Owner"), default: true }, - { key: "DateAndTime", label: t("ByLastModifiedDate"), default: true }, - ] - : [ - { key: "AZ", label: t("ByTitle"), default: true }, - { key: "Type", label: t("Common:Type"), default: true }, - { key: "Size", label: t("Common:Size"), default: true }, - { - key: "DateAndTimeCreation", - label: t("ByCreationDate"), - default: true, - }, - { key: "DateAndTime", label: t("ByLastModifiedDate"), default: true }, - ]; + const commonOptions = []; - if (!personal && !isRooms) { - commonOptions.splice(1, 0, { - key: "Author", - label: t("ByAuthor"), - default: true, - }); + const name = { key: "AZ", label: t("Common:Name"), default: true }; + const modifiedDate = { + key: "DateAndTime", + label: t("ByLastModified"), + default: true, + }; + + const type = { key: "Type", label: t("Common:Type"), default: true }; + const size = { key: "Size", label: t("Common:Size"), default: true }; + const creationDate = { + key: "DateAndTimeCreation", + label: t("ByCreation"), + default: true, + }; + const authorOption = { + key: "Author", + label: t("ByAuthor"), + default: true, + }; + + const owner = { key: "Author", label: t("Common:Owner"), default: true }; + const tags = { key: "Tags", label: t("Tags"), default: true }; + const roomType = { + key: "roomType", + label: t("Common:Type"), + default: true, + }; + + commonOptions.push(name); + + if (viewAs === "table") { + if (isRooms) { + const availableSort = localStorage + ?.getItem(`${TABLE_ROOMS_COLUMNS}=${userId}`) + ?.split(","); + + const infoPanelColumnsSize = localStorage + ?.getItem(`${COLUMNS_ROOMS_SIZE_INFO_PANEL}=${userId}`) + ?.split(" "); + + if (availableSort?.includes("Type")) { + const idx = availableSort.findIndex((x) => x === "Type"); + const hide = infoPanelVisible && infoPanelColumnsSize[idx] === "0px"; + + !hide && commonOptions.push(roomType); + } + + if (availableSort?.includes("Tags")) { + const idx = availableSort.findIndex((x) => x === "Tags"); + const hide = infoPanelVisible && infoPanelColumnsSize[idx] === "0px"; + + !hide && commonOptions.push(tags); + } + + if (availableSort?.includes("Owner")) { + const idx = availableSort.findIndex((x) => x === "Owner"); + const hide = infoPanelVisible && infoPanelColumnsSize[idx] === "0px"; + + !hide && commonOptions.push(owner); + } + + if (availableSort?.includes("Activity")) { + const idx = availableSort.findIndex((x) => x === "Activity"); + const hide = infoPanelVisible && infoPanelColumnsSize[idx] === "0px"; + + !hide && commonOptions.push(modifiedDate); + } + } else { + const availableSort = localStorage + ?.getItem(`${TABLE_COLUMNS}=${userId}`) + ?.split(","); + + const infoPanelColumnsSize = localStorage + ?.getItem(`${COLUMNS_SIZE_INFO_PANEL}=${userId}`) + ?.split(" "); + + if (availableSort?.includes("Author") && !isPersonalRoom) { + const idx = availableSort.findIndex((x) => x === "Author"); + const hide = infoPanelVisible && infoPanelColumnsSize[idx] === "0px"; + + !hide && commonOptions.push(authorOption); + } + if (availableSort?.includes("Create")) { + const idx = availableSort.findIndex((x) => x === "Create"); + const hide = infoPanelVisible && infoPanelColumnsSize[idx] === "0px"; + + !hide && commonOptions.push(creationDate); + } + if (availableSort?.includes("Modified")) { + const idx = availableSort.findIndex((x) => x === "Modified"); + const hide = infoPanelVisible && infoPanelColumnsSize[idx] === "0px"; + + !hide && commonOptions.push(modifiedDate); + } + if (availableSort?.includes("Size")) { + const idx = availableSort.findIndex((x) => x === "Size"); + const hide = infoPanelVisible && infoPanelColumnsSize[idx] === "0px"; + + !hide && commonOptions.push(size); + } + if (availableSort?.includes("Type")) { + const idx = availableSort.findIndex((x) => x === "Type"); + const hide = infoPanelVisible && infoPanelColumnsSize[idx] === "0px"; + + !hide && commonOptions.push(type); + } + } + } else { + if (isRooms) { + commonOptions.push(roomType); + commonOptions.push(tags); + commonOptions.push(owner); + commonOptions.push(modifiedDate); + } else { + commonOptions.push(authorOption); + commonOptions.push(creationDate); + commonOptions.push(modifiedDate); + commonOptions.push(size); + commonOptions.push(type); + } } + return commonOptions; - }, [personal, isRooms, t]); + }, [personal, isRooms, t, userId, infoPanelVisible, viewAs, isPersonalRoom]); const removeSelectedItem = React.useCallback( ({ key, group }) => { @@ -820,7 +978,10 @@ const SectionFilterContent = ({ newFilter.authorType = null; } if (group === FilterGroups.filterFolders) { - newFilter.withSubfolders = null; + newFilter.withSubfolders = "true"; + } + if (group === FilterGroups.filterContent) { + newFilter.searchInContent = null; } newFilter.page = 0; @@ -842,6 +1003,18 @@ const SectionFilterContent = ({ ] ); + const clearAll = () => { + if (isRooms) { + setIsLoading(true); + + fetchRooms(selectedFolderId).finally(() => setIsLoading(false)); + } else { + setIsLoading(true); + + fetchFiles(selectedFolderId).finally(() => setIsLoading(false)); + } + }; + return ( ); }; @@ -890,6 +1066,7 @@ export default inject( isRecentFolder, isRoomsFolder, isArchiveFolder, + isPersonalRoom, } = treeFoldersStore; const isRooms = isRoomsFolder || isArchiveFolder; @@ -918,6 +1095,7 @@ export default inject( createThumbnails, personal, + isPersonalRoom, infoPanelVisible, setCurrentRoomsFilter, }; diff --git a/packages/client/src/pages/Home/Section/Header/index.js b/packages/client/src/pages/Home/Section/Header/index.js index 37e1359ed3..c490bfd77d 100644 --- a/packages/client/src/pages/Home/Section/Header/index.js +++ b/packages/client/src/pages/Home/Section/Header/index.js @@ -18,7 +18,7 @@ import { Consumer } from "@docspace/components/utils/context"; import { inject, observer } from "mobx-react"; import TableGroupMenu from "@docspace/components/table-container/TableGroupMenu"; import Navigation from "@docspace/common/components/Navigation"; -import { Events } from "@docspace/client/src/helpers/filesConstants"; +import { Events } from "@docspace/common/constants"; import config from "PACKAGE_FILE"; import { combineUrl } from "@docspace/common/utils"; import RoomsFilter from "@docspace/common/api/rooms/filter"; diff --git a/packages/client/src/pages/Home/index.js b/packages/client/src/pages/Home/index.js index 524ec59f31..a14b104560 100644 --- a/packages/client/src/pages/Home/index.js +++ b/packages/client/src/pages/Home/index.js @@ -29,7 +29,7 @@ import DragTooltip from "../../components/DragTooltip"; import { observer, inject } from "mobx-react"; //import config from "PACKAGE_FILE"; import { Consumer } from "@docspace/components/utils/context"; -import { Events } from "@docspace/client/src/helpers/filesConstants"; +import { Events } from "@docspace/common/constants"; import RoomsFilter from "@docspace/common/api/rooms/filter"; import { getCategoryType } from "SRC_DIR/helpers/utils"; import { CategoryType } from "SRC_DIR/helpers/constants"; diff --git a/packages/client/src/store/ContextOptionsStore.js b/packages/client/src/store/ContextOptionsStore.js index 7ce27fe1e9..0f02c576f7 100644 --- a/packages/client/src/store/ContextOptionsStore.js +++ b/packages/client/src/store/ContextOptionsStore.js @@ -10,7 +10,7 @@ import { isMobile as isMobileUtils, isTablet as isTabletUtils, } from "@docspace/components/utils/device"; -import { Events } from "@docspace/client/src/helpers/filesConstants"; +import { Events } from "@docspace/common/constants"; import { getContextMenuItems } from "SRC_DIR/helpers/plugins"; class ContextOptionsStore { diff --git a/packages/client/src/store/DialogsStore.js b/packages/client/src/store/DialogsStore.js index d89842bbd8..611aa62865 100644 --- a/packages/client/src/store/DialogsStore.js +++ b/packages/client/src/store/DialogsStore.js @@ -1,7 +1,7 @@ import { getNewFiles } from "@docspace/common/api/files"; import { FileAction } from "@docspace/common/constants"; import { makeAutoObservable } from "mobx"; -import { Events } from "@docspace/client/src/helpers/filesConstants"; +import { Events } from "@docspace/common/constants"; class DialogsStore { authStore; diff --git a/packages/client/src/store/TreeFoldersStore.js b/packages/client/src/store/TreeFoldersStore.js index c10d8bc4e4..2cf5cbb14a 100644 --- a/packages/client/src/store/TreeFoldersStore.js +++ b/packages/client/src/store/TreeFoldersStore.js @@ -134,6 +134,10 @@ class TreeFoldersStore { return this.archiveFolder ? this.archiveFolder.id : null; } + get isPersonalRoom() { + return this.myFolder && this.myFolder.id === this.selectedFolderStore.id; + } + get isShareFolder() { return ( this.shareFolder && this.shareFolder.id === this.selectedFolderStore.id diff --git a/packages/common/api/files/filter.js b/packages/common/api/files/filter.js index c178b8ed81..e3f9d082a3 100644 --- a/packages/common/api/files/filter.js +++ b/packages/common/api/files/filter.js @@ -13,6 +13,7 @@ const DEFAULT_SEARCH = null; const DEFAULT_AUTHOR_TYPE = null; const DEFAULT_SELECTED_ITEM = {}; const DEFAULT_FOLDER = "@my"; +const DEFAULT_SEARCH_IN_CONTENT = null; const SEARCH_TYPE = "withSubfolders"; const AUTHOR_TYPE = "authorType"; @@ -25,11 +26,11 @@ const PAGE = "page"; const PAGE_COUNT = "count"; const FOLDER = "folder"; const PREVIEW = "preview"; +const SEARCH_IN_CONTENT = "searchInContent"; // TODO: add next params // subjectGroup bool // subjectID -// searchInContent bool class FilesFilter { static getDefault(total = DEFAULT_TOTAL) { @@ -66,6 +67,8 @@ class FilesFilter { (urlFilter[PAGE_COUNT] && +urlFilter[PAGE_COUNT]) || defaultFilter.pageCount; const folder = urlFilter[FOLDER] || defaultFilter.folder; + const searchInContent = + urlFilter[SEARCH_IN_CONTENT] || defaultFilter.searchInContent; const newFilter = new FilesFilter( page, @@ -79,7 +82,8 @@ class FilesFilter { search, authorType, defaultFilter.selectedItem, - folder + folder, + searchInContent ); return newFilter; @@ -97,7 +101,8 @@ class FilesFilter { search = DEFAULT_SEARCH, authorType = DEFAULT_AUTHOR_TYPE, selectedItem = DEFAULT_SELECTED_ITEM, - folder = DEFAULT_FOLDER + folder = DEFAULT_FOLDER, + searchInContent = DEFAULT_SEARCH_IN_CONTENT ) { this.page = page; this.pageCount = pageCount; @@ -111,6 +116,7 @@ class FilesFilter { this.authorType = authorType; this.selectedItem = selectedItem; this.folder = folder; + this.searchInContent = searchInContent; } getStartIndex = () => { @@ -136,6 +142,7 @@ class FilesFilter { sortOrder, withSubfolders, startIndex, + searchInContent, } = this; const isFilterSet = @@ -157,6 +164,7 @@ class FilesFilter { filterValue: (search ?? "").trim(), withSubfolders: isFilterSet, userIdOrGroupId, + searchInContent, }; const str = toUrlParams(dtoFilter, true); @@ -174,6 +182,7 @@ class FilesFilter { sortBy, sortOrder, withSubfolders, + searchInContent, } = this; const dtoFilter = {}; @@ -206,6 +215,10 @@ class FilesFilter { dtoFilter[PREVIEW] = URLParams.preview; } + if (searchInContent) { + dtoFilter[SEARCH_IN_CONTENT] = searchInContent; + } + dtoFilter[PAGE] = page + 1; dtoFilter[SORT_BY] = sortBy; dtoFilter[SORT_ORDER] = sortOrder; @@ -231,7 +244,8 @@ class FilesFilter { this.search, this.authorType, this.selectedItem, - this.folder + this.folder, + this.searchInContent ); } @@ -247,7 +261,8 @@ class FilesFilter { this.page === filter.page && this.selectedItem.key === filter.selectedItem.key && this.folder === filter.folder && - this.pageCount === filter.pageCount; + this.pageCount === filter.pageCount && + this.searchInContent === filter.searchInContent; return equals; } diff --git a/packages/common/components/FilterInput/StyledFilterInput.js b/packages/common/components/FilterInput/StyledFilterInput.js index 16b91c1911..c01f46a81b 100644 --- a/packages/common/components/FilterInput/StyledFilterInput.js +++ b/packages/common/components/FilterInput/StyledFilterInput.js @@ -35,6 +35,10 @@ const StyledFilterInput = styled.div` flex-wrap: wrap; margin-bottom: 8px; + + .clear-all-link { + margin-left: 12px; + } } `; diff --git a/packages/common/components/FilterInput/index.js b/packages/common/components/FilterInput/index.js index 8e910611c3..df5590f4c1 100644 --- a/packages/common/components/FilterInput/index.js +++ b/packages/common/components/FilterInput/index.js @@ -7,6 +7,7 @@ import { } from "@docspace/components/utils/device"; import ViewSelector from "@docspace/components/view-selector"; +import Link from "@docspace/components/link"; import FilterButton from "./sub-components/FilterButton"; import SortButton from "./sub-components/SortButton"; @@ -34,9 +35,14 @@ const FilterInput = React.memo( filterHeader, selectorLabel, + clearAll, isRecentFolder, removeSelectedItem, + + isPersonalRoom, + isRooms, + isAccounts, }) => { const [viewSettings, setViewSettings] = React.useState([]); const [inputValue, setInputValue] = React.useState(""); @@ -52,7 +58,7 @@ const FilterInput = React.memo( React.useEffect(() => { const value = getSelectedInputValue && getSelectedInputValue(); - if (value) setInputValue(value); + setInputValue(value); }, [getSelectedInputValue]); React.useEffect(() => { @@ -116,6 +122,9 @@ const FilterInput = React.memo( selectedFilterValue={selectedFilterValue} filterHeader={filterHeader} selectorLabel={selectorLabel} + isPersonalRoom={isPersonalRoom} + isRooms={isRooms} + isAccounts={isAccounts} /> {!isRecentFolder && ( ))} + {selectedItems.length > 1 && ( + + {t("Common:ClearAll")} + + )}
)} diff --git a/packages/common/components/FilterInput/sub-components/FilterBlock.js b/packages/common/components/FilterInput/sub-components/FilterBlock.js index 118cf76d9c..70789425a1 100644 --- a/packages/common/components/FilterInput/sub-components/FilterBlock.js +++ b/packages/common/components/FilterInput/sub-components/FilterBlock.js @@ -31,6 +31,9 @@ const FilterBlock = ({ hideFilterBlock, onFilter, selectorLabel, + isPersonalRoom, + isRooms, + isAccounts, }) => { const [showSelector, setShowSelector] = React.useState({ show: false, @@ -74,14 +77,22 @@ const FilterBlock = ({ if (groupItem.isMultiSelect) { groupItem.isSelected = currentFilter.key.includes(groupItem.key); } + if (groupItem.withOptions) { + groupItem.isSelected = currentFilter.key.includes(groupItem.key); + } }); } else { - item.groupItem.forEach((groupItem) => { + item.groupItem.forEach((groupItem, idx) => { groupItem.isSelected = false; if (groupItem.isSelector) { groupItem.selectedKey = null; groupItem.selectedLabel = null; } + if (groupItem.withOptions) { + item.groupItem[idx].options.forEach((x, index) => { + item.groupItem[idx].options[index].isSelected = false; + }); + } }); } }); @@ -244,7 +255,7 @@ const FilterBlock = ({ setTimeout(() => { setIsLoading(false); - }, 300); + }, 500); }, []); React.useEffect(() => { @@ -363,19 +374,25 @@ const FilterBlock = ({ {filterHeader} - + {showFooter && ( + + )}
{isLoading ? ( - + ) : ( - {filterData.map((item) => { + {filterData.map((item, index) => { return ( ); })} @@ -399,10 +418,16 @@ const FilterBlock = ({