diff --git a/lib/Components/audio_player.dart b/lib/Components/audio_player.dart index 4519cb3..b3dfe10 100644 --- a/lib/Components/audio_player.dart +++ b/lib/Components/audio_player.dart @@ -123,7 +123,6 @@ class _AudioPlayerFloatingContainerState extends State { setState(() {}); // For refresh } } else { - showResource(value, appContext, context, size); + var result = await showResource(value, appContext, context, size); + if(result != null) { + // Update resource + ManagerAppContext managerAppContext = appContext.getContext() as ManagerAppContext; + try{ + var resourceUpdated = managerAppContext.clientAPI.resourceApi.resourceUpdate(result); + setState(() { + // refresh ui + showNotification(kSuccess, kWhite, 'La ressource a été mise à jour avec succès', context, null); + }); + } catch (e) { + print("Error during updating resource"); + } + } } } else { // Result for select modal diff --git a/lib/Screens/Resources/show_resource_popup.dart b/lib/Screens/Resources/show_resource_popup.dart index 28d84fb..db3ae6e 100644 --- a/lib/Screens/Resources/show_resource_popup.dart +++ b/lib/Screens/Resources/show_resource_popup.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:manager_app/Components/confirmation_dialog.dart'; import 'package:manager_app/Components/message_notification.dart'; import 'package:manager_app/Components/rounded_button.dart'; +import 'package:manager_app/Components/string_input_container.dart'; import 'package:manager_app/Models/managerContext.dart'; import 'package:manager_app/app_context.dart'; import 'package:manager_app/constants.dart'; @@ -9,8 +10,8 @@ import 'package:manager_api_new/api.dart'; import 'get_element_for_resource.dart'; -void showResource(ResourceDTO resourceDTO, AppContext appContext, BuildContext context, Size size) { - showDialog( +Future showResource(ResourceDTO resourceDTO, AppContext appContext, BuildContext context, Size size) async { + var result = await showDialog( builder: (BuildContext context) => AlertDialog( shape: RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(20.0)) @@ -18,14 +19,28 @@ void showResource(ResourceDTO resourceDTO, AppContext appContext, BuildContext c content: SingleChildScrollView( child: Column( children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - resourceDTO.label == null ? "" : resourceDTO.label, - style: new TextStyle(fontSize: 25, fontWeight: FontWeight.w400)), + Align( + alignment: Alignment.center, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SizedBox( + width: MediaQuery.of(context).size.width * 0.6, + height: MediaQuery.of(context).size.height * 0.2, + child: StringInputContainer( + label: "Label :", + initialValue: resourceDTO.label != null ? resourceDTO.label : "", + onChanged: (value) { + resourceDTO.label = value; + }, + ), + ),/*Text( + resourceDTO.label == null ? "" : resourceDTO.label, + style: new TextStyle(fontSize: 25, fontWeight: FontWeight.w400)),*/ + ), ), Container( - height: size.height *0.5, + height: resourceDTO.type == ResourceType.Audio ? size.height *0.1 : size.height *0.3, + width: resourceDTO.type == ResourceType.Audio ? size.width *0.1 : size.width *0.3, child: Center( child: Container( decoration: BoxDecoration( @@ -85,11 +100,33 @@ void showResource(ResourceDTO resourceDTO, AppContext appContext, BuildContext c ), ), ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Align( + alignment: AlignmentDirectional.bottomEnd, + child: Container( + width: 220, + height: 70, + child: RoundedButton( + text: "Sauvegarder", + icon: Icons.check, + color: kPrimaryColor, + press: () { + if (resourceDTO.label != null && resourceDTO.label.length > 2) { + Navigator.pop(context, resourceDTO); + } + }, + fontSize: 20, + ), + ), + ), + ), ], ), ], ), context: context ); + return result; } Future delete(ResourceDTO resourceDTO, AppContext appContext, context) async {