Giter VIP home page Giter VIP logo

jquery-seat-charts's Introduction

jQuery Seat Charts

jQuery Seat Charts (JSC) is a full-blown seat map library. It will generate an accessible map, legend, handle mouse & keyboard events and finally give you powerful selectors to control your map.

Simple demo map

Example:

Basic setup:

$(document).ready(function() {

	var sc = $('#seat-map').seatCharts({
		map: [
			'aaaaaaaaaaaa',
			'aaaaaaaaaaaa',
			'bbbbbbbbbb__',
			'bbbbbbbbbb__',
			'bbbbbbbbbbbb',
			'cccccccccccc'
		],
		seats: {
			a: {
				price   : 99.99,
				classes : 'front-seat' //your custom CSS class
			}
		
		},
		click: function () {
			if (this.status() == 'available') {
				//do some stuff, i.e. add to the cart
				return 'selected';
			} else if (this.status() == 'selected') {
				//seat has been vacated
				return 'available';
			} else if (this.status() == 'unavailable') {
				//seat has been already booked
				return 'unavailable';
			} else {
				return this.style();
			}
		}
	});

	//Make all available 'c' seats unavailable
	sc.find('c.available').status('unavailable');
	
	/*
	Get seats with ids 2_6, 1_7 (more on ids later on),
	put them in a jQuery set and change some css
	*/
	sc.get(['2_6', '1_7']).node().css({
		color: '#ffcfcf'
	});
	
	console.log('Seat 1_2 costs ' + sc.get('1_2').data().price + ' and is currently ' + sc.status('1_2'));

});

Basics:

Building maps is fairly easy with jQuery Seat Charts, you can literally pass an array of strings which represents succeeding rows. Let's take a look at a theatre example:

//Seat map definition
[
	'aaaaaa__DDDDD',
	'aaaaaa__aaaaa',
	'aaaaaa__aaaaa',
	'bbbbbb__bbbbb',
	'bbbbbb__bbbbb',
	'bbbbbb__bbbbb',
	'ccccccccccccc'
]

Each single character represents a different type of seat and you have a freedom of choosing anyone but underscore _. Underscore is used to indicate that there shouldn't be any seat at a certain place. In our example I chose a seats to be the closest to the screen, D meant for disabled and b and c as just plain seats. I also built a corridor in the middle of our theatre, so people can conviniently reach their seats.

Your chosen characters can carry a hash of data which is a great way to pass crucial seat details such as price or a description that you want to show on hover.

seats: {
	a: {
		price       : 24.55,
		description : 'Fair priced seat!'
	}
}

Once you build your map and define seats, you can start implementing the booking magic.

Booking Magic

JSC combines keyboard and mouse events to offer a unified API. There're three types of events which JSC can produce:

  • click: click or spacebar
  • focus: mouse or arrows
  • blur: mouse or arrows

All three events have their default handlers but you're more than likely to overwrite at least one of them. JSC flexible API let you choose where you want to specify your handlers. You can define global click handlers like in the Basic setup example at the very beginning or you can implement separate handlers for each character:

a: {
	click    : function () {
		//This will only be applied to a seats
	},
	price    : 34.99,
	category : 'VIP Seats'
}

Each event handler is fired in seat context which gives you an easy access (using this variable) to its properties, DOM node and data which you may have specified during the setup:

click: function () {
	if (this.status() == 'available') {
		//seat's available and can be taken!

		//let's retrieve the data, so we can add the seat to our cart
		var price    = this.data().price,
			category = this.data().category;

		//jQuery element access example
		this.node().css({
			'font-size' : '25px'
		});

		//return new seat status
		return 'selected';
	}
	//…
}

Please note: event handler should return new status of a seat depending on what happended. If user clicks on a seat and the seat's available, selected status should be returned. If user clicks on a selected seat, it most likely should become available again. Full status reference:

  • available: seat which can be taken
  • unavailable: seat which cannot be taken
  • selected: seat which has been taken by current user

Since JSC also works with focus/blur events, it features a special status called focused which actually doesn't apply to seat status but rather to the way it's displayed. If you use .status method on a focused seat, you will get its real status. To get an idea of this, please take a look at how events are handled by default:

