);
}
diff --git a/src/messages/GE.json b/src/messages/GE.json
index a90765595..75bb9cd0d 100644
--- a/src/messages/GE.json
+++ b/src/messages/GE.json
@@ -17,7 +17,7 @@
" with your work or school account from Microsoft.": " with your work or school account from Microsoft.",
"Submit": "Submit",
"Using demo tenant": "You are currently using a sample account.",
- "To access your own data:": "To access your own data:",
+ "To access your own data:": "Sign in to access your own data.",
"sign out": "Sign out",
"History": "History",
"Method": "Method",
@@ -352,5 +352,6 @@
"Missing url": "Please enter a valid url to run the query",
"This response contains an @odata property.": "This response contains an @odata property.",
"Click here to follow the link": "Click here to follow the link",
- "Signing you out...": "Signing you out..."
+ "Signing you out...": "Signing you out...",
+ "Admin consent not required": "Admin consent is not required"
}
\ No newline at end of file
diff --git a/src/messages/GE_de-DE.json b/src/messages/GE_de-DE.json
index 697946bcd..f547c97d7 100644
--- a/src/messages/GE_de-DE.json
+++ b/src/messages/GE_de-DE.json
@@ -346,11 +346,29 @@
"JSON Schema": "JSON-Vorlage",
"Report an Issue": "Melden eines Problems",
"Maximize sidebar": "Maximieren der Randleiste",
- "Getting your access token": "Ihr Zugriffstoken wird abgerufen",
- "This response contains an @odata.nextLink property.": "Dies Antwort beinhaltet eine Eigenschaft @odata.nextLink.",
- "Click here to go to the next page": "Klicken Sie hier, um zur nächsten Seite zu gehen",
+ "Getting your access token": "Ihr Zugriffstoken wird abgerufen.",
"and experiment on": " und experimentieren mit",
"Scope consent failed": "Umfangsgenehmigung fehlgeschlagen",
- "Missing url": "Geben Sie eine gültige URL ein, um die Abfrage auszuführen",
- "Signing you out...": "Abmelden..."
+ "Missing url": "Geben Sie eine gültige URL ein, um die Abfrage auszuführen.",
+ "This response contains an @odata property.": "Dies Antwort beinhaltet eine @odata Eigenschaft.",
+ "Click here to follow the link": "Klicken Sie hier, um dem Link zu folgen.",
+ "Signing you out...": "Abmelden...",
+ "Feedback": "Haben Sie Feedback?",
+ "Comment question": "Erzählen Sie uns mehr von Ihren Erfahrungen",
+ "Prompt question": "Wir freuen uns über Ihr Feedback!",
+ "No": "Nein",
+ "Yes": "Ja",
+ "Rating question": "Wie einfach war die Anwendung von Graph Explorer im Allgemeinen?",
+ "title": "Graph Explorer Feedback",
+ "Extremely difficult": "Äußerst schwierig",
+ "Slightly difficult": "Etwas schwierig",
+ "Neither easy nor difficult": "Weder einfach noch schwierig",
+ "Slightly easy": "Etwas einfacher",
+ "Extremely easy": "Äußerst einfach",
+ "Ratiing": "Bewertung",
+ "Email (optional)": "E-Mail-Optionen",
+ "You can contact me about this feedback": "Sie können mich zu diesem Feedback kontaktieren",
+ "Privacy Statement": "Datenschutzbestimmungen",
+ "Submitted Successfully": "Erfolgreich übermittelt",
+ "Privacy consent": "Durch das Absenden bestätigen Sie, dass Ihr Feedback zur Verbesserung von Microsoft-Produkten und -Diensten verwendet wird. Ihr IT-Administrator kann diese Daten sammeln."
}
\ No newline at end of file
diff --git a/src/messages/GE_es-ES.json b/src/messages/GE_es-ES.json
index e5287825b..d268354b6 100644
--- a/src/messages/GE_es-ES.json
+++ b/src/messages/GE_es-ES.json
@@ -347,10 +347,28 @@
"Report an Issue": "Informar de un problema",
"Maximize sidebar": "Maximizar la barra lateral",
"Getting your access token": "Obtener el token de acceso",
- "This response contains an @odata.nextLink property.": "Esta respuesta contiene una propiedad @odata.nextLink.",
- "Click here to go to the next page": "Haga clic aquí para ir a la página siguiente",
"and experiment on": " y experimentar con",
"Scope consent failed": "Error en el consentimiento del ámbito",
"Missing url": "Escriba una dirección URL válida para ejecutar la consulta",
- "Signing you out...": "Cerrando sesión..."
+ "This response contains an @odata property.": "Esta respuesta contiene una propiedad @odata.",
+ "Click here to follow the link": "Haga clic aquí para seguir el vínculo",
+ "Signing you out...": "Cerrando sesión...",
+ "Feedback": "¿Tiene comentarios?",
+ "Comment question": "Cuéntenos más sobre su experiencia",
+ "Prompt question": "Nos encantaría recibir sus comentarios",
+ "No": "No",
+ "Yes": "Sí",
+ "Rating question": "En general, ¿le resultó fácil usar el probador de Graph?",
+ "title": "Comentarios sobre el probador de Graph",
+ "Extremely difficult": "Muy difícil",
+ "Slightly difficult": "Bastante difícil",
+ "Neither easy nor difficult": "Ni fácil ni difícil",
+ "Slightly easy": "Bastante fácil",
+ "Extremely easy": "Muy fácil",
+ "Ratiing": "Calificación",
+ "Email (optional)": "Correo electrónico (opcional)",
+ "You can contact me about this feedback": "Puede ponerse en contacto conmigo para obtener estos comentarios",
+ "Privacy Statement": "Declaración de privacidad",
+ "Submitted Successfully": "Enviado correctamente",
+ "Privacy consent": "Al presionar Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. Su administrador de TI podrá recopilar estos datos"
}
\ No newline at end of file
diff --git a/src/messages/GE_fr-FR.json b/src/messages/GE_fr-FR.json
index 3f670cffc..e50ae5cc2 100644
--- a/src/messages/GE_fr-FR.json
+++ b/src/messages/GE_fr-FR.json
@@ -346,11 +346,29 @@
"JSON Schema": "Modèle JSON",
"Report an Issue": "Signaler un problème",
"Maximize sidebar": "Agrandir la barre latérale",
- "Getting your access token": "Obtenir le jeton d'accès",
- "This response contains an @odata.nextLink property.": "Cette réponse contient une propriété @odata.nextLink.",
- "Click here to go to the next page": "Cliquez ici pour aller à la page suivante",
+ "Getting your access token": "Obtenir votre jeton d'accès",
"and experiment on": " et expérimenter sur",
"Scope consent failed": "Échec du consentement pour l’étendue",
- "Missing url": "Veuillez entrez une url valide pour exécuter la requête",
- "Signing you out...": "Déconnexion en cours..."
+ "Missing url": "Veuillez entrez une URL valide pour exécuter la requête",
+ "This response contains an @odata property.": "Cette réponse contient une propriété @odata.",
+ "Click here to follow the link": "Cliquez ici pour suivre le lien",
+ "Signing you out...": "Déconnexion en cours...",
+ "Feedback": "Vous avez des commentaires ?",
+ "Comment question": "Donnez-nous plus d’informations sur votre expérience",
+ "Prompt question": "Nous aimerions connaître votre avis",
+ "No": "Non",
+ "Yes": "Oui",
+ "Rating question": "Globalement, a-t-il été facile d’utiliser l’Afficheur Graph ?",
+ "title": "Commentaires de l’Afficheur Graph",
+ "Extremely difficult": "Extrêmement difficile",
+ "Slightly difficult": "Légèrement difficile",
+ "Neither easy nor difficult": "Ni facile ni difficile",
+ "Slightly easy": "Légèrement facile",
+ "Extremely easy": "Extrêmement facile",
+ "Ratiing": "Evaluation",
+ "Email (optional)": "E-mail (facultatif)",
+ "You can contact me about this feedback": "Vous pouvez me contacter à propos de ces commentaires",
+ "Privacy Statement": "Déclaration de confidentialité",
+ "Submitted Successfully": "Soumis avec succès",
+ "Privacy consent": "En appuyant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services Microsoft. Votre administrateur informatique pourra collecter ces données"
}
\ No newline at end of file
diff --git a/src/messages/GE_ja-JP.json b/src/messages/GE_ja-JP.json
index c40d30139..62cf2d44d 100644
--- a/src/messages/GE_ja-JP.json
+++ b/src/messages/GE_ja-JP.json
@@ -347,10 +347,28 @@
"Report an Issue": "問題の報告",
"Maximize sidebar": "サイド バーを最大化する",
"Getting your access token": "アクセス トークンを取得する",
- "This response contains an @odata.nextLink property.": "この応答には、@odata.nextLink プロパティが含まれています。",
- "Click here to go to the next page": "次のページに移動して実験するには、",
"and experiment on": " ここをクリックしてください",
"Scope consent failed": "スコープの同意に失敗しました",
"Missing url": "クエリを実行するには、有効な URL を入力してください",
- "Signing you out...": "サインアウトしています..."
+ "This response contains an @odata property.": "この応答には、@odata プロパティが含まれています。",
+ "Click here to follow the link": "ここをクリックしてリンクをフォローします",
+ "Signing you out...": "サインアウトしています...",
+ "Feedback": "フィードバックがありますか?",
+ "Comment question": "体験談をお聞かせください",
+ "Prompt question": "ご意見をお寄せください",
+ "No": "いいえ",
+ "Yes": "はい",
+ "Rating question": "Graph エクスプローラーを全体的に簡単に使用する方法",
+ "title": "Graph エクスプローラーのフィードバック",
+ "Extremely difficult": "極めて難しい",
+ "Slightly difficult": "若干難しい",
+ "Neither easy nor difficult": "簡単でも難しくもない",
+ "Slightly easy": "少し簡単",
+ "Extremely easy": "極めて簡単",
+ "Ratiing": "評価",
+ "Email (optional)": "メール (オプション)",
+ "You can contact me about this feedback": "このフィードバックについてお問い合わせできます",
+ "Privacy Statement": "プライバシーに関する声明",
+ "Submitted Successfully": "正常に送信しました",
+ "Privacy consent": "[送信] を押すと、お客様のフィードバックが Microsoft の製品およびサービス向上に活用されます。IT 管理者がこのデータを修正できるようになります"
}
\ No newline at end of file
diff --git a/src/messages/GE_pt-BR.json b/src/messages/GE_pt-BR.json
index 7dab9f0cc..ed6f3a0f1 100644
--- a/src/messages/GE_pt-BR.json
+++ b/src/messages/GE_pt-BR.json
@@ -347,10 +347,28 @@
"Report an Issue": "Relatar um Problema",
"Maximize sidebar": "Maximizar a barra lateral",
"Getting your access token": "Obtendo seu token de acesso",
- "This response contains an @odata.nextLink property.": "Essa resposta contém uma propriedade @odata.nextLink.",
- "Click here to go to the next page": "Clique aqui para ir à próxima página",
"and experiment on": " e experimente",
"Scope consent failed": "O consentimento do escopo falhou",
- "Missing url": "Inserir uma url válida para executar a consulta",
- "Signing you out...": "Desconectando você..."
+ "Missing url": "Inserir um URL válido para executar a consulta",
+ "This response contains an @odata property.": "Esta resposta contém uma propriedade @odata.",
+ "Click here to follow the link": "Clique aqui para seguir o link",
+ "Signing you out...": "Saindo...",
+ "Feedback": "Tem comentários?",
+ "Comment question": "Conte-nos mais sobre sua experiência",
+ "Prompt question": "Gostaríamos de receber os seus comentários!",
+ "No": "Não",
+ "Yes": "Sim",
+ "Rating question": "Em geral, como foi fácil usar o Explorador do Graph?",
+ "title": "Comentários sobre o Explorador do Graph",
+ "Extremely difficult": "Extremamente difícil",
+ "Slightly difficult": "Ligeiramente difícil",
+ "Neither easy nor difficult": "Nem fácil nem difícil",
+ "Slightly easy": "Ligeiramente fácil",
+ "Extremely easy": "Extremamente fácil",
+ "Ratiing": "Classificação",
+ "Email (optional)": "Email (opcional)",
+ "You can contact me about this feedback": "Você pode me contatar sobre este comentário",
+ "Privacy Statement": "Política de Privacidade",
+ "Submitted Successfully": "Enviado com Êxito",
+ "Privacy consent": "Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados"
}
\ No newline at end of file
diff --git a/src/messages/GE_ru-RU.json b/src/messages/GE_ru-RU.json
index 06b9fb86d..3658a01d4 100644
--- a/src/messages/GE_ru-RU.json
+++ b/src/messages/GE_ru-RU.json
@@ -347,10 +347,28 @@
"Report an Issue": "Сообщить о проблеме",
"Maximize sidebar": "Развернуть боковую панель",
"Getting your access token": "Получение маркера доступа",
- "This response contains an @odata.nextLink property.": "Этот ответ содержит свойство @odata.nextLink.",
- "Click here to go to the next page": "Щелкните здесь, чтобы перейти к следующей странице",
"and experiment on": " и поэкспериментируйте",
"Scope consent failed": "Сбой подтверждения области",
"Missing url": "Введите действительный URL-адрес для выполнения запроса",
- "Signing you out...": "Выполняется выход…"
+ "This response contains an @odata property.": "Этот отклик содержит свойство @odata.",
+ "Click here to follow the link": "Щелкните здесь, чтобы перейти по ссылке",
+ "Signing you out...": "Выполняется выход…",
+ "Feedback": "Хотите оставить отзыв?",
+ "Comment question": "Расскажите нам больше о своих впечатлениях",
+ "Prompt question": "Мы будем рады получить ваш отзыв",
+ "No": "Нет",
+ "Yes": "Да",
+ "Rating question": "В целом насколько легко было использовать песочницу Graph?",
+ "title": "Отзыв о песочнице Graph",
+ "Extremely difficult": "Чрезвычайно сложно",
+ "Slightly difficult": "Немного сложно",
+ "Neither easy nor difficult": "Нейтральное мнение",
+ "Slightly easy": "Достаточно просто",
+ "Extremely easy": "Очень просто",
+ "Ratiing": "Оценка",
+ "Email (optional)": "Почта (необязательно)",
+ "You can contact me about this feedback": "Вы можете связаться со мной по поводу этого отзыва",
+ "Privacy Statement": "Заявление о конфиденциальности",
+ "Submitted Successfully": "Успешно отправлено",
+ "Privacy consent": "Нажав \"Отправить\", вы разрешаете использовать ваш отзыв для улучшения продуктов и служб Майкрософт. Ваш ИТ-администратор сможет собирать эти данные"
}
\ No newline at end of file
diff --git a/src/messages/GE_zh-CN.json b/src/messages/GE_zh-CN.json
index 1a1314c29..f8db43bab 100644
--- a/src/messages/GE_zh-CN.json
+++ b/src/messages/GE_zh-CN.json
@@ -347,10 +347,28 @@
"Report an Issue": "报告问题",
"Maximize sidebar": "最大化边栏",
"Getting your access token": "正在获取访问令牌",
- "This response contains an @odata.nextLink property.": "此响应包含 @odata.nextLink 属性。",
- "Click here to go to the next page": "单击此处转到下一页",
"and experiment on": " 和试验",
"Scope consent failed": "作用域许可失败",
"Missing url": "请输入有效 URL 以运行查询",
- "Signing you out...": "正在注销..."
+ "This response contains an @odata property.": "此响应包含 @odata 属性。",
+ "Click here to follow the link": "单击此处访问链接",
+ "Signing you out...": "正在注销...",
+ "Feedback": "要提供反馈?",
+ "Comment question": "告诉我们有关你的体验更多信息",
+ "Prompt question": "我们非常期待你的反馈",
+ "No": "不支持",
+ "Yes": "是",
+ "Rating question": "总体而言,使用 Graph Explorer 有多容易?",
+ "title": "Graph 浏览器反馈",
+ "Extremely difficult": "极难",
+ "Slightly difficult": "有点困难",
+ "Neither easy nor difficult": "不简单也不困难",
+ "Slightly easy": "稍微简单",
+ "Extremely easy": "非常简单",
+ "Ratiing": "评级",
+ "Email (optional)": "电子邮件(可选)",
+ "You can contact me about this feedback": "可联系我有关此反馈的信息",
+ "Privacy Statement": "隐私声明",
+ "Submitted Successfully": "已成功提交",
+ "Privacy consent": "通过按提交,你的反馈将用于改进 Microsoft 产品和服务。你的 IT 管理员能够收集此数据"
}
\ No newline at end of file
diff --git a/src/telemetry/component-names.ts b/src/telemetry/component-names.ts
index 9fb4efb76..8fb35cdca 100644
--- a/src/telemetry/component-names.ts
+++ b/src/telemetry/component-names.ts
@@ -14,6 +14,7 @@ export const CODE_SNIPPETS_COPY_BUTTON = 'Code snippets copy button';
export const VIEW_ALL_PERMISSIONS_BUTTON = 'View all permissions button';
export const EXPORT_HISTORY_ITEM_BUTTON = 'Export history item button';
export const DELETE_HISTORY_ITEM_BUTTON = 'Delete history item button';
+export const RESPONSE_HEADERS_COPY_BUTTON = 'Response headers copy button';
// List items
export const HISTORY_LIST_ITEM = 'History list item';
@@ -45,6 +46,7 @@ export const GRAPH_TOOLKIT_PLAYGROUND_LINK = 'Graph toolkit playground link';
export const MICROSOFT_APIS_TERMS_OF_USE_LINK = 'Microsoft APIs terms of use link';
export const MICROSOFT_PRIVACY_STATEMENT_LINK = 'Microsoft privacy statement link';
export const MICROSOFT_GRAPH_API_REFERENCE_DOCS_LINK = 'Microsoft graph API reference docs link';
+export const REPORT_AN_ISSUE_LINK = 'Report an issue link';
// Actions
export const GET_SNIPPET_ACTION = 'Get snippet action';
diff --git a/src/telemetry/filters.ts b/src/telemetry/filters.ts
index 7f13d9335..7139e33f7 100644
--- a/src/telemetry/filters.ts
+++ b/src/telemetry/filters.ts
@@ -1,11 +1,11 @@
import { ITelemetryItem } from '@microsoft/applicationinsights-web';
-import { exception } from 'console';
import { errorTypes } from '.';
import {
DEVX_API_URL,
GRAPH_API_SANDBOX_URL,
GRAPH_URL,
HOME_ACCOUNT_KEY,
+ ADAPTIVE_CARD_URL,
} from '../app/services/graph-constants';
import {
sanitizeGraphAPISandboxUrl,
@@ -29,7 +29,12 @@ export function filterRemoteDependencyData(envelope: ITelemetryItem): boolean {
const baseData = envelope.baseData || {};
const urlObject = new URL(baseData.target || '');
- const targetsToInclude = [GRAPH_URL, DEVX_API_URL, GRAPH_API_SANDBOX_URL];
+ const targetsToInclude = [
+ GRAPH_URL,
+ DEVX_API_URL,
+ new URL(GRAPH_API_SANDBOX_URL).origin,
+ new URL(ADAPTIVE_CARD_URL).origin,
+ ];
if (!targetsToInclude.includes(urlObject.origin)) {
return false;
}
diff --git a/src/telemetry/telemetry.ts b/src/telemetry/telemetry.ts
index 20f3f12a6..7e86917c4 100644
--- a/src/telemetry/telemetry.ts
+++ b/src/telemetry/telemetry.ts
@@ -13,7 +13,11 @@ import { version } from '../../package.json';
import { validateExternalLink } from '../app/utils/external-link-validation';
import { sanitizeQueryUrl } from '../app/utils/query-url-sanitization';
import { IQuery } from '../types/query-runner';
-import { LINK_CLICK_EVENT, TAB_CLICK_EVENT } from './event-types';
+import {
+ BUTTON_CLICK_EVENT,
+ LINK_CLICK_EVENT,
+ TAB_CLICK_EVENT,
+} from './event-types';
import {
addCommonTelemetryItemProperties,
filterRemoteDependencyData,
@@ -92,6 +96,20 @@ class Telemetry implements ITelemetry {
validateExternalLink(url, componentName);
}
+ public trackCopyButtonClickEvent(
+ componentName: string,
+ sampleQuery?: IQuery,
+ properties?: { [key: string]: string }
+ ) {
+ properties = properties || {};
+ properties.ComponentName = componentName;
+ if (sampleQuery) {
+ const sanitizedUrl = sanitizeQueryUrl(sampleQuery.sampleUrl);
+ properties.QuerySignature = `${sampleQuery.selectedVerb} ${sanitizedUrl}`;
+ }
+ telemetry.trackEvent(BUTTON_CLICK_EVENT, properties);
+ }
+
private getInstrumentationKey() {
return (
(window as any).InstrumentationKey ||
diff --git a/src/types/permissions.ts b/src/types/permissions.ts
index c0045dbd3..476169962 100644
--- a/src/types/permissions.ts
+++ b/src/types/permissions.ts
@@ -17,6 +17,7 @@ export interface IPermissionProps {
panel: boolean;
sample: IQuery[];
tokenPresent: boolean;
+ permissionsPanelOpen: boolean;
consentedScopes: string[];
setPermissions: Function;
actions?: {
diff --git a/src/types/root.ts b/src/types/root.ts
index 251f02f11..894c0c0b1 100644
--- a/src/types/root.ts
+++ b/src/types/root.ts
@@ -1,6 +1,7 @@
import { IAdaptiveCardResponse } from './adaptivecard';
import { IAuthenticateResult } from './authentication';
import { IAutocompleteResponse } from './auto-complete';
+import { IDevxAPI } from './devx-api';
import { IDimensions } from './dimensions';
import { Mode } from './enums';
import { IHistoryItem } from './history';
@@ -33,6 +34,7 @@ export interface IRootState {
responseAreaExpanded: boolean;
dimensions: IDimensions;
autoComplete: IAutocompleteResponse;
+ devxApi: IDevxAPI;
}
export interface IApiFetch {