Compare commits

..

No commits in common. "0eef014073bfff70227dc7f264f1a6da3c972360" and "6415617f17fcc029102fe34c6b2e48cb66449e66" have entirely different histories.

6 changed files with 200 additions and 293 deletions

View File

@ -290,22 +290,14 @@ class _EditInteractionScreenState extends State<EditInteractionScreen> {
sectionItem.input ==
'add'
? const SizedBox.shrink()
: Padding(
padding:
const EdgeInsets
.only(
left: 8.0,
right: 8.0),
child: Text(
'${sectionItem.name}:*',
style: TextStyle(
color: Colors
.orange
.shade800,
fontSize: isTablet
? 18
: 12,
),
: Text(
'${sectionItem.name}:*',
style: TextStyle(
color: Colors.orange
.shade800,
fontSize: isTablet
? 18
: 12,
),
),
SizedBox(
@ -473,24 +465,26 @@ class _EditInteractionScreenState extends State<EditInteractionScreen> {
},
),
)
: Padding(
padding: const EdgeInsets.only(left: 8.0, right: 8.0),
child: SizedBox(
// width: isTablet ? 200 : MediaQuery.of(context).size.width,
width: MediaQuery.of(context).size.width,
: Expanded(
child: Padding(
padding: const EdgeInsets.only(left: 8.0, right: 8.0),
child: SizedBox(
// width: isTablet ? 200 : MediaQuery.of(context).size.width,
width: MediaQuery.of(context).size.width,
height: isTablet ? 50 : 40,
child: InteractionTextField(
maxchars: int.parse(sectionItem.chars ?? "0"),
controller: sectionItem.controller!,
inputType: sectionItem.input == "number"
? TextInputType.number
: TextInputType.name,
labelText: sectionItem.name,
onChanged: (val) {
sectionItem.selectedValue = [];
provider.setTextValue(val, sectionItem, multiple);
},
height: isTablet ? 50 : 40,
child: InteractionTextField(
maxchars: int.parse(sectionItem.chars ?? "0"),
controller: sectionItem.controller!,
inputType: sectionItem.input == "number"
? TextInputType.number
: TextInputType.name,
labelText: sectionItem.name,
onChanged: (val) {
sectionItem.selectedValue = [];
provider.setTextValue(val, sectionItem, multiple);
},
),
),
),
);
@ -653,7 +647,7 @@ class _EditInteractionScreenState extends State<EditInteractionScreen> {
Widget customdropdown(SectionList sectionItem,
ViewInteractionProvider provider, List<InputClass> list, bool multiple) {
// sectionItem.value = '';
// print("%%%%${sectionItem.selectedValue!.last}");
print("%%%%${sectionItem.selectedValue!.last}");
if (list.isEmpty) {
print("###list empty###");
list = [];
@ -1032,7 +1026,7 @@ class _EditInteractionScreenState extends State<EditInteractionScreen> {
? provider.getData2(sectionItem)
: [];
return Wrap(runAlignment: WrapAlignment.spaceEvenly, children: [
return Wrap(children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [

View File

@ -282,29 +282,21 @@ class _InteractionScreenState extends State<InteractionScreen> {
sectionItem.input ==
'add'
? const SizedBox.shrink()
: Padding(
padding:
const EdgeInsets
.only(
left: 8.0,
right: 8.0),
child: FittedBox(
fit: BoxFit.scaleDown,
child: Text(
sectionItem
.validation!
.isRequired
? '${sectionItem.name}:*'
: '${sectionItem.name}:',
style: TextStyle(
color: Colors
.orange
.shade800,
fontSize: 18.0,
// fontSize: isTablet
// ? 18
// : 12,
),
: FittedBox(
fit: BoxFit.scaleDown,
child: Text(
sectionItem
.validation!
.isRequired
? '${sectionItem.name}:*'
: '${sectionItem.name}:',
style: TextStyle(
color: Colors.orange
.shade800,
fontSize: 18.0,
// fontSize: isTablet
// ? 18
// : 12,
),
),
),
@ -509,7 +501,7 @@ class _InteractionScreenState extends State<InteractionScreen> {
controller: sectionItem.controller!,
labelText: sectionItem.name,
onChanged: (val) {
sectionItem.selectedValue!.clear();
sectionItem.selectedValue = [];
provider.setTextValue(val, sectionItem, multiple);
},
),
@ -1059,178 +1051,156 @@ class _InteractionScreenState extends State<InteractionScreen> {
Orientation orientation,
FormFieldData item,
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(
padding: isTablet
? const EdgeInsets.only(left: 8.0)
: const EdgeInsets.only(left: 12.0, right: 12.0),
child: Card(
child: GridView.count(
physics: const NeverScrollableScrollPhysics(),
crossAxisCount: context.responsive<int>(
1, // default
sm: 1, // small
md: 2, // medium
lg: sectionList.length == 1 ? 1 : 4, // large
xl: 5, // extra large screen
),
mainAxisSpacing: sectionList.length == 1 || !isTablet ? 1 : 2,
shrinkWrap: true,
padding: EdgeInsets.zero,
childAspectRatio: sectionList.length == 1 || !isTablet
? orientation == Orientation.landscape
? 10
: 4.2
: 3,
children: List.generate(
sectionList.length,
(i) {
print(sectionList);
SectionList sectionItem = sectionList[i];
dropdownvalue = sectionItem.widget == InteractionWidget.DROPDOWN
? sectionItem.value ?? "Select"
: ' ';
List<InputClass> list = sectionItem.widget ==
InteractionWidget.DROPDOWN ||
sectionItem.widget == InteractionWidget.AUTOCOMPLETE ||
sectionItem.widget == InteractionWidget.MULTISELECT
? provider.getData2(sectionItem)
: [];
provider.checkboxlist =
sectionItem.widget == InteractionWidget.CHECKBOX
? provider.getData2(sectionItem)
: [];
child: GridView.count(
physics: const NeverScrollableScrollPhysics(),
crossAxisCount: context.responsive<int>(
1, // default
sm: 1, // small
md: 1, // medium
lg: sectionList.length == 1 ? 1 : 4, // large
xl: 5, // extra large screen
),
mainAxisSpacing: sectionList.length == 1 || !isTablet ? 1 : 2,
shrinkWrap: true,
padding: EdgeInsets.zero,
childAspectRatio: sectionList.length == 1 || !isTablet
? orientation == Orientation.landscape
? 10
: 4.2
: 1.8,
children: List.generate(
sectionList.length,
(i) {
print(sectionList);
SectionList sectionItem = sectionList[i];
dropdownvalue = sectionItem.widget == InteractionWidget.DROPDOWN
? sectionItem.value ?? "Select"
: ' ';
List<InputClass> list =
sectionItem.widget == InteractionWidget.DROPDOWN ||
sectionItem.widget == InteractionWidget.AUTOCOMPLETE ||
sectionItem.widget == InteractionWidget.MULTISELECT
? provider.getData2(sectionItem)
: [];
provider.checkboxlist =
sectionItem.widget == InteractionWidget.CHECKBOX
? provider.getData2(sectionItem)
: [];
return Wrap(runAlignment: WrapAlignment.spaceEvenly, children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sectionItem.widget == InteractionWidget.BUTTON &&
sectionItem.input == 'add' ||
sectionItem.input == 'deletebtn'
? const SizedBox.shrink()
: Text(
'${sectionItem.name}:*',
style: TextStyle(
color: Colors.orange.shade800,
fontSize: isTablet ? 18 : 14,
),
return Wrap(children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sectionItem.widget == InteractionWidget.BUTTON &&
sectionItem.input == 'add' ||
sectionItem.input == 'deletebtn'
? const SizedBox.shrink()
: Text(
'${sectionItem.name}:*',
style: TextStyle(
color: Colors.orange.shade800,
fontSize: isTablet ? 18 : 14,
),
// const SizedBox(
// height: 15,
// ),
sectionItem.widget == InteractionWidget.BUTTON
? sectionItem.input == 'chooseFile'
? Row(
children: [
CustomButton(
),
// const SizedBox(
// height: 15,
// ),
sectionItem.widget == InteractionWidget.BUTTON
? sectionItem.input == 'chooseFile'
? Row(
children: [
CustomButton(
backgroundColor: const Color.fromARGB(
255, 233, 229, 229),
onPressed: () async {
sectionItem.selectedValue = [];
sectionItem.extension = [];
sectionItem.fileName = [];
await getEncodedFile(sectionItem);
setState(() {});
},
width: 120,
height: 40,
fontsize: 12,
textColor: Colors.black,
title: sectionItem.name),
const SizedBox(
width: 5,
),
Text(
sectionItem.selectedValue!.isNotEmpty
? sectionItem.selectedValue!.isNotEmpty
? 'File uploaded'
: "Files Uploaded"
: 'No file uploaded',
style: TextStyle(
color:
sectionItem.selectedValue!.isNotEmpty
? Colors.green
: Colors.red),
),
],
)
: isTablet
? IconButton(
onPressed: () {
provider.deleteMultipleRows(
sectionItem.gid!,
sectionList[i],
sectionName);
setState(() {});
},
icon: const Icon(
Icons.cancel,
size: 30,
color: Color.fromARGB(255, 8, 39, 92),
),
)
: Padding(
padding:
const EdgeInsets.only(left: 3.0, top: 5),
child: CustomButton(
backgroundColor: const Color.fromARGB(
255, 233, 229, 229),
onPressed: () async {
sectionItem.selectedValue = [];
sectionItem.extension = [];
sectionItem.fileName = [];
await getEncodedFile(sectionItem);
255, 233, 75, 75),
onPressed: () {
provider.deleteMultipleRows(
sectionItem.gid!,
sectionList[i],
sectionName);
setState(() {});
},
width: 120,
// width: 80,
// height: 30,
height: 40,
// height:
// MediaQuery.of(context).size.height *
// 0.2,
fontsize: 12,
textColor: Colors.black,
title: sectionItem.name),
const SizedBox(
width: 5,
),
Text(
sectionItem.selectedValue!.isNotEmpty
? sectionItem.selectedValue!.isNotEmpty
? 'File uploaded'
: "Files Uploaded"
: 'No file uploaded',
style: TextStyle(
color: sectionItem
.selectedValue!.isNotEmpty
? Colors.green
: Colors.red),
),
],
)
: isTablet
? Row(
children: [
Expanded(
// width: MediaQuery.of(context).size.width,
child: IconButton(
onPressed: () {
provider.deleteMultipleRows(
sectionItem.gid!,
sectionList[i],
sectionName);
setState(() {});
},
icon: const Icon(
Icons.cancel,
size: 30,
color:
Color.fromARGB(255, 8, 39, 92),
),
),
),
],
)
: Padding(
padding: const EdgeInsets.only(
left: 3.0, top: 5),
child: CustomButton(
backgroundColor: const Color.fromARGB(
255, 233, 75, 75),
onPressed: () {
provider.deleteMultipleRows(
sectionItem.gid!,
sectionList[i],
sectionName);
setState(() {});
},
// width: 80,
// height: 30,
height: 40,
// height:
// MediaQuery.of(context).size.height *
// 0.2,
fontsize: 12,
textColor: Colors.white,
title: "Delete"),
)
: returnWidget(
sectionItem: sectionItem,
item: item,
provider: provider,
list: list,
gridIndex: i,
listIndex: listIndex,
widgetData: sectionItem.widget!,
multiple: true),
],
),
]);
},
),
textColor: Colors.white,
title: "Delete"),
)
: returnWidget(
sectionItem: sectionItem,
item: item,
provider: provider,
list: list,
gridIndex: i,
listIndex: listIndex,
widgetData: sectionItem.widget!,
multiple: true),
],
),
]);
},
),
),
);

View File

@ -246,8 +246,8 @@ class InteractionProvider extends ChangeNotifier {
int i = 0;
for (var obj in interactionReponseList) {
if (multiple && obj.multipleList != null) {
i = obj.multipleList!.indexWhere((element) =>
element.id == sectionItem.id && element.gid == sectionItem.gid);
i = obj.multipleList!
.indexWhere((element) => element.id == sectionItem.id);
if (i != -1) {
obj.multipleList![i].value = value;
obj.multipleList![i].selectedValue!.add(value);
@ -420,7 +420,7 @@ class InteractionProvider extends ChangeNotifier {
List<SectionList> addList = [];
int index = interactionReponseList
.indexWhere((element) => element.sectionName == sectionName);
var textEditingController = TextEditingController();
addList = interactionReponseList[index]
.sectionList
.map((e) => SectionList(
@ -450,17 +450,6 @@ class InteractionProvider extends ChangeNotifier {
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) {
// newList = addList;
// } else {
@ -477,13 +466,13 @@ class InteractionProvider extends ChangeNotifier {
if (interactionReponseList[index].multipleList != null) {
for (SectionList obj in interactionReponseList[index].multipleList!) {
obj.gid = obj.gid ?? interactionReponseList[index].multipleList!.length;
// if (obj.widget == InteractionWidget.TEXT) {
// var textEditingController = TextEditingController();
if (obj.widget == InteractionWidget.TEXT) {
var textEditingController = TextEditingController();
// multipletextEditingControllerList.add(textEditingController);
// obj.controller = multipletextEditingControllerList.last;
// }
//newList.add(obj);
multipletextEditingControllerList.add(textEditingController);
obj.controller = multipletextEditingControllerList.last;
}
// newList.add(obj);
}
}
@ -536,12 +525,6 @@ class InteractionProvider extends ChangeNotifier {
Future<String> saveJsonObject(BuildContext context, String form,
{bool isEdit = false}) async {
print("form_data: $form");
// for (var ob in interactionReponseList) {
// for (var ob2 in ob.multipleList!) {
// debugPrint("!!!!!!!!!!!!In multiple :${ob2.selectedValue}");
// }
// }
List<FormFieldData> resultData = interactionReponseList
.map((e) => FormFieldData(
multipleList: e.multipleList == null
@ -558,7 +541,7 @@ class InteractionProvider extends ChangeNotifier {
extension: mobj.extension,
fileName: mobj.fileName,
widget: mobj.widget,
// controller: mobj.controller,
// controller: mobj.controller,
gid: mobj.gid,
input: mobj.input,
selectedId: mobj.selectedId,

View File

@ -286,10 +286,8 @@ class _ViewInteractionScreenState extends State<ViewInteractionScreen> {
sectionItem.id, sectionItem.selectedValue!.last));
case InteractionWidget.AUTOCOMPLETE:
return Text(sectionItem.selectedValue!.isNotEmpty
? provider.getDataValue(
sectionItem.id, sectionItem.selectedValue!.last)
: " ");
return Text(provider.getDataValue(
sectionItem.id, sectionItem.selectedValue!.last));
case InteractionWidget.MULTISELECT:
return Text(sectionItem.selectedValue.toString());
@ -322,11 +320,6 @@ class _ViewInteractionScreenState extends State<ViewInteractionScreen> {
? const Text("File Uploaded")
: const Text(" ")
: const Text(" ");
case InteractionWidget.DROPDOWN:
return Text(sectionItem.selectedValue!.isNotEmpty
? provider.getDataValue(
sectionItem.id, sectionItem.selectedValue!.last)
: " ");
default:
return Text(sectionItem.selectedValue!.isNotEmpty
? provider.getDataValue(

View File

@ -140,22 +140,13 @@ class ViewInteractionProvider extends ChangeNotifier {
for (SectionList obj in item.multipleList!) {
obj.gid = obj.gid ?? item.multipleList!.length;
if (obj.widget == InteractionWidget.TEXT) {
debugPrint("textcontr:${obj.gid}");
debugPrint("textcontr:${obj.selectedValue}");
// debugPrint("textcontr:${obj.controller!.value}");
var textEditingController = TextEditingController();
textEditingController.value = TextEditingValue(
text: obj.selectedValue!.isNotEmpty
? obj.selectedValue!.last ?? ""
: "");
textEditingController.text = obj.selectedValue!.isNotEmpty
? obj.selectedValue!.last ?? ""
: "";
multipletextEditingControllerList.add(textEditingController);
// obj.controller!.value = textEditingController.value;
obj.controller = textEditingController;
obj.controller = multipletextEditingControllerList.last;
// obj.controller = obj.selectedValue.last ?? " ";
}
if (obj.widget == InteractionWidget.DROPDOWN ||
@ -617,23 +608,6 @@ class ViewInteractionProvider extends ChangeNotifier {
// if (interactionReponseList[index].multipleList!.isEmpty) {
// newList = addList;
// } 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) {
interactionReponseList[index].multipleList = addList;
} else {
@ -648,6 +622,10 @@ class ViewInteractionProvider extends ChangeNotifier {
for (SectionList obj in interactionReponseList[index].multipleList!) {
obj.gid = obj.gid ?? interactionReponseList[index].multipleList!.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
@ -675,14 +653,6 @@ class ViewInteractionProvider extends ChangeNotifier {
saveJsonObject(BuildContext context, String form,
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
.map((e) => FormFieldData(
multipleList: e.multipleList == null

View File

@ -42,9 +42,6 @@ class InteractionTextField extends StatelessWidget {
onChanged: (value) {
onChanged(value);
},
onSubmitted: (value) {
onChanged(value);
},
inputFormatters: [
inputType == TextInputType.number
? FilteringTextInputFormatter.digitsOnly