add contact
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
import 'package:fcs/fcs/common/localization/app_translations_delegate.dart';
|
||||||
|
import 'package:fcs/fcs/common/localization/transalation.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/model/language_model.dart';
|
||||||
import 'package:fcs/model/buyer_model.dart';
|
import 'package:fcs/model/buyer_model.dart';
|
||||||
import 'package:fcs/model/delivery_model.dart';
|
import 'package:fcs/model/delivery_model.dart';
|
||||||
import 'package:fcs/model/discount_model.dart';
|
import 'package:fcs/model/discount_model.dart';
|
||||||
@@ -25,7 +28,6 @@ import 'model/device_model.dart';
|
|||||||
import 'model/do_model.dart';
|
import 'model/do_model.dart';
|
||||||
import 'model/employee_model.dart';
|
import 'model/employee_model.dart';
|
||||||
import 'model/invoice_model.dart';
|
import 'model/invoice_model.dart';
|
||||||
import 'model/language_model.dart';
|
|
||||||
import 'model/log_model.dart';
|
import 'model/log_model.dart';
|
||||||
import 'model/main_model.dart';
|
import 'model/main_model.dart';
|
||||||
import 'model/pickup_model.dart';
|
import 'model/pickup_model.dart';
|
||||||
@@ -39,8 +41,6 @@ import 'fcs/common/pages/home_page.dart';
|
|||||||
import 'fcs/common/pages/welcome_page.dart';
|
import 'fcs/common/pages/welcome_page.dart';
|
||||||
import 'fcs/common/pages/splash_page.dart';
|
import 'fcs/common/pages/splash_page.dart';
|
||||||
import 'pages/term.dart';
|
import 'pages/term.dart';
|
||||||
import 'widget/localization/app_translations_delegate.dart';
|
|
||||||
import 'widget/localization/transalation.dart';
|
|
||||||
|
|
||||||
class App extends StatefulWidget {
|
class App extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
@@ -92,7 +92,6 @@ class _AppState extends State<App> {
|
|||||||
mainModel
|
mainModel
|
||||||
..addModel(userModel)
|
..addModel(userModel)
|
||||||
..addModel(employeeModel)
|
..addModel(employeeModel)
|
||||||
..addModel(lanuguageModel)
|
|
||||||
..addModel(storageModel)
|
..addModel(storageModel)
|
||||||
..addModel(regModel)
|
..addModel(regModel)
|
||||||
..addModel(poSubmissionModel)
|
..addModel(poSubmissionModel)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import 'package:provider/provider.dart';
|
|||||||
import 'package:fcs/charts/qtyby_customer_table.dart';
|
import 'package:fcs/charts/qtyby_customer_table.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/model/product_model.dart';
|
import 'package:fcs/model/product_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/po.dart';
|
import 'package:fcs/vo/po.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/revenue.dart';
|
import 'package:fcs/vo/revenue.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/revenue.dart';
|
import 'package:fcs/vo/revenue.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/my_data_table.dart';
|
import 'package:fcs/widget/my_data_table.dart';
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/revenue.dart';
|
import 'package:fcs/vo/revenue.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/revenue.dart';
|
import 'package:fcs/vo/revenue.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/my_data_table.dart';
|
import 'package:fcs/widget/my_data_table.dart';
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/revenue.dart';
|
import 'package:fcs/vo/revenue.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/revenue.dart';
|
import 'package:fcs/vo/revenue.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/my_data_table.dart';
|
import 'package:fcs/widget/my_data_table.dart';
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/do_model.dart';
|
import 'package:fcs/model/do_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/do.dart';
|
import 'package:fcs/vo/do.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/my_data_table.dart';
|
import 'package:fcs/widget/my_data_table.dart';
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/revenue.dart';
|
import 'package:fcs/vo/revenue.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'delivery_summary_detail.dart';
|
import 'delivery_summary_detail.dart';
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/revenue.dart';
|
import 'package:fcs/vo/revenue.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/my_data_table.dart';
|
import 'package:fcs/widget/my_data_table.dart';
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/po_do_count.dart';
|
import 'package:fcs/vo/po_do_count.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/po_do_count.dart';
|
import 'package:fcs/vo/po_do_count.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/my_data_table.dart';
|
import 'package:fcs/widget/my_data_table.dart';
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import 'package:provider/provider.dart';
|
|||||||
import 'package:fcs/charts/po_balance_table.dart';
|
import 'package:fcs/charts/po_balance_table.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/model/product_model.dart';
|
import 'package:fcs/model/product_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/po.dart';
|
import 'package:fcs/vo/po.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/po.dart';
|
import 'package:fcs/vo/po.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/po.dart';
|
import 'package:fcs/vo/po.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/charts/po_line_detail.dart';
|
import 'package:fcs/charts/po_line_detail.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/po_do_count.dart';
|
import 'package:fcs/vo/po_do_count.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:http/http.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/po_do_count.dart';
|
import 'package:fcs/vo/po_do_count.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/my_data_table.dart';
|
import 'package:fcs/widget/my_data_table.dart';
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/po.dart';
|
import 'package:fcs/vo/po.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/revenue.dart';
|
import 'package:fcs/vo/revenue.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/chart_model.dart';
|
import 'package:fcs/model/chart_model.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/revenue.dart';
|
import 'package:fcs/vo/revenue.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/my_data_table.dart';
|
import 'package:fcs/widget/my_data_table.dart';
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/model/po_model.dart';
|
import 'package:fcs/model/po_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/po.dart';
|
import 'package:fcs/vo/po.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/my_data_table.dart';
|
import 'package:fcs/widget/my_data_table.dart';
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import 'package:fcs/fcs/common/domain/entities/user.dart';
|
|||||||
import 'package:fcs/fcs/common/domain/exceiptions/signin_exception.dart';
|
import 'package:fcs/fcs/common/domain/exceiptions/signin_exception.dart';
|
||||||
import 'package:firebase_auth/firebase_auth.dart';
|
import 'package:firebase_auth/firebase_auth.dart';
|
||||||
|
|
||||||
import '../../api_helper.dart';
|
import '../../helpers/api_helper.dart';
|
||||||
|
|
||||||
class AuthFb {
|
class AuthFb {
|
||||||
static final AuthFb instance = AuthFb._();
|
static final AuthFb instance = AuthFb._();
|
||||||
|
|||||||
@@ -14,6 +14,15 @@ List<Day> dayLists = [
|
|||||||
|
|
||||||
class Setting {
|
class Setting {
|
||||||
final int supportBuildNum;
|
final int supportBuildNum;
|
||||||
|
|
||||||
|
// contact page
|
||||||
|
String usaAddress;
|
||||||
|
String mmAddress;
|
||||||
|
String usaContactNumber;
|
||||||
|
String mmContactNumber;
|
||||||
|
String emailAddress;
|
||||||
|
String facebookLink;
|
||||||
|
|
||||||
final String okEnergyId;
|
final String okEnergyId;
|
||||||
final String about;
|
final String about;
|
||||||
final String terms;
|
final String terms;
|
||||||
@@ -35,9 +44,7 @@ class Setting {
|
|||||||
List<String> phones;
|
List<String> phones;
|
||||||
String deliveryPhone;
|
String deliveryPhone;
|
||||||
String address;
|
String address;
|
||||||
String email;
|
|
||||||
String website;
|
String website;
|
||||||
String facebook;
|
|
||||||
DateTime priceLastUpdate;
|
DateTime priceLastUpdate;
|
||||||
String bankAccountInfo;
|
String bankAccountInfo;
|
||||||
List<BankAccount> bankAccounts;
|
List<BankAccount> bankAccounts;
|
||||||
@@ -71,6 +78,12 @@ class Setting {
|
|||||||
|
|
||||||
Setting(
|
Setting(
|
||||||
{this.supportBuildNum,
|
{this.supportBuildNum,
|
||||||
|
this.usaAddress,
|
||||||
|
this.mmAddress,
|
||||||
|
this.usaContactNumber,
|
||||||
|
this.mmContactNumber,
|
||||||
|
this.emailAddress,
|
||||||
|
this.facebookLink,
|
||||||
this.about,
|
this.about,
|
||||||
this.okEnergyId,
|
this.okEnergyId,
|
||||||
this.terms,
|
this.terms,
|
||||||
@@ -89,9 +102,7 @@ class Setting {
|
|||||||
this.helpVersion,
|
this.helpVersion,
|
||||||
this.helpURL,
|
this.helpURL,
|
||||||
this.phones,
|
this.phones,
|
||||||
this.email,
|
|
||||||
this.website,
|
this.website,
|
||||||
this.facebook,
|
|
||||||
this.priceLastUpdate,
|
this.priceLastUpdate,
|
||||||
this.bankAccountInfo,
|
this.bankAccountInfo,
|
||||||
this.bankAccounts,
|
this.bankAccounts,
|
||||||
@@ -110,10 +121,16 @@ class Setting {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return Setting(
|
return Setting(
|
||||||
priceLastUpdate: ts?.toDate(),
|
|
||||||
supportBuildNum: map['support_build_number'],
|
supportBuildNum: map['support_build_number'],
|
||||||
|
usaAddress: map['usa_address'],
|
||||||
|
mmAddress: map['mm_address'],
|
||||||
|
usaContactNumber: map['usa_contact_number'],
|
||||||
|
mmContactNumber: map['mm_contact_number'],
|
||||||
|
emailAddress: map['email_address'],
|
||||||
|
facebookLink: map['facebook_link'],
|
||||||
about: map['about'],
|
about: map['about'],
|
||||||
terms: map['terms'],
|
terms: map['terms'],
|
||||||
|
priceLastUpdate: ts?.toDate(),
|
||||||
okEnergyId: map['ok_energy_id'],
|
okEnergyId: map['ok_energy_id'],
|
||||||
poExpireInHours: map['po_expire_hours'],
|
poExpireInHours: map['po_expire_hours'],
|
||||||
doExpireInHours: map['do_expire_hours'],
|
doExpireInHours: map['do_expire_hours'],
|
||||||
@@ -128,11 +145,9 @@ class Setting {
|
|||||||
reportURL: map['report_url'],
|
reportURL: map['report_url'],
|
||||||
helpVersion: map['help_version'],
|
helpVersion: map['help_version'],
|
||||||
helpURL: map['help_url'],
|
helpURL: map['help_url'],
|
||||||
email: map['email'],
|
|
||||||
deliveryPhone: map['delivery_phone'],
|
deliveryPhone: map['delivery_phone'],
|
||||||
address: map['address'],
|
address: map['address'],
|
||||||
website: map['website'],
|
website: map['website'],
|
||||||
facebook: map['facebook'],
|
|
||||||
bankAccountInfo: map['bank_account_info'],
|
bankAccountInfo: map['bank_account_info'],
|
||||||
bankAccounts: bankAccounts);
|
bankAccounts: bankAccounts);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import 'package:dio/dio.dart';
|
|||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:fcs/vo/status.dart';
|
import 'package:fcs/vo/status.dart';
|
||||||
|
|
||||||
import '../../config.dart';
|
import '../../../config.dart';
|
||||||
|
|
||||||
final log = Logger('requestAPI');
|
final log = Logger('requestAPI');
|
||||||
|
|
||||||
@@ -3,7 +3,7 @@ import 'dart:io';
|
|||||||
|
|
||||||
import 'package:connectivity/connectivity.dart';
|
import 'package:connectivity/connectivity.dart';
|
||||||
import 'package:fcs/config.dart';
|
import 'package:fcs/config.dart';
|
||||||
import 'package:fcs/fcs/common/api_helper.dart';
|
import 'package:fcs/fcs/common/helpers/api_helper.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
|
|
||||||
class NetworkConnectivity {
|
class NetworkConnectivity {
|
||||||
72
lib/fcs/common/helpers/shared_pref.dart
Normal file
72
lib/fcs/common/helpers/shared_pref.dart
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:fcs/fcs/common/domain/entities/user.dart';
|
||||||
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
|
||||||
|
|
||||||
|
class SharedPref {
|
||||||
|
static final SharedPref instance = SharedPref._();
|
||||||
|
SharedPref._();
|
||||||
|
|
||||||
|
static Future<String> getLang() async {
|
||||||
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||||
|
return prefs.getString('language');
|
||||||
|
}
|
||||||
|
|
||||||
|
static Future<void> saveLang(String lang) async {
|
||||||
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||||
|
prefs.setString('language', lang);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Future<void> saveUser(User user) async {
|
||||||
|
await _save("user", user.toJson());
|
||||||
|
}
|
||||||
|
|
||||||
|
static Future<User> getUser() async {
|
||||||
|
try {
|
||||||
|
return User.fromJson(await _read("user"));
|
||||||
|
} catch (e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Future<User> removeUser() async {
|
||||||
|
return await _remove("user");
|
||||||
|
}
|
||||||
|
|
||||||
|
static Future<void> saveSkippedRecoverEmail(bool skipped) async {
|
||||||
|
await _save("skipped_recovery_email", skipped);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Future<bool> getSkippedRecoverEmail() async {
|
||||||
|
try {
|
||||||
|
bool _skipped = await _read("skipped_recovery_email");
|
||||||
|
return _skipped;
|
||||||
|
} catch (e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static _read(String key) async {
|
||||||
|
try {
|
||||||
|
final prefs = await SharedPreferences.getInstance();
|
||||||
|
return json.decode(prefs.getString(key));
|
||||||
|
} catch (e) {
|
||||||
|
print("Error:$e");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static _save(String key, value) async {
|
||||||
|
try {
|
||||||
|
final prefs = await SharedPreferences.getInstance();
|
||||||
|
prefs.setString(key, json.encode(value));
|
||||||
|
} catch (e) {
|
||||||
|
print("Error:$e");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static _remove(String key) async {
|
||||||
|
final prefs = await SharedPreferences.getInstance();
|
||||||
|
prefs.remove(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -18,7 +18,7 @@ const TextStyle welcomeLabelStyle =
|
|||||||
const TextStyle welcomeSubLabelStyle =
|
const TextStyle welcomeSubLabelStyle =
|
||||||
TextStyle(fontSize: 18, color: primaryColor, fontWeight: FontWeight.w500);
|
TextStyle(fontSize: 18, color: primaryColor, fontWeight: FontWeight.w500);
|
||||||
const TextStyle subMenuStyle =
|
const TextStyle subMenuStyle =
|
||||||
TextStyle(fontSize: 11, color: Colors.white, fontWeight: FontWeight.w500);
|
TextStyle(fontSize: 14, color: Colors.white, fontWeight: FontWeight.w500);
|
||||||
const TextStyle siginButtonStyle =
|
const TextStyle siginButtonStyle =
|
||||||
TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w500);
|
TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w500);
|
||||||
|
|
||||||
42
lib/fcs/common/localization/app_translations.dart
Normal file
42
lib/fcs/common/localization/app_translations.dart
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
import 'dart:async';
|
||||||
|
import 'dart:convert';
|
||||||
|
import 'dart:ui';
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart' show rootBundle;
|
||||||
|
|
||||||
|
class AppTranslations {
|
||||||
|
Locale locale;
|
||||||
|
static Map<dynamic, dynamic> _localisedValues;
|
||||||
|
|
||||||
|
AppTranslations(Locale locale) {
|
||||||
|
this.locale = locale;
|
||||||
|
}
|
||||||
|
|
||||||
|
static AppTranslations of(BuildContext context) {
|
||||||
|
return Localizations.of<AppTranslations>(context, AppTranslations);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Future<AppTranslations> load(Locale locale) async {
|
||||||
|
AppTranslations appTranslations = AppTranslations(locale);
|
||||||
|
String jsonContent = await rootBundle
|
||||||
|
.loadString("assets/local/localization_${locale.languageCode}.json");
|
||||||
|
_localisedValues = json.decode(jsonContent);
|
||||||
|
return appTranslations;
|
||||||
|
}
|
||||||
|
|
||||||
|
get currentLanguage => locale.languageCode;
|
||||||
|
|
||||||
|
String text(String key, {List<String> translationVariables}) {
|
||||||
|
String value = _localisedValues[key];
|
||||||
|
if (value == null) {
|
||||||
|
return "$key not found";
|
||||||
|
}
|
||||||
|
if (translationVariables != null) {
|
||||||
|
translationVariables.asMap().forEach((i, s) {
|
||||||
|
value = value.replaceAll("{$i}", s);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
25
lib/fcs/common/localization/app_translations_delegate.dart
Normal file
25
lib/fcs/common/localization/app_translations_delegate.dart
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import 'dart:async';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'app_translations.dart';
|
||||||
|
import 'transalation.dart';
|
||||||
|
|
||||||
|
class AppTranslationsDelegate extends LocalizationsDelegate<AppTranslations> {
|
||||||
|
final Locale newLocale;
|
||||||
|
|
||||||
|
const AppTranslationsDelegate({this.newLocale});
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool isSupported(Locale locale) {
|
||||||
|
return Translation().supportedLanguagesCodes.contains(locale.languageCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<AppTranslations> load(Locale locale) {
|
||||||
|
return AppTranslations.load(newLocale ?? locale);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool shouldReload(LocalizationsDelegate<AppTranslations> old) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
27
lib/fcs/common/localization/transalation.dart
Normal file
27
lib/fcs/common/localization/transalation.dart
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import 'dart:ui';
|
||||||
|
|
||||||
|
typedef void LocaleChangeCallback(Locale locale);
|
||||||
|
|
||||||
|
class Translation {
|
||||||
|
static final Translation _translation = Translation._internal();
|
||||||
|
|
||||||
|
factory Translation() {
|
||||||
|
return _translation;
|
||||||
|
}
|
||||||
|
|
||||||
|
Translation._internal();
|
||||||
|
|
||||||
|
final List<String> supportedLanguages = [
|
||||||
|
"English",
|
||||||
|
"မြန်မာ ",
|
||||||
|
];
|
||||||
|
|
||||||
|
final List<String> supportedLanguagesCodes = ["en", "mu"];
|
||||||
|
|
||||||
|
//returns the list of supported Locales
|
||||||
|
Iterable<Locale> supportedLocales() =>
|
||||||
|
supportedLanguagesCodes.map<Locale>((language) => Locale(language, ""));
|
||||||
|
|
||||||
|
//function to be invoked when changing the language
|
||||||
|
LocaleChangeCallback onLocaleChanged;
|
||||||
|
}
|
||||||
150
lib/fcs/common/pages/contact.dart
Normal file
150
lib/fcs/common/pages/contact.dart
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
import 'package:fcs/fcs/common/domain/entities/setting.dart';
|
||||||
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/widgets/local_text.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/widgets/progress.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||||
|
import 'package:package_info/package_info.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
|
class Contact extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
_ContactState createState() => _ContactState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _ContactState extends State<Contact> {
|
||||||
|
bool _isLoading = false;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
Setting setting = Provider.of<MainModel>(context).setting;
|
||||||
|
|
||||||
|
return LocalProgress(
|
||||||
|
inAsyncCall: _isLoading,
|
||||||
|
child: Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
backgroundColor: primaryColor,
|
||||||
|
elevation: 0,
|
||||||
|
centerTitle: true,
|
||||||
|
leading: new IconButton(
|
||||||
|
icon: new Icon(Icons.close),
|
||||||
|
onPressed: () => Navigator.of(context).pop(),
|
||||||
|
),
|
||||||
|
title: LocalText(
|
||||||
|
context,
|
||||||
|
"contact",
|
||||||
|
fontSize: 25,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
body: ListView(
|
||||||
|
children: <Widget>[
|
||||||
|
link(setting.usaContactNumber, Icons.phone_forwarded,
|
||||||
|
onTap: () => _call(setting.usaContactNumber),
|
||||||
|
label: LocalText(
|
||||||
|
context,
|
||||||
|
"contact.usa.phone",
|
||||||
|
color: primaryColor,
|
||||||
|
)),
|
||||||
|
link(setting.mmContactNumber, Icons.phone_forwarded,
|
||||||
|
onTap: () => _call(
|
||||||
|
setting.mmContactNumber,
|
||||||
|
),
|
||||||
|
label: LocalText(
|
||||||
|
context,
|
||||||
|
"contact.mm.phone",
|
||||||
|
color: primaryColor,
|
||||||
|
)),
|
||||||
|
link(
|
||||||
|
setting.usaAddress,
|
||||||
|
Icons.location_on,
|
||||||
|
),
|
||||||
|
link(setting.mmAddress, Icons.location_on),
|
||||||
|
link(setting.emailAddress, Icons.email,
|
||||||
|
onTap: () => _email(setting.emailAddress)),
|
||||||
|
link(setting.facebookLink, FontAwesomeIcons.facebook,
|
||||||
|
onTap: () => _openLink(setting.facebookLink)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget link(String text, IconData iconData,
|
||||||
|
{Function() onTap, Widget label}) {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.only(left: 18.0, bottom: 5),
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () => onTap != null ? onTap() : null,
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
scrollDirection: Axis.horizontal,
|
||||||
|
child: Row(
|
||||||
|
children: <Widget>[
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Icon(
|
||||||
|
iconData,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
label == null
|
||||||
|
? Container()
|
||||||
|
: Padding(
|
||||||
|
padding: EdgeInsets.fromLTRB(10, 10, 10, 0),
|
||||||
|
child: label,
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Text(
|
||||||
|
text == null ? "" : text,
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
|
maxLines: 5,
|
||||||
|
style: TextStyle(fontSize: 14.0),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 5,
|
||||||
|
),
|
||||||
|
onTap == null
|
||||||
|
? Container()
|
||||||
|
: Icon(
|
||||||
|
Icons.open_in_new,
|
||||||
|
color: Colors.grey,
|
||||||
|
size: 15,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<String> getVersionNumber() async {
|
||||||
|
PackageInfo packageInfo = await PackageInfo.fromPlatform();
|
||||||
|
String version = packageInfo.version + "+" + packageInfo.buildNumber;
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
_call(String phone) {
|
||||||
|
showConfirmDialog(
|
||||||
|
context, "contact.phone.confim", () => launch("tel:$phone"),
|
||||||
|
translationVariables: ["$phone"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
_email(String email) {
|
||||||
|
showConfirmDialog(
|
||||||
|
context, "contact.email.configm", () => launch("mailto:$email"),
|
||||||
|
translationVariables: ["$email"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
_openLink(String link) {
|
||||||
|
showConfirmDialog(context, "contact.open.confrim", () => launch("$link"),
|
||||||
|
translationVariables: ["$link"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
|
import 'package:fcs/fcs/common/localization/transalation.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/model/language_model.dart';
|
||||||
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/fcs/common/pages/widgets/action_button.dart';
|
||||||
import 'package:fcs/pages/contact.dart';
|
import 'package:fcs/fcs/common/pages/widgets/bottom_widgets.dart';
|
||||||
import 'package:fcs/pages/discount_list.dart';
|
import 'package:fcs/pages/discount_list.dart';
|
||||||
import 'package:fcs/pages/notification_list.dart';
|
import 'package:fcs/pages/notification_list.dart';
|
||||||
import 'package:fcs/pages/payment_method_page.dart';
|
import 'package:fcs/pages/payment_method_page.dart';
|
||||||
@@ -11,8 +13,6 @@ import 'package:fcs/pages_fcs/delivery_list.dart';
|
|||||||
import 'package:fcs/pages_fcs/package_list.dart';
|
import 'package:fcs/pages_fcs/package_list.dart';
|
||||||
import 'package:fcs/widget/banner.dart';
|
import 'package:fcs/widget/banner.dart';
|
||||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
|
||||||
import 'package:fcs/widget/localization/transalation.dart';
|
|
||||||
import 'package:fcs/widget/offline_redirect.dart';
|
import 'package:fcs/widget/offline_redirect.dart';
|
||||||
import 'package:fcs/widget/right_left_page_route%20copy.dart';
|
import 'package:fcs/widget/right_left_page_route%20copy.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
@@ -30,7 +30,7 @@ import '../../../pages/invoice/invoce_list.dart';
|
|||||||
import '../../../pages/pickup_list.dart';
|
import '../../../pages/pickup_list.dart';
|
||||||
import '../../../pages/shipment_rates.dart';
|
import '../../../pages/shipment_rates.dart';
|
||||||
import '../../../pages/staff_list.dart';
|
import '../../../pages/staff_list.dart';
|
||||||
import '../theme.dart';
|
import '../helpers/theme.dart';
|
||||||
import 'profile_page.dart';
|
import 'profile_page.dart';
|
||||||
import 'signin/signin_page.dart';
|
import 'signin/signin_page.dart';
|
||||||
|
|
||||||
@@ -41,12 +41,11 @@ class HomePage extends StatefulWidget {
|
|||||||
_HomePageState createState() => _HomePageState();
|
_HomePageState createState() => _HomePageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef BtnCallback();
|
|
||||||
|
|
||||||
class _HomePageState extends State<HomePage> {
|
class _HomePageState extends State<HomePage> {
|
||||||
final log = Logger('_HomePageState');
|
final log = Logger('_HomePageState');
|
||||||
bool login = false;
|
bool login = false;
|
||||||
bool customer = true;
|
bool customer = true;
|
||||||
|
List<bool> isSelected = [true, false];
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
@@ -67,41 +66,41 @@ class _HomePageState extends State<HomePage> {
|
|||||||
final numberFormatter = new NumberFormat("#,###");
|
final numberFormatter = new NumberFormat("#,###");
|
||||||
|
|
||||||
String pin;
|
String pin;
|
||||||
List<bool> isSelected = [true, false];
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
login = Provider.of<MainModel>(context).isLogin();
|
login = Provider.of<MainModel>(context).isLogin();
|
||||||
var owner = Provider.of<MainModel>(context).isOwner();
|
var owner = Provider.of<MainModel>(context).isOwner();
|
||||||
var customer = Provider.of<MainModel>(context).isCustomer();
|
var customer = Provider.of<MainModel>(context).isCustomer();
|
||||||
|
LanguageModel languageModel = Provider.of<LanguageModel>(context);
|
||||||
|
|
||||||
final packagesBtn = _buildBtn2("package.name",
|
final packagesBtn = _buildBtn("package.name",
|
||||||
icon: Octicons.package,
|
icon: Octicons.package,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(PackageList())));
|
Navigator.of(context).push(BottomUpPageRoute(PackageList())));
|
||||||
|
|
||||||
final boxesBtn = _buildBtn2("boxes.name",
|
final boxesBtn = _buildBtn("boxes.name",
|
||||||
icon: MaterialCommunityIcons.package,
|
icon: MaterialCommunityIcons.package,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(BoxList())));
|
Navigator.of(context).push(BottomUpPageRoute(BoxList())));
|
||||||
|
|
||||||
final pickUpBtn = _buildBtn2("pickup",
|
final pickUpBtn = _buildBtn("pickup",
|
||||||
icon: SimpleLineIcons.direction,
|
icon: SimpleLineIcons.direction,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(PickUpList())));
|
Navigator.of(context).push(BottomUpPageRoute(PickUpList())));
|
||||||
|
|
||||||
final shipmentCostBtn = _buildBtn2("rate",
|
final shipmentCostBtn = _buildBtn("rate",
|
||||||
icon: FontAwesomeIcons.calculator,
|
icon: FontAwesomeIcons.calculator,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(ShipmentRates())));
|
Navigator.of(context).push(BottomUpPageRoute(ShipmentRates())));
|
||||||
|
|
||||||
final fcsProfileBtn = _buildBtn2("fcs.btn",
|
final fcsProfileBtn = _buildBtn("fcs.btn",
|
||||||
// imgIcon: Image.asset("assets/logo_btn.png", height: 25,color:Colors.white),
|
// imgIcon: Image.asset("assets/logo_btn.png", height: 25,color:Colors.white),
|
||||||
icon: MaterialCommunityIcons.home_city,
|
icon: MaterialCommunityIcons.home_city,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(FCSProfilePage())));
|
Navigator.of(context).push(BottomUpPageRoute(FCSProfilePage())));
|
||||||
|
|
||||||
final shipmentBtn = _buildBtn2("shipment.title",
|
final shipmentBtn = _buildBtn("shipment.title",
|
||||||
icon: Ionicons.ios_airplane,
|
icon: Ionicons.ios_airplane,
|
||||||
imgIcon: Image.asset(
|
imgIcon: Image.asset(
|
||||||
"assets/truck.png",
|
"assets/truck.png",
|
||||||
@@ -112,7 +111,7 @@ class _HomePageState extends State<HomePage> {
|
|||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(ShipmentList())));
|
Navigator.of(context).push(BottomUpPageRoute(ShipmentList())));
|
||||||
|
|
||||||
final buyingBtn = _buildBtn2("buy_online",
|
final buyingBtn = _buildBtn("buy_online",
|
||||||
icon: MaterialCommunityIcons.cart_outline, btnCallback: () {
|
icon: MaterialCommunityIcons.cart_outline, btnCallback: () {
|
||||||
Navigator.push(context, BottomUpPageRoute(BuyingOnlinePage())
|
Navigator.push(context, BottomUpPageRoute(BuyingOnlinePage())
|
||||||
// MaterialPageRoute(builder: (context) => BuyingOnlinePage()),
|
// MaterialPageRoute(builder: (context) => BuyingOnlinePage()),
|
||||||
@@ -120,43 +119,43 @@ class _HomePageState extends State<HomePage> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
final notiBtn =
|
final notiBtn =
|
||||||
_buildBtn2("message.btn", icon: Icons.message, btnCallback: () {
|
_buildBtn("message.btn", icon: Icons.message, btnCallback: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
BottomUpPageRoute(NotificationList()),
|
BottomUpPageRoute(NotificationList()),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
final staffBtn = _buildBtn2("staff.title",
|
final staffBtn = _buildBtn("staff.title",
|
||||||
icon: MaterialCommunityIcons.worker,
|
icon: MaterialCommunityIcons.worker,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(StaffList())));
|
Navigator.of(context).push(BottomUpPageRoute(StaffList())));
|
||||||
|
|
||||||
final customersBtn = _buildBtn2("customers.btn",
|
final customersBtn = _buildBtn("customers.btn",
|
||||||
icon: Feather.users,
|
icon: Feather.users,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(CustomerList())));
|
Navigator.of(context).push(BottomUpPageRoute(CustomerList())));
|
||||||
|
|
||||||
final invoicesBtn = _buildBtn2("invoices.btn",
|
final invoicesBtn = _buildBtn("invoices.btn",
|
||||||
icon: FontAwesomeIcons.fileInvoice,
|
icon: FontAwesomeIcons.fileInvoice,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(InvoiceList())));
|
Navigator.of(context).push(BottomUpPageRoute(InvoiceList())));
|
||||||
|
|
||||||
final paymentMethodBtn = _buildBtn2("payment.method.btn",
|
final paymentMethodBtn = _buildBtn("payment.method.btn",
|
||||||
icon: FontAwesomeIcons.creditCard,
|
icon: FontAwesomeIcons.creditCard,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(PaymentMethodPage())));
|
Navigator.of(context).push(BottomUpPageRoute(PaymentMethodPage())));
|
||||||
|
|
||||||
final discountBtn = _buildBtn2("discount.btn",
|
final discountBtn = _buildBtn("discount.btn",
|
||||||
icon: Entypo.price_ribbon,
|
icon: Entypo.price_ribbon,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(DiscountList())));
|
Navigator.of(context).push(BottomUpPageRoute(DiscountList())));
|
||||||
|
|
||||||
final termBtn = _buildBtn2("term.btn",
|
final termBtn = _buildBtn("term.btn",
|
||||||
icon: FontAwesomeIcons.info,
|
icon: FontAwesomeIcons.info,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(Term())));
|
Navigator.of(context).push(BottomUpPageRoute(Term())));
|
||||||
final deliveryBtn = _buildBtn2("delivery.title",
|
final deliveryBtn = _buildBtn("delivery.title",
|
||||||
icon: MaterialCommunityIcons.truck_fast,
|
icon: MaterialCommunityIcons.truck_fast,
|
||||||
btnCallback: () =>
|
btnCallback: () =>
|
||||||
Navigator.of(context).push(BottomUpPageRoute(DeliverList())));
|
Navigator.of(context).push(BottomUpPageRoute(DeliverList())));
|
||||||
@@ -206,7 +205,7 @@ class _HomePageState extends State<HomePage> {
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
onPressed: _langChange,
|
onPressed: _langChange,
|
||||||
isSelected: isSelected,
|
isSelected: languageModel.currentState,
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -234,7 +233,7 @@ class _HomePageState extends State<HomePage> {
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
onPressed: _langChange,
|
onPressed: _langChange,
|
||||||
isSelected: isSelected,
|
isSelected: languageModel.currentState,
|
||||||
),
|
),
|
||||||
FlatButton(
|
FlatButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -288,8 +287,6 @@ class _HomePageState extends State<HomePage> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 8.0),
|
|
||||||
child: ListView(children: [
|
child: ListView(children: [
|
||||||
Wrap(
|
Wrap(
|
||||||
alignment: WrapAlignment.center,
|
alignment: WrapAlignment.center,
|
||||||
@@ -297,33 +294,7 @@ class _HomePageState extends State<HomePage> {
|
|||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
),
|
),
|
||||||
),
|
BottomWidgets(),
|
||||||
Container(
|
|
||||||
height: 80,
|
|
||||||
child: Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: <Widget>[
|
|
||||||
// _buildSmallButton(
|
|
||||||
// "Policies", FontAwesomeIcons.fileContract),
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
Navigator.of(context)
|
|
||||||
.push(BottomUpPageRoute(Contact()));
|
|
||||||
},
|
|
||||||
child: _buildSmallButton(
|
|
||||||
"Contact Us", SimpleLineIcons.support),
|
|
||||||
),
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
Navigator.of(context)
|
|
||||||
.push(BottomUpPageRoute(Term()));
|
|
||||||
},
|
|
||||||
child: _buildSmallButton(
|
|
||||||
"Terms of service", Icons.info_outline),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
],
|
||||||
))),
|
))),
|
||||||
),
|
),
|
||||||
@@ -331,7 +302,7 @@ class _HomePageState extends State<HomePage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_langChange(index) {
|
_langChange(index) {
|
||||||
var languageModel = Provider.of<LanguageModel>(context);
|
var languageModel = Provider.of<LanguageModel>(context,listen: false);
|
||||||
languageModel.saveLanguage(Translation().supportedLanguages[index]);
|
languageModel.saveLanguage(Translation().supportedLanguages[index]);
|
||||||
setState(() {
|
setState(() {
|
||||||
isSelected.asMap().forEach((i, e) {
|
isSelected.asMap().forEach((i, e) {
|
||||||
@@ -341,143 +312,8 @@ class _HomePageState extends State<HomePage> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildTile(Widget child, {Function() onTap}) {
|
|
||||||
return Material(
|
|
||||||
elevation: 0,
|
|
||||||
borderRadius: BorderRadius.circular(12.0),
|
|
||||||
// shadowColor: Colors.transparent,
|
|
||||||
color: Colors.transparent,
|
|
||||||
child: InkWell(
|
|
||||||
onTap: onTap != null
|
|
||||||
? () => onTap()
|
|
||||||
: () {
|
|
||||||
log.info('Not set yet');
|
|
||||||
},
|
|
||||||
child: child));
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _buildBtn(String title,
|
Widget _buildBtn(String title,
|
||||||
{Image imgIcon, IconData icon, BtnCallback btnCallback}) {
|
{Image imgIcon, IconData icon, BtnCallback btnCallback}) {
|
||||||
var languageModel = Provider.of<LanguageModel>(context);
|
return ActionButton(title: title,imgIcon: imgIcon,icon:icon,btnCallback: btnCallback);
|
||||||
return _buildTile(
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.all(5.0),
|
|
||||||
child: Column(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
children: <Widget>[
|
|
||||||
icon != null
|
|
||||||
? Material(
|
|
||||||
child: Padding(
|
|
||||||
padding: EdgeInsets.only(top: 10),
|
|
||||||
child: Icon(icon, color: primaryColor, size: 35.0)))
|
|
||||||
: Container(
|
|
||||||
padding: EdgeInsets.only(top: 3),
|
|
||||||
child: imgIcon,
|
|
||||||
),
|
|
||||||
Padding(padding: EdgeInsets.only(bottom: 10.0)),
|
|
||||||
Text(AppTranslations.of(context).text(title),
|
|
||||||
style: languageModel.isEng
|
|
||||||
? TextStyle(
|
|
||||||
color: Colors.black,
|
|
||||||
fontWeight: FontWeight.w700,
|
|
||||||
fontSize: 12.0)
|
|
||||||
: TextStyle(
|
|
||||||
color: Colors.black,
|
|
||||||
fontWeight: FontWeight.w700,
|
|
||||||
fontSize: 12.0,
|
|
||||||
fontFamily: "MyanmarUnicode")),
|
|
||||||
]),
|
|
||||||
),
|
|
||||||
onTap: btnCallback,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _buildBtn2(String title,
|
|
||||||
{Image imgIcon, IconData icon, BtnCallback btnCallback}) {
|
|
||||||
var languageModel = Provider.of<LanguageModel>(context);
|
|
||||||
return Container(
|
|
||||||
width: 100,
|
|
||||||
height: 100,
|
|
||||||
decoration: new BoxDecoration(
|
|
||||||
color: Colors.transparent, //new Color.fromRGBO(255, 0, 0, 0.0),
|
|
||||||
borderRadius: new BorderRadius.only(
|
|
||||||
topLeft: const Radius.circular(40.0),
|
|
||||||
topRight: const Radius.circular(40.0))),
|
|
||||||
// color: Colors.transparent,
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(5.0),
|
|
||||||
child: Column(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
children: <Widget>[
|
|
||||||
// Padding(
|
|
||||||
// padding: EdgeInsets.only(top: 10),
|
|
||||||
// child: Icon(icon, color: Colors.white, size: 35.0)),
|
|
||||||
// Padding(padding: EdgeInsets.only(bottom: 10.0)),
|
|
||||||
ClipOval(
|
|
||||||
child: Material(
|
|
||||||
color: Colors.black54, // button color
|
|
||||||
child: InkWell(
|
|
||||||
splashColor: primaryColor, // inkwell color
|
|
||||||
child: SizedBox(
|
|
||||||
width: 60,
|
|
||||||
height: 60,
|
|
||||||
child: icon == null
|
|
||||||
? Container(width: 10, height: 10, child: imgIcon)
|
|
||||||
: Icon(icon, color: Colors.white, size: 30)),
|
|
||||||
onTap: btnCallback,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
|
|
||||||
Container(
|
|
||||||
height: 30,
|
|
||||||
child: FittedBox(
|
|
||||||
fit: BoxFit.fitWidth,
|
|
||||||
child: Text(AppTranslations.of(context).text(title),
|
|
||||||
style: languageModel.isEng
|
|
||||||
? TextStyle(
|
|
||||||
color: Colors.white,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
fontSize: 14.0,
|
|
||||||
fontFamily: "Roboto")
|
|
||||||
: TextStyle(
|
|
||||||
color: Colors.white,
|
|
||||||
fontWeight: FontWeight.w700,
|
|
||||||
fontSize: 12.0,
|
|
||||||
fontFamily: "MyanmarUnicode")),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _buildSmallButton(String text, IconData iconData) {
|
|
||||||
return Padding(
|
|
||||||
padding: const EdgeInsets.all(18.0),
|
|
||||||
child: Row(
|
|
||||||
children: <Widget>[
|
|
||||||
IconButton(
|
|
||||||
icon: Icon(iconData, color: Colors.white70),
|
|
||||||
color: Colors.white70,
|
|
||||||
onPressed: null),
|
|
||||||
// RaisedButton(onPressed: ()=>{},child: Row(
|
|
||||||
// children: <Widget>[
|
|
||||||
// IconButton(
|
|
||||||
// icon: Icon(iconData, ),
|
|
||||||
// onPressed: null),
|
|
||||||
// Text(text),
|
|
||||||
// ],
|
|
||||||
// ),color: Colors.transparent,
|
|
||||||
// focusColor: Colors.transparent,),
|
|
||||||
Text(
|
|
||||||
text,
|
|
||||||
style: subMenuStyle,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
35
lib/fcs/common/pages/model/base_model.dart
Normal file
35
lib/fcs/common/pages/model/base_model.dart
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import 'package:fcs/fcs/common/domain/entities/setting.dart';
|
||||||
|
import 'package:fcs/fcs/common/domain/entities/user.dart';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:fcs/fcs/common/helpers/api_helper.dart';
|
||||||
|
|
||||||
|
import 'main_model.dart';
|
||||||
|
|
||||||
|
abstract class BaseModel extends ChangeNotifier {
|
||||||
|
User user;
|
||||||
|
Setting setting;
|
||||||
|
MainModel mainModel;
|
||||||
|
|
||||||
|
void initUser(User user) async {
|
||||||
|
this.user = user;
|
||||||
|
}
|
||||||
|
|
||||||
|
void initSetting(Setting setting) async {
|
||||||
|
this.setting = setting;
|
||||||
|
}
|
||||||
|
|
||||||
|
void logout();
|
||||||
|
|
||||||
|
// request makes http request
|
||||||
|
// if token is null
|
||||||
|
dynamic request(
|
||||||
|
String path,
|
||||||
|
method, {
|
||||||
|
dynamic payload,
|
||||||
|
String token,
|
||||||
|
String url,
|
||||||
|
}) async {
|
||||||
|
return await requestAPI(path, method,
|
||||||
|
payload: payload, token: token, url: url);
|
||||||
|
}
|
||||||
|
}
|
||||||
46
lib/fcs/common/pages/model/language_model.dart
Normal file
46
lib/fcs/common/pages/model/language_model.dart
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
import 'package:fcs/fcs/common/localization/transalation.dart';
|
||||||
|
import 'package:fcs/fcs/common/helpers/shared_pref.dart';
|
||||||
|
import 'package:flutter/painting.dart';
|
||||||
|
|
||||||
|
import 'base_model.dart';
|
||||||
|
|
||||||
|
class LanguageModel extends BaseModel {
|
||||||
|
String language;
|
||||||
|
bool get isEng => this.language == "English";
|
||||||
|
List<bool> get currentState => isEng ? [true, false] : [false, true];
|
||||||
|
|
||||||
|
static final List<String> languageCodesList =
|
||||||
|
Translation().supportedLanguagesCodes;
|
||||||
|
static final List<String> languagesList = Translation().supportedLanguages;
|
||||||
|
|
||||||
|
final Map<dynamic, dynamic> languagesMap = {
|
||||||
|
languagesList[0]: languageCodesList[0],
|
||||||
|
languagesList[1]: languageCodesList[1],
|
||||||
|
};
|
||||||
|
LanguageModel() {
|
||||||
|
load();
|
||||||
|
}
|
||||||
|
@override
|
||||||
|
logout() async {}
|
||||||
|
|
||||||
|
Future<String> load() async {
|
||||||
|
var data = await SharedPref.getLang();
|
||||||
|
String result = languagesList[1]; // defalut to english
|
||||||
|
if (data != null) {
|
||||||
|
result = data;
|
||||||
|
}
|
||||||
|
this.language = result;
|
||||||
|
Translation().onLocaleChanged(Locale(languagesMap[this.language]));
|
||||||
|
print("lang=====$result");
|
||||||
|
notifyListeners();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
void saveLanguage(String language) async {
|
||||||
|
Translation().onLocaleChanged(Locale(languagesMap[language]));
|
||||||
|
|
||||||
|
SharedPref.saveLang(language);
|
||||||
|
this.language = language;
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,7 +8,7 @@ import 'package:fcs/fcs/common/domain/entities/auth_result.dart';
|
|||||||
import 'package:fcs/fcs/common/domain/entities/auth_status.dart';
|
import 'package:fcs/fcs/common/domain/entities/auth_status.dart';
|
||||||
import 'package:fcs/fcs/common/domain/entities/setting.dart';
|
import 'package:fcs/fcs/common/domain/entities/setting.dart';
|
||||||
import 'package:fcs/fcs/common/domain/entities/user.dart';
|
import 'package:fcs/fcs/common/domain/entities/user.dart';
|
||||||
import 'package:fcs/fcs/common/network_connectivity.dart';
|
import 'package:fcs/fcs/common/helpers/network_connectivity.dart';
|
||||||
import 'package:fcs/fcs/common/services/services.dart';
|
import 'package:fcs/fcs/common/services/services.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
|
import 'package:fcs/fcs/common/localization/app_translations.dart';
|
||||||
|
import 'package:fcs/fcs/common/localization/transalation.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/model/language_model.dart';
|
||||||
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/fcs/common/pages/widgets/progress.dart';
|
||||||
import 'package:fcs/model/shipment_model.dart';
|
import 'package:fcs/model/shipment_model.dart';
|
||||||
import 'package:fcs/model/user_model.dart';
|
import 'package:fcs/model/user_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/pages_fcs/shipping_address_row.dart';
|
import 'package:fcs/pages_fcs/shipping_address_row.dart';
|
||||||
import 'package:fcs/vo/role.dart';
|
import 'package:fcs/vo/role.dart';
|
||||||
import 'package:fcs/vo/shipping_address.dart';
|
import 'package:fcs/vo/shipping_address.dart';
|
||||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
|
||||||
import 'package:fcs/widget/localization/transalation.dart';
|
|
||||||
import 'package:fcs/widget/progress.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '../../../pages/shipping_address_editor.dart';
|
import '../../../pages/shipping_address_editor.dart';
|
||||||
import '../theme.dart';
|
import '../helpers/theme.dart';
|
||||||
|
|
||||||
typedef void ProfileCallback();
|
typedef void ProfileCallback();
|
||||||
|
|
||||||
|
|||||||
@@ -4,14 +4,14 @@ import 'package:fcs/fcs/common/domain/entities/auth_result.dart';
|
|||||||
import 'package:fcs/fcs/common/domain/entities/auth_status.dart';
|
import 'package:fcs/fcs/common/domain/entities/auth_status.dart';
|
||||||
import 'package:fcs/fcs/common/domain/entities/user.dart';
|
import 'package:fcs/fcs/common/domain/entities/user.dart';
|
||||||
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pin_input_text_field/pin_input_text_field.dart';
|
import 'package:pin_input_text_field/pin_input_text_field.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import 'signup_page.dart';
|
import 'signup_page.dart';
|
||||||
import '../../theme.dart';
|
import '../../helpers/theme.dart';
|
||||||
import '../../../../widget/local_text.dart';
|
import '../../../../widget/local_text.dart';
|
||||||
import '../../../../widget/progress.dart';
|
import '../../../../widget/progress.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ import 'package:flutter/services.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';
|
||||||
|
|
||||||
import '../../theme.dart';
|
import '../../helpers/theme.dart';
|
||||||
import '../../../../widget/local_text.dart';
|
import '../../../../widget/local_text.dart';
|
||||||
import '../../../../widget/progress.dart';
|
import '../../../../widget/progress.dart';
|
||||||
import 'code_page.dart';
|
import 'code_page.dart';
|
||||||
import '../../../../pages/util.dart';
|
import '../util.dart';
|
||||||
|
|
||||||
class SigninPage extends StatefulWidget {
|
class SigninPage extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import 'package:provider/provider.dart';
|
|||||||
|
|
||||||
import '../../../../widget/local_text.dart';
|
import '../../../../widget/local_text.dart';
|
||||||
import '../../../../widget/progress.dart';
|
import '../../../../widget/progress.dart';
|
||||||
import '../../theme.dart';
|
import '../../helpers/theme.dart';
|
||||||
|
|
||||||
class SignupPage extends StatefulWidget {
|
class SignupPage extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
|
|||||||
173
lib/fcs/common/pages/term.dart
Normal file
173
lib/fcs/common/pages/term.dart
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/term_edit.dart';
|
||||||
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/widgets/local_text.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/widgets/progress.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
|
import 'package:zefyr/zefyr.dart';
|
||||||
|
|
||||||
|
|
||||||
|
typedef void ProfileCallback();
|
||||||
|
|
||||||
|
class Term extends StatefulWidget {
|
||||||
|
final bool agreePage;
|
||||||
|
|
||||||
|
const Term({Key key, this.agreePage = false}) : super(key: key);
|
||||||
|
@override
|
||||||
|
_TermState createState() => _TermState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _TermState extends State<Term> {
|
||||||
|
ZefyrController _controller;
|
||||||
|
FocusNode _focusNode;
|
||||||
|
NotusDocument document = new NotusDocument();
|
||||||
|
bool isLoading = false;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_controller = ZefyrController(_loadDocument());
|
||||||
|
print("controller terms => ${_controller.document}");
|
||||||
|
_focusNode = FocusNode();
|
||||||
|
}
|
||||||
|
|
||||||
|
NotusDocument _loadDocument() {
|
||||||
|
MainModel mainModel = Provider.of<MainModel>(context, listen: false);
|
||||||
|
String term = mainModel.setting.terms;
|
||||||
|
print("terms => $term");
|
||||||
|
NotusDocument doc;
|
||||||
|
try {
|
||||||
|
doc = NotusDocument.fromJson(jsonDecode(term));
|
||||||
|
print('doc=> $doc');
|
||||||
|
} catch (e) {}
|
||||||
|
if (doc == null) {
|
||||||
|
doc = NotusDocument();
|
||||||
|
}
|
||||||
|
return doc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
MainModel mainModel = Provider.of<MainModel>(context);
|
||||||
|
|
||||||
|
bool isOwnerAndAbove =
|
||||||
|
mainModel.user != null && mainModel.user.isOwnerAndAbove();
|
||||||
|
bool hasAdmin = mainModel.user != null && mainModel.user.hasAdmin();
|
||||||
|
|
||||||
|
// bool aggreed = mainModel.user.agreeTerms;
|
||||||
|
bool aggreed = true;
|
||||||
|
|
||||||
|
final agreeBtn = Padding(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 10.0),
|
||||||
|
child: Card(
|
||||||
|
elevation: 10,
|
||||||
|
child: Container(
|
||||||
|
height: 45.0,
|
||||||
|
child: ButtonTheme(
|
||||||
|
minWidth: 900.0,
|
||||||
|
height: 100.0,
|
||||||
|
child: FlatButton.icon(
|
||||||
|
onPressed: () {
|
||||||
|
showConfirmDialog(context, "term.iagree", () async {
|
||||||
|
_agree();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
label: LocalText(context, "term.agree_btn"),
|
||||||
|
icon: Icon(
|
||||||
|
Icons.check,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
|
||||||
|
return LocalProgress(
|
||||||
|
inAsyncCall: isLoading,
|
||||||
|
child: Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
centerTitle: true,
|
||||||
|
leading: new IconButton(
|
||||||
|
icon: new Icon(Icons.close),
|
||||||
|
onPressed: () => Navigator.of(context).pop(),
|
||||||
|
),
|
||||||
|
// automaticallyImplyLeading: !widget.agreePage,
|
||||||
|
title: LocalText(context, 'term', color: Colors.white, fontSize: 20),
|
||||||
|
backgroundColor: primaryColor,
|
||||||
|
actions: <Widget>[
|
||||||
|
// isOwnerAndAbove || hasAdmin
|
||||||
|
// ?
|
||||||
|
IconButton(
|
||||||
|
icon: Icon(Icons.edit),
|
||||||
|
onPressed: () async {
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => TermEdit((data) {
|
||||||
|
setState(() {
|
||||||
|
_controller = ZefyrController(data);
|
||||||
|
});
|
||||||
|
})),
|
||||||
|
);
|
||||||
|
// print('doc=> $doc');
|
||||||
|
|
||||||
|
// setState(() {
|
||||||
|
// document = doc;
|
||||||
|
// });
|
||||||
|
// var document = await
|
||||||
|
// Navigator.push(
|
||||||
|
// context,
|
||||||
|
// MaterialPageRoute(builder: (context) => TermEdit()),
|
||||||
|
// );
|
||||||
|
},
|
||||||
|
)
|
||||||
|
// : Container()
|
||||||
|
],
|
||||||
|
),
|
||||||
|
body: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Expanded(
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Card(
|
||||||
|
child: ZefyrTheme(
|
||||||
|
data: ZefyrThemeData().copyWith(),
|
||||||
|
child: ZefyrScaffold(
|
||||||
|
child: ZefyrEditor(
|
||||||
|
mode: ZefyrMode.view,
|
||||||
|
padding: EdgeInsets.all(16),
|
||||||
|
controller: _controller,
|
||||||
|
focusNode: _focusNode,
|
||||||
|
),
|
||||||
|
))),
|
||||||
|
)),
|
||||||
|
!aggreed ? agreeBtn : Container(),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_agree() async {
|
||||||
|
setState(() {
|
||||||
|
isLoading = true;
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
// MainModel mainModel = Provider.of<MainModel>(context);
|
||||||
|
// await mainModel.agreeTerms();
|
||||||
|
// if (widget.agreePage) {
|
||||||
|
// Future.delayed(const Duration(milliseconds: 3000), () {
|
||||||
|
// Navigator.pop(context);
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
} catch (e) {
|
||||||
|
showMsgDialog(context, "Error", e.toString());
|
||||||
|
setState(() {
|
||||||
|
isLoading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
125
lib/fcs/common/pages/term_edit.dart
Normal file
125
lib/fcs/common/pages/term_edit.dart
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
|
import 'package:fcs/model/main_model.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_markdown/flutter_markdown.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:zefyr/zefyr.dart';
|
||||||
|
|
||||||
|
|
||||||
|
typedef void ProfileCallback();
|
||||||
|
|
||||||
|
class TermEdit extends StatefulWidget {
|
||||||
|
final ValueChanged onChangedData;
|
||||||
|
TermEdit(this.onChangedData);
|
||||||
|
@override
|
||||||
|
_TermEditState createState() => _TermEditState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _TermEditState extends State<TermEdit> {
|
||||||
|
/// Allows to control the editor and the document.
|
||||||
|
ZefyrController _controller;
|
||||||
|
|
||||||
|
/// Zefyr editor like any other input field requires a focus node.
|
||||||
|
FocusNode _focusNode;
|
||||||
|
bool _isLoading;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_isLoading = false;
|
||||||
|
|
||||||
|
// Here we must load the document and pass it to Zefyr controller.
|
||||||
|
final document = _loadDocument();
|
||||||
|
_controller = ZefyrController(document);
|
||||||
|
_focusNode = FocusNode();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Loads the document to be edited in Zefyr.
|
||||||
|
NotusDocument _loadDocument() {
|
||||||
|
MainModel mainModel = Provider.of<MainModel>(context, listen: false);
|
||||||
|
String term = mainModel.setting.terms;
|
||||||
|
|
||||||
|
NotusDocument doc;
|
||||||
|
try {
|
||||||
|
doc = NotusDocument.fromJson(jsonDecode(term));
|
||||||
|
} catch (e) {}
|
||||||
|
if (doc == null) {
|
||||||
|
doc = NotusDocument();
|
||||||
|
}
|
||||||
|
return doc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
MainModel mainModel = Provider.of<MainModel>(context);
|
||||||
|
|
||||||
|
var singleChildScrollView = SingleChildScrollView(
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 25.0,
|
||||||
|
right: 25.0,
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
width: 300,
|
||||||
|
height: 300,
|
||||||
|
child: Card(child: Markdown(data: mainModel.setting.terms))),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
return LocalProgress(
|
||||||
|
inAsyncCall: _isLoading,
|
||||||
|
child: Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
title: Text(
|
||||||
|
"Terms",
|
||||||
|
),
|
||||||
|
backgroundColor: primaryColor,
|
||||||
|
actions: <Widget>[
|
||||||
|
IconButton(
|
||||||
|
icon: Icon(Icons.save),
|
||||||
|
onPressed: () {
|
||||||
|
_save();
|
||||||
|
},
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
body: ZefyrScaffold(
|
||||||
|
child: ZefyrTheme(
|
||||||
|
data: ZefyrThemeData().copyWith(),
|
||||||
|
child: ZefyrEditor(
|
||||||
|
padding: EdgeInsets.all(16),
|
||||||
|
controller: _controller,
|
||||||
|
focusNode: _focusNode,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
_save() {
|
||||||
|
setState(() {
|
||||||
|
_isLoading = true;
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
final contents = jsonEncode(_controller.document);
|
||||||
|
print('contents => $contents');
|
||||||
|
widget.onChangedData(_controller.document);
|
||||||
|
// MainModel mainModel = Provider.of<MainModel>(context, listen: false);
|
||||||
|
// mainModel.updateTerms(contents);
|
||||||
|
} catch (e) {
|
||||||
|
showMsgDialog(context, "Error", e.toString());
|
||||||
|
} finally {
|
||||||
|
_isLoading = false;
|
||||||
|
Navigator.pop(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,20 +11,20 @@ import 'package:fcs/model/language_model.dart';
|
|||||||
import 'package:fcs/model/notification_model.dart';
|
import 'package:fcs/model/notification_model.dart';
|
||||||
import 'package:fcs/model/po_model.dart';
|
import 'package:fcs/model/po_model.dart';
|
||||||
import 'package:fcs/model/user_model.dart';
|
import 'package:fcs/model/user_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/buyer.dart';
|
import 'package:fcs/vo/buyer.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/vo/notification.dart' as Noti;
|
import 'package:fcs/vo/notification.dart' as Noti;
|
||||||
|
|
||||||
import 'announcement.dart';
|
import '../../../pages/announcement.dart';
|
||||||
import 'buyer_info.dart';
|
import '../../../pages/buyer_info.dart';
|
||||||
import 'do/do_approve.dart';
|
import '../../../pages/do/do_approve.dart';
|
||||||
import 'log_list.dart';
|
import '../../../pages/log_list.dart';
|
||||||
import 'my_registeration_info.dart';
|
import '../../../pages/my_registeration_info.dart';
|
||||||
import 'po/po_submission_form.dart';
|
import '../../../pages/po/po_submission_form.dart';
|
||||||
import 'products_list.dart';
|
import '../../../pages/products_list.dart';
|
||||||
import 'user_editor.dart';
|
import '../../../pages/user_editor.dart';
|
||||||
|
|
||||||
final log = Logger('Util');
|
final log = Logger('Util');
|
||||||
|
|
||||||
@@ -1,18 +1,17 @@
|
|||||||
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
import 'package:fcs/fcs/common/pages/model/main_model.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/widgets/bottom_widgets.dart';
|
||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/pages/contact.dart';
|
|
||||||
import 'package:fcs/widget/banner.dart';
|
import 'package:fcs/widget/banner.dart';
|
||||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||||
import 'package:fcs/widget/localization/transalation.dart';
|
import 'package:fcs/widget/localization/transalation.dart';
|
||||||
import 'package:fcs/widget/offline_redirect.dart';
|
import 'package:fcs/widget/offline_redirect.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_icons/flutter_icons.dart';
|
|
||||||
import 'package:intl/intl.dart' as intl;
|
import 'package:intl/intl.dart' as intl;
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '../theme.dart';
|
import '../helpers/theme.dart';
|
||||||
import 'profile_page.dart';
|
import 'profile_page.dart';
|
||||||
import 'signin/signin_page.dart';
|
import 'signin/signin_page.dart';
|
||||||
import '../../../pages/term.dart';
|
import '../../../pages/term.dart';
|
||||||
@@ -136,9 +135,10 @@ class _WelcomePageState extends State<WelcomePage> {
|
|||||||
Color(0xfa272262),
|
Color(0xfa272262),
|
||||||
], // whitish to gray
|
], // whitish to gray
|
||||||
)),
|
)),
|
||||||
child: ListView(
|
child: Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Column(
|
Expanded(
|
||||||
|
child: ListView(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.all(80.0),
|
padding: const EdgeInsets.all(80.0),
|
||||||
@@ -174,7 +174,7 @@ class _WelcomePageState extends State<WelcomePage> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
padding: EdgeInsets.only(top: 10, bottom: 10),
|
padding: EdgeInsets.only(top: 10, bottom: 30),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
radius: (50),
|
radius: (50),
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
@@ -185,83 +185,8 @@ class _WelcomePageState extends State<WelcomePage> {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
// Row(
|
|
||||||
// children: <Widget>[
|
|
||||||
// Expanded(
|
|
||||||
// child: Container(
|
|
||||||
// height: 200,
|
|
||||||
// // child: DimensionBox(
|
|
||||||
// // dimension: Dimension(length, width, height),
|
|
||||||
// // color: secondaryColor,
|
|
||||||
// // ),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// RotatedBox(
|
|
||||||
// quarterTurns: -1,
|
|
||||||
// child: Slider(
|
|
||||||
// min: 6,
|
|
||||||
// max: 100,
|
|
||||||
// value: height,
|
|
||||||
// onChanged: (value) {
|
|
||||||
// setState(() {
|
|
||||||
// height = value;
|
|
||||||
// });
|
|
||||||
// },
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// Row(
|
|
||||||
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
|
||||||
// children: <Widget>[
|
|
||||||
// Slider(
|
|
||||||
// label: "Length",
|
|
||||||
// min: 6,
|
|
||||||
// max: 100,
|
|
||||||
// value: length,
|
|
||||||
// onChanged: (value) {
|
|
||||||
// setState(() {
|
|
||||||
// length = value;
|
|
||||||
// });
|
|
||||||
// },
|
|
||||||
// ),
|
|
||||||
// Slider(
|
|
||||||
// label: "Width",
|
|
||||||
// min: 6,
|
|
||||||
// max: 100,
|
|
||||||
// value: width,
|
|
||||||
// onChanged: (value) {
|
|
||||||
// setState(() {
|
|
||||||
// width = value;
|
|
||||||
// });
|
|
||||||
// },
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 28.0),
|
|
||||||
child: Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
|
||||||
children: <Widget>[
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
Navigator.of(context).push(
|
|
||||||
MaterialPageRoute(builder: (_) => Contact()));
|
|
||||||
},
|
|
||||||
child: _buildSmallButton(
|
|
||||||
"Contact Us", SimpleLineIcons.support),
|
|
||||||
),
|
),
|
||||||
InkWell(
|
BottomWidgets(),
|
||||||
onTap: () {
|
|
||||||
Navigator.of(context).push(
|
|
||||||
MaterialPageRoute(builder: (_) => Term()));
|
|
||||||
},
|
|
||||||
child: _buildSmallButton(
|
|
||||||
"Terms of service", Icons.info_outline),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
],
|
||||||
))),
|
))),
|
||||||
),
|
),
|
||||||
@@ -278,23 +203,4 @@ class _WelcomePageState extends State<WelcomePage> {
|
|||||||
isSelected[index] = !isSelected[index];
|
isSelected[index] = !isSelected[index];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildSmallButton(String text, IconData iconData) {
|
|
||||||
return Padding(
|
|
||||||
padding: const EdgeInsets.all(18.0),
|
|
||||||
child: Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: <Widget>[
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(right: 5),
|
|
||||||
child: Icon(iconData, color: Colors.white70, size: 18),
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
text,
|
|
||||||
style: subMenuStyle,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
69
lib/fcs/common/pages/widgets/action_button.dart
Normal file
69
lib/fcs/common/pages/widgets/action_button.dart
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
import 'package:fcs/fcs/common/localization/app_translations.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/model/language_model.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/widgets.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
typedef BtnCallback();
|
||||||
|
|
||||||
|
class ActionButton extends StatelessWidget {
|
||||||
|
final String title;
|
||||||
|
final Image imgIcon;
|
||||||
|
final IconData icon;
|
||||||
|
final BtnCallback btnCallback;
|
||||||
|
|
||||||
|
const ActionButton(
|
||||||
|
{Key key, this.title, this.imgIcon, this.icon, this.btnCallback})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
var languageModel = Provider.of<LanguageModel>(context);
|
||||||
|
return InkWell(
|
||||||
|
onTap: btnCallback != null ? btnCallback : () => {},
|
||||||
|
child: Container(
|
||||||
|
width: 120,
|
||||||
|
height: 150,
|
||||||
|
padding: EdgeInsets.only(top:15.0),
|
||||||
|
decoration: new BoxDecoration(
|
||||||
|
color: Colors.transparent,
|
||||||
|
borderRadius: new BorderRadius.only(
|
||||||
|
topLeft: const Radius.circular(40.0),
|
||||||
|
topRight: const Radius.circular(40.0))),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(5.0),
|
||||||
|
child: Column(children: <Widget>[
|
||||||
|
ClipOval(
|
||||||
|
child: Material(
|
||||||
|
color: Colors.black54, // button color
|
||||||
|
child: SizedBox(
|
||||||
|
width: 60,
|
||||||
|
height: 60,
|
||||||
|
child: icon == null
|
||||||
|
? Container(width: 10, height: 10, child: imgIcon)
|
||||||
|
: Icon(icon, color: Colors.white, size: 30)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
height: 50,
|
||||||
|
alignment: Alignment.topCenter,
|
||||||
|
child: Text(AppTranslations.of(context).text(title),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: languageModel.isEng
|
||||||
|
? TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
fontSize: 15.0,
|
||||||
|
fontFamily: "Roboto")
|
||||||
|
: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
fontSize: 14.0,
|
||||||
|
fontFamily: "MyanmarUnicode")),
|
||||||
|
),
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
49
lib/fcs/common/pages/widgets/bottom_widgets.dart
Normal file
49
lib/fcs/common/pages/widgets/bottom_widgets.dart
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
import 'package:fcs/fcs/common/pages/contact.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/term.dart';
|
||||||
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
|
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/widgets.dart';
|
||||||
|
import 'package:flutter_icons/flutter_icons.dart';
|
||||||
|
|
||||||
|
class BottomWidgets extends StatelessWidget {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||||
|
children: <Widget>[
|
||||||
|
InkWell(
|
||||||
|
onTap: () {
|
||||||
|
Navigator.of(context).push(BottomUpPageRoute(Contact()));
|
||||||
|
},
|
||||||
|
child: _buildSmallButton("Contact Us", SimpleLineIcons.support),
|
||||||
|
),
|
||||||
|
InkWell(
|
||||||
|
onTap: () {
|
||||||
|
Navigator.of(context).push(BottomUpPageRoute(Term()));
|
||||||
|
},
|
||||||
|
child: _buildSmallButton("Terms of service", Icons.info_outline),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildSmallButton(String text, IconData iconData) {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.all(18.0),
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(right: 5),
|
||||||
|
child: Icon(iconData, color: Colors.white70, size: 20),
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
text,
|
||||||
|
style: subMenuStyle,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
30
lib/fcs/common/pages/widgets/local_text.dart
Normal file
30
lib/fcs/common/pages/widgets/local_text.dart
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import 'package:fcs/fcs/common/localization/app_translations.dart';
|
||||||
|
import 'package:fcs/fcs/common/pages/model/language_model.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
|
|
||||||
|
|
||||||
|
class LocalText extends Text {
|
||||||
|
final BuildContext context;
|
||||||
|
LocalText(this.context, String translationKey,
|
||||||
|
{Color color,
|
||||||
|
double fontSize,
|
||||||
|
FontWeight fontWeight,
|
||||||
|
List<String> translationVariables,
|
||||||
|
bool underline = false})
|
||||||
|
: super(
|
||||||
|
AppTranslations.of(context).text(translationKey,
|
||||||
|
translationVariables: translationVariables),
|
||||||
|
style: Provider.of<LanguageModel>(context).isEng
|
||||||
|
? newLabelStyle(
|
||||||
|
color: color,
|
||||||
|
fontSize: fontSize,
|
||||||
|
fontWeight: fontWeight,
|
||||||
|
underline: underline)
|
||||||
|
: newLabelStyleMM(
|
||||||
|
color: color,
|
||||||
|
fontSize: fontSize,
|
||||||
|
fontWeight: fontWeight,
|
||||||
|
underline: underline));
|
||||||
|
}
|
||||||
45
lib/fcs/common/pages/widgets/progress.dart
Normal file
45
lib/fcs/common/pages/widgets/progress.dart
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:progress/progress.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
|
|
||||||
|
class LocalProgress extends Progress {
|
||||||
|
LocalProgress({bool inAsyncCall, Widget child})
|
||||||
|
: super(
|
||||||
|
inAsyncCall: inAsyncCall,
|
||||||
|
child: child,
|
||||||
|
opacity: 0.6,
|
||||||
|
progressIndicator: Center(
|
||||||
|
child: Container(
|
||||||
|
height: 100,
|
||||||
|
width: 300,
|
||||||
|
child: Card(
|
||||||
|
color: Colors.white,
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
CircularProgressIndicator(
|
||||||
|
valueColor:
|
||||||
|
new AlwaysStoppedAnimation<Color>(primaryColor),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
Text("Loading...")
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
// hide keyboard
|
||||||
|
if (inAsyncCall) {
|
||||||
|
FocusScopeNode currentFocus = FocusScope.of(context);
|
||||||
|
if (!currentFocus.hasPrimaryFocus) {
|
||||||
|
currentFocus.unfocus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.build(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:fcs/config.dart';
|
import 'package:fcs/config.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
|
||||||
|
|
||||||
import 'app.dart';
|
import 'app.dart';
|
||||||
|
|
||||||
@@ -9,9 +8,7 @@ void main() {
|
|||||||
Config(
|
Config(
|
||||||
flavor: Flavor.DEV,
|
flavor: Flavor.DEV,
|
||||||
color: Colors.blue,
|
color: Colors.blue,
|
||||||
apiURL: "https://localhost:7777",
|
apiURL: "http://192.168.1.155:7777",
|
||||||
reportURL: "http://petrok-dev.mokkon.com:8080",
|
|
||||||
reportProjectID: "dev",
|
|
||||||
level: Level.ALL);
|
level: Level.ALL);
|
||||||
runApp(App());
|
runApp(App());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:fcs/fcs/common/api_helper.dart';
|
import 'package:fcs/fcs/common/helpers/api_helper.dart';
|
||||||
|
|
||||||
import '../vo/setting.dart';
|
import '../vo/setting.dart';
|
||||||
import '../vo/user.dart';
|
import '../vo/user.dart';
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'dart:convert' show HtmlEscape, base64, utf8;
|
|||||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:fcs/config.dart';
|
import 'package:fcs/config.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/buyer.dart';
|
import 'package:fcs/vo/buyer.dart';
|
||||||
import 'package:fcs/vo/popup_menu.dart';
|
import 'package:fcs/vo/popup_menu.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'dart:typed_data';
|
|||||||
|
|
||||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||||
import 'package:path/path.dart' as Path;
|
import 'package:path/path.dart' as Path;
|
||||||
import 'package:fcs/fcs/common/api_helper.dart';
|
import 'package:fcs/fcs/common/helpers/api_helper.dart';
|
||||||
import 'package:fcs/model/constants.dart';
|
import 'package:fcs/model/constants.dart';
|
||||||
import 'package:fcs/pages/do/do_files.dart';
|
import 'package:fcs/pages/do/do_files.dart';
|
||||||
import 'package:fcs/vo/do.dart';
|
import 'package:fcs/vo/do.dart';
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import 'package:fcs/widget/NetworkConnectivity.dart';
|
|||||||
import '../config.dart';
|
import '../config.dart';
|
||||||
import '../vo/status.dart';
|
import '../vo/status.dart';
|
||||||
import '../vo/user.dart';
|
import '../vo/user.dart';
|
||||||
import '../fcs/common/api_helper.dart';
|
import '../fcs/common/helpers/api_helper.dart';
|
||||||
import 'base_model.dart';
|
import 'base_model.dart';
|
||||||
import 'constants.dart';
|
import 'constants.dart';
|
||||||
import 'firebase_helper.dart';
|
import 'firebase_helper.dart';
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import 'package:fcs/vo/report.dart';
|
|||||||
import 'package:fcs/vo/report_user.dart';
|
import 'package:fcs/vo/report_user.dart';
|
||||||
import 'package:open_file/open_file.dart';
|
import 'package:open_file/open_file.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:fcs/fcs/common/api_helper.dart' as api;
|
import 'package:fcs/fcs/common/helpers/api_helper.dart' as api;
|
||||||
import 'package:fcs/vo/report.dart';
|
import 'package:fcs/vo/report.dart';
|
||||||
|
|
||||||
import '../config.dart';
|
import '../config.dart';
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import 'package:fcs/widget/local_text.dart';
|
|||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart' as Theme;
|
import '../fcs/common/helpers/theme.dart' as Theme;
|
||||||
import 'util.dart';
|
import '../fcs/common/pages/util.dart';
|
||||||
|
|
||||||
class AddPINEditor extends StatefulWidget {
|
class AddPINEditor extends StatefulWidget {
|
||||||
final User user;
|
final User user;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/announcement_model.dart';
|
import 'package:fcs/model/announcement_model.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/vo/announcement.dart';
|
import 'package:fcs/vo/announcement.dart';
|
||||||
import 'package:fcs/vo/popup_menu.dart';
|
import 'package:fcs/vo/popup_menu.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
@@ -12,7 +12,7 @@ import 'package:fcs/widget/popupmenu.dart';
|
|||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
import 'package:zefyr/zefyr.dart';
|
import 'package:zefyr/zefyr.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
import 'announcement_editor.dart';
|
import 'announcement_editor.dart';
|
||||||
|
|
||||||
class AnnouncementPage extends StatefulWidget {
|
class AnnouncementPage extends StatefulWidget {
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/announcement_model.dart';
|
import 'package:fcs/model/announcement_model.dart';
|
||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/announcement.dart';
|
import 'package:fcs/vo/announcement.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import 'package:fcs/widget/local_text.dart';
|
|||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
import 'announcement.dart';
|
import 'announcement.dart';
|
||||||
import 'announcement_editor.dart';
|
import 'announcement_editor.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:image_picker/image_picker.dart';
|
import 'package:image_picker/image_picker.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/bank_account.dart';
|
import 'package:fcs/vo/bank_account.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/local_text_field.dart';
|
import 'package:fcs/widget/local_text_field.dart';
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/services.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/pages/banks/bank_edit.dart';
|
import 'package:fcs/pages/banks/bank_edit.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/bank_account.dart';
|
import 'package:fcs/vo/bank_account.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import 'package:flutter_icons/flutter_icons.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';
|
||||||
import 'package:fcs/model/product_model.dart';
|
import 'package:fcs/model/product_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/buyer.dart';
|
import 'package:fcs/vo/buyer.dart';
|
||||||
import 'package:fcs/vo/product.dart';
|
import 'package:fcs/vo/product.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/user_model.dart';
|
import 'package:fcs/model/user_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/popup_menu.dart';
|
import 'package:fcs/vo/popup_menu.dart';
|
||||||
import 'package:fcs/vo/user.dart';
|
import 'package:fcs/vo/user.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|||||||
@@ -5,14 +5,14 @@ import 'package:provider/provider.dart';
|
|||||||
import 'package:fcs/model/buyer_model.dart';
|
import 'package:fcs/model/buyer_model.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/pages/quota_page.dart';
|
import 'package:fcs/pages/quota_page.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/util.dart';
|
import 'package:fcs/util.dart';
|
||||||
import 'package:fcs/vo/buyer.dart';
|
import 'package:fcs/vo/buyer.dart';
|
||||||
import 'package:fcs/widget/label_widgets.dart';
|
import 'package:fcs/widget/label_widgets.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
import 'document_log_page.dart';
|
import 'document_log_page.dart';
|
||||||
|
|
||||||
class BuyerInfo extends StatefulWidget {
|
class BuyerInfo extends StatefulWidget {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import 'package:fcs/widget/popupmenu.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
import 'buyer_list_row.dart';
|
import 'buyer_list_row.dart';
|
||||||
|
|
||||||
class BuyerList extends StatefulWidget {
|
class BuyerList extends StatefulWidget {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/buyer_model.dart';
|
import 'package:fcs/model/buyer_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/buyer.dart';
|
import 'package:fcs/vo/buyer.dart';
|
||||||
|
|
||||||
import 'buyer_info.dart';
|
import 'buyer_info.dart';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/vo/manual.dart';
|
import 'package:fcs/vo/manual.dart';
|
||||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -7,7 +7,7 @@ import 'package:fcs/model/main_model.dart';
|
|||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
import '../widget/label_widgets.dart';
|
import '../widget/label_widgets.dart';
|
||||||
import '../widget/local_text.dart';
|
import '../widget/local_text.dart';
|
||||||
import 'instruction.dart';
|
import 'instruction.dart';
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import 'package:fcs/widget/localization/app_translations.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
|
|
||||||
class CalculateShipmentCostEditor extends StatefulWidget {
|
class CalculateShipmentCostEditor extends StatefulWidget {
|
||||||
final PickUp pickUp;
|
final PickUp pickUp;
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import 'package:fcs/widget/local_text.dart';
|
|||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart' as Theme;
|
import '../fcs/common/helpers/theme.dart' as Theme;
|
||||||
import 'confirm_email.dart';
|
import 'confirm_email.dart';
|
||||||
import 'util.dart';
|
import '../fcs/common/pages/util.dart';
|
||||||
|
|
||||||
class ChangePhoneNumber extends StatefulWidget {
|
class ChangePhoneNumber extends StatefulWidget {
|
||||||
final User user;
|
final User user;
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import 'package:fcs/widget/local_text.dart';
|
|||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart' as Theme;
|
import '../fcs/common/helpers/theme.dart' as Theme;
|
||||||
import 'util.dart';
|
import '../fcs/common/pages/util.dart';
|
||||||
|
|
||||||
class ChangePassword extends StatefulWidget {
|
class ChangePassword extends StatefulWidget {
|
||||||
final User user;
|
final User user;
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/user_model.dart';
|
import 'package:fcs/model/user_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import 'util.dart';
|
import '../fcs/common/pages/util.dart';
|
||||||
|
|
||||||
class ConfirmEmail extends StatefulWidget {
|
class ConfirmEmail extends StatefulWidget {
|
||||||
final String id, email, phoneNumber;
|
final String id, email, phoneNumber;
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import 'package:package_info/package_info.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import 'package:provider/provider.dart';
|
|||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/pages/phone_input.dart';
|
import 'package:fcs/pages/phone_input.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/setting.dart';
|
import 'package:fcs/vo/setting.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/local_text_field.dart';
|
import 'package:fcs/widget/local_text_field.dart';
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/vo/custom.dart';
|
import 'package:fcs/vo/custom.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
|
|
||||||
class CustomEditor extends StatefulWidget {
|
class CustomEditor extends StatefulWidget {
|
||||||
final Custom custom;
|
final Custom custom;
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ import 'package:fcs/model/employee_model.dart';
|
|||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/model/user_model.dart';
|
import 'package:fcs/model/user_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/role.dart';
|
import 'package:fcs/vo/role.dart';
|
||||||
import 'package:fcs/vo/user.dart';
|
import 'package:fcs/vo/user.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
import 'util.dart';
|
import '../fcs/common/pages/util.dart';
|
||||||
|
|
||||||
typedef void FindCallBack();
|
typedef void FindCallBack();
|
||||||
|
|
||||||
|
|||||||
@@ -7,15 +7,15 @@ import 'package:flutter_icons/flutter_icons.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
import '../vo/user.dart';
|
import '../vo/user.dart';
|
||||||
import '../widget/local_text.dart';
|
import '../widget/local_text.dart';
|
||||||
import 'customer_editor.dart';
|
import 'customer_editor.dart';
|
||||||
import 'invitation_page.dart';
|
import 'invitation_page.dart';
|
||||||
import 'util.dart';
|
import '../fcs/common/pages/util.dart';
|
||||||
|
|
||||||
class CustomerList extends StatefulWidget {
|
class CustomerList extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import 'package:fcs/model/main_model.dart';
|
|||||||
import 'package:fcs/model/po_model.dart';
|
import 'package:fcs/model/po_model.dart';
|
||||||
import 'package:fcs/model/product_model.dart';
|
import 'package:fcs/model/product_model.dart';
|
||||||
import 'package:fcs/pages/do/photo_page.dart';
|
import 'package:fcs/pages/do/photo_page.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/do.dart';
|
import 'package:fcs/vo/do.dart';
|
||||||
import 'package:fcs/widget/img_file.dart';
|
import 'package:fcs/widget/img_file.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
@@ -21,7 +21,7 @@ import 'package:fcs/widget/my_data_table.dart';
|
|||||||
import 'package:fcs/widget/number_cell.dart';
|
import 'package:fcs/widget/number_cell.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../util.dart';
|
import '../../fcs/common/pages/util.dart';
|
||||||
|
|
||||||
class DeliveryItem extends StatefulWidget {
|
class DeliveryItem extends StatefulWidget {
|
||||||
final DOSubmission doSubmission;
|
final DOSubmission doSubmission;
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import 'package:fcs/model/delivery_model.dart';
|
|||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/pages/delivery/delivery_item.dart';
|
import 'package:fcs/pages/delivery/delivery_item.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/popup_menu.dart';
|
import 'package:fcs/vo/popup_menu.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/popupmenu.dart';
|
import 'package:fcs/widget/popupmenu.dart';
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import 'package:fcs/widget/local_text.dart';
|
|||||||
import 'package:fcs/widget/popupmenu.dart';
|
import 'package:fcs/widget/popupmenu.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
import 'util.dart';
|
import '../fcs/common/pages/util.dart';
|
||||||
|
|
||||||
class PhoneDeviceList extends StatefulWidget {
|
class PhoneDeviceList extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/vo/custom.dart';
|
import 'package:fcs/vo/custom.dart';
|
||||||
import 'package:fcs/vo/discount.dart';
|
import 'package:fcs/vo/discount.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
|
|
||||||
class DiscountByWeightEditor extends StatefulWidget {
|
class DiscountByWeightEditor extends StatefulWidget {
|
||||||
final Discount discount;
|
final Discount discount;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:fcs/model/discount_model.dart';
|
import 'package:fcs/model/discount_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/vo/discount.dart';
|
import 'package:fcs/vo/discount.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_icons/flutter_icons.dart';
|
import 'package:flutter_icons/flutter_icons.dart';
|
||||||
@@ -8,7 +8,7 @@ import 'package:provider/provider.dart';
|
|||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
|
|
||||||
class DiscountEditor extends StatefulWidget {
|
class DiscountEditor extends StatefulWidget {
|
||||||
final Discount discount;
|
final Discount discount;
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import 'package:fcs/model/discount_model.dart';
|
import 'package:fcs/model/discount_model.dart';
|
||||||
import 'package:fcs/pages/discount_editor.dart';
|
import 'package:fcs/pages/discount_editor.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
|
|
||||||
class DiscountList extends StatefulWidget {
|
class DiscountList extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import 'package:fcs/model/main_model.dart';
|
|||||||
import 'package:fcs/model/po_model.dart';
|
import 'package:fcs/model/po_model.dart';
|
||||||
import 'package:fcs/model/product_model.dart';
|
import 'package:fcs/model/product_model.dart';
|
||||||
import 'package:fcs/pages/do/photo_page.dart';
|
import 'package:fcs/pages/do/photo_page.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/do.dart';
|
import 'package:fcs/vo/do.dart';
|
||||||
import 'package:fcs/vo/po.dart';
|
import 'package:fcs/vo/po.dart';
|
||||||
import 'package:fcs/widget/img_file.dart';
|
import 'package:fcs/widget/img_file.dart';
|
||||||
@@ -24,7 +24,7 @@ import 'package:fcs/widget/number_cell.dart';
|
|||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../document_log_page.dart';
|
import '../document_log_page.dart';
|
||||||
import '../util.dart';
|
import '../../fcs/common/pages/util.dart';
|
||||||
import 'do_files.dart';
|
import 'do_files.dart';
|
||||||
import 'do_storage_item.dart';
|
import 'do_storage_item.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import 'package:fcs/model/main_model.dart';
|
|||||||
import 'package:fcs/model/po_model.dart';
|
import 'package:fcs/model/po_model.dart';
|
||||||
import 'package:fcs/model/product_model.dart';
|
import 'package:fcs/model/product_model.dart';
|
||||||
import 'package:fcs/pages/do/do_product_item.dart';
|
import 'package:fcs/pages/do/do_product_item.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/do.dart';
|
import 'package:fcs/vo/do.dart';
|
||||||
import 'package:fcs/vo/po.dart';
|
import 'package:fcs/vo/po.dart';
|
||||||
import 'package:fcs/widget/img_file.dart';
|
import 'package:fcs/widget/img_file.dart';
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/model/po_model.dart';
|
import 'package:fcs/model/po_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/do.dart';
|
import 'package:fcs/vo/do.dart';
|
||||||
import 'package:fcs/vo/po.dart';
|
import 'package:fcs/vo/po.dart';
|
||||||
import 'package:fcs/widget/img_file.dart';
|
import 'package:fcs/widget/img_file.dart';
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import 'package:fcs/model/do_model.dart';
|
|||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/pages/do/do_creation_form.dart';
|
import 'package:fcs/pages/do/do_creation_form.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/popup_menu.dart';
|
import 'package:fcs/vo/popup_menu.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/popupmenu.dart';
|
import 'package:fcs/widget/popupmenu.dart';
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ 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';
|
||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/do.dart';
|
import 'package:fcs/vo/do.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/storage_model.dart';
|
import 'package:fcs/model/storage_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/util.dart';
|
import 'package:fcs/util.dart';
|
||||||
import 'package:fcs/vo/do.dart';
|
import 'package:fcs/vo/do.dart';
|
||||||
import 'package:fcs/vo/storage.dart';
|
import 'package:fcs/vo/storage.dart';
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:image_picker/image_picker.dart';
|
import 'package:image_picker/image_picker.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
|
|
||||||
import '../util.dart';
|
import '../../fcs/common/pages/util.dart';
|
||||||
|
|
||||||
class PhotoPage extends StatefulWidget {
|
class PhotoPage extends StatefulWidget {
|
||||||
PhotoPage({Key key}) : super(key: key);
|
PhotoPage({Key key}) : super(key: key);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/po.dart';
|
import 'package:fcs/vo/po.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/log_model.dart';
|
import 'package:fcs/model/log_model.dart';
|
||||||
import 'package:fcs/model/user_model.dart';
|
import 'package:fcs/model/user_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/document_log.dart';
|
import 'package:fcs/vo/document_log.dart';
|
||||||
import 'package:fcs/vo/role.dart';
|
import 'package:fcs/vo/role.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
|
|||||||
@@ -4,14 +4,14 @@ import 'package:fcs/model/language_model.dart';
|
|||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/model/shared_pref.dart';
|
import 'package:fcs/model/shared_pref.dart';
|
||||||
import 'package:fcs/model/user_model.dart';
|
import 'package:fcs/model/user_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/user.dart';
|
import 'package:fcs/vo/user.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import 'confirm_email.dart';
|
import 'confirm_email.dart';
|
||||||
import 'util.dart';
|
import '../fcs/common/pages/util.dart';
|
||||||
|
|
||||||
class EmailPage extends StatefulWidget {
|
class EmailPage extends StatefulWidget {
|
||||||
final User user;
|
final User user;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:fcs/model/pickup_model.dart';
|
import 'package:fcs/model/pickup_model.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/vo/pickup.dart';
|
import 'package:fcs/vo/pickup.dart';
|
||||||
import 'package:fcs/widget/fcs_text_field.dart';
|
import 'package:fcs/widget/fcs_text_field.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
@@ -9,7 +9,7 @@ import 'package:provider/provider.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
|
|
||||||
class FCSProfilePage extends StatefulWidget {
|
class FCSProfilePage extends StatefulWidget {
|
||||||
final PickUp pickUp;
|
final PickUp pickUp;
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ import 'package:provider/provider.dart';
|
|||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/model/user_model.dart';
|
import 'package:fcs/model/user_model.dart';
|
||||||
import 'package:fcs/pages/reset_password.dart';
|
import 'package:fcs/pages/reset_password.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|
||||||
import 'util.dart';
|
import '../fcs/common/pages/util.dart';
|
||||||
|
|
||||||
class ForgetPassword extends StatefulWidget {
|
class ForgetPassword extends StatefulWidget {
|
||||||
final phoneNumber;
|
final phoneNumber;
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:fcs/model/language_model.dart';
|
import 'package:fcs/model/language_model.dart';
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/model/manual_model.dart';
|
import 'package:fcs/model/manual_model.dart';
|
||||||
import 'package:fcs/pages/manual/manual_item_title_dialog.dart';
|
import 'package:fcs/pages/manual/manual_item_title_dialog.dart';
|
||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/vo/manual.dart';
|
import 'package:fcs/vo/manual.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import 'package:fcs/pages/util.dart';
|
import 'package:fcs/fcs/common/pages/util.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||||
import '../fcs/common/theme.dart';
|
import '../fcs/common/helpers/theme.dart';
|
||||||
|
|
||||||
class InvitationPage extends StatefulWidget {
|
class InvitationPage extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:fcs/model_fcs/box_model.dart';
|
import 'package:fcs/model_fcs/box_model.dart';
|
||||||
import 'package:fcs/model_fcs/package_model.dart';
|
import 'package:fcs/model_fcs/package_model.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/box.dart';
|
import 'package:fcs/vo/box.dart';
|
||||||
import 'package:fcs/widget/localization/app_translations.dart';
|
import 'package:fcs/widget/localization/app_translations.dart';
|
||||||
import 'package:fcs/widget/progress.dart';
|
import 'package:fcs/widget/progress.dart';
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:fcs/model/main_model.dart';
|
|||||||
import 'package:fcs/model/shipment_model.dart';
|
import 'package:fcs/model/shipment_model.dart';
|
||||||
import 'package:fcs/model_fcs/package_model.dart';
|
import 'package:fcs/model_fcs/package_model.dart';
|
||||||
import 'package:fcs/pages_fcs/package_list_row.dart';
|
import 'package:fcs/pages_fcs/package_list_row.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||||
import 'package:fcs/widget/local_text.dart';
|
import 'package:fcs/widget/local_text.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import 'package:fcs/model/discount_model.dart';
|
|||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/model_fcs/box_model.dart';
|
import 'package:fcs/model_fcs/box_model.dart';
|
||||||
import 'package:fcs/pages/invoice/package_addition.dart';
|
import 'package:fcs/pages/invoice/package_addition.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/box.dart';
|
import 'package:fcs/vo/box.dart';
|
||||||
import 'package:fcs/vo/cargo.dart';
|
import 'package:fcs/vo/cargo.dart';
|
||||||
import 'package:fcs/vo/invoice.dart';
|
import 'package:fcs/vo/invoice.dart';
|
||||||
@@ -20,7 +20,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '../util.dart';
|
import '../../fcs/common/pages/util.dart';
|
||||||
import 'box_addition.dart';
|
import 'box_addition.dart';
|
||||||
|
|
||||||
class InvoiceEditor extends StatefulWidget {
|
class InvoiceEditor extends StatefulWidget {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'dart:io';
|
|||||||
|
|
||||||
import 'package:fcs/model/main_model.dart';
|
import 'package:fcs/model/main_model.dart';
|
||||||
import 'package:fcs/pages/invoice/payment_pdf_screen.dart';
|
import 'package:fcs/pages/invoice/payment_pdf_screen.dart';
|
||||||
import 'package:fcs/fcs/common/theme.dart';
|
import 'package:fcs/fcs/common/helpers/theme.dart';
|
||||||
import 'package:fcs/vo/invoice.dart';
|
import 'package:fcs/vo/invoice.dart';
|
||||||
import 'package:fcs/widget/bottom_up_page_route.dart';
|
import 'package:fcs/widget/bottom_up_page_route.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
@@ -14,7 +14,7 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '../util.dart';
|
import '../../fcs/common/pages/util.dart';
|
||||||
import 'invoice_editor.dart';
|
import 'invoice_editor.dart';
|
||||||
import 'payment_page.dart';
|
import 'payment_page.dart';
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user