click   : function() {

	if (this.status() == 'available') {
		return 'selected';
	} else if (this.status() == 'selected') {
		return 'available';
	} else {
		/*
		If we don't want to change the status (i.e. seat's unavailable) we ought to return this.style(). this.style() is a reference to seat's special status which means that it can be focused as well. You shouldn't return this.status() here
		*/
		return this.style();
	}
	
},
focus  : function() {

	if (this.status() == 'available') {
		//if seat's available, it can be focused
		return 'focused';
	} else  {
		//otherwise nothing changes
		return this.style();
	}
},
blur   : function() {
	//The only place where you should return actual seat status
	return this.status();
},

Your site's popular and people fight for your tickets? Don't forget to update your map with new bookings live!

//sc will contain a reference to the map
var sc = $('#sc-container').seatCharts({
	//... 
});

setInterval(function() {
	$.ajax({
		type     : 'get',
		url      : '/bookings/get/100',
		dataType : 'json',
		success  : function(response) {
			//iterate through all bookings for our event 
			$.each(response.bookings, function(index, booking) {
				//find seat by id and set its status to unavailable
				sc.status(booking.seat_id, 'unavailable');
			});
		}
	});
}, 10000); //every 10 seconds

Options

Required params are marked with *

animate

Bool, enables animated status switches.

Please note: animate uses switchClass method of jQuery UI, so if you want to use animate, you need to include jQuery UI in the page.

blur

Blur handler. Fired when seat loses focus due to mouse move or arrow hit. You most likely don't want to overwrite this one.

//default handler
blur   : function() {
	return this.status();
},

click

Click handler. Fired when user clicks on a seat or hits spacebar on a focused seat. You're most likely to overwrite this one based off this example:

click   : function() {

	if (this.status() == 'available') {
		//do some custom stuff
		console.log(this.data());

		return 'selected';
	} else if (this.status() == 'selected') {
		//do some custom stuff

		return 'available';
	} else {
		//i.e. alert that the seat's not available

		return this.style();
	}
	
},

focus

Focus handler. Fired when seat receives focus. You most likely don't want to overwrite this one.

//default handler
focus  : function() {

	if (this.status() == 'available') {
		return 'focused';
	} else  {
		return this.style();
	}
},

legend

JSC is able to create an UL element with a map legend based on your seat types and custom CSS. If you want JSC to generate a legend for you, you will just need to pass some basic information:

node

jQuery reference to a DIV element where legend should be rendered. If it's missing, JSC will create a DIV container itself.

node : $('#my-legend-container')
items

An array of legend item details. Each array element should be a three-element array: [ character, status, description ]

legend : {
	node  : $('#my-legend-container'),
	items : [
		[ v, 'available',   'VIP seats!' ],
		[ e, 'available',   'Economy seats'],
		[ e, 'unavailable', 'Unavailable economy seats' ]
	]
}

map*

An array of strings that represents your map:

[
	'aaa___aaa',
	'aaaa_aaaa',
	'aaaa_aaaa'
]

Underscore is used as a spacer between seats.

Please note: number of columns must be equal in each row.

New: You can now override label and ID per character. This is optional and can be applied to any number of seats:

[
	'a[ID,LABEL]a[ID2,LABEL2]a___a[JUST_ID1]aa',
	'aaaa_aaaa[,JUST_LABEL1]',
	'aaaa_aaaa'
]

ID and/or label should be specified after the letter and enclosed in square brackets. ID should go first, optionally followed by custom label. If you just want to specify label without overriding ID, leave ID empty: a[,Just Label]

ID may contain letters, numbers and underscores. Label can contain the same groups of characters as well as spaces.

naming

You can specify your own column and row labels as well as functions for generating seat ids and labels.

columns

An array of column names, columns.length must equal the actual number of columns:

columns: ['A', 'B', 'C', 'D', 'E']

If you don't define your own columns, succeeding numbers starting from 1 will be used.

getId

Callback which may accept the following parameters: character, row, column, where row and column are names either specified by you using columns and rows arrays or by default JSC settings. This function should return an id based off passed arguments. Default getId function:

