saveImages method
Implementation
@override
Future<bool> saveImages() async {
var progress = NsgProgressDialog(textDialog: tran.save_files);
progress.show();
var ids = <String>[];
var table = NsgDataTable(owner: masterController!.selectedItem!, fieldName: tableFieldName);
try {
for (var img in files) {
ids.add(img.id);
if (img.isNew && img.id.isNotEmpty && (img.fileContent != null || img.filePath.isNotEmpty)) {
//TODO: убрать imageFile
File? imageFile = kIsWeb || img.filePath.isEmpty ? null : File(img.filePath);
var pic = await fileObjectToDataItem(img, imageFile);
if (!table.rows.any((e) => e.id == pic.id)) {
table.rows.add(pic);
}
}
}
//Удаляем "лишние" картинки
//TODO: УДАЛЕНИЕ ФАЙЛОВ!!!!!
var itemsToDelete = table.rows.where((se) => !ids.contains(se.id)).toList();
for (var row in itemsToDelete) {
if (row.remoteProvider.newTableLogic) {
row.docState = NsgDataItemDocState.deleted;
} else {
table.rows.remove(row);
}
}
progress.hide();
// Get.back();
} catch (ex) {
progress.hide();
NsgErrorWidget.showError(ex as Exception);
rethrow;
}
return true;
}