Перевёл панель пользователей
This commit is contained in:
parent
93b599137b
commit
89bd7cbfcb
1 changed files with 82 additions and 84 deletions
|
|
@ -1,5 +1,3 @@
|
||||||
import 'package:built_collection/built_collection.dart';
|
|
||||||
import 'package:built_value/json_object.dart';
|
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
@ -68,7 +66,7 @@ class UserListPanelController extends GetxController {
|
||||||
|
|
||||||
final respData = resp.data;
|
final respData = resp.data;
|
||||||
if (respData == null) {
|
if (respData == null) {
|
||||||
throw Exception("No data in response");
|
throw Exception("В ответе нет данных");
|
||||||
}
|
}
|
||||||
|
|
||||||
_users.clear();
|
_users.clear();
|
||||||
|
|
@ -82,18 +80,18 @@ class UserListPanelController extends GetxController {
|
||||||
final respData = e.response?.data;
|
final respData = e.response?.data;
|
||||||
if (respData != null) {
|
if (respData != null) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to get users",
|
"Ошибка получения пользователей",
|
||||||
"${respData['error']}",
|
"${respData['error']}",
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to get users",
|
"Ошибка получения пользователей",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to get users",
|
"Ошибка получения пользователей",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -110,7 +108,7 @@ class UserListPanelController extends GetxController {
|
||||||
|
|
||||||
final respData = resp.data;
|
final respData = resp.data;
|
||||||
if (respData == null) {
|
if (respData == null) {
|
||||||
throw Exception("No data in response");
|
throw Exception("В ответе нет данных");
|
||||||
}
|
}
|
||||||
|
|
||||||
_groups.clear();
|
_groups.clear();
|
||||||
|
|
@ -123,18 +121,18 @@ class UserListPanelController extends GetxController {
|
||||||
final respData = e.response?.data;
|
final respData = e.response?.data;
|
||||||
if (respData != null) {
|
if (respData != null) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to get groups",
|
"Ошибка получения групп пользователей",
|
||||||
"${respData['error']}",
|
"${respData['error']}",
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to get groups",
|
"Ошибка получения групп пользователей",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to get groups",
|
"Ошибка получения групп пользователей",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -149,8 +147,8 @@ class UserListPanelController extends GetxController {
|
||||||
final accept = await Get.dialog<bool>(
|
final accept = await Get.dialog<bool>(
|
||||||
AlertDialog(
|
AlertDialog(
|
||||||
title: user == null
|
title: user == null
|
||||||
? const Text("Create new user")
|
? const Text("Создание нового пользователя")
|
||||||
: const Text("Edit user"),
|
: const Text("Редактирование пользователя"),
|
||||||
content: Column(
|
content: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
|
|
@ -159,14 +157,14 @@ class UserListPanelController extends GetxController {
|
||||||
? TextEditingController(text: user.username)
|
? TextEditingController(text: user.username)
|
||||||
: null,
|
: null,
|
||||||
decoration: const InputDecoration(
|
decoration: const InputDecoration(
|
||||||
labelText: "Username",
|
labelText: "Логин",
|
||||||
),
|
),
|
||||||
readOnly: user != null,
|
readOnly: user != null,
|
||||||
onChanged: (value) => username.value = value,
|
onChanged: (value) => username.value = value,
|
||||||
),
|
),
|
||||||
TextField(
|
TextField(
|
||||||
decoration: const InputDecoration(
|
decoration: const InputDecoration(
|
||||||
labelText: "Password",
|
labelText: "Пароль",
|
||||||
),
|
),
|
||||||
obscureText: true,
|
obscureText: true,
|
||||||
onChanged: (value) => password.value = value,
|
onChanged: (value) => password.value = value,
|
||||||
|
|
@ -176,11 +174,12 @@ class UserListPanelController extends GetxController {
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: false),
|
onPressed: () => Get.back(result: false),
|
||||||
child: const Text("Cancel"),
|
child: const Text("Отменить"),
|
||||||
),
|
),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: true),
|
onPressed: () => Get.back(result: true),
|
||||||
child: user == null ? const Text("Create") : const Text("Save"),
|
child:
|
||||||
|
user == null ? const Text("Создать") : const Text("Сохранить"),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -210,7 +209,7 @@ class UserListPanelController extends GetxController {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (respData == null) {
|
if (respData == null) {
|
||||||
throw Exception("No data in response");
|
throw Exception("В ответе нет данных");
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshData();
|
refreshData();
|
||||||
|
|
@ -218,18 +217,18 @@ class UserListPanelController extends GetxController {
|
||||||
final respData = e.response?.data;
|
final respData = e.response?.data;
|
||||||
if (respData != null) {
|
if (respData != null) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to create user",
|
"Ошибка создания пользователя",
|
||||||
"${respData['error']}",
|
"${respData['error']}",
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to create user",
|
"Ошибка создания пользователя",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to create user",
|
"Ошибка создания пользователя",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -240,19 +239,19 @@ class UserListPanelController extends GetxController {
|
||||||
final groupDescription = "".obs;
|
final groupDescription = "".obs;
|
||||||
final accept = await Get.dialog<bool>(
|
final accept = await Get.dialog<bool>(
|
||||||
AlertDialog(
|
AlertDialog(
|
||||||
title: const Text("Create new group"),
|
title: const Text("Создание группы пользователей"),
|
||||||
content: Column(
|
content: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
TextField(
|
TextField(
|
||||||
decoration: const InputDecoration(
|
decoration: const InputDecoration(
|
||||||
labelText: "Group name",
|
labelText: "Название",
|
||||||
),
|
),
|
||||||
onChanged: (value) => groupName.value = value,
|
onChanged: (value) => groupName.value = value,
|
||||||
),
|
),
|
||||||
TextField(
|
TextField(
|
||||||
decoration: const InputDecoration(
|
decoration: const InputDecoration(
|
||||||
labelText: "Group description (optional)",
|
labelText: "Описание (опционально)",
|
||||||
),
|
),
|
||||||
onChanged: (value) => groupDescription.value = value,
|
onChanged: (value) => groupDescription.value = value,
|
||||||
),
|
),
|
||||||
|
|
@ -261,11 +260,11 @@ class UserListPanelController extends GetxController {
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: false),
|
onPressed: () => Get.back(result: false),
|
||||||
child: const Text("Cancel"),
|
child: const Text("Отменить"),
|
||||||
),
|
),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: true),
|
onPressed: () => Get.back(result: true),
|
||||||
child: const Text("Create"),
|
child: const Text("Создать"),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -284,12 +283,12 @@ class UserListPanelController extends GetxController {
|
||||||
|
|
||||||
final respData = resp.data;
|
final respData = resp.data;
|
||||||
if (respData == null) {
|
if (respData == null) {
|
||||||
throw Exception("No data in response");
|
throw Exception("В ответе нет данных");
|
||||||
}
|
}
|
||||||
|
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Group created",
|
"Группа создана",
|
||||||
"Group $groupName created",
|
"Группа $groupName создана",
|
||||||
);
|
);
|
||||||
|
|
||||||
refreshData();
|
refreshData();
|
||||||
|
|
@ -297,18 +296,18 @@ class UserListPanelController extends GetxController {
|
||||||
final respData = e.response?.data;
|
final respData = e.response?.data;
|
||||||
if (respData != null) {
|
if (respData != null) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to create group",
|
"Ошибка создания группы пользователей",
|
||||||
"${respData['error']}",
|
"${respData['error']}",
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to create group",
|
"Ошибка создания группы пользователей",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to create group",
|
"Ошибка создания группы пользователей",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -331,7 +330,7 @@ class UserListPanelController extends GetxController {
|
||||||
|
|
||||||
final respData = resp.data;
|
final respData = resp.data;
|
||||||
if (respData == null) {
|
if (respData == null) {
|
||||||
throw Exception("No data in response");
|
throw Exception("В ответе нет данных");
|
||||||
}
|
}
|
||||||
|
|
||||||
final data = respData
|
final data = respData
|
||||||
|
|
@ -356,7 +355,7 @@ class UserListPanelController extends GetxController {
|
||||||
|
|
||||||
final selectedUser = await Get.dialog<UserDefinition>(
|
final selectedUser = await Get.dialog<UserDefinition>(
|
||||||
AlertDialog(
|
AlertDialog(
|
||||||
title: const Text("Select user to add to group"),
|
title: const Text("Какого пользователя добавить в группу"),
|
||||||
content: SizedBox(
|
content: SizedBox(
|
||||||
width: 400,
|
width: 400,
|
||||||
height: 400,
|
height: 400,
|
||||||
|
|
@ -374,7 +373,7 @@ class UserListPanelController extends GetxController {
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: null),
|
onPressed: () => Get.back(result: null),
|
||||||
child: const Text("Cancel"),
|
child: const Text("Отменить"),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -393,12 +392,12 @@ class UserListPanelController extends GetxController {
|
||||||
|
|
||||||
final respData = resp.data;
|
final respData = resp.data;
|
||||||
if (respData == null) {
|
if (respData == null) {
|
||||||
throw Exception("No data in response");
|
throw Exception("В ответе нет данных");
|
||||||
}
|
}
|
||||||
|
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"User added to group",
|
"Пользователь добавлен в группу",
|
||||||
"User ${selectedUser.username} added to group ${group.name}",
|
"Пользователь ${selectedUser.username} добавлен в группу ${group.name}",
|
||||||
);
|
);
|
||||||
|
|
||||||
refreshData();
|
refreshData();
|
||||||
|
|
@ -406,18 +405,18 @@ class UserListPanelController extends GetxController {
|
||||||
final respData = e.response?.data;
|
final respData = e.response?.data;
|
||||||
if (respData != null) {
|
if (respData != null) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to add user to group",
|
"Ошибка добавления пользователя в группу",
|
||||||
"${respData['error']}",
|
"${respData['error']}",
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to add user to group",
|
"Ошибка добавления пользователя в группу",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to add user to group",
|
"Ошибка добавления пользователя в группу",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -429,17 +428,17 @@ class UserListPanelController extends GetxController {
|
||||||
) async {
|
) async {
|
||||||
final accept = await Get.dialog<bool>(
|
final accept = await Get.dialog<bool>(
|
||||||
AlertDialog(
|
AlertDialog(
|
||||||
title: const Text("Remove user from group"),
|
title: const Text("Удаление пользователя из группы"),
|
||||||
content: const Text(
|
content: const Text(
|
||||||
"Are you sure you want to remove this user from the group?"),
|
"Вы действительно хотите удалить этого пользователя из группы?"),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: false),
|
onPressed: () => Get.back(result: false),
|
||||||
child: const Text("Cancel"),
|
child: const Text("Отменить"),
|
||||||
),
|
),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: true),
|
onPressed: () => Get.back(result: true),
|
||||||
child: const Text("Remove"),
|
child: const Text("Удалить"),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -466,12 +465,12 @@ class UserListPanelController extends GetxController {
|
||||||
|
|
||||||
final respData = resp.data;
|
final respData = resp.data;
|
||||||
if (respData == null) {
|
if (respData == null) {
|
||||||
throw Exception("No data in response");
|
throw Exception("В ответе нет данных");
|
||||||
}
|
}
|
||||||
|
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"User removed from group",
|
"Пользователь удалён из группы",
|
||||||
"User ${user.username} removed from group ${group.name}",
|
"Пользователь ${user.username} удалён из группы ${group.name}",
|
||||||
);
|
);
|
||||||
|
|
||||||
refreshData();
|
refreshData();
|
||||||
|
|
@ -479,18 +478,18 @@ class UserListPanelController extends GetxController {
|
||||||
final respData = e.response?.data;
|
final respData = e.response?.data;
|
||||||
if (respData != null) {
|
if (respData != null) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to remove user from group",
|
"Ошибка удаления пользователя из группы",
|
||||||
"${respData['error']}",
|
"${respData['error']}",
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to remove user from group",
|
"Ошибка удаления пользователя из группы",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to remove user from group",
|
"Ошибка удаления пользователя из группы",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -499,17 +498,16 @@ class UserListPanelController extends GetxController {
|
||||||
Future<void> deleteGroup(GroupDefinition group) async {
|
Future<void> deleteGroup(GroupDefinition group) async {
|
||||||
final accept = await Get.dialog<bool>(
|
final accept = await Get.dialog<bool>(
|
||||||
AlertDialog(
|
AlertDialog(
|
||||||
title: const Text("Delete group"),
|
title: const Text("Удаление группы"),
|
||||||
content: const Text(
|
content: const Text("Вы действительно хотите удалить эту группу?"),
|
||||||
"Are you sure you want to delete this group? This action cannot be undone."),
|
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: false),
|
onPressed: () => Get.back(result: false),
|
||||||
child: const Text("Cancel"),
|
child: const Text("Отменить"),
|
||||||
),
|
),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: true),
|
onPressed: () => Get.back(result: true),
|
||||||
child: const Text("Delete"),
|
child: const Text("Удалить"),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -530,7 +528,7 @@ class UserListPanelController extends GetxController {
|
||||||
);
|
);
|
||||||
|
|
||||||
if (resp1.data == null) {
|
if (resp1.data == null) {
|
||||||
throw Exception("Could not delete users from group");
|
throw Exception("Не удалось удалить пользователей из группы");
|
||||||
}
|
}
|
||||||
|
|
||||||
final resp2 = await ApiController.to.apiClient.deleteItemFromTable(
|
final resp2 = await ApiController.to.apiClient.deleteItemFromTable(
|
||||||
|
|
@ -545,12 +543,12 @@ class UserListPanelController extends GetxController {
|
||||||
);
|
);
|
||||||
|
|
||||||
if (resp2.data == null) {
|
if (resp2.data == null) {
|
||||||
throw Exception("Could not delete group");
|
throw Exception("Не удалось удалить группу пользователей");
|
||||||
}
|
}
|
||||||
|
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Group deleted",
|
"Группа пользователей удалена",
|
||||||
"Group ${group.name} deleted",
|
"Группа ${group.name} удалена",
|
||||||
);
|
);
|
||||||
|
|
||||||
refreshData();
|
refreshData();
|
||||||
|
|
@ -558,18 +556,18 @@ class UserListPanelController extends GetxController {
|
||||||
final respData = e.response?.data;
|
final respData = e.response?.data;
|
||||||
if (respData != null) {
|
if (respData != null) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to delete group",
|
"Ошибка удаления группы пользователей",
|
||||||
"${respData['error']}",
|
"${respData['error']}",
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to delete group",
|
"Ошибка удаления группы пользователей",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to delete group",
|
"Ошибка удаления группы пользователей",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -584,17 +582,16 @@ class UserListPanelController extends GetxController {
|
||||||
AlertDialog(
|
AlertDialog(
|
||||||
title: const Text("Delete user"),
|
title: const Text("Delete user"),
|
||||||
content: const Text(
|
content: const Text(
|
||||||
"Are you sure you want to delete this user? This action cannot be undone.\n"
|
"Вы уверены, что хотите удалить этого пользователя?",
|
||||||
"Note: This will not remove references to this user in other tables.",
|
|
||||||
),
|
),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: false),
|
onPressed: () => Get.back(result: false),
|
||||||
child: const Text("Cancel"),
|
child: const Text("Отменить"),
|
||||||
),
|
),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Get.back(result: true),
|
onPressed: () => Get.back(result: true),
|
||||||
child: const Text("Delete"),
|
child: const Text("Удалить"),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -615,7 +612,7 @@ class UserListPanelController extends GetxController {
|
||||||
);
|
);
|
||||||
|
|
||||||
if (resp1.data == null) {
|
if (resp1.data == null) {
|
||||||
throw Exception("Could not delete users from group");
|
throw Exception("Не удалось удалить пользователя из групп");
|
||||||
}
|
}
|
||||||
|
|
||||||
final resp2 = await ApiController.to.apiClient.removeUser(
|
final resp2 = await ApiController.to.apiClient.removeUser(
|
||||||
|
|
@ -623,12 +620,12 @@ class UserListPanelController extends GetxController {
|
||||||
);
|
);
|
||||||
|
|
||||||
if (resp2.data == null) {
|
if (resp2.data == null) {
|
||||||
throw Exception("Could not delete group");
|
throw Exception("Не удалось удалить пользователя");
|
||||||
}
|
}
|
||||||
|
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"User deleted",
|
"Пользователь удалён",
|
||||||
"User ${user.username} deleted",
|
"Пользователь ${user.username} удалён",
|
||||||
);
|
);
|
||||||
|
|
||||||
refreshData();
|
refreshData();
|
||||||
|
|
@ -636,18 +633,18 @@ class UserListPanelController extends GetxController {
|
||||||
final respData = e.response?.data;
|
final respData = e.response?.data;
|
||||||
if (respData != null) {
|
if (respData != null) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to delete user",
|
"Ошибка удаления пользователя",
|
||||||
"${respData['error']}",
|
"${respData['error']}",
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to delete user",
|
"Ошибка удаления пользователя",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Get.snackbar(
|
Get.snackbar(
|
||||||
"Error trying to delete user",
|
"Ошибка удаления пользователя",
|
||||||
"$e",
|
"$e",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -674,11 +671,11 @@ class UsersListPanel extends GetView<UserListPanelController> {
|
||||||
items: const [
|
items: const [
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
value: UserListPanelTab.users,
|
value: UserListPanelTab.users,
|
||||||
child: Text("Users"),
|
child: Text("Пользователи"),
|
||||||
),
|
),
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
value: UserListPanelTab.groups,
|
value: UserListPanelTab.groups,
|
||||||
child: Text("Groups"),
|
child: Text("Группы"),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
value: controller.currentTab,
|
value: controller.currentTab,
|
||||||
|
|
@ -721,11 +718,12 @@ class UsersListPanel extends GetView<UserListPanelController> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget get usersPanel => Obx(() =>
|
Widget get usersPanel => Obx(() => controller.users.isEmpty
|
||||||
controller.users.isEmpty ? whenNoSomething("No users found") : cardList);
|
? whenNoSomething("Пользователи не найдены")
|
||||||
|
: cardList);
|
||||||
|
|
||||||
Widget get groupsPanel => Obx(() => controller.groups.isEmpty
|
Widget get groupsPanel => Obx(() => controller.groups.isEmpty
|
||||||
? whenNoSomething("No groups found")
|
? whenNoSomething("Группы не найдены")
|
||||||
: groupsList);
|
: groupsList);
|
||||||
|
|
||||||
Widget whenNoSomething(message) => Center(
|
Widget whenNoSomething(message) => Center(
|
||||||
|
|
@ -785,7 +783,7 @@ class UsersListPanel extends GetView<UserListPanelController> {
|
||||||
ElevatedButton.icon(
|
ElevatedButton.icon(
|
||||||
onPressed: () => controller.editUser(user),
|
onPressed: () => controller.editUser(user),
|
||||||
icon: const Icon(Icons.edit_attributes),
|
icon: const Icon(Icons.edit_attributes),
|
||||||
label: const Text("Edit user"),
|
label: const Text("Редактировать"),
|
||||||
).paddingAll(8).expanded(),
|
).paddingAll(8).expanded(),
|
||||||
Obx(
|
Obx(
|
||||||
() {
|
() {
|
||||||
|
|
@ -807,7 +805,7 @@ class UsersListPanel extends GetView<UserListPanelController> {
|
||||||
final btn = ElevatedButton.icon(
|
final btn = ElevatedButton.icon(
|
||||||
onPressed: () => controller.deleteUser(user),
|
onPressed: () => controller.deleteUser(user),
|
||||||
icon: const Icon(Icons.delete_forever),
|
icon: const Icon(Icons.delete_forever),
|
||||||
label: const Text("Delete user"),
|
label: const Text("Удалить"),
|
||||||
style: ElevatedButton.styleFrom(
|
style: ElevatedButton.styleFrom(
|
||||||
backgroundColor: Colors.redAccent,
|
backgroundColor: Colors.redAccent,
|
||||||
),
|
),
|
||||||
|
|
@ -815,7 +813,7 @@ class UsersListPanel extends GetView<UserListPanelController> {
|
||||||
|
|
||||||
if (isAdmin) {
|
if (isAdmin) {
|
||||||
return Tooltip(
|
return Tooltip(
|
||||||
message: "Please note that this user is an admin",
|
message: "Данный пользователь является администратором",
|
||||||
child: btn,
|
child: btn,
|
||||||
).paddingAll(8).expanded();
|
).paddingAll(8).expanded();
|
||||||
}
|
}
|
||||||
|
|
@ -876,7 +874,7 @@ class UsersListPanel extends GetView<UserListPanelController> {
|
||||||
final groupData = controller.usersInGroups[group];
|
final groupData = controller.usersInGroups[group];
|
||||||
if (group.id == 1) {
|
if (group.id == 1) {
|
||||||
return const ListTile(
|
return const ListTile(
|
||||||
title: Text("No users can be added to this group"),
|
title: Text("В эту группу нельзя добавить пользователей"),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (groupData == null) {
|
if (groupData == null) {
|
||||||
|
|
@ -886,7 +884,7 @@ class UsersListPanel extends GetView<UserListPanelController> {
|
||||||
}
|
}
|
||||||
if (groupData.isEmpty) {
|
if (groupData.isEmpty) {
|
||||||
return const ListTile(
|
return const ListTile(
|
||||||
title: Text("No users in group"),
|
title: Text("В группе нет пользователей"),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
|
|
@ -897,7 +895,7 @@ class UsersListPanel extends GetView<UserListPanelController> {
|
||||||
final isYou = user.accessToken == ApiController.to.token;
|
final isYou = user.accessToken == ApiController.to.token;
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(user.username),
|
title: Text(user.username),
|
||||||
subtitle: isYou ? const Text("You") : null,
|
subtitle: isYou ? const Text("Вы") : null,
|
||||||
trailing: isYou &&
|
trailing: isYou &&
|
||||||
(group.id == 2 ||
|
(group.id == 2 ||
|
||||||
group.name.toLowerCase() == "admin")
|
group.name.toLowerCase() == "admin")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue