Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
fc91c9f
Add classes for validation
almedina-ms Mar 10, 2020
6d3484c
Add interfaces for input validation
almedina-ms Mar 12, 2020
ed6a2c4
[UWP] Input Validation Prototype
Nov 11, 2019
a0f8815
Merge branch 'user/almedina-ms/AndroidABunchOfPrototyping' into user/…
almedina-ms Mar 17, 2020
7542437
Second version of validation
almedina-ms Mar 20, 2020
8226e0a
Update some stuff
almedina-ms Mar 23, 2020
f67b8f9
Add minor fixes and ur
almedina-ms Mar 25, 2020
4feef16
Add multitype label support
almedina-ms Mar 31, 2020
16f16a1
Fix break
almedina-ms Apr 3, 2020
4cc699b
Add support for card elements as labels
almedina-ms Apr 10, 2020
8226a14
Add automation properties
almedina-ms Apr 23, 2020
84b663f
Add fixes for accessibiloty
almedina-ms Apr 28, 2020
057e1c7
Add host config support
almedina-ms Apr 30, 2020
4a4bb92
Fix accessibility for error messages
almedina-ms May 5, 2020
a5d8db1
Add host config options for validation behavior
almedina-ms May 12, 2020
635e7e0
Modify host config to show enw options
almedina-ms May 12, 2020
d083433
Add files to project
almedina-ms May 12, 2020
b9a88fb
Merge branch 'master' into user/almedina-ms/InputPrototypeAndroid
almedina-ms May 12, 2020
eb4017d
Merge branch 'master' into feature/inputEvolution
May 14, 2020
61a5ac0
Merge branch 'master' into feature/inputEvolution
almedina-ms Jun 1, 2020
f0a9abf
Remove UWP specific code
almedina-ms Jun 2, 2020
75f3571
Remove Android specific code changes
almedina-ms Jun 2, 2020
8e3e1a0
Merge branch 'main' into feature/inputEvolution
almedina-ms Jun 16, 2020
bdf74f7
Update test files
almedina-ms Jun 16, 2020
4ae24e7
Merge branch 'main' into feature/inputEvolution
paulcam206 Jun 19, 2020
fa0d32c
[TS] Input validation (#4197)
dclaux Jun 22, 2020
2334aef
[Shared model] Update namings in host config (#4213)
almedina-ms Jun 25, 2020
b2e37af
Fix some test json for bugbash
almedina-ms Jun 26, 2020
59615e3
Fix cards with errors
almedina-ms Jun 26, 2020
7126be7
Update long labels to be loooooooooooooooooooooong
almedina-ms Jun 26, 2020
37c829f
[DevSpec] Updates to input validation spec (#4190)
almedina-ms Jun 29, 2020
b7e5425
[UWP] Input Evolution (#4088)
almedina-ms Jun 30, 2020
7561632
[Android] Input labels and errors support (#4039)
almedina-ms Jun 30, 2020
9bfa03e
Merge branch 'main' into feature/inputEvolution
almedina-ms Jun 30, 2020
02f7ed2
Fix casting issue
almedina-ms Jul 1, 2020
69ada59
Add missing file from previous commit
almedina-ms Jul 1, 2020
bd19982
[WPF] Input Evolution (#4172)
almedina-ms Jul 1, 2020
654d161
[UWP] Fix inline actions not getting inputs (#4266)
almedina-ms Jul 1, 2020
f96f33f
Merge branch 'main' into feature/inputEvolution
almedina-ms Jul 6, 2020
d325c45
[UWP] Respect host config formatting for labels (#4289)
almedina-ms Jul 7, 2020
d80daec
Fix crashes when no input exist in a card (#4316)
almedina-ms Jul 8, 2020
847a6a2
[UWP] Sample custom input (#4282)
almedina-ms Jul 9, 2020
a50e1db
[WPF] Rename the input label host config property to match cpp shared…
almedina-ms Jul 9, 2020
6e9de93
Rename custom input to be the same as other renderers (#4328)
almedina-ms Jul 9, 2020
064d25d
Fix input visibility (#4306)
almedina-ms Jul 9, 2020
896fdd6
Fix crash when clicking inline actin (#4290)
almedina-ms Jul 9, 2020
be882d8
Merge branch 'main' into feature/inputEvolution
paulcam206 Jul 10, 2020
70cd673
Fix samples (#4347)
almedina-ms Jul 13, 2020
ef236ee
[TS] Input accessibility + designer open sample dialog fixes (#4239)
dclaux Jul 13, 2020
7a729a2
Ts/input label as label (#4354)
dclaux Jul 13, 2020
22b7312
[Android] fix focus on elements (#4321)
almedina-ms Jul 13, 2020
0c84305
work in progress
jwoo-msft Jul 14, 2020
5190496
completed input view
jwoo-msft Jul 14, 2020
679116b
Merge branch 'main' into feature/inputEvolution
Jul 14, 2020
5aa53da
completed input label & work in progress for inputvalidation
jwoo-msft Jul 15, 2020
47af793
[UWP] Fix crash when invoking show cards (#4370)
Jul 15, 2020
4112d48
Merge branch 'main' into feature/inputEvolution
paulcam206 Jul 15, 2020
813570b
Remove control validation (#4379)
almedina-ms Jul 16, 2020
b0c7306
[Android] Fix suffix rendering in labels (#4372)
almedina-ms Jul 16, 2020
c9a39de
[Android] Fix visual input cue to clean the state on instantiation (#…
almedina-ms Jul 16, 2020
6ca03e5
[Android] Fix empty date input (#4374)
almedina-ms Jul 16, 2020
028ff79
complted implementing input validation
jwoo-msft Jul 16, 2020
3298544
[JS] Regenerate package-lock files
paulcam206 Jul 16, 2020
609f25e
Merge main
paulcam206 Jul 16, 2020
8e23900
code complete
jwoo-msft Jul 17, 2020
dda9109
Merge branch 'jwoo/ios-input-evolution' into feature/inputEvolution
jwoo-msft Jul 17, 2020
6459575
Revert "Merge branch 'jwoo/ios-input-evolution' into feature/inputEvo…
jwoo-msft Jul 17, 2020
f862823
Emit warning for required inputs without label (#4435)
dclaux Jul 20, 2020
c334de3
[UWP] Fix Input.Number validation logic to ensure value is a number (…
Jul 21, 2020
423d587
[WPF] Fix automation properties (#4371)
almedina-ms Jul 21, 2020
bf87e1e
Add warnings for empty labels in required inputs (#4409)
almedina-ms Jul 21, 2020
a8c3c0a
Add warning for empty label in required input (#4454)
almedina-ms Jul 21, 2020
fa19028
Add input retrieval to inlinr submit actions (#4453)
almedina-ms Jul 21, 2020
548e56e
[Android] Fix stretch textblock claiming all visible space (#4452)
almedina-ms Jul 21, 2020
101d5f7
Sample updates (#4455)
Jul 21, 2020
a447ec8
Change choiceset returns from null to empty (#4458)
almedina-ms Jul 22, 2020
d736a15
ios input evolution (#4437)
jwoo-msft Jul 22, 2020
1ea3003
Fix label to make hint always have attention color (#4456)
almedina-ms Jul 22, 2020
ac99058
Fixing .NET CI tests for feature/inputEvolution (#4462)
Jul 22, 2020
931cd91
Merge branch 'main' into feature/inputEvolution
Jul 22, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -291,3 +291,6 @@ cscope.po.out

# Teamwork.com VS extension
twp.json

# Android
**/.cxx/*
22 changes: 22 additions & 0 deletions samples/HostConfig/sample.json
Original file line number Diff line number Diff line change
Expand Up @@ -268,5 +268,27 @@
"wrap": true
},
"spacing": 8
},
"inputs":
{
"label":
{
"inputSpacing": "small",
"requiredInputs": {
"suffix": " (required)",
"weight": "bolder",
"size": "medium"
},
"optionalInputs": {
"color": "dark",
"isSubtle": true
}
},
"errorMessage":
{
"spacing": "small",
"size": "small",
"weight": "bolder"
}
}
}
202 changes: 1 addition & 201 deletions samples/v1.0/Scenarios/Inputs.json
Original file line number Diff line number Diff line change
@@ -1,201 +1 @@
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"size": "medium",
"weight": "bolder",
"text": "Input.Text elements",
"horizontalAlignment": "center"
},
{
"type": "Input.Text",
"placeholder": "Name",
"style": "text",
"maxLength": 0,
"id": "SimpleVal"
},
{
"type": "Input.Text",
"placeholder": "Homepage",
"style": "url",
"maxLength": 0,
"id": "UrlVal"
},
{
"type": "Input.Text",
"placeholder": "Email",
"style": "email",
"maxLength": 0,
"id": "EmailVal"
},
{
"type": "Input.Text",
"placeholder": "Phone",
"style": "tel",
"maxLength": 0,
"id": "TelVal"
},
{
"type": "Input.Text",
"placeholder": "Comments",
"style": "text",
"isMultiline": true,
"maxLength": 0,
"id": "MultiLineVal"
},
{
"type": "Input.Number",
"placeholder": "Quantity",
"min": -5,
"max": 5,
"value": 1,
"id": "NumVal"
},
{
"type": "Input.Date",
"placeholder": "Due Date",
"id": "DateVal",
"value": "2017-09-20"
},
{
"type": "Input.Time",
"placeholder": "Start time",
"id": "TimeVal",
"value": "16:59"
},
{
"type": "TextBlock",
"size": "medium",
"weight": "bolder",
"text": "Input.ChoiceSet",
"horizontalAlignment": "center"
},
{
"type": "TextBlock",
"text": "What color do you want? (compact)"
},
{
"type": "Input.ChoiceSet",
"id": "CompactSelectVal",
"style": "compact",
"value": "1",
"choices": [
{
"title": "Red",
"value": "1"
},
{
"title": "Green",
"value": "2"
},
{
"title": "Blue",
"value": "3"
}
]
},
{
"type": "TextBlock",
"text": "What color do you want? (expanded)"
},
{
"type": "Input.ChoiceSet",
"id": "SingleSelectVal",
"style": "expanded",
"value": "1",
"choices": [
{
"title": "Red",
"value": "1"
},
{
"title": "Green",
"value": "2"
},
{
"title": "Blue",
"value": "3"
}
]
},
{
"type": "TextBlock",
"text": "What colors do you want? (multiselect)"
},
{
"type": "Input.ChoiceSet",
"id": "MultiSelectVal",
"isMultiSelect": true,
"value": "1,3",
"choices": [
{
"title": "Red",
"value": "1"
},
{
"title": "Green",
"value": "2"
},
{
"title": "Blue",
"value": "3"
}
]
},
{
"type": "TextBlock",
"size": "medium",
"weight": "bolder",
"text": "Input.Toggle",
"horizontalAlignment": "center"
},
{
"type": "Input.Toggle",
"title": "I accept the terms and conditions (True/False)",
"valueOn": "true",
"valueOff": "false",
"id": "AcceptsTerms"
},
{
"type": "Input.Toggle",
"title": "Red cars are better than other cars",
"valueOn": "RedCars",
"valueOff": "NotRedCars",
"id": "ColorPreference"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Submit",
"data": {
"id": "1234567890"
}
},
{
"type": "Action.ShowCard",
"title": "Show Card",
"card": {
"type": "AdaptiveCard",
"body": [
{
"type": "Input.Text",
"placeholder": "enter comment",
"style": "text",
"maxLength": 0,
"id": "CommentVal"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "OK"
}
]
}
}
]
}
{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.0", "body": [ { "type": "TextBlock", "size": "medium", "weight": "bolder", "text": "Input.Text elements", "horizontalAlignment": "center" }, { "type": "TextBlock", "text": "Name" }, { "type": "Input.Text", "style": "text", "id": "SimpleVal" }, { "type": "TextBlock", "text": "Homepage" }, { "type": "Input.Text", "style": "url", "id": "UrlVal" }, { "type": "TextBlock", "text": "Email" }, { "type": "Input.Text", "style": "email", "id": "EmailVal" }, { "type": "TextBlock", "text": "Phone" }, { "type": "Input.Text", "style": "tel", "id": "TelVal" }, { "type": "TextBlock", "text": "Comments" }, { "type": "Input.Text", "style": "text", "isMultiline": true, "id": "MultiLineVal" }, { "type": "TextBlock", "text": "Quantity" }, { "type": "Input.Number", "min": -5, "max": 5, "value": 1, "id": "NumVal" }, { "type": "TextBlock", "text": "Due Date" }, { "type": "Input.Date", "id": "DateVal", "value": "2017-09-20" }, { "type": "TextBlock", "text": "Start time" }, { "type": "Input.Time", "id": "TimeVal", "value": "16:59" }, { "type": "TextBlock", "size": "medium", "weight": "bolder", "text": "Input.ChoiceSet", "horizontalAlignment": "center" }, { "type": "TextBlock", "text": "What color do you want? (compact)" }, { "type": "Input.ChoiceSet", "id": "CompactSelectVal", "style": "compact", "value": "1", "choices": [ { "title": "Red", "value": "1" }, { "title": "Green", "value": "2" }, { "title": "Blue", "value": "3" } ] }, { "type": "TextBlock", "text": "What color do you want? (expanded)" }, { "type": "Input.ChoiceSet", "id": "SingleSelectVal", "style": "expanded", "value": "1", "choices": [ { "title": "Red", "value": "1" }, { "title": "Green", "value": "2" }, { "title": "Blue", "value": "3" } ] }, { "type": "TextBlock", "text": "What colors do you want? (multiselect)" }, { "type": "Input.ChoiceSet", "id": "MultiSelectVal", "isMultiSelect": true, "value": "1,3", "choices": [ { "title": "Red", "value": "1" }, { "title": "Green", "value": "2" }, { "title": "Blue", "value": "3" } ] }, { "type": "TextBlock", "size": "medium", "weight": "bolder", "text": "Input.Toggle", "horizontalAlignment": "center" }, { "type": "Input.Toggle", "title": "I accept the terms and conditions (True/False)", "valueOn": "true", "valueOff": "false", "id": "AcceptsTerms" }, { "type": "Input.Toggle", "title": "Red cars are better than other cars", "valueOn": "RedCars", "valueOff": "NotRedCars", "id": "ColorPreference" } ], "actions": [ { "type": "Action.Submit", "title": "Submit", "data": { "id": "1234567890" } }, { "type": "Action.ShowCard", "title": "Show Card", "card": { "type": "AdaptiveCard", "body": [ { "type": "TextBlock", "text": "Enter comment" }, { "type": "Input.Text", "style": "text", "id": "CommentVal" } ], "actions": [ { "type": "Action.Submit", "title": "OK" } ] } } ]}
Expand Down
33 changes: 0 additions & 33 deletions samples/v1.3/Elements/Action.Submit.IgnoreInputValidation.json

This file was deleted.

40 changes: 0 additions & 40 deletions samples/v1.3/Elements/AdaptiveCard.InputNecessityIndicators.json

This file was deleted.

70 changes: 70 additions & 0 deletions samples/v1.3/Elements/Input.ChoiceSet.ErrorMessage.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "Input.ChoiceSet",
"id": "input1",
"style": "compact",
"isMultiSelect": false,
"label": "Required Input.ChoiceSet label (compact)",
"isRequired": true,
"errorMessage": "This is a required input",
"choices": [
{
"title": "Option 1",
"value": "1"
},
{
"title": "Option 2",
"value": "2"
}
]
},
{
"type": "Input.ChoiceSet",
"id": "input2",
"style": "expanded",
"isMultiSelect": false,
"label": "Required Input.ChoiceSet label (expanded)",
"isRequired": true,
"errorMessage": "This is a required input",
"choices": [
{
"title": "Option 1",
"value": "1"
},
{
"title": "Option 2",
"value": "2"
}
]
},
{
"type": "Input.ChoiceSet",
"id": "input3",
"style": "expanded",
"isMultiSelect": true,
"label": "Required Input.ChoiceSet label (expanded, multiselect)",
"isRequired": true,
"errorMessage": "This is a required input",
"choices": [
{
"title": "Option 1",
"value": "1"
},
{
"title": "Option 2",
"value": "2"
}
]
}
],
"actions": [
{
"type": "Action.Submit",
"title": "OK"
}
]
}
1 change: 1 addition & 0 deletions samples/v1.3/Elements/Input.ChoiceSet.Label.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.0", "body": [ { "type": "Input.ChoiceSet", "id": "input1", "style": "compact", "isMultiSelect": false, "label": "Default Input.ChoiceSet label (compact)", "choices": [ { "title": "Option 1", "value": "1" }, { "title": "Option 2", "value": "2" } ] }, { "type": "Input.ChoiceSet", "id": "input2", "style": "compact", "isMultiSelect": false, "label": "Required Input.ChoiceSet label (compact)", "isRequired": true, "errorMessage": "Required input", "choices": [ { "title": "Option 1", "value": "1" }, { "title": "Option 2", "value": "2" } ] }, { "type": "Input.ChoiceSet", "id": "input3", "style": "expanded", "isMultiSelect": false, "label": "Default Input.ChoiceSet label (expanded)", "choices": [ { "title": "Option 1", "value": "1" }, { "title": "Option 2", "value": "2" } ] }, { "type": "Input.ChoiceSet", "id": "input4", "style": "expanded", "isMultiSelect": false, "label": "Required Input.ChoiceSet label (expanded)", "isRequired": true, "errorMessage": "Required input", "choices": [ { "title": "Option 1", "value": "1" }, { "title": "Option 2", "value": "2" } ] }, { "type": "Input.ChoiceSet", "id": "input5", "style": "expanded", "isMultiSelect": true, "label": "Default Input.ChoiceSet label (expanded, multiselect)", "choices": [ { "title": "Option 1", "value": "1" }, { "title": "Option 2", "value": "2" } ] }, { "type": "Input.ChoiceSet", "id": "input6", "style": "expanded", "isMultiSelect": true, "isRequired": true, "label": "Required Input.ChoiceSet label (expanded, multiselect)", "errorMessage": "Required input", "choices": [ { "title": "Option 1", "value": "1" }, { "title": "Option 2", "value": "2" } ] } ], "actions": [ { "type": "Action.Submit", "title": "OK" } ]}
Expand Down
1 change: 1 addition & 0 deletions samples/v1.3/Elements/Input.Date.ErrorMessage.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.0", "body": [ { "type": "Input.Date", "id": "input1", "label": "This is a required Input.Date", "isRequired": true, "errorMessage": "This date is required" }, { "type": "Input.Date", "id": "input2", "label": "Input.Date with valid min date of February 1st, 2012", "min": "2012-02-01", "errorMessage": "This date must be on or after February 1st, 2012" }, { "type": "Input.Date", "id": "input3", "label": "Input.Date with valid max date of November 2nd, 2021", "max": "2021-11-02", "errorMessage": "This date must be on or before November 2nd, 2021" }, { "type": "Input.Date", "id": "input4", "label": "Required Input.Date with valid value between April 1st, 2012 and January 7th, 2025", "min": "2012-04-01", "max": "2025-01-07", "isRequired": true, "errorMessage": "This date is required and must be between April 1st, 2012 and January 7th, 2025" } ], "actions": [ { "type": "Action.Submit", "title": "OK" } ]}
Expand Down
Loading