коммит
This commit is contained in:
parent
cb69d513e0
commit
aa53f465f0
@ -80,7 +80,7 @@ private fun FlightListItem(
|
||||
flight: Flight, modifier: Modifier = Modifier
|
||||
) {
|
||||
Card(
|
||||
modifier = modifier.fillMaxWidth(),
|
||||
modifier = modifier.fillMaxWidth().padding(10.dp),
|
||||
elevation = CardDefaults.cardElevation(defaultElevation = 2.dp),
|
||||
colors = CardDefaults.cardColors(containerColor = colorResource(id = R.color.lightlightBlue))
|
||||
) {
|
||||
|
@ -3,15 +3,11 @@ package ru.ulstu.`is`.airticketrentservice.screen.auth
|
||||
import android.annotation.SuppressLint
|
||||
import android.util.Log
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.requiredHeight
|
||||
import androidx.compose.foundation.layout.requiredWidth
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
@ -59,9 +55,9 @@ import ru.ulstu.`is`.airticketrentservice.viewModel.AppViewModelProvider
|
||||
import ru.ulstu.`is`.airticketrentservice.viewModel.CurrentUserViewModel
|
||||
import ru.ulstu.`is`.airticketrentservice.viewModel.LoginViewModel
|
||||
import ru.ulstu.`is`.airticketrentservice.R
|
||||
import ru.ulstu.`is`.airticketrentservice.api.repository.RestUserRepository
|
||||
import ru.ulstu.`is`.airticketrentservice.graphs.AuthScreen
|
||||
import ru.ulstu.`is`.airticketrentservice.graphs.Graph
|
||||
import androidx.compose.material3.AlertDialog
|
||||
|
||||
@SuppressLint("UnrememberedMutableState")
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@ -75,7 +71,23 @@ fun Login(navController: NavController, modifier: Modifier = Modifier, loginView
|
||||
val argument = currentUserViewModel.argument.value
|
||||
var passwordVisibility by rememberSaveable { mutableStateOf(false) }
|
||||
val emailRegex = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+".toRegex()
|
||||
val coroutineScope = rememberCoroutineScope()
|
||||
|
||||
val showInvalidPasswordDialog = remember { mutableStateOf(false) }
|
||||
|
||||
if (showInvalidPasswordDialog.value) {
|
||||
AlertDialog(
|
||||
onDismissRequest = { showInvalidPasswordDialog.value = false },
|
||||
title = { Text(text = "Ошибка") },
|
||||
text = { Text(text = "Такого пользователя не существует.") },
|
||||
confirmButton = {
|
||||
Button(
|
||||
onClick = { showInvalidPasswordDialog.value = false },
|
||||
) {
|
||||
Text(text = "ОК")
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
Column(
|
||||
Modifier
|
||||
@ -145,13 +157,18 @@ fun Login(navController: NavController, modifier: Modifier = Modifier, loginView
|
||||
shape = RoundedCornerShape(15.dp),
|
||||
onClick = {
|
||||
if (passwordValue.isNotEmpty() && isValidEmail(emailValue)) {
|
||||
var userExists = false
|
||||
users.value.forEach { user ->
|
||||
if (user.password == passwordValue && user.email == emailValue) {
|
||||
currentUserViewModel.setArgument(user.id.toString())
|
||||
navController.navigate(route = Graph.passUserId(user.id.toString()))
|
||||
Log.d("CurrentUserViewModel", "Текущий пользователь: $user")
|
||||
userExists = true
|
||||
}
|
||||
}
|
||||
if (!userExists) {
|
||||
showInvalidPasswordDialog.value = true
|
||||
}
|
||||
}
|
||||
},
|
||||
colors = ButtonDefaults.buttonColors(containerColor = colorResource(R.color.lightBlue)),
|
||||
@ -179,3 +196,4 @@ fun Login(navController: NavController, modifier: Modifier = Modifier, loginView
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
252
server/data.json
252
server/data.json
@ -4,186 +4,28 @@
|
||||
"id": 1,
|
||||
"passengers_count": 1,
|
||||
"ticket_cost": 2680,
|
||||
"flightId": 6
|
||||
"flightId": 5
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"passengers_count": 2,
|
||||
"ticket_cost": 4870,
|
||||
"flightId": 5
|
||||
"flightId": 6
|
||||
},
|
||||
{
|
||||
"passengers_count": 5,
|
||||
"ticket_cost": 54000,
|
||||
"flightId": 10,
|
||||
"passengers_count": 6,
|
||||
"ticket_cost": 21420,
|
||||
"flightId": 14,
|
||||
"id": 3
|
||||
},
|
||||
{
|
||||
"passengers_count": 1,
|
||||
"ticket_cost": 2680,
|
||||
"flightId": 6,
|
||||
"passengers_count": 3,
|
||||
"ticket_cost": 15000,
|
||||
"flightId": 12,
|
||||
"id": 4
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"passengers_count": 2,
|
||||
"ticket_cost": 17440,
|
||||
"flightId": 8
|
||||
},
|
||||
{
|
||||
"passengers_count": 4,
|
||||
"ticket_cost": 71200,
|
||||
"flightId": 9,
|
||||
"id": 7
|
||||
},
|
||||
{
|
||||
"passengers_count": 6,
|
||||
"ticket_cost": 106800,
|
||||
"flightId": 9,
|
||||
"id": 9
|
||||
},
|
||||
{
|
||||
"passengers_count": 6,
|
||||
"ticket_cost": 106800,
|
||||
"flightId": 9,
|
||||
"id": 10
|
||||
},
|
||||
{
|
||||
"passengers_count": 11,
|
||||
"ticket_cost": 29480,
|
||||
"flightId": 6,
|
||||
"id": 12
|
||||
},
|
||||
{
|
||||
"passengers_count": 3,
|
||||
"ticket_cost": 8040,
|
||||
"flightId": 6,
|
||||
"id": 13
|
||||
},
|
||||
{
|
||||
"passengers_count": 8,
|
||||
"ticket_cost": 142400,
|
||||
"flightId": 9,
|
||||
"id": 14
|
||||
},
|
||||
{
|
||||
"passengers_count": 1,
|
||||
"ticket_cost": 2680,
|
||||
"flightId": 6,
|
||||
"id": 15
|
||||
},
|
||||
{
|
||||
"passengers_count": 1,
|
||||
"ticket_cost": 2680,
|
||||
"flightId": 6,
|
||||
"id": 16
|
||||
},
|
||||
{
|
||||
"passengers_count": 1,
|
||||
"ticket_cost": 2680,
|
||||
"flightId": 6,
|
||||
"id": 17
|
||||
},
|
||||
{
|
||||
"passengers_count": 1,
|
||||
"ticket_cost": 17800,
|
||||
"flightId": 9,
|
||||
"id": 18
|
||||
},
|
||||
{
|
||||
"passengers_count": 5,
|
||||
"ticket_cost": 5000,
|
||||
"flightId": 2,
|
||||
"id": 19
|
||||
},
|
||||
{
|
||||
"passengers_count": 6,
|
||||
"ticket_cost": 6000,
|
||||
"flightId": 2,
|
||||
"id": 20
|
||||
},
|
||||
{
|
||||
"passengers_count": 3,
|
||||
"ticket_cost": 3000,
|
||||
"flightId": 2,
|
||||
"id": 21
|
||||
},
|
||||
{
|
||||
"passengers_count": 10,
|
||||
"ticket_cost": 10000,
|
||||
"flightId": 2,
|
||||
"id": 22
|
||||
},
|
||||
{
|
||||
"passengers_count": 6,
|
||||
"ticket_cost": 6000,
|
||||
"flightId": 2,
|
||||
"id": 23
|
||||
},
|
||||
{
|
||||
"passengers_count": 9,
|
||||
"ticket_cost": 160200,
|
||||
"flightId": 9,
|
||||
"id": 24
|
||||
},
|
||||
{
|
||||
"passengers_count": 8,
|
||||
"ticket_cost": 142400,
|
||||
"flightId": 9,
|
||||
"id": 25
|
||||
},
|
||||
{
|
||||
"passengers_count": 3,
|
||||
"ticket_cost": 53400,
|
||||
"flightId": 9,
|
||||
"id": 26
|
||||
},
|
||||
{
|
||||
"passengers_count": 6,
|
||||
"ticket_cost": 106800,
|
||||
"flightId": 9,
|
||||
"id": 27
|
||||
},
|
||||
{
|
||||
"passengers_count": 5,
|
||||
"ticket_cost": 89000,
|
||||
"flightId": 9,
|
||||
"id": 28
|
||||
},
|
||||
{
|
||||
"passengers_count": 3,
|
||||
"ticket_cost": 20610,
|
||||
"flightId": 7,
|
||||
"id": 29
|
||||
},
|
||||
{
|
||||
"passengers_count": 5,
|
||||
"ticket_cost": 5000,
|
||||
"flightId": 2,
|
||||
"id": 30
|
||||
},
|
||||
{
|
||||
"passengers_count": 2,
|
||||
"ticket_cost": 5360,
|
||||
"flightId": 6,
|
||||
"id": 31
|
||||
},
|
||||
{
|
||||
"passengers_count": 3,
|
||||
"ticket_cost": 7305,
|
||||
"flightId": 5,
|
||||
"id": 32
|
||||
}
|
||||
],
|
||||
"flights": [
|
||||
{
|
||||
"id": 2,
|
||||
"direction_from": "a",
|
||||
"direction_to": "b",
|
||||
"departure_date": "1-1-2024",
|
||||
"arrival_date": "1-1-2024",
|
||||
"one_ticket_cost": 1000
|
||||
},
|
||||
{
|
||||
"direction_from": "Санкт-Петербург",
|
||||
"direction_to": "Сочи",
|
||||
@ -276,46 +118,6 @@
|
||||
"password": "usertt",
|
||||
"role": "User"
|
||||
},
|
||||
{
|
||||
"surname": "а",
|
||||
"name": "а",
|
||||
"patronymic": "а",
|
||||
"date_of_birth": "17-5-2000",
|
||||
"email": "user@mail.ru",
|
||||
"password": "user",
|
||||
"role": "User",
|
||||
"id": 3
|
||||
},
|
||||
{
|
||||
"surname": "ыщылы",
|
||||
"name": "шчшчгч",
|
||||
"patronymic": "шчшчшч",
|
||||
"date_of_birth": "10-12-2015",
|
||||
"email": "aaa@mail.ru",
|
||||
"password": "aaa",
|
||||
"role": "User",
|
||||
"id": 4
|
||||
},
|
||||
{
|
||||
"surname": "фффф",
|
||||
"name": "ффф",
|
||||
"patronymic": "ффф",
|
||||
"date_of_birth": "7-5-2005",
|
||||
"email": "userff@mail.ru",
|
||||
"password": "password",
|
||||
"role": "User",
|
||||
"id": 6
|
||||
},
|
||||
{
|
||||
"surname": "ккк",
|
||||
"name": "ккк",
|
||||
"patronymic": "ккк",
|
||||
"date_of_birth": "23-12-2011",
|
||||
"email": "kkk@mail.ru",
|
||||
"password": "kkk",
|
||||
"role": "User",
|
||||
"id": 7
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"surname": "Артамонова",
|
||||
@ -347,50 +149,20 @@
|
||||
{
|
||||
"id": 2,
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 2,
|
||||
"userId": 8,
|
||||
"ticketId": 2
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 2,
|
||||
"ticketId": 24,
|
||||
"ticketId": 3,
|
||||
"id": 3
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 2,
|
||||
"ticketId": 25,
|
||||
"id": 4
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 2,
|
||||
"ticketId": 26,
|
||||
"id": 5
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 2,
|
||||
"ticketId": 28,
|
||||
"id": 7
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 8,
|
||||
"ticketId": 29,
|
||||
"id": 8
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 9,
|
||||
"ticketId": 30,
|
||||
"id": 9
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 2,
|
||||
"ticketId": 31,
|
||||
"id": 10
|
||||
"ticketId": 4,
|
||||
"id": 4
|
||||
}
|
||||
]
|
||||
}
|
@ -25,16 +25,10 @@
|
||||
"id": 4
|
||||
},
|
||||
{
|
||||
"passengers_count": 3,
|
||||
"ticket_cost": 26160,
|
||||
"flightId": 8,
|
||||
"id": 5
|
||||
},
|
||||
{
|
||||
"passengers_count": 5,
|
||||
"ticket_cost": 54000,
|
||||
"flightId": 10,
|
||||
"id": 6
|
||||
"id": 5,
|
||||
"passengers_count": 2,
|
||||
"ticket_cost": 17440,
|
||||
"flightId": 8
|
||||
},
|
||||
{
|
||||
"passengers_count": 4,
|
||||
@ -54,12 +48,6 @@
|
||||
"flightId": 9,
|
||||
"id": 10
|
||||
},
|
||||
{
|
||||
"passengers_count": 6,
|
||||
"ticket_cost": 106800,
|
||||
"flightId": 9,
|
||||
"id": 11
|
||||
},
|
||||
{
|
||||
"passengers_count": 11,
|
||||
"ticket_cost": 29480,
|
||||
@ -167,6 +155,30 @@
|
||||
"ticket_cost": 20610,
|
||||
"flightId": 7,
|
||||
"id": 29
|
||||
},
|
||||
{
|
||||
"passengers_count": 5,
|
||||
"ticket_cost": 5000,
|
||||
"flightId": 2,
|
||||
"id": 30
|
||||
},
|
||||
{
|
||||
"passengers_count": 2,
|
||||
"ticket_cost": 5360,
|
||||
"flightId": 6,
|
||||
"id": 31
|
||||
},
|
||||
{
|
||||
"passengers_count": 3,
|
||||
"ticket_cost": 7305,
|
||||
"flightId": 5,
|
||||
"id": 32
|
||||
},
|
||||
{
|
||||
"passengers_count": 3,
|
||||
"ticket_cost": 15000,
|
||||
"flightId": 12,
|
||||
"id": 33
|
||||
}
|
||||
],
|
||||
"flights": [
|
||||
@ -225,6 +237,38 @@
|
||||
"arrival_date": "15-1-2024",
|
||||
"one_ticket_cost": 10800,
|
||||
"id": 10
|
||||
},
|
||||
{
|
||||
"direction_from": "Москва",
|
||||
"direction_to": "Крым",
|
||||
"departure_date": "24-12-2023",
|
||||
"arrival_date": "31-12-2023",
|
||||
"one_ticket_cost": 3850,
|
||||
"id": 11
|
||||
},
|
||||
{
|
||||
"direction_from": "Кострома",
|
||||
"direction_to": "Хабаровск",
|
||||
"departure_date": "29-12-2023",
|
||||
"arrival_date": "29-12-2023",
|
||||
"one_ticket_cost": 5000,
|
||||
"id": 12
|
||||
},
|
||||
{
|
||||
"direction_from": "Москва",
|
||||
"direction_to": "Кострома",
|
||||
"departure_date": "6-1-2024",
|
||||
"arrival_date": "6-1-2024",
|
||||
"one_ticket_cost": 35740,
|
||||
"id": 13
|
||||
},
|
||||
{
|
||||
"direction_from": "Москва",
|
||||
"direction_to": "Ульяновск",
|
||||
"departure_date": "13-1-2024",
|
||||
"arrival_date": "14-1-2024",
|
||||
"one_ticket_cost": 3570,
|
||||
"id": 14
|
||||
}
|
||||
],
|
||||
"users": [
|
||||
@ -287,6 +331,16 @@
|
||||
"email": "admin@mail.ru",
|
||||
"password": "admin",
|
||||
"role": "Admin"
|
||||
},
|
||||
{
|
||||
"surname": "user",
|
||||
"name": "user",
|
||||
"patronymic": "user",
|
||||
"date_of_birth": "13-9-2012",
|
||||
"email": "user66@mail.ru",
|
||||
"password": "user66",
|
||||
"role": "User",
|
||||
"id": 9
|
||||
}
|
||||
],
|
||||
"rents": [
|
||||
@ -320,12 +374,6 @@
|
||||
"ticketId": 26,
|
||||
"id": 5
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 2,
|
||||
"ticketId": 27,
|
||||
"id": 6
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 2,
|
||||
@ -337,6 +385,24 @@
|
||||
"userId": 8,
|
||||
"ticketId": 29,
|
||||
"id": 8
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 9,
|
||||
"ticketId": 30,
|
||||
"id": 9
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 2,
|
||||
"ticketId": 31,
|
||||
"id": 10
|
||||
},
|
||||
{
|
||||
"status": "Ожидает подтверждения",
|
||||
"userId": 2,
|
||||
"ticketId": 33,
|
||||
"id": 11
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue
Block a user