Compare commits

...

3 Commits

6 changed files with 293 additions and 200 deletions

View File

@ -290,16 +290,24 @@ class _EditInteractionScreenState extends State<EditInteractionScreen> {
sectionItem.input == sectionItem.input ==
'add' 'add'
? const SizedBox.shrink() ? const SizedBox.shrink()
: Text( : Padding(
padding:
const EdgeInsets
.only(
left: 8.0,
right: 8.0),
child: Text(
'${sectionItem.name}:*', '${sectionItem.name}:*',
style: TextStyle( style: TextStyle(
color: Colors.orange color: Colors
.orange
.shade800, .shade800,
fontSize: isTablet fontSize: isTablet
? 18 ? 18
: 12, : 12,
), ),
), ),
),
SizedBox( SizedBox(
height: isTablet ? 15 : 5, height: isTablet ? 15 : 5,
), ),
@ -465,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,
@ -486,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);
@ -647,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 = [];
@ -1026,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: [

View File

@ -282,7 +282,13 @@ class _InteractionScreenState extends State<InteractionScreen> {
sectionItem.input == sectionItem.input ==
'add' 'add'
? const SizedBox.shrink() ? const SizedBox.shrink()
: FittedBox( : Padding(
padding:
const EdgeInsets
.only(
left: 8.0,
right: 8.0),
child: FittedBox(
fit: BoxFit.scaleDown, fit: BoxFit.scaleDown,
child: Text( child: Text(
sectionItem sectionItem
@ -291,7 +297,8 @@ class _InteractionScreenState extends State<InteractionScreen> {
? '${sectionItem.name}:*' ? '${sectionItem.name}:*'
: '${sectionItem.name}:', : '${sectionItem.name}:',
style: TextStyle( style: TextStyle(
color: Colors.orange color: Colors
.orange
.shade800, .shade800,
fontSize: 18.0, fontSize: 18.0,
// fontSize: isTablet // fontSize: isTablet
@ -300,6 +307,7 @@ class _InteractionScreenState extends State<InteractionScreen> {
), ),
), ),
), ),
),
// SizedBox( // SizedBox(
// height: isTablet ? 15 : 5, // height: isTablet ? 15 : 5,
// ), // ),
@ -501,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);
}, },
), ),
@ -1051,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
), ),
@ -1071,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) {
@ -1080,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)
@ -1091,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: [
@ -1139,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!,
@ -1159,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),
@ -1203,6 +1232,7 @@ class _InteractionScreenState extends State<InteractionScreen> {
}, },
), ),
), ),
),
); );
} }

View File

@ -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,13 +477,13 @@ 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

View File

@ -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(

View File

@ -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

View File

@ -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