110 lines
3.8 KiB
TypeScript
110 lines
3.8 KiB
TypeScript
import * as Communication from "./communication";
|
|
import * as UI from "./ui";
|
|
import { config } from "./config";
|
|
import Utils from "./utils";
|
|
import * as Parser from './parser';
|
|
import * as I from "../types/types";
|
|
import * as JSC from "./jsc";
|
|
import * as Legend from "./legend";
|
|
import * as Events from "./events";
|
|
import * as Trims from "./trims";
|
|
import * as XMLHelper from "./xmlhelper";
|
|
import * as Panzoom from "./panzoom";
|
|
import * as jBoxHelper from "./jBoxHelper";
|
|
import * as Cart from "./cart";
|
|
import * as CartButtons from "./cartButtons";
|
|
|
|
export function initVenue() {
|
|
UI.controlLoftloader("show");
|
|
Communication.sendEventToParent("child_init_needInputsWithValue");
|
|
}
|
|
|
|
export function initSendVenueXML(inE: any) {
|
|
const data: I.Message = JSON.parse(inE.data);
|
|
config.state.inVenueXML = data.message.map_response;
|
|
const venueXML = config.state.inVenueXML!;
|
|
|
|
// Generate pricescale css classes
|
|
const css = UI.generatePricescaleCSS();
|
|
Utils.inject(css, "cssCustom", "body");
|
|
|
|
// Fill event info
|
|
const eventInfo = Parser.getEventInfo();
|
|
UI.setEventInfo(eventInfo);
|
|
|
|
// Fill select dropdown
|
|
const seatmapListing: I.Seatmap[] = venueXML.seatmap_config[0].seatmap;
|
|
UI.setOptionSelect(seatmapListing, "dropdownSeatmap");
|
|
|
|
// Display first seatmapXML
|
|
// If smap[1] is given by user, display specific seatmap on load
|
|
const id: string = XMLHelper.getFirstSeatmapIDToLoad();
|
|
|
|
jQuery("#dropdownSeatmap").val(id);
|
|
Communication.needSeatmapXML(id);
|
|
|
|
Utils.consoleLog(css);
|
|
Utils.consoleLog(seatmapListing);
|
|
}
|
|
|
|
export function initSendInputsWithValue(inE: any) {
|
|
const data: I.Message = JSON.parse(inE.data);
|
|
config.state.inputsWithValue = data.message;
|
|
UI.changeVenueImage();
|
|
UI.changeSiteTitle();
|
|
Communication.sendEventToParent("child_init_needVenueXML");
|
|
}
|
|
|
|
export function sendSeatmapXML(inE: any) {
|
|
const data: I.Message = JSON.parse(inE.data);
|
|
config.state.seatmapXML = data.message.map_response;
|
|
const map: string[] = JSC.generateMap();
|
|
const rowsNaming: string[] = JSC.getRowsNaming();
|
|
const seats: I.JSCSeats = JSC.getSeats();
|
|
const legend: I.JSCLegend = Legend.generateLegend("#JSCLegendInner");
|
|
|
|
JSC.addSeatmap("#containerSeatmapInner", map, rowsNaming, seats, legend);
|
|
JSC.setBookedSeatsUnavailable();
|
|
JSC.selectSeatsInCart();
|
|
Legend.convertLegendToDropdown("dropdownLegend");
|
|
Events.dropdownLegendOnChange("#dropdownLegend");
|
|
Trims.addTrims();
|
|
XMLHelper.showHideVenueCapacity();
|
|
config.state.panzoom = Panzoom.addPanzoom("#containerSeatmapInner", ".panzoomZoomIn", ".panzoomZoomOut", "#panzoomResetZoom");
|
|
Cart.setImportantNote();
|
|
UI.controlLoftloader("hide");
|
|
jBoxHelper.createSeatTooltips();
|
|
}
|
|
|
|
export function sendCheckoutResponse(inE: any) {
|
|
const data: I.Message = JSON.parse(inE.data);
|
|
config.state.isValidSeatSelection = data.message.isValidSeatSelection;
|
|
|
|
Utils.consoleLog(data.message);
|
|
|
|
if (!config.state.isValidSeatSelection) {
|
|
jBoxHelper.showJBoxNotice(`Auswahl nicht möglich: Einzelplatz freigelassen oder max. Ticketsanzahl überschritten.`);
|
|
CartButtons.showHideBtnCartLoading("hide");
|
|
}
|
|
else {
|
|
Cart.removeCartItems();
|
|
Cart.generateCartItems();
|
|
const url = Cart.generateCheckoutUrl();
|
|
Events.addRedirectCheckout(url);
|
|
UI.fadeInCartModal();
|
|
CartButtons.showHideBtnCartLoading("hide");
|
|
}
|
|
|
|
config.state.cartChanged = false;
|
|
}
|
|
|
|
export function injectResources(): void {
|
|
const branch: I.TypeConfigBranch = config.branch;
|
|
const resources = config.resources[branch];
|
|
|
|
Utils.inject(resources.JSC, "js", "head");
|
|
Utils.inject(resources.CSSJSC, "css", "body");
|
|
Utils.inject(resources.CSSjQueryUI, "css", "body");
|
|
Utils.inject(resources.CSSChild, "css", "body");
|
|
// Utils.inject(resources.CSSjBox, "css", "body");
|
|
} |