diff --git a/covas_mobile/lib/classes/events.dart b/covas_mobile/lib/classes/events.dart index c0c4fba..25a23e8 100644 --- a/covas_mobile/lib/classes/events.dart +++ b/covas_mobile/lib/classes/events.dart @@ -5,6 +5,8 @@ class Events { String? startDate; String? endDate; String? description; + String? link; + String? ticket; double? latitude; double? longitude; List? tags; @@ -21,6 +23,8 @@ class Events { this.latitude, this.longitude, this.organizers, + this.link, + this.ticket, this.imgUrl}); Events.fromJson(Map json) { @@ -38,5 +42,7 @@ class Events { organizers = (json['organizers'] as List?) ?.cast(); // Convert List to List imgUrl = json['imgUrl'] as String?; + link = json['link'] as String?; + ticket = json['ticket'] as String?; } } diff --git a/covas_mobile/lib/l10n/app_de.arb b/covas_mobile/lib/l10n/app_de.arb index 9194d0a..09ea84b 100644 --- a/covas_mobile/lib/l10n/app_de.arb +++ b/covas_mobile/lib/l10n/app_de.arb @@ -130,5 +130,12 @@ "unknown_error": "Unbekannter Fehler", "app_error": "Anwendungsfehler", "at": "um", - "to_date": "bis" + "to_date": "bis", + "item_link": "Link : ", + "item_ticket": "Abendkarte : ", + "link": "Link", + "edit_link": "Linkereignis bearbeiten", +"ticket": "Abendkarte", +"edit_ticket": "Ticketlink bearbeiten" + } diff --git a/covas_mobile/lib/l10n/app_en.arb b/covas_mobile/lib/l10n/app_en.arb index 2f29651..c90bd42 100644 --- a/covas_mobile/lib/l10n/app_en.arb +++ b/covas_mobile/lib/l10n/app_en.arb @@ -132,5 +132,11 @@ "unknown_error": "Unknown error", "app_error": "Application error", "at": "at", -"to_date": "to" +"to_date": "to", +"item_link": "Link : ", +"item_ticket": "Ticket : ", +"link": "Link", +"edit_link": "Edit link name", +"ticket": "Ticket", +"edit_ticket": "Edit ticket link" } \ No newline at end of file diff --git a/covas_mobile/lib/l10n/app_fr.arb b/covas_mobile/lib/l10n/app_fr.arb index c3dd1fd..bd8cce8 100644 --- a/covas_mobile/lib/l10n/app_fr.arb +++ b/covas_mobile/lib/l10n/app_fr.arb @@ -132,6 +132,12 @@ "unknown_error": "Erreur inconnue", "app_error": "Erreur d'application", "at": "à", -"to_date": "jusqu'à" +"to_date": "jusqu'à", +"item_link": "Lien : ", +"item_ticket": "Billet : ", +"link": "Lien", +"edit_link": "Editer le lien", +"ticket": "Ticket", +"edit_ticket": "Edit ticket link" } \ No newline at end of file diff --git a/covas_mobile/lib/pages/EditEvent.dart b/covas_mobile/lib/pages/EditEvent.dart index 7c885bc..d0519c3 100644 --- a/covas_mobile/lib/pages/EditEvent.dart +++ b/covas_mobile/lib/pages/EditEvent.dart @@ -66,6 +66,8 @@ class _EditEventState extends State TextEditingController inputName = TextEditingController(); + TextEditingController inputTicket = TextEditingController(); + TextEditingController inputLink = TextEditingController(); TextEditingController inputDate = TextEditingController(); TextEditingController inputDesc = TextEditingController(); @@ -311,6 +313,8 @@ class _EditEventState extends State 'longitude': location['lng'], 'description': inputDesc.text, "imgUrl": imgUrl, + 'link': inputLink.text, + 'ticket': inputTicket.text, "tags": List.from(_stringTagController.getTags as List) })); @@ -354,6 +358,8 @@ class _EditEventState extends State }); }); inputName.text = widget.events!.name ?? ""; + inputTicket.text = widget.events!.ticket ?? ""; + inputLink.text = widget.events!.link ?? ""; startDatepicker.text = DateFormat("dd/MM/yyyy") .format(DateTime.parse( widget.events!.startDate ?? DateTime.now().toString())) @@ -641,6 +647,35 @@ class _EditEventState extends State onTap: () => onTapFunctionTimePicker( context: context, position: "end")), ), + Padding( + //padding: const EdgeInsets.only(left:15.0,right: 15.0,top:0,bottom: 0), + padding: const EdgeInsets.only( + left: 15.0, right: 15.0, top: 15, bottom: 0), + child: TextFormField( + controller: inputLink, + validator: (value) => _validateField(value), + decoration: InputDecoration( + border: OutlineInputBorder(), + labelText: AppLocalizations.of(context)?.link ?? "Link", + hintText: AppLocalizations.of(context)?.edit_link ?? + "Edit link event"), + ), + ), + Padding( + //padding: const EdgeInsets.only(left:15.0,right: 15.0,top:0,bottom: 0), + padding: const EdgeInsets.only( + left: 15.0, right: 15.0, top: 15, bottom: 0), + child: TextFormField( + controller: inputTicket, + validator: (value) => _validateField(value), + decoration: InputDecoration( + border: OutlineInputBorder(), + labelText: + AppLocalizations.of(context)?.ticket ?? "Ticket", + hintText: AppLocalizations.of(context)?.edit_ticket ?? + "Edit ticket link"), + ), + ), TextFieldTags( textfieldTagsController: _stringTagController, initialTags: initialTags, diff --git a/covas_mobile/lib/pages/ItemMenu.dart b/covas_mobile/lib/pages/ItemMenu.dart index 7451e50..def7c59 100644 --- a/covas_mobile/lib/pages/ItemMenu.dart +++ b/covas_mobile/lib/pages/ItemMenu.dart @@ -87,6 +87,8 @@ class _ItemMenuState extends State with ShowAlertDialog { String eventName = ""; String eventStartDate = ""; String eventDescription = ""; + String eventTicket = ""; + String eventLink = ""; String place = ""; String imgUrl = ""; List tags = []; @@ -128,17 +130,17 @@ class _ItemMenuState extends State with ShowAlertDialog { if (responseGet.statusCode == 200) { final responseBody = utf8.decode(responseGet.bodyBytes); - final event = Events.fromJson(jsonDecode(responseBody)); + events = Events.fromJson(jsonDecode(responseBody)); final locale = Provider.of(context, listen: false) .locale ?.toString() ?? 'en_US'; final startDate = - DateTime.parse(event.startDate ?? DateTime.now().toString()); + DateTime.parse(events?.startDate ?? DateTime.now().toString()); //final date = DateFormat.yMd().format(startDate); //final time = DateFormat.Hm().format(startDate); final endDate = - DateTime.parse(event.endDate ?? DateTime.now().toString()); + DateTime.parse(events?.endDate ?? DateTime.now().toString()); String separator = AppLocalizations.of(context)?.at ?? "at"; final formattedStartDate = DateFormat("EEEE d MMMM y '${separator}' HH:mm", locale) @@ -151,14 +153,16 @@ class _ItemMenuState extends State with ShowAlertDialog { String link = AppLocalizations.of(context)?.to_date ?? "to"; setState(() { - eventName = event.name ?? ""; + eventName = events?.name ?? ""; eventStartDate = "$formattedStartDate ${link} $formattedEndDate"; - organizers = List.from(event.organizers ?? []); - place = event.place ?? ""; - imgUrl = event.imgUrl ?? ""; - eventDescription = event.description ?? ""; - tags = List.from(event.tags ?? []); + organizers = List.from(events?.organizers ?? []); + place = events?.place ?? ""; + imgUrl = events?.imgUrl ?? ""; + eventLink = events?.link ?? ""; + eventTicket = events?.ticket ?? ""; + eventDescription = events?.description ?? ""; + tags = List.from(events?.tags ?? []); }); } else { final messages = { @@ -276,6 +280,34 @@ class _ItemMenuState extends State with ShowAlertDialog { maxLines: 3, overflow: TextOverflow.ellipsis))) ]), + Row(children: [ + Icon(Icons.link), + Text( + AppLocalizations.of(context)?.item_link ?? "Link : ", + style: TextStyle(fontSize: 15.0, fontWeight: FontWeight.bold), + ) + ]), + Row( + children: [ + Flexible( + child: + Text("${eventLink}", style: TextStyle(fontSize: 15.0))) + ], + ), + Row(children: [ + Icon(Icons.add_shopping_cart), + Text( + AppLocalizations.of(context)?.item_ticket ?? "Ticket : ", + style: TextStyle(fontSize: 15.0, fontWeight: FontWeight.bold), + ) + ]), + Row( + children: [ + Flexible( + child: Text("${eventTicket}", + style: TextStyle(fontSize: 15.0))) + ], + ), Row(children: [ Icon(Icons.group), Text(