diff --git a/Composer/packages/client/__tests__/pages/botProjectsSettings/PublishTarget.test.tsx b/Composer/packages/client/__tests__/pages/botProjectsSettings/PublishTarget.test.tsx index 1dccc9544a..7507ead65c 100644 --- a/Composer/packages/client/__tests__/pages/botProjectsSettings/PublishTarget.test.tsx +++ b/Composer/packages/client/__tests__/pages/botProjectsSettings/PublishTarget.test.tsx @@ -43,6 +43,6 @@ describe('Publish Target', () => { act(() => { fireEvent.click(addNewPublishProfile); }); - expect(getByText('Add a publishing profile')).toBeInTheDocument(); + expect(getByText('Add new publishing profile')).toBeInTheDocument(); }); }); diff --git a/Composer/packages/client/src/components/ManageService/ManageService.tsx b/Composer/packages/client/src/components/ManageService/ManageService.tsx index 7d3b1a22bd..a61f83eb68 100644 --- a/Composer/packages/client/src/components/ManageService/ManageService.tsx +++ b/Composer/packages/client/src/components/ManageService/ManageService.tsx @@ -674,7 +674,7 @@ export const ManageService = (props: ManageServiceProps) => { type: DialogType.normal, title: currentPage === 2 - ? formatMessage('Create new {service} resources', { service: props.serviceName }) + ? formatMessage('Create new {service} resource', { service: props.serviceName }) : formatMessage('Select {service} keys', { service: props.serviceName }), }} hidden={props.hidden || showAuthDialog} @@ -682,7 +682,7 @@ export const ManageService = (props: ManageServiceProps) => { modalProps={{ isBlocking: true, }} - onDismiss={props.onDismiss} + onDismiss={loading ? () => {} : props.onDismiss} > {currentPage === 1 && renderPageOne()} {currentPage === 2 && nextAction === 'choose' && renderPageChoose()} diff --git a/Composer/packages/client/src/pages/botProject/create-publish-profile/ProfileFormDialog.tsx b/Composer/packages/client/src/pages/botProject/create-publish-profile/ProfileFormDialog.tsx index 7b8225f687..f7b0209297 100644 --- a/Composer/packages/client/src/pages/botProject/create-publish-profile/ProfileFormDialog.tsx +++ b/Composer/packages/client/src/pages/botProject/create-publish-profile/ProfileFormDialog.tsx @@ -4,7 +4,6 @@ /** @jsx jsx */ import { jsx, css } from '@emotion/core'; import formatMessage from 'format-message'; -import { SharedColors } from '@uifabric/fluent-theme'; import { DialogFooter } from 'office-ui-fabric-react/lib/Dialog'; import { useState, useMemo, useCallback, Fragment } from 'react'; import { PrimaryButton, DefaultButton } from 'office-ui-fabric-react/lib/Button'; @@ -12,8 +11,6 @@ import { Separator } from 'office-ui-fabric-react/lib/Separator'; import { Dropdown, IDropdownOption } from 'office-ui-fabric-react/lib/Dropdown'; import { TextField } from 'office-ui-fabric-react/lib/TextField'; import { PublishTarget } from '@bfc/shared'; -import { TooltipHost } from 'office-ui-fabric-react/lib/Tooltip'; -import { Icon } from 'office-ui-fabric-react/lib/Icon'; import { separator } from '../../publish/styles'; import { PublishType } from '../../../recoilModel/types'; @@ -42,27 +39,10 @@ const customerLabel = css` font-size: 14px; `; -const iconStyle = (required) => { - return { - root: { - selectors: { - '&::before': { - content: required ? " '*'" : '', - color: SharedColors.red10, - paddingRight: 3, - }, - }, - }, - }; -}; - const onRenderLabel = (props) => { return (
{props.label}
- - -
); }; @@ -143,7 +123,7 @@ export const ProfileFormDialog: React.FC = (props) => { { onNext(); }} diff --git a/Composer/packages/client/src/pages/botProject/create-publish-profile/PublishProfileDialog.tsx b/Composer/packages/client/src/pages/botProject/create-publish-profile/PublishProfileDialog.tsx index cb963d5ea6..69e700f1ea 100644 --- a/Composer/packages/client/src/pages/botProject/create-publish-profile/PublishProfileDialog.tsx +++ b/Composer/packages/client/src/pages/botProject/create-publish-profile/PublishProfileDialog.tsx @@ -47,7 +47,7 @@ export const PublishProfileDialog: React.FC = (props) const { provisionToTarget, addNotification } = useRecoilValue(dispatcherState); const [dialogTitle, setTitle] = useState({ - title: current ? formatMessage('Edit a publishing profile') : formatMessage('Add a publishing profile'), + title: current ? formatMessage('Edit a publishing profile') : formatMessage('Add new publishing profile'), subText: formatMessage('A publishing profile provides the secure connectivity required to publish your bot. '), }); @@ -81,7 +81,7 @@ export const PublishProfileDialog: React.FC = (props) PluginAPI.publish.onBack = () => { setPage(Page.ProfileForm); setTitle({ - title: current ? formatMessage('Edit a publishing profile') : formatMessage('Add a publishing profile'), + title: current ? formatMessage('Edit a publishing profile') : formatMessage('Add new publishing profile'), subText: formatMessage('A publishing profile provides the secure connectivity required to publish your bot. '), }); }; @@ -217,7 +217,7 @@ export const PublishProfileDialog: React.FC = (props)
{dialogTitle.subText} - {formatMessage('Learn more.')} + {formatMessage('Learn more')}
{ name: formatMessage('Comments'), className: 'comment', fieldName: 'comment', - minWidth: 70, - maxWidth: 90, + minWidth: 200, + maxWidth: 290, data: 'string', onRender: (item: BotStatus) => { // message for each publish bot diff --git a/Composer/packages/server/src/locales/en-US.json b/Composer/packages/server/src/locales/en-US.json index b84aaf885c..99a1b37155 100644 --- a/Composer/packages/server/src/locales/en-US.json +++ b/Composer/packages/server/src/locales/en-US.json @@ -146,9 +146,6 @@ "add_a_package_2857cc9": { "message": "Add a package" }, - "add_a_publishing_profile_e926460e": { - "message": "Add a publishing profile" - }, "add_a_qna_maker_key_fbb94d93": { "message": "Add a QnA Maker key" }, @@ -158,6 +155,9 @@ "add_a_trigger_c6861401": { "message": "Add a trigger" }, + "add_allowed_callers_7188d3d4": { + "message": "Add allowed callers" + }, "add_alternative_phrasing_17e0304c": { "message": "+ Add alternative phrasing" }, @@ -176,6 +176,9 @@ "add_entity_5f769994": { "message": "Add entity" }, + "add_microsoft_app_ids_of_bots_that_can_access_this_7d41742c": { + "message": "Add Microsoft App Ids of bots that can access this skill. You can skip this step and add this information later from the project settings tab." + }, "add_more_to_this_response_d45bdfda": { "message": "Add more to this response" }, @@ -203,6 +206,9 @@ "add_new_propertyname_bedf7dc6": { "message": "Add new { propertyName }" }, + "add_new_publishing_profile_95980909": { + "message": "Add new publishing profile" + }, "add_new_question_85612b7f": { "message": "Add new question" }, @@ -242,6 +248,9 @@ "all_4321c3a1": { "message": "All" }, + "allowed_callers_31b26262": { + "message": "Allowed Callers" + }, "allowed_callers_fe0f5bfe": { "message": "Allowed callers" }, @@ -515,8 +524,8 @@ "bot_name_bbd0779d": { "message": "Bot Name" }, - "bot_name_cannot_not_start_with_a_number_d70239": { - "message": "Bot name cannot not start with a number" + "bot_name_cannot_start_with_a_number_or_space_3a5c6fc1": { + "message": "Bot name cannot start with a number or space" }, "bot_name_is_botname_a28c2d05": { "message": "Bot name is { botName }" @@ -863,12 +872,12 @@ "create_a_new_skill_e961ff28": { "message": "Create a new skill" }, - "create_a_new_skill_manifest_or_select_which_one_yo_a97e9616": { - "message": "Create a new skill manifest or select which one you want to edit" - }, "create_a_new_speech_resource_c3c8fe60": { "message": "Create a new Speech resource" }, + "create_a_publish_profile_to_continue_1e2fa5a0": { + "message": "Create a publish profile to continue" + }, "create_a_publishing_profile_a79c6808": { "message": "Create a publishing profile" }, @@ -884,9 +893,6 @@ "create_copy_to_translate_bot_content_efc872c": { "message": "Create copy to translate bot content" }, - "create_edit_skill_manifest_1c1b14fe": { - "message": "Create/edit skill manifest" - }, "create_folder_error_38aa86f5": { "message": "Create Folder Error" }, @@ -932,15 +938,15 @@ "create_new_luis_resources_a1a8fad5": { "message": "Create new LUIS resources" }, - "create_new_qna_resources_f21ea0cf": { - "message": "Create new QnA resources" + "create_new_publish_profile_e27c0950": { + "message": "Create new publish profile" + }, + "create_new_qna_resource_bd9a0dae": { + "message": "Create new QnA resource" }, "create_new_speech_resources_73a921be": { "message": "Create new Speech resources" }, - "create_or_edit_skill_manifest_8ad98da9": { - "message": "Create or edit skill manifest" - }, "create_your_first_bot_a23748c1": { "message": "Create your first bot" }, @@ -1358,6 +1364,9 @@ "endofconversation_activity_4aa21306": { "message": "EndOfConversation activity" }, + "endpoint_url_eddd8ea9": { + "message": "Endpoint Url" + }, "endpoints_ff946539": { "message": "Endpoints" }, @@ -1409,8 +1418,8 @@ "enter_name_for_new_luis_resources_8e075ea6": { "message": "Enter name for new LUIS resources" }, - "enter_name_for_new_qna_resources_f159a352": { - "message": "Enter name for new QnA resources" + "enter_name_for_new_qna_resource_d93cd191": { + "message": "Enter name for new QnA resource" }, "enter_name_for_new_resource_group_96fe8ea8": { "message": "Enter name for new resource group" @@ -2012,6 +2021,9 @@ "kb_d9c53902": { "message": "KB" }, + "keep_this_url_handy_to_share_it_with_other_develop_bfd51fb0": { + "message": "Keep this URL handy to share it with other developers to use in their bot projects. You can find this URL in the project settings tab." + }, "key_cannot_be_blank_dccc1b46": { "message": "Key cannot be blank" }, @@ -2555,6 +2567,9 @@ "node_menu_e2aa8092": { "message": "Node menu" }, + "node_preview_cbcd8fb": { + "message": "Node (Preview)" + }, "not_a_single_template_e37f894": { "message": "Not a single template" }, @@ -2735,9 +2750,6 @@ "please_select_a_trigger_type_67417abb": { "message": "Please select a trigger type" }, - "please_select_a_version_of_the_manifest_schema_4a3efbb1": { - "message": "Please select a version of the manifest schema" - }, "pop_out_editor_5528a187": { "message": "Pop out editor" }, @@ -2909,18 +2921,24 @@ "publishing_profile_6d7064ce": { "message": "Publishing Profile" }, - "publishing_skill_be1b6b96": { - "message": "Publishing skill" - }, "publishing_target_46605bc5": { "message": "Publishing target" }, + "publishing_your_skill_b5957f9c": { + "message": "Publishing your skill..." + }, "pull_d1c3e8fe": { "message": "Pull" }, "pull_from_selected_profile_b5c635ec": { "message": "Pull from selected profile" }, + "pva_bots_cannot_be_run_at_the_moment_publish_the_b_1ea3a9b6": { + "message": "PVA bots cannot be run at the moment. Publish the bot to PVA and test it there." + }, + "pva_bots_cannot_use_this_functionality_at_this_tim_6ac2ad91": { + "message": "PVA bots cannot use this functionality at this time." + }, "qna_28ee5e26": { "message": "QnA" }, @@ -3263,9 +3281,6 @@ "select_luis_keys_1f3fb702": { "message": "Select LUIS keys" }, - "select_manifest_version_4f5b1230": { - "message": "Select manifest version" - }, "select_one_b647b384": { "message": "Select one" }, @@ -3359,6 +3374,9 @@ "setup_language_understanding_so_that_you_can_start_97addd86": { "message": "Setup Language Understanding so that you can start and test your bot." }, + "share_as_a_skill_63554df2": { + "message": "Share as a skill" + }, "share_resource_request_afc3e465": { "message": "Share resource request" }, @@ -3620,6 +3638,12 @@ "the_api_messages_endpoint_for_the_skill_f318dc63": { "message": "The /api/messages endpoint for the skill." }, + "the_app_id_9c6d6a9a": { + "message": "The app id" + }, + "the_app_id_of_your_application_registration_16fba1a9": { + "message": "The app id of your application registration" + }, "the_bot_responses_page_is_where_the_language_gener_31a6666b": { "message": "The Bot Responses page is where the Language Generation (LG) editor locates. From here users can view all the LG templates and edit them." }, @@ -3629,6 +3653,9 @@ "the_endpoint_url_7c04ee13": { "message": "The endpoint url" }, + "the_endpoint_url_of_your_web_app_resource_10f73ba7": { + "message": "The endpoint url of your web app resource" + }, "the_file_name_can_not_be_empty_cbdbe9c8": { "message": "The file name can not be empty" }, @@ -3818,6 +3845,9 @@ "to_make_sure_the_skill_will_work_correctly_we_perf_8de42615": { "message": "To make sure the skill will work correctly, we perform some validation checks. When you’re ready to add a skill, enter the Skill manifest URL provided to you by the skill author." }, + "to_make_your_bot_available_as_a_remote_skill_you_w_be5a6e3f": { + "message": "To make your bot available as a remote skill you will need to provision Azure resources . This process may take a few minutes depending on the resources you select." + }, "to_make_your_bot_available_for_others_as_a_skill_w_f2c19b9c": { "message": "To make your bot available for others as a skill, we need to generate a manifest." }, @@ -4136,6 +4166,9 @@ "which_bot_do_you_want_to_open_974bb1e5": { "message": "Which bot do you want to open?" }, + "which_bots_are_allowed_to_use_this_skill_b908339e": { + "message": "Which bots are allowed to use this skill?" + }, "which_event_6e655d2b": { "message": "Which event?" }, @@ -4205,6 +4238,12 @@ "your_new_bot_is_almost_ready_1bb596e": { "message": "Your new bot is almost ready!" }, + "your_skill_could_not_be_published_5bee6e6a": { + "message": "Your skill could not be published." + }, + "your_skill_is_ready_to_be_shared_6376eb3c": { + "message": "Your skill is ready to be shared!" + }, "your_teams_adapter_is_configured_for_your_publishe_e84e9275": { "message": "Your Teams adapter is configured for your published bot. Copy the manifest, open App Studio in Teams and add the manifest so you can test your bot in Teams" }, diff --git a/extensions/azurePublish/src/components/ChooseProvisionAction.tsx b/extensions/azurePublish/src/components/ChooseProvisionAction.tsx index c12465617b..291216215d 100644 --- a/extensions/azurePublish/src/components/ChooseProvisionAction.tsx +++ b/extensions/azurePublish/src/components/ChooseProvisionAction.tsx @@ -28,10 +28,11 @@ const ChoicesPane = styled.div` const ContentPane = styled(Stack)` border-left: 1px solid ${NeutralColors.gray30}; height: 100%; + overflow-y: auto; `; const Content = styled(Stack)` - padding: 20px; + padding: 0px 20px; `; const Title = styled(Text)` @@ -54,7 +55,6 @@ const Instruction = styled(Stack)` const InstructionTitle = styled(Text)` font-size: ${FluentTheme.fonts.smallPlus.fontSize}; text-transform: uppercase; - margin: 8px 0; `; const InstructionDetails = styled.div` @@ -67,6 +67,7 @@ const ResourceTitle = styled(Stack)` const LearnMoreLink = styled(Link)` user-select: none; + font-size: 14px; `; // ---------- CreateActionContent ---------- // @@ -74,14 +75,15 @@ const LearnMoreLink = styled(Link)` const CreateActionContent = () => { return ( - {formatMessage('Create New Resources')} {formatMessage( 'Select this option when you want to provision new Azure resources and publish a bot. A subscription to ' )} - {formatMessage('Microsoft Azure')} + + {formatMessage('Microsoft Azure')} + {formatMessage(' is required.')}
@@ -96,7 +98,7 @@ const CreateActionContent = () => { {formatMessage( - 'Select tenant & subscription, enter resource group name and resource name, and select region.' + 'Select tenant and subscription, enter resource group name and resource name, and select region.' )} @@ -106,13 +108,13 @@ const CreateActionContent = () => { {formatMessage( - 'Review & create new resources. Once provisioned these resources will be available in your Azure portal.' + 'Review and create new resources. Once provisioned these resources will be available in your Azure portal.' )}
- + {formatMessage('Learn More')}
diff --git a/extensions/azurePublish/src/components/azureProvisionDialog.tsx b/extensions/azurePublish/src/components/azureProvisionDialog.tsx index a045078cf4..b45538d025 100644 --- a/extensions/azurePublish/src/components/azureProvisionDialog.tsx +++ b/extensions/azurePublish/src/components/azureProvisionDialog.tsx @@ -96,12 +96,12 @@ const PageTypes = { const DialogTitle = { CHOOSE_ACTION: { - title: formatMessage('Configure resources'), - subText: formatMessage('How you would like to provision Azure resources to your publishing profile?'), + title: formatMessage('Configure resources to your publishing profile'), + subText: formatMessage('How would you like to provision Azure resources to your publishing profile?'), }, CONFIG_RESOURCES: { - title: formatMessage('Configure resources'), - subText: formatMessage('How you would like to provision your Azure resources to publish your bot?'), + title: formatMessage('Import existing resources'), + subText: formatMessage('Please provide your Publish Configuration'), }, ADD_RESOURCES: { title: formatMessage('Add resources'), @@ -725,18 +725,14 @@ export const AzureProvisionDialog: React.FC = () => { const resourceGroupNames = resourceGroups?.map((r) => r.name) || []; const PageChooseAction = ( - +
{ updateFormData('creationType', choice); }} /> - +
); const PageFormConfig = ( @@ -941,6 +937,13 @@ export const AzureProvisionDialog: React.FC = () => { } }} /> + { + closeDialog(); + }} + /> ); @@ -1052,6 +1055,13 @@ export const AzureProvisionDialog: React.FC = () => { } }} /> + { + closeDialog(); + }} + /> ); @@ -1100,17 +1110,24 @@ export const AzureProvisionDialog: React.FC = () => { <> { - closeDialog(); + setPageAndTitle(PageTypes.ChooseAction); }} /> + { + closeDialog(); + }} + /> ); }