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
101 changes: 65 additions & 36 deletions react/src/pages/AdminModelCardListPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@ import { useBAIPaginationOptionStateOnSearchParam } from '../hooks/reactPaginati
import { useSetBAINotification } from '../hooks/useBAINotification';
import { useBAISettingUserState } from '../hooks/useBAISetting';
import { useCurrentProjectValue } from '../hooks/useCurrentProject';
import { DeleteFilled, SettingOutlined } from '@ant-design/icons';
import {
DeleteFilled,
ExclamationCircleFilled,
SettingOutlined,
} from '@ant-design/icons';
import { App, Checkbox, Tooltip, Typography, theme } from 'antd';
import {
BAIButton,
Expand All @@ -42,6 +46,7 @@ import {
toLocalId,
useBAILogger,
useFetchKey,
BAIAlert,
} from 'backend.ai-ui';
import dayjs from 'dayjs';
import * as _ from 'lodash-es';
Expand Down Expand Up @@ -465,35 +470,47 @@ const AdminModelCardListPage: React.FC = () => {
})}
requireConfirmInput
extraContent={
<BAIFlex align="center" gap="xs">
<Tooltip title={t('adminModelCard.AlsoDeleteModelFolderTooltip')}>
<Checkbox
checked={alsoDeleteFolder}
onChange={(e) => setAlsoDeleteFolder(e.target.checked)}
<BAIFlex direction="column" align="stretch" gap="xs">
<BAIFlex align="start" gap="xs">
<Tooltip title={t('adminModelCard.AlsoDeleteModelFolderTooltip')}>
<Checkbox
checked={alsoDeleteFolder}
onChange={(e) => setAlsoDeleteFolder(e.target.checked)}
/>
</Tooltip>
<span>
{t('adminModelCard.AlsoDeleteModelFolder')}
{deletingModelCard?.vfolder && (
<span style={{ marginLeft: token.marginXXS }}>
{'('}
<VFolderNodeIdenticonV2
vfolderNodeIdenticonFrgmt={deletingModelCard.vfolder}
style={{
verticalAlign: 'middle',
marginInline: token.marginXXS,
}}
/>
<BAILink
to={generateFolderPath(deletingModelCard.vfolderId)}
onClick={(e) => e.stopPropagation()}
>
{deletingModelCard.vfolder.metadata.name}
</BAILink>
{')'}
</span>
)}
</span>
</BAIFlex>
{alsoDeleteFolder && (
<BAIAlert
type="error"
icon={<ExclamationCircleFilled />}
showIcon
description={t(
'adminModelCard.AlsoDeleteModelFolderCascadeWarning',
)}
/>
</Tooltip>
<span>
{t('adminModelCard.AlsoDeleteModelFolder')}
{deletingModelCard?.vfolder && (
<span style={{ marginLeft: token.marginXXS }}>
{'('}
<VFolderNodeIdenticonV2
vfolderNodeIdenticonFrgmt={deletingModelCard.vfolder}
style={{
verticalAlign: 'middle',
marginInline: token.marginXXS,
}}
/>
<BAILink
to={generateFolderPath(deletingModelCard.vfolderId)}
onClick={(e) => e.stopPropagation()}
>
{deletingModelCard.vfolder.metadata.name}
</BAILink>
{')'}
</span>
)}
</span>
)}
</BAIFlex>
}
onOk={() => {
Expand Down Expand Up @@ -572,14 +589,26 @@ const AdminModelCardListPage: React.FC = () => {
count: selectedModelCards.length,
})}
extraContent={
<BAIFlex align="center" gap="xs">
<Tooltip title={t('adminModelCard.AlsoDeleteModelFolderTooltip')}>
<Checkbox
checked={alsoDeleteFoldersBulk}
onChange={(e) => setAlsoDeleteFoldersBulk(e.target.checked)}
<BAIFlex direction="column" align="stretch" gap="xs">
<BAIFlex align="center" gap="xs">
<Tooltip title={t('adminModelCard.AlsoDeleteModelFolderTooltip')}>
<Checkbox
checked={alsoDeleteFoldersBulk}
onChange={(e) => setAlsoDeleteFoldersBulk(e.target.checked)}
/>
</Tooltip>
<span>{t('adminModelCard.AlsoDeleteModelFolders')}</span>
</BAIFlex>
{alsoDeleteFoldersBulk && (
<BAIAlert
type="error"
icon={<ExclamationCircleFilled />}
showIcon
description={t(
'adminModelCard.AlsoDeleteModelFoldersCascadeWarning',
)}
/>
</Tooltip>
<span>{t('adminModelCard.AlsoDeleteModelFolders')}</span>
)}
</BAIFlex>
}
onOk={() => {
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Framework hinzufügen",
"AddLabel": "Etikett hinzufügen",
"AlsoDeleteModelFolder": "Zugehörigen Modellordner ebenfalls löschen",
"AlsoDeleteModelFolderCascadeWarning": "Das Löschen des zugehörigen Modellordners löscht auch alle Modellkarten, die ihn verwenden.",
"AlsoDeleteModelFolderTooltip": "Der Modellordner wird in den Papierkorb verschoben. Sie können ihn dauerhaft unter Daten > Papierkorb löschen.",
"AlsoDeleteModelFolders": "Zugehörige Modellordner ebenfalls löschen",
"AlsoDeleteModelFoldersCascadeWarning": "Das Löschen der zugehörigen Modellordner löscht auch alle Modellkarten, die sie verwenden.",
"Architecture": "Architektur",
"ArchitectureTooltip": "Die Modellarchitektur (z. B. Transformer, CNN, RNN).",
"Author": "Autor",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/el.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Προσθήκη πλαισίου",
"AddLabel": "Προσθήκη ετικέτας",
"AlsoDeleteModelFolder": "Διαγραφή του συσχετισμένου φακέλου μοντέλου",
"AlsoDeleteModelFolderCascadeWarning": "Η διαγραφή του συσχετισμένου φακέλου μοντέλου θα διαγράψει επίσης κάθε κάρτα μοντέλου που τον χρησιμοποιεί.",
"AlsoDeleteModelFolderTooltip": "Ο φάκελος μοντέλου θα μετακινηθεί στα σκουπίδια. Μπορείτε να τον διαγράψετε οριστικά από Δεδομένα > Σκουπίδια.",
"AlsoDeleteModelFolders": "Διαγραφή των συσχετισμένων φακέλων μοντέλου",
"AlsoDeleteModelFoldersCascadeWarning": "Η διαγραφή των συσχετισμένων φακέλων μοντέλου θα διαγράψει επίσης κάθε κάρτα μοντέλου που τους χρησιμοποιεί.",
"Architecture": "Αρχιτεκτονική",
"ArchitectureTooltip": "Η αρχιτεκτονική μοντέλου (π.χ. Transformer, CNN, RNN).",
"Author": "Συγγραφέας",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Add framework",
"AddLabel": "Add label",
"AlsoDeleteModelFolder": "Also delete the associated model folder",
"AlsoDeleteModelFolderCascadeWarning": "Deleting the associated model folder will also delete every model card that uses it.",
Comment thread
ironAiken2 marked this conversation as resolved.
"AlsoDeleteModelFolderTooltip": "The model folder will be moved to trash. You can permanently delete it from Data > Trash.",
"AlsoDeleteModelFolders": "Also delete the associated model folders",
"AlsoDeleteModelFoldersCascadeWarning": "Deleting the associated model folders will also delete every model card that uses them.",
"Architecture": "Architecture",
"ArchitectureTooltip": "The model architecture (e.g., Transformer, CNN, RNN).",
"Author": "Author",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Agregar framework",
"AddLabel": "Agregar etiqueta",
"AlsoDeleteModelFolder": "Eliminar también la carpeta del modelo asociada",
"AlsoDeleteModelFolderCascadeWarning": "Eliminar la carpeta del modelo asociada también eliminará todas las tarjetas de modelo que la utilicen.",
"AlsoDeleteModelFolderTooltip": "La carpeta del modelo se moverá a la papelera. Puede eliminarla permanentemente desde Datos > Papelera.",
"AlsoDeleteModelFolders": "Eliminar también las carpetas del modelo asociadas",
"AlsoDeleteModelFoldersCascadeWarning": "Eliminar las carpetas del modelo asociadas también eliminará todas las tarjetas de modelo que las utilicen.",
"Architecture": "Arquitectura",
"ArchitectureTooltip": "La arquitectura del modelo (p. ej., Transformer, CNN, RNN).",
"Author": "Autor",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/fi.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Lisää kehys",
"AddLabel": "Lisää tunniste",
"AlsoDeleteModelFolder": "Poista myös siihen liittyvä mallinkansio",
"AlsoDeleteModelFolderCascadeWarning": "Liittyvän mallikansion poistaminen poistaa myös kaikki mallikortit, jotka käyttävät sitä.",
"AlsoDeleteModelFolderTooltip": "Mallinkansio siirretään roskakoriin. Voit poistaa sen pysyvästi kohdasta Data > Roskat.",
"AlsoDeleteModelFolders": "Poista myös niihin liittyvät mallikansiot",
"AlsoDeleteModelFoldersCascadeWarning": "Liittyvien mallikansioiden poistaminen poistaa myös kaikki mallikortit, jotka käyttävät niitä.",
"Architecture": "Arkkitehtuuri",
"ArchitectureTooltip": "Malliarkkitehtuuri (esim. Transformer, CNN, RNN).",
"Author": "Tekijä",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Ajouter un framework",
"AddLabel": "Ajouter une étiquette",
"AlsoDeleteModelFolder": "Supprimer également le dossier de modèle associé",
"AlsoDeleteModelFolderCascadeWarning": "La suppression du dossier de modèle associé supprimera également toutes les fiches de modèle qui l'utilisent.",
"AlsoDeleteModelFolderTooltip": "Le dossier de modèle sera déplacé vers la poubelle. Vous pouvez le supprimer définitivement depuis Données > Poubelle.",
"AlsoDeleteModelFolders": "Supprimer également les dossiers de modèle associés",
"AlsoDeleteModelFoldersCascadeWarning": "La suppression des dossiers de modèle associés supprimera également toutes les fiches de modèle qui les utilisent.",
"Architecture": "Architecture",
"ArchitectureTooltip": "L'architecture du modèle (ex. : Transformer, CNN, RNN).",
"Author": "Auteur",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/id.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Tambah kerangka kerja",
"AddLabel": "Tambah label",
"AlsoDeleteModelFolder": "Hapus juga folder model yang terkait",
"AlsoDeleteModelFolderCascadeWarning": "Menghapus folder model yang terkait juga akan menghapus setiap kartu model yang menggunakannya.",
"AlsoDeleteModelFolderTooltip": "Folder model akan dipindahkan ke tempat sampah. Anda dapat menghapusnya secara permanen dari Data > Sampah.",
"AlsoDeleteModelFolders": "Hapus juga folder-folder model yang terkait",
"AlsoDeleteModelFoldersCascadeWarning": "Menghapus folder-folder model yang terkait juga akan menghapus setiap kartu model yang menggunakannya.",
"Architecture": "Arsitektur",
"ArchitectureTooltip": "Arsitektur model (mis. Transformer, CNN, RNN).",
"Author": "Pengarang",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Aggiungi framework",
"AddLabel": "Aggiungi etichetta",
"AlsoDeleteModelFolder": "Elimina anche la cartella del modello associata",
"AlsoDeleteModelFolderCascadeWarning": "L'eliminazione della cartella del modello associata eliminerà anche ogni scheda modello che la utilizza.",
"AlsoDeleteModelFolderTooltip": "La cartella del modello verrà spostata nel cestino. Puoi eliminarla definitivamente da Dati > Rifiuti.",
"AlsoDeleteModelFolders": "Elimina anche le cartelle del modello associate",
"AlsoDeleteModelFoldersCascadeWarning": "L'eliminazione delle cartelle del modello associate eliminerà anche ogni scheda modello che le utilizza.",
"Architecture": "Architettura",
"ArchitectureTooltip": "L'architettura del modello (es. Transformer, CNN, RNN).",
"Author": "Autore",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "フレームワークを追加",
"AddLabel": "ラベルを追加",
"AlsoDeleteModelFolder": "関連するモデルフォルダも削除する",
"AlsoDeleteModelFolderCascadeWarning": "関連するモデルフォルダを削除すると、それを使用しているすべてのモデルカードも削除されます。",
"AlsoDeleteModelFolderTooltip": "モデルフォルダはゴミ箱に移動されます。データ > ゴミ箱から完全に削除できます。",
"AlsoDeleteModelFolders": "関連するモデルフォルダをすべて削除する",
"AlsoDeleteModelFoldersCascadeWarning": "関連するモデルフォルダをすべて削除すると、それらを使用しているすべてのモデルカードも削除されます。",
"Architecture": "アーキテクチャ",
"ArchitectureTooltip": "モデルのアーキテクチャです (例: Transformer, CNN, RNN)。",
"Author": "著者",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "프레임워크 추가",
"AddLabel": "레이블 추가",
"AlsoDeleteModelFolder": "연결된 모델 폴더도 함께 삭제",
"AlsoDeleteModelFolderCascadeWarning": "연결된 모델 폴더를 삭제하면 해당 폴더를 사용하는 모든 모델 카드가 함께 삭제됩니다.",
"AlsoDeleteModelFolderTooltip": "모델 폴더가 휴지통으로 이동됩니다. 데이터 > 휴지통에서 영구적으로 삭제할 수 있습니다.",
"AlsoDeleteModelFolders": "연결된 모델 폴더도 함께 삭제",
"AlsoDeleteModelFoldersCascadeWarning": "연결된 모델 폴더들을 삭제하면 해당 폴더들을 사용하는 모든 모델 카드가 함께 삭제됩니다.",
"Architecture": "아키텍처",
"ArchitectureTooltip": "모델 아키텍처입니다 (예: Transformer, CNN, RNN).",
"Author": "작가",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/mn.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Хүрээ нэмэх",
"AddLabel": "Шошго нэмэх",
"AlsoDeleteModelFolder": "Холбогдох загварын хавтасыг мөн устгах",
"AlsoDeleteModelFolderCascadeWarning": "Холбогдох загварын хавтасыг устгавал түүнийг ашигладаг бүх загварын картыг мөн устгана.",
"AlsoDeleteModelFolderTooltip": "Загварын хавтас хогийн савд шилжинэ. Дата > Хог хэсгээс байнгын устгах боломжтой.",
"AlsoDeleteModelFolders": "Холбогдох загварын хавтасуудыг мөн устгах",
"AlsoDeleteModelFoldersCascadeWarning": "Холбогдох загварын хавтасуудыг устгавал тэдгээрийг ашигладаг бүх загварын картыг мөн устгана.",
"Architecture": "Архитектур",
"ArchitectureTooltip": "Загварын архитектур (жнь. Transformer, CNN, RNN).",
"Author": "Зохиогч",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/ms.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Tambah rangka kerja",
"AddLabel": "Tambah label",
"AlsoDeleteModelFolder": "Padamkan juga folder model yang berkaitan",
"AlsoDeleteModelFolderCascadeWarning": "Memadam folder model yang berkaitan juga akan memadam setiap kad model yang menggunakannya.",
"AlsoDeleteModelFolderTooltip": "Folder model akan dipindahkan ke tong sampah. Anda boleh memadamnya secara kekal dari Data > Sampah.",
"AlsoDeleteModelFolders": "Padamkan juga folder-folder model yang berkaitan",
"AlsoDeleteModelFoldersCascadeWarning": "Memadam folder-folder model yang berkaitan juga akan memadam setiap kad model yang menggunakannya.",
"Architecture": "Seni bina",
"ArchitectureTooltip": "Seni bina model (cth., Transformer, CNN, RNN).",
"Author": "Pengarang",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Dodaj framework",
"AddLabel": "Dodaj etykietę",
"AlsoDeleteModelFolder": "Usuń również powiązany folder modelu",
"AlsoDeleteModelFolderCascadeWarning": "Usunięcie powiązanego folderu modelu spowoduje również usunięcie wszystkich kart modelu, które go używają.",
"AlsoDeleteModelFolderTooltip": "Folder modelu zostanie przeniesiony do kosza. Możesz go trwale usunąć w sekcji Dane > Śmieci.",
"AlsoDeleteModelFolders": "Usuń również powiązane foldery modelu",
"AlsoDeleteModelFoldersCascadeWarning": "Usunięcie powiązanych folderów modelu spowoduje również usunięcie wszystkich kart modelu, które ich używają.",
"Architecture": "Architektura",
"ArchitectureTooltip": "Architektura modelu (np. Transformer, CNN, RNN).",
"Author": "Autor",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/pt-BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Adicionar framework",
"AddLabel": "Adicionar rótulo",
"AlsoDeleteModelFolder": "Excluir também a pasta do modelo associada",
"AlsoDeleteModelFolderCascadeWarning": "Excluir a pasta do modelo associada também excluirá todos os cartões de modelo que a utilizam.",
"AlsoDeleteModelFolderTooltip": "A pasta do modelo será movida para a lixeira. Você pode excluí-la permanentemente em Dados > Lixo.",
"AlsoDeleteModelFolders": "Excluir também as pastas do modelo associadas",
"AlsoDeleteModelFoldersCascadeWarning": "Excluir as pastas do modelo associadas também excluirá todos os cartões de modelo que as utilizam.",
"Architecture": "Arquitetura",
"ArchitectureTooltip": "A arquitetura do modelo (ex.: Transformer, CNN, RNN).",
"Author": "Autor",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Adicionar framework",
"AddLabel": "Adicionar rótulo",
"AlsoDeleteModelFolder": "Eliminar também a pasta do modelo associada",
"AlsoDeleteModelFolderCascadeWarning": "Eliminar a pasta do modelo associada também eliminará todos os cartões de modelo que a utilizam.",
"AlsoDeleteModelFolderTooltip": "A pasta do modelo será movida para o lixo. Pode eliminá-la permanentemente em Dados > Lixo.",
"AlsoDeleteModelFolders": "Eliminar também as pastas do modelo associadas",
"AlsoDeleteModelFoldersCascadeWarning": "Eliminar as pastas do modelo associadas também eliminará todos os cartões de modelo que as utilizam.",
"Architecture": "Arquitetura",
"ArchitectureTooltip": "A arquitetura do modelo (ex.: Transformer, CNN, RNN).",
"Author": "Autor",
Expand Down
2 changes: 2 additions & 0 deletions resources/i18n/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,10 @@
"AddFramework": "Добавить фреймворк",
"AddLabel": "Добавить метку",
"AlsoDeleteModelFolder": "Также удалить связанную папку модели",
"AlsoDeleteModelFolderCascadeWarning": "Удаление связанной папки модели также удалит все карточки моделей, которые её используют.",
"AlsoDeleteModelFolderTooltip": "Папка модели будет перемещена в мусор. Вы можете окончательно удалить её в разделе Данные > Мусор.",
"AlsoDeleteModelFolders": "Также удалить связанные папки моделей",
"AlsoDeleteModelFoldersCascadeWarning": "Удаление связанных папок моделей также удалит все карточки моделей, которые их используют.",
"Architecture": "Архитектура",
"ArchitectureTooltip": "Архитектура модели (например, Transformer, CNN, RNN).",
"Author": "Автор",
Expand Down
Loading
Loading