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
5c18e929
Commit
5c18e929
authored
Sep 23, 2022
by
Fikri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
menambahkan setting
parent
c07c7e6f
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
663 additions
and
51 deletions
+663
-51
setting_api.dart
lib/api/setting_api.dart
+63
-0
admin_setting.dart
lib/dashboard/admin/admin_setting.dart
+400
-0
main_dashboard_admin.dart
lib/dashboard/admin/main_dashboard_admin.dart
+3
-10
footer.dart
lib/screen/footer.dart
+64
-29
pubspec.lock
pubspec.lock
+131
-12
pubspec.yaml
pubspec.yaml
+2
-0
No files found.
lib/api/setting_api.dart
0 → 100644
View file @
5c18e929
import
'dart:convert'
;
import
'package:http/http.dart'
as
http
;
var
cmd
=
'https://dmsdev-api.eksad.com/gateway/medapp/v1/cmd'
;
var
qry
=
'https://dmsdev-api.eksad.com/gateway/medapp/v1/qry'
;
Future
<
bool
>
createSetting
(
im
,
tt
,
em
,
no
)
async
{
final
response
=
await
http
.
post
(
Uri
.
parse
(
'
$cmd
/setting/saveSetting'
),
body:
jsonEncode
(
{
"image"
:
im
,
"title"
:
tt
,
// "tagline": tl,
"email"
:
em
,
"no"
:
no
,
}),
headers:
{
'Content-type'
:
'application/json; charset=UTF-8'
,
});
if
(
response
.
statusCode
==
200
)
{
return
true
;
}
else
{
return
false
;
}
}
Future
<
bool
>
updateSetting
(
id
,
image
,
name
,
title
,
email
,
no
,)
async
{
final
response
=
await
http
.
put
(
Uri
.
parse
(
'
$cmd
/setting/updateSetting'
),
body:
jsonEncode
({
"idsetting"
:
id
,
"image"
:
image
,
"name"
:
name
,
"title"
:
title
,
// "tagline": tagline,
"email"
:
email
,
"no"
:
no
,
"idrole"
:
"R001"
,
}),
headers:
{
'Content-type'
:
'application/json; charset=UTF-8'
,
});
if
(
response
.
statusCode
==
200
)
{
return
true
;
}
else
{
return
false
;
}
}
Future
<
List
<
dynamic
>>
getSetting
()
async
{
var
response
=
await
http
.
get
(
Uri
.
parse
(
'
$cmd
/setting/getAllSettingByIdRole'
));
return
jsonDecode
(
response
.
body
)[
'data'
];
}
Future
<
List
<
dynamic
>>
getSettingDesc
()
async
{
var
response
=
await
http
.
get
(
Uri
.
parse
(
'
$qry
/setting/getSettingByIdDesc'
));
return
jsonDecode
(
response
.
body
)[
'data'
];
}
lib/dashboard/admin/admin_setting.dart
0 → 100644
View file @
5c18e929
import
'dart:convert'
;
import
'package:file_picker/file_picker.dart'
;
import
'package:flutter/material.dart'
;
import
'package:http/http.dart'
as
http
;
import
'package:medapp_eksad/api/setting_api.dart'
;
class
SettingDashboard
extends
StatefulWidget
{
const
SettingDashboard
({
super
.
key
});
@override
State
<
SettingDashboard
>
createState
()
=>
_SettingDashboardState
();
}
class
_SettingDashboardState
extends
State
<
SettingDashboard
>
{
String
img
=
'assets/file/empty.jpg'
;
@override
Future
<
void
>
uploadFile
()
async
{
// TODO: implement upload File
FilePickerResult
?
result
;
print
(
'Picker file'
);
result
=
await
FilePicker
.
platform
.
pickFiles
(
allowMultiple:
true
,
withReadStream:
true
,
withData:
false
);
if
(
result
!=
null
)
{
print
(
result
.
files
.
first
.
name
);
//create
var
req
=
http
.
MultipartRequest
(
"POST"
,
Uri
.
parse
(
"http://10.107.72.92:8081/file"
));
var
response
=
http
.
get
(
Uri
.
parse
(
"http://10.107.72.92:8081/file"
));
List
<
PlatformFile
>?
files
=
result
.
files
;
if
(
files
!=
null
)
{
print
(
'Add file select with picker'
);
for
(
PlatformFile
file
in
files
)
{
//add select with req
req
.
files
.
add
(
http
.
MultipartFile
(
"file"
,
file
.
readStream
!,
file
.
size
,
filename:
file
.
name
));
setState
(()
{
img
=
"assets/file/"
+
file
.
name
;
});
}
}
// send request
var
resp
=
await
req
.
send
();
//read response
String
res
=
await
resp
.
stream
.
bytesToString
();
//your response
print
(
res
);
}
}
var
btnText
=
'Save Setting'
;
var
enb
=
true
;
final
formKey
=
GlobalKey
<
FormState
>();
String
id
=
''
;
String
im
=
''
;
String
tt
=
''
;
String
tl
=
''
;
String
em
=
''
;
String
no
=
''
;
final
String
role
=
'MCS'
;
@override
Widget
build
(
BuildContext
context
)
{
var
screenSize
=
MediaQuery
.
of
(
context
).
size
;
var
screenSize1
=
screenSize
.
width
*
0.6
;
return
Container
(
color:
const
Color
.
fromRGBO
(
238
,
224
,
224
,
1
),
height:
650
,
padding:
const
EdgeInsets
.
only
(
left:
80
),
width:
screenSize
.
width
,
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
SizedBox
(
height:
10
,),
const
Text
(
"General Setting"
,
textAlign:
TextAlign
.
start
,
style:
TextStyle
(
color:
Colors
.
black
,
fontSize:
37
,
fontWeight:
FontWeight
.
bold
),
),
SizedBox
(
height:
10
,),
Container
(
color:
Colors
.
white
,
height:
screenSize
.
height
*
0.75
,
width:
screenSize
.
width
*
0.7
,
padding:
const
EdgeInsets
.
only
(
left:
30
,
top:
15
,
right:
20
,
bottom:
15
),
child:
Form
(
key:
formKey
,
child:
Column
(
children:
[
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
children:
[
const
Text
(
"Site Profile"
,
style:
TextStyle
(
color:
Colors
.
black
,
fontSize:
20
,
fontWeight:
FontWeight
.
normal
)),
// SizedBox(
// height: 0,
// width: 820,
// ),
ElevatedButton
(
style:
ElevatedButton
.
styleFrom
(
shape:
RoundedRectangleBorder
(
borderRadius:
BorderRadius
.
circular
(
5
),
),
primary:
const
Color
.
fromARGB
(
255
,
0
,
67
,
192
),
),
onPressed:
()
{
switch
(
btnText
)
{
case
'Save Setting'
:
createSetting
(
im
.
toString
(),
tt
.
toString
(),
em
.
toString
(),
no
.
toString
());
setState
(()
{
btnText
=
'Update Setting'
;
enb
=
false
;
});
break
;
case
'Update Setting'
:
setState
(()
{
enb
=
true
;
btnText
=
'Save Update'
;
});
break
;
case
'Save Update'
:
break
;
default
:
}
},
child:
Text
(
btnText
,
style:
const
TextStyle
(
fontSize:
16
,
fontWeight:
FontWeight
.
bold
),
),
),
],
),
const
Divider
(
height:
20
,
thickness:
1
,
// indent: 20,
// endIndent: 0,
color:
Colors
.
grey
,
),
SizedBox
(
height:
25
,),
Row
(
children:
[
Container
(
height:
230
,
child:
Column
(
mainAxisAlignment:
MainAxisAlignment
.
start
,
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
const
SizedBox
(
width:
20
,
),
const
Text
(
"Site icon"
,
style:
TextStyle
(
color:
Colors
.
black
,
fontSize:
20
,
fontWeight:
FontWeight
.
bold
),
),
const
SizedBox
(
height:
20
,
),
Container
(
height:
50
,
width:
150
,
child:
Image
.
asset
(
'
$img
'
),
),
const
SizedBox
(
height:
20
,
),
Container
(
height:
30
,
width:
100
,
child:
ElevatedButton
(
onPressed:
uploadFile
,
// () async {
// final imagePicker = await ImagePickerPlugin()
// .pickImage(source: ImageSource.gallery,imageQuality: 20);
//
// if(imagePicker != null){
// final file = File(imagePicker.path);
// final result = await FileApi.upload(file);
//
// final String imgPath = result['filePath'];
//
// setState(() {
// img = imgPath;
// });
// }
// },
style:
ElevatedButton
.
styleFrom
(
shape:
RoundedRectangleBorder
(
borderRadius:
BorderRadius
.
circular
(
5
),
),
primary:
Colors
.
white
,
// shape: MaterialStateProperty.all(RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0))),
),
child:
const
Text
(
"Change"
,
style:
TextStyle
(
color:
Colors
.
black
),
))),
const
SizedBox
(
height:
10
,
),
Container
(
height:
30
,
width:
100
,
child:
ElevatedButton
(
onPressed:
()
{},
style:
ElevatedButton
.
styleFrom
(
shape:
RoundedRectangleBorder
(
borderRadius:
BorderRadius
.
circular
(
5
),
),
primary:
Colors
.
white
,
// shape: MaterialStateProperty.all(RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0))),
),
child:
const
Text
(
"Remove"
,
style:
TextStyle
(
color:
Colors
.
red
),
)))
],
),
),
SizedBox
(
width:
screenSize
.
width
*
0.05
,
),
Container
(
height:
230
,
child:
Column
(
mainAxisAlignment:
MainAxisAlignment
.
start
,
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
const
SizedBox
(
height:
20
,
),
const
Text
(
"Site title"
,
style:
TextStyle
(
color:
Colors
.
black
,
fontSize:
17
,
fontWeight:
FontWeight
.
bold
),
),
const
SizedBox
(
height:
10
,
),
Container
(
height:
40
,
width:
screenSize1
*
0.5
,
child:
TextFormField
(
decoration:
const
InputDecoration
(
labelText:
"Multi Cloud Solution"
,
hintStyle:
TextStyle
(),
border:
OutlineInputBorder
(
borderSide:
BorderSide
(
width:
1
,
color:
Colors
.
grey
))),
onChanged:
(
value
)
=>
tt
=
value
,
enabled:
enb
,
),
),
const
SizedBox
(
height:
20
,
),
// const Text(
// "Site tagline",
// style: TextStyle(
// color: Colors.black,
// fontSize: 17,
// fontWeight: FontWeight.bold),
// ),
const
SizedBox
(
height:
7
,
),
// Container(
// height: 40,
// width: screenSize1 * 0.5,
// child: TextFormField(
// decoration: const InputDecoration(
// labelText: "Cloud Partner with Eksad",
// hintStyle: TextStyle(),
// border: OutlineInputBorder(
// borderSide: BorderSide(
// width: 1, color: Colors.grey))),
// onChanged: (value) => tl = value,
// enabled: enb,
// ),
// ),
const
SizedBox
(
height:
10
,
),
const
Text
(
"In a few words, explain what this site is about."
,
overflow:
TextOverflow
.
ellipsis
,
style:
TextStyle
(
color:
Colors
.
grey
,
fontSize:
16
,
fontWeight:
FontWeight
.
normal
)),
],
),
),
],
),
Row
(
children:
[
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
mainAxisAlignment:
MainAxisAlignment
.
start
,
children:
[
const
Text
(
"Email address"
,
style:
TextStyle
(
color:
Colors
.
black
,
fontSize:
17
,
fontWeight:
FontWeight
.
bold
),
),
const
SizedBox
(
height:
10
,
),
Container
(
height:
40
,
width:
screenSize1
*
0.5
,
child:
TextFormField
(
decoration:
InputDecoration
(
fillColor:
Colors
.
grey
[
200
],
labelText:
"xxxxxx@eksad.com"
,
hintStyle:
const
TextStyle
(),
border:
const
OutlineInputBorder
(
borderSide:
BorderSide
(
width:
1
,
color:
Colors
.
grey
))),
onChanged:
(
value
)
=>
em
=
value
,
enabled:
enb
,
),
),
const
SizedBox
(
height:
10
,
),
],
),
SizedBox
(
width:
30
,),
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
mainAxisAlignment:
MainAxisAlignment
.
start
,
children:
[
const
Text
(
"No Office"
,
style:
TextStyle
(
color:
Colors
.
black
,
fontSize:
17
,
fontWeight:
FontWeight
.
bold
),
),
const
SizedBox
(
height:
10
,
),
Container
(
height:
40
,
width:
screenSize1
*
0.5
,
child:
TextFormField
(
decoration:
const
InputDecoration
(
labelText:
"02x-xxxx-xxxx"
,
hintStyle:
TextStyle
(),
border:
OutlineInputBorder
(
borderSide:
BorderSide
(
width:
1
,
color:
Colors
.
grey
))),
onChanged:
(
value
)
=>
no
=
value
,
enabled:
enb
,
),
),
const
SizedBox
(
height:
10
,
),
],
)
// const SizedBox(
// width: 30,
// ),
],
),
// const Spacer(
// flex: 20,
// ),
],
),
),
),
],
),
);
}
}
lib/dashboard/admin/main_dashboard_admin.dart
View file @
5c18e929
...
...
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import
'package:easy_sidemenu/easy_sidemenu.dart'
;
import
'package:medapp_eksad/dashboard/admin/admin_contact.dart'
;
import
'package:medapp_eksad/dashboard/admin/admin_dashboard.dart'
;
import
'package:medapp_eksad/dashboard/admin/admin_setting.dart'
;
import
'package:medapp_eksad/dashboard/admin/admin_sosmed.dart'
;
import
'package:medapp_eksad/dashboard/admin/admin_userControl.dart'
;
import
'package:medapp_eksad/dashboard/admin/admin_whatsapp.dart'
;
...
...
@@ -123,7 +124,7 @@ class _DashboardAdminState extends State<DashboardAdmin> {
),
SideMenuItem
(
priority:
1
,
title:
'
Files
'
,
title:
'
Setting
'
,
onTap:
()
{
page
.
jumpToPage
(
1
);
},
...
...
@@ -159,15 +160,7 @@ class _DashboardAdminState extends State<DashboardAdmin> {
controller:
page
,
children:
[
const
Dashboard1
(),
Container
(
color:
Colors
.
white
,
child:
const
Center
(
child:
Text
(
'Files'
,
style:
TextStyle
(
fontSize:
35
),
),
),
),
SettingDashboard
(),
SosmedDashboard
(),
//Dashboard3(),
Dashboard4
(),
...
...
lib/screen/footer.dart
View file @
5c18e929
...
...
@@ -3,6 +3,8 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import
'package:google_fonts/google_fonts.dart'
;
import
'package:url_launcher/url_launcher.dart'
;
import
'../api/setting_api.dart'
;
class
Footer
extends
StatelessWidget
{
const
Footer
({
Key
?
key
})
:
super
(
key:
key
);
...
...
@@ -11,7 +13,7 @@ class Footer extends StatelessWidget {
var
screenSize
=
MediaQuery
.
of
(
context
).
size
;
return
Container
(
width:
screenSize
.
width
,
height:
screenSize
.
height
*
0.
78
,
height:
screenSize
.
height
*
0.
80
,
color:
Colors
.
white
,
child:
Column
(
mainAxisAlignment:
MainAxisAlignment
.
start
,
...
...
@@ -25,7 +27,7 @@ class Footer extends StatelessWidget {
),
Container
(
width:
screenSize
.
width
,
height:
screenSize
.
height
*
0.5
5
,
height:
screenSize
.
height
*
0.5
0
,
child:
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceEvenly
,
crossAxisAlignment:
CrossAxisAlignment
.
start
,
...
...
@@ -212,10 +214,12 @@ class Footer extends StatelessWidget {
letterSpacing:
1.5
),
),
),
SizedBox
(
height:
10
,),
SizedBox
(
height:
10
,
),
Container
(
height:
screenSize
.
height
*
0.04
,
child:
itemBawah
(
child:
itemBawah
(
item:
'Catalog'
,
routeName:
'/solutions'
,
),
...
...
@@ -248,7 +252,7 @@ class Footer extends StatelessWidget {
)),
Container
(
width:
screenSize
.
width
*
0.25
,
height:
screenSize
.
height
*
0.
5
5
,
height:
screenSize
.
height
*
0.
7
5
,
//color: Colors.blue,
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
...
...
@@ -266,30 +270,8 @@ class Footer extends StatelessWidget {
),
),
const
SizedBox
(
height:
8
),
Container
(
width:
screenSize
.
width
*
0.2
,
child:
ListTile
(
leading:
const
Icon
(
Icons
.
phone
,
size:
22
,
),
title:
TextButton
(
onPressed:
()
{
launch
(
'tel:02157958040'
);
},
child:
Container
(
height:
screenSize
.
height
*
0.04
,
child:
Text
(
'(021) 5795 - 8040'
,
style:
GoogleFonts
.
poppins
(
fontSize:
16
,
color:
Colors
.
black87
,
),
),
),
),
),
),
TelphoneApi
(),
Container
(
width:
screenSize
.
width
*
0.2
,
child:
ListTile
(
...
...
@@ -383,3 +365,56 @@ class itemBawah extends StatelessWidget {
));
}
}
class
TelphoneApi
extends
StatefulWidget
{
const
TelphoneApi
({
Key
?
key
})
:
super
(
key:
key
);
@override
State
<
TelphoneApi
>
createState
()
=>
_TelphoneApiState
();
}
class
_TelphoneApiState
extends
State
<
TelphoneApi
>
{
String
no
=
''
;
@override
Widget
build
(
BuildContext
context
)
{
var
screenSize
=
MediaQuery
.
of
(
context
).
size
;
return
FutureBuilder
<
List
<
dynamic
>>(
future:
getSettingDesc
(),
builder:
(
BuildContext
context
,
AsyncSnapshot
snapshot
)
{
var
pgm
=
snapshot
.
data
[
0
];
if
(
snapshot
.
hasError
||
snapshot
.
data
==
null
||
snapshot
.
connectionState
==
ConnectionState
.
waiting
)
{
return
const
CircularProgressIndicator
();
}
return
Container
(
width:
screenSize
.
width
*
0.01
,
child:
ListTile
(
leading:
const
Icon
(
Icons
.
phone
,
size:
23
,
color:
Colors
.
black
,
),
title:
TextButton
(
onPressed:
()
{
no
=
pgm
[
'no'
];
//02157958040
launch
(
'tel:
$no
'
);
},
child:
Text
(
pgm
[
'no'
],
style:
GoogleFonts
.
poppins
(
fontSize:
16
,
color:
Colors
.
black87
,
letterSpacing:
1.5
),
)),
),
);
},
);
}
}
pubspec.lock
View file @
5c18e929
...
...
@@ -7,7 +7,7 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.
9.0
"
version: "2.
8.2
"
badges:
dependency: transitive
description:
...
...
@@ -42,14 +42,21 @@ packages:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.1"
version: "1.2.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.1"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.
1
"
version: "1.1.
0
"
collection:
dependency: transitive
description:
...
...
@@ -57,6 +64,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.16.0"
cross_file:
dependency: transitive
description:
name: cross_file
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.3+2"
crypto:
dependency: transitive
description:
...
...
@@ -98,7 +112,7 @@ packages:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.
1
"
version: "1.3.
0
"
ffi:
dependency: transitive
description:
...
...
@@ -113,6 +127,55 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "6.1.4"
file_picker:
dependency: "direct main"
description:
name: file_picker
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.1"
firebase_auth:
dependency: "direct main"
description:
name: firebase_auth
url: "https://pub.dartlang.org"
source: hosted
version: "3.9.0"
firebase_auth_platform_interface:
dependency: transitive
description:
name: firebase_auth_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "6.8.0"
firebase_auth_web:
dependency: transitive
description:
name: firebase_auth_web
url: "https://pub.dartlang.org"
source: hosted
version: "4.4.1"
firebase_core:
dependency: "direct main"
description:
name: firebase_core
url: "https://pub.dartlang.org"
source: hosted
version: "1.22.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "4.5.1"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.2"
flutter:
dependency: "direct main"
description: flutter
...
...
@@ -125,6 +188,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.7"
flutter_test:
dependency: "direct dev"
description: flutter
...
...
@@ -177,6 +247,41 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "4.0.1"
image_picker:
dependency: "direct main"
description:
name: image_picker
url: "https://pub.dartlang.org"
source: hosted
version: "0.8.5+3"
image_picker_android:
dependency: transitive
description:
name: image_picker_android
url: "https://pub.dartlang.org"
source: hosted
version: "0.8.5+3"
image_picker_for_web:
dependency: transitive
description:
name: image_picker_for_web
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.8"
image_picker_ios:
dependency: transitive
description:
name: image_picker_ios
url: "https://pub.dartlang.org"
source: hosted
version: "0.8.6+1"
image_picker_platform_interface:
dependency: transitive
description:
name: image_picker_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.6.1"
intl:
dependency: "direct main"
description:
...
...
@@ -204,28 +309,35 @@ packages:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.1
2
"
version: "0.12.1
1
"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.
5
"
version: "0.1.
4
"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0"
version: "1.7.0"
nested:
dependency: transitive
description:
name: nested
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.
2
"
version: "1.8.
1
"
path_provider:
dependency: transitive
description:
...
...
@@ -303,6 +415,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "4.2.4"
provider:
dependency: "direct main"
description:
name: provider
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.3"
scaled_list:
dependency: "direct main"
description:
...
...
@@ -335,7 +454,7 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.
9.0
"
version: "1.
8.2
"
spring:
dependency: "direct main"
description:
...
...
@@ -363,7 +482,7 @@ packages:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.
1
"
version: "1.1.
0
"
supercharged:
dependency: transitive
description:
...
...
@@ -384,14 +503,14 @@ packages:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.
1
"
version: "1.2.
0
"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.
12
"
version: "0.4.
9
"
typed_data:
dependency: transitive
description:
...
...
pubspec.yaml
View file @
5c18e929
...
...
@@ -38,6 +38,8 @@ dependencies:
easy_sidemenu
:
^0.3.1
form_validator
:
^1.0.0
form_field_validator
:
^1.0.1
image_picker
:
^0.8.5+3
file_picker
:
^5.0.1
flutter_web_plugins
:
sdk
:
flutter
...
...
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