Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Schema-driven visual editor - migrates 15 simple types #1811

Merged

Conversation

yeze322
Copy link
Contributor

@yeze322 yeze322 commented Dec 27, 2019

UI schema Implementation Plan

  • stage 1 (current) - support basic rendering with uischema definition
    • set up uischema definition & implement a generic renderer based on uischema
    • covered $types: 15 simple $types, such as LogAction
  • stage 2 - support complicated content rendering
    • extract more widget to support complicated node content
    • covered $types: SendActivity, ReplaceDialog, BeginDialog
  • stage 3 - support multiple nodes rendering
    • implement a InputWidget which looks like current BaseInput
    • covered $types: all input $types, such as TextInput, NumberInput (but exclude OauthInput)
  • stage 4 - support nested uischema definition
    • extend 'uischema''s definition to support rendering nested $types such as IfConditon, Foreach
    • covered $types: branching - IfCondtion, SwitchConditon; loop - Foreach, ForeachPage;

Description

fixes #1770

Use an uischema definition to define visual nodes' rendering process.
Schema is defined like this:

[SDKTypes.EditArray]: {
    'ui:widget': ActionCard,
    title: generateSDKTitle(),
    content: data => `${data.changeType} {${data.itemsProperty || '?'}}`,
},

[SDKTypes.EndTurn]: {
    'ui:widget': ActionCard,
    title: 'End Dialog Turn',
    content: 'Wait for another message',
}

This pr retires DefaultRenderer and migrates 15 Adaptive types to the new uischema renderer:

  • 1. EditArray
  • 2. InitProperty
  • 3. SetProperty
  • 4. SetProperties
  • 5. DeleteProperty
  • 6. EndDialog
  • 7. CancelAllDialogs
  • 8. EndTurn
  • 9. EmitEvent
  • 10. HttpRequest
  • 11. TraceActivity
  • 12. LogAction
  • 13. EditActions (not available in Composer)
  • 14. QnAMakerDialog
  • 15. OAuthInput

4 $types are influenced by this migration:

  • 1. SwitchCondition (add <ConditionNode />)
  • 2. IfCondition (add <ConditionNode />)
  • 3. Foreach (add <ForeachDetail />)
  • 4. ForeachPage (add <ForeachPageDetail />)

To make sure this PR won't bring any different behavior,

  • I've checked the render results of all those $types listed above.

Task Item

resolves #1770

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Code refactor (non-breaking change which improve code quality, clean up, add tests, etc)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Doc update (document update)

Checklist

  • I have added tests that prove my fix is effective or that my feature works
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have functionally tested my change

Screenshots

Please include screenshots or gifs if your PR include UX changes.

@yeze322 yeze322 changed the base branch from stable to master December 27, 2019 13:00
@hibrenda hibrenda mentioned this pull request Dec 30, 2019
4 tasks
@yeze322 yeze322 changed the title feat: Schema-driven visual editor - support 15 simple types feat: Schema-driven visual editor - migrates 15 simple types Jan 2, 2020
@yeze322 yeze322 marked this pull request as ready for review January 2, 2020 13:55
@yeze322
Copy link
Contributor Author

yeze322 commented Jan 3, 2020

I've resolved those formatMessage comments but not very sure about the solution on resolving sdk title, @a-b-r-o-w-n what's your opinion on my comments?

@yeze322
Copy link
Contributor Author

yeze322 commented Jan 6, 2020

Made some improvements

@a-b-r-o-w-n a-b-r-o-w-n merged commit 9167702 into microsoft:master Jan 6, 2020
@a-b-r-o-w-n a-b-r-o-w-n mentioned this pull request Jan 27, 2020
cwhitten added a commit that referenced this pull request Jan 28, 2020
### 01-27-2020

#### Added

