From 97e2ec427e633803ac6058e38107dab7f85d0a7d Mon Sep 17 00:00:00 2001
From: Markus Birth
Date: Thu, 11 Aug 2016 01:01:22 +0200
Subject: [PATCH] Added train reservations. (Not yet picked up by Google
Inbox.)
---
definitions/train.json | 250 +++++++++++++++++++++++++++++++
index.php | 2 +-
templates/loggedin_html.mustache | 9 ++
templates/mail_train.mustache | 71 +++++++++
templates/train_html.mustache | 35 +++++
5 files changed, 366 insertions(+), 1 deletion(-)
create mode 100644 definitions/train.json
create mode 100644 templates/mail_train.mustache
create mode 100644 templates/train_html.mustache
diff --git a/definitions/train.json b/definitions/train.json
new file mode 100644
index 0000000..72c8578
--- /dev/null
+++ b/definitions/train.json
@@ -0,0 +1,250 @@
+{
+ "groups": {
+ "0": "Ride Information",
+ "4": "Ticket",
+ "5": "Booking Information",
+ "6": "Program Membership",
+ "7": "Booking Agency",
+ "8": "Hotlinks",
+ "9": "Metadata"
+ },
+ "fields": {
+ "bookingAgent_name": {
+ "title": "Name",
+ "type": "text",
+ "required": false,
+ "group": 7,
+ "short": true
+ },
+ "bookingAgent_url": {
+ "title": "URL",
+ "type": "url",
+ "required": false,
+ "group": 7
+ },
+ "bookingTime": {
+ "title": "Booking Date",
+ "type": "datetime",
+ "required": false,
+ "group": 7
+ },
+ "cancelReservationUrl": {
+ "title": "Cancel URL",
+ "type": "url",
+ "required": false,
+ "group": 8
+ },
+ "checkinUrl": {
+ "title": "Check in URL",
+ "type": "url",
+ "required": false,
+ "group": 8
+ },
+ "confirmReservationUrl": {
+ "title": "Confirm URL",
+ "type": "url",
+ "required": false,
+ "group": 8
+ },
+ "modifiedTime": {
+ "title": "Modified Time",
+ "type": "datetime",
+ "required": false,
+ "group": 9
+ },
+ "modifyReservationUrl": {
+ "title": "Confirm URL",
+ "type": "url",
+ "required": false,
+ "group": 8
+ },
+ "programMembership_program": {
+ "title": "Name of Program",
+ "type": "text",
+ "required": false,
+ "group": 6,
+ "short": true
+ },
+ "programMembership_memberNumber": {
+ "title": "Member No.",
+ "type": "text",
+ "required": false,
+ "group": 6,
+ "short": true
+ },
+ "reservationFor_departureTime": {
+ "title": "Departure Time",
+ "type": "datetime",
+ "required": true,
+ "group": 0
+ },
+ "reservationFor_departureStation_name": {
+ "title": "Departure Station Name",
+ "type": "text",
+ "required": true,
+ "group": 0,
+ "short": true
+ },
+ "reservationFor_departurePlatform": {
+ "title": "Departure Platform",
+ "type": "text",
+ "required": false,
+ "group": 0,
+ "short": true
+ },
+ "reservationFor_arrivalTime": {
+ "title": "Arrival Time",
+ "type": "datetime",
+ "required": true,
+ "group": 0
+ },
+ "reservationFor_arrivalStation_name": {
+ "title": "Arrival Station Name",
+ "type": "text",
+ "required": true,
+ "group": 0,
+ "short": true
+ },
+ "reservationFor_arrivalPlatform": {
+ "title": "Arrival Platform",
+ "type": "text",
+ "required": false,
+ "group": 0,
+ "short": true
+ },
+ "reservationFor_trainCode": {
+ "title": "Train identifier",
+ "type": "text",
+ "required": false,
+ "group": 0,
+ "short": true
+ },
+ "reservationFor_trainCompany": {
+ "title": "Train Operator",
+ "type": "text",
+ "required": false,
+ "group": 0,
+ "short": true
+ },
+ "reservationFor_trainName": {
+ "title": "Train name",
+ "type": "text",
+ "required": false,
+ "group": 0,
+ "short": true
+ },
+ "reservationFor_trainNumber": {
+ "title": "Train number",
+ "type": "text",
+ "required": false,
+ "group": 0,
+ "short": true
+ },
+ "reservationNumber": {
+ "title": "Reservation No.",
+ "type": "text",
+ "required": true,
+ "group": 5,
+ "short": true
+ },
+ "reservationStatus": {
+ "title": "Status",
+ "type": "status",
+ "required": true,
+ "group": 5,
+ "short": true
+ },
+ "reservedTicket_additionalTicketText": {
+ "title": "Additional information about ticket",
+ "type": "text",
+ "required": false,
+ "group": 4
+ },
+ "reservedTicket_downloadUrl": {
+ "title": "Ticket Download URL",
+ "type": "url",
+ "required": false,
+ "group": 4
+ },
+ "reservedTicket_price": {
+ "title": "Price",
+ "type": "decimal",
+ "required": false,
+ "group": 5,
+ "short": true
+ },
+ "reservedTicket_priceCurrency": {
+ "title": "Currency",
+ "type": "currency",
+ "required": false,
+ "group": 5,
+ "short": true
+ },
+ "reservedTicket_printUrl": {
+ "title": "Ticket Print URL",
+ "type": "url",
+ "required": false,
+ "group": 4
+ },
+ "reservedTicket_ticketedSeat_seatingType": {
+ "title": "Seat: Type/Class",
+ "type": "text",
+ "required": false,
+ "group": 4,
+ "short": true
+ },
+ "reservedTicket_ticketedSeat_seatRow": {
+ "title": "Seat: Row",
+ "type": "text",
+ "required": false,
+ "group": 4,
+ "short": true
+ },
+ "reservedTicket_ticketedSeat_seatNumber": {
+ "title": "Seat: Number",
+ "type": "text",
+ "required": false,
+ "group": 4,
+ "short": true
+ },
+ "reservedTicket_ticketNumber": {
+ "title": "Ticket ID",
+ "type": "text",
+ "required": false,
+ "group": 4
+ },
+ "reservedTicket_ticketToken": {
+ "title": "Ticket Barcode",
+ "type": "barcode",
+ "required": false,
+ "group": 4
+ },
+ "reservedTicket_underName_name": {
+ "title": "Name on Ticket",
+ "type": "text",
+ "required": false,
+ "group": 4,
+ "default": "USER_NAME"
+ },
+ "underName_name": {
+ "title": "Name on Reservation",
+ "type": "text",
+ "required": false,
+ "group": 5,
+ "default": "USER_NAME"
+ },
+ "underName_email": {
+ "title": "Email address",
+ "type": "email",
+ "required": false,
+ "group": 5,
+ "default": "USER_EMAIL"
+ },
+ "url": {
+ "title": "Booking URL",
+ "type": "url",
+ "required": false,
+ "group": 8
+ }
+ }
+}
diff --git a/index.php b/index.php
index acb450f..5b912ef 100644
--- a/index.php
+++ b/index.php
@@ -97,7 +97,7 @@ if (!$tpl_done && $sm->hasSessionToken()) {
}
break;
default:
- if (in_array($action, array('event', 'flight', 'hotel', 'restaurant', 'rentalcar'))) {
+ if (in_array($action, array('event', 'flight', 'hotel', 'restaurant', 'rentalcar', 'train'))) {
$ho->setTemplate($action . '_html');
$tpl_done = true;
$skey = 'form_' . $action;
diff --git a/templates/loggedin_html.mustache b/templates/loggedin_html.mustache
index 8808f36..6af8219 100644
--- a/templates/loggedin_html.mustache
+++ b/templates/loggedin_html.mustache
@@ -29,6 +29,15 @@
+
+
+ train
+ Train Reservation
+
+ Use this type to declare a reservation for railway travel.
+
+
+
hotel
diff --git a/templates/mail_train.mustache b/templates/mail_train.mustache
new file mode 100644
index 0000000..9274e6e
--- /dev/null
+++ b/templates/mail_train.mustache
@@ -0,0 +1,71 @@
+Return-Path: {{user.email}}
+From: Fake Reservation System <{{user.email}}>
+Subject: [FRS] {{form_type_uc}} Reservation
+Date: {{email_date}}
+X-Mailer: FRS/1.0
+MIME-Version: 1.0
+Content-Type: text/html; charset=utf-8
+
+
+
+
+
YOUR RESERVATION DETAILS
+
+
+ Reservation number:
{{reservationNumber.value}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Price:
{{reservedTicket_price.value}} {{reservedTicket_priceCurrency.value}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/train_html.mustache b/templates/train_html.mustache
new file mode 100644
index 0000000..373905f
--- /dev/null
+++ b/templates/train_html.mustache
@@ -0,0 +1,35 @@
+{{> html_head}}
+{{> mdl_head}}
+{{> mdl_content_head}}
+
+
+
Fake Reservation System > Create Train Reservation
+
+
+train Train Reservation
+
+
+
+{{> mdl_content_foot}}
+{{> mdl_foot}}
+{{> html_foot}}