Перевёл создание таблиц

This commit is contained in:
Andrew 2023-05-17 20:29:00 +07:00
parent 53320d9d0f
commit 40bb982c74

View file

@ -8,13 +8,13 @@ import 'package:tuuli_app/models/table_column_definition.dart';
const typeToNameMatcher = { const typeToNameMatcher = {
SerialPrimaryColumnDefinition: "Serial ID", SerialPrimaryColumnDefinition: "Serial ID",
TextColumnDefinition: "Text", TextColumnDefinition: "Текст",
BooleanColumnDefinition: "Boolean", BooleanColumnDefinition: "Логическое значение",
TimestampColumnDefinition: "Date/Time", TimestampColumnDefinition: "Дата/Время",
DoubleColumnDefinition: "Double", DoubleColumnDefinition: "Число с плавающей точкой",
IntegerColumnDefinition: "Integer", IntegerColumnDefinition: "Целое число",
UserRefColumnDefinition: "User reference", UserRefColumnDefinition: "Ссылка на пользователя",
AssetRefColumnDefinition: "Asset reference", AssetRefColumnDefinition: "Ссылка на ресурс",
}; };
class CreateTableController extends GetxController { class CreateTableController extends GetxController {
@ -35,7 +35,7 @@ class CreateTableController 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.back(result: true); Get.back(result: true);
@ -43,18 +43,18 @@ class CreateTableController 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 update tables access", "Ошибка обновления доступа к таблице",
"${respData['error']}", "${respData['error']}",
); );
} else { } else {
Get.snackbar( Get.snackbar(
"Error trying to update tables access", "Ошибка обновления доступа к таблице",
"$e", "$e",
); );
} }
} catch (e) { } catch (e) {
Get.snackbar( Get.snackbar(
"Error trying to update tables access", "Ошибка обновления доступа к таблице",
"$e", "$e",
); );
} }
@ -67,14 +67,14 @@ class CreateTableController extends GetxController {
final confirm = await Get.dialog<bool>( final confirm = await Get.dialog<bool>(
AlertDialog( AlertDialog(
title: const Text("Create new column"), title: const Text("Создать новую колонку"),
content: Wrap( content: Wrap(
runSpacing: 16, runSpacing: 16,
children: [ children: [
FastTextField( FastTextField(
name: "ColumnName", name: "ColumnName",
decoration: const InputDecoration( decoration: const InputDecoration(
labelText: "Column name", labelText: "Название",
border: OutlineInputBorder(), border: OutlineInputBorder(),
), ),
initialValue: columnName.value, initialValue: columnName.value,
@ -82,7 +82,7 @@ class CreateTableController extends GetxController {
), ),
FastDropdown( FastDropdown(
name: "ColumnTypes", name: "ColumnTypes",
hint: const Text("Select column type"), hint: const Text("Тип"),
items: typeToNameMatcher.keys.toList(growable: false), items: typeToNameMatcher.keys.toList(growable: false),
itemsBuilder: (items, field) => items itemsBuilder: (items, field) => items
.map( .map(
@ -97,7 +97,7 @@ class CreateTableController extends GetxController {
), ),
FastCheckbox( FastCheckbox(
name: "ColumnIsUnique", name: "ColumnIsUnique",
titleText: "Is Unique", titleText: "Уникальное значение?",
initialValue: false, initialValue: false,
onChanged: (value) => columnIsUnique.value = value!, onChanged: (value) => columnIsUnique.value = value!,
), ),
@ -108,13 +108,13 @@ class CreateTableController extends GetxController {
onPressed: () { onPressed: () {
Get.back(result: false); Get.back(result: false);
}, },
child: const Text('Close'), child: const Text("Отменить"),
), ),
TextButton( TextButton(
onPressed: () { onPressed: () {
Get.back(result: true); Get.back(result: true);
}, },
child: const Text('Create'), child: const Text("Создать"),
), ),
], ],
), ),
@ -129,42 +129,42 @@ class CreateTableController extends GetxController {
columnName: columnName.value, columnName: columnName.value,
); );
break; break;
case "Text": case "Текст":
ct = TextColumnDefinition( ct = TextColumnDefinition(
columnName: columnName.value, columnName: columnName.value,
isUnique: columnIsUnique.value, isUnique: columnIsUnique.value,
); );
break; break;
case "Boolean": case "Логическое значение":
ct = BooleanColumnDefinition( ct = BooleanColumnDefinition(
columnName: columnName.value, columnName: columnName.value,
isUnique: columnIsUnique.value, isUnique: columnIsUnique.value,
); );
break; break;
case "Date/Time": case "Дата/Время":
ct = TimestampColumnDefinition( ct = TimestampColumnDefinition(
columnName: columnName.value, columnName: columnName.value,
isUnique: columnIsUnique.value, isUnique: columnIsUnique.value,
); );
break; break;
case "Double": case "Число с плавающей точкой":
ct = DoubleColumnDefinition( ct = DoubleColumnDefinition(
columnName: columnName.value, columnName: columnName.value,
isUnique: columnIsUnique.value, isUnique: columnIsUnique.value,
); );
break; break;
case "Integer": case "Целое число":
ct = IntegerColumnDefinition( ct = IntegerColumnDefinition(
columnName: columnName.value, columnName: columnName.value,
isUnique: columnIsUnique.value, isUnique: columnIsUnique.value,
); );
break; break;
case "User reference": case "Ссылка на пользователя":
ct = UserRefColumnDefinition( ct = UserRefColumnDefinition(
columnName: columnName.value, columnName: columnName.value,
); );
break; break;
case "Asset reference": case "Ссылка на ресурс":
ct = AssetRefColumnDefinition( ct = AssetRefColumnDefinition(
columnName: columnName.value, columnName: columnName.value,
); );
@ -185,12 +185,12 @@ class CreateTableDialog extends GetView<CreateTableController> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AlertDialog( return AlertDialog(
title: const Text('Creating new table'), title: const Text("Создать новую таблицу"),
content: Column( content: Column(
children: [ children: [
TextField( TextField(
decoration: const InputDecoration( decoration: const InputDecoration(
labelText: "Table name", labelText: "Название",
border: OutlineInputBorder(), border: OutlineInputBorder(),
), ),
onChanged: (value) => controller.tableName = value, onChanged: (value) => controller.tableName = value,
@ -216,7 +216,7 @@ class CreateTableDialog extends GetView<CreateTableController> {
[ [
ElevatedButton( ElevatedButton(
onPressed: () => controller.createNewColumn(), onPressed: () => controller.createNewColumn(),
child: const Text("Create column"), child: const Text("Создать колонку"),
).expanded() ).expanded()
].toRow(), ].toRow(),
], ],
@ -226,14 +226,14 @@ class CreateTableDialog extends GetView<CreateTableController> {
onPressed: () { onPressed: () {
Get.back(); Get.back();
}, },
child: const Text('Close'), child: const Text("Закрыть"),
), ),
Obx( Obx(
() => TextButton( () => TextButton(
onPressed: controller.columnsDefinition.isEmpty onPressed: controller.columnsDefinition.isEmpty
? null ? null
: () => controller.createTable(), : () => controller.createTable(),
child: const Text('Create'), child: const Text("Создать"),
), ),
), ),
], ],