merge material 3

This commit is contained in:
tzw
2024-01-25 17:40:35 +06:30
parent 18053cbe3c
commit 991ecd7ae6
70 changed files with 572 additions and 1377 deletions

View File

@@ -25,7 +25,7 @@ import 'package:fcs/pages/main/splash_page.dart';
import 'package:fcs/pages/staff/model/staff_model.dart'; import 'package:fcs/pages/staff/model/staff_model.dart';
import 'package:fcs/pages/term/model/term_model.dart'; import 'package:fcs/pages/term/model/term_model.dart';
import 'package:fcs/pages/main/welcome_page.dart'; import 'package:fcs/pages/main/welcome_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -136,9 +136,17 @@ class _AppState extends State<App> {
], ],
child: Consumer<LanguageModel>( child: Consumer<LanguageModel>(
builder: (context, value, child) { builder: (context, value, child) {
return CupertinoApp( return MaterialApp(
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
theme: CupertinoThemeData(), theme: ThemeData(
// useMaterial3: false,
dividerTheme: DividerThemeData(color: Colors.grey.shade200),
colorScheme: ColorScheme.light(primary: Colors.white),
dialogTheme: DialogTheme(
backgroundColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10))),
),
title: widget.title, title: widget.title,
routes: route(context), routes: route(context),
localizationsDelegates: [ localizationsDelegates: [

View File

@@ -1,6 +1,4 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:ui';
import 'package:flutter/cupertino.dart';
const primaryColor = const Color(0xff272262); const primaryColor = const Color(0xff272262);
const secondaryColor = const Color(0xffff4400); const secondaryColor = const Color(0xffff4400);
@@ -9,6 +7,7 @@ const nextColor = const Color(0xFFfa833d);
const buttonColor = const Color(0xFFFFFFFF); const buttonColor = const Color(0xFFFFFFFF);
const buttonBkColor = const Color(0xFF268944); const buttonBkColor = const Color(0xFF268944);
const labelColor = const Color(0xFF757575); const labelColor = const Color(0xFF757575);
var dividerColor = Colors.grey.shade400;
const TextStyle labelStyle = const TextStyle labelStyle =
TextStyle(fontSize: 20, color: labelColor, fontWeight: FontWeight.w500); TextStyle(fontSize: 20, color: labelColor, fontWeight: FontWeight.w500);

View File

@@ -2,6 +2,7 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/main/model/main_model.dart'; import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/fcs_id_icon.dart'; import 'package:fcs/pages/widgets/fcs_id_icon.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -63,24 +64,11 @@ class _BuyingOnlinePagetate extends State<BuyingOnlinePage>
); );
return Scaffold( return Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "buy_online.title",
leading: new IconButton(
icon: new Icon(
CupertinoIcons.back,
color: primaryColor,
),
onPressed: () => Navigator.of(context).pop(),
),
title: LocalText(
context,
"buy_online.title",
fontSize: 20,
color: primaryColor,
),
backgroundColor: Colors.white, backgroundColor: Colors.white,
shadowColor: Colors.transparent, arrowColor: primaryColor,
), labelColor: primaryColor),
body: ListView( body: ListView(
shrinkWrap: true, shrinkWrap: true,
padding: EdgeInsets.only(top: 10, left: 10, right: 10), padding: EdgeInsets.only(top: 10, left: 10, right: 10),
@@ -92,11 +80,12 @@ class _BuyingOnlinePagetate extends State<BuyingOnlinePage>
instructionBox, instructionBox,
new Container( new Container(
decoration: new BoxDecoration(color: Colors.white), decoration: new BoxDecoration(color: Colors.white),
child: new TabBar( child: new TabBar.secondary(
// indicatorColor: primaryColor, labelPadding: EdgeInsets.all(7),
dividerColor: Colors.grey.shade200,
indicatorColor: primaryColor,
labelColor: primaryColor, labelColor: primaryColor,
labelStyle: TextStyle(fontWeight: FontWeight.bold), labelStyle: TextStyle(fontWeight: FontWeight.bold),
unselectedLabelColor: Colors.grey,
controller: _tabController, controller: _tabController,
tabs: [ tabs: [
LocalText(context, "buy_online.fullname", color: primaryColor), LocalText(context, "buy_online.fullname", color: primaryColor),

View File

@@ -24,6 +24,8 @@ class _CargoTableState extends State<CargoTable> {
headingRowHeight: 40, headingRowHeight: 40,
columnSpacing: 50, columnSpacing: 50,
showCheckboxColumn: false, showCheckboxColumn: false,
decoration: BoxDecoration(border: Border.all(color: Colors.white)),
border: TableBorder(horizontalInside: BorderSide(color: Colors.white)),
columns: [ columns: [
DataColumn( DataColumn(
label: LocalText( label: LocalText(

View File

@@ -39,14 +39,14 @@ class _CargoTableState extends State<CargoTable> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
print("Cargotypes:${cargoTypes!.length}");
return SingleChildScrollView( return SingleChildScrollView(
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
child: DataTable( child: DataTable(
showCheckboxColumn: false, showCheckboxColumn: false,
headingRowHeight: 40, headingRowHeight: 40,
columnSpacing: 40, columnSpacing: 40,
decoration: BoxDecoration(border: Border.all(color: Colors.white)),
border: TableBorder(horizontalInside: BorderSide(color: Colors.white)),
columns: [ columns: [
DataColumn( DataColumn(
label: LocalText( label: LocalText(

View File

@@ -20,6 +20,7 @@ import 'package:fcs/pages/widgets/delivery_address_selection.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/fcs_id_icon.dart'; import 'package:fcs/pages/widgets/fcs_id_icon.dart';
import 'package:fcs/pages/widgets/length_picker.dart'; import 'package:fcs/pages/widgets/length_picker.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_button.dart'; import 'package:fcs/pages/widgets/local_button.dart';
import 'package:fcs/pages/widgets/local_dropdown.dart'; import 'package:fcs/pages/widgets/local_dropdown.dart';
import 'package:fcs/pages/widgets/local_radio_buttons.dart'; import 'package:fcs/pages/widgets/local_radio_buttons.dart';
@@ -531,21 +532,11 @@ class _CartonEditorState extends State<CartonEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: _isNew ? "box.info.title" : "box.edit.title",
leading: new IconButton(
icon:
new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () => Navigator.of(context).pop()),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( arrowColor: primaryColor,
context, labelColor: primaryColor),
_isNew ? "box.info.title" : "box.edit.title",
fontSize: 20,
color: primaryColor,
),
),
body: Padding( body: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: ListView( child: ListView(

View File

@@ -11,6 +11,7 @@ import 'package:fcs/pages/widgets/defalut_delivery_address.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/fcs_id_icon.dart'; import 'package:fcs/pages/widgets/fcs_id_icon.dart';
import 'package:fcs/pages/widgets/length_picker.dart'; import 'package:fcs/pages/widgets/length_picker.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_radio_buttons.dart'; import 'package:fcs/pages/widgets/local_radio_buttons.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/local_title.dart'; import 'package:fcs/pages/widgets/local_title.dart';
@@ -311,20 +312,11 @@ class _CartonInfoState extends State<CartonInfo> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "box.info.title",
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () => Navigator.of(context).pop(),
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( labelColor: primaryColor,
context, arrowColor: primaryColor,
"box.info.title",
fontSize: 20,
color: primaryColor,
),
actions: isEdiable actions: isEdiable
? <Widget>[ ? <Widget>[
IconButton( IconButton(

View File

@@ -1,5 +1,6 @@
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/carton/model/carton_model.dart'; import 'package:fcs/pages/carton/model/carton_model.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_popup_menu_button.dart'; import 'package:fcs/pages/widgets/local_popup_menu_button.dart';
import 'package:fcs/pages/widgets/local_popupmenu.dart'; import 'package:fcs/pages/widgets/local_popupmenu.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
@@ -60,20 +61,8 @@ class _CartonListState extends State<CartonList> {
}); });
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: DefaultTabController(
length: 2,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(labelKey: "boxes.name", actions: [popupMenu]),
centerTitle: true,
leading: new IconButton(
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
title: LocalText(context, "boxes.name",
color: Colors.white, fontSize: 20),
actions: <Widget>[popupMenu],
),
floatingActionButton: FloatingActionButton.extended( floatingActionButton: FloatingActionButton.extended(
onPressed: () { onPressed: () {
_newBox(); _newBox();
@@ -87,7 +76,6 @@ class _CartonListState extends State<CartonList> {
rowBuilder: (p) => CartonListRow(box: p), rowBuilder: (p) => CartonListRow(box: p),
color: primaryColor), color: primaryColor),
), ),
),
); );
} }

View File

@@ -29,7 +29,7 @@ class CartonListRow extends StatelessWidget {
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
child: new Padding( child: new Padding(
padding: const EdgeInsets.symmetric(vertical: 16.0), padding: const EdgeInsets.symmetric(vertical: 13.0),
child: new Row( child: new Row(
children: <Widget>[ children: <Widget>[
Container( Container(

View File

@@ -2,7 +2,6 @@ import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/local_title.dart'; import 'package:fcs/pages/widgets/local_title.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
typedef OnSelect = Function(Package package, bool checked); typedef OnSelect = Function(Package package, bool checked);

View File

@@ -31,12 +31,8 @@ class CartonRow extends StatelessWidget {
children: <Widget>[ children: <Widget>[
Container( Container(
padding: EdgeInsets.only(left: 5, right: 10), padding: EdgeInsets.only(left: 5, right: 10),
child: Icon( child: Icon(MaterialCommunityIcons.package,
MaterialCommunityIcons.package, color: primaryColor, size: 30)),
color: primaryColor,
size: 30,
),
),
new Expanded( new Expanded(
child: new Column( child: new Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,

View File

@@ -10,14 +10,18 @@ Widget getCartonNumberStatus(BuildContext context, Carton carton) {
LocalText( LocalText(
context, context,
'', '',
text: carton.cartonNumber , text: carton.cartonNumber,
color: primaryColor, color: primaryColor,
fontSize: 18, fontSize: 18,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
Padding( Padding(
padding: const EdgeInsets.only(left: 8.0), padding: const EdgeInsets.only(left: 8.0),
child: Chip(label: Text(carton.status??"")), child: Chip(
shape: const StadiumBorder(
side: BorderSide(color: Colors.transparent)),
backgroundColor: Colors.grey.withOpacity(0.3),
label: Text(carton.status ?? "")),
), ),
], ],
); );

View File

@@ -32,7 +32,7 @@ class CartonListRow extends StatelessWidget {
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
child: new Padding( child: new Padding(
padding: const EdgeInsets.symmetric(vertical: 13.0), padding: const EdgeInsets.symmetric(vertical: 10.0),
child: new Row( child: new Row(
children: <Widget>[ children: <Widget>[
new Padding( new Padding(

View File

@@ -5,6 +5,7 @@ import 'package:fcs/pages/widgets/barcode_scanner.dart';
import 'package:fcs/pages/widgets/local_popup_menu_button.dart'; import 'package:fcs/pages/widgets/local_popup_menu_button.dart';
import 'package:fcs/pages/widgets/local_popupmenu.dart'; import 'package:fcs/pages/widgets/local_popupmenu.dart';
import 'package:fcs/pagination/paginator_listview.dart'; import 'package:fcs/pagination/paginator_listview.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -32,13 +33,15 @@ class PartSearchDelegate extends SearchDelegate<Carton> {
final ThemeData theme = Theme.of(context); final ThemeData theme = Theme.of(context);
return theme.copyWith( return theme.copyWith(
appBarTheme: AppBarTheme(color: primaryColor), appBarTheme: AppBarTheme(color: primaryColor),
iconButtonTheme: IconButtonThemeData(
style: ButtonStyle(
iconColor: MaterialStateProperty.all<Color>(Colors.white))),
inputDecorationTheme: InputDecorationTheme( inputDecorationTheme: InputDecorationTheme(
border: InputBorder.none, border: InputBorder.none,
hintStyle: TextStyle( hintStyle: TextStyle(color: Colors.grey, fontSize: 14)),
color: theme.primaryTextTheme.caption?.color, fontSize: 14)),
textTheme: TextTheme( textTheme: TextTheme(
headline1: TextStyle( displayLarge: TextStyle(
color: theme.primaryTextTheme.headline1?.color, color: theme.primaryTextTheme.displayLarge?.color,
fontSize: 16, fontSize: 16,
backgroundColor: primaryColor)), backgroundColor: primaryColor)),
primaryColor: primaryColor, primaryColor: primaryColor,
@@ -83,7 +86,7 @@ class PartSearchDelegate extends SearchDelegate<Carton> {
@override @override
Widget buildLeading(BuildContext context) { Widget buildLeading(BuildContext context) {
return IconButton( return IconButton(
icon: Icon(Icons.arrow_back), icon: Icon(CupertinoIcons.back),
onPressed: () => close(context, new Carton()), onPressed: () => close(context, new Carton()),
); );
} }

View File

@@ -14,6 +14,7 @@ import 'package:fcs/pages/package/package_info.dart';
import 'package:fcs/pages/profile/profile_page.dart'; import 'package:fcs/pages/profile/profile_page.dart';
import 'package:fcs/pages/shipment/model/shipment_model.dart'; import 'package:fcs/pages/shipment/model/shipment_model.dart';
import 'package:fcs/pages/shipment/shipment_info.dart'; import 'package:fcs/pages/shipment/shipment_info.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -50,18 +51,9 @@ class MessageDetail extends StatelessWidget {
String userID = Provider.of<MessageModel>(context).user?.id ?? ""; String userID = Provider.of<MessageModel>(context).user?.id ?? "";
return Scaffold( return Scaffold(
appBar: AppBar( appBar: LocalAppBar(
leading: new IconButton( titleWidget: Text(receiverName ?? "FCS Team",
icon: new Icon(CupertinoIcons.back), style: TextStyle(color: Colors.white, fontSize: 20))),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
elevation: .9,
title: Text(
receiverName ?? "FCS Team",
),
actions: <Widget>[],
),
body: Padding( body: Padding(
padding: EdgeInsets.all(16.0), padding: EdgeInsets.all(16.0),
child: Column( child: Column(
@@ -129,15 +121,15 @@ class MessageDetail extends StatelessWidget {
minLines: 1, minLines: 1,
keyboardType: TextInputType.multiline, keyboardType: TextInputType.multiline,
controller: textEditingController, controller: textEditingController,
cursorColor: primaryColor,
decoration: InputDecoration( decoration: InputDecoration(
focusedBorder: const OutlineInputBorder( focusedBorder: const OutlineInputBorder(
borderSide: borderSide:
const BorderSide(color: primaryColor, width: 1.0), const BorderSide(color: primaryColor, width: 1.0),
), ),
border: new OutlineInputBorder( border: new OutlineInputBorder(
borderRadius: const BorderRadius.all( borderRadius:
const Radius.circular(10.0), const BorderRadius.all(const Radius.circular(5.0)),
),
), ),
hintText: getLocalString(context, "message.hint.input"), hintText: getLocalString(context, "message.hint.input"),
hintStyle: TextStyle( hintStyle: TextStyle(

View File

@@ -3,7 +3,7 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/contact/model/contact_model.dart'; import 'package:fcs/pages/contact/model/contact_model.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -87,21 +87,11 @@ class _ContactEditorState extends State<ContactEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: 'contact.edit.title',
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor),
onPressed: () {
Navigator.of(context).pop();
}),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( labelColor: primaryColor,
context, arrowColor: primaryColor),
'contact.edit.title',
color: primaryColor,
fontSize: 20,
)),
body: ListView( body: ListView(
children: [ children: [
Padding( Padding(

View File

@@ -3,7 +3,7 @@ import 'package:fcs/domain/vo/contact.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/contact/contact_editor.dart'; import 'package:fcs/pages/contact/contact_editor.dart';
import 'package:fcs/pages/main/model/main_model.dart'; import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
@@ -26,23 +26,11 @@ class _ContactPageState extends State<ContactPage> {
bool isEditable = context.select((MainModel m) => m.contactEditable()); bool isEditable = context.select((MainModel m) => m.contactEditable());
return Scaffold( return Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "contact.title",
leading: new IconButton(
icon: new Icon(
CupertinoIcons.back,
color: primaryColor,
),
onPressed: () => Navigator.of(context).pop(),
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( labelColor: primaryColor,
context, arrowColor: primaryColor,
'contact.title',
color: primaryColor,
fontSize: 20,
),
actions: isEditable actions: isEditable
? [ ? [
IconButton( IconButton(
@@ -102,6 +90,7 @@ class _ContactPageState extends State<ContactPage> {
onTap: () => _opencontactItem(setting.facebookLink ?? ""), onTap: () => _opencontactItem(setting.facebookLink ?? ""),
labelKey: "contact.facebook", labelKey: "contact.facebook",
), ),
const SizedBox(height: 30)
], ],
), ),
); );

View File

@@ -7,6 +7,7 @@ import 'package:fcs/pages/customer/customer_editor.dart';
import 'package:fcs/pages/customer/model/customer_model.dart'; import 'package:fcs/pages/customer/model/customer_model.dart';
import 'package:fcs/pages/main/model/main_model.dart'; import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/user_search/user_serach.dart'; import 'package:fcs/pages/user_search/user_serach.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -28,7 +29,6 @@ class _CustomerListState extends State<CustomerList> {
final double dotSize = 15.0; final double dotSize = 15.0;
bool _isLoading = false; bool _isLoading = false;
@override @override
void initState() { void initState() {
context.read<CustomerModel>().loadPaginationCustomers(); context.read<CustomerModel>().loadPaginationCustomers();
@@ -42,26 +42,15 @@ class _CustomerListState extends State<CustomerList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "customer.list.title",
leading: new IconButton( actions: [
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.of(context).pop(),
),
actions: <Widget>[
IconButton( IconButton(
icon: Icon(Icons.search, color: Colors.white), icon: Icon(Icons.search, color: Colors.white),
onPressed: () => searchUser(context, onUserSelect: (u) { onPressed: () => searchUser(context, onUserSelect: (u) {
_select(u); _select(u);
})), })),
], ],
backgroundColor: primaryColor,
title: LocalText(
context,
"customer.list.title",
fontSize: 20,
color: Colors.white,
),
), ),
floatingActionButton: FloatingActionButton.extended( floatingActionButton: FloatingActionButton.extended(
onPressed: () { onPressed: () {
@@ -88,7 +77,7 @@ class _CustomerListState extends State<CustomerList> {
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
child: new Padding( child: new Padding(
padding: const EdgeInsets.symmetric(vertical: 2.0), padding: const EdgeInsets.symmetric(vertical: 5.0),
child: new Row( child: new Row(
children: <Widget>[ children: <Widget>[
InkWell( InkWell(
@@ -120,7 +109,7 @@ class _CustomerListState extends State<CustomerList> {
child: new Text( child: new Text(
customer.name ?? "", customer.name ?? "",
style: new TextStyle( style: new TextStyle(
fontSize: 20.0, color: primaryColor), fontSize: 18.0, color: primaryColor),
), ),
), ),
Padding( Padding(
@@ -146,16 +135,13 @@ class _CustomerListState extends State<CustomerList> {
onPressed: () => _share(customer), onPressed: () => _share(customer),
style: TextButton.styleFrom( style: TextButton.styleFrom(
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0), borderRadius: BorderRadius.circular(20.0),
side: BorderSide(color: primaryColor))), side: BorderSide(color: primaryColor))),
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(18.0),
// side: BorderSide(color: primaryColor)),
child: Row( child: Row(
children: [ children: [
Text( Text(
"Share", "Share",
style: TextStyle(fontSize: 12), style: TextStyle(fontSize: 12, color: primaryColor),
), ),
Icon(Icons.share, color: primaryColor), Icon(Icons.share, color: primaryColor),
], ],

View File

@@ -3,9 +3,8 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/customer/model/customer_model.dart'; import 'package:fcs/pages/customer/model/customer_model.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -42,16 +41,12 @@ class _InvitationCreateState extends State<InvitationCreate> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
labelKey: "invitation.form.title",
backgroundColor: Colors.white, backgroundColor: Colors.white,
shadowColor: Colors.transparent, labelColor: primaryColor,
centerTitle: true, arrowColor: primaryColor,
leading: new IconButton( onBack: () {
icon: new Icon(
CupertinoIcons.back,
color: primaryColor,
),
onPressed: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -61,13 +56,6 @@ class _InvitationCreateState extends State<InvitationCreate> {
} }
}, },
), ),
title: LocalText(
context,
"invitation.form.title",
fontSize: 20,
color: primaryColor,
),
),
body: Container( body: Container(
padding: EdgeInsets.all(18), padding: EdgeInsets.all(18),
child: ListView( child: ListView(

View File

@@ -13,12 +13,11 @@ import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
import 'package:fcs/pages/widgets/defalut_delivery_address.dart'; import 'package:fcs/pages/widgets/defalut_delivery_address.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/fcs_id_icon.dart'; import 'package:fcs/pages/widgets/fcs_id_icon.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_button.dart'; import 'package:fcs/pages/widgets/local_button.dart';
import 'package:fcs/pages/widgets/local_radio_buttons.dart'; import 'package:fcs/pages/widgets/local_radio_buttons.dart';
import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/local_title.dart'; import 'package:fcs/pages/widgets/local_title.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
@@ -226,23 +225,11 @@ class _DeliveryInfoState extends State<DeliveryInfo> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "delivery.info.title",
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () {
Navigator.of(context).pop();
},
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( labelColor: primaryColor,
context, arrowColor: primaryColor),
"delivery.info.title",
fontSize: 20,
color: primaryColor,
),
),
body: Padding( body: Padding(
padding: const EdgeInsets.all(10.0), padding: const EdgeInsets.all(10.0),
child: ListView(children: <Widget>[ child: ListView(children: <Widget>[

View File

@@ -1,9 +1,8 @@
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_popup_menu_button.dart'; import 'package:fcs/pages/widgets/local_popup_menu_button.dart';
import 'package:fcs/pages/widgets/local_popupmenu.dart'; import 'package:fcs/pages/widgets/local_popupmenu.dart';
import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -61,17 +60,7 @@ class _DeliverListState extends State<DeliverList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(labelKey: "delivery", actions: [popupMenu]),
centerTitle: true,
leading: new IconButton(
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
title: LocalText(context, "delivery",
color: Colors.white, fontSize: 20),
actions: <Widget>[popupMenu],
),
body: PaginatorListView<Carton>( body: PaginatorListView<Carton>(
paginatorListener: deliveryModel.getCartons!, paginatorListener: deliveryModel.getCartons!,
rowBuilder: (p) => DeliveryListRow(box: p), rowBuilder: (p) => DeliveryListRow(box: p),

View File

@@ -4,9 +4,8 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/delivery_address/model/delivery_address_model.dart'; import 'package:fcs/pages/delivery_address/model/delivery_address_model.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -104,11 +103,12 @@ class _DeliveryAddressEditorState extends State<DeliveryAddressEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: 'delivery_address',
leading: new IconButton( backgroundColor: Colors.white,
icon: new Icon(CupertinoIcons.back, color: primaryColor), labelColor: primaryColor,
onPressed: () { arrowColor: primaryColor,
onBack: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -117,11 +117,6 @@ class _DeliveryAddressEditorState extends State<DeliveryAddressEditor> {
Navigator.of(context).pop(); Navigator.of(context).pop();
} }
}, },
),
backgroundColor: Colors.white,
shadowColor: Colors.transparent,
title: LocalText(context, 'delivery_address',
color: primaryColor, fontSize: 18),
actions: [ actions: [
_isNew _isNew
? Container() ? Container()

View File

@@ -2,6 +2,7 @@ import 'package:fcs/domain/vo/delivery_address.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/delivery_address/delivery_address_editor.dart'; import 'package:fcs/pages/delivery_address/delivery_address_editor.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -41,17 +42,11 @@ class _DeliveryAddressListState extends State<DeliveryAddressList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: 'delivery_addresses',
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: Colors.white, backgroundColor: Colors.white,
shadowColor: Colors.transparent, labelColor: primaryColor,
title: LocalText(context, 'delivery_addresses', arrowColor: primaryColor),
color: primaryColor, fontSize: 20),
),
floatingActionButton: FloatingActionButton.extended( floatingActionButton: FloatingActionButton.extended(
onPressed: () { onPressed: () {
Navigator.of(context).push(CupertinoPageRoute( Navigator.of(context).push(CupertinoPageRoute(

View File

@@ -1,140 +0,0 @@
import 'package:fcs/domain/entities/faq.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/faq/faq_edit_page.dart';
import 'package:fcs/pages/faq/model/faq_model.dart';
import 'package:fcs/pages/main/model/language_model.dart';
import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class FAQDetailPage extends StatefulWidget {
final FAQ faq;
const FAQDetailPage({required this.faq});
@override
_FAQDetailPageState createState() => _FAQDetailPageState();
}
class _FAQDetailPageState extends State<FAQDetailPage> {
bool _isLoading = false;
FAQ faq = new FAQ();
intState() {
super.initState();
}
@override
Widget build(BuildContext context) {
if (widget.faq.id != null)
faq = context.select((FAQModel m) => m.getFAQ(widget.faq.id!));
// if (faq == null) return Text("Deleted");
bool isEditable = context.select((MainModel m) => m.faqEditable());
return LocalProgress(
inAsyncCall: _isLoading,
child: Scaffold(
body: CustomScrollView(slivers: [
SliverAppBar(
leading: IconButton(
icon: Icon(
CupertinoIcons.back,
color: primaryColor,
size: 50,
),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: Colors.white,
expandedHeight: 100.0,
floating: false,
pinned: true,
flexibleSpace: FlexibleSpaceBar(
centerTitle: true,
titlePadding: EdgeInsets.symmetric(vertical: 10),
),
actions: isEditable
? [
IconButton(
onPressed: () {
showConfirmDialog(context, "faq.edit.delete.confirm",
() {
_delete();
});
},
icon: Icon(
CupertinoIcons.delete,
color: primaryColor,
size: 30,
)),
IconButton(
onPressed: () =>
Navigator.of(context).push<void>(CupertinoPageRoute(
builder: (context) => FAQEditor(faq: faq),
)),
icon: Icon(
CupertinoIcons.pen,
color: primaryColor,
))
]
: [],
),
SliverList(
delegate: SliverChildListDelegate([
Padding(
padding: const EdgeInsets.all(28.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
getQuestion(context, faq),
SizedBox(
height: 50,
),
getAnwser(context, faq)
],
),
),
]))
]),
),
);
}
Widget getQuestion(BuildContext context, FAQ faq) {
bool isEng = Provider.of<LanguageModel>(context).isEng;
return TextLocalStyle(
context,
faq.question(isEng),
fontSize: 22,
fontWeight: FontWeight.bold,
);
}
Widget getAnwser(BuildContext context, FAQ faq) {
bool isEng = Provider.of<LanguageModel>(context).isEng;
return TextLocalStyle(
context,
faq.answer(isEng),
fontSize: 16,
fontWeight: FontWeight.w200,
);
}
_delete() async {
setState(() {
_isLoading = true;
});
try {
FAQModel faqModel = Provider.of<FAQModel>(context, listen: false);
await faqModel.deleteFAQ(faq);
Navigator.pop(context);
} catch (e) {
showMsgDialog(context, "Error", e.toString());
} finally {
setState(() {
_isLoading = false;
});
}
}
}

View File

@@ -5,9 +5,8 @@ import 'package:fcs/pages/faq/model/faq_model.dart';
import 'package:fcs/pages/faq/widgets.dart'; import 'package:fcs/pages/faq/widgets.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -84,6 +83,7 @@ class _FAQEditorState extends State<FAQEditor> {
withBorder: true, withBorder: true,
); );
final pageLinkBox = DropdownButton<String>( final pageLinkBox = DropdownButton<String>(
isExpanded: true,
value: _pageLink, value: _pageLink,
style: TextStyle(color: Colors.deepPurple), style: TextStyle(color: Colors.deepPurple),
underline: Container( underline: Container(
@@ -124,11 +124,12 @@ class _FAQEditorState extends State<FAQEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: _isNew ? 'faq.add.title' : 'faq.edit.title',
leading: new IconButton( backgroundColor: Colors.white,
icon: new Icon(CupertinoIcons.back, color: primaryColor), arrowColor: primaryColor,
onPressed: () { labelColor: primaryColor,
onBack: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -137,14 +138,10 @@ class _FAQEditorState extends State<FAQEditor> {
Navigator.of(context).pop(); Navigator.of(context).pop();
} }
}, },
),
backgroundColor: Colors.white,
shadowColor: Colors.transparent,
title: LocalText(
context, _isNew ? 'faq.add.title' : 'faq.edit.title',
color: primaryColor, fontSize: 20),
actions: [ actions: [
IconButton( _isNew
? const SizedBox()
: IconButton(
icon: Icon( icon: Icon(
Icons.delete, Icons.delete,
color: primaryColor, color: primaryColor,

View File

@@ -8,6 +8,7 @@ import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/payment_methods/payment_method_page.dart'; import 'package:fcs/pages/payment_methods/payment_method_page.dart';
import 'package:fcs/pages/rates/shipment_rates.dart'; import 'package:fcs/pages/rates/shipment_rates.dart';
import 'package:fcs/pages/widgets/fcs_expansion_tile.dart'; import 'package:fcs/pages/widgets/fcs_expansion_tile.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -15,7 +16,6 @@ import 'package:provider/provider.dart';
import 'model/faq_model.dart'; import 'model/faq_model.dart';
class FAQListPage extends StatefulWidget { class FAQListPage extends StatefulWidget {
@override @override
_FAQListPageState createState() => _FAQListPageState(); _FAQListPageState createState() => _FAQListPageState();
@@ -29,19 +29,8 @@ class _FAQListPageState extends State<FAQListPage>
bool isEditable = context.select((MainModel m) => m.faqEditable()); bool isEditable = context.select((MainModel m) => m.faqEditable());
return Scaffold( return Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "faq.title",
title: LocalText(
context,
"faq.title",
color: Colors.white,
fontSize: 20,
),
leading: new IconButton(
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
actions: isEditable actions: isEditable
? [ ? [
IconButton( IconButton(

View File

@@ -7,10 +7,9 @@ import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/input_date.dart'; import 'package:fcs/pages/widgets/input_date.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_button.dart'; import 'package:fcs/pages/widgets/local_button.dart';
import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
@@ -50,11 +49,13 @@ class _FcsShipmentEditorState extends State<FcsShipmentEditor> {
if (widget.shipment != null) { if (widget.shipment != null) {
_shipment = widget.shipment!; _shipment = widget.shipment!;
_shipmentNumberController.text = _shipment.shipmentNumber ?? ""; _shipmentNumberController.text = _shipment.shipmentNumber ?? "";
if(_shipment.cutoffDate != null) if (_shipment.cutoffDate != null)
_cutoffDateController.text = dateFormatter.format(_shipment.cutoffDate!); _cutoffDateController.text =
if(_shipment.arrivalDate != null) dateFormatter.format(_shipment.cutoffDate!);
_arrivalDateController.text = dateFormatter.format(_shipment.arrivalDate!); if (_shipment.arrivalDate != null)
if(_shipment.departureDate != null) _arrivalDateController.text =
dateFormatter.format(_shipment.arrivalDate!);
if (_shipment.departureDate != null)
_departureDateControler.text = _departureDateControler.text =
dateFormatter.format(_shipment.departureDate!); dateFormatter.format(_shipment.departureDate!);
_statusController.text = _shipment.status ?? ""; _statusController.text = _shipment.status ?? "";
@@ -91,12 +92,12 @@ class _FcsShipmentEditorState extends State<FcsShipmentEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "FCSshipment.form.title",
shadowColor: Colors.transparent, backgroundColor: Colors.white,
leading: new IconButton( labelColor: primaryColor,
icon: new Icon(CupertinoIcons.back, color: primaryColor), arrowColor: primaryColor,
onPressed: () { onBack: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -104,16 +105,7 @@ class _FcsShipmentEditorState extends State<FcsShipmentEditor> {
} else { } else {
Navigator.of(context).pop(); Navigator.of(context).pop();
} }
}, }),
),
backgroundColor: Colors.white,
title: LocalText(
context,
"FCSshipment.form.title",
color: primaryColor,
fontSize: 18,
),
),
body: Padding( body: Padding(
padding: const EdgeInsets.all(10.0), padding: const EdgeInsets.all(10.0),
child: ListView(children: <Widget>[ child: ListView(children: <Widget>[
@@ -206,7 +198,7 @@ class _FcsShipmentEditorState extends State<FcsShipmentEditor> {
// fcsShipment.departureDate = // fcsShipment.departureDate =
// depDate == "" ? null : dateFormatter.parse(depDate); // depDate == "" ? null : dateFormatter.parse(depDate);
} catch (e) { } catch (e) {
showMsgDialog(context, "Error", e.toString()); // shold never happen // showMsgDialog(context, "Error", e.toString()); // shold never happen
} }
return fcsShipment; return fcsShipment;
} }

View File

@@ -4,6 +4,7 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart'; import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_button.dart'; import 'package:fcs/pages/widgets/local_button.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/pdf_screen.dart'; import 'package:fcs/pages/widgets/pdf_screen.dart';
@@ -132,20 +133,11 @@ class _FcsShipmentInfoState extends State<FcsShipmentInfo> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "FCSshipment.form.title",
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () => Navigator.of(context).pop(),
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( labelColor: primaryColor,
context, arrowColor: primaryColor,
"FCSshipment.form.title",
fontSize: 20,
color: primaryColor,
),
actions: [ actions: [
IconButton( IconButton(
icon: Icon(Icons.edit, color: primaryColor), icon: Icon(Icons.edit, color: primaryColor),
@@ -154,7 +146,30 @@ class _FcsShipmentInfoState extends State<FcsShipmentInfo> {
menuPopWidget(context) menuPopWidget(context)
], ],
), ),
// appBar: AppBar(
// centerTitle: true,
// leading: new IconButton(
// icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
// onPressed: () => Navigator.of(context).pop(),
// ),
// shadowColor: Colors.transparent,
// backgroundColor: Colors.white,
// title: LocalText(
// context,
// "FCSshipment.form.title",
// fontSize: 20,
// color: primaryColor,
// ),
// actions: [
// IconButton(
// icon: Icon(Icons.edit, color: primaryColor),
// onPressed: _edit,
// ),
// menuPopWidget(context)
// ],
// ),
body: Card( body: Card(
elevation: 0,
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(

View File

@@ -1,5 +1,6 @@
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart'; import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_popup_menu_button.dart'; import 'package:fcs/pages/widgets/local_popup_menu_button.dart';
import 'package:fcs/pages/widgets/local_popupmenu.dart'; import 'package:fcs/pages/widgets/local_popupmenu.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
@@ -63,17 +64,8 @@ class _FcsShipmentListState extends State<FcsShipmentList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "FCSshipment.list.title", actions: [popupMenu]),
leading: new IconButton(
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
title: LocalText(context, 'FCSshipment.list.title',
color: Colors.white, fontSize: 20),
actions: [popupMenu],
),
floatingActionButton: FloatingActionButton.extended( floatingActionButton: FloatingActionButton.extended(
onPressed: () { onPressed: () {
_newShipment(); _newShipment();

View File

@@ -20,7 +20,10 @@ Future showMsgDialog(BuildContext context, String title, String msg) {
content: new Text(msg), content: new Text(msg),
actions: <Widget>[ actions: <Widget>[
new TextButton( new TextButton(
child: new Text("Close"), child: new Text(
"Close",
style: TextStyle(color: primaryColor),
),
onPressed: () { onPressed: () {
Navigator.of(context).pop(); Navigator.of(context).pop();
}, },
@@ -52,14 +55,16 @@ Future<void> showConfirmDialog(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
TextButton( TextButton(
style: style: TextButton.styleFrom(
TextButton.styleFrom(backgroundColor: Colors.grey[300]), backgroundColor: Colors.grey[300],
// color: Colors.grey[300], shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5.0))),
child: Text( child: Text(
AppTranslations.of(context)!.text('btn.cancel'), AppTranslations.of(context)!.text('btn.cancel'),
style: Provider.of<LanguageModel>(context).isEng style: Provider.of<LanguageModel>(context).isEng
? TextStyle() ? TextStyle(color: primaryColor)
: TextStyle(fontFamily: 'Myanmar3'), : TextStyle(
fontFamily: 'Myanmar3', color: primaryColor),
), ),
onPressed: () { onPressed: () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -68,8 +73,10 @@ Future<void> showConfirmDialog(
width: 0, width: 0,
), ),
TextButton( TextButton(
style: TextButton.styleFrom(backgroundColor: primaryColor), style: TextButton.styleFrom(
// color: primaryColor, backgroundColor: primaryColor,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5.0))),
child: Text(AppTranslations.of(context)!.text('btn.ok'), child: Text(AppTranslations.of(context)!.text('btn.ok'),
style: Provider.of<LanguageModel>(context).isEng style: Provider.of<LanguageModel>(context).isEng
? TextStyle( ? TextStyle(
@@ -374,7 +381,8 @@ String getLocalString(BuildContext context, String key) {
} }
void showToast(GlobalKey key, String text) { void showToast(GlobalKey key, String text) {
final ScaffoldMessengerState scaffold = key.currentState as ScaffoldMessengerState; final ScaffoldMessengerState scaffold =
key.currentState as ScaffoldMessengerState;
scaffold.showSnackBar( scaffold.showSnackBar(
SnackBar( SnackBar(
content: Text(text), content: Text(text),

View File

@@ -3,6 +3,7 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/market/model/market_model.dart'; import 'package:fcs/pages/market/model/market_model.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -58,22 +59,11 @@ class _MarketEditorState extends State<MarketEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: 'market.edit.title',
leading: new IconButton(
icon:
new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () => Navigator.of(context).pop(),
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( labelColor: primaryColor,
context, arrowColor: primaryColor),
"market.edit.title",
fontSize: 20,
color: primaryColor,
),
),
body: Padding( body: Padding(
padding: const EdgeInsets.only(left: 12.0, right: 12), padding: const EdgeInsets.only(left: 12.0, right: 12),
child: ListView( child: ListView(

View File

@@ -1,265 +0,0 @@
import 'package:fcs/domain/entities/market.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/market/market_editor.dart';
import 'package:fcs/pages/market/model/market_model.dart';
import 'package:fcs/pages/package/tracking_id_page.dart';
import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/multi_img_controller.dart';
import 'package:fcs/pages/widgets/multi_img_file.dart';
import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
class PackageEditorPage extends StatefulWidget {
final Package? package;
PackageEditorPage({this.package});
@override
_PackageEditorPageState createState() => _PackageEditorPageState();
}
class _PackageEditorPageState extends State<PackageEditorPage> {
TextEditingController _remarkCtl = new TextEditingController();
TextEditingController _descCtl = new TextEditingController();
Package? _package;
bool _isLoading = false;
@override
void initState() {
super.initState();
_package = widget.package!;
selectedMarket = _package!.market;
_descCtl.text = _package!.desc!;
_remarkCtl.text = _package!.remark!;
multiImgController.setImageUrls = _package!.photoUrls;
}
final DateFormat dateFormat = DateFormat("d MMM yyyy");
bool isNew = false;
MultiImgController multiImgController = MultiImgController();
@override
Widget build(BuildContext context) {
final trackingIdBox = DisplayText(
text: _package != null ? _package!.trackingID : "",
labelTextKey: "package.tracking.id",
iconData: MaterialCommunityIcons.barcode_scan,
);
final statusBox = DisplayText(
text: _package != null ? _package!.status : "",
labelTextKey: "package.edit.status",
iconData: AntDesign.exclamationcircleo,
);
final customerNameBox = DisplayText(
text: _package != null ? _package!.userName : "",
labelTextKey: "package.create.name",
iconData: Icons.perm_identity,
);
final completeProcessingBtn = fcsButton(
context,
getLocalString(context, 'package.edit.complete.process.btn'),
callack: _completeProcessing,
);
final descBox = InputText(
labelTextKey: 'package.edit.desc',
iconData: MaterialCommunityIcons.message_text_outline,
controller: _descCtl);
final remarkBox = InputText(
labelTextKey: 'package.edit.remark',
iconData: Entypo.new_message,
controller: _remarkCtl);
final img = MultiImageFile(
enabled: true,
controller: multiImgController,
title: "Receipt File",
);
return LocalProgress(
inAsyncCall: _isLoading,
child: Scaffold(
appBar: AppBar(
centerTitle: true,
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () {
showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop();
});
},
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white,
title: LocalText(
context,
"package.edit.title",
fontSize: 20,
color: primaryColor,
),
actions: [
IconButton(
icon: Icon(Icons.delete, color: primaryColor),
onPressed: _delete,
)
],
),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: ListView(
children: [
trackingIdBox,
customerNameBox,
statusBox,
Divider(),
Center(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: LocalText(
context,
"package.edit.procseeing",
color: primaryColor,
fontSize: 16,
fontWeight: FontWeight.w700,
),
),
),
Padding(
padding: const EdgeInsets.only(left: 18.0, right: 10),
child: Column(
children: [
marketDropdown(),
descBox,
remarkBox,
img,
],
),
),
completeProcessingBtn,
SizedBox(
height: 20,
)
],
),
),
),
);
}
String? selectedMarket;
Widget marketDropdown() {
List<Market> _markets = Provider.of<MarketModel>(context).markets;
List<String?> markets = _markets.map((e) => e.name).toList();
markets.insert(0, MANAGE_MARKET);
if (!markets.contains(selectedMarket)) {
markets.insert(0, selectedMarket!);
}
return Row(
children: [
Padding(
padding: const EdgeInsets.only(right: 18.0),
child: LocalText(
context,
"package.create.market",
color: primaryColor,
fontSize: 16,
),
),
Container(
width: 150,
child: DropdownButton<String>(
value: selectedMarket,
style: TextStyle(color: Colors.black, fontSize: 14),
underline: Container(
height: 1,
color: Colors.grey,
),
onChanged: (String? newValue) {
setState(() {
if (newValue == MANAGE_MARKET) {
selectedMarket = null;
_manageMarket();
return;
}
selectedMarket = newValue;
});
},
isExpanded: true,
items: markets.map<DropdownMenuItem<String>>((String? value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value ?? "",
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: value == MANAGE_MARKET
? secondaryColor
: primaryColor)),
);
}).toList(),
),
),
],
);
}
_manageMarket() {
Navigator.push<Package>(
context,
CupertinoPageRoute(builder: (context) => MarketEditor()),
);
}
_completeProcessing() async {
if (_descCtl.text == "") {
showMsgDialog(context, "Error", "Expected some description");
return;
}
setState(() {
_isLoading = true;
});
try {
_package!.desc = _descCtl.text;
_package!.remark = _remarkCtl.text;
_package!.market = selectedMarket!;
// await packageModel.completeProcessing(_package,
// multiImgController.getAddedFile, multiImgController.getDeletedUrl);
Navigator.pop(context);
} catch (e) {
showMsgDialog(context, "Error", e.toString());
} finally {
setState(() {
_isLoading = false;
});
}
}
_delete() {
showConfirmDialog(context, "package.delete.confirm", _deletePackage);
}
_deletePackage() async {
setState(() {
_isLoading = true;
});
try {
// await packageModel.deletePackage(_package);
Navigator.pop<bool>(context, true);
} catch (e) {
showMsgDialog(context, "Error", e.toString());
} finally {
setState(() {
_isLoading = false;
});
}
}
}

View File

@@ -155,6 +155,7 @@ class _PackageInfoState extends State<PackageInfo> {
), ),
), ),
body: Card( body: Card(
elevation: 0,
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
@@ -177,9 +178,12 @@ class _PackageInfoState extends State<PackageInfo> {
widget.isSearchResult ? Container() : deliveryAddressBox, widget.isSearchResult ? Container() : deliveryAddressBox,
widget.isSearchResult widget.isSearchResult
? Container() ? Container()
: StatusTree( : Padding(
padding: const EdgeInsets.only(top: 15),
child: StatusTree(
shipmentHistory: _package!.shipmentHistory, shipmentHistory: _package!.shipmentHistory,
currentStatus: _package!.status), currentStatus: _package!.status),
),
SizedBox( SizedBox(
height: 20, height: 20,
) )

View File

@@ -4,9 +4,9 @@ import 'package:fcs/pages/package/model/package_model.dart';
import 'package:fcs/pages/package/package_info.dart'; import 'package:fcs/pages/package/package_info.dart';
import 'package:fcs/pages/package/package_list_row.dart'; import 'package:fcs/pages/package/package_list_row.dart';
import 'package:fcs/pages/package_search/package_serach.dart'; import 'package:fcs/pages/package_search/package_serach.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_popup_menu_button.dart'; import 'package:fcs/pages/widgets/local_popup_menu_button.dart';
import 'package:fcs/pages/widgets/local_popupmenu.dart'; import 'package:fcs/pages/widgets/local_popupmenu.dart';
import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:fcs/pagination/paginator_listview.dart'; import 'package:fcs/pagination/paginator_listview.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -55,20 +55,9 @@ class _PackageListState extends State<PackageList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: 'package.title',
leading: new IconButton( actions: [
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
title: LocalText(
context,
"package.title",
fontSize: 20,
color: Colors.white,
),
actions: <Widget>[
widget.forCustomer widget.forCustomer
? Container() ? Container()
: IconButton( : IconButton(
@@ -78,8 +67,7 @@ class _PackageListState extends State<PackageList> {
), ),
iconSize: 30, iconSize: 30,
onPressed: () => searchPackage(context, onPressed: () => searchPackage(context,
callbackPackageSelect: _searchCallback), callbackPackageSelect: _searchCallback)),
),
popupMenu popupMenu
], ],
), ),

View File

@@ -3,6 +3,7 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/package/model/package_model.dart'; import 'package:fcs/pages/package/model/package_model.dart';
import 'package:fcs/pages/package/package_list_row.dart'; import 'package:fcs/pages/package/package_list_row.dart';
import 'package:fcs/pages/widgets/barcode_scanner.dart'; import 'package:fcs/pages/widgets/barcode_scanner.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -28,13 +29,15 @@ class PackageSearchDelegate extends SearchDelegate<Package> {
final ThemeData theme = Theme.of(context); final ThemeData theme = Theme.of(context);
return theme.copyWith( return theme.copyWith(
appBarTheme: AppBarTheme(color: primaryColor), appBarTheme: AppBarTheme(color: primaryColor),
iconButtonTheme: IconButtonThemeData(
style: ButtonStyle(
iconColor: MaterialStateProperty.all<Color>(Colors.white))),
inputDecorationTheme: InputDecorationTheme( inputDecorationTheme: InputDecorationTheme(
border: InputBorder.none, border: InputBorder.none,
hintStyle: TextStyle( hintStyle: TextStyle(color: Colors.grey, fontSize: 14)),
color: theme.primaryTextTheme.caption?.color, fontSize: 14)),
textTheme: TextTheme( textTheme: TextTheme(
headline1: TextStyle( displayLarge: TextStyle(
color: theme.primaryTextTheme.headline1?.color, color: theme.primaryTextTheme.displayLarge?.color,
fontSize: 16, fontSize: 16,
backgroundColor: primaryColor)), backgroundColor: primaryColor)),
primaryColor: primaryColor, primaryColor: primaryColor,
@@ -59,7 +62,7 @@ class PackageSearchDelegate extends SearchDelegate<Package> {
@override @override
Widget buildLeading(BuildContext context) { Widget buildLeading(BuildContext context) {
return IconButton( return IconButton(
icon: Icon(Icons.arrow_back), icon: Icon(CupertinoIcons.back),
onPressed: () => close(context, new Package()), onPressed: () => close(context, new Package()),
); );
} }

View File

@@ -3,9 +3,8 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/payment_methods/model/payment_method_model.dart'; import 'package:fcs/pages/payment_methods/model/payment_method_model.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -55,11 +54,12 @@ class _PaymentMethodEditorState extends State<PaymentMethodEditor> {
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
backgroundColor: Colors.white, backgroundColor: Colors.white,
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: isNew ? "pm.form.new" : "pm.update",
leading: new IconButton( backgroundColor: Colors.white,
icon: new Icon(CupertinoIcons.back, color: primaryColor), labelColor: primaryColor,
onPressed: () { arrowColor: primaryColor,
onBack: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -68,15 +68,6 @@ class _PaymentMethodEditorState extends State<PaymentMethodEditor> {
Navigator.of(context).pop(); Navigator.of(context).pop();
} }
}, },
),
title: LocalText(
context,
isNew ? "pm.form.new" : "pm.update",
fontSize: 20,
color: primaryColor,
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white,
actions: <Widget>[ actions: <Widget>[
isNew isNew
? Container() ? Container()

View File

@@ -5,6 +5,7 @@ import 'package:fcs/pages/payment_methods/model/payment_method_model.dart';
import 'package:fcs/pages/payment_methods/payment_method_editor.dart'; import 'package:fcs/pages/payment_methods/payment_method_editor.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -31,25 +32,11 @@ class _PaymentMethodPageState extends State<PaymentMethodPage> {
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
key: key, key: key,
appBar: AppBar( appBar: LocalAppBar(
leading: new IconButton( labelKey: "pm.title",
icon: new Icon(
CupertinoIcons.back,
color: primaryColor,
),
onPressed: () => Navigator.of(context).pop(),
),
centerTitle: true,
title: LocalText(
context,
"pm.title",
fontSize: 20,
color: primaryColor,
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
actions: <Widget>[], labelColor: primaryColor,
), arrowColor: primaryColor),
body: Padding( body: Padding(
padding: const EdgeInsets.all(12.0), padding: const EdgeInsets.all(12.0),
child: ListView.separated( child: ListView.separated(

View File

@@ -10,6 +10,7 @@ import 'package:fcs/pages/pickup/model/pickup_model.dart';
import 'package:fcs/pages/widgets/defalut_delivery_address.dart'; import 'package:fcs/pages/widgets/defalut_delivery_address.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/multi_img_controller.dart'; import 'package:fcs/pages/widgets/multi_img_controller.dart';
import 'package:fcs/pages/widgets/multi_img_file.dart'; import 'package:fcs/pages/widgets/multi_img_file.dart';
@@ -131,11 +132,12 @@ class _PickupEditorState extends State<PickupEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "pickup.edit.title",
leading: new IconButton( backgroundColor: Colors.white,
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30), labelColor: primaryColor,
onPressed: () { arrowColor: primaryColor,
onBack: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -145,15 +147,6 @@ class _PickupEditorState extends State<PickupEditor> {
} }
}, },
), ),
shadowColor: Colors.transparent,
backgroundColor: Colors.white,
title: LocalText(
context,
"pickup.edit.title",
fontSize: 20,
color: primaryColor,
),
),
body: Padding( body: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: ListView( child: ListView(

View File

@@ -5,7 +5,7 @@ import 'package:fcs/pages/pickup/model/pickup_model.dart';
import 'package:fcs/pages/pickup/pickup_editor.dart'; import 'package:fcs/pages/pickup/pickup_editor.dart';
import 'package:fcs/pages/widgets/defalut_delivery_address.dart'; import 'package:fcs/pages/widgets/defalut_delivery_address.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/multi_img_controller.dart'; import 'package:fcs/pages/widgets/multi_img_controller.dart';
import 'package:fcs/pages/widgets/multi_img_file.dart'; import 'package:fcs/pages/widgets/multi_img_file.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
@@ -149,22 +149,13 @@ class _PickupInfoState extends State<PickupInfo> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "pickup.info.title",
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () => Navigator.of(context).pop(),
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( labelColor: primaryColor,
context, arrowColor: primaryColor),
"pickup.info.title",
fontSize: 20,
color: primaryColor,
),
),
body: Card( body: Card(
elevation: 0,
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(

View File

@@ -3,7 +3,7 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/pickup/pickup_info.dart'; import 'package:fcs/pages/pickup/pickup_info.dart';
import 'package:fcs/pages/pickup/pickup_list_row.dart'; import 'package:fcs/pages/pickup/pickup_list_row.dart';
import 'package:fcs/pages/pickup_search/pickup_serach.dart'; import 'package:fcs/pages/pickup_search/pickup_serach.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:fcs/pagination/paginator_listview.dart'; import 'package:fcs/pagination/paginator_listview.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -26,7 +26,6 @@ class _PickupListState extends State<PickupList> {
super.initState(); super.initState();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var pickupModel = Provider.of<PickupModel>(context); var pickupModel = Provider.of<PickupModel>(context);
@@ -35,20 +34,9 @@ class _PickupListState extends State<PickupList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "pickup.title",
leading: new IconButton( actions: [
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
title: LocalText(
context,
"pickup.title",
fontSize: 20,
color: Colors.white,
),
actions: <Widget>[
IconButton( IconButton(
icon: Icon( icon: Icon(
Icons.search, Icons.search,
@@ -56,8 +44,7 @@ class _PickupListState extends State<PickupList> {
), ),
iconSize: 30, iconSize: 30,
onPressed: () => searchPickup(context, onPressed: () => searchPickup(context,
callbackPickupSelect: _searchCallback), callbackPickupSelect: _searchCallback)),
),
], ],
), ),
body: PaginatorListView<Pickup>( body: PaginatorListView<Pickup>(

View File

@@ -4,6 +4,7 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/pickup/model/pickup_model.dart'; import 'package:fcs/pages/pickup/model/pickup_model.dart';
import 'package:fcs/pages/pickup/pickup_list_row.dart'; import 'package:fcs/pages/pickup/pickup_list_row.dart';
import 'package:fcs/pages/widgets/barcode_scanner.dart'; import 'package:fcs/pages/widgets/barcode_scanner.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -29,13 +30,15 @@ class PackageSearchDelegate extends SearchDelegate<Pickup> {
final ThemeData theme = Theme.of(context); final ThemeData theme = Theme.of(context);
return theme.copyWith( return theme.copyWith(
appBarTheme: AppBarTheme(color: primaryColor), appBarTheme: AppBarTheme(color: primaryColor),
iconButtonTheme: IconButtonThemeData(
style: ButtonStyle(
iconColor: MaterialStateProperty.all<Color>(Colors.white))),
inputDecorationTheme: InputDecorationTheme( inputDecorationTheme: InputDecorationTheme(
border: InputBorder.none, border: InputBorder.none,
hintStyle: TextStyle( hintStyle: TextStyle(color: Colors.grey, fontSize: 14)),
color: theme.primaryTextTheme.caption?.color, fontSize: 14)),
textTheme: TextTheme( textTheme: TextTheme(
headline1: TextStyle( displayLarge: TextStyle(
color: theme.primaryTextTheme.headline1?.color, color: theme.primaryTextTheme.displayLarge?.color,
fontSize: 16, fontSize: 16,
backgroundColor: primaryColor)), backgroundColor: primaryColor)),
primaryColor: primaryColor, primaryColor: primaryColor,
@@ -60,7 +63,7 @@ class PackageSearchDelegate extends SearchDelegate<Pickup> {
@override @override
Widget buildLeading(BuildContext context) { Widget buildLeading(BuildContext context) {
return IconButton( return IconButton(
icon: Icon(Icons.arrow_back), icon: Icon(CupertinoIcons.back),
onPressed: () => close(context, new Pickup()), onPressed: () => close(context, new Pickup()),
); );
} }
@@ -120,7 +123,8 @@ class PackageSearchDelegate extends SearchDelegate<Pickup> {
child: Center( child: Center(
child: Opacity( child: Opacity(
opacity: 0.2, opacity: 0.2,
child: Icon(SimpleLineIcons.direction, size: 200, color: primaryColor)), child: Icon(SimpleLineIcons.direction,
size: 200, color: primaryColor)),
), ),
); );
} }

View File

@@ -11,6 +11,7 @@ import 'package:fcs/pages/user_search/user_serach.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/fcs_id_icon.dart'; import 'package:fcs/pages/widgets/fcs_id_icon.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/multi_img_controller.dart'; import 'package:fcs/pages/widgets/multi_img_controller.dart';
import 'package:fcs/pages/widgets/multi_img_file.dart'; import 'package:fcs/pages/widgets/multi_img_file.dart';
@@ -172,11 +173,12 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "processing.edit.title",
leading: new IconButton( backgroundColor: Colors.white,
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30), labelColor: primaryColor,
onPressed: () { arrowColor: primaryColor,
onBack: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -186,15 +188,6 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
} }
}, },
), ),
shadowColor: Colors.transparent,
backgroundColor: Colors.white,
title: LocalText(
context,
"processing.edit.title",
fontSize: 20,
color: primaryColor,
),
),
body: Padding( body: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: ListView( child: ListView(
@@ -337,7 +330,7 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
fcsID: _consignee!.fcsID, fcsID: _consignee!.fcsID,
senderFCSID: _sender!.fcsID, senderFCSID: _sender!.fcsID,
market: selectedMarket, market: selectedMarket,
desc: _descCtl.text , desc: _descCtl.text,
remark: _remarkCtl.text, remark: _remarkCtl.text,
photoUrls: widget.package!.photoUrls); photoUrls: widget.package!.photoUrls);
return widget.package!.isChangedForEditProcessing(_package) || return widget.package!.isChangedForEditProcessing(_package) ||

View File

@@ -7,7 +7,7 @@ import 'package:fcs/pages/package/package_info.dart';
import 'package:fcs/pages/user_search/user_serach.dart'; import 'package:fcs/pages/user_search/user_serach.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/fcs_id_icon.dart'; import 'package:fcs/pages/widgets/fcs_id_icon.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -177,23 +177,11 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: _isNew ? "processing.create" : "processing.update",
leading: new IconButton(
icon:
new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () {
Navigator.of(context).pop();
},
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( labelColor: primaryColor,
context, arrowColor: primaryColor,
_isNew ? "processing.create" : "processing.update",
fontSize: 20,
color: primaryColor,
),
), ),
body: Padding( body: Padding(
padding: const EdgeInsets.only(left: 12.0, right: 12), padding: const EdgeInsets.only(left: 12.0, right: 12),

View File

@@ -4,7 +4,7 @@ import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/package/model/package_model.dart'; import 'package:fcs/pages/package/model/package_model.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/fcs_id_icon.dart'; import 'package:fcs/pages/widgets/fcs_id_icon.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/multi_img_controller.dart'; import 'package:fcs/pages/widgets/multi_img_controller.dart';
import 'package:fcs/pages/widgets/multi_img_file.dart'; import 'package:fcs/pages/widgets/multi_img_file.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
@@ -131,21 +131,12 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "processing.info.title",
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () => Navigator.of(context).pop(),
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( labelColor: primaryColor,
context, arrowColor: primaryColor,
"processing.info.title", actions: [
fontSize: 20,
color: primaryColor,
),
actions: <Widget>[
IconButton( IconButton(
icon: Icon(Icons.delete, color: primaryColor), icon: Icon(Icons.delete, color: primaryColor),
onPressed: _delete, onPressed: _delete,
@@ -154,9 +145,9 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
icon: Icon(Icons.edit, color: primaryColor), icon: Icon(Icons.edit, color: primaryColor),
onPressed: _gotoEditor, onPressed: _gotoEditor,
), ),
], ]),
),
body: Card( body: Card(
elevation: 0,
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
@@ -177,9 +168,7 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
StatusTree( StatusTree(
shipmentHistory: _package!.shipmentHistory, shipmentHistory: _package!.shipmentHistory,
currentStatus: _package!.status ?? ""), currentStatus: _package!.status ?? ""),
SizedBox( SizedBox(height: 20)
height: 20,
)
]), ]),
)), )),
], ],
@@ -222,7 +211,7 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
PackageModel packageModel = PackageModel packageModel =
Provider.of<PackageModel>(context, listen: false); Provider.of<PackageModel>(context, listen: false);
Package? p = await packageModel.getPackage(_package!.id!); Package? p = await packageModel.getPackage(_package!.id!);
if(p == null)return; if (p == null) return;
initPackage(p); initPackage(p);
} }
} }

View File

@@ -2,6 +2,7 @@ import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/package/model/package_model.dart'; import 'package:fcs/pages/package/model/package_model.dart';
import 'package:fcs/pages/package_search/package_serach.dart'; import 'package:fcs/pages/package_search/package_serach.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:fcs/pagination/paginator_listview.dart'; import 'package:fcs/pagination/paginator_listview.dart';
@@ -39,20 +40,7 @@ class _ProcessingListState extends State<ProcessingList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(labelKey: "processing.title", actions: [
centerTitle: true,
leading: new IconButton(
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
title: LocalText(
context,
"processing.title",
fontSize: 20,
color: Colors.white,
),
actions: <Widget>[
IconButton( IconButton(
icon: Icon( icon: Icon(
Icons.search, Icons.search,
@@ -60,10 +48,8 @@ class _ProcessingListState extends State<ProcessingList> {
), ),
iconSize: 30, iconSize: 30,
onPressed: () => searchPackage(context, onPressed: () => searchPackage(context,
callbackPackageSelect: _searchCallback), callbackPackageSelect: _searchCallback))
), ]),
],
),
floatingActionButton: FloatingActionButton.extended( floatingActionButton: FloatingActionButton.extended(
onPressed: () { onPressed: () {
_newProcessing(); _newProcessing();

View File

@@ -1,8 +1,7 @@
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/main/model/main_model.dart'; import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
@@ -41,27 +40,11 @@ class _ProfileCurrencyEditState extends State<ProfileCurrencyEdit> {
return LocalProgress( return LocalProgress(
inAsyncCall: _loading, inAsyncCall: _loading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: 'profile.edit.currency.title',
title: LocalText(
context,
"profile.edit.currency.title",
fontSize: 20,
color: primaryColor,
),
backgroundColor: Colors.white, backgroundColor: Colors.white,
shadowColor: Colors.transparent, labelColor: primaryColor,
leading: IconButton( arrowColor: primaryColor),
icon: Icon(
CupertinoIcons.back,
size: 35,
color: primaryColor,
),
onPressed: () {
Navigator.of(context).pop();
},
),
),
body: Column( body: Column(
children: <Widget>[ children: <Widget>[
InkWell( InkWell(
@@ -75,7 +58,7 @@ class _ProfileCurrencyEditState extends State<ProfileCurrencyEdit> {
value: Currency.USD, value: Currency.USD,
groupValue: _currency, groupValue: _currency,
onChanged: (Currency? value) { onChanged: (Currency? value) {
if(value != null) if (value != null)
setState(() { setState(() {
_currency = value; _currency = value;
}); });
@@ -94,7 +77,7 @@ class _ProfileCurrencyEditState extends State<ProfileCurrencyEdit> {
value: Currency.MMK, value: Currency.MMK,
groupValue: _currency, groupValue: _currency,
onChanged: (Currency? value) { onChanged: (Currency? value) {
if(value != null) if (value != null)
setState(() { setState(() {
_currency = value; _currency = value;
}); });

View File

@@ -2,9 +2,8 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/localization/app_translations.dart'; import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/main/model/language_model.dart'; import 'package:fcs/pages/main/model/language_model.dart';
import 'package:fcs/pages/main/model/main_model.dart'; import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
@@ -58,27 +57,11 @@ class _ProfileEditState extends State<ProfileEdit> {
return LocalProgress( return LocalProgress(
inAsyncCall: _loading, inAsyncCall: _loading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "profile.edit_title",
title: LocalText(
context,
"profile.edit_title",
fontSize: 20,
color: primaryColor,
),
backgroundColor: Colors.white, backgroundColor: Colors.white,
shadowColor: Colors.transparent, labelColor: primaryColor,
leading: IconButton( arrowColor: primaryColor),
icon: Icon(
CupertinoIcons.back,
size: 35,
color: primaryColor,
),
onPressed: () {
Navigator.of(context).pop();
},
),
),
body: Column( body: Column(
children: <Widget>[ children: <Widget>[
Expanded(child: name), Expanded(child: name),

View File

@@ -12,7 +12,7 @@ import 'package:fcs/pages/staff/model/staff_model.dart';
import 'package:fcs/pages/widgets/defalut_delivery_address.dart'; import 'package:fcs/pages/widgets/defalut_delivery_address.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/fcs_id_icon.dart'; import 'package:fcs/pages/widgets/fcs_id_icon.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -128,25 +128,11 @@ class _ProfileState extends State<Profile> {
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
key: key, key: key,
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "profile.title",
leading: IconButton(
icon: Icon(
CupertinoIcons.back,
size: 35,
color: primaryColor,
),
onPressed: () => Navigator.of(context).pop(),
),
title: LocalText(
context,
"profile.title",
fontSize: 20,
color: primaryColor,
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
), labelColor: primaryColor,
arrowColor: primaryColor),
body: Padding( body: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: ListView( child: ListView(

View File

@@ -1,10 +1,9 @@
import 'package:fcs/domain/entities/cargo_type.dart'; import 'package:fcs/domain/entities/cargo_type.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -56,11 +55,12 @@ class _CargoEditorState extends State<CargoEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "cargo.form.title",
leading: new IconButton( backgroundColor: Colors.white,
icon: new Icon(CupertinoIcons.back), labelColor: primaryColor,
onPressed: () { arrowColor: primaryColor,
onBack: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -69,14 +69,11 @@ class _CargoEditorState extends State<CargoEditor> {
Navigator.of(context).pop(); Navigator.of(context).pop();
} }
}, },
),
backgroundColor: primaryColor,
title: Text(AppTranslations.of(context)!.text("cargo.form.title")),
actions: [ actions: [
_isNew _isNew
? Container() ? Container()
: IconButton( : IconButton(
icon: Icon(Icons.delete), icon: Icon(Icons.delete, color: primaryColor),
onPressed: _delete, onPressed: _delete,
) )
], ],

View File

@@ -1,5 +1,6 @@
import 'package:fcs/domain/entities/cargo_type.dart'; import 'package:fcs/domain/entities/cargo_type.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -35,20 +36,7 @@ class _CargoTypeListState extends State<CargoTypeList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(labelKey: "cargo.form.title"),
centerTitle: true,
leading: new IconButton(
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.pop(context),
),
backgroundColor: primaryColor,
title: LocalText(
context,
"cargo.form.title",
fontSize: 20,
color: Colors.white,
),
),
floatingActionButton: FloatingActionButton.extended( floatingActionButton: FloatingActionButton.extended(
onPressed: () { onPressed: () {
Navigator.of(context).push( Navigator.of(context).push(

View File

@@ -1,10 +1,9 @@
import 'package:fcs/domain/entities/cargo_type.dart'; import 'package:fcs/domain/entities/cargo_type.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -64,13 +63,12 @@ class _CustomEditorState extends State<CustomEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: 'rate.custom.form.title',
leading: new IconButton( backgroundColor: Colors.white,
icon: new Icon( arrowColor: primaryColor,
CupertinoIcons.back, labelColor: primaryColor,
), onBack: () {
onPressed: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -79,15 +77,11 @@ class _CustomEditorState extends State<CustomEditor> {
Navigator.of(context).pop(); Navigator.of(context).pop();
} }
}, },
),
backgroundColor: primaryColor,
title:
Text(AppTranslations.of(context)!.text("rate.custom.form.title")),
actions: [ actions: [
_isNew _isNew
? Container() ? Container()
: IconButton( : IconButton(
icon: Icon(Icons.delete), icon: Icon(Icons.delete, color: primaryColor),
onPressed: _delete, onPressed: _delete,
) )
], ],

View File

@@ -1,6 +1,7 @@
import 'package:fcs/domain/entities/cargo_type.dart'; import 'package:fcs/domain/entities/cargo_type.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/rates/custom_editor.dart'; import 'package:fcs/pages/rates/custom_editor.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -39,20 +40,7 @@ class _CustomListState extends State<CustomList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(labelKey: 'rate.custom_duty.title'),
centerTitle: true,
leading: new IconButton(
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.pop(context),
),
backgroundColor: primaryColor,
title: LocalText(
context,
"rate.custom_duty.title",
fontSize: 20,
color: Colors.white,
),
),
floatingActionButton: FloatingActionButton.extended( floatingActionButton: FloatingActionButton.extended(
onPressed: () { onPressed: () {
Navigator.of(context).push( Navigator.of(context).push(
@@ -81,8 +69,9 @@ class _CustomListState extends State<CustomList> {
}, },
child: Container( child: Container(
child: _row( child: _row(
custom.name??"", custom.name ?? "",
"Custom Fee \$ " + custom.customDutyFee.toStringAsFixed(2), "Custom Fee \$ " +
custom.customDutyFee.toStringAsFixed(2),
// ignore: unnecessary_null_comparison // ignore: unnecessary_null_comparison
custom.rate == null custom.rate == null
? "" ? ""

View File

@@ -1,6 +1,7 @@
import 'package:fcs/domain/entities/discount_by_weight.dart'; import 'package:fcs/domain/entities/discount_by_weight.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/rates/discount_by_weight_editor.dart'; import 'package:fcs/pages/rates/discount_by_weight_editor.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -35,20 +36,7 @@ class _DiscountByWeightListState extends State<DiscountByWeightList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(labelKey: 'rate.discount_by_weight'),
centerTitle: true,
leading: new IconButton(
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.pop(context),
),
backgroundColor: primaryColor,
title: LocalText(
context,
"rate.discount_by_weight",
fontSize: 20,
color: Colors.white,
),
),
floatingActionButton: FloatingActionButton.extended( floatingActionButton: FloatingActionButton.extended(
onPressed: () { onPressed: () {
Navigator.of(context).push(CupertinoPageRoute( Navigator.of(context).push(CupertinoPageRoute(
@@ -86,7 +74,7 @@ class _DiscountByWeightListState extends State<DiscountByWeightList> {
_row(String desc, String price) { _row(String desc, String price) {
return Container( return Container(
padding: EdgeInsets.only(left: 25, top: 5, bottom: 5), padding: EdgeInsets.only(left: 25, top: 8, bottom: 8),
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Text('$desc ', style: TextStyle(fontSize: 15)), Text('$desc ', style: TextStyle(fontSize: 15)),

View File

@@ -1,11 +1,10 @@
import 'package:fcs/domain/entities/discount_by_weight.dart'; import 'package:fcs/domain/entities/discount_by_weight.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/rates/model/shipment_rate_model.dart'; import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -58,11 +57,12 @@ class _DiscountByWeightEditorState extends State<DiscountByWeightEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: 'discount.new',
leading: new IconButton( backgroundColor: Colors.white,
icon: new Icon(CupertinoIcons.back), labelColor: primaryColor,
onPressed: () { arrowColor: primaryColor,
onBack: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -71,14 +71,11 @@ class _DiscountByWeightEditorState extends State<DiscountByWeightEditor> {
Navigator.of(context).pop(); Navigator.of(context).pop();
} }
}, },
),
backgroundColor: primaryColor,
title: Text(AppTranslations.of(context)!.text("discount.new")),
actions: [ actions: [
_isNew _isNew
? Container() ? Container()
: IconButton( : IconButton(
icon: Icon(Icons.delete), icon: Icon(Icons.delete, color: primaryColor),
onPressed: _delete, onPressed: _delete,
) )
], ],

View File

@@ -6,6 +6,7 @@ import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/rates/cargo_type_list.dart'; import 'package:fcs/pages/rates/cargo_type_list.dart';
import 'package:fcs/pages/rates/custom_list.dart'; import 'package:fcs/pages/rates/custom_list.dart';
import 'package:fcs/pages/rates/model/shipment_rate_model.dart'; import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -46,33 +47,23 @@ class _ShipmentRatesState extends State<ShipmentRates> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "rate.title",
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: Colors.white, backgroundColor: Colors.white,
shadowColor: Colors.transparent, labelColor: primaryColor,
title: LocalText(context, 'rate.title', arrowColor: primaryColor,
color: primaryColor, fontSize: 20),
actions: isEditable actions: isEditable
? [ ? [
IconButton( IconButton(
onPressed: () => Navigator.of(context).push( onPressed: () => Navigator.of(context).push(
CupertinoPageRoute( CupertinoPageRoute(
builder: (context) => ShipmentRatesEdit())), builder: (context) => ShipmentRatesEdit())),
icon: Icon( icon: Icon(Icons.edit, color: primaryColor))
Icons.edit,
color: primaryColor,
))
] ]
: [], : []),
),
body: Padding( body: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: ListView( child: ListView(
// crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
fcsButton(context, getLocalString(context, "rate.cal.title"), fcsButton(context, getLocalString(context, "rate.cal.title"),
callack: () { callack: () {

View File

@@ -6,6 +6,7 @@ import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/length_picker.dart'; import 'package:fcs/pages/widgets/length_picker.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_dropdown.dart'; import 'package:fcs/pages/widgets/local_dropdown.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
@@ -53,9 +54,9 @@ class _ShipmentRatesCalState extends State<ShipmentRatesCal> {
_calShipmentWeight() { _calShipmentWeight() {
Rate rate = Provider.of<ShipmentRateModel>(context, listen: false).rate; Rate rate = Provider.of<ShipmentRateModel>(context, listen: false).rate;
double l = double.parse(_lengthController.text); double l = double.tryParse(_lengthController.text) ?? 0;
double w = double.parse(_widthController.text); double w = double.tryParse(_widthController.text) ?? 0;
double h = double.parse(_heightController.text); double h = double.tryParse(_heightController.text) ?? 0;
_cargoType.weight = double.tryParse(_actualWeightCtl.text) ?? 0; _cargoType.weight = double.tryParse(_actualWeightCtl.text) ?? 0;
Carton box = Carton box =
Carton(cargoTypes: [_cargoType], length: l, width: w, height: h); Carton(cargoTypes: [_cargoType], length: l, width: w, height: h);
@@ -137,19 +138,11 @@ class _ShipmentRatesCalState extends State<ShipmentRatesCal> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "rate.cal.title",
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor),
onPressed: () {
Navigator.of(context).pop();
},
),
backgroundColor: Colors.white, backgroundColor: Colors.white,
shadowColor: Colors.transparent, labelColor: primaryColor,
title: LocalText(context, 'rate.cal.title', arrowColor: primaryColor),
color: primaryColor, fontSize: 20),
),
body: Padding( body: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: ListView( child: ListView(

View File

@@ -1,10 +1,9 @@
import 'package:fcs/domain/entities/rate.dart'; import 'package:fcs/domain/entities/rate.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/rates/model/shipment_rate_model.dart'; import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -73,13 +72,12 @@ class _ShipmentRatesEditState extends State<ShipmentRatesEdit> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "rate.edit.title",
leading: new IconButton( backgroundColor: Colors.white,
icon: new Icon( labelColor: primaryColor,
CupertinoIcons.back, arrowColor: primaryColor,
), onBack: () {
onPressed: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -89,9 +87,6 @@ class _ShipmentRatesEditState extends State<ShipmentRatesEdit> {
} }
}, },
), ),
backgroundColor: primaryColor,
title: Text(AppTranslations.of(context)!.text("rate.edit.title")),
),
body: Container( body: Container(
padding: EdgeInsets.all(18), padding: EdgeInsets.all(18),
child: Column( child: Column(

View File

@@ -8,11 +8,10 @@ import 'package:fcs/pages/widgets/barcode_scanner.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/fcs_id_icon.dart'; import 'package:fcs/pages/widgets/fcs_id_icon.dart';
import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/multi_img_controller.dart'; import 'package:fcs/pages/widgets/multi_img_controller.dart';
import 'package:fcs/pages/widgets/multi_img_file.dart'; import 'package:fcs/pages/widgets/multi_img_file.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -143,12 +142,12 @@ class _ReceivingEditorState extends State<ReceivingEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: _isNew ? "receiving.create" : "receiving.update",
leading: new IconButton( backgroundColor: Colors.white,
icon: labelColor: primaryColor,
new Icon(CupertinoIcons.back, color: primaryColor, size: 30), arrowColor: primaryColor,
onPressed: () { onBack: () {
if (isDataChanged()) { if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () { showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop(); Navigator.of(context).pop();
@@ -158,15 +157,6 @@ class _ReceivingEditorState extends State<ReceivingEditor> {
} }
}, },
), ),
shadowColor: Colors.transparent,
backgroundColor: Colors.white,
title: LocalText(
context,
_isNew ? "receiving.create" : "receiving.update",
fontSize: 20,
color: primaryColor,
),
),
body: Padding( body: Padding(
padding: const EdgeInsets.only(left: 12.0, right: 12), padding: const EdgeInsets.only(left: 12.0, right: 12),
child: ListView( child: ListView(

View File

@@ -5,7 +5,7 @@ import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/package/model/package_model.dart'; import 'package:fcs/pages/package/model/package_model.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/fcs_id_icon.dart'; import 'package:fcs/pages/widgets/fcs_id_icon.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/multi_img_controller.dart'; import 'package:fcs/pages/widgets/multi_img_controller.dart';
import 'package:fcs/pages/widgets/multi_img_file.dart'; import 'package:fcs/pages/widgets/multi_img_file.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
@@ -85,20 +85,11 @@ class _ReceivingInfoState extends State<ReceivingInfo> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "receiving.info",
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () => Navigator.of(context).pop(),
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( arrowColor: primaryColor,
context, labelColor: primaryColor,
"receiving.info",
fontSize: 20,
color: primaryColor,
),
actions: isCustomer actions: isCustomer
? null ? null
: <Widget>[ : <Widget>[
@@ -113,6 +104,7 @@ class _ReceivingInfoState extends State<ReceivingInfo> {
], ],
), ),
body: Card( body: Card(
elevation: 0,
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(

View File

@@ -2,6 +2,7 @@ import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/package/model/package_model.dart'; import 'package:fcs/pages/package/model/package_model.dart';
import 'package:fcs/pages/package_search/package_serach.dart'; import 'package:fcs/pages/package_search/package_serach.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:fcs/pagination/paginator_listview.dart'; import 'package:fcs/pagination/paginator_listview.dart';
@@ -29,20 +30,9 @@ class _ReceivingListState extends State<ReceivingList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "receiving.title",
leading: new IconButton( actions: [
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
title: LocalText(
context,
"receiving.title",
fontSize: 20,
color: Colors.white,
),
actions: <Widget>[
IconButton( IconButton(
icon: Icon( icon: Icon(
Icons.search, Icons.search,
@@ -51,7 +41,7 @@ class _ReceivingListState extends State<ReceivingList> {
iconSize: 30, iconSize: 30,
onPressed: () => searchPackage(context, onPressed: () => searchPackage(context,
callbackPackageSelect: _searchCallback), callbackPackageSelect: _searchCallback),
), )
], ],
), ),
floatingActionButton: FloatingActionButton.extended( floatingActionButton: FloatingActionButton.extended(

View File

@@ -6,9 +6,8 @@ import 'package:fcs/pages/main/model/language_model.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/staff/model/staff_model.dart'; import 'package:fcs/pages/staff/model/staff_model.dart';
import 'package:fcs/pages/widgets/display_text.dart'; import 'package:fcs/pages/widgets/display_text.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -37,8 +36,8 @@ class _StaffEditorState extends State<StaffEditor> {
isNew = widget.staff == null; isNew = widget.staff == null;
user = User(); user = User();
if (!isNew) { if (!isNew) {
user = user = User(
User(name: widget.staff!.name, phoneNumber: widget.staff!.phoneNumber); name: widget.staff!.name, phoneNumber: widget.staff!.phoneNumber);
user.privileges = widget.staff!.privileges; user.privileges = widget.staff!.privileges;
privileges.forEach((p) => user.privileges.contains(p.id) privileges.forEach((p) => user.privileges.contains(p.id)
? p.isChecked = true ? p.isChecked = true
@@ -64,8 +63,9 @@ class _StaffEditorState extends State<StaffEditor> {
new Checkbox( new Checkbox(
value: p.isChecked == null ? false : p.isChecked, value: p.isChecked == null ? false : p.isChecked,
activeColor: primaryColor, activeColor: primaryColor,
side: BorderSide(color: Colors.black38, width: 2),
onChanged: (bool? value) { onChanged: (bool? value) {
if(value != null) if (value != null)
setState(() { setState(() {
p.isChecked = value; p.isChecked = value;
}); });
@@ -79,7 +79,7 @@ class _StaffEditorState extends State<StaffEditor> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
new Text( new Text(
p.name ??"", p.name ?? "",
style: TextStyle(fontSize: 15.0, color: primaryColor), style: TextStyle(fontSize: 15.0, color: primaryColor),
), ),
Text(p.desc ?? "", Text(p.desc ?? "",
@@ -169,23 +169,11 @@ class _StaffEditorState extends State<StaffEditor> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(
centerTitle: true, labelKey: "staff.form.title",
leading: new IconButton(
icon: new Icon(CupertinoIcons.back,
color: primaryColor, size: 30),
onPressed: () {
Navigator.of(context).pop();
}),
shadowColor: Colors.transparent,
backgroundColor: Colors.white, backgroundColor: Colors.white,
title: LocalText( labelColor: primaryColor,
context, arrowColor: primaryColor),
"staff.form.title",
fontSize: 20,
color: primaryColor,
),
),
body: Padding( body: Padding(
padding: const EdgeInsets.only(left: 12.0, right: 12), padding: const EdgeInsets.only(left: 12.0, right: 12),
child: ListView( child: ListView(
@@ -197,7 +185,7 @@ class _StaffEditorState extends State<StaffEditor> {
namebox, namebox,
Padding( Padding(
padding: const EdgeInsets.only(top: 18.0), padding: const EdgeInsets.only(top: 18.0),
child: Text("Privileges"), child: Text("Privileges", style: TextStyle(fontSize: 15)),
), ),
Column( Column(
children: showprivilegeList(context), children: showprivilegeList(context),
@@ -227,7 +215,8 @@ class _StaffEditorState extends State<StaffEditor> {
}); });
StaffModel staffModel = Provider.of<StaffModel>(context, listen: false); StaffModel staffModel = Provider.of<StaffModel>(context, listen: false);
try { try {
await staffModel.updatePrivileges(this.selectedUser!.id!, privilegesIDs()); await staffModel.updatePrivileges(
this.selectedUser!.id!, privilegesIDs());
Navigator.pop(context); Navigator.pop(context);
} catch (e) { } catch (e) {
showMsgDialog(context, "Error", e.toString()); showMsgDialog(context, "Error", e.toString());

View File

@@ -1,6 +1,7 @@
import 'package:fcs/domain/entities/user.dart'; import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/staff/model/staff_model.dart'; import 'package:fcs/pages/staff/model/staff_model.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -35,20 +36,7 @@ class _StaffListState extends State<StaffList> {
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: LocalAppBar(labelKey: "staff.list.title"),
centerTitle: true,
leading: new IconButton(
icon: new Icon(CupertinoIcons.back),
onPressed: () => Navigator.of(context).pop(),
),
backgroundColor: primaryColor,
title: LocalText(
context,
'staff.list.title',
color: Colors.white,
fontSize: 20,
),
),
floatingActionButton: FloatingActionButton.extended( floatingActionButton: FloatingActionButton.extended(
onPressed: () { onPressed: () {
Navigator.of(context).push( Navigator.of(context).push(

View File

@@ -1,4 +1,3 @@
import 'package:fcs/domain/vo/term.dart'; import 'package:fcs/domain/vo/term.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/main/util.dart';
@@ -69,11 +68,7 @@ class _TermEditState extends State<TermEdit> {
color: primaryColor, color: primaryColor,
), ),
leading: IconButton( leading: IconButton(
icon: Icon( icon: Icon(CupertinoIcons.back, color: primaryColor, size: 25),
CupertinoIcons.back,
color: primaryColor,
size: 30,
),
onPressed: () { onPressed: () {
Navigator.of(context).pop(); Navigator.of(context).pop();
}, },
@@ -85,7 +80,8 @@ class _TermEditState extends State<TermEdit> {
onPressed: _unfocus, onPressed: _unfocus,
icon: Icon(Icons.check, color: primaryColor)) icon: Icon(Icons.check, color: primaryColor))
], ],
bottom: TabBar( bottom: TabBar.secondary(
indicatorColor: primaryColor,
onTap: (index) { onTap: (index) {
if (index == 0) { if (index == 0) {
_focusNodeEng = new FocusNode(); _focusNodeEng = new FocusNode();
@@ -119,12 +115,15 @@ class _TermEditState extends State<TermEdit> {
height: MediaQuery.of(context).size.height - 200, height: MediaQuery.of(context).size.height - 200,
child: TabBarView( child: TabBarView(
children: [ children: [
const SizedBox(),
const SizedBox(),
// textEditor(_controllerEng, _focusNodeEng), // textEditor(_controllerEng, _focusNodeEng),
// textEditor(_controllerMm, _focusNodeMm), // textEditor(_controllerMm, _focusNodeMm),
], ],
), ),
), ),
savebtn, savebtn,
const SizedBox(height: 20)
], ],
), ),
), ),

View File

@@ -1,10 +1,9 @@
import 'package:fcs/domain/entities/setting.dart'; import 'package:fcs/domain/entities/setting.dart';
import 'package:fcs/domain/vo/term.dart'; import 'package:fcs/domain/vo/term.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/main/model/main_model.dart'; import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/term/term_edit.dart'; import 'package:fcs/pages/term/term_edit.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -51,23 +50,11 @@ class _TermPageState extends State<TermPage> {
bool isEditable = context.select((MainModel m) => m.termEditable()); bool isEditable = context.select((MainModel m) => m.termEditable());
return Scaffold( return Scaffold(
appBar: AppBar( appBar: LocalAppBar(
shadowColor: Colors.transparent, labelKey: 'term',
backgroundColor: Colors.white, backgroundColor: Colors.white,
centerTitle: true, labelColor: primaryColor,
leading: new IconButton( arrowColor: primaryColor,
icon: new Icon(
CupertinoIcons.back,
color: primaryColor,
),
onPressed: () => Navigator.of(context).pop(),
),
title: LocalText(
context,
'term',
color: primaryColor,
fontSize: 20,
),
actions: isEditable actions: isEditable
? [ ? [
IconButton( IconButton(
@@ -76,10 +63,7 @@ class _TermPageState extends State<TermPage> {
builder: (context) => builder: (context) =>
TermEdit(term: Term.fromSetting(setting!)), TermEdit(term: Term.fromSetting(setting!)),
)), )),
icon: Icon( icon: Icon(Icons.edit, color: primaryColor))
Icons.edit,
color: primaryColor,
))
] ]
: [], : [],
), ),

View File

@@ -2,6 +2,7 @@ import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/package/model/package_model.dart'; import 'package:fcs/pages/package/model/package_model.dart';
import 'package:fcs/pages/user_search/user_list_row.dart'; import 'package:fcs/pages/user_search/user_list_row.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -30,13 +31,15 @@ class UserSearchDelegate extends SearchDelegate<User> {
final ThemeData theme = Theme.of(context); final ThemeData theme = Theme.of(context);
return theme.copyWith( return theme.copyWith(
appBarTheme: AppBarTheme(color: primaryColor), appBarTheme: AppBarTheme(color: primaryColor),
iconButtonTheme: IconButtonThemeData(
style: ButtonStyle(
iconColor: MaterialStateProperty.all<Color>(Colors.white))),
inputDecorationTheme: InputDecorationTheme( inputDecorationTheme: InputDecorationTheme(
border: InputBorder.none, border: InputBorder.none,
hintStyle: TextStyle( hintStyle: TextStyle(color: Colors.grey, fontSize: 14)),
color: theme.primaryTextTheme.caption?.color, fontSize: 14)),
textTheme: TextTheme( textTheme: TextTheme(
headline1: TextStyle( displayLarge: TextStyle(
color: theme.primaryTextTheme.headline1?.color, color: theme.primaryTextTheme.displayLarge?.color,
fontSize: 16, fontSize: 16,
backgroundColor: primaryColor)), backgroundColor: primaryColor)),
primaryColor: primaryColor, primaryColor: primaryColor,
@@ -56,7 +59,7 @@ class UserSearchDelegate extends SearchDelegate<User> {
@override @override
Widget buildLeading(BuildContext context) { Widget buildLeading(BuildContext context) {
return IconButton( return IconButton(
icon: Icon(Icons.arrow_back), icon: Icon(CupertinoIcons.back),
onPressed: () => close(context, new User()), onPressed: () => close(context, new User()),
); );
} }

View File

@@ -15,7 +15,11 @@ class DefaultDeliveryAddress extends StatelessWidget {
final IconData? iconData; final IconData? iconData;
const DefaultDeliveryAddress( const DefaultDeliveryAddress(
{Key? key, this.deliveryAddress, this.onTap, this.labelKey, this.iconData}) {Key? key,
this.deliveryAddress,
this.onTap,
this.labelKey,
this.iconData})
: super(key: key); : super(key: key);
@override @override
@@ -38,6 +42,9 @@ class DefaultDeliveryAddress extends StatelessWidget {
: GestureDetector( : GestureDetector(
onTap: () => onTap!(), onTap: () => onTap!(),
child: Chip( child: Chip(
shape: const StadiumBorder(
side: BorderSide(color: Colors.transparent)),
backgroundColor: Colors.grey.withOpacity(0.3),
label: LocalText( label: LocalText(
context, "delivery_address.change_address", context, "delivery_address.change_address",
color: primaryColor)), color: primaryColor)),

View File

@@ -1,8 +1,6 @@
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/local_text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'input_text.dart'; import 'input_text.dart';
@@ -268,6 +266,7 @@ class _LengthPickerDialogState extends State<LengthPickerDialog> {
), ),
), ),
Slider( Slider(
inactiveColor: Colors.grey.shade200,
activeColor: primaryColor, activeColor: primaryColor,
value: _valueFeet.toDouble() > MAX_FEET value: _valueFeet.toDouble() > MAX_FEET
? 0 ? 0
@@ -296,6 +295,7 @@ class _LengthPickerDialogState extends State<LengthPickerDialog> {
), ),
), ),
Slider( Slider(
inactiveColor: Colors.grey.shade200,
activeColor: primaryColor, activeColor: primaryColor,
value: _valueInc.toDouble() > (widget.displayFeet! ? 11 : MAX_INC) value: _valueInc.toDouble() > (widget.displayFeet! ? 11 : MAX_INC)
? 0 ? 0

View File

@@ -1,7 +1,6 @@
import 'package:fcs/helpers/theme.dart'; import 'package:fcs/helpers/theme.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'local_text.dart'; import 'local_text.dart';
class LocalAppBar extends StatelessWidget implements PreferredSizeWidget { class LocalAppBar extends StatelessWidget implements PreferredSizeWidget {
@@ -12,6 +11,7 @@ class LocalAppBar extends StatelessWidget implements PreferredSizeWidget {
final List<Widget>? actions; final List<Widget>? actions;
final Widget? titleWidget; final Widget? titleWidget;
final Function()? onBack; final Function()? onBack;
final bool centerTitle;
const LocalAppBar( const LocalAppBar(
{Key? key, {Key? key,
@@ -21,7 +21,8 @@ class LocalAppBar extends StatelessWidget implements PreferredSizeWidget {
this.arrowColor = Colors.white, this.arrowColor = Colors.white,
this.actions, this.actions,
this.titleWidget, this.titleWidget,
this.onBack}) this.onBack,
this.centerTitle = true})
: super(key: key); : super(key: key);
@override @override
@@ -31,21 +32,23 @@ class LocalAppBar extends StatelessWidget implements PreferredSizeWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppBar( return AppBar(
elevation: 0, elevation: 0,
centerTitle: true, centerTitle: centerTitle,
leading: IconButton( leading: IconButton(
icon: Icon(CupertinoIcons.back, color: arrowColor, size: 25), icon: Icon(CupertinoIcons.back, color: arrowColor, size: 25),
onPressed: onBack), onPressed: () {
if (onBack != null) {
onBack!();
} else {
Navigator.of(context).pop();
}
}),
shadowColor: Colors.transparent, shadowColor: Colors.transparent,
backgroundColor: backgroundColor, backgroundColor: backgroundColor,
surfaceTintColor: backgroundColor, surfaceTintColor: backgroundColor,
title: titleWidget ?? title: titleWidget ??
(labelKey != null (labelKey != null
? LocalText( ? LocalText(context, labelKey!,
context, color: labelColor ?? Colors.white, fontSize: 20)
labelKey!,
color: Colors.white,
fontSize: 20,
)
: const SizedBox()), : const SizedBox()),
actions: actions, actions: actions,
); );

View File

@@ -19,6 +19,7 @@ class StatusTree extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ExpansionTile( return ExpansionTile(
initiallyExpanded: true, initiallyExpanded: true,
shape: Border.symmetric(horizontal: BorderSide(color: Colors.grey.shade300)),
title: Text( title: Text(
'Status', 'Status',
style: TextStyle(color: primaryColor, fontWeight: FontWeight.bold), style: TextStyle(color: primaryColor, fontWeight: FontWeight.bold),

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import '../helpers/theme.dart';
import 'paginator_listener.dart'; import 'paginator_listener.dart';
typedef RowBuilder = Widget Function(dynamic); typedef RowBuilder = Widget Function(dynamic);
@@ -81,7 +82,7 @@ class _PaginatorListViewState<T> extends State<PaginatorListView<T>> {
}, },
child: ListView.separated( child: ListView.separated(
separatorBuilder: (context, index) => separatorBuilder: (context, index) =>
Divider(height: 1, color: Colors.black), Divider(height: 1, color: dividerColor),
controller: widget._scrollController, controller: widget._scrollController,
scrollDirection: Axis.vertical, scrollDirection: Axis.vertical,
physics: const AlwaysScrollableScrollPhysics(), physics: const AlwaysScrollableScrollPhysics(),