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

    + +
    + + +{{#form_data}} +

    {{group_name}}

    + + {{#fields}} + {{>mdl_input}} + {{/fields}} + +{{/form_data}} + +

    + The event will be sent to {{user.email}}. +

    + + + +
    + +{{> mdl_content_foot}} +{{> mdl_foot}} +{{> html_foot}}