import 'package:flutter/material.dart'; import 'package:manager_app/Components/message_notification.dart'; import 'package:manager_app/Components/multi_select_container.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'; import 'package:manager_api_new/api.dart'; void showNewSection(String configurationId, AppContext appContext, BuildContext contextBuild, bool isSubSection, Function sendSubSection, bool isMobile) { SectionDTO sectionDTO = new SectionDTO(); sectionDTO.configurationId = configurationId; sectionDTO.isSubSection = isSubSection; sectionDTO.parentId = isSubSection ? appContext.getContext().selectedSection.id : null; Size size = MediaQuery.of(contextBuild).size; sectionDTO.type = isMobile ? SectionType.Article : SectionType.Map; showDialog( builder: (BuildContext context) => AlertDialog( shape: RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(20.0)) ), content: SingleChildScrollView( child: SizedBox( width: size.width*0.3, height: size.height*0.3, child: Column( children: [ Text(isSubSection? "Nouvelle sous section": "Nouvelle section", style: new TextStyle(fontSize: 25, fontWeight: FontWeight.w400)), Column( children: [ StringInputContainer( label: "Nom :", initialValue: sectionDTO.label, onChanged: (value) { sectionDTO.label = value; }, ), MultiSelectContainer( label: "Type :", initialValue: isMobile ? ["Article"] : ["Map"], isMultiple: false, values: isMobile ? section_types.where((sectionType) => sectionType == "Article").toList(): isSubSection ? section_types.where((sectionType) => sectionType != "Menu").toList(): section_types, // Todo get menu by enum type onChanged: (value) { var tempOutput = new List.from(value); sectionDTO.type = SectionType.fromJson(tempOutput[0]); }, ), ], ), ], ), ), ), actions: [ Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ Align( alignment: AlignmentDirectional.bottomEnd, child: Container( width: 175, height: 70, child: RoundedButton( text: "Annuler", icon: Icons.undo, color: kSecond, press: () { Navigator.of(context).pop(); }, fontSize: 20, ), ), ), Align( alignment: AlignmentDirectional.bottomEnd, child: Container( width: 150, height: 70, child: RoundedButton( text: "Créer", icon: Icons.check, color: kPrimaryColor, textColor: kWhite, press: () { //onYes(); create(sectionDTO, appContext, context, isSubSection, sendSubSection); }, fontSize: 20, ), ), ), ], ), ], ), context: contextBuild ); } void create(SectionDTO sectionDTO, AppContext appContext, BuildContext context, bool isSubSection, Function sendSubSection) async { if (sectionDTO.label != null) { sectionDTO.instanceId = (appContext.getContext() as ManagerAppContext).instanceId; SectionDTO newSection = await appContext.getContext().clientAPI.sectionApi.sectionCreate(sectionDTO); if (!isSubSection) { ManagerAppContext managerAppContext = appContext.getContext(); /*if (managerAppContext.selectedConfiguration.sectionIds == null) { managerAppContext.selectedConfiguration.sectionIds = []; } managerAppContext.selectedConfiguration.sectionIds.add(newSection.id);*/ appContext.setContext(managerAppContext); showNotification(Colors.green, kWhite, 'La section a été créée avec succès !', context, null); } else { sendSubSection(newSection); } Navigator.of(context).pop(); } }