- feat: enrich prebuilt memory paths and add user defined memory paths ([#1868](#1868)) ([@lei9444](https://github.com/lei9444))
- feat: Language-Understanding LSP ([#1711](#1711)) ([@cosmicshuai](https://github.com/cosmicshuai))
- feat: lu shell api ([#1810](#1810)) ([@zhixzhan](https://github.com/zhixzhan))
- feat: Start Botproject runtime in bot folder ([#1672](#1672)) ([@VanyLaw](https://github.com/VanyLaw))
- feat: Schema-driven visual editor - migrates 15 simple types ([#1811](#1811)) ([@yeze322](https://github.com/yeze322))
- feat: Update OnConversationUpdate actions ([#1794](#1794)) ([@luhan2017](https://github.com/luhan2017))
- feat: Update LG and built in expression functions in LSP ([#1790](#1790)) ([@Danieladu](https://github.com/Danieladu))
- feat: Add dynamic choices to Choice Prompt ([#1777](#1777)) ([@tdurnford](https://github.com/tdurnford))
- feat: update ui for new schema ([#1775](#1775)) ([@alanlong9278](https://github.com/alanlong9278))
- feat: lu all up view ux enhancement ([#1879](#1879)) ([@zhixzhan](https://github.com/zhixzhan))
- feat: add autoClosingPairs for lg editor ([#1789](#1789)) ([@cosmicshuai](https://github.com/cosmicshuai))

#### Fixed

- fix: update the lg content to store when editor editing ([#1884](#1884)) ([@lei9444](https://github.com/lei9444))
- fix: Aligned elements in prompt settings ([#1893](#1893)) ([@tdurnford](https://github.com/tdurnford))
- fix: remove label from validations ([#1891](#1891)) ([@tdurnford](https://github.com/tdurnford))
- fix: Undo / redo behavior on LG resources ([#1813](#1813)) ([@lei9444](https://github.com/lei9444))
- fix: botproject build script powershell version limit ([#1857](#1857)) ([@VanyLaw](https://github.com/VanyLaw))
- fix: Add support of auto suggestion memory variable ([#1819](#1819)) ([@cosmicshuai](https://github.com/cosmicshuai))
- fix: Fixed Multiple Choice Type undo/redo functionality ([#1844](#1844)) ([@tdurnford](https://github.com/tdurnford))
- fix: RepeatDialog not shown ([#1835](#1835)) ([@yeze322](https://github.com/yeze322))
- fix: do not preset name when creating a dialog ([#1805](#1805)) ([@liweitian](https://github.com/liweitian))
- fix: luis authoringRegion not update in popup form ([#1818](#1818)) ([@VanyLaw](https://github.com/VanyLaw))
- fix: Check all expressions in dialog ([#1798](#1798)) ([@lei9444](https://github.com/lei9444))
- fix: TextWidget hover ([#1825](#1825)) ([@tdurnford](https://github.com/tdurnford))
- fix: Create bot from scratch may create a non-empty bot ([#1796](#1796)) ([@liweitian](https://github.com/liweitian))
- fix: Updated release version on about page ([#1788](#1788)) ([@tdurnford](https://github.com/tdurnford))
- fix: Remove the unused lufiles in notifications ([#1760](#1760)) ([@lei9444](https://github.com/lei9444))
- fix: update form correctly when undo or redo changes ([#1808](#1808)) ([@lei9444](https://github.com/lei9444))
- fix: handle multiple ctrl+z in lg editor ([#1804](#1804)) ([@zhixzhan](https://github.com/zhixzhan))

#### Changed

- refactor: re-provide `getLgTemplates` api ([#1746](#1746)) ([@yeze322](https://github.com/yeze322))
- style: updated delete icon ([#1892](#1892)) ([@tdurnford](https://github.com/tdurnford))
- refactor: let ElementWrapper control the focus state ([#1880](#1880)) ([@yeze322](https://github.com/yeze322))
- refactor: render Elements with composition strategy (ElementRenderer -> ElementWrapper) ([#1873](#1873)) ([@yeze322](https://github.com/yeze322))

#### Other

- chore: migrate IfCondition, SwitchCondition, Foreach(Page) to uischema ([#1899](#1899)) ([@yeze322](https://github.com/yeze322))
- chore: migrate TextInput and all other \*Input types to uischema ([#1874](#1874)) ([@yeze322](https://github.com/yeze322))
- chore: migrate SendActivity, BeginDialog, ReplaceDialog to uischema ([#1840](#1840)) ([@yeze322](https://github.com/yeze322))
- chore: retire 'DefaultRenderer' in visual editor ([#1836](#1836)) ([@yeze322](https://github.com/yeze322))
- chore: update lu/lg all up view ([#1806](#1806)) ([@liweitian](https://github.com/liweitian))
- chore: share server's resource to lsp server ([#1793](#1793)) ([@zhixzhan](https://github.com/zhixzhan))
- chore: refactor lg page route & url ([#1756](#1756)) ([@zhixzhan](https://github.com/zhixzhan))
- chore: convert ludown to bf-lu ([#1608](#1608)) ([@lei9444](https://github.com/lei9444))
- chore: proxy lsp ws request in dev ([#1754](#1754)) ([@zhixzhan](https://github.com/zhixzhan))
- docs: fix a typo ([#1901](#1901)) ([@HiltonGiesenow](https://github.com/HiltonGiesenow))
- docs: use correct link in events and triggers documentation ([#1832](#1832)) ([@arafattehsin](https://github.com/arafattehsin))
- docs: fix memory documentation link and typo ([#1833](#1833)) ([@arafattehsin](https://github.com/arafattehsin))
- docs: fix the links to intents and advanced definitions ([#1854](#1854)) ([@arafattehsin](https://github.com/arafattehsin))
- chore: bump immer to 5.2.0 ([#1846](#1846)) ([@cwhitten](https://github.com/cwhitten))
- chore: update botproject packages ([#1809](#1809)) ([@luhan2017](https://github.com/luhan2017))
- chore: update github templates ([@a-b-r-o-w-n](https://github.com/a-b-r-o-w-n))
- chore: update schema and samples ([@luhan2017](https://github.com/luhan2017))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants