From d7d44a3cdaf498b770319d336fbf19d95646bc10 Mon Sep 17 00:00:00 2001 From: keerthanapalepu Date: Sat, 11 Mar 2023 21:16:34 +0530 Subject: [PATCH 1/4] initial commit --- assets/Rules.pdf | Bin 0 -> 81758 bytes lib/Components/appBar.dart | 26 ++ lib/Components/side_drawer.dart | 6 +- lib/main.dart | 2 + .../Visitors_Hostel/Components/Card.dart | 27 ++ .../Components/RulesAndRegulation.dart | 16 + .../Visitors_Hostel/Components/list_tile.dart | 36 ++ .../Visitors_Hostel/activeBookings.dart | 124 ++++++ .../Visitors_Hostel/cancelRequest.dart | 124 ++++++ .../Visitors_Hostel/completedBookings.dart | 124 ++++++ .../Visitors_Hostel/place_request.dart | 356 ++++++++++++++++++ lib/screens/Visitors_Hostel/viewBookings.dart | 123 ++++++ .../Visitors_Hostel/visitors_hostel_home.dart | 227 +++++++++++ pubspec.yaml | 8 + 14 files changed, 1198 insertions(+), 1 deletion(-) create mode 100644 assets/Rules.pdf create mode 100644 lib/screens/Visitors_Hostel/Components/Card.dart create mode 100644 lib/screens/Visitors_Hostel/Components/RulesAndRegulation.dart create mode 100644 lib/screens/Visitors_Hostel/Components/list_tile.dart create mode 100644 lib/screens/Visitors_Hostel/activeBookings.dart create mode 100644 lib/screens/Visitors_Hostel/cancelRequest.dart create mode 100644 lib/screens/Visitors_Hostel/completedBookings.dart create mode 100644 lib/screens/Visitors_Hostel/place_request.dart create mode 100644 lib/screens/Visitors_Hostel/viewBookings.dart create mode 100644 lib/screens/Visitors_Hostel/visitors_hostel_home.dart diff --git a/assets/Rules.pdf b/assets/Rules.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a3b6195f435f59986c33af9fbb554d16356737e2 GIT binary patch literal 81758 zcmeFac{r6_)IXj|3ekkhbTU>F=inF;Lduw-%tFXKWEPSn4TfYMGF4Q{7%DTFGlj^I z3>iW)i{iV_;C=4XIlu5;um1Wy&vRYpvCeJpz1F?W`fRLJFyBO)TCMplNXG4T91 z76W}4oRmvk9>%3$ZELA-@!vzp{~nSuwXg?6+~TIe-LWloSyVmj zw&L09^G45IYp+K1J$)|c-8*|^U;O*e!Jns=PfGsk7PT6E)Ld+t+vPMjpA%rcJjJP_ zcVidjh$grZi`G0|La$$=>&I-J#g|Fnoy> zp3B{2J5!M(bmOou&uM0z7{@#w=Q+hI_B)t#!%yd#hlO@OdF;RCr$DCU*oQKg$2(My zrfWoYoY4>aUMJBZ{>545t=tLY@!R*UWDU|g#CO3Y5=bj{u{`=-b3Jo$)2-9A4DZhF z^FJUSDBW&z#@}A+pl=tO_o-8e9dGwa*-jQ56DXzB(|mPFEL5^5JdlVqvwJexUN`X8 z_aK?G!EAvr@yU}?$DL{FCboRKVWt=-_drr6oNB6n@#><^O!8hXY%rCOXn?7=4^m z&#s|QKX#BJ?S(R;vm(P@r8q-afuWuGDRD`LWU8J9U2TKW7T`Kul?aML$mQoFBW~CxT{C?)~d!ADq*QE|lz@!uP8hrOu zNmK9Qq(H(nLs^5K7Tz?7F5sf5OV>MST7F$1;>Ia58ABIpF;22(PtDzj0}o5iic4|5 zK2Wzu@8xq6qoXXOA)dVjfz|F0LlEIq@q45%em^gf`i|oLp8GGKS0*S%NX8>nS>jdW zICr#2Xze~4SSdtwFp1`7iN@yF7pMXiBUogga5Qhu``R${gOlRPjxWAU*9{)4x6usd zZt9&>G;+JM&v!>dysF}H%GP4KvnrMEbH30qTgyt=Nj~1v;=J$aeeUCNKAJ?in+@pO zJ$`zYESv;txB@tB(_;`KDJbEE0q-knೳY_3xysad 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 j#y5P4c#IF;&+6mV*VB3J@jXT_|0eswPhA7b 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 literal 0 HcmV?d00001 diff --git a/lib/Components/appBar.dart b/lib/Components/appBar.dart index 9f4cb686..a6de75d1 100644 --- a/lib/Components/appBar.dart +++ b/lib/Components/appBar.dart @@ -26,4 +26,30 @@ class DefaultAppBar { ], ); } + AppBar visitorHostelAppBar() { + return AppBar( + iconTheme: IconThemeData(color: Colors.white), + title: Text( + "Visitor Hostel", + style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.bold), + ), + backgroundColor: Colors.black, + // ignore: prefer_const_literals_to_create_immutables + actions: [ + Padding( + padding: EdgeInsets.all(8.0), + child: Icon(Icons.search), + ), + Padding( + padding: EdgeInsets.all(8.0), + child: Icon(Icons.notifications), + ), + Padding( + padding: EdgeInsets.all(8.0), + child: Icon(Icons.more_vert), + ), + ], + elevation: 0, + ); + } } diff --git a/lib/Components/side_drawer.dart b/lib/Components/side_drawer.dart index be08db0e..da171ae3 100644 --- a/lib/Components/side_drawer.dart +++ b/lib/Components/side_drawer.dart @@ -141,7 +141,11 @@ class _SideDrawerState extends State { ), ModulesPadding(line: 'Leave Module'), ModulesPadding(line: 'Placement Module'), - ModulesPadding(line: 'Visitors Hostel Module'), + ModulesPadding( + line: 'Visitors Hostel Module', + pageMover: '/visitor_hostel', + isActive: true, + ), ModulesPadding(line: 'File Tracking Module'), ], ), diff --git a/lib/main.dart b/lib/main.dart index 29a2c810..14067b79 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -35,6 +35,7 @@ import 'package:fusion/screens/Programme_Curriculum/Discipline/discipline.dart'; import 'package:fusion/screens/Programme_Curriculum/Programme/programme_home_page.dart'; import 'package:fusion/screens/Programme_Curriculum/Programme_Info/programme_info.dart'; import 'package:fusion/screens/Programme_Curriculum/programme_curriculum_home.dart'; +import 'package:fusion/screens/Visitors_Hostel/visitors_hostel_home.dart'; import 'package:fusion/screens/landing_page.dart'; import 'package:fusion/screens/Healthcenter/healthcentermodule.dart'; import 'package:fusion/screens/Healthcenter/feedback.dart'; @@ -126,6 +127,7 @@ class MyApp extends StatelessWidget { '/health_center/feedback': (context) => FeedBack(), '/health_center/viewschedule': (context) => ViewSchedule(), '/health_center/history': (context) => History(), + '/visitor_hostel' : (context) => VisitorHostel(), }, ), ); diff --git a/lib/screens/Visitors_Hostel/Components/Card.dart b/lib/screens/Visitors_Hostel/Components/Card.dart new file mode 100644 index 00000000..30192c94 --- /dev/null +++ b/lib/screens/Visitors_Hostel/Components/Card.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/list_tile.dart'; + +class BookingInfoCard extends StatelessWidget { + final List bookingInfoTiles; + + const BookingInfoCard({required this.bookingInfoTiles}); + + @override + Widget build(BuildContext context) { + return Container( + width: MediaQuery.of(context).size.width * 0.8, + child: Card( + shape: RoundedRectangleBorder( + side: BorderSide( + color: Colors.black, + ), + borderRadius: BorderRadius.circular(20.0), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: bookingInfoTiles, + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/Visitors_Hostel/Components/RulesAndRegulation.dart b/lib/screens/Visitors_Hostel/Components/RulesAndRegulation.dart new file mode 100644 index 00000000..faecbcaf --- /dev/null +++ b/lib/screens/Visitors_Hostel/Components/RulesAndRegulation.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart'; + +class MyPdfViewer extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('PDF Viewer'), + ), + body: SfPdfViewer.asset( + 'assets/Rules.pdf', + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/Visitors_Hostel/Components/list_tile.dart b/lib/screens/Visitors_Hostel/Components/list_tile.dart new file mode 100644 index 00000000..a2a1a811 --- /dev/null +++ b/lib/screens/Visitors_Hostel/Components/list_tile.dart @@ -0,0 +1,36 @@ +import 'package:flutter/material.dart'; + + +class CardListTile extends StatelessWidget { + final IconData iconData; + final String label; + final String value; + final Color color; + const CardListTile({ + required this.iconData, + required this.label, + required this.value, + required this.color, + }); + + @override + Widget build(BuildContext context) { + return ListTile( + leading: Icon(iconData), + title: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(label), + Expanded( + child: Align( + alignment: Alignment.centerRight, + child: Text(value), + ), + ), + ], + ), + tileColor: color, + ); + } +} + \ No newline at end of file diff --git a/lib/screens/Visitors_Hostel/activeBookings.dart b/lib/screens/Visitors_Hostel/activeBookings.dart new file mode 100644 index 00000000..9ba7238f --- /dev/null +++ b/lib/screens/Visitors_Hostel/activeBookings.dart @@ -0,0 +1,124 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; +import 'package:fusion/Components/side_drawer.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/Card.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/list_tile.dart'; + + +class ActiveBookings extends StatefulWidget { + @override + _ActiveBookingsState createState() => _ActiveBookingsState(); +} + +class _ActiveBookingsState extends State { +List < Map < String, dynamic >> bookingData = [{ + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Active' +}, { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'Active' +}, +{ + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Active' +}, { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'Active' +}, +]; + + + @override + + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: DefaultAppBar().visitorHostelAppBar(), + drawer: SideDrawer(), + body: Column( + children: [ + SizedBox(height: 24.0), + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + borderRadius: BorderRadius.only( + topLeft: Radius.circular(30.0), + topRight: Radius.circular(30.0), + ), + ), + child: SingleChildScrollView( + child: Column( + children: [ + SizedBox(height: 24.0), + Text( + 'Active Bookings', + style: TextStyle(fontSize: 20, + fontWeight: FontWeight.bold,), + ), + SizedBox(height: 20.0), + Column( + children: List.generate(bookingData.length, (index) { + return Column( + children: [ + SizedBox(height: 20.0), + BookingInfoCard( + bookingInfoTiles: [ + CardListTile( + iconData: Icons.person, + label: 'Intender', + value: bookingData[index]['Intender'], + color: Colors.white, + ), + CardListTile( + iconData: Icons.today, + label: "BookingFrom", + value: bookingData[index]['BookingFrom'], + color: Color.fromARGB(255, 206, 205, 205), + ), + CardListTile( + iconData: Icons.event, + label: "BookingTo", + value: bookingData[index]['BookingTo'], + color: Colors.white, + ), + CardListTile( + iconData: Icons.category, + label: "Category", + value: bookingData[index]['Category'], + color: Color.fromARGB(255, 206, 205, 205), + ), + CardListTile( + iconData: Icons.info, + label: "Status", + value: bookingData[index]['Status'], + color: Colors.white, + ) + ], + ), + ], + ); + }), + )] + ), + ), + ), + ), + ], + ), + ); + }} \ No newline at end of file diff --git a/lib/screens/Visitors_Hostel/cancelRequest.dart b/lib/screens/Visitors_Hostel/cancelRequest.dart new file mode 100644 index 00000000..cf6d8152 --- /dev/null +++ b/lib/screens/Visitors_Hostel/cancelRequest.dart @@ -0,0 +1,124 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; +import 'package:fusion/Components/side_drawer.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/Card.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/list_tile.dart'; + + +class CancelledBookings extends StatefulWidget { + @override + _CancelledBookingsState createState() => _CancelledBookingsState(); +} + +class _CancelledBookingsState extends State { +List < Map < String, dynamic >> bookingData = [{ + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Cancelled' +}, { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'InCancelled' +}, +{ + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Cancelled' +}, { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'InCancelled' +}, +]; + + + @override + + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: DefaultAppBar().visitorHostelAppBar(), + drawer: SideDrawer(), + body: Column( + children: [ + SizedBox(height: 24.0), + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + borderRadius: BorderRadius.only( + topLeft: Radius.circular(30.0), + topRight: Radius.circular(30.0), + ), + ), + child: SingleChildScrollView( + child: Column( + children: [ + SizedBox(height: 24.0), + Text( + 'Cancelled Bookings', + style: TextStyle(fontSize: 20, + fontWeight: FontWeight.bold,), + ), + SizedBox(height: 20.0), + Column( + children: List.generate(bookingData.length, (index) { + return Column( + children: [ + SizedBox(height: 20.0), + BookingInfoCard( + bookingInfoTiles: [ + CardListTile( + iconData: Icons.person, + label: 'Intender', + value: bookingData[index]['Intender'], + color: Colors.white, + ), + CardListTile( + iconData: Icons.today, + label: "BookingFrom", + value: bookingData[index]['BookingFrom'], + color: Color.fromARGB(255, 206, 205, 205), + ), + CardListTile( + iconData: Icons.event, + label: "BookingTo", + value: bookingData[index]['BookingTo'], + color: Colors.white, + ), + CardListTile( + iconData: Icons.category, + label: "Category", + value: bookingData[index]['Category'], + color: Color.fromARGB(255, 206, 205, 205), + ), + CardListTile( + iconData: Icons.info, + label: "Status", + value: bookingData[index]['Status'], + color: Colors.white, + ) + ], + ), + ], + ); + }), + )] + ), + ), + ), + ), + ], + ), + ); + }} \ No newline at end of file diff --git a/lib/screens/Visitors_Hostel/completedBookings.dart b/lib/screens/Visitors_Hostel/completedBookings.dart new file mode 100644 index 00000000..830c65cb --- /dev/null +++ b/lib/screens/Visitors_Hostel/completedBookings.dart @@ -0,0 +1,124 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; +import 'package:fusion/Components/side_drawer.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/Card.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/list_tile.dart'; + +class CompletedBookings extends StatefulWidget { + @override + _CompletedBookingsState createState() => _CompletedBookingsState(); +} + +class _CompletedBookingsState extends State { + List < Map < String, dynamic >> bookingData = [{ + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Completed' +}, { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'InComplete' +}, +{ + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Completed' +}, { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'InComplete' +}, +]; + + + @override + + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: DefaultAppBar().visitorHostelAppBar(), + drawer: SideDrawer(), + body: Column( + children: [ + SizedBox(height: 24.0), + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + borderRadius: BorderRadius.only( + topLeft: Radius.circular(30.0), + topRight: Radius.circular(30.0), + ), + ), + child: SingleChildScrollView( + child: Column( + children: [ + SizedBox(height: 24.0), + Text( + 'Completed Bookings', + style: TextStyle(fontSize: 20, + fontWeight: FontWeight.bold,), + ), + SizedBox(height: 20.0), + Column( + children: List.generate(bookingData.length, (index) { + return Column( + children: [ + SizedBox(height: 20.0), + BookingInfoCard( + bookingInfoTiles: [ + CardListTile( + iconData: Icons.person, + label: 'Intender', + value: bookingData[index]['Intender'], + color: Colors.white, + ), + CardListTile( + iconData: Icons.today, + label: "BookingFrom", + value: bookingData[index]['BookingFrom'], + color: Color.fromARGB(255, 206, 205, 205), + ), + CardListTile( + iconData: Icons.event, + label: "BookingTo", + value: bookingData[index]['BookingTo'], + color: Colors.white, + ), + CardListTile( + iconData: Icons.category, + label: "Category", + value: bookingData[index]['Category'], + color: Color.fromARGB(255, 206, 205, 205), + ), + CardListTile( + iconData: Icons.info, + label: "Status", + value: bookingData[index]['Status'], + color: Colors.white, + ) + ], + ), + ], + ); + }), + )] + ), + ), + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/Visitors_Hostel/place_request.dart b/lib/screens/Visitors_Hostel/place_request.dart new file mode 100644 index 00000000..c146381a --- /dev/null +++ b/lib/screens/Visitors_Hostel/place_request.dart @@ -0,0 +1,356 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; +import 'package:fusion/Components/side_drawer.dart'; +class PlaceRequest extends StatefulWidget { + @override + _PlaceRequestState createState() => _PlaceRequestState(); +} + +class _PlaceRequestState extends State { + bool _isDropdownVisible = false; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: DefaultAppBar().visitorHostelAppBar(), + drawer: SideDrawer(), + body: Column( + children: [ + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + ), + child: Column( + children: [ + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + Text('Arrival Date'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2100), + ).then((selectedDate) { + // handle selected arrival date + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon(Icons.calendar_today), + SizedBox(width: 10), + Text('Select Date'), + ], + ), + ), + ), + ], + ), + Column( + children: [ + Text('Arrival Time'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showTimePicker( + context: context, + initialTime: TimeOfDay.now(), + ).then((selectedTime) { + // handle selected arrival time + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon(Icons.access_time), + SizedBox(width: 10), + Text('Select Time'), + ], + ), + ), + ), + ], + ), + ], + ), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + Text('Departure Date'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2100), + ).then((selectedDate) { + // handle selected departure date + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon(Icons.calendar_today), + SizedBox(width: 10), + Text('Select Date'), + ], + ), + ), + ), + ], + ), + Column( + children: [ + Text('Departure Time'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showTimePicker( + context: context, + initialTime: TimeOfDay.now(), + ).then((selectedTime) { + // handle selected departure time + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon(Icons.access_time), + SizedBox(width: 10), + Text('Select Time'), + ], + ), + ), + ), + ], + ), + ], + ), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + Text('Number of People'), + SizedBox(height: 10), + Row( + children: [ + GestureDetector( + onTap: () { + // handle decreasing number of people + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.all(10), + child: Icon(Icons.remove), + ), + ), + SizedBox(width: 10), + Text('0'), + SizedBox(width: 10), + GestureDetector( + onTap: () { + // handle increasing number of people + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.all(10), + child: Icon(Icons.add), + ), + ), + ], + ), + ], + ), + Column( + children: [ + Text('Number of Rooms'), + SizedBox(height: 10), + Row( + children: [ + GestureDetector( + onTap: () { + // handle decreasing number of rooms + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.all(10), + child: Icon(Icons.remove), + ), + ), + SizedBox(width: 10), + Text('0'), + SizedBox(width: 10), + GestureDetector( + onTap: () { + // handle increasing number of rooms + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.all(10), + child: Icon(Icons.add), + ), + ), + ], + ), + ], + ), + ], + ), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Expanded( + child: Column( + children: [ + Text('Category'), + SizedBox(height: 10), + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric(horizontal: 10), + child: DropdownButton( + value: 'A', + isExpanded: true, + icon: Icon(Icons.arrow_drop_down), + underline: SizedBox(), + onChanged: (String? newValue) { + setState(() { + // handle updating category + }); + }, + items: ['A', 'B', 'C', 'D'] + .map>((String value) { + return DropdownMenuItem( + value: value, + child: Text(value), + ); + }).toList(), + ), + ), + ], + ), + ), + Expanded( + child: Column( + children: [ + Text('Purpose of Visit'), + SizedBox(height: 10), + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric(horizontal: 10), + child: TextField( + decoration: InputDecoration( + border: InputBorder.none, + ), + onChanged: (String value) { + setState(() { + // handle updating purpose of visit + }); + }, + ), + ), + ], + ), + ), + ], + ), + SizedBox(height: 20), + Column( + children: [ + Text('Remarks'), + SizedBox(height: 10), + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric(horizontal: 10), + child: TextField( + decoration: InputDecoration( + border: InputBorder.none, + ), + onChanged: (String value) { + setState(() { + // handle updating remarks + }); + }, + ), + ), + ], + ), + ],), + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/Visitors_Hostel/viewBookings.dart b/lib/screens/Visitors_Hostel/viewBookings.dart new file mode 100644 index 00000000..176b1d60 --- /dev/null +++ b/lib/screens/Visitors_Hostel/viewBookings.dart @@ -0,0 +1,123 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; +import 'package:fusion/Components/side_drawer.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/Card.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/list_tile.dart'; + +class ViewBookings extends StatefulWidget { + @override + _ViewBookingsState createState() => _ViewBookingsState(); +} + +class _ViewBookingsState extends State { +List < Map < String, dynamic >> bookingData = [{ + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Active' +}, { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'Inactive' +}, +{ + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Active' +}, { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'Inactive' +}, +]; + + + @override + + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: DefaultAppBar().visitorHostelAppBar(), + drawer: SideDrawer(), + body: Column( + children: [ + SizedBox(height: 24.0), + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + borderRadius: BorderRadius.only( + topLeft: Radius.circular(30.0), + topRight: Radius.circular(30.0), + ), + ), + child: SingleChildScrollView( + child: Column( + children: [ + SizedBox(height: 24.0), + Text( + 'Bookings', + style: TextStyle(fontSize: 20, + fontWeight: FontWeight.bold,), + ), + SizedBox(height: 20.0), + Column( + children: List.generate(bookingData.length, (index) { + return Column( + children: [ + SizedBox(height: 20.0), + BookingInfoCard( + bookingInfoTiles: [ + CardListTile( + iconData: Icons.person, + label: 'Intender', + value: bookingData[index]['Intender'], + color: Colors.white, + ), + CardListTile( + iconData: Icons.today, + label: "BookingFrom", + value: bookingData[index]['BookingFrom'], + color: Color.fromARGB(255, 206, 205, 205), + ), + CardListTile( + iconData: Icons.event, + label: "BookingTo", + value: bookingData[index]['BookingTo'], + color: Colors.white, + ), + CardListTile( + iconData: Icons.category, + label: "Category", + value: bookingData[index]['Category'], + color: Color.fromARGB(255, 206, 205, 205), + ), + CardListTile( + iconData: Icons.info, + label: "Status", + value: bookingData[index]['Status'], + color: Colors.white, + ) + ], + ), + ], + ); + }), + )] + ), + ), + ), + ), + ], + ), + ); + }} \ No newline at end of file diff --git a/lib/screens/Visitors_Hostel/visitors_hostel_home.dart b/lib/screens/Visitors_Hostel/visitors_hostel_home.dart new file mode 100644 index 00000000..279de305 --- /dev/null +++ b/lib/screens/Visitors_Hostel/visitors_hostel_home.dart @@ -0,0 +1,227 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; +import 'package:fusion/Components/side_drawer.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/RulesAndRegulation.dart'; +import 'package:fusion/screens/Visitors_Hostel/activeBookings.dart'; +import 'package:fusion/screens/Visitors_Hostel/cancelRequest.dart'; +import 'package:fusion/screens/Visitors_Hostel/completedBookings.dart'; +import 'package:fusion/screens/Visitors_Hostel/place_request.dart'; +import 'package:fusion/screens/Visitors_Hostel/viewBookings.dart'; + +class VisitorHostel extends StatefulWidget { + @override + _VisitorHostelState createState() => _VisitorHostelState(); +} + +class _VisitorHostelState extends State { + bool _isDropdownVisible = false; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: DefaultAppBar().visitorHostelAppBar(), + drawer: SideDrawer(), + body: Column( + children: [ + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + ), + child: Column( + children: [ + + SizedBox(height: 24.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + setState(() { + _isDropdownVisible = !_isDropdownVisible; + }); + }, + color: Colors.white, + textColor: Color.fromARGB(255, 59, 59, 59), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Manage Bookings', style: TextStyle(fontSize: 18.0)), + Icon(_isDropdownVisible? Icons.arrow_drop_up : Icons.arrow_drop_down, color: Colors.grey), + ], + ), + ), + ), + SizedBox(height: 16.0), + _isDropdownVisible + ? Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Container( + width: MediaQuery.of(context).size.width * 0.8, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + boxShadow: [ + BoxShadow( + color: Colors.black26, + offset: Offset(0.0, 2.0), + blurRadius: 6.0, + ), + ], + ), + child: Padding( + padding: EdgeInsets.all(16.0), + child: Column( + children: [ + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => ViewBookings()), + ); + }, + child: Text("View Bookings"), + ), + SizedBox(height: 9.0), + Divider( + thickness: 1.0, + ), + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => CancelledBookings()), + ); + }, + child: Text("Cancellation Requests"), + ), + + SizedBox(height: 9.0), + Divider( + thickness: 1.0, + ), + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => ActiveBookings()), + ); + }, + child: Text("Active Bookings"), + ), + SizedBox(height: 9.0), + Divider( + thickness: 1.0, + ), + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => CompletedBookings()), + ); + }, + child: Text("Completed Bookings"), + ), + SizedBox(height: 9.0), + ], + ), + ), + ), + ) + : SizedBox.shrink(), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + }, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Booking Form', style: TextStyle(fontSize: 18.0)) + ), + ), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => MyPdfViewer()), + ); + }, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Rules and Regulations', style: TextStyle(fontSize: 18.0)) + ), + ), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.6, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => PlaceRequest()), + ); + }, + color: Color.fromARGB(255, 243, 33, 33), + textColor: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Place Request', style: TextStyle(fontSize: 18.0)) + ), + ), + ], + ), + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/pubspec.yaml b/pubspec.yaml index 49030f0b..a588ca0b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -39,6 +39,13 @@ dependencies: path_provider: ^2.0.8 open_file: ^3.2.1 flutter_html: ^2.2.1 + flutter_lints: ^2.0.0 + date_picker_number: ^1.0.2 + date_time_picker: ^2.1.0 + dropdown_button2: ^1.9.2 + get: ^4.6.5 + intl: ^0.17.0 + material: ^1.0.0+2 @@ -68,6 +75,7 @@ flutter: - assets/mypic.jpg - assets/unknown.jpg - assets/profile_pic.png + - assets/Rules.pdf - db/ # An image asset can refer to one or more resolution-specific "variants", see From 97c887b2dab6575d12d3a2712e2982c151977d6f Mon Sep 17 00:00:00 2001 From: Adarsh Date: Thu, 16 Mar 2023 23:12:39 +0530 Subject: [PATCH 2/4] update: changed app bar bgcolor --- lib/Components/appBar.dart | 21 +- .../Visitors_Hostel/activeBookings.dart | 77 +-- .../Visitors_Hostel/cancelRequest.dart | 77 +-- .../Visitors_Hostel/completedBookings.dart | 75 +-- .../Visitors_Hostel/place_request.dart | 619 +++++++++--------- lib/screens/Visitors_Hostel/viewBookings.dart | 76 +-- .../Visitors_Hostel/visitors_hostel_home.dart | 338 +++++----- 7 files changed, 654 insertions(+), 629 deletions(-) diff --git a/lib/Components/appBar.dart b/lib/Components/appBar.dart index a6de75d1..1f82e70e 100644 --- a/lib/Components/appBar.dart +++ b/lib/Components/appBar.dart @@ -8,7 +8,8 @@ class DefaultAppBar { backgroundColor: kPrimaryColor, title: Text( "Dashboard", - style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.bold), + style: TextStyle( + color: Colors.white, fontSize: 18, fontWeight: FontWeight.bold), ), actions: [ Padding( @@ -26,16 +27,18 @@ class DefaultAppBar { ], ); } + AppBar visitorHostelAppBar() { return AppBar( - iconTheme: IconThemeData(color: Colors.white), - title: Text( + iconTheme: IconThemeData(color: Colors.white), + title: Text( "Visitor Hostel", - style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.bold), + style: TextStyle( + color: Colors.white, fontSize: 18, fontWeight: FontWeight.bold), ), - backgroundColor: Colors.black, - // ignore: prefer_const_literals_to_create_immutables - actions: [ + backgroundColor: Color.fromARGB(255, 243, 33, 33), + // ignore: prefer_const_literals_to_create_immutables + actions: [ Padding( padding: EdgeInsets.all(8.0), child: Icon(Icons.search), @@ -49,7 +52,7 @@ class DefaultAppBar { child: Icon(Icons.more_vert), ), ], - elevation: 0, - ); + elevation: 0, + ); } } diff --git a/lib/screens/Visitors_Hostel/activeBookings.dart b/lib/screens/Visitors_Hostel/activeBookings.dart index 9ba7238f..b911ed0b 100644 --- a/lib/screens/Visitors_Hostel/activeBookings.dart +++ b/lib/screens/Visitors_Hostel/activeBookings.dart @@ -4,47 +4,46 @@ import 'package:fusion/Components/side_drawer.dart'; import 'package:fusion/screens/Visitors_Hostel/Components/Card.dart'; import 'package:fusion/screens/Visitors_Hostel/Components/list_tile.dart'; - class ActiveBookings extends StatefulWidget { @override _ActiveBookingsState createState() => _ActiveBookingsState(); } class _ActiveBookingsState extends State { -List < Map < String, dynamic >> bookingData = [{ - 'Intender': 'Bob', - 'BookingFrom': '21st Jan', - 'BookingTo': '28th Jan', - 'Category': 'B', - 'Status': 'Active' -}, { - 'Intender': 'Jane', - 'BookingFrom': '22nd Jan', - 'BookingTo': '29th Jan', - 'Category': 'A', - 'Status': 'Active' -}, -{ - 'Intender': 'Bob', - 'BookingFrom': '21st Jan', - 'BookingTo': '28th Jan', - 'Category': 'B', - 'Status': 'Active' -}, { - 'Intender': 'Jane', - 'BookingFrom': '22nd Jan', - 'BookingTo': '29th Jan', - 'Category': 'A', - 'Status': 'Active' -}, -]; - + List> bookingData = [ + { + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Active' + }, + { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'Active' + }, + { + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Active' + }, + { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'Active' + }, + ]; @override - Widget build(BuildContext context) { return Scaffold( - backgroundColor: Colors.black, appBar: DefaultAppBar().visitorHostelAppBar(), drawer: SideDrawer(), body: Column( @@ -62,13 +61,14 @@ List < Map < String, dynamic >> bookingData = [{ ), ), child: SingleChildScrollView( - child: Column( - children: [ + child: Column(children: [ SizedBox(height: 24.0), Text( 'Active Bookings', - style: TextStyle(fontSize: 20, - fontWeight: FontWeight.bold,), + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), ), SizedBox(height: 20.0), Column( @@ -113,12 +113,13 @@ List < Map < String, dynamic >> bookingData = [{ ], ); }), - )] - ), + ) + ]), ), ), ), ], ), ); - }} \ No newline at end of file + } +} diff --git a/lib/screens/Visitors_Hostel/cancelRequest.dart b/lib/screens/Visitors_Hostel/cancelRequest.dart index cf6d8152..41bcfd23 100644 --- a/lib/screens/Visitors_Hostel/cancelRequest.dart +++ b/lib/screens/Visitors_Hostel/cancelRequest.dart @@ -4,47 +4,46 @@ import 'package:fusion/Components/side_drawer.dart'; import 'package:fusion/screens/Visitors_Hostel/Components/Card.dart'; import 'package:fusion/screens/Visitors_Hostel/Components/list_tile.dart'; - class CancelledBookings extends StatefulWidget { @override _CancelledBookingsState createState() => _CancelledBookingsState(); } class _CancelledBookingsState extends State { -List < Map < String, dynamic >> bookingData = [{ - 'Intender': 'Bob', - 'BookingFrom': '21st Jan', - 'BookingTo': '28th Jan', - 'Category': 'B', - 'Status': 'Cancelled' -}, { - 'Intender': 'Jane', - 'BookingFrom': '22nd Jan', - 'BookingTo': '29th Jan', - 'Category': 'A', - 'Status': 'InCancelled' -}, -{ - 'Intender': 'Bob', - 'BookingFrom': '21st Jan', - 'BookingTo': '28th Jan', - 'Category': 'B', - 'Status': 'Cancelled' -}, { - 'Intender': 'Jane', - 'BookingFrom': '22nd Jan', - 'BookingTo': '29th Jan', - 'Category': 'A', - 'Status': 'InCancelled' -}, -]; - + List> bookingData = [ + { + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Cancelled' + }, + { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'InCancelled' + }, + { + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Cancelled' + }, + { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'InCancelled' + }, + ]; @override - Widget build(BuildContext context) { return Scaffold( - backgroundColor: Colors.black, appBar: DefaultAppBar().visitorHostelAppBar(), drawer: SideDrawer(), body: Column( @@ -62,13 +61,14 @@ List < Map < String, dynamic >> bookingData = [{ ), ), child: SingleChildScrollView( - child: Column( - children: [ + child: Column(children: [ SizedBox(height: 24.0), Text( 'Cancelled Bookings', - style: TextStyle(fontSize: 20, - fontWeight: FontWeight.bold,), + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), ), SizedBox(height: 20.0), Column( @@ -113,12 +113,13 @@ List < Map < String, dynamic >> bookingData = [{ ], ); }), - )] - ), + ) + ]), ), ), ), ], ), ); - }} \ No newline at end of file + } +} diff --git a/lib/screens/Visitors_Hostel/completedBookings.dart b/lib/screens/Visitors_Hostel/completedBookings.dart index 830c65cb..e369e6bc 100644 --- a/lib/screens/Visitors_Hostel/completedBookings.dart +++ b/lib/screens/Visitors_Hostel/completedBookings.dart @@ -10,40 +10,40 @@ class CompletedBookings extends StatefulWidget { } class _CompletedBookingsState extends State { - List < Map < String, dynamic >> bookingData = [{ - 'Intender': 'Bob', - 'BookingFrom': '21st Jan', - 'BookingTo': '28th Jan', - 'Category': 'B', - 'Status': 'Completed' -}, { - 'Intender': 'Jane', - 'BookingFrom': '22nd Jan', - 'BookingTo': '29th Jan', - 'Category': 'A', - 'Status': 'InComplete' -}, -{ - 'Intender': 'Bob', - 'BookingFrom': '21st Jan', - 'BookingTo': '28th Jan', - 'Category': 'B', - 'Status': 'Completed' -}, { - 'Intender': 'Jane', - 'BookingFrom': '22nd Jan', - 'BookingTo': '29th Jan', - 'Category': 'A', - 'Status': 'InComplete' -}, -]; - + List> bookingData = [ + { + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Completed' + }, + { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'InComplete' + }, + { + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Completed' + }, + { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'InComplete' + }, + ]; @override - Widget build(BuildContext context) { return Scaffold( - backgroundColor: Colors.black, appBar: DefaultAppBar().visitorHostelAppBar(), drawer: SideDrawer(), body: Column( @@ -61,13 +61,14 @@ class _CompletedBookingsState extends State { ), ), child: SingleChildScrollView( - child: Column( - children: [ + child: Column(children: [ SizedBox(height: 24.0), Text( 'Completed Bookings', - style: TextStyle(fontSize: 20, - fontWeight: FontWeight.bold,), + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), ), SizedBox(height: 20.0), Column( @@ -112,8 +113,8 @@ class _CompletedBookingsState extends State { ], ); }), - )] - ), + ) + ]), ), ), ), @@ -121,4 +122,4 @@ class _CompletedBookingsState extends State { ), ); } -} \ No newline at end of file +} diff --git a/lib/screens/Visitors_Hostel/place_request.dart b/lib/screens/Visitors_Hostel/place_request.dart index c146381a..97b130c1 100644 --- a/lib/screens/Visitors_Hostel/place_request.dart +++ b/lib/screens/Visitors_Hostel/place_request.dart @@ -1,13 +1,14 @@ import 'package:flutter/material.dart'; import 'package:fusion/Components/appBar.dart'; import 'package:fusion/Components/side_drawer.dart'; + class PlaceRequest extends StatefulWidget { @override _PlaceRequestState createState() => _PlaceRequestState(); } class _PlaceRequestState extends State { - bool _isDropdownVisible = false; + bool _isDropdownVisible = false; @override Widget build(BuildContext context) { @@ -24,333 +25,337 @@ class _PlaceRequestState extends State { decoration: BoxDecoration( color: Color.fromARGB(255, 248, 247, 247), ), - child: Column( - children: [ - SizedBox(height: 20), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Column( - children: [ - Text('Arrival Date'), - SizedBox(height: 10), - GestureDetector( - onTap: () { - showDatePicker( - context: context, - initialDate: DateTime.now(), - firstDate: DateTime.now(), - lastDate: DateTime(2100), - ).then((selectedDate) { - // handle selected arrival date - }); - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric( - horizontal: 15, - vertical: 10, - ), - child: Row( + child: SingleChildScrollView( + child: Column( + children: [ + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - Icon(Icons.calendar_today), - SizedBox(width: 10), - Text('Select Date'), + Column( + children: [ + Text('Arrival Date'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2100), + ).then((selectedDate) { + // handle selected arrival date + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon(Icons.calendar_today), + SizedBox(width: 10), + Text('Select Date'), + ], + ), + ), + ), + ], + ), + Column( + children: [ + Text('Arrival Time'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showTimePicker( + context: context, + initialTime: TimeOfDay.now(), + ).then((selectedTime) { + // handle selected arrival time + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon(Icons.access_time), + SizedBox(width: 10), + Text('Select Time'), + ], + ), + ), + ), + ], + ), ], ), - ), - ), - ], - ), - Column( - children: [ - Text('Arrival Time'), - SizedBox(height: 10), - GestureDetector( - onTap: () { - showTimePicker( - context: context, - initialTime: TimeOfDay.now(), - ).then((selectedTime) { - // handle selected arrival time - }); - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric( - horizontal: 15, - vertical: 10, - ), - child: Row( + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - Icon(Icons.access_time), - SizedBox(width: 10), - Text('Select Time'), - ], - ), - ), - ), - ], - ), - ], - ), - SizedBox(height: 20), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Column( - children: [ - Text('Departure Date'), - SizedBox(height: 10), - GestureDetector( - onTap: () { - showDatePicker( - context: context, - initialDate: DateTime.now(), - firstDate: DateTime.now(), - lastDate: DateTime(2100), - ).then((selectedDate) { - // handle selected departure date - }); - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric( - horizontal: 15, - vertical: 10, - ), - child: Row( - children: [ - Icon(Icons.calendar_today), - SizedBox(width: 10), - Text('Select Date'), + Column( + children: [ + Text('Departure Date'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2100), + ).then((selectedDate) { + // handle selected departure date + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon(Icons.calendar_today), + SizedBox(width: 10), + Text('Select Date'), + ], + ), + ), + ), + ], + ), + Column( + children: [ + Text('Departure Time'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showTimePicker( + context: context, + initialTime: TimeOfDay.now(), + ).then((selectedTime) { + // handle selected departure time + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon(Icons.access_time), + SizedBox(width: 10), + Text('Select Time'), + ], + ), + ), + ), + ], + ), ], ), - ), - ), - ], - ), - Column( - children: [ - Text('Departure Time'), - SizedBox(height: 10), - GestureDetector( - onTap: () { - showTimePicker( - context: context, - initialTime: TimeOfDay.now(), - ).then((selectedTime) { - // handle selected departure time - }); - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric( - horizontal: 15, - vertical: 10, - ), - child: Row( + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - Icon(Icons.access_time), - SizedBox(width: 10), - Text('Select Time'), - ], - ), - ), - ), - ], - ), - ], - ), - SizedBox(height: 20), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Column( - children: [ - Text('Number of People'), - SizedBox(height: 10), - Row( - children: [ - GestureDetector( - onTap: () { - // handle decreasing number of people - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, + Column( + children: [ + Text('Number of People'), + SizedBox(height: 10), + Row( + children: [ + GestureDetector( + onTap: () { + // handle decreasing number of people + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.all(10), + child: Icon(Icons.remove), + ), + ), + SizedBox(width: 10), + Text('0'), + SizedBox(width: 10), + GestureDetector( + onTap: () { + // handle increasing number of people + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.all(10), + child: Icon(Icons.add), + ), + ), + ], + ), + ], ), - padding: EdgeInsets.all(10), - child: Icon(Icons.remove), - ), - ), - SizedBox(width: 10), - Text('0'), - SizedBox(width: 10), - GestureDetector( - onTap: () { - // handle increasing number of people - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, + Column( + children: [ + Text('Number of Rooms'), + SizedBox(height: 10), + Row( + children: [ + GestureDetector( + onTap: () { + // handle decreasing number of rooms + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.all(10), + child: Icon(Icons.remove), + ), + ), + SizedBox(width: 10), + Text('0'), + SizedBox(width: 10), + GestureDetector( + onTap: () { + // handle increasing number of rooms + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.all(10), + child: Icon(Icons.add), + ), + ), + ], + ), + ], ), - padding: EdgeInsets.all(10), - child: Icon(Icons.add), - ), + ], ), - ], - ), - ], - ), - Column( - children: [ - Text('Number of Rooms'), - SizedBox(height: 10), - Row( - children: [ - GestureDetector( - onTap: () { - // handle decreasing number of rooms - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Expanded( + child: Column( + children: [ + Text('Category'), + SizedBox(height: 10), + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric(horizontal: 10), + child: DropdownButton( + value: 'A', + isExpanded: true, + icon: Icon(Icons.arrow_drop_down), + underline: SizedBox(), + onChanged: (String? newValue) { + setState(() { + // handle updating category + }); + }, + items: ['A', 'B', 'C', 'D'] + .map>( + (String value) { + return DropdownMenuItem( + value: value, + child: Text(value), + ); + }).toList(), + ), + ), + ], + ), ), - padding: EdgeInsets.all(10), - child: Icon(Icons.remove), - ), - ), - SizedBox(width: 10), - Text('0'), - SizedBox(width: 10), - GestureDetector( - onTap: () { - // handle increasing number of rooms - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, + Expanded( + child: Column( + children: [ + Text('Purpose of Visit'), + SizedBox(height: 10), + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric(horizontal: 10), + child: TextField( + decoration: InputDecoration( + border: InputBorder.none, + ), + onChanged: (String value) { + setState(() { + // handle updating purpose of visit + }); + }, + ), + ), + ], + ), ), - padding: EdgeInsets.all(10), - child: Icon(Icons.add), - ), - ), - ], - ), - ], - ), - ], - ), - SizedBox(height: 20), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Expanded( - child: Column( - children: [ - Text('Category'), - SizedBox(height: 10), - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric(horizontal: 10), - child: DropdownButton( - value: 'A', - isExpanded: true, - icon: Icon(Icons.arrow_drop_down), - underline: SizedBox(), - onChanged: (String? newValue) { - setState(() { - // handle updating category - }); - }, - items: ['A', 'B', 'C', 'D'] - .map>((String value) { - return DropdownMenuItem( - value: value, - child: Text(value), - ); - }).toList(), - ), + ], ), - ], - ), - ), - Expanded( - child: Column( - children: [ - Text('Purpose of Visit'), - SizedBox(height: 10), - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric(horizontal: 10), - child: TextField( - decoration: InputDecoration( - border: InputBorder.none, + SizedBox(height: 20), + Column( + children: [ + Text('Remarks'), + SizedBox(height: 10), + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.symmetric(horizontal: 10), + child: TextField( + decoration: InputDecoration( + border: InputBorder.none, + ), + onChanged: (String value) { + setState(() { + // handle updating remarks + }); + }, + ), ), - onChanged: (String value) { - setState(() { - // handle updating purpose of visit - }); - }, - ), + ], ), ], ), ), - ], - ), - SizedBox(height: 20), - Column( - children: [ - Text('Remarks'), - SizedBox(height: 10), - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric(horizontal: 10), - child: TextField( - decoration: InputDecoration( - border: InputBorder.none, - ), - onChanged: (String value) { - setState(() { - // handle updating remarks - }); - }, - ), - ), - ], - ), - ],), ), ), ], ), ); } -} \ No newline at end of file +} diff --git a/lib/screens/Visitors_Hostel/viewBookings.dart b/lib/screens/Visitors_Hostel/viewBookings.dart index 176b1d60..a25d1535 100644 --- a/lib/screens/Visitors_Hostel/viewBookings.dart +++ b/lib/screens/Visitors_Hostel/viewBookings.dart @@ -10,40 +10,40 @@ class ViewBookings extends StatefulWidget { } class _ViewBookingsState extends State { -List < Map < String, dynamic >> bookingData = [{ - 'Intender': 'Bob', - 'BookingFrom': '21st Jan', - 'BookingTo': '28th Jan', - 'Category': 'B', - 'Status': 'Active' -}, { - 'Intender': 'Jane', - 'BookingFrom': '22nd Jan', - 'BookingTo': '29th Jan', - 'Category': 'A', - 'Status': 'Inactive' -}, -{ - 'Intender': 'Bob', - 'BookingFrom': '21st Jan', - 'BookingTo': '28th Jan', - 'Category': 'B', - 'Status': 'Active' -}, { - 'Intender': 'Jane', - 'BookingFrom': '22nd Jan', - 'BookingTo': '29th Jan', - 'Category': 'A', - 'Status': 'Inactive' -}, -]; - + List> bookingData = [ + { + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Active' + }, + { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'Inactive' + }, + { + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Active' + }, + { + 'Intender': 'Jane', + 'BookingFrom': '22nd Jan', + 'BookingTo': '29th Jan', + 'Category': 'A', + 'Status': 'Inactive' + }, + ]; @override - Widget build(BuildContext context) { return Scaffold( - backgroundColor: Colors.black, appBar: DefaultAppBar().visitorHostelAppBar(), drawer: SideDrawer(), body: Column( @@ -61,13 +61,14 @@ List < Map < String, dynamic >> bookingData = [{ ), ), child: SingleChildScrollView( - child: Column( - children: [ + child: Column(children: [ SizedBox(height: 24.0), Text( 'Bookings', - style: TextStyle(fontSize: 20, - fontWeight: FontWeight.bold,), + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), ), SizedBox(height: 20.0), Column( @@ -112,12 +113,13 @@ List < Map < String, dynamic >> bookingData = [{ ], ); }), - )] - ), + ) + ]), ), ), ), ], ), ); - }} \ No newline at end of file + } +} diff --git a/lib/screens/Visitors_Hostel/visitors_hostel_home.dart b/lib/screens/Visitors_Hostel/visitors_hostel_home.dart index 279de305..c15f2b4f 100644 --- a/lib/screens/Visitors_Hostel/visitors_hostel_home.dart +++ b/lib/screens/Visitors_Hostel/visitors_hostel_home.dart @@ -14,7 +14,7 @@ class VisitorHostel extends StatefulWidget { } class _VisitorHostelState extends State { - bool _isDropdownVisible = false; + bool _isDropdownVisible = false; @override Widget build(BuildContext context) { @@ -32,196 +32,208 @@ class _VisitorHostelState extends State { color: Color.fromARGB(255, 248, 247, 247), ), child: Column( - children: [ - - SizedBox(height: 24.0), - Container( - width: MediaQuery.of(context).size.width * 0.8, - child: MaterialButton( - height: 60.0, - onPressed: () { - setState(() { - _isDropdownVisible = !_isDropdownVisible; - }); - }, - color: Colors.white, - textColor: Color.fromARGB(255, 59, 59, 59), - shape: RoundedRectangleBorder( + children: [ + SizedBox(height: 24.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + setState(() { + _isDropdownVisible = !_isDropdownVisible; + }); + }, + color: Colors.white, + textColor: Color.fromARGB(255, 59, 59, 59), + shape: RoundedRectangleBorder( borderRadius: BorderRadius.only( - topLeft: Radius.circular(5.0), - topRight: Radius.circular(5.0), - bottomLeft: Radius.circular(5.0), - bottomRight: Radius.circular(5.0), + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), ), - ), - child: Row( + ), + child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text('Manage Bookings', style: TextStyle(fontSize: 18.0)), - Icon(_isDropdownVisible? Icons.arrow_drop_up : Icons.arrow_drop_down, color: Colors.grey), + Text('Manage Bookings', + style: TextStyle(fontSize: 18.0)), + Icon( + _isDropdownVisible + ? Icons.arrow_drop_up + : Icons.arrow_drop_down, + color: Colors.grey), ], - ), - ), - ), - SizedBox(height: 16.0), - _isDropdownVisible - ? Padding( - padding: const EdgeInsets.only(bottom: 16.0), - child: Container( - width: MediaQuery.of(context).size.width * 0.8, - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.only( - topLeft: Radius.circular(5.0), - topRight: Radius.circular(5.0), - bottomLeft: Radius.circular(5.0), - bottomRight: Radius.circular(5.0), - ), - boxShadow: [ - BoxShadow( - color: Colors.black26, - offset: Offset(0.0, 2.0), - blurRadius: 6.0, ), - ], - ), - child: Padding( - padding: EdgeInsets.all(16.0), - child: Column( - children: [ - SizedBox(height: 9.0), - GestureDetector( - onTap: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => ViewBookings()), - ); - }, - child: Text("View Bookings"), - ), - SizedBox(height: 9.0), - Divider( - thickness: 1.0, - ), - SizedBox(height: 9.0), - GestureDetector( - onTap: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => CancelledBookings()), - ); - }, - child: Text("Cancellation Requests"), - ), - - SizedBox(height: 9.0), - Divider( - thickness: 1.0, - ), - SizedBox(height: 9.0), - GestureDetector( - onTap: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => ActiveBookings()), - ); - }, - child: Text("Active Bookings"), - ), - SizedBox(height: 9.0), - Divider( - thickness: 1.0, - ), - SizedBox(height: 9.0), - GestureDetector( - onTap: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => CompletedBookings()), - ); - }, - child: Text("Completed Bookings"), - ), - SizedBox(height: 9.0), - ], + ), ), - ), - ), - ) - : SizedBox.shrink(), - Container( - width: MediaQuery.of(context).size.width * 0.8, - child: MaterialButton( - height: 60.0, - onPressed: () { - }, - color: Colors.white, - textColor: Colors.black, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.only( + SizedBox(height: 16.0), + _isDropdownVisible + ? Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Container( + width: MediaQuery.of(context).size.width * 0.8, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + boxShadow: [ + BoxShadow( + color: Colors.black26, + offset: Offset(0.0, 2.0), + blurRadius: 6.0, + ), + ], + ), + child: Padding( + padding: EdgeInsets.all(16.0), + child: Column( + children: [ + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + ViewBookings()), + ); + }, + child: Text("View Bookings"), + ), + SizedBox(height: 9.0), + Divider( + thickness: 1.0, + ), + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + CancelledBookings()), + ); + }, + child: Text("Cancellation Requests"), + ), + SizedBox(height: 9.0), + Divider( + thickness: 1.0, + ), + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + ActiveBookings()), + ); + }, + child: Text("Active Bookings"), + ), + SizedBox(height: 9.0), + Divider( + thickness: 1.0, + ), + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + CompletedBookings()), + ); + }, + child: Text("Completed Bookings"), + ), + SizedBox(height: 9.0), + ], + ), + ), + ), + ) + : SizedBox.shrink(), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () {}, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( topLeft: Radius.circular(5.0), topRight: Radius.circular(5.0), bottomLeft: Radius.circular(5.0), bottomRight: Radius.circular(5.0), + ), ), - ), - child: Text('Booking Form', style: TextStyle(fontSize: 18.0)) + child: Text('Booking Form', + style: TextStyle(fontSize: 18.0))), ), - ), - SizedBox(height: 16.0), - Container( - width: MediaQuery.of(context).size.width * 0.8, - child: MaterialButton( - height: 60.0, - onPressed: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => MyPdfViewer()), - ); - }, - color: Colors.white, - textColor: Colors.black, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.only( + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => MyPdfViewer()), + ); + }, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( topLeft: Radius.circular(5.0), topRight: Radius.circular(5.0), bottomLeft: Radius.circular(5.0), bottomRight: Radius.circular(5.0), + ), ), - ), - child: Text('Rules and Regulations', style: TextStyle(fontSize: 18.0)) + child: Text('Rules and Regulations', + style: TextStyle(fontSize: 18.0))), ), - ), - SizedBox(height: 16.0), - Container( - width: MediaQuery.of(context).size.width * 0.6, - child: MaterialButton( - height: 60.0, - onPressed: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => PlaceRequest()), - ); - }, - color: Color.fromARGB(255, 243, 33, 33), - textColor: Colors.white, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.only( + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.6, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => PlaceRequest()), + ); + }, + color: Color.fromARGB(255, 243, 33, 33), + textColor: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( topLeft: Radius.circular(5.0), topRight: Radius.circular(5.0), bottomLeft: Radius.circular(5.0), bottomRight: Radius.circular(5.0), + ), ), - ), - child: Text('Place Request', style: TextStyle(fontSize: 18.0)) + child: Text('Place Request', + style: TextStyle(fontSize: 18.0))), ), - ), - ], - ), + ], + ), ), ), ], ), ); } -} \ No newline at end of file +} From deae0fb0e3783ce11dac4cf2792f64c7ad423916 Mon Sep 17 00:00:00 2001 From: Adarsh Date: Sat, 25 Mar 2023 18:49:19 +0530 Subject: [PATCH 3/4] FewChangesaccordingtoUI/UX --- .../Visitors_Hostel/activeBookings.dart | 9 +- .../Visitors_Hostel/cancelRequest.dart | 9 +- .../Visitors_Hostel/completedBookings.dart | 9 +- .../Visitors_Hostel/place_request.dart | 663 ++++++++++-------- lib/screens/Visitors_Hostel/viewBookings.dart | 9 +- .../Visitors_Hostel/visitors_hostel_home.dart | 3 +- 6 files changed, 376 insertions(+), 326 deletions(-) diff --git a/lib/screens/Visitors_Hostel/activeBookings.dart b/lib/screens/Visitors_Hostel/activeBookings.dart index b911ed0b..c6df386f 100644 --- a/lib/screens/Visitors_Hostel/activeBookings.dart +++ b/lib/screens/Visitors_Hostel/activeBookings.dart @@ -48,18 +48,10 @@ class _ActiveBookingsState extends State { drawer: SideDrawer(), body: Column( children: [ - SizedBox(height: 24.0), Expanded( child: Container( height: double.infinity, width: double.infinity, - decoration: BoxDecoration( - color: Color.fromARGB(255, 248, 247, 247), - borderRadius: BorderRadius.only( - topLeft: Radius.circular(30.0), - topRight: Radius.circular(30.0), - ), - ), child: SingleChildScrollView( child: Column(children: [ SizedBox(height: 24.0), @@ -118,6 +110,7 @@ class _ActiveBookingsState extends State { ), ), ), + SizedBox(height: 50.0), ], ), ); diff --git a/lib/screens/Visitors_Hostel/cancelRequest.dart b/lib/screens/Visitors_Hostel/cancelRequest.dart index 41bcfd23..1333101e 100644 --- a/lib/screens/Visitors_Hostel/cancelRequest.dart +++ b/lib/screens/Visitors_Hostel/cancelRequest.dart @@ -48,18 +48,10 @@ class _CancelledBookingsState extends State { drawer: SideDrawer(), body: Column( children: [ - SizedBox(height: 24.0), Expanded( child: Container( height: double.infinity, width: double.infinity, - decoration: BoxDecoration( - color: Color.fromARGB(255, 248, 247, 247), - borderRadius: BorderRadius.only( - topLeft: Radius.circular(30.0), - topRight: Radius.circular(30.0), - ), - ), child: SingleChildScrollView( child: Column(children: [ SizedBox(height: 24.0), @@ -118,6 +110,7 @@ class _CancelledBookingsState extends State { ), ), ), + SizedBox(height: 50.0), ], ), ); diff --git a/lib/screens/Visitors_Hostel/completedBookings.dart b/lib/screens/Visitors_Hostel/completedBookings.dart index e369e6bc..9f8141c2 100644 --- a/lib/screens/Visitors_Hostel/completedBookings.dart +++ b/lib/screens/Visitors_Hostel/completedBookings.dart @@ -48,18 +48,10 @@ class _CompletedBookingsState extends State { drawer: SideDrawer(), body: Column( children: [ - SizedBox(height: 24.0), Expanded( child: Container( height: double.infinity, width: double.infinity, - decoration: BoxDecoration( - color: Color.fromARGB(255, 248, 247, 247), - borderRadius: BorderRadius.only( - topLeft: Radius.circular(30.0), - topRight: Radius.circular(30.0), - ), - ), child: SingleChildScrollView( child: Column(children: [ SizedBox(height: 24.0), @@ -118,6 +110,7 @@ class _CompletedBookingsState extends State { ), ), ), + SizedBox(height: 50.0), ], ), ); diff --git a/lib/screens/Visitors_Hostel/place_request.dart b/lib/screens/Visitors_Hostel/place_request.dart index 97b130c1..710dfa27 100644 --- a/lib/screens/Visitors_Hostel/place_request.dart +++ b/lib/screens/Visitors_Hostel/place_request.dart @@ -8,8 +8,6 @@ class PlaceRequest extends StatefulWidget { } class _PlaceRequestState extends State { - bool _isDropdownVisible = false; - @override Widget build(BuildContext context) { return Scaffold( @@ -25,332 +23,411 @@ class _PlaceRequestState extends State { decoration: BoxDecoration( color: Color.fromARGB(255, 248, 247, 247), ), - child: SingleChildScrollView( - child: Column( - children: [ - SizedBox(height: 20), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Column( - children: [ - Text('Arrival Date'), - SizedBox(height: 10), - GestureDetector( - onTap: () { - showDatePicker( - context: context, - initialDate: DateTime.now(), - firstDate: DateTime.now(), - lastDate: DateTime(2100), - ).then((selectedDate) { - // handle selected arrival date - }); - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric( - horizontal: 15, - vertical: 10, - ), - child: Row( - children: [ - Icon(Icons.calendar_today), - SizedBox(width: 10), - Text('Select Date'), - ], + child: Column( + children: [ + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + Text('Arrival Date'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2100), + ).then((selectedDate) { + // handle selected arrival date + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 33, 33), + width: 1, ), ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon( + Icons.calendar_today, + color: Color.fromARGB(255, 243, 33, 33), + ), + SizedBox(width: 10), + Text('Select Date'), + ], + ), ), - ], - ), - Column( - children: [ - Text('Arrival Time'), - SizedBox(height: 10), - GestureDetector( - onTap: () { - showTimePicker( - context: context, - initialTime: TimeOfDay.now(), - ).then((selectedTime) { - // handle selected arrival time - }); - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric( - horizontal: 15, - vertical: 10, - ), - child: Row( - children: [ - Icon(Icons.access_time), - SizedBox(width: 10), - Text('Select Time'), - ], + ), + ], + ), + Column( + children: [ + Text('Arrival Time'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showTimePicker( + context: context, + initialTime: TimeOfDay.now(), + ).then((selectedTime) { + // handle selected arrival time + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 33, 33), + width: 1, ), ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon( + Icons.access_time, + color: Color.fromARGB(255, 243, 33, 33), + ), + SizedBox(width: 10), + Text('Select Time'), + ], + ), ), - ], - ), - ], - ), - SizedBox(height: 20), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Column( - children: [ - Text('Departure Date'), - SizedBox(height: 10), - GestureDetector( - onTap: () { - showDatePicker( - context: context, - initialDate: DateTime.now(), - firstDate: DateTime.now(), - lastDate: DateTime(2100), - ).then((selectedDate) { - // handle selected departure date - }); - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric( - horizontal: 15, - vertical: 10, - ), - child: Row( - children: [ - Icon(Icons.calendar_today), - SizedBox(width: 10), - Text('Select Date'), - ], + ), + ], + ), + ], + ), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + Text('Departure Date'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2100), + ).then((selectedDate) { + // handle selected departure date + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 33, 33), + width: 1, ), ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon( + Icons.calendar_today, + color: Color.fromARGB(255, 243, 33, 33), + ), + SizedBox(width: 10), + Text('Select Date'), + ], + ), ), - ], - ), - Column( - children: [ - Text('Departure Time'), - SizedBox(height: 10), - GestureDetector( - onTap: () { - showTimePicker( - context: context, - initialTime: TimeOfDay.now(), - ).then((selectedTime) { - // handle selected departure time - }); - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric( - horizontal: 15, - vertical: 10, - ), - child: Row( - children: [ - Icon(Icons.access_time), - SizedBox(width: 10), - Text('Select Time'), - ], + ), + ], + ), + Column( + children: [ + Text('Departure Time'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showTimePicker( + context: context, + initialTime: TimeOfDay.now(), + ).then((selectedTime) { + // handle selected departure time + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 33, 33), + width: 1, ), ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon( + Icons.access_time, + color: Color.fromARGB(255, 243, 33, 33), + ), + SizedBox(width: 10), + Text('Select Time'), + ], + ), ), - ], - ), - ], - ), - SizedBox(height: 20), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Column( - children: [ - Text('Number of People'), - SizedBox(height: 10), - Row( - children: [ - GestureDetector( - onTap: () { - // handle decreasing number of people - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, + ), + ], + ), + ], + ), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + Text('Number of People'), + SizedBox(height: 10), + Row( + children: [ + GestureDetector( + onTap: () { + // handle decreasing number of people + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 33, 33), + width: 1, ), - padding: EdgeInsets.all(10), - child: Icon(Icons.remove), + ), + padding: EdgeInsets.all(10), + child: Icon( + Icons.remove, + color: Color.fromARGB(255, 243, 33, 33), ), ), - SizedBox(width: 10), - Text('0'), - SizedBox(width: 10), - GestureDetector( - onTap: () { - // handle increasing number of people - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, + ), + SizedBox(width: 10), + Text('0'), + SizedBox(width: 10), + GestureDetector( + onTap: () { + // handle increasing number of people + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 33, 33), + width: 1, ), - padding: EdgeInsets.all(10), - child: Icon(Icons.add), + ), + padding: EdgeInsets.all(10), + child: Icon( + Icons.add, + color: Color.fromARGB(255, 243, 33, 33), ), ), - ], - ), - ], - ), - Column( - children: [ - Text('Number of Rooms'), - SizedBox(height: 10), - Row( - children: [ - GestureDetector( - onTap: () { - // handle decreasing number of rooms - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, + ), + ], + ), + ], + ), + Column( + children: [ + Text('Number of Rooms'), + SizedBox(height: 10), + Row( + children: [ + GestureDetector( + onTap: () { + // handle decreasing number of rooms + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 33, 33), + width: 1, ), - padding: EdgeInsets.all(10), - child: Icon(Icons.remove), + ), + padding: EdgeInsets.all(10), + child: Icon( + Icons.remove, + color: Color.fromARGB(255, 243, 33, 33), ), ), - SizedBox(width: 10), - Text('0'), - SizedBox(width: 10), - GestureDetector( - onTap: () { - // handle increasing number of rooms - }, - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, + ), + SizedBox(width: 10), + Text('0'), + SizedBox(width: 10), + GestureDetector( + onTap: () { + // handle increasing number of rooms + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 33, 33), + width: 1, ), - padding: EdgeInsets.all(10), - child: Icon(Icons.add), ), - ), - ], - ), - ], - ), - ], - ), - SizedBox(height: 20), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Expanded( - child: Column( - children: [ - Text('Category'), - SizedBox(height: 10), - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - ), - padding: EdgeInsets.symmetric(horizontal: 10), - child: DropdownButton( - value: 'A', - isExpanded: true, - icon: Icon(Icons.arrow_drop_down), - underline: SizedBox(), - onChanged: (String? newValue) { - setState(() { - // handle updating category - }); - }, - items: ['A', 'B', 'C', 'D'] - .map>( - (String value) { - return DropdownMenuItem( - value: value, - child: Text(value), - ); - }).toList(), + padding: EdgeInsets.all(10), + child: Icon( + Icons.add, + color: Color.fromARGB(255, 243, 33, 33), + ), ), ), ], ), + ], + ), + ], + ), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Expanded( + child: Column( + children: [ + Text('Category'), + SizedBox(height: 10), + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 33, 33), + width: 1, + ), + ), + width: 100, + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 5, + ), + child: DropdownButton( + value: 'A', + isExpanded: true, + icon: Icon( + Icons.arrow_drop_down, + color: Color.fromARGB(255, 243, 33, 33), + ), + underline: SizedBox(), + onChanged: (String? newValue) { + setState(() { + // handle updating category + }); + }, + items: [ + 'A', + 'B', + 'C', + 'D' + ].map>((String value) { + return DropdownMenuItem( + value: value, + child: Text(value), + ); + }).toList(), + ), + ), + ], ), - Expanded( - child: Column( - children: [ - Text('Purpose of Visit'), - SizedBox(height: 10), - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, + ), + Expanded( + child: Column( + children: [ + Text('Purpose of Visit'), + SizedBox(height: 10), + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 33, 33), + width: 1, ), - padding: EdgeInsets.symmetric(horizontal: 10), - child: TextField( - decoration: InputDecoration( - border: InputBorder.none, - ), - onChanged: (String value) { - setState(() { - // handle updating purpose of visit - }); - }, + ), + width: 150, + padding: EdgeInsets.symmetric(horizontal: 10), + child: TextField( + decoration: InputDecoration( + border: InputBorder.none, ), + onChanged: (String value) { + setState(() { + // handle updating purpose of visit + }); + }, ), - ], - ), + ), + ], ), - ], - ), - SizedBox(height: 20), - Column( - children: [ - Text('Remarks'), - SizedBox(height: 10), - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, + ), + ], + ), + SizedBox(height: 20), + Column( + children: [ + Text('Remarks'), + SizedBox(height: 10), + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 33, 33), + width: 1, ), - padding: EdgeInsets.symmetric(horizontal: 10), - child: TextField( - decoration: InputDecoration( - border: InputBorder.none, - ), - onChanged: (String value) { - setState(() { - // handle updating remarks - }); - }, + ), + padding: EdgeInsets.symmetric(horizontal: 10), + width: 300, + child: TextField( + maxLines: 3, + decoration: InputDecoration( + border: InputBorder.none, ), + onChanged: (String value) { + setState(() { + // handle updating remarks + }); + }, ), - ], - ), - ], - ), + ), + ], + ), + ], ), ), ), diff --git a/lib/screens/Visitors_Hostel/viewBookings.dart b/lib/screens/Visitors_Hostel/viewBookings.dart index a25d1535..728bb4ad 100644 --- a/lib/screens/Visitors_Hostel/viewBookings.dart +++ b/lib/screens/Visitors_Hostel/viewBookings.dart @@ -48,18 +48,10 @@ class _ViewBookingsState extends State { drawer: SideDrawer(), body: Column( children: [ - SizedBox(height: 24.0), Expanded( child: Container( height: double.infinity, width: double.infinity, - decoration: BoxDecoration( - color: Color.fromARGB(255, 248, 247, 247), - borderRadius: BorderRadius.only( - topLeft: Radius.circular(30.0), - topRight: Radius.circular(30.0), - ), - ), child: SingleChildScrollView( child: Column(children: [ SizedBox(height: 24.0), @@ -118,6 +110,7 @@ class _ViewBookingsState extends State { ), ), ), + SizedBox(height: 50.0), ], ), ); diff --git a/lib/screens/Visitors_Hostel/visitors_hostel_home.dart b/lib/screens/Visitors_Hostel/visitors_hostel_home.dart index c15f2b4f..c62a8161 100644 --- a/lib/screens/Visitors_Hostel/visitors_hostel_home.dart +++ b/lib/screens/Visitors_Hostel/visitors_hostel_home.dart @@ -67,7 +67,7 @@ class _VisitorHostelState extends State { ), ), ), - SizedBox(height: 16.0), + SizedBox(height: 8.0), _isDropdownVisible ? Padding( padding: const EdgeInsets.only(bottom: 16.0), @@ -160,6 +160,7 @@ class _VisitorHostelState extends State { ), ) : SizedBox.shrink(), + SizedBox(height: 16.0), Container( width: MediaQuery.of(context).size.width * 0.8, child: MaterialButton( From 6128a95fb5bfe3e3a39641e3ce948e34e8341b99 Mon Sep 17 00:00:00 2001 From: Adarsh Date: Thu, 6 Apr 2023 17:13:19 +0530 Subject: [PATCH 4/4] Most_layout_completed --- lib/Components/appBar.dart | 2 +- lib/screens/Visitors_Hostel/accounts.dart | 99 +++++ .../Visitors_Hostel/activeBookings.dart | 1 - lib/screens/Visitors_Hostel/billDetails.dart | 146 +++++++ .../Visitors_Hostel/cancelRequest.dart | 1 - .../Visitors_Hostel/completedBookings.dart | 1 - lib/screens/Visitors_Hostel/getDetails.dart | 146 +++++++ lib/screens/Visitors_Hostel/inventory.dart | 59 +++ lib/screens/Visitors_Hostel/mealRecord.dart | 38 ++ .../Visitors_Hostel/place_request.dart | 213 +++++----- lib/screens/Visitors_Hostel/viewBookings.dart | 1 - .../Visitors_Hostel/visitorsDetails.dart | 354 +++++++++++++++++ .../Visitors_Hostel/visitors_hostel_home.dart | 30 +- .../visitors_hostel_home_admin.dart | 372 ++++++++++++++++++ pubspec.yaml | 1 + 15 files changed, 1370 insertions(+), 94 deletions(-) create mode 100644 lib/screens/Visitors_Hostel/accounts.dart create mode 100644 lib/screens/Visitors_Hostel/billDetails.dart create mode 100644 lib/screens/Visitors_Hostel/getDetails.dart create mode 100644 lib/screens/Visitors_Hostel/inventory.dart create mode 100644 lib/screens/Visitors_Hostel/mealRecord.dart create mode 100644 lib/screens/Visitors_Hostel/visitorsDetails.dart create mode 100644 lib/screens/Visitors_Hostel/visitors_hostel_home_admin.dart diff --git a/lib/Components/appBar.dart b/lib/Components/appBar.dart index 1f82e70e..6ba282ad 100644 --- a/lib/Components/appBar.dart +++ b/lib/Components/appBar.dart @@ -36,7 +36,7 @@ class DefaultAppBar { style: TextStyle( color: Colors.white, fontSize: 18, fontWeight: FontWeight.bold), ), - backgroundColor: Color.fromARGB(255, 243, 33, 33), + backgroundColor: Color.fromARGB(255, 243, 108, 53), // ignore: prefer_const_literals_to_create_immutables actions: [ Padding( diff --git a/lib/screens/Visitors_Hostel/accounts.dart b/lib/screens/Visitors_Hostel/accounts.dart new file mode 100644 index 00000000..9e77ab93 --- /dev/null +++ b/lib/screens/Visitors_Hostel/accounts.dart @@ -0,0 +1,99 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/Card.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/list_tile.dart'; + +class Accounts extends StatefulWidget { + @override + State createState() => _AccountsState(); +} + +class _AccountsState extends State { + List> bookingData = [ + { + 'Intender': 'Bob', + 'BookingFrom': '21st Jan', + 'BookingTo': '28th Jan', + 'Category': 'B', + 'Status': 'Active' + }, + ]; + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: DefaultAppBar().visitorHostelAppBar(), + body: Column( + children: [ + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + ), + child: SingleChildScrollView( + child: Column( + children: [ + SizedBox(height: 24.0), + Text( + "Accounts", + style: + TextStyle(fontSize: 24, fontWeight: FontWeight.w700), + ), + SizedBox(height: 12.0), + Text("Income", + style: TextStyle( + fontSize: 16, fontWeight: FontWeight.bold)), + Column( + children: List.generate(bookingData.length, (index) { + return Column( + children: [ + SizedBox(height: 20.0), + BookingInfoCard( + bookingInfoTiles: [ + CardListTile( + iconData: Icons.person, + label: 'Intender', + value: bookingData[index]['Intender'], + color: Colors.white, + ), + CardListTile( + iconData: Icons.today, + label: "BookingFrom", + value: bookingData[index]['BookingFrom'], + color: Color.fromARGB(255, 206, 205, 205), + ), + CardListTile( + iconData: Icons.event, + label: "BookingTo", + value: bookingData[index]['BookingTo'], + color: Colors.white, + ), + CardListTile( + iconData: Icons.category, + label: "Category", + value: bookingData[index]['Category'], + color: Color.fromARGB(255, 206, 205, 205), + ), + CardListTile( + iconData: Icons.info, + label: "Status", + value: bookingData[index]['Status'], + color: Colors.white, + ) + ], + ), + ], + ); + }), + ) + ], + ), + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/screens/Visitors_Hostel/activeBookings.dart b/lib/screens/Visitors_Hostel/activeBookings.dart index c6df386f..ad1d9d8f 100644 --- a/lib/screens/Visitors_Hostel/activeBookings.dart +++ b/lib/screens/Visitors_Hostel/activeBookings.dart @@ -110,7 +110,6 @@ class _ActiveBookingsState extends State { ), ), ), - SizedBox(height: 50.0), ], ), ); diff --git a/lib/screens/Visitors_Hostel/billDetails.dart b/lib/screens/Visitors_Hostel/billDetails.dart new file mode 100644 index 00000000..39cb9203 --- /dev/null +++ b/lib/screens/Visitors_Hostel/billDetails.dart @@ -0,0 +1,146 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; + +class BillDetails extends StatefulWidget { + @override + _PlaceRequestState createState() => _PlaceRequestState(); +} + +class _PlaceRequestState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: DefaultAppBar().visitorHostelAppBar(), + body: Column( + children: [ + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + ), + child: Column( + children: [ + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + Text('From'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2100), + ).then((selectedDate) { + // handle selected arrival date + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon( + Icons.calendar_today, + color: Color.fromARGB(255, 243, 108, 53), + ), + SizedBox(width: 10), + Text('Select Date'), + ], + ), + ), + ), + ], + ), + Column( + children: [ + Text('To'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2100), + ).then((selectedDate) { + // handle selected arrival date + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon( + Icons.calendar_today, + color: Color.fromARGB(255, 243, 108, 53), + ), + SizedBox(width: 10), + Text('Select Date'), + ], + ), + ), + ), + ], + ), + ], + ), + SizedBox(height: 20), + Column( + children: [ + Container( + width: MediaQuery.of(context).size.width * 0.3, + child: MaterialButton( + height: 40.0, + onPressed: () {}, + color: Color.fromARGB(255, 243, 108, 53), + textColor: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Submit', + style: TextStyle(fontSize: 18.0))), + ), + ], + ), + ], + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/screens/Visitors_Hostel/cancelRequest.dart b/lib/screens/Visitors_Hostel/cancelRequest.dart index 1333101e..117b486a 100644 --- a/lib/screens/Visitors_Hostel/cancelRequest.dart +++ b/lib/screens/Visitors_Hostel/cancelRequest.dart @@ -110,7 +110,6 @@ class _CancelledBookingsState extends State { ), ), ), - SizedBox(height: 50.0), ], ), ); diff --git a/lib/screens/Visitors_Hostel/completedBookings.dart b/lib/screens/Visitors_Hostel/completedBookings.dart index 9f8141c2..8ba1387b 100644 --- a/lib/screens/Visitors_Hostel/completedBookings.dart +++ b/lib/screens/Visitors_Hostel/completedBookings.dart @@ -110,7 +110,6 @@ class _CompletedBookingsState extends State { ), ), ), - SizedBox(height: 50.0), ], ), ); diff --git a/lib/screens/Visitors_Hostel/getDetails.dart b/lib/screens/Visitors_Hostel/getDetails.dart new file mode 100644 index 00000000..386d4709 --- /dev/null +++ b/lib/screens/Visitors_Hostel/getDetails.dart @@ -0,0 +1,146 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; + +class GetDetails extends StatefulWidget { + @override + _PlaceRequestState createState() => _PlaceRequestState(); +} + +class _PlaceRequestState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: DefaultAppBar().visitorHostelAppBar(), + body: Column( + children: [ + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + ), + child: Column( + children: [ + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + Text('From'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2100), + ).then((selectedDate) { + // handle selected arrival date + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon( + Icons.calendar_today, + color: Color.fromARGB(255, 243, 108, 53), + ), + SizedBox(width: 10), + Text('Select Date'), + ], + ), + ), + ), + ], + ), + Column( + children: [ + Text('To'), + SizedBox(height: 10), + GestureDetector( + onTap: () { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2100), + ).then((selectedDate) { + // handle selected arrival date + }); + }, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), + ), + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 10, + ), + child: Row( + children: [ + Icon( + Icons.calendar_today, + color: Color.fromARGB(255, 243, 108, 53), + ), + SizedBox(width: 10), + Text('Select Date'), + ], + ), + ), + ), + ], + ), + ], + ), + SizedBox(height: 20), + Column( + children: [ + Container( + width: MediaQuery.of(context).size.width * 0.3, + child: MaterialButton( + height: 40.0, + onPressed: () {}, + color: Color.fromARGB(255, 243, 108, 53), + textColor: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Submit', + style: TextStyle(fontSize: 18.0))), + ), + ], + ), + ], + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/screens/Visitors_Hostel/inventory.dart b/lib/screens/Visitors_Hostel/inventory.dart new file mode 100644 index 00000000..f748e551 --- /dev/null +++ b/lib/screens/Visitors_Hostel/inventory.dart @@ -0,0 +1,59 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; + +class Inventory extends StatefulWidget { + @override + State createState() => _InventoryState(); +} + +class _InventoryState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: DefaultAppBar().visitorHostelAppBar(), + body: Column( + children: [ + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + ), + child: Column( + children: [ + SizedBox(height: 24.0), + Text( + "Inventory", + style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700), + ), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.3, + child: MaterialButton( + height: 40.0, + onPressed: () {}, + color: Color.fromARGB(255, 243, 108, 53), + textColor: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text( + 'Add Item', + style: TextStyle(fontSize: 18.0), + )), + ), + ], + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/screens/Visitors_Hostel/mealRecord.dart b/lib/screens/Visitors_Hostel/mealRecord.dart new file mode 100644 index 00000000..e1fb82e6 --- /dev/null +++ b/lib/screens/Visitors_Hostel/mealRecord.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; + +class MealRecord extends StatefulWidget { + @override + State createState() => _MealRecordState(); +} + +class _MealRecordState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: DefaultAppBar().visitorHostelAppBar(), + body: Column( + children: [ + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + ), + child: Column( + children: [ + SizedBox(height: 24.0), + Text( + "Meals Record", + style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700), + ), + ], + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/screens/Visitors_Hostel/place_request.dart b/lib/screens/Visitors_Hostel/place_request.dart index 710dfa27..21e16447 100644 --- a/lib/screens/Visitors_Hostel/place_request.dart +++ b/lib/screens/Visitors_Hostel/place_request.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:fusion/Components/appBar.dart'; import 'package:fusion/Components/side_drawer.dart'; +import 'package:fusion/screens/Visitors_Hostel/visitorsDetails.dart'; class PlaceRequest extends StatefulWidget { @override @@ -11,7 +12,6 @@ class _PlaceRequestState extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: Colors.black, appBar: DefaultAppBar().visitorHostelAppBar(), drawer: SideDrawer(), body: Column( @@ -25,6 +25,15 @@ class _PlaceRequestState extends State { ), child: Column( children: [ + SizedBox(height: 24.0), + Text( + "Place a request", + style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700), + ), + SizedBox(height: 12.0), + Text("Booking Details", + style: + TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), SizedBox(height: 20), Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, @@ -49,7 +58,7 @@ class _PlaceRequestState extends State { borderRadius: BorderRadius.circular(10), color: Colors.white, border: Border.all( - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), width: 1, ), ), @@ -61,7 +70,7 @@ class _PlaceRequestState extends State { children: [ Icon( Icons.calendar_today, - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), ), SizedBox(width: 10), Text('Select Date'), @@ -89,7 +98,7 @@ class _PlaceRequestState extends State { borderRadius: BorderRadius.circular(10), color: Colors.white, border: Border.all( - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), width: 1, ), ), @@ -101,7 +110,7 @@ class _PlaceRequestState extends State { children: [ Icon( Icons.access_time, - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), ), SizedBox(width: 10), Text('Select Time'), @@ -137,7 +146,7 @@ class _PlaceRequestState extends State { borderRadius: BorderRadius.circular(10), color: Colors.white, border: Border.all( - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), width: 1, ), ), @@ -149,7 +158,7 @@ class _PlaceRequestState extends State { children: [ Icon( Icons.calendar_today, - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), ), SizedBox(width: 10), Text('Select Date'), @@ -177,7 +186,7 @@ class _PlaceRequestState extends State { borderRadius: BorderRadius.circular(10), color: Colors.white, border: Border.all( - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), width: 1, ), ), @@ -189,7 +198,7 @@ class _PlaceRequestState extends State { children: [ Icon( Icons.access_time, - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), ), SizedBox(width: 10), Text('Select Time'), @@ -220,14 +229,14 @@ class _PlaceRequestState extends State { borderRadius: BorderRadius.circular(10), color: Colors.white, border: Border.all( - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), width: 1, ), ), padding: EdgeInsets.all(10), child: Icon( Icons.remove, - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), ), ), ), @@ -243,14 +252,14 @@ class _PlaceRequestState extends State { borderRadius: BorderRadius.circular(10), color: Colors.white, border: Border.all( - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), width: 1, ), ), padding: EdgeInsets.all(10), child: Icon( Icons.add, - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), ), ), ), @@ -273,14 +282,14 @@ class _PlaceRequestState extends State { borderRadius: BorderRadius.circular(10), color: Colors.white, border: Border.all( - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), width: 1, ), ), padding: EdgeInsets.all(10), child: Icon( Icons.remove, - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), ), ), ), @@ -296,14 +305,14 @@ class _PlaceRequestState extends State { borderRadius: BorderRadius.circular(10), color: Colors.white, border: Border.all( - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), width: 1, ), ), padding: EdgeInsets.all(10), child: Icon( Icons.add, - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), ), ), ), @@ -317,83 +326,86 @@ class _PlaceRequestState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - Expanded( - child: Column( - children: [ - Text('Category'), - SizedBox(height: 10), - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - border: Border.all( - color: Color.fromARGB(255, 243, 33, 33), - width: 1, + Column( + children: [ + Text('Category'), + SizedBox(height: 10), + Row( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), ), - ), - width: 100, - padding: EdgeInsets.symmetric( - horizontal: 15, - vertical: 5, - ), - child: DropdownButton( - value: 'A', - isExpanded: true, - icon: Icon( - Icons.arrow_drop_down, - color: Color.fromARGB(255, 243, 33, 33), + width: 120, + height: 50, + padding: EdgeInsets.symmetric( + horizontal: 15, + vertical: 5, + ), + child: DropdownButton( + value: 'A', + isExpanded: true, + icon: Icon( + Icons.arrow_drop_down, + color: Color.fromARGB(255, 243, 108, 53), + ), + underline: SizedBox(), + onChanged: (String? newValue) { + setState(() { + // handle updating category + }); + }, + items: ['A', 'B', 'C', 'D'] + .map>( + (String value) { + return DropdownMenuItem( + value: value, + child: Text(value), + ); + }).toList(), ), - underline: SizedBox(), - onChanged: (String? newValue) { - setState(() { - // handle updating category - }); - }, - items: [ - 'A', - 'B', - 'C', - 'D' - ].map>((String value) { - return DropdownMenuItem( - value: value, - child: Text(value), - ); - }).toList(), ), - ), - ], - ), + ], + ), + ], ), - Expanded( - child: Column( - children: [ - Text('Purpose of Visit'), - SizedBox(height: 10), - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.white, - border: Border.all( - color: Color.fromARGB(255, 243, 33, 33), - width: 1, + Column( + children: [ + Text('Purpose of Visit'), + SizedBox(height: 10), + Row( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), ), - ), - width: 150, - padding: EdgeInsets.symmetric(horizontal: 10), - child: TextField( - decoration: InputDecoration( - border: InputBorder.none, + width: 120, + height: 50, + padding: EdgeInsets.symmetric(horizontal: 10), + child: TextField( + decoration: InputDecoration( + border: InputBorder.none, + ), + onChanged: (String value) { + setState(() { + // handle updating purpose of visit + }); + }, ), - onChanged: (String value) { - setState(() { - // handle updating purpose of visit - }); - }, ), - ), - ], - ), + ], + ), + ], ), ], ), @@ -407,7 +419,7 @@ class _PlaceRequestState extends State { borderRadius: BorderRadius.circular(10), color: Colors.white, border: Border.all( - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), width: 1, ), ), @@ -425,6 +437,31 @@ class _PlaceRequestState extends State { }, ), ), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.3, + child: MaterialButton( + height: 40.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => VisitorsDetails()), + ); + }, + color: Color.fromARGB(255, 243, 108, 53), + textColor: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: + Text('Next', style: TextStyle(fontSize: 18.0))), + ), ], ), ], diff --git a/lib/screens/Visitors_Hostel/viewBookings.dart b/lib/screens/Visitors_Hostel/viewBookings.dart index 728bb4ad..3418366f 100644 --- a/lib/screens/Visitors_Hostel/viewBookings.dart +++ b/lib/screens/Visitors_Hostel/viewBookings.dart @@ -110,7 +110,6 @@ class _ViewBookingsState extends State { ), ), ), - SizedBox(height: 50.0), ], ), ); diff --git a/lib/screens/Visitors_Hostel/visitorsDetails.dart b/lib/screens/Visitors_Hostel/visitorsDetails.dart new file mode 100644 index 00000000..bcc711f0 --- /dev/null +++ b/lib/screens/Visitors_Hostel/visitorsDetails.dart @@ -0,0 +1,354 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; +import 'package:fusion/Components/side_drawer.dart'; +import 'package:country_picker/country_picker.dart'; + +class VisitorsDetails extends StatefulWidget { + @override + _PlaceRequestState createState() => _PlaceRequestState(); +} + +class _PlaceRequestState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: DefaultAppBar().visitorHostelAppBar(), + drawer: SideDrawer(), + body: Column( + children: [ + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + ), + child: SingleChildScrollView( + child: Column( + children: [ + SizedBox(height: 24.0), + Text( + "Place a request", + style: + TextStyle(fontSize: 24, fontWeight: FontWeight.w700), + ), + SizedBox(height: 12.0), + Text("Vistor's Details", + style: TextStyle( + fontSize: 16, fontWeight: FontWeight.bold)), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Container( + alignment: Alignment.center, + height: 40, + width: MediaQuery.of(context).size.width * 0.25, + child: Text( + 'Name', + style: TextStyle(fontSize: 16), + ), + ), + Row( + children: [ + Column( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), + ), + padding: EdgeInsets.symmetric(horizontal: 10), + width: + MediaQuery.of(context).size.width * 0.65, + child: TextField( + maxLines: 1, + decoration: InputDecoration( + border: InputBorder.none, + ), + onChanged: (String value) { + setState(() { + // handle updating remarks + }); + }, + ), + ), + ], + ), + ], + ), + ], + ), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Container( + alignment: Alignment.center, + height: 40, + width: MediaQuery.of(context).size.width * 0.25, + child: Text( + 'Email', + style: TextStyle(fontSize: 16), + ), + ), + Row( + children: [ + Column( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), + ), + padding: EdgeInsets.symmetric(horizontal: 10), + width: + MediaQuery.of(context).size.width * 0.65, + child: TextField( + maxLines: 1, + decoration: InputDecoration( + border: InputBorder.none, + ), + onChanged: (String value) { + setState(() { + // handle updating remarks + }); + }, + ), + ), + ], + ), + ], + ), + ], + ), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Container( + alignment: Alignment.center, + height: 40, + width: MediaQuery.of(context).size.width * 0.25, + child: Text( + 'Phone', + style: TextStyle(fontSize: 16), + ), + ), + Row( + children: [ + Column( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), + ), + padding: EdgeInsets.symmetric(horizontal: 10), + width: + MediaQuery.of(context).size.width * 0.65, + child: TextField( + maxLines: 1, + decoration: InputDecoration( + border: InputBorder.none, + ), + onChanged: (String value) { + setState(() { + // handle updating remarks + }); + }, + ), + ), + ], + ), + ], + ), + ], + ), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Container( + alignment: Alignment.center, + height: 40, + width: MediaQuery.of(context).size.width * 0.25, + child: Text( + 'Organisation', + style: TextStyle(fontSize: 16), + ), + ), + Row( + children: [ + Column( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), + ), + padding: EdgeInsets.symmetric(horizontal: 10), + width: + MediaQuery.of(context).size.width * 0.65, + child: TextField( + maxLines: 1, + decoration: InputDecoration( + border: InputBorder.none, + ), + onChanged: (String value) { + setState(() { + // handle updating remarks + }); + }, + ), + ), + ], + ), + ], + ), + ], + ), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Container( + alignment: Alignment.center, + height: 40, + width: MediaQuery.of(context).size.width * 0.25, + child: Text( + 'Address', + style: TextStyle(fontSize: 16), + ), + ), + Row( + children: [ + Column( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), + ), + padding: EdgeInsets.symmetric(horizontal: 10), + width: + MediaQuery.of(context).size.width * 0.65, + child: TextField( + maxLines: 1, + decoration: InputDecoration( + border: InputBorder.none, + ), + onChanged: (String value) { + setState(() { + // handle updating remarks + }); + }, + ), + ), + ], + ), + ], + ), + ], + ), + SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Container( + alignment: Alignment.center, + height: 40, + width: MediaQuery.of(context).size.width * 0.25, + child: Text( + 'Country', + style: TextStyle(fontSize: 16), + ), + ), + Row( + children: [ + Column( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + border: Border.all( + color: Color.fromARGB(255, 243, 108, 53), + width: 1, + ), + ), + padding: EdgeInsets.symmetric(horizontal: 10), + width: + MediaQuery.of(context).size.width * 0.65, + child: TextField( + maxLines: 1, + decoration: InputDecoration( + border: InputBorder.none, + ), + onChanged: (String value) { + setState(() { + // handle updating remarks + }); + }, + ), + ), + ], + ), + ], + ), + ], + ), + SizedBox(height: 20), + Column( + children: [ + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.5, + child: MaterialButton( + height: 60.0, + onPressed: () {}, + color: Color.fromARGB(255, 243, 108, 53), + textColor: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Place Request', + style: TextStyle(fontSize: 18.0))), + ), + ], + ), + ], + ), + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/screens/Visitors_Hostel/visitors_hostel_home.dart b/lib/screens/Visitors_Hostel/visitors_hostel_home.dart index c62a8161..6768af1d 100644 --- a/lib/screens/Visitors_Hostel/visitors_hostel_home.dart +++ b/lib/screens/Visitors_Hostel/visitors_hostel_home.dart @@ -7,6 +7,7 @@ import 'package:fusion/screens/Visitors_Hostel/cancelRequest.dart'; import 'package:fusion/screens/Visitors_Hostel/completedBookings.dart'; import 'package:fusion/screens/Visitors_Hostel/place_request.dart'; import 'package:fusion/screens/Visitors_Hostel/viewBookings.dart'; +import 'package:fusion/screens/Visitors_Hostel/visitors_hostel_home_admin.dart'; class VisitorHostel extends StatefulWidget { @override @@ -216,7 +217,7 @@ class _VisitorHostelState extends State { builder: (context) => PlaceRequest()), ); }, - color: Color.fromARGB(255, 243, 33, 33), + color: Color.fromARGB(255, 243, 108, 53), textColor: Colors.white, shape: RoundedRectangleBorder( borderRadius: BorderRadius.only( @@ -229,6 +230,33 @@ class _VisitorHostelState extends State { child: Text('Place Request', style: TextStyle(fontSize: 18.0))), ), + SizedBox( + height: 16, + ), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => VisitorHostelA()), + ); + }, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Incharge/Caretaker Login', + style: TextStyle(fontSize: 18.0))), + ), ], ), ), diff --git a/lib/screens/Visitors_Hostel/visitors_hostel_home_admin.dart b/lib/screens/Visitors_Hostel/visitors_hostel_home_admin.dart new file mode 100644 index 00000000..ffb5bf6f --- /dev/null +++ b/lib/screens/Visitors_Hostel/visitors_hostel_home_admin.dart @@ -0,0 +1,372 @@ +import 'package:flutter/material.dart'; +import 'package:fusion/Components/appBar.dart'; +import 'package:fusion/Components/side_drawer.dart'; +import 'package:fusion/screens/Visitors_Hostel/Components/RulesAndRegulation.dart'; +import 'package:fusion/screens/Visitors_Hostel/accounts.dart'; +import 'package:fusion/screens/Visitors_Hostel/activeBookings.dart'; +import 'package:fusion/screens/Visitors_Hostel/billDetails.dart'; +import 'package:fusion/screens/Visitors_Hostel/cancelRequest.dart'; +import 'package:fusion/screens/Visitors_Hostel/completedBookings.dart'; +import 'package:fusion/screens/Visitors_Hostel/getDetails.dart'; +import 'package:fusion/screens/Visitors_Hostel/inventory.dart'; +import 'package:fusion/screens/Visitors_Hostel/mealRecord.dart'; +import 'package:fusion/screens/Visitors_Hostel/place_request.dart'; +import 'package:fusion/screens/Visitors_Hostel/viewBookings.dart'; + +class VisitorHostelA extends StatefulWidget { + @override + _VisitorHostelState createState() => _VisitorHostelState(); +} + +class _VisitorHostelState extends State { + bool _isDropdownVisible = false; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: DefaultAppBar().visitorHostelAppBar(), + drawer: SideDrawer(), + body: Column( + children: [ + Expanded( + child: Container( + height: double.infinity, + width: double.infinity, + decoration: BoxDecoration( + color: Color.fromARGB(255, 248, 247, 247), + ), + child: SingleChildScrollView( + child: Column( + children: [ + SizedBox(height: 24.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + setState(() { + _isDropdownVisible = !_isDropdownVisible; + }); + }, + color: Colors.white, + textColor: Color.fromARGB(255, 59, 59, 59), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Manage Bookings', + style: TextStyle(fontSize: 18.0)), + Icon( + _isDropdownVisible + ? Icons.arrow_drop_up + : Icons.arrow_drop_down, + color: Colors.grey), + ], + ), + ), + ), + SizedBox(height: 8.0), + _isDropdownVisible + ? Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Container( + width: MediaQuery.of(context).size.width * 0.8, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + boxShadow: [ + BoxShadow( + color: Colors.black26, + offset: Offset(0.0, 2.0), + blurRadius: 6.0, + ), + ], + ), + child: Padding( + padding: EdgeInsets.all(16.0), + child: Column( + children: [ + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + ViewBookings()), + ); + }, + child: Text("View Bookings"), + ), + SizedBox(height: 9.0), + Divider( + thickness: 1.0, + ), + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + CancelledBookings()), + ); + }, + child: Text("Cancellation Requests"), + ), + SizedBox(height: 9.0), + Divider( + thickness: 1.0, + ), + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + ActiveBookings()), + ); + }, + child: Text("Active Bookings"), + ), + SizedBox(height: 9.0), + Divider( + thickness: 1.0, + ), + SizedBox(height: 9.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + CompletedBookings()), + ); + }, + child: Text("Completed Bookings"), + ), + SizedBox(height: 9.0), + ], + ), + ), + ), + ) + : SizedBox.shrink(), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () {}, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Booking Form', + style: TextStyle(fontSize: 18.0))), + ), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => GetDetails()), + ); + }, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Get Details', + style: TextStyle(fontSize: 18.0))), + ), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => MealRecord()), + ); + }, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Meals Record', + style: TextStyle(fontSize: 18.0))), + ), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => Accounts()), + ); + }, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Accounts', + style: TextStyle(fontSize: 18.0))), + ), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => Inventory()), + ); + }, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Inventory', + style: TextStyle(fontSize: 18.0))), + ), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => BillDetails()), + ); + }, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Bill Details', + style: TextStyle(fontSize: 18.0))), + ), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => MyPdfViewer()), + ); + }, + color: Colors.white, + textColor: Colors.black, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Rules and Regulations', + style: TextStyle(fontSize: 18.0))), + ), + SizedBox(height: 16.0), + Container( + width: MediaQuery.of(context).size.width * 0.6, + child: MaterialButton( + height: 60.0, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => PlaceRequest()), + ); + }, + color: Color.fromARGB(255, 243, 108, 53), + textColor: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(5.0), + topRight: Radius.circular(5.0), + bottomLeft: Radius.circular(5.0), + bottomRight: Radius.circular(5.0), + ), + ), + child: Text('Place Request', + style: TextStyle(fontSize: 18.0))), + ), + ], + ), + ), + ), + ), + ], + ), + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index a588ca0b..4aefe3e6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -46,6 +46,7 @@ dependencies: get: ^4.6.5 intl: ^0.17.0 material: ^1.0.0+2 + country_picker: ^2.0.20