artfully_ose 1.3.0.pre3 → 1.3.0.pre4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/images/loading-white.gif +0 -0
- data/app/assets/images/seating_temp/1.jpg +0 -0
- data/app/assets/images/seating_temp/10.jpg +0 -0
- data/app/assets/images/seating_temp/11.jpg +0 -0
- data/app/assets/images/seating_temp/2.jpg +0 -0
- data/app/assets/images/seating_temp/3.jpg +0 -0
- data/app/assets/images/seating_temp/4.jpg +0 -0
- data/app/assets/images/seating_temp/5.jpg +0 -0
- data/app/assets/images/seating_temp/6.jpg +0 -0
- data/app/assets/images/seating_temp/7.jpg +0 -0
- data/app/assets/images/seating_temp/8.jpg +0 -0
- data/app/assets/images/seating_temp/9.jpg +0 -0
- data/app/assets/images/seating_temp/icon_43405.png +0 -0
- data/app/assets/images/seating_temp/icon_43405.svg +3 -0
- data/app/assets/images/seating_temp/icon_43405_plus.png +0 -0
- data/app/assets/images/seating_temp/license.txt +8 -0
- data/app/assets/javascripts/application.js +1 -0
- data/app/assets/javascripts/custom/cookies.js +27 -0
- data/app/assets/javascripts/custom/inline-people-search.js +4 -0
- data/app/assets/javascripts/custom/job-monitor.js +0 -1
- data/app/assets/javascripts/exchange-seat-chart.js +5 -0
- data/app/assets/javascripts/seat-chart.js +606 -0
- data/app/assets/javascripts/show-seat-chart.js +17 -0
- data/app/assets/javascripts/store/store-seat-chart.js +76 -0
- data/app/assets/javascripts/store/store.js +14 -39
- data/app/assets/stylesheets/application.sass +49 -1
- data/app/assets/stylesheets/bootstrap-overrides.css +11 -3
- data/app/assets/stylesheets/sass/seat-chart.sass +311 -0
- data/app/assets/stylesheets/sass/store.sass +73 -19
- data/app/assets/stylesheets/storefront.css +2 -0
- data/app/concerns/pdf_generation.rb +1 -15
- data/app/controllers/advanced_searches_controller.rb +1 -3
- data/app/controllers/charts_controller.rb +14 -12
- data/app/controllers/console_sales_controller.rb +55 -0
- data/app/controllers/event_calendars_controller.rb +15 -0
- data/app/controllers/events_controller.rb +16 -5
- data/app/controllers/exchanges_controller.rb +32 -9
- data/app/controllers/export_controller.rb +8 -0
- data/app/controllers/members/sessions_controller.rb +0 -2
- data/app/controllers/membership_comps_controller.rb +2 -1
- data/app/controllers/prices_controller.rb +20 -0
- data/app/controllers/shows_controller.rb +3 -1
- data/app/controllers/store/events_controller.rb +6 -5
- data/app/controllers/store/orders_controller.rb +11 -13
- data/app/controllers/store/shows_controller.rb +1 -0
- data/app/controllers/store/store_controller.rb +11 -0
- data/app/controllers/tickets_controller.rb +0 -28
- data/app/controllers/user_memberships_controller.rb +7 -2
- data/app/controllers/venues_controller.rb +9 -0
- data/app/helpers/artfully_ose_helper.rb +18 -4
- data/app/helpers/seating_helper.rb +157 -0
- data/app/models/assigned_chart.rb +220 -0
- data/app/models/cart.rb +6 -1
- data/app/models/chart.rb +28 -17
- data/app/models/database_views/item_view.rb +76 -5
- data/app/models/discount.rb +4 -0
- data/app/models/discounts/buy_one_get_one_free_discount_type.rb +1 -1
- data/app/models/discounts/dollars_off_tickets_discount_type.rb +5 -1
- data/app/models/discounts/percentage_off_tickets_discount_type.rb +8 -4
- data/app/models/event.rb +86 -12
- data/app/models/general_admission_chart.rb +51 -0
- data/app/models/imports/events_import.rb +1 -1
- data/app/models/job/show_creator.rb +3 -10
- data/app/models/kit.rb +11 -1
- data/app/models/kits/assigned_seating_kit.rb +23 -0
- data/app/models/member_walkup.rb +1 -1
- data/app/models/order_handler.rb +22 -6
- data/app/models/organization.rb +4 -5
- data/app/models/person.rb +3 -1
- data/app/models/sale.rb +1 -1
- data/app/models/seat.rb +96 -0
- data/app/models/section.rb +1 -3
- data/app/models/show.rb +10 -17
- data/app/models/ticket.rb +30 -6
- data/app/models/ticket/locker.rb +3 -2
- data/app/models/ticket_type.rb +12 -6
- data/app/models/ticket_types_seat.rb +4 -0
- data/app/models/venue.rb +23 -0
- data/app/views/advanced_searches/filters/_birthday.html.haml +1 -0
- data/app/views/assigned_charts/_show.html.haml +12 -0
- data/app/views/console_sales/_aloha.html.haml +5 -4
- data/app/views/console_sales/new.html.haml +9 -0
- data/app/views/event_calendars/index.html.haml +34 -0
- data/app/views/events/_menu.html.haml +2 -1
- data/app/views/events/_section_fields.html.haml +13 -8
- data/app/views/events/new.html.haml +34 -4
- data/app/views/events/prices.html.haml +3 -4
- data/app/views/events/seating.html.haml +131 -0
- data/app/views/exchanges/_assigned_chart.html.haml +108 -0
- data/app/views/exchanges/_general_admission_chart.html.haml +55 -0
- data/app/views/exchanges/new.html.haml +1 -55
- data/app/views/general_admission_charts/_show.html.haml +2 -0
- data/app/views/layouts/_menu.html.haml +44 -31
- data/app/views/layouts/storefront.html.haml +72 -30
- data/app/views/membership_comps/new.html.haml +1 -0
- data/app/views/order_mailer/confirmation_for.html.haml +5 -3
- data/app/views/order_mailer/confirmation_for.text.haml +1 -2
- data/app/views/pdfs/order.html.haml +20 -6
- data/app/views/seating/_actions_menu.html.haml +10 -0
- data/app/views/seating/_chart.html.haml +15 -0
- data/app/views/seating/_chart_container.html.haml +2 -0
- data/app/views/seating/_chart_note_display.html.haml +7 -0
- data/app/views/seating/_hold_seats_modal.html.haml +39 -0
- data/app/views/seating/_layer_menu.html.haml +23 -0
- data/app/views/seating/_legend.html.haml +52 -0
- data/app/views/seating/_modify_seats_modal.html.haml +29 -0
- data/app/views/seating/_ticket_type_modals.html.haml +41 -0
- data/app/views/shows/_seat_chart.html.haml +122 -0
- data/app/views/shows/_sections_table.html.haml +3 -24
- data/app/views/shows/_ticket_table.html.haml +4 -2
- data/app/views/shows/_work_with.html.haml +4 -0
- data/app/views/shows/new.html.haml +2 -2
- data/app/views/shows/show.html.haml +93 -14
- data/app/views/store/assigned_charts/_show.html.haml +54 -0
- data/app/views/store/checkouts/shopping_cart_display/_tickets.haml +13 -0
- data/app/views/store/donations/index.html.haml +1 -1
- data/app/views/store/events/calendar.html.haml +94 -11
- data/app/views/store/events/index.html.haml +1 -1
- data/app/views/store/events/show.html.haml +36 -2
- data/app/views/store/events/single_show.html.haml +5 -4
- data/app/views/store/general_admission_charts/_show.html.haml +41 -0
- data/app/views/store/orders/show.html.haml +17 -4
- data/app/views/store/shared/_donate_form.html.haml +2 -1
- data/app/views/store/shared/_small_donate_form.html.haml +1 -1
- data/app/views/store/shows/_show.html.haml +1 -39
- data/app/views/ticket_types/edit.html.haml +1 -1
- data/app/views/user_memberships/_list.html.haml +1 -1
- data/app/views/venues/edit.html.haml +1 -1
- data/app/views/venues/show.html.haml +11 -0
- data/config/routes.rb +27 -10
- data/db/migrate/20140828174357_add_type_to_chart.rb +7 -0
- data/db/migrate/20140828195617_create_seats.rb +16 -0
- data/db/migrate/20140829135426_add_venue_to_chart.rb +5 -0
- data/db/migrate/20140829143520_add_assigned_to_event.rb +5 -0
- data/db/migrate/20140904164927_add_fields_to_seat.rb +14 -0
- data/db/migrate/20140912170010_add_note_to_seat.rb +6 -0
- data/db/migrate/20140919152307_add_seats_to_ticket.rb +5 -0
- data/db/migrate/20140930224543_add_public_note_to_chart.rb +5 -0
- data/db/migrate/20141001140737_add_seat_id_index_to_tickets.rb +5 -0
- data/db/migrate/20141001193242_associate_hold_with_person.rb +6 -0
- data/db/migrate/20141021175311_create_ticket_types_seats.rb +11 -0
- data/db/migrate/20150106161744_migrate_charts_back_to_venues.rb +18 -0
- data/db/migrate/20151105085424_add_creator_to_items_view.rb +40 -0
- data/lib/artfully_ose/version.rb +1 -1
- data/spec/factories/assigned_chart_factories.rb +18 -0
- data/spec/factories/chart_factories.rb +4 -8
- data/spec/factories/kit_factories.rb +4 -0
- data/spec/factories/seat_factories.rb +4 -0
- data/spec/factories/show_factories.rb +1 -1
- metadata +66 -5
- data/app/models/ticket/foundry.rb +0 -48
- data/app/models/ticket/template.rb +0 -40
- data/app/views/store/events/_calendar.html.haml +0 -13
data/app/models/ticket/locker.rb
CHANGED
@@ -8,13 +8,14 @@ module Ticket::Locker
|
|
8
8
|
#
|
9
9
|
# TODO: blow up if this ticket_type does not apply to this show
|
10
10
|
#
|
11
|
-
Rails.logger.debug(tickets.inspect)
|
11
|
+
Rails.logger.debug("LOCKER LOCKING TICKETS: #{tickets.inspect}")
|
12
|
+
Rails.logger.debug("LOCKER WITH TICKET TYPE: #{ticket_type.inspect}")
|
12
13
|
Ticket.where(:id => tickets).update_all({ :cart_id => cart.id,
|
13
14
|
:ticket_type_id => ticket_type.id,
|
14
15
|
:cart_price => ticket_type.price
|
15
16
|
})
|
16
17
|
tickets = Ticket.includes(:ticket_type).where(:id => tickets)
|
17
|
-
Rails.logger.debug(tickets.inspect)
|
18
|
+
Rails.logger.debug("LOCKER #{tickets.inspect}")
|
18
19
|
cart << tickets
|
19
20
|
ExpireTicketJob.enqueue(tickets.collect(&:id), cart.id)
|
20
21
|
tickets
|
data/app/models/ticket_type.rb
CHANGED
@@ -4,6 +4,8 @@ class TicketType < ActiveRecord::Base
|
|
4
4
|
belongs_to :section
|
5
5
|
belongs_to :show
|
6
6
|
belongs_to :membership_type
|
7
|
+
has_many :ticket_types_seats
|
8
|
+
has_many :seats, :through => :ticket_types_seats
|
7
9
|
delegate :chart, :to => :section
|
8
10
|
has_many :tickets
|
9
11
|
|
@@ -27,13 +29,17 @@ class TicketType < ActiveRecord::Base
|
|
27
29
|
}
|
28
30
|
end
|
29
31
|
|
32
|
+
def price_for_cart(cart)
|
33
|
+
return cart.discount.calculate_discount_for(self) if cart.discount.present?
|
34
|
+
return 0 if (cart.applied_pass.present? && self.applies_to_pass?(cart.applied_pass))
|
35
|
+
self.price
|
36
|
+
end
|
37
|
+
|
30
38
|
#
|
31
|
-
# Returns Tickets
|
39
|
+
# Returns [ Tickets, "error" ]
|
32
40
|
#
|
33
|
-
def available_tickets(ticket_limit = 4, member = nil)
|
34
|
-
|
35
|
-
:ticket_type_id => nil },
|
36
|
-
[ticket_limit, self.available(member)].min)
|
41
|
+
def available_tickets(ticket_limit = 4, member = nil, seat = nil, cart = nil)
|
42
|
+
self.chart.get_available_tickets(self, ticket_limit, member, seat, cart)
|
37
43
|
end
|
38
44
|
|
39
45
|
#
|
@@ -99,7 +105,7 @@ class TicketType < ActiveRecord::Base
|
|
99
105
|
end
|
100
106
|
|
101
107
|
def dup!
|
102
|
-
TicketType.new(self.attributes.reject { |key, value|
|
108
|
+
TicketType.new(self.attributes.reject { |key, value| ["section_id", "id"].include? key }, :without_protection => true)
|
103
109
|
end
|
104
110
|
|
105
111
|
def channels
|
data/app/models/venue.rb
CHANGED
@@ -3,6 +3,7 @@ require 'geocoder'
|
|
3
3
|
class Venue < ActiveRecord::Base
|
4
4
|
belongs_to :organization
|
5
5
|
has_one :event
|
6
|
+
has_many :charts
|
6
7
|
|
7
8
|
validates_presence_of :name
|
8
9
|
|
@@ -12,6 +13,28 @@ class Venue < ActiveRecord::Base
|
|
12
13
|
|
13
14
|
after_save :run_geocode, :if => :address1_changed?
|
14
15
|
after_save :refresh_show_stats, :if => :time_zone_changed?
|
16
|
+
|
17
|
+
def default_chart
|
18
|
+
self.charts.first
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.most_recently_named(organization, venue_name)
|
22
|
+
organization.venues
|
23
|
+
.where(:name => venue_name)
|
24
|
+
.order('id desc')
|
25
|
+
.first
|
26
|
+
end
|
27
|
+
|
28
|
+
#
|
29
|
+
# MigrateChartsBackToVenues depends on this method
|
30
|
+
#
|
31
|
+
def update_default_chart_from(chart)
|
32
|
+
new_chart = chart.dup!({:save => true})
|
33
|
+
new_chart.event = nil
|
34
|
+
self.default_chart.destroy if default_chart
|
35
|
+
new_chart.venue = self
|
36
|
+
new_chart.save
|
37
|
+
end
|
15
38
|
|
16
39
|
def name_and_address_as_string
|
17
40
|
string = ''
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
%li.filter-birthday
|
4
4
|
= hidden_field_tag 'search[field_type]', 'birthday', id: nil
|
5
|
+
= hidden_field_tag 'search[negation-filter]', 0
|
5
6
|
= remove_search_filter_button
|
6
7
|
= search_filter_text_block 'Have a birthday on'
|
7
8
|
= select_tag 'search[birth_month]', options_for_select(birth_months, selected: search_values['birth_month']), include_blank: false, class: 'short', class: 'advanced-search-select-field', id: nil
|
@@ -0,0 +1,12 @@
|
|
1
|
+
%ul.nav.nav-tabs#show-tabs
|
2
|
+
%li.active
|
3
|
+
%a{:href => "#chart-tab"} Seat Chart
|
4
|
+
%li
|
5
|
+
%a{:href => "#sections-tab"} Ticket Types
|
6
|
+
|
7
|
+
.tab-content{:style=>"position: relative;overflow: auto"}
|
8
|
+
.tab-pane#sections#sections-tab
|
9
|
+
= render :partial => 'sections_table', :locals => { :show => @show, :tickets => @show.tickets }
|
10
|
+
|
11
|
+
.tab-pane.active#chart-tab
|
12
|
+
=render :partial => "seat_chart"
|
@@ -1,16 +1,17 @@
|
|
1
1
|
%h3
|
2
2
|
.row-fluid{:style => "margin-bottom: 10px"}
|
3
3
|
.span4
|
4
|
-
=link_to "Tickets", "#tickets-modal", :class => "btn btn-primary btn-block console-button", 'data-toggle' => 'modal'
|
4
|
+
=link_to "Tickets", "#tickets-modal", :class => "btn btn-primary btn-block console-button", :id => "tickets-button", 'data-toggle' => 'modal'
|
5
5
|
.span4
|
6
|
-
|
6
|
+
-with_kit(:regular_donation) do
|
7
|
+
=link_to "Donation", "#donation-modal", :class => "btn btn-primary btn-block console-button", :id => "donation-button", 'data-toggle' => 'modal'
|
7
8
|
.span4
|
8
9
|
-with_kit(:membership) do
|
9
|
-
=link_to "Memberships", "#memberships-modal", :class => "btn btn-primary btn-block console-button", 'data-toggle' => 'modal'
|
10
|
+
=link_to "Memberships", "#memberships-modal", :class => "btn btn-primary btn-block console-button", :id => "memberships-button", 'data-toggle' => 'modal'
|
10
11
|
-with_kit(:passes) do
|
11
12
|
.row-fluid
|
12
13
|
.span4
|
13
|
-
=link_to "Passes", "#passes-modal", :class => "btn btn-primary btn-block console-button", 'data-toggle' => 'modal'
|
14
|
+
=link_to "Passes", "#passes-modal", :class => "btn btn-primary btn-block console-button", :id => "passes-button", 'data-toggle' => 'modal'
|
14
15
|
|
15
16
|
-unless current_sales_console_cart.empty?
|
16
17
|
%hr
|
@@ -3,6 +3,15 @@
|
|
3
3
|
.row
|
4
4
|
%h2 Sales Console
|
5
5
|
|
6
|
+
-if @other_seats_are_being_held
|
7
|
+
.alert.alert-success.add-holds-to-cart
|
8
|
+
.row-fluid
|
9
|
+
.span9.add-holds-to-cart-message
|
10
|
+
="More tickets for this show are being held for #{@person}. Would you like to add those to the cart?"
|
11
|
+
.span3.add-holds-to-cart-button
|
12
|
+
.pull-right
|
13
|
+
=link_to "Yes, please", new_console_sale_path(:seat_id => @seat.id, :ticket_type_id => @ticket_type.id, :add_all => "true"), :class => "btn block btn-success btn-large"
|
14
|
+
|
6
15
|
.row
|
7
16
|
.span7
|
8
17
|
#builder
|
@@ -0,0 +1,34 @@
|
|
1
|
+
- in_section :events
|
2
|
+
- content_for :header do
|
3
|
+
%h1= t('.heading', :default => "Event Calendar")
|
4
|
+
|
5
|
+
.row
|
6
|
+
.span12
|
7
|
+
#event-calendar
|
8
|
+
|
9
|
+
.row-fluid{:style => "margin-top:20px"}
|
10
|
+
.span12
|
11
|
+
#calendar-help
|
12
|
+
.pull-right
|
13
|
+
%span{:style => 'background-color: #ADADAD'}     
|
14
|
+
Unpublished shows
|
15
|
+
    
|
16
|
+
-Event::EVENT_CALENDAR_COLORS.each do |c|
|
17
|
+
%span{:style => "background-color: #{c}; border:1px solid #{c};"}     
|
18
|
+
Published shows
|
19
|
+
|
20
|
+
-content_for :custom_js do
|
21
|
+
:javascript
|
22
|
+
var showCal = $('#event-calendar')
|
23
|
+
showCal.fullCalendar({
|
24
|
+
height: 500
|
25
|
+
,eventSources: [
|
26
|
+
{
|
27
|
+
url: '/event_calendars.json'
|
28
|
+
}
|
29
|
+
|
30
|
+
]
|
31
|
+
,eventClick: function(ev, jsEvent, view) {
|
32
|
+
window.location = "/events/" + ev.event_id + "/shows/" + ev.id
|
33
|
+
}
|
34
|
+
})
|
@@ -2,7 +2,6 @@
|
|
2
2
|
.accordion-group
|
3
3
|
.accordion-heading
|
4
4
|
= link_to 'Event Overview', event_path(@event), :class => 'accordion-toggle'
|
5
|
-
|
6
5
|
-if current_user.can? :manage, Event
|
7
6
|
.accordion-group
|
8
7
|
.accordion-heading
|
@@ -13,6 +12,8 @@
|
|
13
12
|
= active_link_to 'About', edit_event_path(@event)
|
14
13
|
= active_link_to 'Venue', edit_event_venue_path(@event)
|
15
14
|
= active_link_to 'Prices', prices_event_path(@event)
|
15
|
+
-if @event.assigned?
|
16
|
+
= active_link_to 'Seating', seating_event_path(@event)
|
16
17
|
= active_link_to 'Image', image_event_path(@event)
|
17
18
|
= active_link_to 'Special', messages_event_path(@event)
|
18
19
|
-if current_user.can? :view, Show
|
@@ -1,16 +1,21 @@
|
|
1
|
-
-no_editing
|
2
|
-
-new_show
|
1
|
+
-no_editing = false if no_editing.nil?
|
2
|
+
-new_show = false if new_show.nil?
|
3
|
+
-hide_capacity = false if hide_capacity.nil?
|
3
4
|
|
4
5
|
=f.hidden_field :name
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
|
7
|
+
- if hide_capacity
|
8
|
+
=f.hidden_field :capacity, :value => "0"
|
9
|
+
- else
|
10
|
+
- unless no_editing
|
11
|
+
.control-group
|
12
|
+
=f.label :capacity, :class => 'control-label'
|
13
|
+
.controls
|
14
|
+
=f.text_field :capacity, :class => 'span3', :disabled => no_editing
|
10
15
|
|
11
16
|
%fieldset
|
12
17
|
-unless new_show
|
13
|
-
%legend
|
18
|
+
%legend Prices
|
14
19
|
= f.fields_for :ticket_types do |builder|
|
15
20
|
= render 'events/ticket_type_fields', :f => builder
|
16
21
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
%h1 Add a new event
|
4
4
|
= render "shared/error_messages", :target => @event
|
5
5
|
.row
|
6
|
-
.span8
|
6
|
+
.span8
|
7
7
|
.form-horizontal
|
8
8
|
= form_for( @event, :html => { :class => 'quiz-form' }) do |form|
|
9
9
|
.control-group
|
@@ -14,6 +14,36 @@
|
|
14
14
|
.control-group
|
15
15
|
=venue_form.label :name, "that happens at", :class => 'control-label'
|
16
16
|
.controls
|
17
|
-
= venue_form.text_field :name, :placeholder=>"Venue name"
|
18
|
-
|
19
|
-
|
17
|
+
= venue_form.text_field :name, :placeholder=>"Venue name", :autocomplete => "off", "data-provide" => "typeahead", "data-source" => @venue_names.to_s
|
18
|
+
|
19
|
+
-with_kit :assigned_seating do
|
20
|
+
.control-group
|
21
|
+
=form.label :assigned, "and seating is", :class => 'control-label'
|
22
|
+
.controls
|
23
|
+
= form.select :assigned, options_for_select([["General admission", "false"],["Assigned","true"]])
|
24
|
+
|
25
|
+
.form-actions{:style => "margin-top: 70px"}
|
26
|
+
= form.submit "Create Event", :class => 'btn btn-large'
|
27
|
+
.span4
|
28
|
+
#venue-details
|
29
|
+
|
30
|
+
-content_for :custom_js do
|
31
|
+
:javascript
|
32
|
+
|
33
|
+
var venueTimer;
|
34
|
+
$('#event_venue_attributes_name').keyup(function(){
|
35
|
+
clearTimeout(venueTimer);
|
36
|
+
if ($('#event_venue_attributes_name').val) {
|
37
|
+
venueTimer = setTimeout(showVenue, 500);
|
38
|
+
}
|
39
|
+
});
|
40
|
+
|
41
|
+
function showVenue() {
|
42
|
+
venueName = $('#event_venue_attributes_name').val()
|
43
|
+
$.ajax({
|
44
|
+
url: "/venues/" + venueName,
|
45
|
+
success: function (data) {
|
46
|
+
$("#venue-details").html(data)
|
47
|
+
}
|
48
|
+
});
|
49
|
+
}
|
@@ -8,11 +8,10 @@
|
|
8
8
|
=render :partial=>'menu'
|
9
9
|
.span9
|
10
10
|
= render "shared/error_messages", :target => @event
|
11
|
-
%h3 Ticket Capacity
|
12
11
|
|
13
|
-
= form_for( @event.default_chart, :html => { :class => 'form-horizontal' } ) do |f|
|
12
|
+
= form_for( @event.default_chart, :url => price_path(@event.default_chart), :as => :chart, :html => { :class => 'form-horizontal' } ) do |f|
|
14
13
|
= f.fields_for :sections do |builder|
|
15
|
-
= render 'section_fields', :f => builder
|
14
|
+
= render 'section_fields', :f => builder, :hide_capacity => @event.assigned?
|
16
15
|
|
17
16
|
.form-actions
|
18
17
|
= render :partial => "shared/save_save_and_next", :locals => {:form => f}
|
@@ -29,4 +28,4 @@
|
|
29
28
|
will not
|
30
29
|
change the prices on shows you have already created. To edit pricing for existing shows, select a single show and edit pricing information for that specific show.
|
31
30
|
.modal-footer
|
32
|
-
%button.btn.btn-success{'data-dismiss'=>'modal'} OK
|
31
|
+
%button.btn.btn-success{'data-dismiss'=>'modal'} OK
|
@@ -0,0 +1,131 @@
|
|
1
|
+
- in_section :events
|
2
|
+
- content_for :header do
|
3
|
+
=render :partial=>'events/header'
|
4
|
+
|
5
|
+
.row
|
6
|
+
.span3
|
7
|
+
- in_sub_section :details
|
8
|
+
=render :partial=>'menu'
|
9
|
+
.span9
|
10
|
+
= render "shared/error_messages", :target => @event
|
11
|
+
|
12
|
+
|
13
|
+
%legend
|
14
|
+
=@event.venue.name
|
15
|
+
|
16
|
+
#big-seat-chart-container
|
17
|
+
|
18
|
+
#stage
|
19
|
+
#text
|
20
|
+
STAGE
|
21
|
+
|
22
|
+
#chart-parent
|
23
|
+
%a.btn.control-btn.action-button
|
24
|
+
%a.btn.control-btn.layers-button
|
25
|
+
%a.btn.control-btn.work-with-button
|
26
|
+
.toggable-container.actions-container
|
27
|
+
=render :partial => "seating/actions_menu"
|
28
|
+
.toggable-container.toggable-container.layers-container
|
29
|
+
=render :partial => "seating/layer_menu", :locals => {:ticket_types => @event.default_chart.ticket_types}
|
30
|
+
=render :partial => "seating/chart_container", :locals => {:chart => @event.default_chart}
|
31
|
+
=render :partial => "seating/chart_note_display", :locals => {:chart => @event.default_chart}
|
32
|
+
|
33
|
+
.seat-chart-legend
|
34
|
+
%hr
|
35
|
+
.seat-row.bottom-room
|
36
|
+
#legend
|
37
|
+
.row-fluid
|
38
|
+
.span4
|
39
|
+
.seat.seat-unselectable.seat-legend.seat-mini.available.empty
|
40
|
+
.seat-label Available for purchase
|
41
|
+
.span4
|
42
|
+
.seat-legend.seat-mini.hold
|
43
|
+
.seat-label Unavailable for purchase
|
44
|
+
.span4
|
45
|
+
.seat-legend.seat-mini.killed
|
46
|
+
.seat-label Killed
|
47
|
+
.tip
|
48
|
+
=link_to "View complete legend", "#seatLegendModal", "data-toggle"=>"modal"
|
49
|
+
|
50
|
+
#seatLegendModal.modal
|
51
|
+
.modal-header
|
52
|
+
.close{'data-dismiss'=>'modal'} x
|
53
|
+
%h3 Legend
|
54
|
+
.modal-body
|
55
|
+
=render :partial => "seating/legend"
|
56
|
+
.modal-footer
|
57
|
+
= button_tag "Close", :class => "btn", 'data-dismiss' => 'modal'
|
58
|
+
|
59
|
+
=render :partial => "seating/modify_seats_modal"
|
60
|
+
|
61
|
+
#seatNoteModal.modal
|
62
|
+
%form#seat-note-form{:action => "#"}
|
63
|
+
.modal-header
|
64
|
+
.close{'data-dismiss'=>'modal'} x
|
65
|
+
%h3 Seat Note
|
66
|
+
.modal-body
|
67
|
+
.row-fluid
|
68
|
+
.span4
|
69
|
+
.center
|
70
|
+
#seats-selected{:style => "font-size: 40pt; margin:20px 0px"} 25
|
71
|
+
#seats-selected-text
|
72
|
+
seats selected
|
73
|
+
|
74
|
+
.span8
|
75
|
+
.control-group
|
76
|
+
%label.control-label Note
|
77
|
+
.controls
|
78
|
+
%textarea#seat-note{:rows => 2, :cols => 40}
|
79
|
+
.tip.muted 140 character maximum
|
80
|
+
.control-group
|
81
|
+
.controls
|
82
|
+
This note will be visible to patrons when they select this seat.
|
83
|
+
|
84
|
+
.modal-footer
|
85
|
+
= submit_tag "Save", :class => "btn btn-primary"
|
86
|
+
= button_tag "Cancel", :class => "btn", 'data-dismiss' => 'modal'
|
87
|
+
|
88
|
+
=render :partial => "seating/ticket_type_modals", :locals => { :chart => @event.default_chart }
|
89
|
+
=render :partial => "seating/hold_seats_modal"
|
90
|
+
|
91
|
+
#chartNoteModal.modal
|
92
|
+
=form_for @event.default_chart, :remote => true, :html => {:class => "form-horizontal", :id => "edit-chart-note-form"} do |form|
|
93
|
+
.modal-header
|
94
|
+
.close{'data-dismiss'=>'modal'} x
|
95
|
+
%h3 Edit Chart Note
|
96
|
+
.modal-body
|
97
|
+
.control-group
|
98
|
+
%label.control-label Note
|
99
|
+
.controls
|
100
|
+
=form.text_area :public_note, :rows => 2, :cols => 20
|
101
|
+
.tip.muted 250 character maximum
|
102
|
+
|
103
|
+
.control-group
|
104
|
+
.controls
|
105
|
+
This note will be visible to patrons when they are selecting their seats.
|
106
|
+
|
107
|
+
.modal-footer
|
108
|
+
= submit_tag "Save", :class => "btn btn-primary"
|
109
|
+
= button_tag "Cancel", :class => "btn", 'data-dismiss' => 'modal'
|
110
|
+
|
111
|
+
#rowLimitReached.modal
|
112
|
+
.modal-header
|
113
|
+
.close{'data-dismiss'=>'modal'} x
|
114
|
+
%h3 Row Limit Reached
|
115
|
+
.modal-body
|
116
|
+
Sorry, we can't add any more rows to this seat chart.
|
117
|
+
.modal-footer
|
118
|
+
= button_tag "OK", :class => "btn", 'data-dismiss' => 'modal'
|
119
|
+
|
120
|
+
#colLimitReached.modal
|
121
|
+
.modal-header
|
122
|
+
.close{'data-dismiss'=>'modal'} x
|
123
|
+
%h3 Row Limit Reached
|
124
|
+
.modal-body
|
125
|
+
Sorry, we can't add any more columns to this seat chart.
|
126
|
+
.modal-footer
|
127
|
+
= button_tag "OK", :class => "btn", 'data-dismiss' => 'modal'
|
128
|
+
|
129
|
+
-content_for :custom_js do
|
130
|
+
= javascript_include_tag 'seat-chart'
|
131
|
+
= javascript_include_tag 'custom/inline-people-search'
|