textfield issue fixes
This commit is contained in:
parent
91f46d6036
commit
0eef014073
|
@ -473,8 +473,7 @@ class _EditInteractionScreenState extends State<EditInteractionScreen> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
: Expanded(
|
: Padding(
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.only(left: 8.0, right: 8.0),
|
padding: const EdgeInsets.only(left: 8.0, right: 8.0),
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
// width: isTablet ? 200 : MediaQuery.of(context).size.width,
|
// width: isTablet ? 200 : MediaQuery.of(context).size.width,
|
||||||
|
@ -494,7 +493,6 @@ class _EditInteractionScreenState extends State<EditInteractionScreen> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
case InteractionWidget.DROPDOWN:
|
case InteractionWidget.DROPDOWN:
|
||||||
return customdropdown(sectionItem, provider, list, multiple);
|
return customdropdown(sectionItem, provider, list, multiple);
|
||||||
|
@ -655,7 +653,7 @@ class _EditInteractionScreenState extends State<EditInteractionScreen> {
|
||||||
Widget customdropdown(SectionList sectionItem,
|
Widget customdropdown(SectionList sectionItem,
|
||||||
ViewInteractionProvider provider, List<InputClass> list, bool multiple) {
|
ViewInteractionProvider provider, List<InputClass> list, bool multiple) {
|
||||||
// sectionItem.value = '';
|
// sectionItem.value = '';
|
||||||
print("%%%%${sectionItem.selectedValue!.last}");
|
// print("%%%%${sectionItem.selectedValue!.last}");
|
||||||
if (list.isEmpty) {
|
if (list.isEmpty) {
|
||||||
print("###list empty###");
|
print("###list empty###");
|
||||||
list = [];
|
list = [];
|
||||||
|
@ -1034,7 +1032,7 @@ class _EditInteractionScreenState extends State<EditInteractionScreen> {
|
||||||
? provider.getData2(sectionItem)
|
? provider.getData2(sectionItem)
|
||||||
: [];
|
: [];
|
||||||
|
|
||||||
return Wrap(children: [
|
return Wrap(runAlignment: WrapAlignment.spaceEvenly, children: [
|
||||||
Column(
|
Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
|
|
|
@ -509,7 +509,7 @@ class _InteractionScreenState extends State<InteractionScreen> {
|
||||||
controller: sectionItem.controller!,
|
controller: sectionItem.controller!,
|
||||||
labelText: sectionItem.name,
|
labelText: sectionItem.name,
|
||||||
onChanged: (val) {
|
onChanged: (val) {
|
||||||
sectionItem.selectedValue = [];
|
sectionItem.selectedValue!.clear();
|
||||||
provider.setTextValue(val, sectionItem, multiple);
|
provider.setTextValue(val, sectionItem, multiple);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
@ -1059,16 +1059,29 @@ class _InteractionScreenState extends State<InteractionScreen> {
|
||||||
Orientation orientation,
|
Orientation orientation,
|
||||||
FormFieldData item,
|
FormFieldData item,
|
||||||
int listIndex) {
|
int listIndex) {
|
||||||
|
List<String> items = [];
|
||||||
|
|
||||||
|
for (var obj in sectionList) {
|
||||||
|
items.add(obj.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, int> count = {};
|
||||||
|
for (var i in items) {
|
||||||
|
count[i] = (count[i] ?? 0) + 1;
|
||||||
|
}
|
||||||
|
print(count['delete']);
|
||||||
|
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: isTablet
|
padding: isTablet
|
||||||
? const EdgeInsets.only(left: 8.0)
|
? const EdgeInsets.only(left: 8.0)
|
||||||
: const EdgeInsets.only(left: 12.0, right: 12.0),
|
: const EdgeInsets.only(left: 12.0, right: 12.0),
|
||||||
|
child: Card(
|
||||||
child: GridView.count(
|
child: GridView.count(
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
crossAxisCount: context.responsive<int>(
|
crossAxisCount: context.responsive<int>(
|
||||||
1, // default
|
1, // default
|
||||||
sm: 1, // small
|
sm: 1, // small
|
||||||
md: 1, // medium
|
md: 2, // medium
|
||||||
lg: sectionList.length == 1 ? 1 : 4, // large
|
lg: sectionList.length == 1 ? 1 : 4, // large
|
||||||
xl: 5, // extra large screen
|
xl: 5, // extra large screen
|
||||||
),
|
),
|
||||||
|
@ -1079,7 +1092,7 @@ class _InteractionScreenState extends State<InteractionScreen> {
|
||||||
? orientation == Orientation.landscape
|
? orientation == Orientation.landscape
|
||||||
? 10
|
? 10
|
||||||
: 4.2
|
: 4.2
|
||||||
: 1.8,
|
: 3,
|
||||||
children: List.generate(
|
children: List.generate(
|
||||||
sectionList.length,
|
sectionList.length,
|
||||||
(i) {
|
(i) {
|
||||||
|
@ -1088,8 +1101,8 @@ class _InteractionScreenState extends State<InteractionScreen> {
|
||||||
dropdownvalue = sectionItem.widget == InteractionWidget.DROPDOWN
|
dropdownvalue = sectionItem.widget == InteractionWidget.DROPDOWN
|
||||||
? sectionItem.value ?? "Select"
|
? sectionItem.value ?? "Select"
|
||||||
: ' ';
|
: ' ';
|
||||||
List<InputClass> list =
|
List<InputClass> list = sectionItem.widget ==
|
||||||
sectionItem.widget == InteractionWidget.DROPDOWN ||
|
InteractionWidget.DROPDOWN ||
|
||||||
sectionItem.widget == InteractionWidget.AUTOCOMPLETE ||
|
sectionItem.widget == InteractionWidget.AUTOCOMPLETE ||
|
||||||
sectionItem.widget == InteractionWidget.MULTISELECT
|
sectionItem.widget == InteractionWidget.MULTISELECT
|
||||||
? provider.getData2(sectionItem)
|
? provider.getData2(sectionItem)
|
||||||
|
@ -1099,7 +1112,7 @@ class _InteractionScreenState extends State<InteractionScreen> {
|
||||||
? provider.getData2(sectionItem)
|
? provider.getData2(sectionItem)
|
||||||
: [];
|
: [];
|
||||||
|
|
||||||
return Wrap(children: [
|
return Wrap(runAlignment: WrapAlignment.spaceEvenly, children: [
|
||||||
Column(
|
Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
|
@ -1147,15 +1160,19 @@ class _InteractionScreenState extends State<InteractionScreen> {
|
||||||
: "Files Uploaded"
|
: "Files Uploaded"
|
||||||
: 'No file uploaded',
|
: 'No file uploaded',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color:
|
color: sectionItem
|
||||||
sectionItem.selectedValue!.isNotEmpty
|
.selectedValue!.isNotEmpty
|
||||||
? Colors.green
|
? Colors.green
|
||||||
: Colors.red),
|
: Colors.red),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
: isTablet
|
: isTablet
|
||||||
? IconButton(
|
? Row(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
// width: MediaQuery.of(context).size.width,
|
||||||
|
child: IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
provider.deleteMultipleRows(
|
provider.deleteMultipleRows(
|
||||||
sectionItem.gid!,
|
sectionItem.gid!,
|
||||||
|
@ -1167,12 +1184,16 @@ class _InteractionScreenState extends State<InteractionScreen> {
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Icons.cancel,
|
Icons.cancel,
|
||||||
size: 30,
|
size: 30,
|
||||||
color: Color.fromARGB(255, 8, 39, 92),
|
color:
|
||||||
|
Color.fromARGB(255, 8, 39, 92),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
)
|
)
|
||||||
: Padding(
|
: Padding(
|
||||||
padding:
|
padding: const EdgeInsets.only(
|
||||||
const EdgeInsets.only(left: 3.0, top: 5),
|
left: 3.0, top: 5),
|
||||||
child: CustomButton(
|
child: CustomButton(
|
||||||
backgroundColor: const Color.fromARGB(
|
backgroundColor: const Color.fromARGB(
|
||||||
255, 233, 75, 75),
|
255, 233, 75, 75),
|
||||||
|
@ -1211,6 +1232,7 @@ class _InteractionScreenState extends State<InteractionScreen> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -246,8 +246,8 @@ class InteractionProvider extends ChangeNotifier {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (var obj in interactionReponseList) {
|
for (var obj in interactionReponseList) {
|
||||||
if (multiple && obj.multipleList != null) {
|
if (multiple && obj.multipleList != null) {
|
||||||
i = obj.multipleList!
|
i = obj.multipleList!.indexWhere((element) =>
|
||||||
.indexWhere((element) => element.id == sectionItem.id);
|
element.id == sectionItem.id && element.gid == sectionItem.gid);
|
||||||
if (i != -1) {
|
if (i != -1) {
|
||||||
obj.multipleList![i].value = value;
|
obj.multipleList![i].value = value;
|
||||||
obj.multipleList![i].selectedValue!.add(value);
|
obj.multipleList![i].selectedValue!.add(value);
|
||||||
|
@ -420,7 +420,7 @@ class InteractionProvider extends ChangeNotifier {
|
||||||
List<SectionList> addList = [];
|
List<SectionList> addList = [];
|
||||||
int index = interactionReponseList
|
int index = interactionReponseList
|
||||||
.indexWhere((element) => element.sectionName == sectionName);
|
.indexWhere((element) => element.sectionName == sectionName);
|
||||||
|
var textEditingController = TextEditingController();
|
||||||
addList = interactionReponseList[index]
|
addList = interactionReponseList[index]
|
||||||
.sectionList
|
.sectionList
|
||||||
.map((e) => SectionList(
|
.map((e) => SectionList(
|
||||||
|
@ -450,6 +450,17 @@ class InteractionProvider extends ChangeNotifier {
|
||||||
|
|
||||||
addList.add(delItem);
|
addList.add(delItem);
|
||||||
|
|
||||||
|
for (SectionList obj in addList) {
|
||||||
|
//obj.gid = obj.gid ?? addList.length;
|
||||||
|
if (obj.widget == InteractionWidget.TEXT) {
|
||||||
|
// multipletextEditingControllerList.clear();
|
||||||
|
var textEditingController = TextEditingController();
|
||||||
|
obj.controller = textEditingController;
|
||||||
|
multipletextEditingControllerList.add(textEditingController);
|
||||||
|
}
|
||||||
|
// newList.add(obj);
|
||||||
|
}
|
||||||
|
|
||||||
// if (interactionReponseList[index].multipleList!.isEmpty) {
|
// if (interactionReponseList[index].multipleList!.isEmpty) {
|
||||||
// newList = addList;
|
// newList = addList;
|
||||||
// } else {
|
// } else {
|
||||||
|
@ -466,12 +477,12 @@ class InteractionProvider extends ChangeNotifier {
|
||||||
if (interactionReponseList[index].multipleList != null) {
|
if (interactionReponseList[index].multipleList != null) {
|
||||||
for (SectionList obj in interactionReponseList[index].multipleList!) {
|
for (SectionList obj in interactionReponseList[index].multipleList!) {
|
||||||
obj.gid = obj.gid ?? interactionReponseList[index].multipleList!.length;
|
obj.gid = obj.gid ?? interactionReponseList[index].multipleList!.length;
|
||||||
if (obj.widget == InteractionWidget.TEXT) {
|
// if (obj.widget == InteractionWidget.TEXT) {
|
||||||
var textEditingController = TextEditingController();
|
// var textEditingController = TextEditingController();
|
||||||
|
|
||||||
multipletextEditingControllerList.add(textEditingController);
|
// multipletextEditingControllerList.add(textEditingController);
|
||||||
obj.controller = multipletextEditingControllerList.last;
|
// obj.controller = multipletextEditingControllerList.last;
|
||||||
}
|
// }
|
||||||
//newList.add(obj);
|
//newList.add(obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -525,6 +536,12 @@ class InteractionProvider extends ChangeNotifier {
|
||||||
Future<String> saveJsonObject(BuildContext context, String form,
|
Future<String> saveJsonObject(BuildContext context, String form,
|
||||||
{bool isEdit = false}) async {
|
{bool isEdit = false}) async {
|
||||||
print("form_data: $form");
|
print("form_data: $form");
|
||||||
|
// for (var ob in interactionReponseList) {
|
||||||
|
|
||||||
|
// for (var ob2 in ob.multipleList!) {
|
||||||
|
// debugPrint("!!!!!!!!!!!!In multiple :${ob2.selectedValue}");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
List<FormFieldData> resultData = interactionReponseList
|
List<FormFieldData> resultData = interactionReponseList
|
||||||
.map((e) => FormFieldData(
|
.map((e) => FormFieldData(
|
||||||
multipleList: e.multipleList == null
|
multipleList: e.multipleList == null
|
||||||
|
|
|
@ -286,8 +286,10 @@ class _ViewInteractionScreenState extends State<ViewInteractionScreen> {
|
||||||
sectionItem.id, sectionItem.selectedValue!.last));
|
sectionItem.id, sectionItem.selectedValue!.last));
|
||||||
|
|
||||||
case InteractionWidget.AUTOCOMPLETE:
|
case InteractionWidget.AUTOCOMPLETE:
|
||||||
return Text(provider.getDataValue(
|
return Text(sectionItem.selectedValue!.isNotEmpty
|
||||||
sectionItem.id, sectionItem.selectedValue!.last));
|
? provider.getDataValue(
|
||||||
|
sectionItem.id, sectionItem.selectedValue!.last)
|
||||||
|
: " ");
|
||||||
|
|
||||||
case InteractionWidget.MULTISELECT:
|
case InteractionWidget.MULTISELECT:
|
||||||
return Text(sectionItem.selectedValue.toString());
|
return Text(sectionItem.selectedValue.toString());
|
||||||
|
@ -320,6 +322,11 @@ class _ViewInteractionScreenState extends State<ViewInteractionScreen> {
|
||||||
? const Text("File Uploaded")
|
? const Text("File Uploaded")
|
||||||
: const Text(" ")
|
: const Text(" ")
|
||||||
: const Text(" ");
|
: const Text(" ");
|
||||||
|
case InteractionWidget.DROPDOWN:
|
||||||
|
return Text(sectionItem.selectedValue!.isNotEmpty
|
||||||
|
? provider.getDataValue(
|
||||||
|
sectionItem.id, sectionItem.selectedValue!.last)
|
||||||
|
: " ");
|
||||||
default:
|
default:
|
||||||
return Text(sectionItem.selectedValue!.isNotEmpty
|
return Text(sectionItem.selectedValue!.isNotEmpty
|
||||||
? provider.getDataValue(
|
? provider.getDataValue(
|
||||||
|
|
|
@ -140,13 +140,22 @@ class ViewInteractionProvider extends ChangeNotifier {
|
||||||
|
|
||||||
for (SectionList obj in item.multipleList!) {
|
for (SectionList obj in item.multipleList!) {
|
||||||
obj.gid = obj.gid ?? item.multipleList!.length;
|
obj.gid = obj.gid ?? item.multipleList!.length;
|
||||||
|
|
||||||
if (obj.widget == InteractionWidget.TEXT) {
|
if (obj.widget == InteractionWidget.TEXT) {
|
||||||
|
debugPrint("textcontr:${obj.gid}");
|
||||||
|
debugPrint("textcontr:${obj.selectedValue}");
|
||||||
|
// debugPrint("textcontr:${obj.controller!.value}");
|
||||||
var textEditingController = TextEditingController();
|
var textEditingController = TextEditingController();
|
||||||
|
textEditingController.value = TextEditingValue(
|
||||||
|
text: obj.selectedValue!.isNotEmpty
|
||||||
|
? obj.selectedValue!.last ?? ""
|
||||||
|
: "");
|
||||||
textEditingController.text = obj.selectedValue!.isNotEmpty
|
textEditingController.text = obj.selectedValue!.isNotEmpty
|
||||||
? obj.selectedValue!.last ?? ""
|
? obj.selectedValue!.last ?? ""
|
||||||
: "";
|
: "";
|
||||||
multipletextEditingControllerList.add(textEditingController);
|
multipletextEditingControllerList.add(textEditingController);
|
||||||
obj.controller = multipletextEditingControllerList.last;
|
// obj.controller!.value = textEditingController.value;
|
||||||
|
obj.controller = textEditingController;
|
||||||
// obj.controller = obj.selectedValue.last ?? " ";
|
// obj.controller = obj.selectedValue.last ?? " ";
|
||||||
}
|
}
|
||||||
if (obj.widget == InteractionWidget.DROPDOWN ||
|
if (obj.widget == InteractionWidget.DROPDOWN ||
|
||||||
|
@ -608,6 +617,23 @@ class ViewInteractionProvider extends ChangeNotifier {
|
||||||
// if (interactionReponseList[index].multipleList!.isEmpty) {
|
// if (interactionReponseList[index].multipleList!.isEmpty) {
|
||||||
// newList = addList;
|
// newList = addList;
|
||||||
// } else {
|
// } else {
|
||||||
|
|
||||||
|
if (addList.isNotEmpty) {
|
||||||
|
for (SectionList obj in addList) {
|
||||||
|
// obj.gid = obj.gid ?? addList.length;
|
||||||
|
if (obj.widget == InteractionWidget.TEXT) {
|
||||||
|
var textEditingController = TextEditingController();
|
||||||
|
|
||||||
|
multipletextEditingControllerList.add(textEditingController);
|
||||||
|
obj.controller = multipletextEditingControllerList.last;
|
||||||
|
obj.controller!.text =
|
||||||
|
obj.selectedValue != null && obj.selectedValue!.isNotEmpty
|
||||||
|
? obj.selectedValue!.last
|
||||||
|
: '';
|
||||||
|
}
|
||||||
|
// newList.add(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (interactionReponseList[index].multipleList == null) {
|
if (interactionReponseList[index].multipleList == null) {
|
||||||
interactionReponseList[index].multipleList = addList;
|
interactionReponseList[index].multipleList = addList;
|
||||||
} else {
|
} else {
|
||||||
|
@ -622,10 +648,6 @@ class ViewInteractionProvider extends ChangeNotifier {
|
||||||
for (SectionList obj in interactionReponseList[index].multipleList!) {
|
for (SectionList obj in interactionReponseList[index].multipleList!) {
|
||||||
obj.gid = obj.gid ?? interactionReponseList[index].multipleList!.length;
|
obj.gid = obj.gid ?? interactionReponseList[index].multipleList!.length;
|
||||||
if (obj.widget == InteractionWidget.TEXT) {
|
if (obj.widget == InteractionWidget.TEXT) {
|
||||||
var textEditingController = TextEditingController();
|
|
||||||
|
|
||||||
multipletextEditingControllerList.add(textEditingController);
|
|
||||||
obj.controller = multipletextEditingControllerList.last;
|
|
||||||
obj.controller!.text =
|
obj.controller!.text =
|
||||||
obj.selectedValue != null && obj.selectedValue!.isNotEmpty
|
obj.selectedValue != null && obj.selectedValue!.isNotEmpty
|
||||||
? obj.selectedValue!.last
|
? obj.selectedValue!.last
|
||||||
|
@ -653,6 +675,14 @@ class ViewInteractionProvider extends ChangeNotifier {
|
||||||
|
|
||||||
saveJsonObject(BuildContext context, String form,
|
saveJsonObject(BuildContext context, String form,
|
||||||
SaveInteraction saveInteraction) async {
|
SaveInteraction saveInteraction) async {
|
||||||
|
for (var res in interactionReponseList) {
|
||||||
|
for (var sec in res.sectionList) {
|
||||||
|
debugPrint("print ${sec.selectedValue}");
|
||||||
|
}
|
||||||
|
for (var sec in res.multipleList!) {
|
||||||
|
debugPrint("printmultiple ${sec.selectedValue}");
|
||||||
|
}
|
||||||
|
}
|
||||||
List<FormFieldData> resultData = interactionReponseList
|
List<FormFieldData> resultData = interactionReponseList
|
||||||
.map((e) => FormFieldData(
|
.map((e) => FormFieldData(
|
||||||
multipleList: e.multipleList == null
|
multipleList: e.multipleList == null
|
||||||
|
|
|
@ -42,6 +42,9 @@ class InteractionTextField extends StatelessWidget {
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
onChanged(value);
|
onChanged(value);
|
||||||
},
|
},
|
||||||
|
onSubmitted: (value) {
|
||||||
|
onChanged(value);
|
||||||
|
},
|
||||||
inputFormatters: [
|
inputFormatters: [
|
||||||
inputType == TextInputType.number
|
inputType == TextInputType.number
|
||||||
? FilteringTextInputFormatter.digitsOnly
|
? FilteringTextInputFormatter.digitsOnly
|
||||||
|
|
Loading…
Reference in New Issue