feature/link #47

Merged
v4l3n71n merged 5 commits from feature/link into main 2025-08-15 21:19:14 +00:00
6 changed files with 104 additions and 12 deletions

View File

@@ -5,6 +5,8 @@ class Events {
String? startDate; String? startDate;
String? endDate; String? endDate;
String? description; String? description;
String? link;
String? ticket;
double? latitude; double? latitude;
double? longitude; double? longitude;
List<String>? tags; List<String>? tags;
@@ -21,6 +23,8 @@ class Events {
this.latitude, this.latitude,
this.longitude, this.longitude,
this.organizers, this.organizers,
this.link,
this.ticket,
this.imgUrl}); this.imgUrl});
Events.fromJson(Map<String, dynamic> json) { Events.fromJson(Map<String, dynamic> json) {
@@ -38,5 +42,7 @@ class Events {
organizers = (json['organizers'] as List<dynamic>?) organizers = (json['organizers'] as List<dynamic>?)
?.cast<String>(); // Convert List<dynamic> to List<String> ?.cast<String>(); // Convert List<dynamic> to List<String>
imgUrl = json['imgUrl'] as String?; imgUrl = json['imgUrl'] as String?;
link = json['link'] as String?;
ticket = json['ticket'] as String?;
} }
} }

View File

@@ -130,5 +130,12 @@
"unknown_error": "Unbekannter Fehler", "unknown_error": "Unbekannter Fehler",
"app_error": "Anwendungsfehler", "app_error": "Anwendungsfehler",
"at": "um", "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"
} }

View File

@@ -132,5 +132,11 @@
"unknown_error": "Unknown error", "unknown_error": "Unknown error",
"app_error": "Application error", "app_error": "Application error",
"at": "at", "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"
} }

View File

@@ -132,6 +132,12 @@
"unknown_error": "Erreur inconnue", "unknown_error": "Erreur inconnue",
"app_error": "Erreur d'application", "app_error": "Erreur d'application",
"at": "à", "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"
} }

View File

@@ -66,6 +66,8 @@ class _EditEventState extends State<EditEvent>
TextEditingController inputName = TextEditingController(); TextEditingController inputName = TextEditingController();
TextEditingController inputTicket = TextEditingController();
TextEditingController inputLink = TextEditingController();
TextEditingController inputDate = TextEditingController(); TextEditingController inputDate = TextEditingController();
TextEditingController inputDesc = TextEditingController(); TextEditingController inputDesc = TextEditingController();
@@ -311,6 +313,8 @@ class _EditEventState extends State<EditEvent>
'longitude': location['lng'], 'longitude': location['lng'],
'description': inputDesc.text, 'description': inputDesc.text,
"imgUrl": imgUrl, "imgUrl": imgUrl,
'link': inputLink.text,
'ticket': inputTicket.text,
"tags": List<String>.from(_stringTagController.getTags as List) "tags": List<String>.from(_stringTagController.getTags as List)
})); }));
@@ -354,6 +358,8 @@ class _EditEventState extends State<EditEvent>
}); });
}); });
inputName.text = widget.events!.name ?? ""; inputName.text = widget.events!.name ?? "";
inputTicket.text = widget.events!.ticket ?? "";
inputLink.text = widget.events!.link ?? "";
startDatepicker.text = DateFormat("dd/MM/yyyy") startDatepicker.text = DateFormat("dd/MM/yyyy")
.format(DateTime.parse( .format(DateTime.parse(
widget.events!.startDate ?? DateTime.now().toString())) widget.events!.startDate ?? DateTime.now().toString()))
@@ -641,6 +647,35 @@ class _EditEventState extends State<EditEvent>
onTap: () => onTapFunctionTimePicker( onTap: () => onTapFunctionTimePicker(
context: context, position: "end")), 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<String>( TextFieldTags<String>(
textfieldTagsController: _stringTagController, textfieldTagsController: _stringTagController,
initialTags: initialTags, initialTags: initialTags,

View File

@@ -87,6 +87,8 @@ class _ItemMenuState extends State<ItemMenu> with ShowAlertDialog {
String eventName = ""; String eventName = "";
String eventStartDate = ""; String eventStartDate = "";
String eventDescription = ""; String eventDescription = "";
String eventTicket = "";
String eventLink = "";
String place = ""; String place = "";
String imgUrl = ""; String imgUrl = "";
List<String> tags = []; List<String> tags = [];
@@ -128,17 +130,17 @@ class _ItemMenuState extends State<ItemMenu> with ShowAlertDialog {
if (responseGet.statusCode == 200) { if (responseGet.statusCode == 200) {
final responseBody = utf8.decode(responseGet.bodyBytes); final responseBody = utf8.decode(responseGet.bodyBytes);
final event = Events.fromJson(jsonDecode(responseBody)); events = Events.fromJson(jsonDecode(responseBody));
final locale = Provider.of<LocaleProvider>(context, listen: false) final locale = Provider.of<LocaleProvider>(context, listen: false)
.locale .locale
?.toString() ?? ?.toString() ??
'en_US'; 'en_US';
final startDate = final startDate =
DateTime.parse(event.startDate ?? DateTime.now().toString()); DateTime.parse(events?.startDate ?? DateTime.now().toString());
//final date = DateFormat.yMd().format(startDate); //final date = DateFormat.yMd().format(startDate);
//final time = DateFormat.Hm().format(startDate); //final time = DateFormat.Hm().format(startDate);
final endDate = final endDate =
DateTime.parse(event.endDate ?? DateTime.now().toString()); DateTime.parse(events?.endDate ?? DateTime.now().toString());
String separator = AppLocalizations.of(context)?.at ?? "at"; String separator = AppLocalizations.of(context)?.at ?? "at";
final formattedStartDate = final formattedStartDate =
DateFormat("EEEE d MMMM y '${separator}' HH:mm", locale) DateFormat("EEEE d MMMM y '${separator}' HH:mm", locale)
@@ -151,14 +153,16 @@ class _ItemMenuState extends State<ItemMenu> with ShowAlertDialog {
String link = AppLocalizations.of(context)?.to_date ?? "to"; String link = AppLocalizations.of(context)?.to_date ?? "to";
setState(() { setState(() {
eventName = event.name ?? ""; eventName = events?.name ?? "";
eventStartDate = "$formattedStartDate ${link} $formattedEndDate"; eventStartDate = "$formattedStartDate ${link} $formattedEndDate";
organizers = List<String>.from(event.organizers ?? []); organizers = List<String>.from(events?.organizers ?? []);
place = event.place ?? ""; place = events?.place ?? "";
imgUrl = event.imgUrl ?? ""; imgUrl = events?.imgUrl ?? "";
eventDescription = event.description ?? ""; eventLink = events?.link ?? "";
tags = List<String>.from(event.tags ?? []); eventTicket = events?.ticket ?? "";
eventDescription = events?.description ?? "";
tags = List<String>.from(events?.tags ?? []);
}); });
} else { } else {
final messages = { final messages = {
@@ -276,6 +280,34 @@ class _ItemMenuState extends State<ItemMenu> with ShowAlertDialog {
maxLines: 3, maxLines: 3,
overflow: TextOverflow.ellipsis))) 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: [ Row(children: [
Icon(Icons.group), Icon(Icons.group),
Text( Text(