Files
bm/public_html/resources/views/admin/events/seatmap.blade.php
2025-09-24 13:26:28 +02:00

148 lines
4.2 KiB
PHP

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sitzplan</title>
<link href="{{ asset('css/jquery.seat-charts.css') }}" rel="stylesheet" type="text/css" >
<style>
.seatCharts-row{
height: 22px !important;
}
</style>
</head>
<body>
<div id="seat-map"></div>
</body>
<script src="{{ URL::asset('jcrop/js/jquery.min.js') }}"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="{{ URL::asset('js/jquery.seat-charts.min.js') }}"></script>
<script>
<?php
function js_str($s)
{
return '"' . addcslashes($s, "\0..\37\"\\") . '"';
}
function js_array($array)
{
$temp = array_map('js_str', $array);
return '[' . implode(',', $temp) . ']';
}?>
<?php echo 'var x = ', js_array(explode("\n", $seatMap)), ';';?>
var seatName = <?php echo json_encode($seatName); ?>;
x = x.reverse();
x.shift();
// x = x.reverse();
// console.log(x);
var row = [];
for(var i=0; i<x.length; i++){
row.push((x.length-i)+"");
}
var seats = new Array({{$maxX}});
var price = 0;
for (var i = 0; i < seats.length; i++) {
seats[i] = "";
for (var j = 0; j <{{$maxY}}; j++) {
seats[i] = seats[i] + "" + x[i][j];
}
}
var sc = $('#seat-map').seatCharts({
map: seats,
seats: {
a: {
price: {{$event->price_cat_a}},
classes: 'a-cat' //your custom CSS class
},
b: {
price: {{$event->price_cat_b}},
classes: 'b-cat' //your custom CSS class
},
c: {
price: {{$event->price_cat_c}},
classes: 'c-cat' //your custom CSS class
},
z: {
classes: 'bought-cat'
}
},
naming: {
top: false,
left: false,
rows: row,
getLabel : function (character, row, column) {
var tmpName = seatName[row][column];
var tmpSeatName = tmpName.replace(/.*?(\d+)[^\d]*$/,'$1')
return tmpSeatName;
},
},
});
var PRINTER_NAME = "Gestetner";
var HTTP_GET_VARS;
// var PRINTER_NAME = "Deskjet";
var PRINTER_FALLBACK_NAME = "Adobe";
sleep(2500).then(() => {
jsPrintSetup.setPrinter(selectPrinter());
jsPrintSetup.setOption('orientation', jsPrintSetup.kPortraitOrientation);
jsPrintSetup.setOption('marginTop', 0);
jsPrintSetup.setOption('marginBottom', 0);
jsPrintSetup.setOption('marginLeft', 0);
jsPrintSetup.setOption('marginRight', 0);
jsPrintSetup.setOption('headerStrLeft', '');
jsPrintSetup.setOption('headerStrCenter', '');
jsPrintSetup.setOption('headerStrRight', '');
jsPrintSetup.setOption('footerStrLeft', '');
jsPrintSetup.setOption('footerStrCenter', '');
jsPrintSetup.setOption('footerStrRight', '');
jsPrintSetup.setOption('printBGColors', 1);
jsPrintSetup.clearSilentPrint();
jsPrintSetup.setOption('printSilent', 1);
jsPrintSetup.printWindow(window);
window.close();
});
function sleep (time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
function selectPrinter() {
var printers = jsPrintSetup.getPrintersList().split(',');
//console.log(printers);
for (var i = 0; i < printers.length; ++i) {
if (printers[i].toLowerCase().indexOf(PRINTER_NAME.toLowerCase()) != -1) {
return printers[i];
}
}
for (var i = 0; i < printers.length; ++i) {
if (printers[i].toLowerCase().indexOf(PRINTER_FALLBACK_NAME.toLowerCase()) != -1) {
return printers[i];
}
}
if (printers.length > 0) {
return printers[0];
}
return '';
}
</script>
</html>