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
24c4d453
Commit
24c4d453
authored
Sep 19, 2022
by
Fikri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
menambahkan action
parent
0ea56a1f
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
190 additions
and
72 deletions
+190
-72
contact_api.dart
lib/api/contact_api.dart
+14
-0
admin_contact.dart
lib/dashboard/admin/admin_contact.dart
+176
-72
No files found.
lib/api/contact_api.dart
View file @
24c4d453
...
@@ -30,3 +30,17 @@ Future<bool> savecontact(nama, email, nohp, message) async {
...
@@ -30,3 +30,17 @@ Future<bool> savecontact(nama, email, nohp, message) async {
// return response.statusCode;
// return response.statusCode;
}
}
Future
<
bool
>
deleteContact
(
id
)
async
{
final
response
=
await
http
.
delete
(
Uri
.
parse
(
'
$cmd
/contact/delete/
$id
'
),
headers:
{
'Content-type'
:
'application/json; charset=UTF-8'
,
},
);
if
(
response
.
statusCode
==
200
)
{
return
true
;
}
else
{
return
false
;
}
}
lib/dashboard/admin/admin_contact.dart
View file @
24c4d453
...
@@ -91,12 +91,11 @@ class _Dashboard4State extends State<Dashboard4> {
...
@@ -91,12 +91,11 @@ class _Dashboard4State extends State<Dashboard4> {
decoration:
const
BoxDecoration
(
color:
Colors
.
white
),
decoration:
const
BoxDecoration
(
color:
Colors
.
white
),
columnSpacing:
105
,
columnSpacing:
105
,
columns:
const
[
columns:
const
[
DataColumn
(
label:
Text
(
"ID"
)),
DataColumn
(
label:
Text
(
"Date"
)),
DataColumn
(
label:
Text
(
"Date"
)),
DataColumn
(
label:
Text
(
"Name"
)),
DataColumn
(
label:
Text
(
"Name"
)),
DataColumn
(
label:
Text
(
"Email"
)),
DataColumn
(
label:
Text
(
"Message"
)),
DataColumn
(
label:
Text
(
"Number"
)),
DataColumn
(
label:
Text
(
"Number"
)),
DataColumn
(
label:
Text
(
"Email"
)),
DataColumn
(
label:
Text
(
"Action"
)),
],
],
rows:
List
.
generate
(
rows:
List
.
generate
(
snapshot
.
data
.
length
,
snapshot
.
data
.
length
,
...
@@ -105,85 +104,191 @@ class _Dashboard4State extends State<Dashboard4> {
...
@@ -105,85 +104,191 @@ class _Dashboard4State extends State<Dashboard4> {
return
DataRow
(
return
DataRow
(
cells:
[
cells:
[
DataCell
(
DataCell
(
Text
(
pgm
[
'
idContact'
].
toString
()
),
Text
(
pgm
[
'
dateContact'
]
),
),
),
DataCell
(
DataCell
(
Text
(
pgm
[
'namaContact'
]),
Text
(
pgm
[
'namaContact'
]),
),
),
DataCell
(
DataCell
(
Text
(
pgm
[
'
dateContact
'
]),
Text
(
pgm
[
'
noHp
'
]),
),
),
DataCell
(
DataCell
(
Text
(
pgm
[
'emailContact'
]),
Text
(
pgm
[
'emailContact'
]),
),
),
DataCell
(
DataCell
(
Text
(
pgm
[
'messageContact'
]),
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceEvenly
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
[
Column
(
mainAxisAlignment:
MainAxisAlignment
.
spaceEvenly
,
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
TextButton
(
style:
TextButton
.
styleFrom
(
padding:
const
EdgeInsets
.
all
(
16.0
),
primary:
Colors
.
white
,
backgroundColor:
Color
.
fromARGB
(
255
,
15
,
102
,
223
),
textStyle:
const
TextStyle
(
fontSize:
15
),
),
onPressed:
()
{
showDialog
(
context:
context
,
builder:
(
context
)
{
return
AlertDialog
(
title:
Text
(
"Information"
,
style:
GoogleFonts
.
poppins
(
fontSize:
16
,
fontWeight:
FontWeight
.
bold
,
),
),
content:
Container
(
height:
screenSize
.
height
*
0.3
,
width:
screenSize
.
width
*
0.33
,
child:
Column
(
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Text
(
"Date :
${pgm['dateContact']}
"
),
Text
(
"Nama :
${pgm['namaContact']}
"
),
Text
(
"No.Telp :
${pgm['noHp']}
"
),
Text
(
"Email :
${pgm['emailContact']}
"
),
Text
(
"Message :
${pgm['messageContact']}
"
),
],
),
),
actions:
<
Widget
>[
TextButton
(
style:
TextButton
.
styleFrom
(
padding:
const
EdgeInsets
.
all
(
16.0
),
primary:
Colors
.
white
,
backgroundColor:
Color
.
fromARGB
(
255
,
15
,
102
,
223
),
textStyle:
const
TextStyle
(
fontSize:
15
),
),
child:
const
Text
(
"Back"
),
onPressed:
()
{
Navigator
.
pop
(
context
);
},
),
],
);
},
);
},
child:
const
Text
(
"View"
),
),
],
),
SizedBox
(
width:
3
,
),
Column
(
mainAxisAlignment:
MainAxisAlignment
.
spaceEvenly
,
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
TextButton
(
style:
TextButton
.
styleFrom
(
padding:
const
EdgeInsets
.
all
(
16.0
),
primary:
Colors
.
white
,
backgroundColor:
const
Color
.
fromARGB
(
255
,
245
,
27
,
27
),
textStyle:
const
TextStyle
(
fontSize:
15
),
),
onPressed:
()
{
showDialog
(
context:
context
,
builder:
(
context
)
{
return
AlertDialog
(
title:
const
Text
(
"Warning"
),
content:
Text
(
"Are you sure want to delete data user
${pgm['namaContact']}
?"
),
actions:
<
Widget
>[
TextButton
(
child:
const
Text
(
"Yes"
),
onPressed:
()
{
Navigator
.
pop
(
context
);
deleteContact
(
pgm
[
'idContact'
])
.
then
(
(
isSuccess
)
{
if
(
isSuccess
)
{
setState
(()
{});
Scaffold
.
of
(
this
.
context
)
.
showSnackBar
(
const
SnackBar
(
content:
Text
(
"Delete data success"
)));
}
else
{
Scaffold
.
of
(
this
.
context
)
.
showSnackBar
(
const
SnackBar
(
content:
Text
(
"Delete data failed"
)));
}
});
},
),
TextButton
(
child:
const
Text
(
"No"
),
onPressed:
()
{
Navigator
.
pop
(
context
);
},
),
],
);
},
);
},
child:
const
Text
(
"Delete"
),
),
],
),
],
),
),
DataCell
(
Text
(
pgm
[
'noHp'
]),
),
),
// DataCell(
// Row(
// children: [
// TextButton(
// style: TextButton.styleFrom(
// padding: const EdgeInsets.all(16.0),
// primary: Colors.white,
// backgroundColor: const Color.fromARGB(
// 255, 245, 27, 27),
// textStyle:
// const TextStyle(fontSize: 15),
// ),
// onPressed: () {
// showDialog(
// context: context,
// builder: (context) {
// return AlertDialog(
// title: const Text("Warning"),
// content: Text(
// "Are you sure want to delete data page ${pgm['title']}?"),
// actions: <Widget>[
// TextButton(
// child: const Text("Yes"),
// onPressed: () {
// Navigator.pop(context);
// deletePage(pgm['idpage'])
// .then((isSuccess) {
// if (isSuccess) {
// setState(() {});
// Scaffold.of(
// this.context)
// .showSnackBar(
// const SnackBar(
// content: Text(
// "Delete data success")));
// } else {
// Scaffold.of(
// this.context)
// .showSnackBar(
// const SnackBar(
// content: Text(
// "Delete data failed")));
// }
// });
// },
// ),
// TextButton(
// child: const Text("No"),
// onPressed: () {
// Navigator.pop(context);
// },
// ),
// ],
// );
// },
// );
// },
// child: const Text("Delete"),
// ),
// ],
// ),
// ),
],
],
);
);
},
},
...
@@ -194,7 +299,6 @@ class _Dashboard4State extends State<Dashboard4> {
...
@@ -194,7 +299,6 @@ class _Dashboard4State extends State<Dashboard4> {
],
],
),
),
),
),
],
],
),
),
),
),
...
...
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