注意
Microsoft Graph Toolkit は非推奨です。 2025 年 9 月 1 日から、2026 年 8 月 28 日に完全な退職が予定されています。 開発者は、Web エクスペリエンスを構築するために、Microsoft Graph SDK またはその他のサポートされている Microsoft Graph ツールを使用して移行する必要があります。 詳細については、 非推奨のお知らせを参照してください。
Planner コンポーネントを使用すると、ユーザーはMicrosoft Plannerからタスクを表示、追加、削除、完了、または編集できます。
さらに、ユーザーは 1 人または複数の Microsoft Graph ユーザーを 1 つのタスクに割り当てることができます。 Microsoft Graph の割り当ての詳細については、「 plannerAssignments」を参照してください。
重要
バージョン 4 @microsoft/mgt-components リリースでは、planner コンポーネントは古いタスク コンポーネントに置き換えられ、データ ソースとしての Outlook タスクの使用はサポートされなくなりました。
例
次の例では、mgt-planner コンポーネントを使用してサインインしているユーザーのMicrosoft Planner タスクを表示します。 コード エディターを使用して、プロパティ がコンポーネントの動作をどのように変更させるかを確認することができます。
プロパティ
| 属性 | プロパティ | 説明 |
|---|---|---|
| 読み取り専用 | readOnly | タスク インターフェイスを読み取り専用に設定するブール値 (タスクの追加または削除なし)。 既定値は false です。 |
| hide-header | hideHeader | コンポーネントのヘッダーを表示または非表示にするブール値。 既定値は false です。 |
| hide-options | hideOptions | タスクのオプションを表示または非表示にするブール値。 既定値は false です。 |
| initial-id="planner_id/folder_id" | initialId | 最初に表示されたプランを指定された ID に設定する文字列 ID。 |
| initial-bucket-id="bucket_id" | initialBucketId | 最初に表示されたバケットを指定された ID に設定する文字列 ID。 |
| target-id="planner_id/folder_id" | targetId | タスク インターフェイスを指定されたプラン ID にロックする文字列 ID。 |
| target-bucket-id="bucket_id" | targetBucketId | タスク インターフェイスを指定されたバケット ID にロックする文字列 ID。 |
| group-id | groupId | タスク インターフェイスをグループ ID にロックする文字列 ID。 |
| - | isNewTaskVisible | レンダー時に新しいタスク ビューを表示するかどうかを指定します。 |
| - | taskFilter | ユーザーに表示されるタスクをフィルター処理する省略可能な関数。 |
次の例は、ID 12345 を持つPlannerからのタスクのみを示しており、ユーザーが新しいタスクを作成することはできません。
<mgt-planner read-only initial-id="12345"></mgt-planner>
次の例は、 category3 のみが設定されているタスクをフィルター処理する方法を示しています。
let taskView = document.querySelector("mgt-planner");
taskView.taskFilter = (task) => task.appliedCategories.category3 === true;
カスタム CSS 変数
<mgt-planner class="tasks"></mgt-planner>
.tasks {
--tasks-header-padding: 28px 14px;
--tasks-header-margin: 0 14px;
--tasks-header-font-size: large;
--tasks-header-font-weight: 800;
--tasks-header-text-color: blue;
--tasks-header-text-hover-color: gray;
--tasks-new-button-width: 300px;
--tasks-new-button-height: 50px;
--tasks-new-button-text-color: orange;
--tasks-new-button-text-font-weight: 400;
--tasks-new-button-background: black;
--tasks-new-button-border: 2px dotted golden;
--tasks-new-button-background-hover: gray;
--tasks-new-button-background-active: red;
--task-add-new-button-width: 60px;
--task-add-new-button-height: 35px;
--task-add-new-button-text-color: orange;
--task-add-new-button-text-font-weight: 400;
--task-add-new-button-background: black;
--task-add-new-button-border: 2px dotted white;
--task-add-new-button-background-hover: gray;
--task-add-new-button-background-active: red;
--task-cancel-new-button-width: 60px;
--task-cancel-new-button-height: 35px;
--task-cancel-new-button-text-color: yellow;
--task-cancel-new-button-text-font-weight: 400;
--task-cancel-new-button-background: red;
--task-cancel-new-button-border: 2px dashed white;
--task-cancel-new-button-background-hover: brown;
--task-cancel-new-button-background-active: red;
--task-complete-checkbox-background-color: red;
--task-complete-checkbox-text-color: yellow;
--task-incomplete-checkbox-background-color: orange;
--task-incomplete-checkbox-background-hover-color: yellow;
--task-title-text-font-size: large;
--task-title-text-font-weight: 500;
--task-complete-title-text-color: green;
--task-incomplete-title-text-color: purple;
--task-icons-width: 32px;
--task-icons-height: 32px;
--task-icons-background-color: purple;
--task-icons-text-font-color: black;
--task-icons-text-font-size: 16px;
--task-icons-text-font-weight: 400;
--task-complete-background-color: powderblue;
--task-incomplete-background-color: salmon;
--task-complete-border: 2px dashed green;
--task-incomplete-border: 2px double red;
--task-complete-border-radius: 8px;
--task-incomplete-border-radius: 12px;
--task-complete-padding: 8px;
--task-incomplete-padding: 12px;
--tasks-gap: 8px;
--tasks-background-color: violet;
--tasks-border: 2px dashed green;
--tasks-border-radius: 12px;
--tasks-padding: 16px;
/** affects the date picker and the text-input field **/
--task-new-input-border: 2px solid green;
--task-new-input-border-radius: 8px;
--task-new-input-background-color: yellow;
--task-new-input-hover-background-color: yellowgreen;
--task-new-input-placeholder-color: black;
/** affects the date picker and the text-input field **/
--task-new-dropdown-border: 2px solid green;
--task-new-dropdown-border-radius: 8px;
--task-new-dropdown-background-color: yellow;
--task-new-dropdown-hover-background-color: yellowgreen;
--task-new-dropdown-placeholder-color: red;
--task-new-dropdown-option-text-color: blue;
--task-new-dropdown-list-background-color: yellow;
--task-new-dropdown-option-hover-background-color: yellowgreen;
--task-new-person-icon-text-color: blue;
--task-new-person-icon-color: blue;
/** affects the options menu */
--dot-options-menu-background-color: yellow;
--dot-options-menu-shadow-color: yellow;
--dot-options-menu-item-color: maroon;
--dot-options-menu-item-hover-background-color: white;
}
詳細については、「コンポーネントのスタイリング」を参照してください。
イベント
| イベント | いつ出力されるか | カスタム データ | キャンセル | 泡 | カスタム テンプレートを使用する |
|---|---|---|---|---|---|
taskAdded |
新しいタスクが作成されたときに発生します | 新しく作成された plannerTask | 不要 | 不要 | はい |
taskChanged |
完了したマーキングなど、タスク メタデータが変更されたときに発生します | plannerTask を更新しました | 不要 | 不要 | 不要 |
taskClick |
ユーザーがタスクを選択すると発生します |
task選択した plannerTask のプロパティ |
不要 | 不要 | 不要 |
taskRemoved |
既存のタスクが削除されたときに発生します |
task選択した plannerTask のプロパティ |
不要 | 不要 | 不要 |
イベントの処理の詳細については、「 イベント」を参照してください。
テンプレート
planner コンポーネントは、いくつかの テンプレート をサポートしており、コンポーネントの特定の部分を置き換えることができます。 テンプレートを指定するには、コンポーネント内に <template> 要素を含め、 data-type プロパティを次のいずれかの値に設定します。
| データ型 | データ コンテキスト | 説明 |
|---|---|---|
| タスク | task: Planner タスク オブジェクト | は、既定のタスク全体を置き換えます。 |
| task-details | task: Planner タスク オブジェクト | テンプレートは、タスクの詳細セクションを置き換えます。 |
次の例では、planner コンポーネントのテンプレートを定義します。
<mgt-planner>
<template data-type="task-details">
<div>Owner: {{task.owner}}</div>
<div>Importance Level: {{task.importance}}</div>
</template>
</mgt-planner>
Microsoft Graph のアクセス許可
このコントロールは、以下の Microsoft Graph API とアクセス許可を使用します。 呼び出される API ごとに、ユーザーには、一覧表示されているアクセス許可の少なくとも 1 つが必要です。
| 構成 | アクセス許可 | API |
|---|---|---|
| すべての構成で | User.Read、User.ReadWrite | /me |
| 既定の動作 | Tasks.Read、Group.Read.All、Tasks.ReadWrite、Group.ReadWrite.All | /me/planner/plans, /planner/plans/${planId}/buckets, /planner/buckets/${bucketId}/tasks |
groupId セット |
Tasks.Read、Group.Read.All、Tasks.ReadWrite、Group.ReadWrite.All | /groups/${group-id}/planner/plans, /planner/plans/${planId}/buckets, /planner/buckets/${bucketId}/tasks |
targetId セット |
Tasks.Read、Group.Read.All、Tasks.ReadWrite、Group.ReadWrite.All | /planner/plans/${planId}, /planner/plans/${planId}/buckets, /planner/buckets/${bucketId}/tasks |
| タスクの作成、更新、または削除 | Group.ReadWrite, Group.Readwrite.All | POST /planner/tasks, PATCH /planner/tasks/${taskId}, DELETE /planner/tasks/${taskId} |
サブコンポーネント
mgt-tasks コンポーネントは、前に示したアクセス許可以外のアクセス許可を必要とする可能性がある 1 つ以上のサブコンポーネントで構成されます。 詳細については、各サブコンポーネントのドキュメントを参照してください。
認証
tasks コンポーネントは、 認証ドキュメントで説明されているグローバル認証プロバイダーを使用します。
キャッシュ
mgt-tasks コンポーネントはデータをキャッシュしません。
ローカリゼーション
コントロールは、ローカライズできる次の変数を公開します。 ローカライズの詳細については、「 コンポーネントのローカライズ」を参照してください。
| 文字列名 | 既定値 |
|---|---|
| removeTaskSubtitle | Delete Task |
| cancelNewTaskSubtitle | Cancel |
| newTaskPlaceholder | Adding a task... |
| addTaskButtonSubtitle | Add |
| 正当 | Due |
| addTaskDate | Add the task date |
| 割り当てる | Assign |
| planNotFound | Plan not found |
| plansSelfAssigned | All Plans |
| bucketNotFound | Bucket not found |
| bucketsSelfAssigned | All Tasks |
| baseSelfAssigned | Assigned to Me |