Commit dce038c8 by Mobile : Ball (Apprentice)

Merge branch 'develop' of https://gitlab.2fellows.com/art/feelver into develop

parents 0f472a20 973e0d79
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;
}
}
...@@ -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;
......
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),
),
),
),
),
);
}
}
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();
}
}
}
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(
......
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