getId  : function(character, row, column) {
	return row + '_' + column;
}

Returned id is not only used as an internal identifier but also as a DOM id.

getLabel

Callback which may accept the following parameters: character, row, column, where row and column are names either specified by you using columns and rows arrays or by default JSC settings. This function should return a seat label based off passed arguments. Default getLabel function:

getLabel : function (character, row, column) {
	return column;
}

Labels will be displayed over seats, so if you don't want any labels, just return an empty string.

Sometimes it can be really hard to generate labels you want with getLabel, so now it's possible to specify custom labels per each seat. Please take a look at the map section.

left

Bool, defaults to true. If true, JSC will display an additional column on the left of the map with row names as specified by you using rows array or by default JSC settings

rows

An array of row names, rows length must equal the actual number of rows:

rows: ['I', 'II', 'III', 'IV', 'V']

If you don't define your own rows, succeeding numbers starting from 1 will be used.

top

Bool, defaults to true. If true, JSC will display an additional row on the top of the map with column names as specified by you using columns array or by default JSC settings

seats

A hash of seat options, seat characters should be used as keys. You can pass the following params:

blur

Blur event which should be applied only to seats of a particular character.

classes

Custom CSS classes which should be applied to seats. Either an array or a string, JSC doesn't care:

classes : 'seat-red seat-big'
//equals
classes : ['seat-red', 'seat-big']

click

Custom click handler.

focus

Custom focus handler.

Selectors

JSC offers you two flexible selector methods that are chainable and return set of seats:

.get( ids )

You can pass either one id or an array of ids:

sc.get('2_3'); //get 2_3 seat
sc.get(['2_3', '2_4']); //get 2_3 and 2_4 seats

.find( mixed )

Find method lets you search using character, seat status, combination of both (separated with a dot) or a regexp:

sc.find('a'); //find all a seats
sc.find('unavailable'); //find all unavailable seats
sc.find('a.available'); //find all available a seats
sc.find(/^1_[0-9]+/); //find all seats in the first row

.get and .find chained together:

sc.get(['1_2', '1_3', '1_4']).find('available'); //find available seats within specified seat ids

Both methods return either one seat or a set of seats which share similiar methods:

Set Methods

.status( ids, status )

Update status for a seat set with given ids. ids variable may contain a single id or a an array of ids.

sc.status('2_15', 'unvailable'); //set status for one seat
sc.status(['2_15', '2_10'], 'unvailable'); //set status for two seats

.status( status )

Update status for all seats in the current set.

sc.find('unavailable').status('available'); //make all unvailable seats available

.node( )

Returns a jQuery set of seat node references.

sc.find('unavailable').node().fadeOut('fast'); //make all unavailable seats disappear

.each( callback )

Iterates through a seat set, callback will be fired in the context of each element. Callback may accept seat id as an argument.

sc.find('a.unavailable').each(function(seatId) {
	console.log(this.data()); //display seat data
}); 

You can break the loop returning false.

Seat Methods

.status( [status] )

If status argument is set, it will be used as a new seat status, otherwise current status will be returned.

.node( )

Returns a reference to jQuery element.

.data( )

Returns a reference to seat data.

.char( )

Returns seat character.

Styling

JSC uses a few CSS classes that are pretty self explanatory:

.seatCharts-container

DIV container where seat chart's rendered.

.seatCharts-row

DIV element which serves as a row. You're most likely to edit its height.

.seatCharts-cell

This class is applied to both seats and spacers ( _ ).

.seatCharts-seat

Applied to all seats regardless of character.

.seatCharts-space

Applied to spacers.

.seatCharts-seat.selected

Selected seats.

.seatCharts-seat.focused

Focused seats.

.seatCharts-seat.available

Available seats.

.seatCharts-seat.unavailable

Unavailable seats.

Please note: if you need each of your seat type (indicated by character) look differently, this is the easiest way:

