Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions react/src/components/VFolderNodes.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { filterNonNullItems, toLocalId } from '../helper';
import { useSuspendedBackendaiClient } from '../hooks';
import { useCurrentUserInfo } from '../hooks/backendai';
import { useCurrentUserInfo, useCurrentUserRole } from '../hooks/backendai';
import { useTanMutation } from '../hooks/reactQueryAlias';
import { useSetBAINotification } from '../hooks/useBAINotification';
import { useCurrentProjectValue } from '../hooks/useCurrentProject';
Expand Down Expand Up @@ -72,6 +72,7 @@ const VFolderNodes: React.FC<VFolderNodesProps> = ({
const { message } = App.useApp();

const currentProject = useCurrentProjectValue();
const userRole = useCurrentUserRole();
const baiClient = useSuspendedBackendaiClient();
const painKiller = usePainKiller();
const [currentUser] = useCurrentUserInfo();
Expand Down Expand Up @@ -121,6 +122,10 @@ const VFolderNodes: React.FC<VFolderNodesProps> = ({
},
});

const isMoveToTrashDisabled = (vfolder: VFolderNodeInList) => {
return userRole === 'user' && vfolder?.ownership_type === 'group';
};

return (
<>
<BAITable<(typeof filteredVFolders)[0]>
Expand Down Expand Up @@ -280,18 +285,30 @@ const VFolderNodes: React.FC<VFolderNodesProps> = ({
}}
okText={t('button.Move')}
okButtonProps={{ danger: true }}
disabled={isMoveToTrashDisabled(vfolder)}
>
<Tooltip
title={t('data.folders.MoveToTrash')}
title={
isMoveToTrashDisabled(vfolder)
? t(
'data.folders.ProjectFolderDeletionRequiresAdmin',
)
: t('data.folders.MoveToTrash')
}
placement="right"
>
<Button
size="small"
type="text"
icon={<TrashBinIcon />}
disabled={isMoveToTrashDisabled(vfolder)}
style={{
color: token.colorError,
background: token.colorErrorBg,
color: isMoveToTrashDisabled(vfolder)
? token.colorTextDisabled
: token.colorError,
background: isMoveToTrashDisabled(vfolder)
? token.colorBgContainerDisabled
: token.colorErrorBg,
}}
/>
</Tooltip>
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "Inhaber",
"Ownership": "Eigentum",
"Permission": "Genehmigung",
"ProjectFolderDeletionRequiresAdmin": "Für die Löschung des Projektordners erfordert die Genehmigung des Projektmanagers.",
"Rename": "Umbenennen",
"Restore": "Wiederherstellen",
"RestoreDescription": "Möchten Sie \"{{ folderName }}\" -Fordner wiederherstellen?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/el.json
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,7 @@
"Owner": "Ιδιοκτήτης",
"Ownership": "Ιδιοκτησία",
"Permission": "Αδεια",
"ProjectFolderDeletionRequiresAdmin": "Η διαγραφή του φακέλου του έργου απαιτεί την εξουσιοδότηση του διαχειριστή έργου.",
"Rename": "Μετονομάζω",
"Restore": "Επαναφέρω",
"RestoreDescription": "Θέλετε να επαναφέρετε \"{{ folderName }}\" \"Φάκελος;",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,7 @@
"Owner": "Owner",
"Ownership": "Ownership",
"Permission": "Permission",
"ProjectFolderDeletionRequiresAdmin": "The project folder deletion requires project manager authorization.",
"Rename": "Rename",
"Restore": "Restore",
"RestoreDescription": "Do you want to restore \"{{ folderName }}\" folder?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "Propietario",
"Ownership": "Propiedad",
"Permission": "Permiso",
"ProjectFolderDeletionRequiresAdmin": "La eliminación de la carpeta del proyecto requiere la autorización del administrador del proyecto.",
"Rename": "Cambie el nombre de",
"Restore": "Restaurar",
"RestoreDescription": "¿Quieres restaurar la carpeta \"{{ folderName }}\"?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/fi.json
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,7 @@
"Owner": "Omistaja",
"Ownership": "Omistus",
"Permission": "Lupa",
"ProjectFolderDeletionRequiresAdmin": "Projektikansioiden poisto vaatii projektipäällikön valtuutusta.",
"Rename": "Nimeä uudelleen",
"Restore": "Palauttaa",
"RestoreDescription": "Haluatko palauttaa \"{{ folderName }}\" -kansio?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "Propriétaire",
"Ownership": "La possession",
"Permission": "Autorisation",
"ProjectFolderDeletionRequiresAdmin": "La suppression du dossier du projet nécessite une autorisation de gestionnaire de projet.",
"Rename": "Renommer",
"Restore": "Restaurer",
"RestoreDescription": "Voulez-vous restaurer le dossier \"{{ folderName }}\"?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/id.json
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,7 @@
"Owner": "Pemilik",
"Ownership": "Kepemilikan",
"Permission": "Izin",
"ProjectFolderDeletionRequiresAdmin": "Penghapusan folder proyek membutuhkan otorisasi manajer proyek.",
"Rename": "Ganti nama",
"Restore": "Memulihkan",
"RestoreDescription": "Apakah Anda ingin mengembalikan \"{{ folderName }}\"?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,7 @@
"Owner": "Proprietario",
"Ownership": "Proprietà",
"Permission": "Autorizzazione",
"ProjectFolderDeletionRequiresAdmin": "La cancellazione della cartella del progetto richiede l'autorizzazione del project manager.",
"Rename": "Rinominare",
"Restore": "Ristabilire",
"RestoreDescription": "Vuoi ripristinare la cartella \"{{ folderName }}\"?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,7 @@
"Owner": "オーナー",
"Ownership": "所有",
"Permission": "許可",
"ProjectFolderDeletionRequiresAdmin": "プロジェクトフォルダーの削除には、プロジェクトマネージャーの承認が必要です。",
"Rename": "名前を変更",
"Restore": "復元する",
"RestoreDescription": "\"{{ folderName }}\"フォルダーを復元しますか?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,7 @@
"Owner": "소유자 여부",
"Ownership": "소유",
"Permission": "권한",
"ProjectFolderDeletionRequiresAdmin": "프로젝트 폴더 삭제는 프로젝트 관리자 승인이 필요합니다.",
"Rename": "이름 변경",
"Restore": "복원",
"RestoreDescription": "\"{{ folderName }}\" 폴더를 복원 하시겠습니까?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/mn.json
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,7 @@
"Owner": "Эзэмшигч",
"Ownership": "Эзэмшил",
"Permission": "Зөвшөөрөл",
"ProjectFolderDeletionRequiresAdmin": "Төслийн хавтас устгах нь төслийн менежерийн зөвшөөрлийг шаарддаг.",
"Rename": "Нэрийг нь өөрчлөх",
"Restore": "Сэргээх",
"RestoreDescription": "Та сэргээхийг хүсч байна уу \"{{ folderName }}\" хавтас?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/ms.json
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,7 @@
"Owner": "Pemilik",
"Ownership": "Pemilikan",
"Permission": "Kebenaran",
"ProjectFolderDeletionRequiresAdmin": "Penghapusan folder projek memerlukan kebenaran Pengurus Projek.",
"Rename": "Namakan semula",
"Restore": "Pulihkan",
"RestoreDescription": "Adakah anda mahu memulihkan folder \"{{ folderName }}\"?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "Właściciel",
"Ownership": "Własność",
"Permission": "Pozwolenie",
"ProjectFolderDeletionRequiresAdmin": "Usunięcie folderu projektu wymaga autoryzacji menedżera projektu.",
"Rename": "Przemianować",
"Restore": "Przywrócić",
"RestoreDescription": "Czy chcesz przywrócić folder \"{{ folderName }}\"?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/pt-BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "Proprietário",
"Ownership": "Propriedade",
"Permission": "Permissão",
"ProjectFolderDeletionRequiresAdmin": "A exclusão da pasta do projeto requer autorização do gerente de projeto.",
"Rename": "Renomear",
"Restore": "Restaurar",
"RestoreDescription": "Deseja restaurar a pasta \"{{ folderName }}\"?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "Proprietário",
"Ownership": "Propriedade",
"Permission": "Permissão",
"ProjectFolderDeletionRequiresAdmin": "A exclusão da pasta do projeto requer autorização do gerente de projeto.",
"Rename": "Renomear",
"Restore": "Restaurar",
"RestoreDescription": "Deseja restaurar a pasta \"{{ folderName }}\"?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "Владелец",
"Ownership": "Владение",
"Permission": "Разрешение",
"ProjectFolderDeletionRequiresAdmin": "Удаление папки проекта требует авторизации менеджера проекта.",
"Rename": "Переименовать",
"Restore": "Восстановить",
"RestoreDescription": "Вы хотите восстановить \"{{ folderName }}\" папка?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/th.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "เจ้าของ",
"Ownership": "ความเป็นเจ้าของ",
"Permission": "สิทธิ์",
"ProjectFolderDeletionRequiresAdmin": "การลบโฟลเดอร์โครงการต้องการการอนุญาตผู้จัดการโครงการ",
"Rename": "เปลี่ยนชื่อ",
"Restore": "กู้คืน",
"RestoreDescription": "คุณต้องการกู้คืนโฟลเดอร์ \"{{ folderName }}\" หรือไม่?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "Sahip",
"Ownership": "Mülkiyet",
"Permission": "izin",
"ProjectFolderDeletionRequiresAdmin": "Proje klasörü silme, proje yöneticisi yetkilendirilmesini gerektirir.",
"Rename": "Adını değiştirmek",
"Restore": "Eski haline getirmek",
"RestoreDescription": "\"{{ folderName }}\" klasörünü geri yüklemek istiyor musunuz?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "Chủ nhân",
"Ownership": "Quyền sở hữu",
"Permission": "Sự cho phép",
"ProjectFolderDeletionRequiresAdmin": "Việc xóa thư mục dự án yêu cầu ủy quyền quản lý dự án.",
"Rename": "Đổi tên",
"Restore": "Khôi phục",
"RestoreDescription": "Bạn có muốn khôi phục thư mục \"{{ folderName }}\" không?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "所有者",
"Ownership": "所有权",
"Permission": "允许",
"ProjectFolderDeletionRequiresAdmin": "项目文件夹删除需要项目经理授权。",
"Rename": "改名",
"Restore": "恢复",
"RestoreDescription": "您要还原“{{ folderName }}”文件夹?",
Expand Down
1 change: 1 addition & 0 deletions resources/i18n/zh-TW.json
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
"Owner": "所有者",
"Ownership": "所有權",
"Permission": "允許",
"ProjectFolderDeletionRequiresAdmin": "項目文件夾刪除需要項目經理授權。",
"Rename": "改名",
"RenameAFolder": "重命名文件夾",
"Restore": "恢復",
Expand Down