Add Customers/Tenants pages. Improve login page. Implemented profile page, change and request password reset pages.

This commit is contained in:
Igor Kulikov
2021-06-15 16:38:37 +03:00
parent 21e42820fd
commit 17ce15c98d
33 changed files with 1312 additions and 326 deletions

View File

@@ -9,7 +9,7 @@ class AssetDetailsPage extends EntityDetailsPage<AssetInfo> {
AssetDetailsPage(TbContext tbContext, String assetId):
super(tbContext,
entityId: assetId,
defaultTitle: 'Asset');
defaultTitle: 'Asset', subTitle: 'Asset details');
@override
Future<AssetInfo> fetchEntity(String assetId) {
@@ -18,9 +18,25 @@ class AssetDetailsPage extends EntityDetailsPage<AssetInfo> {
@override
Widget buildEntityDetails(BuildContext context, AssetInfo asset) {
return ListTile(
title: Text('${asset.name}'),
subtitle: Text('${asset.type}'),
return Padding(
padding: EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: [
Text('Asset name', style: labelTextStyle),
Text(asset.name, style: valueTextStyle),
SizedBox(height: 16),
Text('Type', style: labelTextStyle),
Text(asset.type, style: valueTextStyle),
SizedBox(height: 16),
Text('Label', style: labelTextStyle),
Text(asset.label ?? '', style: valueTextStyle),
SizedBox(height: 16),
Text('Assigned to customer', style: labelTextStyle),
Text(asset.customerTitle ?? '', style: valueTextStyle),
]
)
);
}

View File

@@ -27,12 +27,12 @@ mixin AssetsBase on EntitiesBase<AssetInfo, PageLink> {
@override
Widget buildEntityListCard(BuildContext context, AssetInfo asset) {
return _buildEntityListCard(context, asset, false);
return _buildCard(context, asset);
}
@override
Widget buildEntityListWidgetCard(BuildContext context, AssetInfo asset) {
return _buildEntityListCard(context, asset, true);
return _buildListWidgetCard(context, asset);
}
@override
@@ -40,21 +40,86 @@ mixin AssetsBase on EntitiesBase<AssetInfo, PageLink> {
return Text(asset.name);
}
Widget _buildEntityListCard(BuildContext context, AssetInfo asset, bool listWidgetCard) {
Widget _buildCard(context, AssetInfo asset) {
return Row(
mainAxisSize: listWidgetCard ? MainAxisSize.min : MainAxisSize.max,
mainAxisSize: MainAxisSize.max,
children: [
Flexible(
fit: listWidgetCard ? FlexFit.loose : FlexFit.tight,
fit: FlexFit.tight,
child:
Container(
padding: EdgeInsets.symmetric(vertical: listWidgetCard ? 9 : 10, horizontal: 16),
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 0),
child: Row(
mainAxisSize: listWidgetCard ? MainAxisSize.min : MainAxisSize.max,
mainAxisSize: MainAxisSize.max,
children: [
SizedBox(width: 16),
Flexible(
fit: FlexFit.tight,
child:
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
FittedBox(
fit: BoxFit.fitWidth,
alignment: Alignment.centerLeft,
child: Text('${asset.name}',
style: TextStyle(
color: Color(0xFF282828),
fontSize: 14,
fontWeight: FontWeight.w500,
height: 20 / 14
))
),
Text(entityDateFormat.format(DateTime.fromMillisecondsSinceEpoch(asset.createdTime!)),
style: TextStyle(
color: Color(0xFFAFAFAF),
fontSize: 12,
fontWeight: FontWeight.normal,
height: 16 / 12
))
]
),
SizedBox(height: 4),
Text('${asset.type}',
style: TextStyle(
color: Color(0xFFAFAFAF),
fontSize: 12,
fontWeight: FontWeight.normal,
height: 1.33
))
],
)
),
SizedBox(width: 16),
Icon(Icons.chevron_right, color: Color(0xFFACACAC)),
SizedBox(width: 16)
],
),
)
)
]
);
}
Widget _buildListWidgetCard(BuildContext context, AssetInfo asset) {
return Row(
mainAxisSize: MainAxisSize.min,
children: [
Flexible(
fit: FlexFit.loose,
child:
Container(
padding: EdgeInsets.symmetric(vertical: 9, horizontal: 16),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Flexible(
fit: listWidgetCard ? FlexFit.loose : FlexFit.tight,
fit: FlexFit.loose,
child:
Column(
crossAxisAlignment: CrossAxisAlignment.start,
@@ -79,23 +144,10 @@ mixin AssetsBase on EntitiesBase<AssetInfo, PageLink> {
))
],
)
),
(!listWidgetCard ? Column(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(entityDateFormat.format(DateTime.fromMillisecondsSinceEpoch(asset.createdTime!)),
style: TextStyle(
color: Color(0xFFAFAFAF),
fontSize: 12,
fontWeight: FontWeight.normal,
height: 1.33
))
],
) : Container())
],
),
)
]
)
)
)
]
);