CSS: .seatCharts-seat.selected.vip { background-color: #ff4fff; }

.seatCharts-seat.focused.vip {
	background-color: #ccffcc;
}

//…

.seatCharts-seat.selected.economy {
	background-color: #000fff;
}

//…

JavaScript:

var sc = $.seatCharts({
	seats: {
		v: {
			classes: 'vip',
			price  : 300
		},
		e: {
			classes: 'economy',
			price  : 50
		}
	}
	//…
});

.seatCharts-legendList

UL element which holds the legend.

.seatCharts-legendItem

LI element of the legend.

FAQ

What licence is jQuery Seat Charts released under?

jQuery Seat Charts is released under MIT license.

How is JSC accessible?

JSC implements WAI-ARIA standard meaning that people using solely keyboards will share the same experience as mouse-users. You can easily check it yourself navigating with arrows and hitting spacebar instead of mouse click.

jquery-seat-charts's People

Contributors

jerviscui avatar mateuszmarkowski avatar sergejkaravajnij avatar thegithub avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jquery-seat-charts's Issues

No issue, just saying thanks. =)

Seriously, you saved me a ton of time from having to code this thing out by hand. The text based map was sheer awesomeness.

I know most OSS/Free projects get tons of complaints and few thanks. So...Thanks. This is a great project, and everyone (silent or otherwise) that downloads it appreciates your work.

But if you could put that demo link in your readme, that would be totally awesome. =P

Round seat map

It would be great to add support for creating map in circle format.

More than 16 seats per row

Hi,
firstly thanks for the code. I've tried to setting up the seat-charts with more than 16 seats per a row and the seats from 17 and more are empty (without a number of a seat). The code return 'undefiend'. See the attach.
screen shot 2014-06-24 at 10 10 09

Is there limitations? I passed the code, but I didn't found nothing.

Thanks,
Ales

Difficulty setting up

I'm attempting to test this code but I'm getting no result. Do you have an example of it working?

Click event not being updated when status is changed.

I am defining seat click events at character levels, When I change the status of a seat to another character and then click on that seat, click event of old character is fired and not of the updated on.

Say A is available and B is unavailable, A has ClickA and B has ClickB. For seat id 1, character is A and status is available, After some logic, I update status of seat 1 as unavailable (Using method sc.status(seatid, status)), Now if I click on seat 1, it fires ClickA instead of ClickB.
Any thoughts? Can you guide me to the solution on this?

Need the 'id' also in the white spaces ('_')

Hi, I need to have id also in underscores white spaces ('') because I need to work with that when the map complete renders. Do you know where I need to change @mateuszmarkowski ? I think is in:
$row.append(character != '
' ?
//if the character is not an underscore (empty space)
(function (naming) {

				    //so users don't have to specify empty objects
				    settings.seats[character] = character in settings.seats ? settings.seats[character] : {};

				    var id = overrideId ? overrideId : naming.getId(character, naming.rows[row], naming.columns[column]);
				    seats[id] = new seat({
				        id: id,
				        label: overrideLabel ?
				            overrideLabel : naming.getLabel(character, naming.rows[row], naming.columns[column]),
				        row: row,
				        column: column,
				        character: character
				    });

				    seatIds.push(id);
				    return seats[id].node();

				})(settings.naming) :
				//this is just an empty space (_)
				$('<div></div>').addClass('seatCharts-cell seatCharts-space') ////  Here???
			);

Thanks!

Update method

Is there an update method that will update the current options?

I'm getting the seat plan input from the user as leftCol rightCol and rowNum, so user for example can create aa_aaa with 2 and 3 or a_aa with 1 and 2 and so on.

When user clicks on submit I need to be able to update the plan accordingly.

Question: load different seat charts from different buttons?

In the source of http://jsc.mm-lamp.com/, in line 41 there is this

