Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
medapp_eksad
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qorri_di
medapp_eksad
Commits
44bae067
Commit
44bae067
authored
Sep 26, 2022
by
Tohap Maruli Pasaribu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update data on Action="Edit" in Data User
parent
752af512
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
600 additions
and
24 deletions
+600
-24
userControl_api.dart
lib/api/userControl_api.dart
+23
-0
admin_userControl.dart
lib/dashboard/admin/admin_userControl.dart
+577
-24
No files found.
lib/api/userControl_api.dart
View file @
44bae067
...
...
@@ -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
}),
...
...
lib/dashboard/admin/admin_userControl.dart
View file @
44bae067
...
...
@@ -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..."
);
view
User
(
context
);
edit
User
(
context
);
}
else
if
(
value
==
2
)
{
print
(
"you choose Delete..."
);
deleteUser
(
context
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment