mirror of
https://github.com/inventree/inventree-app.git
synced 2025-06-17 20:55:26 +00:00
Format code
This commit is contained in:
@ -9,11 +9,8 @@ import "package:one_context/one_context.dart";
|
||||
|
||||
import "package:inventree/l10.dart";
|
||||
|
||||
|
||||
class FilePickerDialog {
|
||||
|
||||
static Future<File?> pickImageFromCamera() async {
|
||||
|
||||
final picker = ImagePicker();
|
||||
|
||||
final pickedImage = await picker.pickImage(source: ImageSource.camera);
|
||||
@ -26,7 +23,6 @@ class FilePickerDialog {
|
||||
}
|
||||
|
||||
static Future<File?> pickImageFromGallery() async {
|
||||
|
||||
final picker = ImagePicker();
|
||||
|
||||
final pickedImage = await picker.pickImage(source: ImageSource.gallery);
|
||||
@ -39,7 +35,6 @@ class FilePickerDialog {
|
||||
}
|
||||
|
||||
static Future<File?> pickFileFromDevice() async {
|
||||
|
||||
final FilePickerResult? result = await FilePicker.platform.pickFiles();
|
||||
|
||||
if (result != null) {
|
||||
@ -54,8 +49,11 @@ class FilePickerDialog {
|
||||
}
|
||||
|
||||
// Present a dialog to pick a file, either from local file system or from camera
|
||||
static Future<void> pickFile({String message = "", bool allowImages = true, bool allowFiles = true, Function(File)? onPicked}) async {
|
||||
|
||||
static Future<void> pickFile(
|
||||
{String message = "",
|
||||
bool allowImages = true,
|
||||
bool allowFiles = true,
|
||||
Function(File)? onPicked}) async {
|
||||
String title = "";
|
||||
|
||||
if (allowImages && !allowFiles) {
|
||||
@ -65,48 +63,38 @@ class FilePickerDialog {
|
||||
}
|
||||
|
||||
// Construct actions
|
||||
List<Widget> actions = [
|
||||
|
||||
];
|
||||
List<Widget> actions = [];
|
||||
|
||||
if (message.isNotEmpty) {
|
||||
actions.add(
|
||||
ListTile(
|
||||
title: Text(message)
|
||||
)
|
||||
);
|
||||
actions.add(ListTile(title: Text(message)));
|
||||
}
|
||||
|
||||
actions.add(
|
||||
SimpleDialogOption(
|
||||
child: ListTile(
|
||||
leading: Icon(TablerIcons.arrow_up),
|
||||
title: Text(allowFiles ? L10().selectFile : L10().selectImage),
|
||||
),
|
||||
onPressed: () async {
|
||||
actions.add(SimpleDialogOption(
|
||||
child: ListTile(
|
||||
leading: Icon(TablerIcons.arrow_up),
|
||||
title: Text(allowFiles ? L10().selectFile : L10().selectImage),
|
||||
),
|
||||
onPressed: () async {
|
||||
// Close the dialog
|
||||
OneContext().popDialog();
|
||||
|
||||
// Close the dialog
|
||||
OneContext().popDialog();
|
||||
File? file;
|
||||
if (allowFiles) {
|
||||
file = await pickFileFromDevice();
|
||||
} else {
|
||||
file = await pickImageFromGallery();
|
||||
}
|
||||
|
||||
File? file;
|
||||
if (allowFiles) {
|
||||
file = await pickFileFromDevice();
|
||||
} else {
|
||||
file = await pickImageFromGallery();
|
||||
if (file != null) {
|
||||
if (onPicked != null) {
|
||||
onPicked(file);
|
||||
}
|
||||
|
||||
if (file != null) {
|
||||
if (onPicked != null) {
|
||||
onPicked(file);
|
||||
}
|
||||
}
|
||||
},
|
||||
)
|
||||
);
|
||||
}
|
||||
},
|
||||
));
|
||||
|
||||
if (allowImages) {
|
||||
actions.add(
|
||||
SimpleDialogOption(
|
||||
actions.add(SimpleDialogOption(
|
||||
child: ListTile(
|
||||
leading: Icon(TablerIcons.camera),
|
||||
title: Text(L10().takePicture),
|
||||
@ -122,100 +110,99 @@ class FilePickerDialog {
|
||||
onPicked(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
);
|
||||
}));
|
||||
}
|
||||
|
||||
OneContext().showDialog(
|
||||
builder: (context) {
|
||||
return SimpleDialog(
|
||||
title: Text(title),
|
||||
children: actions,
|
||||
);
|
||||
}
|
||||
);
|
||||
OneContext().showDialog(builder: (context) {
|
||||
return SimpleDialog(
|
||||
title: Text(title),
|
||||
children: actions,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class CheckBoxField extends FormField<bool> {
|
||||
CheckBoxField({
|
||||
String? label,
|
||||
bool? initial = false,
|
||||
bool tristate = false,
|
||||
Function(bool?)? onSaved,
|
||||
TextStyle? labelStyle,
|
||||
String? helperText,
|
||||
TextStyle? helperStyle,
|
||||
}) :
|
||||
super(
|
||||
onSaved: onSaved,
|
||||
initialValue: initial,
|
||||
builder: (FormFieldState<bool> state) {
|
||||
|
||||
return CheckboxListTile(
|
||||
title: label != null ? Text(label, style: labelStyle) : null,
|
||||
value: state.value,
|
||||
tristate: tristate,
|
||||
onChanged: state.didChange,
|
||||
subtitle: helperText != null ? Text(helperText, style: helperStyle) : null,
|
||||
contentPadding: EdgeInsets.zero,
|
||||
);
|
||||
}
|
||||
);
|
||||
String? label,
|
||||
bool? initial = false,
|
||||
bool tristate = false,
|
||||
Function(bool?)? onSaved,
|
||||
TextStyle? labelStyle,
|
||||
String? helperText,
|
||||
TextStyle? helperStyle,
|
||||
}) : super(
|
||||
onSaved: onSaved,
|
||||
initialValue: initial,
|
||||
builder: (FormFieldState<bool> state) {
|
||||
return CheckboxListTile(
|
||||
title: label != null ? Text(label, style: labelStyle) : null,
|
||||
value: state.value,
|
||||
tristate: tristate,
|
||||
onChanged: state.didChange,
|
||||
subtitle: helperText != null
|
||||
? Text(helperText, style: helperStyle)
|
||||
: null,
|
||||
contentPadding: EdgeInsets.zero,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
class StringField extends TextFormField {
|
||||
StringField(
|
||||
{String label = "",
|
||||
String? hint,
|
||||
String? initial,
|
||||
Function(String?)? onSaved,
|
||||
Function(String?)? validator,
|
||||
bool allowEmpty = false,
|
||||
bool isEnabled = true})
|
||||
: super(
|
||||
decoration: InputDecoration(
|
||||
labelText: allowEmpty ? label : label + "*", hintText: hint),
|
||||
initialValue: initial,
|
||||
onSaved: onSaved,
|
||||
enabled: isEnabled,
|
||||
validator: (value) {
|
||||
if (!allowEmpty && value != null && value.isEmpty) {
|
||||
return L10().valueCannotBeEmpty;
|
||||
}
|
||||
|
||||
StringField({String label = "", String? hint, String? initial, Function(String?)? onSaved, Function(String?)? validator, bool allowEmpty = false, bool isEnabled = true}) :
|
||||
super(
|
||||
decoration: InputDecoration(
|
||||
labelText: allowEmpty ? label : label + "*",
|
||||
hintText: hint
|
||||
),
|
||||
initialValue: initial,
|
||||
onSaved: onSaved,
|
||||
enabled: isEnabled,
|
||||
validator: (value) {
|
||||
if (!allowEmpty && value != null && value.isEmpty) {
|
||||
return L10().valueCannotBeEmpty;
|
||||
}
|
||||
if (validator != null) {
|
||||
return validator(value) as String?;
|
||||
}
|
||||
|
||||
if (validator != null) {
|
||||
return validator(value) as String?;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Helper class for quantity values
|
||||
*/
|
||||
class QuantityField extends TextFormField {
|
||||
QuantityField(
|
||||
{String label = "",
|
||||
String hint = "",
|
||||
double? max,
|
||||
TextEditingController? controller})
|
||||
: super(
|
||||
decoration: InputDecoration(
|
||||
labelText: label,
|
||||
hintText: hint,
|
||||
),
|
||||
controller: controller,
|
||||
keyboardType:
|
||||
TextInputType.numberWithOptions(signed: false, decimal: true),
|
||||
validator: (value) {
|
||||
if (value != null && value.isEmpty) return L10().quantityEmpty;
|
||||
|
||||
QuantityField({String label = "", String hint = "", double? max, TextEditingController? controller}) :
|
||||
super(
|
||||
decoration: InputDecoration(
|
||||
labelText: label,
|
||||
hintText: hint,
|
||||
),
|
||||
controller: controller,
|
||||
keyboardType: TextInputType.numberWithOptions(signed: false, decimal: true),
|
||||
validator: (value) {
|
||||
double quantity = double.tryParse(value.toString()) ?? 0;
|
||||
|
||||
if (value != null && value.isEmpty) return L10().quantityEmpty;
|
||||
if (quantity <= 0) return L10().quantityPositive;
|
||||
if ((max != null) && (quantity > max))
|
||||
return "Quantity must not exceed ${max}";
|
||||
|
||||
double quantity = double.tryParse(value.toString()) ?? 0;
|
||||
|
||||
if (quantity <= 0) return L10().quantityPositive;
|
||||
if ((max != null) && (quantity > max)) return "Quantity must not exceed ${max}";
|
||||
|
||||
return null;
|
||||
},
|
||||
);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user