$(document).ready(function() {

which I changed to

function loadMap(map_array, col_array, row_array) {

so that I can load different maps from different buttons. The first time I call the function it works perfectly, but if I click the second button, it doesn't do anything. I've tried the following without success

function loadMap(map_array, col_array, row_array) {
    $('#seat-map').html("")

Any ideas?

I know this isn't an issue with your code, but I was wondering if you had any idea to implement what I'm trying. Also, sorry for my english

Extension for woocommerce plugin

Hi mateuszmarkowski,
Very impressed by your script...
Are you available to create for me extension for woocommerce shopping cart... with charge of course.
If you can, please let me know the price

How to integrate this Seat Chart

I have developed a movie ticket booking portal... i need to show the theatre seating chart using this plugin. Please help me and guide me on this

How to refresh map after button click

Hi,

I wish to releoad the map ( refresh div ) after button click because I changed some input paramenters like zone.
I see that the first time is ok, but after click the second, I don't see any changes on map like number of seats.
How to?

Seat numbering

I can see the seats have a number increasing from 1 till the number of seats. However airlines dont number the seats like that. The number the columns {window} A, B, C {aisle} D, E, F {window} and so on on bigger planes and then the rows by number. So in you example (http://jsc.mm-lamp.com/) it would be:
1A 1B {aisle} 1C 1D
2A 2B {aisle} 2C 2D
.....
Some airlines number this differently (they skip the "B" and "E" middle seats on 4 per row airplanes):
1A 1C {aisle} 1D 1F
2A 2C {aisle} 2D 3F
3A 3C {aisle} 3D 3F

Is there a way we can achieve this numbering?

Thanks,

moises.

Reloading the map in the same div overlaps with current values

Hi,
Thanks for the great plugin.
We have different booked seats for different time slots. The user can click on each time slot. The data is fetched via ajax from.
The first click shows proper result. However, when we click on the next time slot, the booked seats of previous slots and this slots overlap with each other.
Please suggest what to do.
Thanks

Orientation Map Css

Hi, exist some method to change the orientation of the map? (sorry my english)

Not an issue just wondered

I am trying to make a system that user can create the sitting plan.
For that user enters the dimension. Then I want the user to be able to add/delete vertical or horizontal row. For that I wrote

[code]
$('.horizontal-row-delete-button').click(function(e){
map.shift();
console.log(map);
$('#seat-map').html('');
sc = $('#seat-map').seatCharts({map:map.shift(),seats:seats,naming:naming,legend:legend});
});
[/code]

But this code doesnt reload the sitting plan.
Do you have any idea why

By the way very good job. Thanks a lot

json format

Can someone please show me an example of how the unavailable seats array should be formatted to load via ajax.

Thanks

Seat Naming Issue

I have seats named as characters from A to Z, But also have some seats which are named like: AA, AB, AC and so on.

When I name a seat in two characters like AA or AB, The layout for these seats is broken and an empty seat (with no label or id) is shown after each seat, like shown in this screenshot !

I tried to change the name to A_A or _A_A but it didn't work.

Any idea where is the problem ?

Irregular seat layouts

Hi,

Thank you so much for a wonderful code.

Is it possible to create irregular seat layouts. Our rows and columns are not regular.
Example:
a1,a2,a3
b2,b3,b4

Is it possible to do this with the present code?

Please advise.

Thanks and best wishes,

expose/access position

Hi, thanks for this nice piece of software, super accessible !

is there any way to get the position (row, column) of a cell ?

I did some changes for reading it but maybe it was already there ? Otherwise I could do a pull request with the changes.

Thanks
Michele

Numbering from right to left?

Hello,

Really neat project! I love the simplicity of it all.

How do i change the numbering to go from the right to the left instead of as it is now from the left to right?

Like:
10,9,8,7,6,5,4,3,2,1
20,19,18,17,16,15,14,13,12,11

Instead of:
1,2,3,4,5,6,7,8,9,10
11,12,13,14,15,16,17,18,19,20

I know i can manually set the rows using id and label, but it seems counter intuitive.

does not work in ie9 on windows 7

Anyone else experiencing this? I have tried from 2 different machines.

The chart loads fine, but it does not react to any clicks on the actual seat. It does not simply select the seat.

Any resolutions?

Very odd behaviour when using sc.status();

When applying sc.status(seatArray, 'unavailable') a strange thing occurs, when i hover the unavailable seats the unavailable class are removed. If i apply sc.status(seatArray, 'unavailable') again, this doesn't occur and when i run it 3rd time it occurs again.

I looked in the code for a hover event, but can't find one... I'm kind of confused as to why this happens!

Print current selected IDs

Not so much of a issue but I would like to know if there's a way of having the currently selected sets printed on screen and updated on click, so I can retrieve that sort of like: 2,9,21,5 you know, and of course if I deselect seats the list will be updated...

(?)

Regards

how to send data to google sheet

Hello,
I'm not professional so question could result "stupid", but i would like to understand how to insert this JqSeatChart in a form that send data to google sheets (with name, email, tel.number...).
And when another user connect the form will find the seat unavailable because the previous user had just booked the seat (so receive data from the sheet).
ThankYou for your great work.

Saving selected seats to DB

First of all ... Thanks!

This is a great piece of code and it works really well.

I am however having some trouble saving the selected seats to a MySQL database.
It is not a issue in the traditional order but would appreciate any input or tips.

Thanks

Getting rows to work?

Hi,

Great plugin! Saved a lot of my time :)

I am trying to setup rowNames(A,B,C) for the tickets (when opposed to 1, 2, 3...). I am trying this

$(document).ready(function() {

    var sc = $('#seat-map').seatCharts({
        map: [
            'aaaaaaaaaaaa',
            'aaaaaaaaaaaa',
            'bbbbbbbbbb__',
            'bbbbbbbbbb__',
            'bbbbbbbbbbbb',
            'cccccccccccc'
        ],
        rows: ['A', 'B', 'C', 'D', 'E', 'F'],
        seats: {
            a: {
                price   : 99.99,
                classes : 'front-seat' //your custom CSS class
            }

        },
        click: function () {
            if (this.status() == 'available') {
                //do some stuff, i.e. add to the cart
                return 'selected';
            } else if (this.status() == 'selected') {
                //seat has been vacated
                return 'available';
            } else if (this.status() == 'unavailable') {
                //seat has been already booked
                return 'unavailable';
            } else {
                return this.style();
            }
        }
    });
});

Is there something, I am doing wrong?

Please let me know.

Cheers,
Jeremy

merging the seats

hi. actually it's a suggestion. i'm using JSC to map rooms of a festival. users will select their room on the map. now there are rooms with different size. rooms like to merged 2 of normal rooms, vertically or horizontally.
sorry for my bad English.
I'll be happy to know your opinion.
thank you.

How To Connected To Database ?

hello sir,i am newbie programming.I don't know apllied this code to connected with database system and save to database using php.

you can show me example code for php code for tihs ?

Portrait Layout

Hi.

first of all, I'd like to congratulate you on what you've done, it looks great!

I just have a couple of questions that I am not sure where they can be implemented:

  1. Is there a way to show the seatmap on its side (portrait view)?
  2. Is there a way to show the column names (A, B, C, D, etc.) and hide the seat number?

Regards

I find a Bug?

Who can help me?
I'm a Chinese, so my english perhaps no good..., I'm sorry about that.

The Question:
I have download the lastest release version.
I use the status() method, like this:
sc.status(['2_15', '2_10'], 'available');
and then, when the mouse over the seat <div/>, the seat is break down!
I see the html, status() is called after, the seat classes lost the avaliable class style, so I see the .js source file, I find the bug: on jquery.seat-charts.js line No.123

//if nothing changes, do nothing
if (newStyle == oldStyle) {
return;
}

To begin with, I want to contact the master, bug I don't know how to do, and I'm not in this repository so I can't fix it.

And then, I found the jQuery-Seat-Charts repository code, you fixed the problem already. Can you update the release for others?

@mateuszmarkowski

How do I override the ID and Label per seats?

I've been finding ways past few weeks how to I override the ID and the Label. I ended up concatenating it something like this : s = character of the seat
s + "[" + ID + "," + LabelText + "]"
is there another way to do it?

General Admission

Not a Issue, but a question. What would be the best way to have a general admission type event?

Meaning to zoom out a level, customers aren't picking a specific seat , they are getting the first available ticket to sit anywhere in the theater, and anywhere in the section. Until the section is full.

Multiple Pricing Options Per Seat

Hi there

Enjoying experimenting with this plugin so far, really simple implementation of a much needed UI with so many uses!

I wondered how easy it might be to have multiple options once a seat is selected?

So, for example, you could have an "Adult" in one seat and "Child" in another seat, they would each be priced differently?

Kind regards

Ben

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.