diff --git a/Composer/packages/lib/shared/src/dialogFactory.ts b/Composer/packages/lib/shared/src/dialogFactory.ts index 8a2dfd21c5..ef9b76243f 100644 --- a/Composer/packages/lib/shared/src/dialogFactory.ts +++ b/Composer/packages/lib/shared/src/dialogFactory.ts @@ -8,7 +8,7 @@ import { appschema } from './appschema'; import { copyAdaptiveAction } from './copyUtils'; import { deleteAdaptiveAction, deleteAdaptiveActionList } from './deleteUtils'; import { MicrosoftIDialog } from './types'; - +import { SDKTypes } from './types'; interface DesignerAttributes { name: string; description: string; @@ -23,30 +23,48 @@ const initialInputDialog = { }; const initialDialogShape = { - 'Microsoft.AdaptiveDialog': { - $type: 'Microsoft.AdaptiveDialog', + [SDKTypes.AdaptiveDialog]: { + $type: SDKTypes.AdaptiveDialog, triggers: [ { - $type: 'Microsoft.OnBeginDialog', - $designer: { - name: 'BeginDialog', - }, + $type: SDKTypes.OnBeginDialog, + ...getNewDesigner('BeginDialog', ''), }, ], }, - 'Microsoft.OnConversationUpdateActivity': { + [SDKTypes.OnConversationUpdateActivity]: { $type: 'Microsoft.OnConversationUpdateActivity', - condition: "toLower(turn.Activity.membersAdded[0].name) != 'bot'", + actions: [ + { + $type: SDKTypes.Foreach, + ...getNewDesigner('Loop: for each item', ''), + itemsProperty: 'turn.Activity.membersAdded', + actions: [ + { + $type: SDKTypes.IfCondition, + ...getNewDesigner('Branch: if/else', ''), + condition: 'string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)', + actions: [ + { + $type: SDKTypes.SendActivity, + ...getNewDesigner('Send a response', ''), + activity: '', + }, + ], + }, + ], + }, + ], }, - 'Microsoft.SendActivity': { + [SDKTypes.SendActivity]: { activity: '', }, - 'Microsoft.AttachmentInput': initialInputDialog, - 'Microsoft.ChoiceInput': initialInputDialog, - 'Microsoft.ConfirmInput': initialInputDialog, - 'Microsoft.DateTimeInput': initialInputDialog, - 'Microsoft.NumberInput': initialInputDialog, - 'Microsoft.TextInput': initialInputDialog, + [SDKTypes.AttachmentInput]: initialInputDialog, + [SDKTypes.ChoiceInput]: initialInputDialog, + [SDKTypes.ConfirmInput]: initialInputDialog, + [SDKTypes.DateTimeInput]: initialInputDialog, + [SDKTypes.NumberInput]: initialInputDialog, + [SDKTypes.TextInput]: initialInputDialog, }; export function getNewDesigner(name: string, description: string) { diff --git a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/Main/Main.dialog index e752a55196..0f5163c362 100644 --- a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/Main/Main.dialog @@ -273,14 +273,34 @@ "name": "Greeting (ConversationUpdate)", "id": "954390" }, - "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", "actions": [ { - "$type": "Microsoft.SendActivity", + "$type": "Microsoft.Foreach", "$designer": { - "id": "640616" + "id": "518944", + "name": "Loop: for each item" }, - "activity": "@{bfdactivity-640616()}" + "itemsProperty": "turn.Activity.membersAdded", + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "id": "641773", + "name": "Branch: if/else" + }, + "condition": "string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "id": "640616", + "name": "Send a response" + }, + "activity": "@{bfdactivity-640616()}" + } + ] + } + ] } ] } diff --git a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/RepeatDialog/RepeatDialog.dialog b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/RepeatDialog/RepeatDialog.dialog index 91b82deae0..9b10aae274 100644 --- a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/RepeatDialog/RepeatDialog.dialog +++ b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/RepeatDialog/RepeatDialog.dialog @@ -22,7 +22,7 @@ "unrecognizedPrompt": "I need a yes or no.", "maxTurnCount": 3, "alwaysPrompt": true, - "allowInterruptions": false, + "allowInterruptions": "false", "defaultLocale": "en-us", "style": "Auto", "choiceOptions": { diff --git a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/DateTimeInput/DateTimeInput.dialog b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/DateTimeInput/DateTimeInput.dialog index ed217bf51d..fdc784401b 100644 --- a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/DateTimeInput/DateTimeInput.dialog +++ b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/DateTimeInput/DateTimeInput.dialog @@ -22,7 +22,7 @@ "invalidPrompt": "Please enter a date.", "maxTurnCount": 2, "alwaysPrompt": true, - "allowInterruptions": false, + "allowInterruptions": "false", "defaultLocale": "en-us" }, { diff --git a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/Main/Main.dialog index cf64464ab1..0b55881dae 100644 --- a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/Main/Main.dialog @@ -54,16 +54,32 @@ "triggers": [ { "$type": "Microsoft.OnConversationUpdateActivity", - "condition": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", "actions": [ { - "$type": "Microsoft.SendActivity", - "activity": "@{help()}" + "$type": "Microsoft.Foreach", + "$designer": { + "id": "518944", + "name": "Loop: for each item" + }, + "itemsProperty": "turn.Activity.membersAdded", + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "id": "641773", + "name": "Branch: if/else" + }, + "condition": "string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "activity": "@{help()}" + } + ] + } + ] } - ], - "$designer": { - "id": "690456" - } + ] }, { "$type": "Microsoft.OnIntent", diff --git a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/NumberInput/NumberInput.dialog b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/NumberInput/NumberInput.dialog index 69e21fc1fc..c321fd3e32 100644 --- a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/NumberInput/NumberInput.dialog +++ b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/NumberInput/NumberInput.dialog @@ -22,7 +22,7 @@ "invalidPrompt": "Please input a number.", "maxTurnCount": 2, "alwaysPrompt": true, - "allowInterruptions": false, + "allowInterruptions": "false", "defaultLocale": "en-us" }, { diff --git a/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/Main/Main.dialog index 05ccabe24e..331fb32530 100644 --- a/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/Main/Main.dialog @@ -173,15 +173,34 @@ "name": "Greeting (ConversationUpdate)", "id": "791275" }, - "condition": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", "actions": [ { - "$type": "Microsoft.SendActivity", + "$type": "Microsoft.Foreach", "$designer": { - "name": "Send an Activity", - "id": "859266" + "id": "518944", + "name": "Loop: for each item" }, - "activity": "@{help()}" + "itemsProperty": "turn.Activity.membersAdded", + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "id": "641773", + "name": "Branch: if/else" + }, + "condition": "string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "id": "859266", + "name": "Send a response" + }, + "activity": "@{help()}" + } + ] + } + ] } ] } diff --git a/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/RepeatDialog/RepeatDialog.dialog b/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/RepeatDialog/RepeatDialog.dialog index ecfd8bf195..05f85e1065 100644 --- a/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/RepeatDialog/RepeatDialog.dialog +++ b/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/RepeatDialog/RepeatDialog.dialog @@ -22,7 +22,7 @@ "unrecognizedPrompt": "I need a yes or no.", "maxTurnCount": 3, "alwaysPrompt": true, - "allowInterruptions": false, + "allowInterruptions": "false", "defaultLocale": "en-us", "style": "Auto", "choiceOptions": { diff --git a/Composer/packages/server/assets/projects/EchoBot/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/EchoBot/ComposerDialogs/Main/Main.dialog index 487263f106..0daf02c9d8 100644 --- a/Composer/packages/server/assets/projects/EchoBot/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/EchoBot/ComposerDialogs/Main/Main.dialog @@ -28,7 +28,26 @@ "$designer": { "id": "376720" }, - "condition": "toLower(turn.Activity.membersAdded[0].name) != 'bot'" + "actions": [ + { + "$type": "Microsoft.Foreach", + "$designer": { + "id": "518944", + "name": "Loop: for each item" + }, + "itemsProperty": "turn.Activity.membersAdded", + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "id": "641773", + "name": "Branch: if/else" + }, + "condition": "string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)" + } + ] + } + ] } ] } diff --git a/Composer/packages/server/assets/projects/EmptyBot/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/EmptyBot/ComposerDialogs/Main/Main.dialog index 856b4e8191..f983146924 100644 --- a/Composer/packages/server/assets/projects/EmptyBot/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/EmptyBot/ComposerDialogs/Main/Main.dialog @@ -5,14 +5,32 @@ "description": "" }, "generator": "common.lg", - "recognizer": "Main.lu", "triggers": [ { "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "id": "376720" }, - "condition": "toLower(turn.Activity.membersAdded[0].name) != 'bot'" + "actions": [ + { + "$type": "Microsoft.Foreach", + "$designer": { + "id": "518944", + "name": "Loop: for each item" + }, + "itemsProperty": "turn.Activity.membersAdded", + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "id": "641773", + "name": "Branch: if/else" + }, + "condition": "string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)" + } + ] + } + ] } ] } \ No newline at end of file diff --git a/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/Main/Main.dialog index 13f8cd8bfd..f747c1fda0 100644 --- a/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/Main/Main.dialog @@ -15,15 +15,34 @@ "id": "376720", "name": "Welcome user" }, - "condition": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", "actions": [ { - "$type": "Microsoft.SendActivity", + "$type": "Microsoft.Foreach", "$designer": { - "name": "Send an Activity", - "id": "753396" + "id": "518944", + "name": "Loop: for each item" }, - "activity": "@{bfdactivity-753396()}" + "itemsProperty": "turn.Activity.membersAdded", + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "id": "641773", + "name": "Branch: if/else" + }, + "condition": "string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "id": "753396", + "name": "Send a response" + }, + "activity": "@{bfdactivity-753396()}" + } + ] + } + ] } ] }, diff --git a/Composer/packages/server/assets/projects/QnAMakerLUISSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/QnAMakerLUISSample/ComposerDialogs/Main/Main.dialog index 8f0ba2d5b4..8ca08c465f 100644 --- a/Composer/packages/server/assets/projects/QnAMakerLUISSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/QnAMakerLUISSample/ComposerDialogs/Main/Main.dialog @@ -13,15 +13,34 @@ "id": "376720", "name": "Welcome message" }, - "condition": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", "actions": [ { - "$type": "Microsoft.SendActivity", + "$type": "Microsoft.Foreach", "$designer": { - "id": "266608", - "name": "Send a response" + "id": "518944", + "name": "Loop: for each item" }, - "activity": "@{bfdactivity-266608()}" + "itemsProperty": "turn.Activity.membersAdded", + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "id": "641773", + "name": "Branch: if/else" + }, + "condition": "string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "id": "266608", + "name": "Send a response" + }, + "activity": "@{bfdactivity-266608()}" + } + ] + } + ] } ] }, diff --git a/Composer/packages/server/assets/projects/RespondingWithCardsSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/RespondingWithCardsSample/ComposerDialogs/Main/Main.dialog index 2c9d241ba4..2d0820754d 100644 --- a/Composer/packages/server/assets/projects/RespondingWithCardsSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/RespondingWithCardsSample/ComposerDialogs/Main/Main.dialog @@ -215,19 +215,36 @@ }, { "$type": "Microsoft.OnConversationUpdateActivity", - "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", "actions": [ { - "$type": "Microsoft.SendActivity", + "$type": "Microsoft.Foreach", "$designer": { - "id": "729500" + "id": "518944", + "name": "Loop: for each item" }, - "activity": "@{bfdactivity-729500()}" + "itemsProperty": "turn.Activity.membersAdded", + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "id": "641773", + "name": "Branch: if/else" + }, + "condition": "string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "id": "729500", + "name": "Send a response" + }, + "activity": "@{bfdactivity-729500()}" + } + ] + } + ] } - ], - "$designer": { - "id": "109137" - } + ] } ], "generator": "common.lg", diff --git a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/Main/Main.dialog index 63d2e00286..55f140ba9c 100644 --- a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/Main/Main.dialog @@ -27,15 +27,34 @@ "name": "Greeting (ConversationUpdate)", "id": "452701" }, - "condition": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", "actions": [ { - "$type": "Microsoft.SendActivity", + "$type": "Microsoft.Foreach", "$designer": { - "name": "Send an Activity", - "id": "576166" + "id": "518944", + "name": "Loop: for each item" }, - "activity": "@{bfdactivity-576166()}" + "itemsProperty": "turn.Activity.membersAdded", + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "id": "641773", + "name": "Branch: if/else" + }, + "condition": "string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "id": "576166", + "name": "Send a response" + }, + "activity": "@{bfdactivity-576166()}" + } + ] + } + ] } ] }, diff --git a/Composer/packages/server/assets/projects/ToDoBotWithLuisSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/ToDoBotWithLuisSample/ComposerDialogs/Main/Main.dialog index 79a8298821..d1265aed96 100644 --- a/Composer/packages/server/assets/projects/ToDoBotWithLuisSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/ToDoBotWithLuisSample/ComposerDialogs/Main/Main.dialog @@ -14,16 +14,35 @@ "id": "376720", "name": "WelcomeUser" }, - "condition": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", "actions": [ { - "$type": "Microsoft.SendActivity", + "$type": "Microsoft.Foreach", "$designer": { - "id": "037171", - "name": "Send a response" + "id": "518944", + "name": "Loop: for each item" }, - "activity": "@{bfdactivity-037171()}" - }, + "itemsProperty": "turn.Activity.membersAdded", + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "id": "641773", + "name": "Branch: if/else" + }, + "condition": "string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "id": "037171", + "name": "Send a response" + }, + "activity": "@{bfdactivity-037171()}" + } + ] + } + ] + }, { "$type": "Microsoft.InitProperty", "$designer": { diff --git a/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/Main/Main.dialog index c376e4a50f..d5771fa802 100644 --- a/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/Main/Main.dialog @@ -48,14 +48,34 @@ "$designer": { "id": "376720" }, - "condition": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", "actions": [ { - "$type": "Microsoft.SendActivity", + "$type": "Microsoft.Foreach", "$designer": { - "id": "157674" + "id": "518944", + "name": "Loop: for each item" }, - "activity": "@{bfdactivity-157674()}" + "itemsProperty": "turn.Activity.membersAdded", + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "id": "641773", + "name": "Branch: if/else" + }, + "condition": "string(dialog.foreach.value.id) != string(turn.Activity.Recipient.id)", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "id": "157674", + "name": "Send a response" + }, + "activity": "@{bfdactivity-157674()}" + } + ] + } + ] } ] },