коммит

This commit is contained in:
Татьяна Артамонова 2023-12-28 13:20:02 +04:00
parent cb69d513e0
commit aa53f465f0
4 changed files with 126 additions and 270 deletions

View File

@ -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))
) {

View File

@ -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
)
}
}

View File

@ -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
}
]
}

View File

@ -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
}
]
}