feat: add copyable ID to delete confirmation dialogs

When deleting databases or containers, the confirmation dialog now displays
the resource ID in a read-only text field with a copy button, allowing users
to copy-paste the ID into the confirmation input instead of typing it manually.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Jade Welton
2026-04-21 11:25:48 -07:00
parent fd49752881
commit 3bedaf285d
25 changed files with 3153 additions and 22 deletions

View File

@@ -112,6 +112,9 @@ describe("Delete Collection Confirmation Pane", () => {
const wrapper = mount(<DeleteCollectionConfirmationPane refreshDatabases={() => undefined} />); const wrapper = mount(<DeleteCollectionConfirmationPane refreshDatabases={() => undefined} />);
expect(wrapper).toMatchSnapshot(); expect(wrapper).toMatchSnapshot();
expect(wrapper.exists("#copyableCollectionId")).toBe(true);
expect(wrapper.find("#copyableCollectionId").hostNodes().prop("value")).toBe(selectedCollectionId);
expect(wrapper.exists("#confirmCollectionId")).toBe(true); expect(wrapper.exists("#confirmCollectionId")).toBe(true);
wrapper wrapper
.find("#confirmCollectionId") .find("#confirmCollectionId")

View File

@@ -1,5 +1,4 @@
import { Text, TextField } from "@fluentui/react"; import { IconButton, Text, TextField } from "@fluentui/react";import { Areas } from "Common/Constants";
import { Areas } from "Common/Constants";
import DeleteFeedback from "Common/DeleteFeedback"; import DeleteFeedback from "Common/DeleteFeedback";
import { getErrorMessage, getErrorStack } from "Common/ErrorHandlingUtils"; import { getErrorMessage, getErrorStack } from "Common/ErrorHandlingUtils";
import { deleteCollection } from "Common/dataAccess/deleteCollection"; import { deleteCollection } from "Common/dataAccess/deleteCollection";
@@ -54,6 +53,10 @@ export const DeleteCollectionConfirmationPane: FunctionComponent<DeleteCollectio
const collectionName = getCollectionName().toLocaleLowerCase(); const collectionName = getCollectionName().toLocaleLowerCase();
const paneTitle = t(Keys.panes.deleteCollection.panelTitle, { collectionName }); const paneTitle = t(Keys.panes.deleteCollection.panelTitle, { collectionName });
const selectedCollection = useSelectedNode.getState().selectedNode
? useSelectedNode.getState().findSelectedCollection()
: undefined;
const selectedCollectionId = selectedCollection?.id() ?? "";
const onSubmit = async (): Promise<void> => { const onSubmit = async (): Promise<void> => {
const collection = useSelectedNode.getState().findSelectedCollection(); const collection = useSelectedNode.getState().findSelectedCollection();
@@ -131,6 +134,9 @@ export const DeleteCollectionConfirmationPane: FunctionComponent<DeleteCollectio
submitButtonText: t(Keys.common.ok), submitButtonText: t(Keys.common.ok),
onSubmit, onSubmit,
}; };
const copyableIdLabel = t(Keys.panes.deleteCollection.copyableId, {
collectionName: collectionName.toLowerCase(),
});
const confirmContainer = t(Keys.panes.deleteCollection.confirmPrompt, { const confirmContainer = t(Keys.panes.deleteCollection.confirmPrompt, {
collectionName: collectionName.toLowerCase(), collectionName: collectionName.toLowerCase(),
}); });
@@ -143,6 +149,25 @@ export const DeleteCollectionConfirmationPane: FunctionComponent<DeleteCollectio
<div className="panelFormWrapper"> <div className="panelFormWrapper">
<div className="panelMainContent"> <div className="panelMainContent">
<div className="confirmDeleteInput"> <div className="confirmDeleteInput">
<Text variant="small" style={{ color: "var(--colorNeutralForeground1)" }}>
{copyableIdLabel}
</Text>
<TextField
id="copyableCollectionId"
readOnly
value={selectedCollectionId}
styles={themedTextFieldStyles}
onRenderSuffix={() => (
<IconButton
iconProps={{ iconName: "Copy" }}
title={t(Keys.common.copy)}
ariaLabel={t(Keys.common.copy)}
onClick={() => navigator.clipboard.writeText(selectedCollectionId)}
styles={{ root: { height: "100%" } }}
/>
)}
ariaLabel={copyableIdLabel}
/>
<span className="mandatoryStar">* </span> <span className="mandatoryStar">* </span>
<Text variant="small" style={{ color: "var(--colorNeutralForeground1)" }}> <Text variant="small" style={{ color: "var(--colorNeutralForeground1)" }}>
{confirmContainer} {confirmContainer}

View File

@@ -62,13 +62,15 @@ describe("Delete Database Confirmation Pane", () => {
const wrapper = mount(<DeleteDatabaseConfirmationPanel refreshDatabases={() => undefined} />); const wrapper = mount(<DeleteDatabaseConfirmationPanel refreshDatabases={() => undefined} />);
expect(wrapper).toMatchSnapshot(); expect(wrapper).toMatchSnapshot();
expect(wrapper.exists("#confirmDatabaseId")).toBe(true); expect(wrapper.exists("#confirmDatabaseId")).toBe(true);
expect(wrapper.exists("#copyableDatabaseId")).toBe(true);
expect(wrapper.find("#copyableDatabaseId").hostNodes().prop("value")).toBe(selectedDatabaseId);
wrapper wrapper
.find("#confirmDatabaseId") .find("#confirmDatabaseId")
.hostNodes() .hostNodes()
.simulate("change", { target: { value: selectedDatabaseId } }); .simulate("change", { target: { value: selectedDatabaseId } });
expect(wrapper.exists("button")).toBe(true); expect(wrapper.exists("button")).toBe(true);
wrapper.find("button").hostNodes().simulate("submit"); wrapper.find("#sidePanelOkButton").hostNodes().simulate("submit");
expect(deleteDatabase).toHaveBeenCalledWith(selectedDatabaseId); expect(deleteDatabase).toHaveBeenCalledWith(selectedDatabaseId);
wrapper.unmount(); wrapper.unmount();
}); });

