Commit 44bae067 authored by Tohap Maruli Pasaribu's avatar Tohap Maruli Pasaribu

update data on Action="Edit" in Data User

parent 752af512
......@@ -11,6 +11,29 @@ Future<List<dynamic>> getUserControl() async {
return jsonDecode(response.body)['data'];
}
Future<bool> editUserControl(idUser, namaRs, noRs, alamatRs, namaPic, noPic,
emailPic, password, statusUser) async {
final response = await http.post(Uri.parse('$cmd/user/signup'),
body: jsonEncode({
"idUser": idUser,
"namaRs": namaRs,
"noRs": noRs,
"alamatRs": alamatRs,
"namaPic": namaPic,
"noPic": noPic,
"emailPic": emailPic,
"password": password,
"statusUser": statusUser
}),
headers: {'Content-type': 'application/json; charset=UTF-8'});
if (response.statusCode == 200) {
return true;
} else {
return false;
}
}
Future<bool> deleteUserControl(idUser) async {
final response = await http.post(Uri.parse('$cmd/user/updateUser'),
body: jsonEncode({"idUser": idUser}),
......
......@@ -111,6 +111,8 @@ class _UserControlState extends State<UserControl> {
rows: List.generate(snapshot.data.length, (index) {
var pgm = snapshot.data[index];
bool _isEditingText = false;
final nameRSController = TextEditingController()
..text = pgm['namaRs'].toString();
final phoneRSController = TextEditingController(
......@@ -123,22 +125,547 @@ class _UserControlState extends State<UserControl> {
text: pgm['noPic'].toString());
final emailPICController = TextEditingController(
text: pgm['emailPic'].toString());
// final passwordController =
// TextEditingController();
final passwordController = TextEditingController(
text: pgm['password'].toString());
final statusUserController =
TextEditingController(
text: pgm['statusUser'].toString());
void viewUser(BuildContext context) {
var screenSize = MediaQuery.of(context).size;
showDialog(
context: context,
builder: (BuildContext context) {
// var pgm = snapshot.data;
// print(pgm);
// if (snapshot.hasError ||
// snapshot.data == null ||
// snapshot.connectionState == ConnectionState.waiting) {
// return const CircularProgressIndicator();
// }
return AlertDialog(
content: Form(
child: Container(
padding: EdgeInsets.only(
left: screenSize.width * 0.045,
top: screenSize.height * 0.01),
width: screenSize.width * 0.50,
height: screenSize.height * 0.55,
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment:
MainAxisAlignment.spaceEvenly,
children: [
const Spacer(),
Container(
padding: EdgeInsets.only(
left: screenSize.width *
0.15),
height: screenSize.width * 0.03,
child: Image.asset(
"assets/logo/medapp-logo.png"),
),
const SizedBox(height: 20),
Row(
children: [
Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
mainAxisAlignment:
MainAxisAlignment
.spaceEvenly,
children: [
Row(
children: [
Icon(
Icons
.drive_file_rename_outline,
color: Colors
.grey[500],
size: screenSize
.width *
0.01),
const SizedBox(
width: 10),
const Text(
"Nama Rumah Sakit",
style: TextStyle(
fontSize: 13))
],
),
const SizedBox(height: 5),
Row(
children: [
SizedBox(
height: 60,
width: screenSize
.width *
0.2,
child:
TextFormField(
autofocus: true,
controller:
nameRSController,
textAlign:
TextAlign
.start,
decoration: InputDecoration(
labelText:
"Nama Rumah Sakit",
labelStyle:
TextStyle(
fontSize:
13),
border: OutlineInputBorder(
borderRadius:
BorderRadius.circular(
5.0))),
readOnly: true,
validator:
(value) {
if (value ==
null ||
value
.isEmpty) {
return "Nama Rumah Sakit tidak boleh kosong";
} else {
return null;
}
},
),
)
],
)
],
),
const SizedBox(width: 30),
Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
mainAxisAlignment:
MainAxisAlignment
.spaceEvenly,
children: [
// ===============nama pic=============
Row(
children: [
Icon(
Icons
.drive_file_rename_outline,
color: Colors
.grey[500],
size: screenSize
.width *
0.01,
),
const SizedBox(
width: 10,
),
const Text(
"Nama PIC",
style: TextStyle(
fontSize: 13),
),
],
),
const SizedBox(
height: 5,
),
Row(
children: [
SizedBox(
height: 60,
width: screenSize
.width *
0.2,
child:
TextFormField(
controller:
namePICController,
textAlign:
TextAlign
.start,
decoration:
InputDecoration(
labelText:
"Nama PIC",
labelStyle: TextStyle(
fontSize:
13),
border:
OutlineInputBorder(
borderRadius:
BorderRadius.circular(5.0),
)),
readOnly: true,
validator:
(value) {
if (value ==
null ||
value
.isEmpty) {
return "Nama PIC tidak boleh kosong";
}
return null;
},
),
)
],
),
// ===============akhir nama pic=============
],
)
],
),
Row(
children: [
Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
mainAxisAlignment:
MainAxisAlignment
.spaceEvenly,
children: [
// ===============alamat rs==========
Row(
children: [
Icon(
Icons
.add_home_work_sharp,
color: Colors
.grey[500],
size: screenSize
.width *
0.01,
),
const SizedBox(
width: 10,
),
const Text(
"Alamat Rumah Sakit",
style: TextStyle(
fontSize: 13),
),
],
),
const SizedBox(
height: 5,
),
Row(
children: [
SizedBox(
height: 60,
width: screenSize
.width *
0.2,
child:
TextFormField(
controller:
addressRSController,
textAlign:
TextAlign
.start,
readOnly: true,
validator:
(value) {
if (value ==
null ||
value
.isEmpty) {
return "Nomor Alamat Rumah Sakit tidak boleh kosong";
}
return null;
},
decoration:
InputDecoration(
labelText:
"Nomor Alamat Rumah Sakit",
labelStyle: TextStyle(
fontSize:
13),
hintStyle:
const TextStyle(),
border:
OutlineInputBorder(
borderRadius:
BorderRadius.circular(5.0),
)),
),
)
],
),
// ===============akhir alamat rs==========
],
),
const SizedBox(
width: 30,
),
Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
mainAxisAlignment:
MainAxisAlignment
.spaceEvenly,
children: [
// ===============email pic==========
Row(
children: [
Icon(
Icons
.email_outlined,
color: Colors
.grey[500],
size: screenSize
.width *
0.01,
),
const SizedBox(
width: 10,
),
const Text(
"Email PIC",
style: TextStyle(
fontSize: 13),
),
],
),
const SizedBox(
height: 5,
),
Row(
children: [
SizedBox(
height: 60,
width: screenSize
.width *
0.2,
child:
TextFormField(
controller:
emailPICController,
textAlign:
TextAlign
.start,
readOnly: true,
validator:
(value) {
if (value ==
null ||
value
.isEmpty) {
return "Email PIC tidak boleh kosong";
}
return null;
},
decoration:
InputDecoration(
labelText:
"Email PIC",
labelStyle: TextStyle(
fontSize:
13),
hintStyle:
const TextStyle(),
border:
OutlineInputBorder(
borderRadius:
BorderRadius.circular(5.0),
)),
),
)
],
),
// ===============akhir email pic==========
],
),
],
),
Row(
children: [
Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
mainAxisAlignment:
MainAxisAlignment
.spaceEvenly,
children: [
// ===============telepon rs==========
Row(
children: [
Icon(
Icons.phone_android,
color: Colors
.grey[500],
size: screenSize
.width *
0.01,
),
const SizedBox(
width: 10,
),
const Text(
"No Telepon Rumah Sakit",
style: TextStyle(
fontSize: 13),
),
],
),
const SizedBox(
height: 5,
),
Row(
children: [
SizedBox(
height: 60,
width: screenSize
.width *
0.2,
child:
TextFormField(
controller:
phoneRSController,
textAlign:
TextAlign
.start,
readOnly: true,
validator:
(value) {
if (value ==
null ||
value
.isEmpty) {
return "Nomor Telepon Rumah Sakit tidak boleh kosong";
}
return null;
},
decoration:
InputDecoration(
labelText:
"Nomor Telepon Rumah Sakit",
labelStyle: TextStyle(
fontSize:
13),
hintStyle:
const TextStyle(),
border:
OutlineInputBorder(
borderRadius:
BorderRadius.circular(5.0),
)),
),
)
],
),
// ===============akhir telepon rs==========
],
),
const SizedBox(
width: 30,
),
Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
mainAxisAlignment:
MainAxisAlignment
.spaceEvenly,
children: [
// ===============telepon pic==========
Row(
children: [
Icon(
Icons.phone_android,
color: Colors
.grey[500],
size: screenSize
.width *
0.01,
),
const SizedBox(
width: 10,
),
const Text(
"No Telepon PIC",
style: TextStyle(
fontSize: 13),
),
],
),
const SizedBox(
height: 5,
),
Row(
children: [
SizedBox(
height: 60,
width: screenSize
.width *
0.2,
child:
TextFormField(
controller:
phonePICController,
textAlign:
TextAlign
.start,
validator:
(value) {
if (value ==
null ||
value
.isEmpty) {
return "Nomor Telepon PIC tidak boleh kosong";
}
return null;
},
decoration:
InputDecoration(
labelText:
"Nomor Telepon PIC",
labelStyle: TextStyle(
fontSize:
13),
hintStyle:
const TextStyle(),
border:
OutlineInputBorder(
borderRadius:
BorderRadius.circular(5.0),
)),
),
)
],
),
// ===============akhir telepon pic==========
],
),
],
),
],
),
)),
actions: [
MaterialButton(
child: Text("OK"),
onPressed: () {
Navigator.of(context).pop();
})
],
);
});
}
void viewUser(BuildContext context) {
var screenSize = MediaQuery.of(context).size;
void editUser(BuildContext context) {
showDialog(
context: context,
builder: (BuildContext context) {
// var pgm = snapshot.data;
// print(pgm);
// if (snapshot.hasError ||
// snapshot.data == null ||
// snapshot.connectionState == ConnectionState.waiting) {
// return const CircularProgressIndicator();
// }
return AlertDialog(
content: Form(
child: Container(
......@@ -217,7 +744,6 @@ class _UserControlState extends State<UserControl> {
borderRadius:
BorderRadius.circular(
5.0))),
readOnly: true,
validator:
(value) {
if (value ==
......@@ -295,7 +821,6 @@ class _UserControlState extends State<UserControl> {
borderRadius:
BorderRadius.circular(5.0),
)),
readOnly: true,
validator:
(value) {
if (value ==
......@@ -364,7 +889,6 @@ class _UserControlState extends State<UserControl> {
textAlign:
TextAlign
.start,
readOnly: true,
validator:
(value) {
if (value ==
......@@ -446,7 +970,6 @@ class _UserControlState extends State<UserControl> {
textAlign:
TextAlign
.start,
readOnly: true,
validator:
(value) {
if (value ==
......@@ -528,7 +1051,6 @@ class _UserControlState extends State<UserControl> {
textAlign:
TextAlign
.start,
readOnly: true,
validator:
(value) {
if (value ==
......@@ -609,7 +1131,6 @@ class _UserControlState extends State<UserControl> {
textAlign:
TextAlign
.start,
readOnly: true,
validator:
(value) {
if (value ==
......@@ -646,12 +1167,44 @@ class _UserControlState extends State<UserControl> {
],
),
)),
actions: [
MaterialButton(
child: Text("OK"),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.of(context).pop();
})
Navigator.pop(context);
editUserControl(
pgm['idUser'],
nameRSController
.value.text,
phoneRSController
.value.text,
addressRSController
.value.text,
namePICController
.value.text,
phonePICController
.value.text,
emailPICController
.value.text,
pgm['password'],
pgm['statusUser'])
.then((isSuccess) {
if (isSuccess) {
setState(() {});
ScaffoldMessenger.of(
this.context)
.showSnackBar(
const SnackBar(
content: Text(
"Update data success")));
}
});
},
child: const Text("SAVE")),
TextButton(
onPressed: () {
Navigator.pop(context);
},
child: const Text("CANCEL"))
],
);
});
......@@ -720,7 +1273,7 @@ class _UserControlState extends State<UserControl> {
onSelected: (value) {
if (value == 1) {
print("you choose Edit...");
viewUser(context);
editUser(context);
} else if (value == 2) {
print("you choose Delete...");
deleteUser(context);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment