Navigation

This commit is contained in:
Hillel Coren 2020-05-20 18:21:43 +03:00
parent ea2772647a
commit e21f4a4082
7 changed files with 73 additions and 143 deletions

View File

@ -411,7 +411,7 @@ const Map<int, String> kModules = {
class InvoiceStatusColors { class InvoiceStatusColors {
static var colors = { static var colors = {
kInvoiceStatusDraft: Colors.transparent, kInvoiceStatusDraft: Colors.black,
kInvoiceStatusSent: convertHexStringToColor('#505F73'), kInvoiceStatusSent: convertHexStringToColor('#505F73'),
//kInvoiceStatusViewed: Colors.orange, //kInvoiceStatusViewed: Colors.orange,
//kInvoiceStatusApproved: Colors.green, //kInvoiceStatusApproved: Colors.green,
@ -425,7 +425,7 @@ class InvoiceStatusColors {
class CreditStatusColors { class CreditStatusColors {
static var colors = { static var colors = {
kCreditStatusDraft: Colors.transparent, kCreditStatusDraft: Colors.black,
kCreditStatusSent: convertHexStringToColor('#505F73'), kCreditStatusSent: convertHexStringToColor('#505F73'),
//kInvoiceStatusViewed: Colors.orange, //kInvoiceStatusViewed: Colors.orange,
//kInvoiceStatusApproved: Colors.green, //kInvoiceStatusApproved: Colors.green,
@ -436,7 +436,7 @@ class CreditStatusColors {
class QuoteStatusColors { class QuoteStatusColors {
static var colors = { static var colors = {
kQuoteStatusDraft: Colors.transparent, kQuoteStatusDraft: Colors.black,
kQuoteStatusSent: convertHexStringToColor('#505F73'), kQuoteStatusSent: convertHexStringToColor('#505F73'),
kQuoteStatusApproved: convertHexStringToColor('#407535'), kQuoteStatusApproved: convertHexStringToColor('#407535'),
kQuoteStatusExpired: convertHexStringToColor('#8D3E3F'), kQuoteStatusExpired: convertHexStringToColor('#8D3E3F'),

View File

@ -623,79 +623,73 @@ class SidebarFooterCollapsed extends StatelessWidget {
final Store<AppState> store = StoreProvider.of<AppState>(context); final Store<AppState> store = StoreProvider.of<AppState>(context);
final localization = AppLocalization.of(context); final localization = AppLocalization.of(context);
if (store.state.uiState.filterEntityType != null) {
return SizedBox();
}
return Container( return Container(
width: double.infinity, width: double.infinity,
color: Theme.of(context).cardColor, color: Theme.of(context).cardColor,
child: IconButton( child: store.state.uiState.filterEntityType != null
icon: Icon(Icons.chevron_right), ? PopupMenuButton<String>(
tooltip: localization.showMenu, icon: isUpdateAvailable
onPressed: () { ? Icon(Icons.warning, color: Theme.of(context).accentColor)
store.dispatch(UserSettingsChanged(sidebar: AppSidebar.menu)); : Icon(Icons.info_outline),
}, onSelected: (value) {
), if (value == localization.updateAvailable) {
); _showUpdate(context);
} else if (value == localization.about) {
/* _showAbout(context);
return PopupMenuButton<String>( } else if (value == localization.contactUs) {
icon: isUpdateAvailable _showContactUs(context);
? Icon(Icons.warning, color: Theme.of(context).accentColor) }
: Icon(Icons.info_outline), },
onSelected: (value) { itemBuilder: (BuildContext context) => [
if (value == localization.updateAvailable) { if (isUpdateAvailable)
_showUpdate(context); PopupMenuItem<String>(
} else if (value == localization.about) { child: ListTile(
_showAbout(context); leading: Icon(
} else if (value == localization.contactUs) { Icons.warning,
_showContactUs(context); color: Theme.of(context).accentColor,
} ),
}, title: Text(localization.updateAvailable),
itemBuilder: (BuildContext context) => [ ),
if (isUpdateAvailable) value: localization.updateAvailable,
PopupMenuItem<String>( ),
child: ListTile( PopupMenuItem<String>(
leading: Icon( child: ListTile(
Icons.warning, leading: Icon(Icons.mail),
color: Theme.of(context).accentColor, title: Text(localization.contactUs),
), ),
title: Text(localization.updateAvailable), value: localization.contactUs,
),
PopupMenuItem<String>(
child: ListTile(
leading: Icon(Icons.help_outline),
title: Text(localization.documentation),
),
value: localization.documentation,
),
PopupMenuItem<String>(
child: ListTile(
leading: Icon(Icons.forum),
title: Text(localization.supportForum),
),
value: localization.supportForum,
),
PopupMenuItem<String>(
child: ListTile(
leading: Icon(Icons.info_outline),
title: Text(localization.about),
),
value: localization.about,
),
],
)
: IconButton(
icon: Icon(Icons.chevron_right),
tooltip: localization.showMenu,
onPressed: () {
store.dispatch(UserSettingsChanged(sidebar: AppSidebar.menu));
},
), ),
value: localization.updateAvailable,
),
PopupMenuItem<String>(
child: ListTile(
leading: Icon(Icons.mail),
title: Text(localization.contactUs),
),
value: localization.contactUs,
),
PopupMenuItem<String>(
child: ListTile(
leading: Icon(Icons.help_outline),
title: Text(localization.documentation),
),
value: localization.documentation,
),
PopupMenuItem<String>(
child: ListTile(
leading: Icon(Icons.forum),
title: Text(localization.supportForum),
),
value: localization.supportForum,
),
PopupMenuItem<String>(
child: ListTile(
leading: Icon(Icons.info_outline),
title: Text(localization.about),
),
value: localization.about,
),
],
); );
*/
} }
} }

View File

@ -338,6 +338,7 @@ class AppPaginatedDataTableState extends State<AppPaginatedDataTable> {
final MaterialLocalizations localizations = final MaterialLocalizations localizations =
MaterialLocalizations.of(context); MaterialLocalizations.of(context);
// HEADER // HEADER
/*
final List<Widget> headerWidgets = <Widget>[]; final List<Widget> headerWidgets = <Widget>[];
double startPadding = 24.0; double startPadding = 24.0;
if (_selectedRowCount == 0) { if (_selectedRowCount == 0) {
@ -364,6 +365,7 @@ class AppPaginatedDataTableState extends State<AppPaginatedDataTable> {
); );
}).toList()); }).toList());
} }
*/
// FOOTER // FOOTER
final TextStyle footerTextStyle = themeData.textTheme.caption; final TextStyle footerTextStyle = themeData.textTheme.caption;

View File

@ -3,6 +3,7 @@ import 'package:invoiceninja_flutter/constants.dart';
import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart'; import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_status_chip.dart';
import 'package:invoiceninja_flutter/ui/app/entity_state_label.dart'; import 'package:invoiceninja_flutter/ui/app/entity_state_label.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
@ -52,9 +53,6 @@ class CreditListItem extends StatelessWidget {
: null; : null;
final textColor = Theme.of(context).textTheme.bodyText1.color; final textColor = Theme.of(context).textTheme.bodyText1.color;
final statusLabel = localization.lookup(kCreditStatuses[credit.statusId]);
final statusColor = CreditStatusColors.colors[credit.statusId];
Widget _buildMobile() { Widget _buildMobile() {
return ListTile( return ListTile(
onTap: isInMultiselect onTap: isInMultiselect
@ -208,34 +206,7 @@ class CreditListItem extends StatelessWidget {
textAlign: TextAlign.end, textAlign: TextAlign.end,
), ),
SizedBox(width: 25), SizedBox(width: 25),
credit.isSent EntityStatusChip(entity: credit),
? DecoratedBox(
decoration: BoxDecoration(
color: statusColor,
borderRadius: BorderRadius.all(Radius.circular(5)),
),
child: ConstrainedBox(
constraints: BoxConstraints(
minWidth: 100,
),
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 8),
child: Text(
statusLabel.toUpperCase(),
style: TextStyle(fontSize: 14),
textAlign: TextAlign.center,
),
),
),
)
: SizedBox(
child: Text(
localization.draft.toUpperCase(),
style: TextStyle(fontSize: 14),
textAlign: TextAlign.center,
),
width: 100,
),
], ],
), ),
), ),

View File

@ -231,16 +231,7 @@ class InvoiceListItem extends StatelessWidget {
textAlign: TextAlign.end, textAlign: TextAlign.end,
), ),
SizedBox(width: 25), SizedBox(width: 25),
invoice.isSent EntityStatusChip(entity: invoice)
? EntityStatusChip(entity: invoice)
: SizedBox(
child: Text(
localization.draft.toUpperCase(),
style: TextStyle(fontSize: 14),
textAlign: TextAlign.center,
),
width: 100,
),
], ],
), ),
), ),

View File

@ -57,9 +57,7 @@ class InvoiceOverview extends StatelessWidget {
EntityHeader( EntityHeader(
entity: invoice, entity: invoice,
statusColor: color, statusColor: color,
statusLabel: invoice.statusId == kInvoiceStatusDraft statusLabel: invoice.isPastDue
? null
: invoice.isPastDue
? localization.pastDue ? localization.pastDue
: localization.lookup(stauses[invoice.statusId]), : localization.lookup(stauses[invoice.statusId]),
label: localization.totalAmount, label: localization.totalAmount,

View File

@ -3,6 +3,7 @@ import 'package:invoiceninja_flutter/constants.dart';
import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart'; import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_status_chip.dart';
import 'package:invoiceninja_flutter/ui/app/entity_state_label.dart'; import 'package:invoiceninja_flutter/ui/app/entity_state_label.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
@ -225,34 +226,7 @@ class QuoteListItem extends StatelessWidget {
textAlign: TextAlign.end, textAlign: TextAlign.end,
), ),
SizedBox(width: 25), SizedBox(width: 25),
quote.isSent EntityStatusChip(entity: quote),
? DecoratedBox(
decoration: BoxDecoration(
color: statusColor,
borderRadius: BorderRadius.all(Radius.circular(5)),
),
child: ConstrainedBox(
constraints: BoxConstraints(
minWidth: 100,
),
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 8),
child: Text(
statusLabel.toUpperCase(),
style: TextStyle(fontSize: 14),
textAlign: TextAlign.center,
),
),
),
)
: SizedBox(
child: Text(
localization.draft.toUpperCase(),
style: TextStyle(fontSize: 14),
textAlign: TextAlign.center,
),
width: 100,
),
], ],
), ),
), ),