View File

@@ -1,4 +1,4 @@
import { Text, TextField } from "@fluentui/react"; import { IconButton, Text, TextField } from "@fluentui/react";
import { useBoolean } from "@fluentui/react-hooks"; import { useBoolean } from "@fluentui/react-hooks";
import { Areas } from "Common/Constants"; import { Areas } from "Common/Constants";
import DeleteFeedback from "Common/DeleteFeedback"; import DeleteFeedback from "Common/DeleteFeedback";
@@ -150,6 +150,7 @@ export const DeleteDatabaseConfirmationPanel: FunctionComponent<DeleteDatabaseCo
showErrorDetails: false, showErrorDetails: false,
message: t(Keys.panes.deleteDatabase.warningMessage), message: t(Keys.panes.deleteDatabase.warningMessage),
}; };
const copyableIdLabel = t(Keys.panes.deleteDatabase.copyableId, { databaseName: getDatabaseName() });
const confirmDatabase = t(Keys.panes.deleteDatabase.confirmPrompt, { databaseName: getDatabaseName() }); const confirmDatabase = t(Keys.panes.deleteDatabase.confirmPrompt, { databaseName: getDatabaseName() });
const reasonInfo = const reasonInfo =
t(Keys.panes.deleteDatabase.feedbackTitle) + t(Keys.panes.deleteDatabase.feedbackTitle) +
@@ -160,6 +161,25 @@ export const DeleteDatabaseConfirmationPanel: FunctionComponent<DeleteDatabaseCo
{!formError && <PanelInfoErrorComponent {...errorProps} />} {!formError && <PanelInfoErrorComponent {...errorProps} />}
<div className="panelMainContent"> <div className="panelMainContent">
<div className="confirmDeleteInput"> <div className="confirmDeleteInput">
<Text variant="small" style={{ color: "var(--colorNeutralForeground1)" }}>
{copyableIdLabel}
</Text>
<TextField
id="copyableDatabaseId"
readOnly
value={selectedDatabase?.id() ?? ""}
styles={themedTextFieldStyles}
onRenderSuffix={() => (
<IconButton
iconProps={{ iconName: "Copy" }}
title={t(Keys.common.copy)}
ariaLabel={t(Keys.common.copy)}
onClick={() => navigator.clipboard.writeText(selectedDatabase?.id() ?? "")}
styles={{ root: { height: "100%" } }}
/>
)}
ariaLabel={copyableIdLabel}
/>
<span className="mandatoryStar">* </span> <span className="mandatoryStar">* </span>
<Text variant="small" style={{ color: "var(--colorNeutralForeground1)" }}> <Text variant="small" style={{ color: "var(--colorNeutralForeground1)" }}>
{confirmDatabase} {confirmDatabase}

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "Odstranit databázi {{databaseName}}", "panelTitle": "Odstranit databázi {{databaseName}}",
"warningMessage": "Pozor! Akci, kterou se chystáte provést, nelze vrátit zpět. Pokračováním trvale odstraníte tento prostředek a všechny jeho podřízené prostředky.", "warningMessage": "Pozor! Akci, kterou se chystáte provést, nelze vrátit zpět. Pokračováním trvale odstraníte tento prostředek a všechny jeho podřízené prostředky.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Potvrďte zadáním ID (názvu) pro {{databaseName}}.", "confirmPrompt": "Potvrďte zadáním ID (názvu) pro {{databaseName}}.",
"inputMismatch": "Vstup {{databaseName}} s názvem {{input}} neodpovídá vybranému {{databaseName}} {{selectedId}}.", "inputMismatch": "Vstup {{databaseName}} s názvem {{input}} neodpovídá vybranému {{databaseName}} {{selectedId}}.",
"feedbackTitle": "Pomozte nám vylepšit Azure Cosmos DB!", "feedbackTitle": "Pomozte nám vylepšit Azure Cosmos DB!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "Odstranit {{collectionName}}", "panelTitle": "Odstranit {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Potvrďte zadáním ID {{collectionName}}.", "confirmPrompt": "Potvrďte zadáním ID {{collectionName}}.",
"inputMismatch": "Vstup s ID {{input}} neodpovídá vybranému {{selectedId}}.", "inputMismatch": "Vstup s ID {{input}} neodpovídá vybranému {{selectedId}}.",
"feedbackTitle": "Pomozte nám vylepšit Azure Cosmos DB!", "feedbackTitle": "Pomozte nám vylepšit Azure Cosmos DB!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "{{databaseName}} löschen", "panelTitle": "{{databaseName}} löschen",
"warningMessage": "Warnung! Die Aktion, die Sie ausführen möchten, kann nicht rückgängig gemacht werden. Wenn Sie fortfahren, werden diese Ressource und alle untergeordneten Ressourcen dauerhaft gelöscht.", "warningMessage": "Warnung! Die Aktion, die Sie ausführen möchten, kann nicht rückgängig gemacht werden. Wenn Sie fortfahren, werden diese Ressource und alle untergeordneten Ressourcen dauerhaft gelöscht.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Durch Eingabe der {{databaseName}}-ID (Name) bestätigen", "confirmPrompt": "Durch Eingabe der {{databaseName}}-ID (Name) bestätigen",
"inputMismatch": "Eingabe {{databaseName}} Name „{{input}}“ stimmt nicht mit dem ausgewählten {{databaseName}} „{{selectedId}}“ überein.", "inputMismatch": "Eingabe {{databaseName}} Name „{{input}}“ stimmt nicht mit dem ausgewählten {{databaseName}} „{{selectedId}}“ überein.",
"feedbackTitle": "Helfen Sie uns, Azure Cosmos DB zu verbessern!", "feedbackTitle": "Helfen Sie uns, Azure Cosmos DB zu verbessern!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "{{collectionName}} löschen", "panelTitle": "{{collectionName}} löschen",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Durch Eingabe der {{collectionName}}-ID bestätigen", "confirmPrompt": "Durch Eingabe der {{collectionName}}-ID bestätigen",
"inputMismatch": "Die Eingabe-ID {{input}} stimmt nicht mit der ausgewählten {{selectedId}} überein.", "inputMismatch": "Die Eingabe-ID {{input}} stimmt nicht mit der ausgewählten {{selectedId}} überein.",
"feedbackTitle": "Helfen Sie uns, Azure Cosmos DB zu verbessern!", "feedbackTitle": "Helfen Sie uns, Azure Cosmos DB zu verbessern!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "Delete {{databaseName}}", "panelTitle": "Delete {{databaseName}}",
"warningMessage": "Warning! The action you are about to take cannot be undone. Continuing will permanently delete this resource and all of its children resources.", "warningMessage": "Warning! The action you are about to take cannot be undone. Continuing will permanently delete this resource and all of its children resources.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Confirm by typing the {{databaseName}} id (name)", "confirmPrompt": "Confirm by typing the {{databaseName}} id (name)",
"inputMismatch": "Input {{databaseName}} name \"{{input}}\" does not match the selected {{databaseName}} \"{{selectedId}}\"", "inputMismatch": "Input {{databaseName}} name \"{{input}}\" does not match the selected {{databaseName}} \"{{selectedId}}\"",
"feedbackTitle": "Help us improve Azure Cosmos DB!", "feedbackTitle": "Help us improve Azure Cosmos DB!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "Delete {{collectionName}}", "panelTitle": "Delete {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Confirm by typing the {{collectionName}} id", "confirmPrompt": "Confirm by typing the {{collectionName}} id",
"inputMismatch": "Input id {{input}} does not match the selected {{selectedId}}", "inputMismatch": "Input id {{input}} does not match the selected {{selectedId}}",
"feedbackTitle": "Help us improve Azure Cosmos DB!", "feedbackTitle": "Help us improve Azure Cosmos DB!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "Eliminar {{databaseName}}", "panelTitle": "Eliminar {{databaseName}}",
"warningMessage": "¡Advertencia! La acción que va a realizar no se puede deshacer. Si continúa, se eliminará permanentemente este recurso y todos sus recursos secundarios.", "warningMessage": "¡Advertencia! La acción que va a realizar no se puede deshacer. Si continúa, se eliminará permanentemente este recurso y todos sus recursos secundarios.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Confirme escribiendo el {{databaseName}} identificador (nombre)", "confirmPrompt": "Confirme escribiendo el {{databaseName}} identificador (nombre)",
"inputMismatch": "El nombre de entrada {{databaseName}} \"{{input}}\" no coincide con el {{databaseName}} seleccionado \"{{selectedId}}\"", "inputMismatch": "El nombre de entrada {{databaseName}} \"{{input}}\" no coincide con el {{databaseName}} seleccionado \"{{selectedId}}\"",
"feedbackTitle": "Ayúdenos a mejorar Azure Cosmos DB.", "feedbackTitle": "Ayúdenos a mejorar Azure Cosmos DB.",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "Eliminar {{collectionName}}", "panelTitle": "Eliminar {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Confirme escribiendo el {{collectionName}} id.", "confirmPrompt": "Confirme escribiendo el {{collectionName}} id.",
"inputMismatch": "El id de entrada {{input}} no coincide con el seleccionado {{selectedId}}", "inputMismatch": "El id de entrada {{input}} no coincide con el seleccionado {{selectedId}}",
"feedbackTitle": "Ayúdenos a mejorar Azure Cosmos DB.", "feedbackTitle": "Ayúdenos a mejorar Azure Cosmos DB.",

View File

@@ -419,7 +419,8 @@
"panes": { "panes": {
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "Supprimer {{databaseName}}", "panelTitle": "Supprimer {{databaseName}}",
"warningMessage": "Attention ! Il ne sera pas possible dannuler cette action. Si vous continuez, cette ressource et toutes ses ressources enfants seront définitivement supprimées.", "warningMessage": "Attention ! Il ne sera pas possible dannuler cette action. Si vous continuez, cette ressource et toutes ses ressources enfants seront définitivement supprimées.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Confirmer en tapant lID de {{databaseName}} (nom)", "confirmPrompt": "Confirmer en tapant lID de {{databaseName}} (nom)",
"inputMismatch": "Le nom « {{input}} » de lentrée {{databaseName}} ne correspond pas au {{databaseName}} « {{selectedId}} » sélectionné", "inputMismatch": "Le nom « {{input}} » de lentrée {{databaseName}} ne correspond pas au {{databaseName}} « {{selectedId}} » sélectionné",
"feedbackTitle": "Aidez-nous à améliorer Azure Cosmos DB !", "feedbackTitle": "Aidez-nous à améliorer Azure Cosmos DB !",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "Supprimer {{collectionName}}", "panelTitle": "Supprimer {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Confirmer en tapant lID de {{collectionName}}", "confirmPrompt": "Confirmer en tapant lID de {{collectionName}}",
"inputMismatch": "LID dentrée {{input}} ne correspond pas à lID {{selectedId}} sélectionné", "inputMismatch": "LID dentrée {{input}} ne correspond pas à lID {{selectedId}} sélectionné",
"feedbackTitle": "Aidez-nous à améliorer Azure Cosmos DB !", "feedbackTitle": "Aidez-nous à améliorer Azure Cosmos DB !",
@@ -965,4 +967,5 @@
} }
} }
} }
} }

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "A(z) {{databaseName}} törlése", "panelTitle": "A(z) {{databaseName}} törlése",
"warningMessage": "Figyelem! A végrehajtani kívánt művelet nem vonható vissza. Ha folytatja, úgy véglegesen törli az erőforrást és annak minden gyermekerőforrását.", "warningMessage": "Figyelem! A végrehajtani kívánt művelet nem vonható vissza. Ha folytatja, úgy véglegesen törli az erőforrást és annak minden gyermekerőforrását.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Megerősítés a(z) {{databaseName}}-azonosító (név) beírásával", "confirmPrompt": "Megerősítés a(z) {{databaseName}}-azonosító (név) beírásával",
"inputMismatch": "A(z) {{databaseName}} bemenet {{input}} neve nem egyezik a kijelölt {{databaseName}} {{selectedId}} értékével", "inputMismatch": "A(z) {{databaseName}} bemenet {{input}} neve nem egyezik a kijelölt {{databaseName}} {{selectedId}} értékével",
"feedbackTitle": "Segítsen a Azure Cosmos DB továbbfejlesztésében!", "feedbackTitle": "Segítsen a Azure Cosmos DB továbbfejlesztésében!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "A(z) {{collectionName}} törlése", "panelTitle": "A(z) {{collectionName}} törlése",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Megerősítés a(z) {{collectionName}} azonosítójának beírásával", "confirmPrompt": "Megerősítés a(z) {{collectionName}} azonosítójának beírásával",
"inputMismatch": "A(z) {{input}} bemeneti azonosító nem egyezik a kijelölt {{selectedId}} értékével", "inputMismatch": "A(z) {{input}} bemeneti azonosító nem egyezik a kijelölt {{selectedId}} értékével",
"feedbackTitle": "Segítsen a Azure Cosmos DB továbbfejlesztésében!", "feedbackTitle": "Segítsen a Azure Cosmos DB továbbfejlesztésében!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "Hapus {{databaseName}}", "panelTitle": "Hapus {{databaseName}}",
"warningMessage": "Peringatan! Tindakan yang akan Anda lakukan tidak dapat dibatalkan. Melanjutkan akan menghapus sumber daya dan semua sumber daya anaknya secara permanen.", "warningMessage": "Peringatan! Tindakan yang akan Anda lakukan tidak dapat dibatalkan. Melanjutkan akan menghapus sumber daya dan semua sumber daya anaknya secara permanen.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Konfirmasikan dengan mengetik id {{databaseName}} (nama)", "confirmPrompt": "Konfirmasikan dengan mengetik id {{databaseName}} (nama)",
"inputMismatch": "Nama {{databaseName}} input \"{{input}}\" tidak cocok dengan {{databaseName}} \"{{selectedId}}\" yang dipilih", "inputMismatch": "Nama {{databaseName}} input \"{{input}}\" tidak cocok dengan {{databaseName}} \"{{selectedId}}\" yang dipilih",
"feedbackTitle": "Bantuan kami meningkatkan Azure Cosmos DB!", "feedbackTitle": "Bantuan kami meningkatkan Azure Cosmos DB!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "Hapus {{collectionName}}", "panelTitle": "Hapus {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Konfirmasikan dengan mengetik id {{collectionName}}", "confirmPrompt": "Konfirmasikan dengan mengetik id {{collectionName}}",
"inputMismatch": "Id input {{input}} tidak cocok dengan {{selectedId}} yang dipilih", "inputMismatch": "Id input {{input}} tidak cocok dengan {{selectedId}} yang dipilih",
"feedbackTitle": "Bantuan kami meningkatkan Azure Cosmos DB!", "feedbackTitle": "Bantuan kami meningkatkan Azure Cosmos DB!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "Elimina {{databaseName}}", "panelTitle": "Elimina {{databaseName}}",
"warningMessage": "Avviso! L'azione che si sta per eseguire non può essere annullata. Se si continua, la risorsa verrà definitivamente eliminata insieme a tutte le relative risorse figlio.", "warningMessage": "Avviso! L'azione che si sta per eseguire non può essere annullata. Se si continua, la risorsa verrà definitivamente eliminata insieme a tutte le relative risorse figlio.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Conferma digitando l'ID {{databaseName}} (nome)", "confirmPrompt": "Conferma digitando l'ID {{databaseName}} (nome)",
"inputMismatch": "Il nome di input {{databaseName}} \"{{input}}\" non corrisponde all'elemento {{databaseName}} selezionato \"{{selectedId}}\"", "inputMismatch": "Il nome di input {{databaseName}} \"{{input}}\" non corrisponde all'elemento {{databaseName}} selezionato \"{{selectedId}}\"",
"feedbackTitle": "Aiutaci a migliorare Azure Cosmos DB!", "feedbackTitle": "Aiutaci a migliorare Azure Cosmos DB!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "Elimina {{collectionName}}", "panelTitle": "Elimina {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Conferma digitando l'ID {{collectionName}}", "confirmPrompt": "Conferma digitando l'ID {{collectionName}}",
"inputMismatch": "L'ID input {{input}} non corrisponde all'elemento {{selectedId}} selezionato", "inputMismatch": "L'ID input {{input}} non corrisponde all'elemento {{selectedId}} selezionato",
"feedbackTitle": "Aiutaci a migliorare Azure Cosmos DB!", "feedbackTitle": "Aiutaci a migliorare Azure Cosmos DB!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "{{databaseName}} の削除", "panelTitle": "{{databaseName}} の削除",
"warningMessage": "警告!実行しようとしている操作を元に戻すことはできません。続行すると、このリソースとそのすべての子リソースが完全に削除されます。", "warningMessage": "警告!実行しようとしている操作を元に戻すことはできません。続行すると、このリソースとそのすべての子リソースが完全に削除されます。",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "{{databaseName}} ID (名前) を入力して確認してください", "confirmPrompt": "{{databaseName}} ID (名前) を入力して確認してください",
"inputMismatch": "入力 {{databaseName}} 名 \"{{input}}\" が、選択した {{databaseName}} \"{{selectedId}}\" と一致しません", "inputMismatch": "入力 {{databaseName}} 名 \"{{input}}\" が、選択した {{databaseName}} \"{{selectedId}}\" と一致しません",
"feedbackTitle": "Azure Cosmos DB の改善にご協力ください。", "feedbackTitle": "Azure Cosmos DB の改善にご協力ください。",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "{{collectionName}} の削除", "panelTitle": "{{collectionName}} の削除",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "{{collectionName}} ID を入力して確認してください", "confirmPrompt": "{{collectionName}} ID を入力して確認してください",
"inputMismatch": "入力 ID {{input}} が選択した {{selectedId}} と一致しません", "inputMismatch": "入力 ID {{input}} が選択した {{selectedId}} と一致しません",
"feedbackTitle": "Azure Cosmos DB の改善にご協力ください。", "feedbackTitle": "Azure Cosmos DB の改善にご協力ください。",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "{{databaseName}} 삭제", "panelTitle": "{{databaseName}} 삭제",
"warningMessage": "경고! 수행하려는 작업은 실행 취소할 수 없습니다. 계속하면 이 리소스와 모든 자식 리소스가 영구적으로 삭제됩니다.", "warningMessage": "경고! 수행하려는 작업은 실행 취소할 수 없습니다. 계속하면 이 리소스와 모든 자식 리소스가 영구적으로 삭제됩니다.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "{{databaseName}} ID(이름)를 입력하여 확인", "confirmPrompt": "{{databaseName}} ID(이름)를 입력하여 확인",
"inputMismatch": "입력한 {{databaseName}} 이름 \"{{input}}\"이(가) 선택한 {{databaseName}} \"{{selectedId}}\"와(과) 일치하지 않습니다.", "inputMismatch": "입력한 {{databaseName}} 이름 \"{{input}}\"이(가) 선택한 {{databaseName}} \"{{selectedId}}\"와(과) 일치하지 않습니다.",
"feedbackTitle": "Azure Cosmos DB 개선에 도움을 주세요!", "feedbackTitle": "Azure Cosmos DB 개선에 도움을 주세요!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "{{collectionName}} 삭제", "panelTitle": "{{collectionName}} 삭제",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "{{collectionName}} ID를 입력하여 확인하세요", "confirmPrompt": "{{collectionName}} ID를 입력하여 확인하세요",
"inputMismatch": "입력한 ID {{input}}이(가) 선택한 {{selectedId}}와(과) 일치하지 않습니다.", "inputMismatch": "입력한 ID {{input}}이(가) 선택한 {{selectedId}}와(과) 일치하지 않습니다.",
"feedbackTitle": "Azure Cosmos DB 개선에 도움을 주세요!", "feedbackTitle": "Azure Cosmos DB 개선에 도움을 주세요!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "{{databaseName}} verwijderen", "panelTitle": "{{databaseName}} verwijderen",
"warningMessage": "Waarschuwing! De actie die u gaat uitvoeren kan niet ongedaan worden gemaakt. Als u doorgaat, worden deze resource en alle onderliggende resources permanent verwijderd.", "warningMessage": "Waarschuwing! De actie die u gaat uitvoeren kan niet ongedaan worden gemaakt. Als u doorgaat, worden deze resource en alle onderliggende resources permanent verwijderd.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Bevestig door de {{databaseName}}-id (naam) te typen", "confirmPrompt": "Bevestig door de {{databaseName}}-id (naam) te typen",
"inputMismatch": "Invoernaam {{databaseName}} naam '{{input}}' komt niet overeen met de geselecteerde {{databaseName}} '{{selectedId}}'", "inputMismatch": "Invoernaam {{databaseName}} naam '{{input}}' komt niet overeen met de geselecteerde {{databaseName}} '{{selectedId}}'",
"feedbackTitle": "Help ons Azure Cosmos DB te verbeteren.", "feedbackTitle": "Help ons Azure Cosmos DB te verbeteren.",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "{{collectionName}} verwijderen", "panelTitle": "{{collectionName}} verwijderen",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Bevestig door de {{collectionName}}-id te typen", "confirmPrompt": "Bevestig door de {{collectionName}}-id te typen",
"inputMismatch": "Invoer-id {{input}} komt niet overeen met de geselecteerde {{selectedId}}", "inputMismatch": "Invoer-id {{input}} komt niet overeen met de geselecteerde {{selectedId}}",
"feedbackTitle": "Help ons Azure Cosmos DB te verbeteren.", "feedbackTitle": "Help ons Azure Cosmos DB te verbeteren.",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "Usuń {{databaseName}}", "panelTitle": "Usuń {{databaseName}}",
"warningMessage": "Ostrzeżenie! Akcji, którą zamierzasz wykonać, nie można cofnąć. Kontynuowanie spowoduje trwałe usunięcie tego zasobu i wszystkich jego zasobów podrzędnych.", "warningMessage": "Ostrzeżenie! Akcji, którą zamierzasz wykonać, nie można cofnąć. Kontynuowanie spowoduje trwałe usunięcie tego zasobu i wszystkich jego zasobów podrzędnych.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Potwierdź, wpisując identyfikator {{databaseName}} (nazwa)", "confirmPrompt": "Potwierdź, wpisując identyfikator {{databaseName}} (nazwa)",
"inputMismatch": "Nazwa wejściowa {{databaseName}} „{{input}}” nie pasuje do wybranej nazwy {{databaseName}} „{{selectedId}}”", "inputMismatch": "Nazwa wejściowa {{databaseName}} „{{input}}” nie pasuje do wybranej nazwy {{databaseName}} „{{selectedId}}”",
"feedbackTitle": "Pomóż nam ulepszać usługę Azure Cosmos DB!", "feedbackTitle": "Pomóż nam ulepszać usługę Azure Cosmos DB!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "Usuń {{collectionName}}", "panelTitle": "Usuń {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Potwierdź, wpisując identyfikator {{collectionName}}", "confirmPrompt": "Potwierdź, wpisując identyfikator {{collectionName}}",
"inputMismatch": "Identyfikator wejściowy {{input}} jest niezgodny z wybranym {{selectedId}}", "inputMismatch": "Identyfikator wejściowy {{input}} jest niezgodny z wybranym {{selectedId}}",
"feedbackTitle": "Pomóż nam ulepszać usługę Azure Cosmos DB!", "feedbackTitle": "Pomóż nam ulepszać usługę Azure Cosmos DB!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "Excluir {{databaseName}}", "panelTitle": "Excluir {{databaseName}}",
"warningMessage": "Aviso! A ação que você está prestes a realizar não pode ser desfeita. Continuar excluirá permanentemente esse recurso e todos os seus recursos filhos.", "warningMessage": "Aviso! A ação que você está prestes a realizar não pode ser desfeita. Continuar excluirá permanentemente esse recurso e todos os seus recursos filhos.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Confirme digitando a ID de {{databaseName}} (nome)", "confirmPrompt": "Confirme digitando a ID de {{databaseName}} (nome)",
"inputMismatch": "O nome de entrada {{databaseName}} \"{{input}}\" não corresponde ao {{databaseName}} selecionado \"{{selectedId}}\"", "inputMismatch": "O nome de entrada {{databaseName}} \"{{input}}\" não corresponde ao {{databaseName}} selecionado \"{{selectedId}}\"",
"feedbackTitle": "Ajude-nos a melhorar o Azure Cosmos DB!", "feedbackTitle": "Ajude-nos a melhorar o Azure Cosmos DB!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "Excluir {{collectionName}}", "panelTitle": "Excluir {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Confirme digitando a ID de {{collectionName}}", "confirmPrompt": "Confirme digitando a ID de {{collectionName}}",
"inputMismatch": "A ID de entrada {{input}} não corresponde à {{selectedId}} selecionada", "inputMismatch": "A ID de entrada {{input}} não corresponde à {{selectedId}} selecionada",
"feedbackTitle": "Ajude-nos a melhorar o Azure Cosmos DB!", "feedbackTitle": "Ajude-nos a melhorar o Azure Cosmos DB!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "Eliminar {{databaseName}}", "panelTitle": "Eliminar {{databaseName}}",
"warningMessage": "Aviso! A ação que está prestes a efetuar não pode ser anulada. Se continuar, este recurso e todos os seus recursos subordinados serão eliminados permanentemente.", "warningMessage": "Aviso! A ação que está prestes a efetuar não pode ser anulada. Se continuar, este recurso e todos os seus recursos subordinados serão eliminados permanentemente.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Confirmar escrevendo o {{databaseName}} id (nome)", "confirmPrompt": "Confirmar escrevendo o {{databaseName}} id (nome)",
"inputMismatch": "O nome \"{{databaseName}}\" da entrada {{input}} não corresponde ao {{databaseName}} \"{{selectedId}}\" selecionado.", "inputMismatch": "O nome \"{{databaseName}}\" da entrada {{input}} não corresponde ao {{databaseName}} \"{{selectedId}}\" selecionado.",
"feedbackTitle": "Ajude-nos a melhorar o Azure Cosmos DB!", "feedbackTitle": "Ajude-nos a melhorar o Azure Cosmos DB!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "Eliminar {{collectionName}}", "panelTitle": "Eliminar {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Confirmar escrevendo o {{collectionName}} id", "confirmPrompt": "Confirmar escrevendo o {{collectionName}} id",
"inputMismatch": "O ID de entrada {{input}} não corresponde ao {{selectedId}} selecionado", "inputMismatch": "O ID de entrada {{input}} não corresponde ao {{selectedId}} selecionado",
"feedbackTitle": "Ajude-nos a melhorar o Azure Cosmos DB!", "feedbackTitle": "Ajude-nos a melhorar o Azure Cosmos DB!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "Удалить {{databaseName}}", "panelTitle": "Удалить {{databaseName}}",
"warningMessage": "Предупреждение! Действие, которое вы собираетесь предпринять, невозможно отменить. Если вы продолжите, ресурс и все его дочерние ресурсы будут удалены без возможности восстановления.", "warningMessage": "Предупреждение! Действие, которое вы собираетесь предпринять, невозможно отменить. Если вы продолжите, ресурс и все его дочерние ресурсы будут удалены без возможности восстановления.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Подтвердите, введя идентификатор {{databaseName}} (имя)", "confirmPrompt": "Подтвердите, введя идентификатор {{databaseName}} (имя)",
"inputMismatch": "Введённое имя базы данных {{databaseName}} \"{{input}}\" не соответствует выбранному {{databaseName}} \"{{selectedId}}\"", "inputMismatch": "Введённое имя базы данных {{databaseName}} \"{{input}}\" не соответствует выбранному {{databaseName}} \"{{selectedId}}\"",
"feedbackTitle": "Помогите нам улучшить Azure Cosmos DB!", "feedbackTitle": "Помогите нам улучшить Azure Cosmos DB!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "Удалить {{collectionName}}", "panelTitle": "Удалить {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Подтвердите, введя идентификатор {{collectionName}}", "confirmPrompt": "Подтвердите, введя идентификатор {{collectionName}}",
"inputMismatch": "Введённое имя базы данных {{input}} не соответствует выбранному {{selectedId}}", "inputMismatch": "Введённое имя базы данных {{input}} не соответствует выбранному {{selectedId}}",
"feedbackTitle": "Помогите нам улучшить Azure Cosmos DB!", "feedbackTitle": "Помогите нам улучшить Azure Cosmos DB!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "Ta bort {{databaseName}}", "panelTitle": "Ta bort {{databaseName}}",
"warningMessage": "Varning! Den åtgärd du är i färd med att genomföra kan du inte ångra senare. Om du fortsätter tas den här resursen och alla dess underordnade resurser bort permanent.", "warningMessage": "Varning! Den åtgärd du är i färd med att genomföra kan du inte ångra senare. Om du fortsätter tas den här resursen och alla dess underordnade resurser bort permanent.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "Bekräfta genom att skriva ID:t {{databaseName}} (namn)", "confirmPrompt": "Bekräfta genom att skriva ID:t {{databaseName}} (namn)",
"inputMismatch": "{{databaseName}}Indatanamnet {{input}} matchar inte det valda {{databaseName}} {{selectedId}}", "inputMismatch": "{{databaseName}}Indatanamnet {{input}} matchar inte det valda {{databaseName}} {{selectedId}}",
"feedbackTitle": "Hjälp oss att förbättra Azure Cosmos DB!", "feedbackTitle": "Hjälp oss att förbättra Azure Cosmos DB!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "Ta bort {{collectionName}}", "panelTitle": "Ta bort {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "Bekräfta genom att skriva ID:t {{collectionName}} ", "confirmPrompt": "Bekräfta genom att skriva ID:t {{collectionName}} ",
"inputMismatch": "Indata-ID {{input}} matchar inte det valda {{selectedId}}", "inputMismatch": "Indata-ID {{input}} matchar inte det valda {{selectedId}}",
"feedbackTitle": "Hjälp oss att förbättra Azure Cosmos DB!", "feedbackTitle": "Hjälp oss att förbättra Azure Cosmos DB!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "{{databaseName}} veritabanını sil", "panelTitle": "{{databaseName}} veritabanını sil",
"warningMessage": "Uyarı! Gerçekleştirmek üzere olduğunuz eylem geri alınamaz. Devam etmeniz durumunda, bu kaynak ve tüm alt kaynakları kalıcı olarak silinir.", "warningMessage": "Uyarı! Gerçekleştirmek üzere olduğunuz eylem geri alınamaz. Devam etmeniz durumunda, bu kaynak ve tüm alt kaynakları kalıcı olarak silinir.",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "{{databaseName}} kimliğini (adını) yazarak onaylayın", "confirmPrompt": "{{databaseName}} kimliğini (adını) yazarak onaylayın",
"inputMismatch": "{{databaseName}} girişi \"{{input}}\" adı seçilen {{databaseName}} \"{{selectedId}}\" ile eşleşmiyor", "inputMismatch": "{{databaseName}} girişi \"{{input}}\" adı seçilen {{databaseName}} \"{{selectedId}}\" ile eşleşmiyor",
"feedbackTitle": "Azure Cosmos DByi geliştirmemize yardımcı olun!", "feedbackTitle": "Azure Cosmos DByi geliştirmemize yardımcı olun!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "{{collectionName}} koleksiyonunu sil", "panelTitle": "{{collectionName}} koleksiyonunu sil",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "{{collectionName}} kimliğini yazarak onaylayın", "confirmPrompt": "{{collectionName}} kimliğini yazarak onaylayın",
"inputMismatch": "{{input}} giriş kimliği seçilen {{selectedId}} ile eşleşmiyor", "inputMismatch": "{{input}} giriş kimliği seçilen {{selectedId}} ile eşleşmiyor",
"feedbackTitle": "Azure Cosmos DByi geliştirmemize yardımcı olun!", "feedbackTitle": "Azure Cosmos DByi geliştirmemize yardımcı olun!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "删除 {{databaseName}}", "panelTitle": "删除 {{databaseName}}",
"warningMessage": "警告!你将执行的操作无法撤消。继续操作将永久删除此资源及其所有子资源。", "warningMessage": "警告!你将执行的操作无法撤消。继续操作将永久删除此资源及其所有子资源。",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "通过键入 {{databaseName}} ID(名称)进行确认", "confirmPrompt": "通过键入 {{databaseName}} ID(名称)进行确认",
"inputMismatch": "输入的 {{databaseName}} 名称 '{{input}}' 与所选的 {{databaseName}} '{{selectedId}}' 不匹配", "inputMismatch": "输入的 {{databaseName}} 名称 '{{input}}' 与所选的 {{databaseName}} '{{selectedId}}' 不匹配",
"feedbackTitle": "帮助我们改进 Azure Cosmos DB!", "feedbackTitle": "帮助我们改进 Azure Cosmos DB!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "删除 {{collectionName}}", "panelTitle": "删除 {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "通过键入 {{collectionName}} ID 进行确认", "confirmPrompt": "通过键入 {{collectionName}} ID 进行确认",
"inputMismatch": "输入 id {{input}} 与所选 {{selectedId}} 不匹配", "inputMismatch": "输入 id {{input}} 与所选 {{selectedId}} 不匹配",
"feedbackTitle": "帮助我们改进 Azure Cosmos DB!", "feedbackTitle": "帮助我们改进 Azure Cosmos DB!",

View File

@@ -420,6 +420,7 @@
"deleteDatabase": { "deleteDatabase": {
"panelTitle": "刪除 {{databaseName}}", "panelTitle": "刪除 {{databaseName}}",
"warningMessage": "警告!您即將進行的動作無法復原。繼續將會永久刪除此資源及其所有子資源。", "warningMessage": "警告!您即將進行的動作無法復原。繼續將會永久刪除此資源及其所有子資源。",
"copyableId": "{{databaseName}} id:",
"confirmPrompt": "輸入 {{databaseName}} 識別碼 (名稱) 以確認", "confirmPrompt": "輸入 {{databaseName}} 識別碼 (名稱) 以確認",
"inputMismatch": "輸入 {{databaseName}} 名稱 \"{{input}}\" 與選取的 {{databaseName}} \"{{selectedId}}\" 不符", "inputMismatch": "輸入 {{databaseName}} 名稱 \"{{input}}\" 與選取的 {{databaseName}} \"{{selectedId}}\" 不符",
"feedbackTitle": "協助我們改進 Azure Cosmos DB!", "feedbackTitle": "協助我們改進 Azure Cosmos DB!",
@@ -427,6 +428,7 @@
}, },
"deleteCollection": { "deleteCollection": {
"panelTitle": "刪除 {{collectionName}}", "panelTitle": "刪除 {{collectionName}}",
"copyableId": "{{collectionName}} id:",
"confirmPrompt": "輸入 {{collectionName}} 識別碼以確認", "confirmPrompt": "輸入 {{collectionName}} 識別碼以確認",
"inputMismatch": "輸入識別碼 {{input}} 與選取的 {{selectedId}} 不符", "inputMismatch": "輸入識別碼 {{input}} 與選取的 {{selectedId}} 不符",
"feedbackTitle": "協助我們改進 Azure Cosmos DB!", "feedbackTitle": "協助我們改進 Azure Cosmos DB!",