Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions school_data_hub_client/lib/src/protocol/client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1459,15 +1459,15 @@ class EndpointPupilUpdate extends _i1.EndpointRef {
_i2.Future<_i5.PupilData> updateStringProperty(
int pupilId,
String property,
String? value,
({String? value})? propertyValue,
) =>
caller.callServerEndpoint<_i5.PupilData>(
'pupilUpdate',
'updateStringProperty',
{
'pupilId': pupilId,
'property': property,
'value': value,
'propertyValue': _i16.mapRecordToJson(propertyValue),
},
);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:school_data_hub_flutter/common/theme/styles.dart';

Future<String?> longTextFieldDialog({
Future<({String? value})?> longTextFieldDialog({
required String title,
required String? initialValue,
required String labelText,
Expand Down Expand Up @@ -61,36 +61,32 @@ Future<String?> longTextFieldDialog({
),
),
),
// initialValue != null
// ? Padding(
// padding: const EdgeInsets.all(5.0),
// child: ElevatedButton(
// style: AppStyles.actionButtonStyle,
// onPressed: () {
// textEditingController.dispose();
// Navigator.of(parentContext).pop(null);
// return;
// }, // Add onPressed
// child: const Text(
// "LÖSCHEN",
// style: AppStyles.buttonTextStyle,
// ),
// ),
// )
// : const SizedBox.shrink(),
initialValue != null
? Padding(
padding: const EdgeInsets.all(5.0),
child: ElevatedButton(
style: AppStyles.actionButtonStyle,
onPressed: () {
textEditingController.dispose();
Navigator.of(parentContext).pop((value: null));
return;
}, // Add onPressed
child: const Text(
"LÖSCHEN",
style: AppStyles.buttonTextStyle,
),
),
)
: const SizedBox.shrink(),
Padding(
padding: const EdgeInsets.all(5.0),
child: ElevatedButton(
style: AppStyles.successButtonStyle,
onPressed: () {
String? newSpecialInformation = textEditingController.text;

if (newSpecialInformation.isEmpty) {
return;
}
String? newPropertyValue = textEditingController.text;

textEditingController.dispose();
Navigator.of(parentContext).pop(newSpecialInformation);
Navigator.of(parentContext).pop((value: newPropertyValue));
}, // Add onPressed
child: const Text("OK", style: AppStyles.buttonTextStyle),
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -374,21 +374,19 @@ class AttendanceCard extends WatchingWidget {
Expanded(
child: InkWell(
onTap: () async {
final String? commentValue =
await longTextFieldDialog(
title: 'Kommentar eintragen',
labelText: 'Kommentar',
initialValue: null,
parentContext: context,
);
if (commentValue == null ||
commentValue.isEmpty ||
commentValue == attendanceInfo.commentValue) {
final result = await longTextFieldDialog(
title: 'Kommentar eintragen',
labelText: 'Kommentar',
initialValue: null,
parentContext: context,
);
if (result == null ||
result.value == attendanceInfo.commentValue) {
return;
}
_attendanceManager.updateCommentValue(
pupil.pupilId,
commentValue,
result.value,
thisDate,
);
},
Expand Down Expand Up @@ -777,19 +775,20 @@ class AttendanceCard extends WatchingWidget {
Expanded(
child: InkWell(
onTap: () async {
final String? commentValue = await longTextFieldDialog(
final result = await longTextFieldDialog(
title: 'Kommentar',
labelText: 'Kommentar',
initialValue: attendanceInfo.commentValue,
parentContext: context,
);
if (commentValue == attendanceInfo.commentValue) {
if (result == null ||
result.value == attendanceInfo.commentValue) {
return;
}

_attendanceManager.updateCommentValue(
pupil.pupilId,
commentValue ?? '',
result.value,
thisDate,
);
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -224,22 +224,23 @@ class AuthorizationPupilCard extends WatchingWidget {
Expanded(
child: InkWell(
onTap: () async {
final String? authorizationComment =
await longTextFieldDialog(
title: 'Kommentar ändern',
labelText: 'Kommentar',
initialValue: pupilAuthorization.comment,
parentContext: context,
);
if (authorizationComment == null) return;
if (authorizationComment == '') return;
final result = await longTextFieldDialog(
title: 'Kommentar ändern',
labelText: 'Kommentar',
initialValue: pupilAuthorization.comment,
parentContext: context,
);
if (result == null ||
result.value == pupilAuthorization.comment ||
result.value == '') {
return;
}

await di<AuthorizationManager>().updatePupilAuthorization(
pupilId: pupil.pupilId,
authorizationId: authorization.id!,
status: null,
comment: authorizationComment == ''
? null
: authorizationComment,
comment: result.value,
);
},
child: Text(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,22 +176,24 @@ class _BookInfosPageState extends State<BookInfosPage> {
const Gap(8),
InkWell(
onTap: () async {
final String? description = await longTextFieldDialog(
final result = await longTextFieldDialog(
title: 'Beschreibung',
labelText: 'Beschreibung',
initialValue: bookProxy.description,
parentContext: context,
);
if (description != null &&
description != bookProxy.description) {
await di<BookManager>().updateLibraryBookAndBookProperties(
isbn: bookProxy.isbn,
libraryId: bookProxy.libraryId,
description: description,
);
_loadBook(); // Reload to reflect changes
if (result == null || result.value == bookProxy.description) {
return;
}

await di<BookManager>().updateLibraryBookAndBookProperties(
isbn: bookProxy.isbn,
libraryId: bookProxy.libraryId,
description: result.value,
);
_loadBook(); // Reload to reflect changes
},

child: Text(
bookProxy.description.isNotEmpty
? bookProxy.description
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:school_data_hub_client/school_data_hub_client.dart';
import 'package:school_data_hub_flutter/app_utils/create_and_crop_image_file.dart';
import 'package:school_data_hub_flutter/app_utils/extensions/isbn_extensions.dart';
import 'package:school_data_hub_flutter/common/theme/app_colors.dart';
import 'package:school_data_hub_flutter/common/theme/styles.dart';
import 'package:school_data_hub_flutter/common/widgets/dialogs/confirmation_dialog.dart';
import 'package:school_data_hub_flutter/common/widgets/dialogs/information_dialog.dart';
import 'package:school_data_hub_flutter/common/widgets/dialogs/long_textfield_dialog.dart';
import 'package:school_data_hub_flutter/common/widgets/unencrypted_image_in_card.dart';
import 'package:school_data_hub_flutter/app_utils/create_and_crop_image_file.dart';
import 'package:school_data_hub_flutter/core/session/hub_session_manager.dart';
import 'package:school_data_hub_flutter/features/books/domain/book_helper.dart';
import 'package:school_data_hub_flutter/features/books/domain/book_manager.dart';
Expand Down Expand Up @@ -233,16 +233,20 @@ class BookCard extends WatchingWidget {
children: [
InkWell(
onTap: () async {
final String? description = await longTextFieldDialog(
final result = await longTextFieldDialog(
title: 'Beschreibung',
labelText: 'Beschreibung',
initialValue: bookProxy.description,
parentContext: context,
);
if (result == null ||
result.value == bookProxy.description) {
return;
}
di<BookManager>().updateLibraryBookAndBookProperties(
isbn: bookProxy.isbn,
libraryId: bookProxy.libraryId,
description: description,
description: result.value,
);
},
child: Text(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,16 +183,20 @@ class SearchResultBookCard extends WatchingWidget {
children: [
InkWell(
onTap: () async {
final String? description = await longTextFieldDialog(
final result = await longTextFieldDialog(
title: 'Beschreibung',
labelText: 'Beschreibung',
initialValue: bookProxy.description,
parentContext: context,
);
if (result == null ||
result.value == bookProxy.description) {
return;
}
di<BookManager>().updateLibraryBookAndBookProperties(
isbn: bookProxy.isbn,
libraryId: bookProxy.libraryId,
description: description,
description: result.value,
);
},
child: Text(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,16 +187,19 @@ class PupilBookLendingCard extends StatelessWidget {
),
InkWell(
onTap: () async {
final status = await longTextFieldDialog(
final result = await longTextFieldDialog(
title: 'Status',
labelText: 'Status',
initialValue: pupilBookLending.status ?? '',
parentContext: context,
);
if (status == null) return;
if (result == null ||
result.value == pupilBookLending.status) {
return;
}
await di<PupilProxyManager>().updatePupilBookLending(
pupilBookLending: pupilBookLending,
status: (value: status),
status: (value: result.value),
);
},
borderRadius: BorderRadius.circular(8),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:school_data_hub_client/school_data_hub_client.dart';
import 'package:school_data_hub_flutter/app_utils/create_and_crop_image_file.dart';
import 'package:school_data_hub_flutter/common/theme/app_colors.dart';
import 'package:school_data_hub_flutter/common/widgets/dialogs/confirmation_dialog.dart';
import 'package:school_data_hub_flutter/common/widgets/dialogs/long_textfield_dialog.dart';
import 'package:school_data_hub_flutter/common/widgets/encrypted_document_image.dart';
import 'package:school_data_hub_flutter/common/widgets/growth_dropdown.dart';
import 'package:school_data_hub_flutter/app_utils/create_and_crop_image_file.dart';
import 'package:school_data_hub_flutter/core/session/hub_session_helper.dart';
import 'package:school_data_hub_flutter/features/app_main_navigation/domain/main_menu_bottom_nav_manager.dart';
import 'package:school_data_hub_flutter/features/learning/domain/competence_helper.dart';
Expand Down Expand Up @@ -288,18 +288,20 @@ class MultiPupilCompetenceCheckCard extends WatchingWidget {
InkWell(
onTap: () async {
if (SessionHelper.isAuthorized(competenceCheck.createdBy)) {
final String? comment = await longTextFieldDialog(
final result = await longTextFieldDialog(
parentContext: context,
title: 'Kommentar',
labelText: 'Kommentar eingeben',
initialValue: competenceCheck.comment,
);
if (comment != null) {
await di<CompetenceManager>().updateCompetenceCheck(
competenceCheckId: competenceCheck.checkId,
competenceComment: (value: comment),
);
if (result == null ||
result.value == competenceCheck.comment) {
return;
}
await di<CompetenceManager>().updateCompetenceCheck(
competenceCheckId: competenceCheck.checkId,
competenceComment: (value: result.value),
);
}
},
child: Text(
Expand All @@ -318,18 +320,20 @@ class MultiPupilCompetenceCheckCard extends WatchingWidget {
if (SessionHelper.isAuthorized(
competenceCheck.createdBy,
)) {
final String? comment = await longTextFieldDialog(
final result = await longTextFieldDialog(
parentContext: context,
title: 'Kommentar',
labelText: 'Kommentar eingeben',
initialValue: competenceCheck.comment,
);
if (comment != null) {
await di<CompetenceManager>().updateCompetenceCheck(
competenceCheckId: competenceCheck.checkId,
competenceComment: (value: comment),
);
if (result == null ||
result.value == competenceCheck.comment) {
return;
}
await di<CompetenceManager>().updateCompetenceCheck(
competenceCheckId: competenceCheck.checkId,
competenceComment: (value: result.value),
);
}
},
child: Text(
Expand Down
Loading