1637 lines
58 KiB
Dart
1637 lines
58 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:dio/dio.dart';
|
|
import 'package:discover_module/ui_screen/interactionform/interactionprovider.dart';
|
|
import 'package:discover_module/ui_screen/interactionform/model/interaction_config_data.dart';
|
|
import 'package:discover_module/ui_screen/interactionform/model/interaction_data.dart';
|
|
import 'package:discover_module/ui_screen/interactionform/model/json_form_data.dart';
|
|
import 'package:discover_module/ui_screen/interactionform/model/location_model.dart';
|
|
import 'package:discover_module/ui_screen/interactionform/model/save_interaction.dart';
|
|
import 'package:discover_module/ui_screen/interactionform/repository/hive_repository.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:hive_flutter/hive_flutter.dart';
|
|
|
|
class ViewInteractionProvider extends ChangeNotifier {
|
|
List<FormFieldData> interactionReponseList = [];
|
|
// List<dynamic> sectionList = [];
|
|
List<SectionList> sectionList = [];
|
|
late Location locationList;
|
|
List<TextEditingController> textEditingControllerList = [];
|
|
List<TextEditingController> multipletextEditingControllerList = [];
|
|
int textfieldIndex = 0;
|
|
List<Country> countryList = [];
|
|
List<States> stateList = [];
|
|
List<City> cityList = [];
|
|
List<InputClass> checkboxlist = [];
|
|
String selectedCountry = 'Selected Country';
|
|
String radioValue = '';
|
|
bool checkboxValue = false;
|
|
|
|
late SaveInteraction saveInteraction;
|
|
List<SaveData> saveData = [];
|
|
|
|
List<SectionList> newList = [];
|
|
String sectionName = '';
|
|
late String selectedCity = 'Selected City', selectedState = 'Selected State';
|
|
String customdropdownValue = '';
|
|
String? selectedValue;
|
|
List<String> selectedItems = [];
|
|
InputClass? selectedObj;
|
|
List<SaveInteraction> savedList = [];
|
|
List<InteractionConfigData> intConfigDataList = [];
|
|
String? intId, intName;
|
|
final HiveDataRepository _hiveprovider = HiveDataRepository(
|
|
Hive.box<InteractionConfigData>('InteractionConfigDataBox'));
|
|
|
|
late final InteractionProvider interactionProvider;
|
|
initConfigData() async {
|
|
intConfigDataList = _hiveprovider.getAllDataFromHive();
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> getRecords(String formname) async {
|
|
var box = await Hive.openBox<SaveInteraction>('InteractionDataBox');
|
|
savedList = box.values.toList();
|
|
savedList = savedList
|
|
.where(
|
|
(element) => element.form == formname,
|
|
)
|
|
.toList();
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<List<SaveInteraction>> getAllRecords() async {
|
|
var box = await Hive.openBox<SaveInteraction>('InteractionDataBox');
|
|
List<SaveInteraction> savedList = box.values.toList();
|
|
|
|
return savedList;
|
|
}
|
|
|
|
init(int index) async {
|
|
// _hiveprovider = HiveDataRepository(
|
|
// Hive.box<InteractionConfigData>('InteractionConfigDataBox'));
|
|
// intConfigDataList = _hiveprovider.getAllDataFromHive();
|
|
InteractionConfigData interactionConfigData = intConfigDataList[index];
|
|
intId = intConfigDataList[index].id;
|
|
intName = intConfigDataList[index].name;
|
|
|
|
print("data $intConfigDataList");
|
|
// await fetchSaveDataJson();
|
|
// await fetchDataSet();
|
|
await fetchData(interactionConfigData.widgets);
|
|
await fetchLocationData();
|
|
}
|
|
|
|
initSavedForm(SaveInteraction saveInteractiondata) {
|
|
intConfigDataList
|
|
.indexWhere((element) => element.id == saveInteractiondata.intId);
|
|
|
|
interactionReponseList = saveInteractiondata.save
|
|
.map((e) => FormFieldData(
|
|
multipleList: e.multipleList == null
|
|
? []
|
|
: e.multipleList!
|
|
.map((mobj) => SectionList(
|
|
depid: mobj.depid,
|
|
id: mobj.id,
|
|
inputList: mobj.inputList,
|
|
isRequired: mobj.isRequired,
|
|
extension: mobj.extension,
|
|
fileName: mobj.fileName,
|
|
selectedObject: mobj.selectedObject,
|
|
name: mobj.name,
|
|
param: mobj.param,
|
|
selectedValue: mobj.selectedValue,
|
|
widget: mobj.widget,
|
|
controller: mobj.controller,
|
|
gid: mobj.gid,
|
|
input: mobj.input,
|
|
selectedId: mobj.selectedId,
|
|
value: mobj.value))
|
|
.toList(),
|
|
sectionList: e.sectionList
|
|
.map((obj) => SectionList(
|
|
depid: obj.depid,
|
|
id: obj.id,
|
|
inputList: obj.inputList,
|
|
isRequired: obj.isRequired,
|
|
extension: obj.extension,
|
|
fileName: obj.fileName,
|
|
name: obj.name,
|
|
param: obj.param,
|
|
selectedObject: obj.selectedObject,
|
|
selectedValue: obj.selectedValue,
|
|
widget: obj.widget,
|
|
controller: obj.controller,
|
|
gid: obj.gid,
|
|
input: obj.input,
|
|
selectedId: obj.selectedId,
|
|
value: obj.value))
|
|
.toList(),
|
|
sectionName: e.sectionName,
|
|
multiple: e.multiple))
|
|
.toList();
|
|
|
|
textEditingControllerList.clear();
|
|
|
|
for (var item in interactionReponseList) {
|
|
sectionList = item.sectionList;
|
|
|
|
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 = obj.selectedValue.last ?? " ";
|
|
}
|
|
if (obj.widget == InteractionWidget.DROPDOWN ||
|
|
obj.widget == InteractionWidget.AUTOCOMPLETE ||
|
|
obj.widget == InteractionWidget.MULTISELECT) {
|
|
List<InputClass> list = obj.inputList!;
|
|
if (obj.selectedObject != null) {
|
|
} else {
|
|
obj.selectedObject = obj.selectedValue!.isNotEmpty
|
|
? getDataObject(obj.id, obj.selectedValue!.last, list)
|
|
: list[0];
|
|
}
|
|
|
|
print("value : ${list.first.name} ");
|
|
}
|
|
if (obj.widget == InteractionWidget.CHECKBOX) {
|
|
List<String> selectedvalues = [];
|
|
if (obj.selectedValue!.isNotEmpty) {
|
|
for (var id in obj.selectedValue!) {
|
|
int ind =
|
|
obj.inputList!.indexWhere((element) => element.id == id);
|
|
if (ind != -1) {
|
|
obj.inputList![ind].ischecked = true;
|
|
selectedvalues.add(obj.inputList![ind].name);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (obj.widget == InteractionWidget.RADIO) {
|
|
List<InputClass> list = obj.inputList!;
|
|
|
|
if (obj.selectedValue!.isNotEmpty) {
|
|
int ind = list
|
|
.indexWhere((element) => element.id == obj.selectedValue!.last);
|
|
if (ind != -1) {
|
|
obj.inputList![ind].ischecked = true;
|
|
radioValue = obj.inputList![ind].name;
|
|
}
|
|
}
|
|
}
|
|
// newList.add(obj);
|
|
}
|
|
for (var sectionItem in item.sectionList) {
|
|
if (sectionItem.widget == InteractionWidget.TEXT) {
|
|
var textEditingController = TextEditingController();
|
|
textEditingController.text = sectionItem.selectedValue!.isNotEmpty
|
|
? sectionItem.selectedValue!.last ?? " "
|
|
: " ";
|
|
textEditingControllerList.add(textEditingController);
|
|
|
|
sectionItem.controller = textEditingControllerList.last;
|
|
}
|
|
if (sectionItem.widget == InteractionWidget.DROPDOWN) {
|
|
List<InputClass> list = sectionItem.inputList!;
|
|
if (sectionItem.selectedObject != null) {
|
|
print("#######not null");
|
|
} else {
|
|
print("#######is_null");
|
|
if (sectionItem.selectedValue == null) {
|
|
print("#######is_null#####");
|
|
} else {
|
|
print('###${sectionItem.selectedValue}');
|
|
}
|
|
sectionItem.selectedObject = sectionItem.selectedValue!.isNotEmpty
|
|
? getDataObject(
|
|
sectionItem.id, sectionItem.selectedValue!.last, list)
|
|
: list[0];
|
|
}
|
|
|
|
print("valuesssss : ${sectionItem.selectedObject!.name} ");
|
|
}
|
|
|
|
if (sectionItem.widget == InteractionWidget.AUTOCOMPLETE ||
|
|
sectionItem.widget == InteractionWidget.MULTISELECT) {
|
|
List<InputClass> list = sectionItem.inputList!;
|
|
if (sectionItem.selectedObject != null) {
|
|
} else {
|
|
sectionItem.selectedObject = sectionItem.selectedValue!.isNotEmpty
|
|
? getDataObject(
|
|
sectionItem.id, sectionItem.selectedValue!.last, list)
|
|
: list[0];
|
|
}
|
|
|
|
print("value : ${list.first.name} ");
|
|
}
|
|
if (sectionItem.widget == InteractionWidget.CHECKBOX) {
|
|
List<String> selectedvalues = [];
|
|
if (sectionItem.selectedValue!.isNotEmpty) {
|
|
for (var id in sectionItem.selectedValue!) {
|
|
int ind = sectionItem.inputList!
|
|
.indexWhere((element) => element.id == id);
|
|
if (ind != -1) {
|
|
sectionItem.inputList![ind].ischecked = true;
|
|
selectedvalues.add(sectionItem.inputList![ind].name);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (sectionItem.widget == InteractionWidget.RADIO) {
|
|
List<InputClass> list = sectionItem.inputList!;
|
|
|
|
if (sectionItem.selectedValue!.isNotEmpty) {
|
|
int ind = list.indexWhere(
|
|
(element) => element.id == sectionItem.selectedValue!.last);
|
|
if (ind != -1) {
|
|
sectionItem.inputList![ind].ischecked = true;
|
|
radioValue = sectionItem.inputList![ind].name;
|
|
}
|
|
}
|
|
}
|
|
if (sectionItem.widget == InteractionWidget.BUTTON &&
|
|
sectionItem.param == 'chooseFile' &&
|
|
sectionItem.selectedValue!.isNotEmpty) {
|
|
print("choosed file");
|
|
print(sectionItem.selectedValue!.last);
|
|
}
|
|
}
|
|
}
|
|
print(interactionReponseList);
|
|
print("check textcontrollers ${textEditingControllerList.length}");
|
|
}
|
|
|
|
Future<String> fetchDataSet() async {
|
|
List<InputClass> list = getData("intlocation_1");
|
|
print(list);
|
|
return "success";
|
|
}
|
|
|
|
List<InputClass> getData(String widgetId) {
|
|
List<InputClass> list = [];
|
|
|
|
return list;
|
|
}
|
|
|
|
InputClass getDataObject(String widgetId, String id, List<InputClass> list) {
|
|
// if (id != "") {
|
|
// List<InputClass> list = [];
|
|
InputClass value = InputClass(id: '', name: '');
|
|
|
|
if (list.isNotEmpty) {
|
|
int index = list.indexWhere((element) => element.id.toString() == id);
|
|
|
|
if (index != -1) {
|
|
value = list[index];
|
|
}
|
|
}
|
|
|
|
return value;
|
|
}
|
|
|
|
// TODO: Search for widget with depid and check if selected is not null and by selected id get the data of current widget
|
|
List<InputClass> getData2(SectionList sectionItem) {
|
|
List<InputClass> list = [];
|
|
// if (sectionItem.inputList != null) {
|
|
list = sectionItem.inputList!;
|
|
if (sectionItem.depid != "") {
|
|
// print("check depid : ${sectionItem.depid}");
|
|
int i = 0;
|
|
for (var obj in interactionReponseList) {
|
|
i = obj.sectionList
|
|
.indexWhere((element) => element.id == sectionItem.depid);
|
|
// print("check depid index: $i");
|
|
if (i != -1) {
|
|
//print("check depid value: ${obj.sectionList[i].value}");
|
|
if (obj.sectionList[i].value != null) {
|
|
if (list
|
|
.where((element) => element.pid == obj.sectionList[i].value)
|
|
.isNotEmpty) {
|
|
list = list
|
|
.where((element) => element.pid == obj.sectionList[i].value)
|
|
.toList();
|
|
|
|
sectionItem.selectedObject = list[0];
|
|
} else {
|
|
// InputClass obj = InputClass(
|
|
// id: "obj.sectionList[i].value",
|
|
// name: "Select ${sectionItem.name}");
|
|
list = [];
|
|
// list.add(obj);
|
|
sectionItem.selectedObject = null;
|
|
}
|
|
} else {
|
|
// int index = obj.sectionList
|
|
// .indexWhere((element) => element.id == sectionItem.id);
|
|
|
|
// list = obj.sectionList[index].inputList;
|
|
}
|
|
}
|
|
}
|
|
|
|
// int index = data[i].data.indexWhere((element) => element.)
|
|
}
|
|
// }
|
|
return list;
|
|
}
|
|
|
|
setDropDownValue(String value, SectionList sectionItem, bool multiple,
|
|
InputClass selectedObject) {
|
|
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);
|
|
if (i != -1) {
|
|
obj.multipleList![i].value = value;
|
|
obj.multipleList![i].tempselectedValue = [];
|
|
obj.multipleList![i].tempselectedValue!.add(value);
|
|
// obj.multipleList![i].selectedObject = selectedObj;
|
|
}
|
|
} else {
|
|
i = obj.sectionList
|
|
.indexWhere((element) => element.id == sectionItem.id);
|
|
if (i != -1) {
|
|
obj.sectionList[i].value = value;
|
|
obj.sectionList[i].tempselectedValue = [];
|
|
obj.sectionList[i].tempselectedValue!.add(value);
|
|
// obj.sectionList[i].selectedObject = selectedObj;
|
|
}
|
|
}
|
|
}
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> disposeValues() async {
|
|
print("dispose called");
|
|
// await _hiveprovider.closeHiveBox();
|
|
for (var obj in interactionReponseList) {
|
|
obj.multipleList!.clear();
|
|
// for (var obj2 in obj.sectionList) {
|
|
// obj2.selectedObject = null;
|
|
// }
|
|
|
|
obj.sectionList.clear();
|
|
}
|
|
interactionReponseList.clear();
|
|
}
|
|
|
|
setTextValue(String value, SectionList sectionItem, bool multiple) {
|
|
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);
|
|
if (i != -1) {
|
|
obj.multipleList![i].value = value;
|
|
obj.multipleList![i].selectedValue!.add(value);
|
|
}
|
|
} else {
|
|
i = obj.sectionList
|
|
.indexWhere((element) => element.id == sectionItem.id);
|
|
if (i != -1) {
|
|
obj.sectionList[i].value = value;
|
|
obj.sectionList[i].selectedValue!.add(value);
|
|
}
|
|
}
|
|
}
|
|
notifyListeners();
|
|
}
|
|
|
|
setAutoCompleteValue(String value, SectionList sectionItem, bool multiple) {
|
|
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);
|
|
if (i != -1) {
|
|
obj.multipleList![i].value = value;
|
|
obj.multipleList![i].tempselectedValue = [];
|
|
obj.multipleList![i].tempselectedValue!.add(value);
|
|
}
|
|
} else {
|
|
i = obj.sectionList
|
|
.indexWhere((element) => element.id == sectionItem.id);
|
|
if (i != -1) {
|
|
obj.sectionList[i].value = value;
|
|
obj.sectionList[i].tempselectedValue = [];
|
|
obj.sectionList[i].tempselectedValue!.add(value);
|
|
}
|
|
}
|
|
}
|
|
notifyListeners();
|
|
}
|
|
|
|
String getDropDownValue(
|
|
String value, SectionList sectionItem, List<InputClass> list) {
|
|
int i = 0;
|
|
String svalue = '';
|
|
|
|
i = list.indexWhere((element) => element.id == value);
|
|
if (i != -1) {
|
|
svalue = list[i].name;
|
|
} else {
|
|
svalue = list[0].name;
|
|
}
|
|
|
|
return svalue;
|
|
}
|
|
|
|
Future<String> fetchData(InteractionResultData interactionResultData) async {
|
|
InteractionResultData interactionConfig = interactionResultData;
|
|
|
|
print("itemCategoryModel Item = + ${interactionConfig.result}");
|
|
|
|
interactionReponseList = interactionConfig.result;
|
|
print("check stored: $interactionReponseList");
|
|
textEditingControllerList.clear();
|
|
|
|
for (var item in interactionReponseList) {
|
|
sectionList = item.sectionList;
|
|
for (var sectionItem in item.sectionList) {
|
|
if (sectionItem.widget == InteractionWidget.TEXT) {
|
|
var textEditingController = TextEditingController();
|
|
|
|
textEditingControllerList.add(textEditingController);
|
|
sectionItem.controller = textEditingControllerList.last;
|
|
}
|
|
if (sectionItem.widget == InteractionWidget.DROPDOWN ||
|
|
sectionItem.widget == InteractionWidget.AUTOCOMPLETE ||
|
|
sectionItem.widget == InteractionWidget.MULTISELECT) {
|
|
List<InputClass> list = sectionItem.inputList!;
|
|
sectionItem.value = list[0].name;
|
|
print("value : ${list.first} ");
|
|
}
|
|
}
|
|
}
|
|
print(interactionReponseList);
|
|
print("check textcontrollers ${textEditingControllerList.length}");
|
|
|
|
return "success";
|
|
}
|
|
|
|
Future<String> fetchLocationData() async {
|
|
var data =
|
|
await rootBundle.loadString("assets/images/locationdetailsform.json");
|
|
|
|
Locations loc =
|
|
Locations(location: Location.fromJson(json.decode(data)["location"]));
|
|
locationList = loc.location;
|
|
countryList = locationList.country;
|
|
stateList = locationList.state;
|
|
cityList = locationList.city;
|
|
|
|
print(locationList);
|
|
notifyListeners();
|
|
return "success";
|
|
}
|
|
|
|
List<States> getState(String cid) {
|
|
List<States> states =
|
|
stateList.where((element) => element.countryId == cid).toList();
|
|
|
|
return states;
|
|
}
|
|
|
|
List<City> getCity(String sid) {
|
|
List<City> city =
|
|
cityList.where((element) => element.stateId == sid).toList();
|
|
|
|
return city;
|
|
}
|
|
|
|
String getCountryId(String name) {
|
|
if (countryList.isNotEmpty) {
|
|
int i = countryList.indexWhere((element) => element.countryName == name);
|
|
return countryList[i].countryId;
|
|
}
|
|
return '';
|
|
}
|
|
|
|
String getStateId(String name) {
|
|
if (stateList.isNotEmpty) {
|
|
int i = stateList.indexWhere((element) => element.stateName == name);
|
|
return stateList[i].stateId;
|
|
}
|
|
return '';
|
|
}
|
|
|
|
String getCityId(String name) {
|
|
if (cityList.isNotEmpty) {
|
|
int i = cityList.indexWhere((element) => element.cityName == name);
|
|
return cityList[i].distId;
|
|
}
|
|
return '';
|
|
}
|
|
|
|
setRadioValue(SectionList sectionItem) {
|
|
List<InputClass> list = (sectionItem.input as List)
|
|
.map((itemWord) => InputClass.fromJson(itemWord))
|
|
.toList();
|
|
radioValue = list[0].name;
|
|
|
|
notifyListeners();
|
|
}
|
|
|
|
setcheckBoxValue(SectionList sectionItem, String sectionName, bool newValue,
|
|
String id, bool multiple) {
|
|
int index =
|
|
sectionItem.inputList!.indexWhere((element) => element.id == id);
|
|
sectionItem.inputList![index].ischecked = newValue;
|
|
// sectionItem.selectedValue.add(data[i].data[index].id);
|
|
int index2 = 0;
|
|
for (var obj in interactionReponseList) {
|
|
if (multiple && obj.multipleList != null) {
|
|
index2 = obj.multipleList!.indexWhere((element) =>
|
|
element.id == sectionItem.id && element.gid == sectionItem.gid);
|
|
if (index2 != -1) {
|
|
obj.multipleList![index2].value = sectionItem.inputList![index].id;
|
|
obj.multipleList![index2].selectedValue!
|
|
.add(sectionItem.inputList![index].id);
|
|
}
|
|
} else {
|
|
index2 = obj.sectionList
|
|
.indexWhere((element) => element.id == sectionItem.id);
|
|
if (index2 != -1) {
|
|
obj.sectionList[index2].value = sectionItem.inputList![index].id;
|
|
obj.sectionList[index2].selectedValue!
|
|
.add(sectionItem.inputList![index].id);
|
|
}
|
|
}
|
|
}
|
|
notifyListeners();
|
|
}
|
|
|
|
getSectionItem(String sectionName) {
|
|
newList = [];
|
|
List<SectionList> addList = [];
|
|
int index = interactionReponseList
|
|
.indexWhere((element) => element.sectionName == sectionName);
|
|
|
|
addList = interactionReponseList[index]
|
|
.sectionList
|
|
.map((e) => SectionList(
|
|
depid: e.depid,
|
|
id: e.id,
|
|
inputList: e.inputList,
|
|
isRequired: e.isRequired,
|
|
name: e.name,
|
|
param: e.param,
|
|
selectedValue: [],
|
|
widget: e.widget,
|
|
controller: e.controller,
|
|
gid: e.gid,
|
|
input: e.input,
|
|
selectedId: e.selectedId,
|
|
value: e.value))
|
|
.toList();
|
|
SectionList delItem = SectionList(
|
|
name: "delete",
|
|
param: "deletebtn",
|
|
id: "deletebtn",
|
|
selectedValue: [],
|
|
depid: "",
|
|
widget: InteractionWidget.BUTTON,
|
|
inputList: [],
|
|
isRequired: true);
|
|
|
|
addList.add(delItem);
|
|
|
|
// 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 {
|
|
interactionReponseList[index].multipleList =
|
|
interactionReponseList[index].multipleList! + addList;
|
|
}
|
|
|
|
newList = interactionReponseList[index].multipleList!;
|
|
// newList = newList + addList;
|
|
// }
|
|
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) {
|
|
obj.controller!.text =
|
|
obj.selectedValue != null && obj.selectedValue!.isNotEmpty
|
|
? obj.selectedValue!.last
|
|
: '';
|
|
}
|
|
// newList.add(obj);
|
|
}
|
|
}
|
|
|
|
print(
|
|
"check length : ${interactionReponseList[index].multipleList!.length}");
|
|
notifyListeners();
|
|
}
|
|
|
|
deleteMultipleRows(
|
|
int gid, SectionList sectionItem, String selectedSectionName) {
|
|
int index = interactionReponseList
|
|
.indexWhere((element) => element.sectionName == selectedSectionName);
|
|
interactionReponseList[index]
|
|
.multipleList!
|
|
.removeWhere((item) => item.gid == gid);
|
|
|
|
notifyListeners();
|
|
}
|
|
|
|
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
|
|
? []
|
|
: e.multipleList!
|
|
.map((mobj) => SectionList(
|
|
depid: mobj.depid,
|
|
id: mobj.id,
|
|
inputList: mobj.inputList,
|
|
isRequired: mobj.isRequired,
|
|
extension: mobj.extension,
|
|
fileName: mobj.fileName,
|
|
name: mobj.name,
|
|
param: mobj.param,
|
|
selectedValue:
|
|
mobj.tempselectedValue ?? mobj.selectedValue,
|
|
widget: mobj.widget,
|
|
gid: mobj.gid,
|
|
input: mobj.input,
|
|
selectedId: mobj.selectedId,
|
|
value: mobj.value))
|
|
.toList(),
|
|
sectionList: e.sectionList
|
|
.map((obj) => SectionList(
|
|
depid: obj.depid,
|
|
id: obj.id,
|
|
inputList: obj.inputList,
|
|
extension: obj.extension,
|
|
fileName: obj.fileName,
|
|
isRequired: obj.isRequired,
|
|
name: obj.name,
|
|
param: obj.param,
|
|
selectedValue: obj.tempselectedValue ?? obj.selectedValue,
|
|
widget: obj.widget,
|
|
controller: obj.controller,
|
|
gid: obj.gid,
|
|
input: obj.input,
|
|
selectedId: obj.selectedId,
|
|
value: obj.value))
|
|
.toList(),
|
|
sectionName: e.sectionName,
|
|
multiple: e.multiple,
|
|
))
|
|
.toList();
|
|
|
|
final data = SaveInteraction(
|
|
save: resultData,
|
|
id: saveInteraction.id,
|
|
updatedTime: DateTime.now().toString(),
|
|
form: saveInteraction.form,
|
|
intId: saveInteraction.intId,
|
|
intName: saveInteraction.intName,
|
|
);
|
|
var box = Hive.box<SaveInteraction>('InteractionDataBox');
|
|
|
|
if (!box.isOpen) {
|
|
box = await Hive.openBox<SaveInteraction>('InteractionDataBox');
|
|
}
|
|
|
|
int index =
|
|
box.values.toList().indexWhere((element) => element.id == data.id);
|
|
|
|
box.putAt(index, data);
|
|
await getRecords(saveInteraction.form!);
|
|
// box.close();
|
|
|
|
// await MockApiCall().postFormData(data);
|
|
}
|
|
|
|
Future<void> deleteRecord(SaveInteraction saveInteraction) async {
|
|
var box = await Hive.openBox<SaveInteraction>('InteractionDataBox');
|
|
final Map<dynamic, SaveInteraction> deliveriesmap = box.toMap();
|
|
dynamic deleteKey;
|
|
deliveriesmap.forEach((key, value) {
|
|
if (value.id == saveInteraction.id) {
|
|
deleteKey = key;
|
|
}
|
|
});
|
|
box.delete(deleteKey);
|
|
await getRecords(saveInteraction.form!);
|
|
//box.close();
|
|
}
|
|
|
|
List<MultipleSectionList> getModifiedList(List<SectionList> sectionList) {
|
|
List<MultipleSectionList> newSectionList = [];
|
|
for (var obj in sectionList) {
|
|
if (obj.id != 'deletebtn') {
|
|
if (obj.id == 'chooseFile') {
|
|
List<MultipartFile> files = [];
|
|
if (obj.selectedValue!.isNotEmpty && obj.selectedValue != null) {
|
|
for (var file in obj.selectedValue!) {
|
|
files.add(MultipartFile.fromFileSync(file));
|
|
}
|
|
}
|
|
MultipleSectionList newobj = MultipleSectionList(
|
|
id: obj.id,
|
|
selectedValue: files,
|
|
);
|
|
|
|
newSectionList.add(newobj);
|
|
} else {
|
|
MultipleSectionList newobj = MultipleSectionList(
|
|
id: obj.id,
|
|
selectedValue: obj.selectedValue!,
|
|
);
|
|
newSectionList.add(newobj);
|
|
}
|
|
}
|
|
}
|
|
return newSectionList;
|
|
}
|
|
|
|
bool validateMultipleRows() {
|
|
for (var obj in interactionReponseList) {
|
|
if (obj.multipleList != null) {
|
|
for (var mulobj in obj.multipleList!) {
|
|
if (mulobj.widget == InteractionWidget.TEXT) {
|
|
if (mulobj.controller!.text.isEmpty) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool validateTextFields() {
|
|
for (var obj in interactionReponseList) {
|
|
for (var mulobj in obj.sectionList) {
|
|
if (mulobj.widget == InteractionWidget.TEXT) {
|
|
if (mulobj.controller!.text.isEmpty) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// import 'dart:convert';
|
|
|
|
// import 'package:dio/dio.dart';
|
|
// import 'package:discover_module/ui_screen/interactionform/interactionprovider.dart';
|
|
// import 'package:discover_module/ui_screen/interactionform/model/interaction_config_data.dart';
|
|
// import 'package:discover_module/ui_screen/interactionform/model/interaction_data.dart';
|
|
// import 'package:discover_module/ui_screen/interactionform/model/json_form_data.dart';
|
|
// import 'package:discover_module/ui_screen/interactionform/model/location_model.dart';
|
|
// import 'package:discover_module/ui_screen/interactionform/model/save_interaction.dart';
|
|
// import 'package:discover_module/ui_screen/interactionform/repository/hive_repository.dart';
|
|
// import 'package:flutter/cupertino.dart';
|
|
// import 'package:flutter/services.dart';
|
|
// import 'package:hive_flutter/hive_flutter.dart';
|
|
|
|
// class ViewInteractionProvider extends ChangeNotifier {
|
|
// List<FormFieldData> interactionReponseList = [];
|
|
// // List<dynamic> sectionList = [];
|
|
// List<SectionList> sectionList = [];
|
|
// late Location locationList;
|
|
// List<TextEditingController> textEditingControllerList = [];
|
|
// List<TextEditingController> multipletextEditingControllerList = [];
|
|
// int textfieldIndex = 0;
|
|
// List<Country> countryList = [];
|
|
// List<States> stateList = [];
|
|
// List<City> cityList = [];
|
|
// List<InputClass> checkboxlist = [];
|
|
// String selectedCountry = 'Selected Country';
|
|
// String radioValue = '';
|
|
// bool checkboxValue = false;
|
|
|
|
// late SaveInteraction saveInteraction;
|
|
// List<SaveData> saveData = [];
|
|
|
|
// List<SectionList> newList = [];
|
|
// String sectionName = '';
|
|
// late String selectedCity = 'Selected City', selectedState = 'Selected State';
|
|
// String customdropdownValue = '';
|
|
// String? selectedValue;
|
|
// List<String> selectedItems = [];
|
|
// InputClass? selectedObj;
|
|
// List<SaveInteraction> savedList = [];
|
|
// List<InteractionConfigData> intConfigDataList = [];
|
|
// String? intId, intName;
|
|
// final HiveDataRepository _hiveprovider = HiveDataRepository(
|
|
// Hive.box<InteractionConfigData>('InteractionConfigDataBox'));
|
|
|
|
// late final InteractionProvider interactionProvider;
|
|
// initConfigData() async {
|
|
// intConfigDataList = _hiveprovider.getAllDataFromHive();
|
|
// notifyListeners();
|
|
// }
|
|
|
|
// Future<void> getRecords(String formname) async {
|
|
// var box = await Hive.openBox<SaveInteraction>('InteractionDataBox');
|
|
// savedList = box.values.toList();
|
|
// savedList = savedList
|
|
// .where(
|
|
// (element) => element.form == formname,
|
|
// )
|
|
// .toList();
|
|
// notifyListeners();
|
|
// }
|
|
|
|
// Future<List<SaveInteraction>> getAllRecords() async {
|
|
// var box = await Hive.openBox<SaveInteraction>('InteractionDataBox');
|
|
// List<SaveInteraction> savedList = box.values.toList();
|
|
|
|
// return savedList;
|
|
// }
|
|
|
|
// init(int index) async {
|
|
// // _hiveprovider = HiveDataRepository(
|
|
// // Hive.box<InteractionConfigData>('InteractionConfigDataBox'));
|
|
// // intConfigDataList = _hiveprovider.getAllDataFromHive();
|
|
// InteractionConfigData interactionConfigData = intConfigDataList[index];
|
|
// intId = intConfigDataList[index].id;
|
|
// intName = intConfigDataList[index].name;
|
|
|
|
// print("data $intConfigDataList");
|
|
// // await fetchSaveDataJson();
|
|
// // await fetchDataSet();
|
|
// await fetchData(interactionConfigData.widgets);
|
|
// await fetchLocationData();
|
|
// }
|
|
|
|
// initSavedForm(SaveInteraction saveInteractiondata) {
|
|
// intConfigDataList
|
|
// .indexWhere((element) => element.id == saveInteractiondata.intId);
|
|
|
|
// interactionReponseList = saveInteractiondata.save
|
|
// .map((e) => FormFieldData(
|
|
// multipleList: e.multipleList == null
|
|
// ? []
|
|
// : e.multipleList!
|
|
// .map((mobj) => SectionList(
|
|
// depid: mobj.depid,
|
|
// id: mobj.id,
|
|
// inputList: mobj.inputList,
|
|
// isRequired: mobj.isRequired,
|
|
// extension: mobj.extension,
|
|
// fileName: mobj.fileName,
|
|
// selectedObject: mobj.selectedObject,
|
|
// name: mobj.name,
|
|
// param: mobj.param,
|
|
// selectedValue: mobj.selectedValue,
|
|
// widget: mobj.widget,
|
|
// controller: mobj.controller,
|
|
// gid: mobj.gid,
|
|
// input: mobj.input,
|
|
// selectedId: mobj.selectedId,
|
|
// value: mobj.value))
|
|
// .toList(),
|
|
// sectionList: e.sectionList
|
|
// .map((obj) => SectionList(
|
|
// depid: obj.depid,
|
|
// id: obj.id,
|
|
// inputList: obj.inputList,
|
|
// isRequired: obj.isRequired,
|
|
// extension: obj.extension,
|
|
// fileName: obj.fileName,
|
|
// name: obj.name,
|
|
// param: obj.param,
|
|
// selectedObject: obj.selectedObject,
|
|
// selectedValue: obj.selectedValue,
|
|
// widget: obj.widget,
|
|
// controller: obj.controller,
|
|
// gid: obj.gid,
|
|
// input: obj.input,
|
|
// selectedId: obj.selectedId,
|
|
// value: obj.value))
|
|
// .toList(),
|
|
// sectionName: e.sectionName,
|
|
// multiple: e.multiple))
|
|
// .toList();
|
|
|
|
// textEditingControllerList.clear();
|
|
|
|
// for (var item in interactionReponseList) {
|
|
// sectionList = item.sectionList;
|
|
|
|
// for (SectionList obj in item.multipleList!) {
|
|
// obj.gid = obj.gid ?? item.multipleList!.length;
|
|
// if (obj.widget == InteractionWidget.TEXT) {
|
|
// 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 = multipletextEditingControllerList.last;
|
|
// obj.controller = textEditingController;
|
|
|
|
// }
|
|
// if (obj.widget == InteractionWidget.DROPDOWN ||
|
|
// obj.widget == InteractionWidget.AUTOCOMPLETE ||
|
|
// obj.widget == InteractionWidget.MULTISELECT) {
|
|
// List<InputClass> list = obj.inputList!;
|
|
// if (obj.selectedObject != null) {
|
|
// } else {
|
|
// obj.selectedObject = obj.selectedValue!.isNotEmpty
|
|
// ? getDataObject(obj.id, obj.selectedValue!.last, list)
|
|
// : list[0];
|
|
// }
|
|
|
|
// print("value : ${list.first.name} ");
|
|
// }
|
|
// if (obj.widget == InteractionWidget.CHECKBOX) {
|
|
// List<String> selectedvalues = [];
|
|
// if (obj.selectedValue!.isNotEmpty) {
|
|
// for (var id in obj.selectedValue!) {
|
|
// int ind =
|
|
// obj.inputList!.indexWhere((element) => element.id == id);
|
|
// if (ind != -1) {
|
|
// obj.inputList![ind].ischecked = true;
|
|
// selectedvalues.add(obj.inputList![ind].name);
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// if (obj.widget == InteractionWidget.RADIO) {
|
|
// List<InputClass> list = obj.inputList!;
|
|
|
|
// if (obj.selectedValue!.isNotEmpty) {
|
|
// int ind = list
|
|
// .indexWhere((element) => element.id == obj.selectedValue!.last);
|
|
// if (ind != -1) {
|
|
// obj.inputList![ind].ischecked = true;
|
|
// radioValue = obj.inputList![ind].name;
|
|
// }
|
|
// }
|
|
// }
|
|
// // newList.add(obj);
|
|
// }
|
|
// for (var sectionItem in item.sectionList) {
|
|
// if (sectionItem.widget == InteractionWidget.TEXT) {
|
|
// var textEditingController = TextEditingController();
|
|
// textEditingController.text = sectionItem.selectedValue!.isNotEmpty
|
|
// ? sectionItem.selectedValue!.last ?? " "
|
|
// : " ";
|
|
// textEditingControllerList.add(textEditingController);
|
|
|
|
// sectionItem.controller = textEditingControllerList.last;
|
|
// }
|
|
// if (sectionItem.widget == InteractionWidget.DROPDOWN) {
|
|
// List<InputClass> list = sectionItem.inputList!;
|
|
// if (sectionItem.selectedObject != null) {
|
|
// print("#######not null");
|
|
// } else {
|
|
// print("#######is_null");
|
|
// if (sectionItem.selectedValue == null) {
|
|
// print("#######is_null#####");
|
|
// } else {
|
|
// print('###${sectionItem.selectedValue}');
|
|
// }
|
|
// sectionItem.selectedObject = sectionItem.selectedValue!.isNotEmpty
|
|
// ? getDataObject(
|
|
// sectionItem.id, sectionItem.selectedValue!.last, list)
|
|
// : list[0];
|
|
// }
|
|
|
|
// print("valuesssss : ${sectionItem.selectedObject!.name} ");
|
|
// }
|
|
|
|
// if (sectionItem.widget == InteractionWidget.AUTOCOMPLETE ||
|
|
// sectionItem.widget == InteractionWidget.MULTISELECT) {
|
|
// List<InputClass> list = sectionItem.inputList!;
|
|
// if (sectionItem.selectedObject != null) {
|
|
// } else {
|
|
// sectionItem.selectedObject = sectionItem.selectedValue!.isNotEmpty
|
|
// ? getDataObject(
|
|
// sectionItem.id, sectionItem.selectedValue!.last, list)
|
|
// : list[0];
|
|
// }
|
|
|
|
// print("value : ${list.first.name} ");
|
|
// }
|
|
// if (sectionItem.widget == InteractionWidget.CHECKBOX) {
|
|
// List<String> selectedvalues = [];
|
|
// if (sectionItem.selectedValue!.isNotEmpty) {
|
|
// for (var id in sectionItem.selectedValue!) {
|
|
// int ind = sectionItem.inputList!
|
|
// .indexWhere((element) => element.id == id);
|
|
// if (ind != -1) {
|
|
// sectionItem.inputList![ind].ischecked = true;
|
|
// selectedvalues.add(sectionItem.inputList![ind].name);
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// if (sectionItem.widget == InteractionWidget.RADIO) {
|
|
// List<InputClass> list = sectionItem.inputList!;
|
|
|
|
// if (sectionItem.selectedValue!.isNotEmpty) {
|
|
// int ind = list.indexWhere(
|
|
// (element) => element.id == sectionItem.selectedValue!.last);
|
|
// if (ind != -1) {
|
|
// sectionItem.inputList![ind].ischecked = true;
|
|
// radioValue = sectionItem.inputList![ind].name;
|
|
// }
|
|
// }
|
|
// }
|
|
// if (sectionItem.widget == InteractionWidget.BUTTON &&
|
|
// sectionItem.param == 'chooseFile' &&
|
|
// sectionItem.selectedValue!.isNotEmpty) {
|
|
// print("choosed file");
|
|
// print(sectionItem.selectedValue!.last);
|
|
// }
|
|
// }
|
|
// }
|
|
// print(interactionReponseList);
|
|
// print("check textcontrollers ${textEditingControllerList.length}");
|
|
// }
|
|
|
|
// Future<String> fetchDataSet() async {
|
|
// List<InputClass> list = getData("intlocation_1");
|
|
// print(list);
|
|
// return "success";
|
|
// }
|
|
|
|
// List<InputClass> getData(String widgetId) {
|
|
// List<InputClass> list = [];
|
|
|
|
// return list;
|
|
// }
|
|
|
|
// InputClass getDataObject(String widgetId, String id, List<InputClass> list) {
|
|
// // if (id != "") {
|
|
// // List<InputClass> list = [];
|
|
// InputClass value = InputClass(id: '', name: '');
|
|
|
|
// if (list.isNotEmpty) {
|
|
// int index = list.indexWhere((element) => element.id.toString() == id);
|
|
|
|
// if (index != -1) {
|
|
// value = list[index];
|
|
// }
|
|
// }
|
|
|
|
// return value;
|
|
// }
|
|
|
|
// // TODO: Search for widget with depid and check if selected is not null and by selected id get the data of current widget
|
|
// List<InputClass> getData2(SectionList sectionItem) {
|
|
// List<InputClass> list = [];
|
|
// // if (sectionItem.inputList != null) {
|
|
// list = sectionItem.inputList!;
|
|
// if (sectionItem.depid != "") {
|
|
// // print("check depid : ${sectionItem.depid}");
|
|
// int i = 0;
|
|
// for (var obj in interactionReponseList) {
|
|
// i = obj.sectionList
|
|
// .indexWhere((element) => element.id == sectionItem.depid);
|
|
// // print("check depid index: $i");
|
|
// if (i != -1) {
|
|
// //print("check depid value: ${obj.sectionList[i].value}");
|
|
// if (obj.sectionList[i].value != null) {
|
|
// if (list
|
|
// .where((element) => element.pid == obj.sectionList[i].value)
|
|
// .isNotEmpty) {
|
|
// list = list
|
|
// .where((element) => element.pid == obj.sectionList[i].value)
|
|
// .toList();
|
|
|
|
// sectionItem.selectedObject = list[0];
|
|
// } else {
|
|
// // InputClass obj = InputClass(
|
|
// // id: "obj.sectionList[i].value",
|
|
// // name: "Select ${sectionItem.name}");
|
|
// list = [];
|
|
// // list.add(obj);
|
|
// sectionItem.selectedObject = null;
|
|
// }
|
|
// } else {
|
|
// // int index = obj.sectionList
|
|
// // .indexWhere((element) => element.id == sectionItem.id);
|
|
|
|
// // list = obj.sectionList[index].inputList;
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// // int index = data[i].data.indexWhere((element) => element.)
|
|
// }
|
|
// // }
|
|
|
|
// print("I_am_Returning_list: $list");
|
|
// return list;
|
|
// }
|
|
|
|
// setDropDownValue(String value, SectionList sectionItem, bool multiple,
|
|
// InputClass selectedObject) {
|
|
// 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);
|
|
// if (i != -1) {
|
|
// obj.multipleList![i].value = value;
|
|
// obj.multipleList![i].tempselectedValue = [];
|
|
// obj.multipleList![i].tempselectedValue!.add(value);
|
|
// // obj.multipleList![i].selectedObject = selectedObj;
|
|
// }
|
|
// } else {
|
|
// i = obj.sectionList
|
|
// .indexWhere((element) => element.id == sectionItem.id);
|
|
// if (i != -1) {
|
|
// obj.sectionList[i].value = value;
|
|
// obj.sectionList[i].tempselectedValue = [];
|
|
// obj.sectionList[i].tempselectedValue!.add(value);
|
|
// // obj.sectionList[i].selectedObject = selectedObj;
|
|
// }
|
|
// }
|
|
// }
|
|
// notifyListeners();
|
|
// }
|
|
|
|
// Future<void> disposeValues() async {
|
|
// print("dispose called");
|
|
// // await _hiveprovider.closeHiveBox();
|
|
// for (var obj in interactionReponseList) {
|
|
// obj.multipleList!.clear();
|
|
// // for (var obj2 in obj.sectionList) {
|
|
// // obj2.selectedObject = null;
|
|
// // }
|
|
|
|
// obj.sectionList.clear();
|
|
// }
|
|
// interactionReponseList.clear();
|
|
// }
|
|
|
|
// setTextValue(String value, SectionList sectionItem, bool multiple) {
|
|
// 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);
|
|
// if (i != -1) {
|
|
// obj.multipleList![i].value = value;
|
|
// obj.multipleList![i].selectedValue!.add(value);
|
|
// }
|
|
// } else {
|
|
// i = obj.sectionList
|
|
// .indexWhere((element) => element.id == sectionItem.id);
|
|
// if (i != -1) {
|
|
// obj.sectionList[i].value = value;
|
|
// obj.sectionList[i].selectedValue!.add(value);
|
|
// }
|
|
// }
|
|
// }
|
|
// notifyListeners();
|
|
// }
|
|
|
|
// setAutoCompleteValue(String value, SectionList sectionItem, bool multiple) {
|
|
// 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);
|
|
// if (i != -1) {
|
|
// obj.multipleList![i].value = value;
|
|
// obj.multipleList![i].tempselectedValue = [];
|
|
// obj.multipleList![i].tempselectedValue!.add(value);
|
|
// }
|
|
// } else {
|
|
// i = obj.sectionList
|
|
// .indexWhere((element) => element.id == sectionItem.id);
|
|
// if (i != -1) {
|
|
// obj.sectionList[i].value = value;
|
|
// obj.sectionList[i].tempselectedValue = [];
|
|
// obj.sectionList[i].tempselectedValue!.add(value);
|
|
// }
|
|
// }
|
|
// }
|
|
// notifyListeners();
|
|
// }
|
|
// String getDropDownValue(
|
|
// String value, SectionList sectionItem, List<InputClass> list) {
|
|
// int i = 0;
|
|
// String svalue = '';
|
|
|
|
// i = list.indexWhere((element) => element.id == value);
|
|
// if (i != -1) {
|
|
// svalue = list[i].name;
|
|
// } else {
|
|
// svalue = list[0].name;
|
|
// }
|
|
|
|
// return svalue;
|
|
// }
|
|
|
|
// Future<String> fetchData(InteractionResultData interactionResultData) async {
|
|
// InteractionResultData interactionConfig = interactionResultData;
|
|
|
|
// print("itemCategoryModel Item = + ${interactionConfig.result}");
|
|
|
|
// interactionReponseList = interactionConfig.result;
|
|
// print("check stored: $interactionReponseList");
|
|
// textEditingControllerList.clear();
|
|
|
|
// for (var item in interactionReponseList) {
|
|
// sectionList = item.sectionList;
|
|
// for (var sectionItem in item.sectionList) {
|
|
// if (sectionItem.widget == InteractionWidget.TEXT) {
|
|
// var textEditingController = TextEditingController();
|
|
|
|
// textEditingControllerList.add(textEditingController);
|
|
// sectionItem.controller = textEditingControllerList.last;
|
|
// }
|
|
// if (sectionItem.widget == InteractionWidget.DROPDOWN ||
|
|
// sectionItem.widget == InteractionWidget.AUTOCOMPLETE ||
|
|
// sectionItem.widget == InteractionWidget.MULTISELECT) {
|
|
// List<InputClass> list = sectionItem.inputList!;
|
|
// sectionItem.value = list[0].name;
|
|
// print("value : ${list.first} ");
|
|
// }
|
|
// }
|
|
// }
|
|
// print(interactionReponseList);
|
|
// print("check textcontrollers ${textEditingControllerList.length}");
|
|
|
|
// return "success";
|
|
// }
|
|
|
|
// Future<String> fetchLocationData() async {
|
|
// var data =
|
|
// await rootBundle.loadString("assets/images/locationdetailsform.json");
|
|
|
|
// Locations loc =
|
|
// Locations(location: Location.fromJson(json.decode(data)["location"]));
|
|
// locationList = loc.location;
|
|
// countryList = locationList.country;
|
|
// stateList = locationList.state;
|
|
// cityList = locationList.city;
|
|
|
|
// print(locationList);
|
|
// notifyListeners();
|
|
// return "success";
|
|
// }
|
|
|
|
// List<States> getState(String cid) {
|
|
// List<States> states =
|
|
// stateList.where((element) => element.countryId == cid).toList();
|
|
|
|
// return states;
|
|
// }
|
|
|
|
// List<City> getCity(String sid) {
|
|
// List<City> city =
|
|
// cityList.where((element) => element.stateId == sid).toList();
|
|
|
|
// return city;
|
|
// }
|
|
|
|
// String getCountryId(String name) {
|
|
// if (countryList.isNotEmpty) {
|
|
// int i = countryList.indexWhere((element) => element.countryName == name);
|
|
// return countryList[i].countryId;
|
|
// }
|
|
// return '';
|
|
// }
|
|
|
|
// String getStateId(String name) {
|
|
// if (stateList.isNotEmpty) {
|
|
// int i = stateList.indexWhere((element) => element.stateName == name);
|
|
// return stateList[i].stateId;
|
|
// }
|
|
// return '';
|
|
// }
|
|
|
|
// String getCityId(String name) {
|
|
// if (cityList.isNotEmpty) {
|
|
// int i = cityList.indexWhere((element) => element.cityName == name);
|
|
// return cityList[i].distId;
|
|
// }
|
|
// return '';
|
|
// }
|
|
|
|
// setRadioValue(SectionList sectionItem) {
|
|
// List<InputClass> list = (sectionItem.input as List)
|
|
// .map((itemWord) => InputClass.fromJson(itemWord))
|
|
// .toList();
|
|
// radioValue = list[0].name;
|
|
|
|
// notifyListeners();
|
|
// }
|
|
|
|
// setcheckBoxValue(SectionList sectionItem, String sectionName, bool newValue,
|
|
// String id, bool multiple) {
|
|
// int index =
|
|
// sectionItem.inputList!.indexWhere((element) => element.id == id);
|
|
// sectionItem.inputList![index].ischecked = newValue;
|
|
// // sectionItem.selectedValue.add(data[i].data[index].id);
|
|
// int index2 = 0;
|
|
// for (var obj in interactionReponseList) {
|
|
// if (multiple && obj.multipleList != null) {
|
|
// index2 = obj.multipleList!.indexWhere((element) =>
|
|
// element.id == sectionItem.id && element.gid == sectionItem.gid);
|
|
// if (index2 != -1) {
|
|
// obj.multipleList![index2].value = sectionItem.inputList![index].id;
|
|
// obj.multipleList![index2].selectedValue!
|
|
// .add(sectionItem.inputList![index].id);
|
|
// }
|
|
// } else {
|
|
// index2 = obj.sectionList
|
|
// .indexWhere((element) => element.id == sectionItem.id);
|
|
// if (index2 != -1) {
|
|
// obj.sectionList[index2].value = sectionItem.inputList![index].id;
|
|
// obj.sectionList[index2].selectedValue!
|
|
// .add(sectionItem.inputList![index].id);
|
|
// }
|
|
// }
|
|
// }
|
|
// notifyListeners();
|
|
// }
|
|
|
|
// getSectionItem(String sectionName) {
|
|
// newList = [];
|
|
// List<SectionList> addList = [];
|
|
// int index = interactionReponseList
|
|
// .indexWhere((element) => element.sectionName == sectionName);
|
|
|
|
// addList = interactionReponseList[index]
|
|
// .sectionList
|
|
// .map((e) => SectionList(
|
|
// depid: e.depid,
|
|
// id: e.id,
|
|
// inputList: e.inputList,
|
|
// isRequired: e.isRequired,
|
|
// name: e.name,
|
|
// param: e.param,
|
|
// selectedValue: [],
|
|
// widget: e.widget,
|
|
// controller: e.controller,
|
|
// gid: e.gid,
|
|
// input: e.input,
|
|
// selectedId: e.selectedId,
|
|
// value: e.value))
|
|
// .toList();
|
|
// SectionList delItem = SectionList(
|
|
// name: "delete",
|
|
// param: "deletebtn",
|
|
// id: "deletebtn",
|
|
// selectedValue: [],
|
|
// depid: "",
|
|
// widget: InteractionWidget.BUTTON,
|
|
// inputList: [],
|
|
// isRequired: true);
|
|
|
|
// addList.add(delItem);
|
|
|
|
// // if (interactionReponseList[index].multipleList!.isEmpty) {
|
|
// // newList = addList;
|
|
// // } else {
|
|
// if (interactionReponseList[index].multipleList == null) {
|
|
// interactionReponseList[index].multipleList = addList;
|
|
// } else {
|
|
// interactionReponseList[index].multipleList =
|
|
// interactionReponseList[index].multipleList! + addList;
|
|
// }
|
|
|
|
// newList = interactionReponseList[index].multipleList!;
|
|
// // newList = newList + addList;
|
|
// // }
|
|
// 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();
|
|
|
|
// multipletextEditingControllerList.add(textEditingController);
|
|
// obj.controller = multipletextEditingControllerList.last;
|
|
// obj.controller!.text =
|
|
// obj.selectedValue != null && obj.selectedValue!.isNotEmpty
|
|
// ? obj.selectedValue!.last
|
|
// : '';
|
|
// }
|
|
// // newList.add(obj);
|
|
// }
|
|
// }
|
|
|
|
// print(
|
|
// "check length : ${interactionReponseList[index].multipleList!.length}");
|
|
// notifyListeners();
|
|
// }
|
|
|
|
// deleteMultipleRows(
|
|
// int gid, SectionList sectionItem, String selectedSectionName) {
|
|
// int index = interactionReponseList
|
|
// .indexWhere((element) => element.sectionName == selectedSectionName);
|
|
// interactionReponseList[index]
|
|
// .multipleList!
|
|
// .removeWhere((item) => item.gid == gid);
|
|
|
|
// notifyListeners();
|
|
// }
|
|
|
|
// saveJsonObject(BuildContext context, String form,
|
|
// SaveInteraction saveInteraction) async {
|
|
// List<FormFieldData> resultData = interactionReponseList
|
|
// .map((e) => FormFieldData(
|
|
// multipleList: e.multipleList == null
|
|
// ? []
|
|
// : e.multipleList!
|
|
// .map((mobj) => SectionList(
|
|
// depid: mobj.depid,
|
|
// id: mobj.id,
|
|
// inputList: mobj.inputList,
|
|
// isRequired: mobj.isRequired,
|
|
// extension: mobj.extension,
|
|
// fileName: mobj.fileName,
|
|
// name: mobj.name,
|
|
// param: mobj.param,
|
|
// selectedValue:
|
|
// mobj.tempselectedValue ?? mobj.selectedValue,
|
|
// widget: mobj.widget,
|
|
// gid: mobj.gid,
|
|
// input: mobj.input,
|
|
// selectedId: mobj.selectedId,
|
|
// value: mobj.value))
|
|
// .toList(),
|
|
// sectionList: e.sectionList
|
|
// .map((obj) => SectionList(
|
|
// depid: obj.depid,
|
|
// id: obj.id,
|
|
// inputList: obj.inputList,
|
|
// extension: obj.extension,
|
|
// fileName: obj.fileName,
|
|
// isRequired: obj.isRequired,
|
|
// name: obj.name,
|
|
// param: obj.param,
|
|
// selectedValue: obj.tempselectedValue ?? obj.selectedValue,
|
|
// widget: obj.widget,
|
|
// controller: obj.controller,
|
|
// gid: obj.gid,
|
|
// input: obj.input,
|
|
// selectedId: obj.selectedId,
|
|
// value: obj.value))
|
|
// .toList(),
|
|
// sectionName: e.sectionName,
|
|
// multiple: e.multiple,
|
|
// ))
|
|
// .toList();
|
|
|
|
// final data = SaveInteraction(
|
|
// save: resultData,
|
|
// id: saveInteraction.id,
|
|
// updatedTime: DateTime.now().toString(),
|
|
// form: saveInteraction.form,
|
|
// intId: saveInteraction.intId,
|
|
// intName: saveInteraction.intName,
|
|
// );
|
|
// var box = Hive.box<SaveInteraction>('InteractionDataBox');
|
|
|
|
// if (!box.isOpen) {
|
|
// box = await Hive.openBox<SaveInteraction>('InteractionDataBox');
|
|
// }
|
|
|
|
// int index =
|
|
// box.values.toList().indexWhere((element) => element.id == data.id);
|
|
|
|
// box.putAt(index, data);
|
|
// await getRecords(saveInteraction.form!);
|
|
// // box.close();
|
|
|
|
// // await MockApiCall().postFormData(data);
|
|
// }
|
|
|
|
// Future<void> deleteRecord(SaveInteraction saveInteraction) async {
|
|
// var box = await Hive.openBox<SaveInteraction>('InteractionDataBox');
|
|
// final Map<dynamic, SaveInteraction> deliveriesmap = box.toMap();
|
|
// dynamic deleteKey;
|
|
// deliveriesmap.forEach((key, value) {
|
|
// if (value.id == saveInteraction.id) {
|
|
// deleteKey = key;
|
|
// }
|
|
// });
|
|
// box.delete(deleteKey);
|
|
// await getRecords(saveInteraction.form!);
|
|
// //box.close();
|
|
// }
|
|
|
|
// List<MultipleSectionList> getModifiedList(List<SectionList> sectionList) {
|
|
// List<MultipleSectionList> newSectionList = [];
|
|
// for (var obj in sectionList) {
|
|
// if (obj.id != 'deletebtn') {
|
|
// if (obj.id == 'chooseFile') {
|
|
// List<MultipartFile> files = [];
|
|
// if (obj.selectedValue!.isNotEmpty && obj.selectedValue != null) {
|
|
// for (var file in obj.selectedValue!) {
|
|
// files.add(MultipartFile.fromFileSync(file));
|
|
// }
|
|
// }
|
|
// MultipleSectionList newobj = MultipleSectionList(
|
|
// id: obj.id,
|
|
// selectedValue: files,
|
|
// );
|
|
|
|
// newSectionList.add(newobj);
|
|
// } else {
|
|
// MultipleSectionList newobj = MultipleSectionList(
|
|
// id: obj.id,
|
|
// selectedValue: obj.selectedValue!,
|
|
// );
|
|
// newSectionList.add(newobj);
|
|
// }
|
|
// }
|
|
// }
|
|
// return newSectionList;
|
|
// }
|
|
|
|
// bool validateMultipleRows() {
|
|
// for (var obj in interactionReponseList) {
|
|
// if (obj.multipleList != null) {
|
|
// for (var mulobj in obj.multipleList!) {
|
|
// if (mulobj.widget == InteractionWidget.TEXT) {
|
|
// if (mulobj.controller!.text.isEmpty) {
|
|
// return true;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// return false;
|
|
// }
|
|
|
|
// bool validateTextFields() {
|
|
// for (var obj in interactionReponseList) {
|
|
// for (var mulobj in obj.sectionList) {
|
|
// if (mulobj.widget == InteractionWidget.TEXT) {
|
|
// if (mulobj.controller!.text.isEmpty) {
|
|
// return true;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// return false;
|
|
// }
|
|
// }
|