diff --git a/client/src/communication.ts b/client/src/communication.ts index e0ba5c8..4dc7fd1 100644 --- a/client/src/communication.ts +++ b/client/src/communication.ts @@ -56,4 +56,14 @@ export function sendEventToParent(inEvent: string) { date: Date.now() }; sendMessage(message, "parent"); +} + +export function needSeatmapXML(inID: string) { + const message: I.Message = { + message: inID, + from: "child", + event: "child_needSeatmapXML", + date: Date.now() + }; + sendMessage(message, "parent"); } \ No newline at end of file diff --git a/client/src/helloWorld.ts b/client/src/helloWorld.ts deleted file mode 100644 index 37dcda5..0000000 --- a/client/src/helloWorld.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello World 133782222dddddddddaawwwwd"); \ No newline at end of file diff --git a/client/src/inject.ts b/client/src/inject.ts index 3d59c8c..f444494 100644 --- a/client/src/inject.ts +++ b/client/src/inject.ts @@ -2,37 +2,25 @@ var $ = require("jquery"); import 'jquery-ui'; import * as I from "./types"; -// import Utils from './utils'; +import Utils from './utils'; import * as communication from "./communication"; -// import { getEventInfo } from './xml'; -// var parseString = require('xml2js').parseString; -// import axios, { AxiosPromise, AxiosResponse, Method } from 'axios'; -// import axios, { AxiosResponse } from 'axios'; -// import * as xml from "./xml"; -// import { parseStringPromise } from 'xml2js'; -// const xml2js = require('xml2js'); -// const util = require('util'); -// var xml2jsParser = require('xml2js').parseString; export const config: I.Config = { debug: true, branch: "staging", urlSeatmapStaging: "https://staging.tickets.zinomedia.de", urlSeatmapMaster: "https://tickets.zinomedia.de", - urlCSSSeatmapMaster: "https://tickets.zinomedia.de/dist/style.css", - urlCSSSeatmapStaging: "https://staging.tickets.zinomedia.de/dist/style.css", - urlSeatChartsStaging: "https://staging.tickets.zinomedia.de/libs/jQuery-Seat-Charts/jquery.seat-charts.min.js", - urlSeatChartsMaster: "https://tickets.zinomedia.de/libs/jQuery-Seat-Charts/jquery.seat-charts.min.js", - urlCSSSeatChartsStaging: "https://staging.tickets.zinomedia.de/libs/jQuery-Seat-Charts/jquery.seat-charts.css", - urlCSSSeatChartsMaster: "https://tickets.zinomedia.de/libs/jQuery-Seat-Charts/jquery.seat-charts.css" + urlCSSChildMaster: "https://tickets.zinomedia.de/dist/styleChild.css", + urlCSSChildStaging: "https://staging.tickets.zinomedia.de/dist/styleChild.css", + urlCSSParentMaster: "https://tickets.zinomedia.de/dist/styleParent.css", + urlCSSParentStaging: "https://staging.tickets.zinomedia.de/dist/styleParent.css", + urlJSCStaging: "https://staging.tickets.zinomedia.de/libs/jQuery-Seat-Charts/jquery.seat-charts.min.js", + urlJSCMaster: "https://tickets.zinomedia.de/libs/jQuery-Seat-Charts/jquery.seat-charts.min.js", + urlCSSJSCStaging: "https://staging.tickets.zinomedia.de/libs/jQuery-Seat-Charts/jquery.seat-charts.css", + urlCSSJSCMaster: "https://tickets.zinomedia.de/libs/jQuery-Seat-Charts/jquery.seat-charts.css" } let inputsWithValue: I.InputsWithValue; - -// const checkoutParams: string[] = [ -// 'APPTE', 'age_consent_is_checked', 'agency', 'cancelAndRedirectTrxState', 'cogid', 'coids', 'discount=A=IE', 'discount=A=IV', 'discountdesc=A=IE', 'discountdesc=A=IV', 'discountfees=A=IE', 'discountfees=A=IV', 'discountprice=A=IE', 'discountprice=A=IV', 'dpa_selection', 'etpgcode', 'flashDetected', 'gid', 'hbx_discount_prices', 'hbx_discounts', 'hbx_offered_pg', 'hbx_perf_codes', 'hbx_perf_sub_codes', 'hbx_pids', 'hbx_requested_pg', 'hbx_selected_tixx', 'hbx_upsell_flag', 'request_type', 'invalid_seats', 'inventory_filtering_action', 'inventory_month', 'inventory_year', 'isCapEnabled', 'is_availability_switch_from_map', 'is_ticket_exchange_request', 'ism_map_current_state_json_data', 'jcarousel_auto_off_val', 'listing_type', 'mainEventPID', 'map_coupon_code', 'mlbamsp', 'oid', 'ooids', 'orderkey', 'orgid', 'p_orgid', 'package_pids', 'parent_offer_id', 'pay_pal_token', 'pid', 'prevtrxstate', 'recapToken', 'redeem_voucher_data_event_mapping', 'replay_request', 'request_action', 's_mem_tkt_ren_retrieval', 'schedule', 'secure_trxn_enabled', 'selected_seat_indexes', 'selected_upsell_option', 'supplierCode', 'supplier_code', 'target_name_value', 'target_prev_trxstate', 'target_trxstate', 'target_url', 'timeout_seconds', 'trxstate', 'upsell_selected', 'user_context', 'valid_coupon_code_message' -// ]; -// const checkoutParamSerialized = encodeURIComponent(JSON.stringify(checkoutParams)) - +let childHasVenueXML: boolean = false; window.addEventListener('load', function () { const content: string = new XMLSerializer().serializeToString(document); @@ -45,25 +33,15 @@ window.addEventListener('load', function () { if (inputsWithValue["trxstate"] !== "20" || /posturl:"(.+?)"/.test(content) === false) return; - // Utils.inject(config.urlCSSSeatChartsStaging, "css", "body"); - // Utils.inject(config.urlCSSSeatmapStaging, "css", "body"); + Utils.inject(config.urlCSSParentStaging, "css", "body"); communication.listenToMessages(messagesHandler); getAdditionalInputs(content); console.log(inputsWithValue); getImportantNote(); - modifySeatmapButton(); + jQuery(".flash_seat_map_box").remove(); + injectBookingBtn(); createDialog(); - jQuery("#getVenueXML").on("click", () => { - // const message: I.Message = { - // message: inputsWithValue, - // from: "parent", - // event: "sendInputsWithValue", - // date: Date.now() - // }; - // communication.sendMessage(message, "iframeSeatmap") - // communication.sendXML(inputsWithValue["posturl"], "iframeSeatmap", "getEventInfo", "child"); - }); jQuery("#foobarParent").on("click", () => { communication.sendEventToChild("parent_init_venue"); }); @@ -91,6 +69,7 @@ function messagesHandler(e: any) { } case "child_init_needVenueXML": { communication.sendXML(inputsWithValue["posturl"], "iframeSeatmap", "parent_init_sendVenueXML", "parent"); + childHasVenueXML = true; break; } case "child_needSeatmapXML": { @@ -98,17 +77,20 @@ function messagesHandler(e: any) { communication.sendXML(seatmapUrl, "iframeSeatmap", "parent_sendSeatmapXML", "parent"); break; } + case "child_seatmap_ready": { + jQuery("#containerBookingBtn").show(); + break; + } default: break; } } -function generateSeatmapUrl(seatmapId : string): string { +function generateSeatmapUrl(seatmapId: string): string { return `${inputsWithValue["posturlRawDecoded"]}&inclseatmap=Y&seatmap=${seatmapId}`; } - function getVenueLocation(): string { let span: string[] = []; jQuery(".venue span").each(function () { @@ -155,39 +137,42 @@ function createDialog(): void { hide: true, show: true, resizable: false, - title: "Saalplanbuchung", + title: "", width: "99%", height: "auto", + close: () => { + jQuery('html, body').css('overflow', 'auto'); + } }); jQuery("#openSeatmap").on("click", () => { + if (!childHasVenueXML) + communication.sendEventToChild("parent_init_venue"); + + jQuery('html, body').css('overflow', 'hidden'); jQuery("#dialogSeatmap").dialog('open'); }); } -function modifySeatmapButton(): void { - $(".flash_seat_map_box").remove(); - $('#flash_seat_map_box_id').css({ +function injectBookingBtn(): void { + jQuery('#flash_seat_map_box_id').css({ "display": "block", "position": "relative", "width": "100%" }); - $('#get_flash').css('display', 'none'); - $("#flash_seat_map_box_id").append(` -