Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
feelver
Overview
Overview
Details
Activity
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
2F-ART
feelver
Commits
dce038c8
Commit
dce038c8
authored
Jul 20, 2020
by
Mobile : Ball (Apprentice)
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of
https://gitlab.2fellows.com/art/feelver
into develop
parents
0f472a20
973e0d79
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
422 additions
and
8 deletions
+422
-8
lib/model/forgetpassword/forgetpassModel.dart
+15
-0
lib/service/api.dart
+29
-0
lib/ui/ForgetPassword/forgetpassword.dart
+194
-0
lib/ui/ForgetPassword/forgetpassword_presenter.dart
+160
-0
lib/ui/login/login.dart
+24
-8
No files found.
lib/model/forgetpassword/forgetpassModel.dart
0 → 100644
View file @
dce038c8
class
FogetPasswordModel
{
String
message
;
FogetPasswordModel
({
this
.
message
});
FogetPasswordModel
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
message
=
json
[
'message'
];
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'message'
]
=
this
.
message
;
return
data
;
}
}
lib/service/api.dart
View file @
dce038c8
...
@@ -2,7 +2,11 @@ import 'dart:convert';
...
@@ -2,7 +2,11 @@ import 'dart:convert';
import
'package:feelverapp/model/Login/login_model.dart'
;
import
'package:feelverapp/model/Login/login_model.dart'
;
import
'package:feelverapp/model/base/base.dart'
;
import
'package:feelverapp/model/base/base.dart'
;
import
'package:feelverapp/model/forgetpassword/forgetpassModel.dart'
;
import
'package:feelverapp/model/home/home_model.dart'
;
import
'package:feelverapp/model/home/home_model.dart'
;
import
'package:feelverapp/model/register/register_model.dart'
;
import
'package:feelverapp/model/register/register_model.dart'
;
import
'package:feelverapp/model/category/category_model.dart'
;
import
'package:feelverapp/model/category/category_model.dart'
;
import
'package:http/http.dart'
as
http
;
import
'package:http/http.dart'
as
http
;
...
@@ -15,6 +19,31 @@ class Api<T> {
...
@@ -15,6 +19,31 @@ class Api<T> {
"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvYmFja2VuZC11YXQuZmVlbHZlci5jb21cL2FwaVwvbG9naW4iLCJpYXQiOjE1OTQ5NzIzMjYsImV4cCI6MTYwMjE3MjMyNiwibmJmIjoxNTk0OTcyMzI2LCJqdGkiOiJsM1BldUJVcTdDNldSbzVGIiwic3ViIjo1LCJwcnYiOiI4N2UwYWYxZWY5ZmQxNTgxMmZkZWM5NzE1M2ExNGUwYjA0NzU0NmFhIn0.fwFqcbzG2T_ZHtIcGF13Ek7nIxxwbnaE9ZXGomo-nzY"
,
"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvYmFja2VuZC11YXQuZmVlbHZlci5jb21cL2FwaVwvbG9naW4iLCJpYXQiOjE1OTQ5NzIzMjYsImV4cCI6MTYwMjE3MjMyNiwibmJmIjoxNTk0OTcyMzI2LCJqdGkiOiJsM1BldUJVcTdDNldSbzVGIiwic3ViIjo1LCJwcnYiOiI4N2UwYWYxZWY5ZmQxNTgxMmZkZWM5NzE1M2ExNGUwYjA0NzU0NmFhIn0.fwFqcbzG2T_ZHtIcGF13Ek7nIxxwbnaE9ZXGomo-nzY"
,
};
};
Future
<
Response
<
T
>>
forgetPassword
(
Object
body
)
async
{
var
_model
;
var
_fail
;
var
result
;
// (body as Map)['lang'] = allTranslations.currentLanguage;
await
_httpConnection
(
"
${this._baseApi}
/customer/forget-password"
,
this
.
_headerApi
,
body
)
.
then
((
response
)
{
print
(
"ผลลัพ เท่ากับบบบ "
+
"
${response.body}
"
);
if
(
response
.
statusCode
==
200
)
{
_model
=
FogetPasswordModel
.
fromJson
(
json
.
decode
(
response
.
body
));
}
else
{
_fail
=
FailModel
.
fromJson
(
json
.
decode
(
response
.
body
));
}
result
=
new
Response
<
T
>(
_model
,
_fail
);
});
return
result
;
}
Future
<
Response
<
T
>>
login
(
Object
body
)
async
{
Future
<
Response
<
T
>>
login
(
Object
body
)
async
{
var
_model
;
var
_model
;
var
_fail
;
var
_fail
;
...
...
lib/ui/ForgetPassword/forgetpassword.dart
0 → 100644
View file @
dce038c8
import
'package:feelverapp/ui/ForgetPassword/forgetpassword_presenter.dart'
;
import
'package:feelverapp/ui/home/home.dart'
;
import
'package:feelverapp/ui/login/login_presenter.dart'
;
import
'package:feelverapp/ui/register/register_email.dart'
;
//import 'package:feelverapp/ui/login/login_presenter.dart';
import
'package:feelverapp/util/SizeConfig.dart'
;
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/material.dart'
;
class
ForgetPassword
extends
StatefulWidget
{
@override
_ForgetPasswordState
createState
()
=>
_ForgetPasswordState
();
}
class
_ForgetPasswordState
extends
State
<
ForgetPassword
>
with
TickerProviderStateMixin
{
TabController
_tabController
;
ForgetPasswordPresenter
presenter
;
@override
void
initState
()
{
// TODO: implement initState
super
.
initState
();
presenter
=
ForgetPasswordPresenter
(
this
);
// presenter.letSignIn();
// _tabController = TabController(length: 2, vsync: this);
// _tabController.addListener(_handleTabSelection);
// registerBloc = RegisterBloc(this);
// loginBloc = LoginBloc(this);
}
void
_handleTabSelection
()
{
setState
(()
{});
}
@override
void
dispose
()
{
super
.
dispose
();
_tabController
.
dispose
();
}
@override
Widget
build
(
BuildContext
context
)
{
SizeConfig
(
context
);
return
Scaffold
(
appBar:
AppBar
(
title:
Text
(
'ลืมรหัสผ่าน'
),
backgroundColor:
Color
.
fromRGBO
(
54
,
148
,
163
,
1
),
),
body:
_setupView
(),
);
}
_setupView
()
{
return
Container
(
child:
SingleChildScrollView
(
child:
Column
(
children:
<
Widget
>[
Container
(
padding:
EdgeInsets
.
only
(
left:
SizeConfig
.
getPadding
(
60
),
right:
SizeConfig
.
getPadding
(
40
),
top:
SizeConfig
.
getPadding
(
60
)),
child:
Image
.
asset
(
'assets/images/logo.png'
,
width:
SizeConfig
.
getWidth
(
MediaQuery
.
of
(
context
).
size
.
width
),
fit:
BoxFit
.
fitWidth
,
),
),
SizedBox
(
height:
SizeConfig
.
getWidth
(
50
),
),
_formLogin
(),
// _phoneLogin(),
],
),),
);
}
Widget
_formLogin
()
{
return
SingleChildScrollView
(
child:
Form
(
child:
Column
(
children:
<
Widget
>[
Padding
(
padding:
EdgeInsets
.
symmetric
(
vertical:
SizeConfig
.
getPadding
(
8.0
),
horizontal:
SizeConfig
.
getPadding
(
24
),
),
child:
Card
(
shape:
RoundedRectangleBorder
(
borderRadius:
BorderRadius
.
circular
(
SizeConfig
.
getPadding
(
50.0
),
),
),
child:
TextFormField
(
controller:
presenter
.
emailCtrl
,
// validator: loginBloc.validateField,
decoration:
InputDecoration
(
hintText:
"อีเมล์"
,
contentPadding:
EdgeInsets
.
symmetric
(
vertical:
SizeConfig
.
getPadding
(
20
),
horizontal:
SizeConfig
.
getPadding
(
16
),
),
// hintText:
// allTranslations.text(key2: 'email', key: 'login') +
// ' / ' +
// allTranslations.text(
// key2: 'tel_number', key: 'register'),
border:
OutlineInputBorder
(
borderSide:
BorderSide
.
none
),
),
),
),
),
Container
(
alignment:
Alignment
.
topRight
,
padding:
EdgeInsets
.
only
(
right:
SizeConfig
.
getPadding
(
30
)),
child:
Text
(
'โปรดระบุอีเมล์ของท่านเพื่อดำเนินการเปลี่ยนรหัสผ่าน'
,
style:
TextStyle
(
color:
Colors
.
black38
,
fontSize:
SizeConfig
.
getFontSize
(
10
),
fontFamily:
"SF_Pro_Text"
,
fontWeight:
FontWeight
.
w600
),
),
),
SizedBox
(
height:
SizeConfig
.
getWidth
(
130
),
),
_submitLoginButton
(),
SizedBox
(
height:
SizeConfig
.
getWidth
(
20
),
),
],
),
),
);
}
_submitLoginButton
()
{
return
Padding
(
padding:
EdgeInsets
.
symmetric
(
vertical:
SizeConfig
.
getPadding
(
20.0
),
horizontal:
SizeConfig
.
getPadding
(
32
)),
child:
Container
(
height:
SizeConfig
.
getHeight
(
55
),
child:
CupertinoButton
(
color:
Color
.
fromRGBO
(
106
,
179
,
170
,
1
),
padding:
EdgeInsets
.
all
(
0
),
borderRadius:
BorderRadius
.
all
(
Radius
.
circular
(
50
),
),
onPressed:
()
{
// if (_tabController.index==0){
presenter
.
letCheckData
();
// else{
// presenter.letCheckData_phone();
// }
// Navigator.push(
// context,
// MaterialPageRoute(builder: (context) => HomePage()),
// );
// if (loginBloc.formKey.currentState.validate()) {
// loginBloc.getLogin();
// }
},
child:
Center
(
child:
Text
(
'ยืนยัน'
,
style:
TextStyle
(
color:
Colors
.
white
),
),
),
),
),
);
}
}
lib/ui/ForgetPassword/forgetpassword_presenter.dart
0 → 100644
View file @
dce038c8
import
'dart:async'
;
import
'dart:developer'
;
import
'package:feelverapp/model/Login/login_model.dart'
;
import
'package:feelverapp/model/forgetpassword/forgetpassModel.dart'
;
import
'package:feelverapp/service/Loading.dart'
;
import
'package:feelverapp/service/api.dart'
;
import
'package:feelverapp/service/base_presenter.dart'
;
import
'package:feelverapp/ui/ForgetPassword/forgetpassword.dart'
;
import
'package:feelverapp/ui/home/home.dart'
;
import
'package:feelverapp/ui/login/login.dart'
;
import
'package:feelverapp/util/Accout_util.dart'
;
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/material.dart'
;
import
'package:rflutter_alert/rflutter_alert.dart'
;
class
ForgetPasswordPresenter
extends
BasePresenter
<
ForgetPassword
>
{
Api
_api
;
Timer
_timer
;
final
formKey
=
GlobalKey
<
FormState
>();
TextEditingController
emailCtrl
=
TextEditingController
();
ForgetPasswordPresenter
(
State
<
ForgetPassword
>
state
)
:
super
(
state
);
letCheckData
()
async
{
try
{
if
(
emailCtrl
.
text
.
isEmpty
)
throw
(
'กรุณากรอก
\n
อีเมล์'
);
Pattern
pattern
=
r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+"
;
RegExp
regex
=
new
RegExp
(
pattern
);
if
(!
regex
.
hasMatch
(
emailCtrl
.
text
))
throw
(
'รูปแบบอีเมล์
\n
ไม่ถูกต้อง'
);
else
{
await
forgetpassrequest
();
}
}
catch
(
e
)
{
Alert
(
style:
AlertStyle
(
animationType:
AnimationType
.
fromTop
,
isCloseButton:
false
,
),
context:
state
.
context
,
title:
'
$e
'
,
content:
Icon
(
Icons
.
warning
,
color:
Colors
.
orange
,
size:
80
,),
buttons:
[
DialogButton
(
color:
Color
.
fromRGBO
(
106
,
179
,
170
,
1
),
onPressed:
()
=>
Navigator
.
pop
(
state
.
context
),
child:
Text
(
"ตกลง"
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
20
),
),
)
]).
show
();
}
}
forgetpassrequest
()
async
{
LoadingView
(
state
.
context
).
show
();
_api
=
Api
<
FogetPasswordModel
>();
var
res
=
await
_api
.
forgetPassword
({
"access_type"
:
"mobile"
,
"email"
:
emailCtrl
.
text
,
});
LoadingView
(
state
.
context
).
hide
();
if
(
res
.
fail
==
null
)
{
Alert
(
style:
AlertStyle
(
animationType:
AnimationType
.
fromTop
,
isCloseButton:
false
,
),
context:
state
.
context
,
title:
"สำเร็จ
\n
กรุณาตรวจสอบอีเมล์ของท่าน"
,
content:
Icon
(
Icons
.
check_circle
,
color:
Color
.
fromRGBO
(
106
,
179
,
170
,
1
),
size:
80
,),
buttons:
[
DialogButton
(
color:
Color
.
fromRGBO
(
106
,
179
,
170
,
1
),
onPressed:
()
=>
Navigator
.
pushReplacement
(
state
.
context
,
CupertinoPageRoute
(
builder:
(
_
)
=>
LoginPage
())),
child:
Text
(
"ตกลง"
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
20
),
),
)
]).
show
();
FogetPasswordModel
model
=
res
.
success
;
}
else
{
Alert
(
style:
AlertStyle
(
animationType:
AnimationType
.
fromTop
,
isCloseButton:
false
,
),
context:
state
.
context
,
title:
"อีเมล์
\n
ไม่ถูกต้อง"
,
content:
Icon
(
Icons
.
warning
,
color:
Colors
.
orange
,
size:
80
,),
buttons:
[
DialogButton
(
color:
Color
.
fromRGBO
(
106
,
179
,
170
,
1
),
onPressed:
()
=>
Navigator
.
pop
(
state
.
context
),
child:
Text
(
"ลองอีกครั้ง"
,
style:
TextStyle
(
color:
Colors
.
white
,
fontSize:
20
),
),
)
]).
show
();
}
}
}
lib/ui/login/login.dart
View file @
dce038c8
import
'package:feelverapp/ui/ForgetPassword/forgetpassword.dart'
;
import
'package:feelverapp/ui/home/home.dart'
;
import
'package:feelverapp/ui/home/home.dart'
;
import
'package:feelverapp/ui/login/login_presenter.dart'
;
import
'package:feelverapp/ui/login/login_presenter.dart'
;
import
'package:feelverapp/ui/register/register_email.dart'
;
import
'package:feelverapp/ui/register/register_email.dart'
;
...
@@ -213,18 +214,33 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
...
@@ -213,18 +214,33 @@ class _LoginPageState extends State<LoginPage> with TickerProviderStateMixin {
SizedBox
(
SizedBox
(
height:
SizeConfig
.
getWidth
(
24
),
height:
SizeConfig
.
getWidth
(
24
),
),
),
Container
(
alignment:
Alignment
.
topRight
,
Container
(
padding:
EdgeInsets
.
only
(
right:
SizeConfig
.
getPadding
(
30
)),
padding:
EdgeInsets
.
only
(
right:
SizeConfig
.
getPadding
(
30
)),
child:
Text
(
alignment:
Alignment
.
centerRight
,
'ลืมรหัสผ่าน'
,
child:
GestureDetector
(
style:
TextStyle
(
onTap:
()
{
color:
Color
.
fromRGBO
(
106
,
179
,
170
,
1
),
fontSize:
SizeConfig
.
getFontSize
(
13
),
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
ForgetPassword
()),
);
},
child:
Text
(
'ลืมรหัสผ่าน'
,
style:
TextStyle
(
color:
Color
.
fromRGBO
(
106
,
179
,
170
,
1
),
fontSize:
SizeConfig
.
getFontSize
(
12
),
fontFamily:
"SF_Pro_Text"
,
fontFamily:
"SF_Pro_Text"
,
fontWeight:
FontWeight
.
w600
),
fontWeight:
FontWeight
.
w600
,
decoration:
TextDecoration
.
underline
,
),
textAlign:
TextAlign
.
right
,
),
),
),
),
),
_submitLoginButton
(),
_submitLoginButton
(),
_policyText
(),
_policyText
(),
SizedBox
(
SizedBox
(
...
...
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