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
@@ -1,5 +1,5 @@
|
|
1
1
|
%table.table#ticket-type-table
|
2
|
-
-section.ticket_types.
|
2
|
+
-section.ticket_types.each_with_index do |ticket_type, index|
|
3
3
|
%tr
|
4
4
|
%td{:style => 'width: 30px'}
|
5
5
|
-if current_user.can? :manage, @show
|
@@ -21,4 +21,6 @@
|
|
21
21
|
%td.right="#{number_as_cents ticket_type.price}"
|
22
22
|
%td="#{ticket_type.limit_to_s}"
|
23
23
|
%td="#{ticket_type.sold.length} sold"
|
24
|
-
%td="#{ticket_type.comped.length} comp"
|
24
|
+
%td="#{ticket_type.comped.length} comp"
|
25
|
+
|
26
|
+
#newTicketType.modal
|
@@ -2,12 +2,16 @@
|
|
2
2
|
%li.dropdown{:id => "#menu#bulkactions"}
|
3
3
|
=icon_link_to('Work with...', "#menu#bulkactions", 'fa-asterisk', 'dropdown-toggle dropdown btn', '')
|
4
4
|
%ul.sprited-element.dropdown-menu{ :class => [show.state, show.destroyable? ? "destroyable" : "" ] }
|
5
|
+
%li
|
6
|
+
=link_to("Box Office", new_event_show_sales_path(@event,@show,:render => 'boxoffice'))
|
5
7
|
%li
|
6
8
|
=link_to "Door List", new_event_show_sales_path(@event, @show, :render => 'doorlist')
|
7
9
|
%li{:class => "sprited built published"}
|
8
10
|
=link_to("Unpublish", unpublished_event_show_path(@event, @show), {:remote => true, 'data-type' => :json, :method => :post})
|
9
11
|
%li{:class => "sprited built unpublished"}
|
10
12
|
=link_to("Publish", published_event_show_path(@event, @show), {:remote => true, 'data-type' => :json, :method => :post})
|
13
|
+
%li
|
14
|
+
=link_to "View Complete Statement", statement_path(@show.id)
|
11
15
|
- unless show.played?
|
12
16
|
%li{:class => "sprited built destroyable"}
|
13
17
|
=link_to "Delete", "#delete-confirm", {'data-toggle' => 'modal'}
|
@@ -10,13 +10,13 @@
|
|
10
10
|
= render "shared/error_messages", :target => @event
|
11
11
|
= form_for @show, :html => { :class => 'form-horizontal' }, :url => event_shows_path(@event, @show) do |show_form|
|
12
12
|
=render :partial => "shared/show_time_and_calendar", :locals => {:event_type => "events"}
|
13
|
-
|
13
|
+
|
14
14
|
.navbar.clean
|
15
15
|
.navbar-inner
|
16
16
|
.brand.brand-lite Capacity & Prices
|
17
17
|
= show_form.fields_for :chart, @show.chart do |f|
|
18
18
|
= f.fields_for :sections do |builder|
|
19
|
-
= render 'events/section_fields', :f => builder, :new_show => true
|
19
|
+
= render 'events/section_fields', :f => builder, :new_show => true, :hide_capacity => @event.assigned?
|
20
20
|
|
21
21
|
.form-actions
|
22
22
|
= show_form.submit "Save", :class => 'btn btn-primary'
|
@@ -8,20 +8,99 @@
|
|
8
8
|
=render :partial=>'events/menu'
|
9
9
|
.span9
|
10
10
|
= render "shared/error_messages", :target => @event
|
11
|
-
|
12
|
-
.
|
11
|
+
.row-fluid
|
12
|
+
.span4
|
13
13
|
%h3=l @show.datetime_local_to_event, :format => :day_time
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
#
|
14
|
+
.span4
|
15
|
+
.center{:style => "padding-top:20px"}
|
16
|
+
.badge.badge-success.show-state= @show.state
|
17
|
+
.span4
|
18
|
+
.pull-right{:style => "padding-top:12px"}
|
19
|
+
=render :partial => "work_with", :locals => {:show => @show}
|
20
|
+
|
21
|
+
%table.table#ticket-type-table
|
22
|
+
%td{:style => "width: 30px"}
|
23
|
+
-unless @event.assigned?
|
24
|
+
-if current_user.can? :manage, @show
|
25
|
+
-section = @show.chart.sections.first
|
26
|
+
%ul.nav.in-table
|
27
|
+
%li.dropdown{:id => "#menu#{section.id}"}
|
28
|
+
=icon_link_to(' ', "#menu#{section.id}", 'fa-asterisk', 'dropdown-toggle dropdown btn btn-mini', '')
|
29
|
+
%ul.dropdown-menu
|
30
|
+
%li
|
31
|
+
=link_to "Put on sale", "#putOnSale#{section.id}", 'data-toggle' => 'modal'
|
32
|
+
%li
|
33
|
+
=link_to "Take off sale", "#takeOffSale#{section.id}", 'data-toggle' => 'modal'
|
34
|
+
%li
|
35
|
+
=link_to "Add tickets", "#addTickets#{section.id}", 'data-toggle' => 'modal'
|
36
|
+
%td=pluralize(@show.chart.sections.first.ticket_types.length, "ticket type")
|
37
|
+
%td="#{@show.capacity} seats"
|
38
|
+
%td="#{@show.open} open"
|
39
|
+
%td="#{@show.on_sale} on sale"
|
40
|
+
%td="#{@show.off_sale} hold"
|
41
|
+
%td="#{@show.sold} sold"
|
42
|
+
%td="#{@show.comped} comp"
|
43
|
+
|
44
|
+
=render :partial => "#{@show.chart.class.name.underscore.pluralize}/show"
|
45
|
+
|
46
|
+
-section = @show.chart.sections.first
|
47
|
+
|
48
|
+
-if current_user.can? :manage, @show
|
49
|
+
.modal{:id => "addTickets#{section.id}", :style => "width: 650px"}
|
50
|
+
.modal-header
|
51
|
+
.close{'data-dismiss'=>'modal'} x
|
52
|
+
.row-fluid
|
53
|
+
.span10
|
54
|
+
%h3 Add Tickets
|
55
|
+
.modal-body
|
56
|
+
= form_tag show_tickets_path(@show), :class => 'form-inline add-tickets-form' do
|
57
|
+
= hidden_field_tag :section_id, section.id
|
58
|
+
Add
|
59
|
+
= text_field_tag :quantity, "0", :placeholder => '0', :class => 'span1'
|
60
|
+
tickets to this show and put them
|
61
|
+
= select_tag(:on_sale, options_for_select({"on sale" => "true", "off sale" => "false"}), :class=>'input-small')
|
62
|
+
= submit_tag "Go", :class => "btn"
|
63
|
+
.row-fluid
|
64
|
+
.span12
|
65
|
+
%h6 About this show
|
66
|
+
= render :partial => 'shared/show_summary', :locals => { :show => @show }
|
67
|
+
|
68
|
+
|
69
|
+
.modal{:id => "takeOffSale#{section.id}"}
|
70
|
+
.modal-header
|
71
|
+
.close{'data-dismiss'=>'modal'} x
|
72
|
+
.row-fluid
|
73
|
+
.span10
|
74
|
+
%h3 Take Tickets Off Sale
|
75
|
+
.modal-body
|
76
|
+
=form_tag off_sale_sections_path(:id => section.id), :method => :post, :class=>'form-inline' do
|
77
|
+
Quantity:
|
78
|
+
=text_field_tag :quantity, section.summary.available, :class => 'span1'
|
79
|
+
%button.btn{:type=>'submit'}
|
80
|
+
Take off sale
|
81
|
+
.row-fluid
|
82
|
+
.span12
|
83
|
+
%h6 About this show
|
84
|
+
= render :partial => 'shared/show_summary', :locals => { :show => @show }
|
85
|
+
|
86
|
+
|
87
|
+
.modal{:id => "putOnSale#{section.id}"}
|
88
|
+
.modal-header
|
89
|
+
.close{'data-dismiss'=>'modal'} x
|
90
|
+
.row-fluid
|
91
|
+
.span10
|
92
|
+
%h3 Put Tickets On Sale
|
93
|
+
.modal-body
|
94
|
+
=form_tag on_sale_sections_path(:id => section.id), :method => :post, :class=>'form-inline' do
|
95
|
+
Quantity:
|
96
|
+
=text_field_tag :quantity, section.summary.off_sale, :class => 'span1'
|
97
|
+
%button.btn{:type=>'submit'}
|
98
|
+
Put on sale
|
22
99
|
.row-fluid
|
23
|
-
.
|
24
|
-
%
|
25
|
-
|
100
|
+
.span12
|
101
|
+
%h6 About this show
|
102
|
+
= render :partial => 'shared/show_summary', :locals => { :show => @show }
|
26
103
|
|
27
|
-
|
104
|
+
-content_for :custom_js do
|
105
|
+
= javascript_include_tag 'seat-chart'
|
106
|
+
= javascript_include_tag 'show-seat-chart'
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#big-seat-chart-container
|
2
|
+
.no-image#stage
|
3
|
+
#text
|
4
|
+
STAGE
|
5
|
+
|
6
|
+
#chart-parent{:style => "position: relative; overflow: auto;"}
|
7
|
+
#chart.seat-chart-layout
|
8
|
+
-show.chart.by_rows.each do |row_index, row|
|
9
|
+
.seat-row
|
10
|
+
.row-label=row.first.row_label
|
11
|
+
-row.each do |seat|
|
12
|
+
.seat{"data-col-index" => seat.col_index, "data-chart-id" => show.chart.id, "data-seat-id" => seat.id, "data-seat-label" => seat.label, "data-seat-note" => seat.seat_note, "data-seat-qualifier" => seat.qualifier,"data-ticket-type-ids" => ticket_type_pseudo_array_for(seat), :class => storefront_html_class_for(seat)}
|
13
|
+
="A" if seat.aisle?
|
14
|
+
-if seat.seat_note.present?
|
15
|
+
.seat-note
|
16
|
+
%i.icon-file{:class => "artfully-tooltip", :rel => "tooltip", :title=>"#{seat.seat_note}", "data-placement" => "bottom"}
|
17
|
+
.clear
|
18
|
+
|
19
|
+
#chart-note-display{:style => "#{'display:none' if show.chart.public_note.blank?}"}
|
20
|
+
#public-chart-note.bottom-room
|
21
|
+
=show.chart.public_note
|
22
|
+
|
23
|
+
.modal.fade.hide{:id => "seat-modal-#{show.chart.id}"}
|
24
|
+
= form_tag store_order_path(@store_organization.cached_slug), :class => 'add-tickets-to-cart', :id => "add-tickets-to-cart-#{show.chart.id}" do
|
25
|
+
|
26
|
+
= hidden_field_tag :on_error, store_event_path(@store_organization, show.event)
|
27
|
+
= hidden_field_tag :on_success, store_event_path(@store_organization, show.event)
|
28
|
+
= hidden_field_tag :show_id, show.id
|
29
|
+
= hidden_field_tag :quantity, 1
|
30
|
+
= hidden_field_tag :seat_id
|
31
|
+
.modal-header
|
32
|
+
.close{'data-dismiss'=>'modal'} x
|
33
|
+
%h4 Add Ticket
|
34
|
+
.modal-body
|
35
|
+
.row-fluid
|
36
|
+
.span3
|
37
|
+
#seat-label{:style=>"font-size: 24px"}  
|
38
|
+
.span9
|
39
|
+
- show.sections_for(current_member).each do |section|
|
40
|
+
-section.ticket_types_for(current_member).each_with_index do |ticket_type, index|
|
41
|
+
%label.radio{:class => "ticket-type-label", :id => "ticket-type-label-#{ticket_type.id}"}
|
42
|
+
=radio_button_tag("ticket_type_id", ticket_type.id, index==0, {:id => "ticket-type-#{ticket_type.id}"})
|
43
|
+
="#{ticket_type.name} #{number_as_cents ticket_type.price_for_cart(current_cart)}"
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
#seat-note-display
|
48
|
+
#seat-qualifier
|
49
|
+
#seat-note
|
50
|
+
|
51
|
+
.modal-footer
|
52
|
+
=submit_tag "Add to Cart", :class => "btn btn-primary"
|
53
|
+
%button.btn{'data-dismiss'=>'modal'} Cancel
|
54
|
+
|
@@ -6,5 +6,18 @@
|
|
6
6
|
%td
|
7
7
|
=item.product.event.name
|
8
8
|
%br
|
9
|
+
=item.product.ticket_type.name
|
10
|
+
%br
|
9
11
|
=item.product.show
|
12
|
+
- if item.product.seat.present?
|
13
|
+
%br
|
14
|
+
="Row: #{item.product.seat.row_label}"
|
15
|
+
%br
|
16
|
+
="Seat: #{item.product.seat.col_label}"
|
17
|
+
-if item.product.seat.seat_note.present?
|
18
|
+
%br
|
19
|
+
=item.product.seat.seat_note
|
20
|
+
-if item.product.seat.qualifier.present?
|
21
|
+
%br
|
22
|
+
=item.product.seat.qualifier
|
10
23
|
%td.right=number_as_cents item.total_price
|
@@ -1,25 +1,74 @@
|
|
1
1
|
- content_for :title do
|
2
2
|
Get tickets to #{@event.name}
|
3
3
|
.container#multi-show-container
|
4
|
-
#event-header
|
5
|
-
%h1#logo= @event.name
|
6
|
-
%h4= @event.subtitle
|
7
|
-
%h4= @event.producer
|
8
4
|
|
9
5
|
.row
|
10
|
-
.
|
11
|
-
|
6
|
+
.span12
|
7
|
+
#event-header
|
8
|
+
%h1#event-title= @event.name
|
9
|
+
%h4#subtitle= @event.subtitle
|
10
|
+
%h4#event-producer= @event.producer
|
11
|
+
%hr.event-line
|
12
|
+
.row
|
13
|
+
|
14
|
+
.span8
|
15
|
+
|
16
|
+
-if current_cart.tickets.count > 0
|
17
|
+
.alert.alert-success.add-to-cart-success
|
18
|
+
.row-fluid
|
19
|
+
.span8.add-to-cart-message
|
20
|
+
="You have #{pluralize current_cart.tickets.count, "ticket"} in your cart"
|
21
|
+
.span4
|
22
|
+
.pull-right
|
23
|
+
=link_to "Checkout Now", store_order_path(@store_organization), :class => "btn block btn-success btn-large"
|
24
|
+
|
25
|
+
#store-shows-calendar{'data-event-id' => @event.id}
|
26
|
+
#calendar-help
|
27
|
+
.pull-right
|
28
|
+
%span{:style => 'background-color: #33ADDD'}     
|
29
|
+
Tickets available
|
30
|
+
%span{:style => 'background-color: #ADADAD'}     
|
31
|
+
Sold out
|
32
|
+
%div{:style => "clear:both"}
|
33
|
+
|
12
34
|
#loading-container
|
13
35
|
#loading
|
14
36
|
Hang tight! We're searching for your tickets.
|
15
37
|
=image_tag "loading.gif"
|
16
38
|
#error
|
17
39
|
We had a problem finding tickets. Please try again.
|
40
|
+
|
18
41
|
%ul#shows.unstyled
|
19
|
-
|
20
|
-
|
42
|
+
%li{:id => "show_target"}
|
43
|
+
-if @previous_show.present?
|
44
|
+
=render :partial => 'store/shows/show', :locals => {:show => @previous_show, :collapsed => true}
|
21
45
|
|
22
46
|
.span4
|
47
|
+
-if @event.assigned?
|
48
|
+
.side-section
|
49
|
+
= form_tag store_order_path(@store_organization.cached_slug) do
|
50
|
+
=hidden_field_tag :on_error, store_event_path(@store_organization, @event)
|
51
|
+
=hidden_field_tag :on_success, store_event_path(@store_organization, @event)
|
52
|
+
=hidden_field_tag "event_id", @event.id
|
53
|
+
%table.table
|
54
|
+
%tr#discount-input{:style => 'display:none'}
|
55
|
+
%td
|
56
|
+
= text_field_tag 'discount_or_pass_code', params[:discount_or_pass_code], :placeholder => @enter_code_string, :style => "margin-bottom:0px;width: 160px"
|
57
|
+
%td
|
58
|
+
.pull-right
|
59
|
+
= button_tag "Apply", :class => 'btn btn-primary', :disable_with => "Applying..."
|
60
|
+
-if current_cart.has_discount_or_pass?
|
61
|
+
%tr#discount-display
|
62
|
+
%td.details
|
63
|
+
Code
|
64
|
+
%span=current_cart.applied_code
|
65
|
+
#discount-link= link_to "Change", "#", :class => 'btn btn-primary'
|
66
|
+
%td.right.amount
|
67
|
+
=number_as_cents current_cart.discount_amount
|
68
|
+
-else
|
69
|
+
%tr#discount-link
|
70
|
+
%td= link_to enter_code_string, "#"
|
71
|
+
|
23
72
|
#description.side-section
|
24
73
|
%h6 About
|
25
74
|
- if @event.image?
|
@@ -38,6 +87,40 @@
|
|
38
87
|
=render :partial => "venue", :locals => { :event => @event }
|
39
88
|
=render :partial => "contact_info", :locals => {:event => @event}
|
40
89
|
|
41
|
-
|
42
|
-
|
43
|
-
|
90
|
+
- content_for :custom_js do
|
91
|
+
:javascript
|
92
|
+
$(document).ready(function(){
|
93
|
+
var storeShowsCalendar = $('#store-shows-calendar')
|
94
|
+
storeShowsCalendar.fullCalendar({
|
95
|
+
height: 400
|
96
|
+
,events: #{@event.as_storefront_calendar_json.to_json}
|
97
|
+
,eventClick: function(ev, jsEvent, view) {
|
98
|
+
var loadingMessage = $('#loading-container #loading')
|
99
|
+
var errorMessage = $('#loading-container #error')
|
100
|
+
var targetLi = $("#show_target");
|
101
|
+
|
102
|
+
$.ajax({
|
103
|
+
url: "/store/shows/" + ev.uuid,
|
104
|
+
beforeSend: function ( xhr ) {
|
105
|
+
errorMessage.css('display', 'none')
|
106
|
+
loadingMessage.css('visibility', 'visible')
|
107
|
+
|
108
|
+
targetLi.attr('style','opacity:.4')
|
109
|
+
}
|
110
|
+
}).done(function ( data ) {
|
111
|
+
loadingMessage.css('visibility', 'hidden')
|
112
|
+
targetLi.attr('style','opacity:1')
|
113
|
+
targetLi.html(data);
|
114
|
+
targetLi.fadeIn('slow');
|
115
|
+
hookupToggle()
|
116
|
+
hookupSeatModal()
|
117
|
+
normalizeWidth()
|
118
|
+
}).error(function ( data ) {
|
119
|
+
targetLi.hide()
|
120
|
+
loadingMessage.css('visibility', 'hidden')
|
121
|
+
errorMessage.css('display', 'block')
|
122
|
+
errorMessage.css('visibility', 'visible')
|
123
|
+
});
|
124
|
+
}
|
125
|
+
})
|
126
|
+
})
|
@@ -20,4 +20,4 @@
|
|
20
20
|
%br
|
21
21
|
=event.venue.address_as_string
|
22
22
|
%p
|
23
|
-
=link_to "Buy Tickets", store_event_path(@store_organization.cached_slug, event), :id => 'buy-tickets', :class => 'btn btn-primary'
|
23
|
+
=link_to "Buy Tickets", store_event_path(@store_organization.cached_slug, event), :id => 'buy-tickets', :class => 'btn btn-primary'
|
@@ -14,12 +14,46 @@
|
|
14
14
|
=image_tag "loading.gif"
|
15
15
|
#error
|
16
16
|
We had a problem finding tickets. Please try again.
|
17
|
+
-if current_cart.tickets.count > 0
|
18
|
+
.alert.alert-success.add-to-cart-success
|
19
|
+
.row-fluid
|
20
|
+
.span8.add-to-cart-message
|
21
|
+
="You have #{pluralize current_cart.tickets.count, "ticket"} in your cart"
|
22
|
+
.span4
|
23
|
+
.pull-right
|
24
|
+
=link_to "Checkout Now", store_order_path(@store_organization), :class => "btn block btn-success btn-large"
|
25
|
+
|
17
26
|
%ul#shows.unstyled
|
18
27
|
- @shows.each do |show|
|
19
28
|
%li{:id => "show_#{show.id}", 'data-show-uuid' => show.uuid, 'data-date' => "#{show.datetime_local_to_event.strftime('%D')}"}
|
20
|
-
=render :partial => 'store/shows/show', :locals => {:show => show, :collapsed => true}
|
29
|
+
=render :partial => 'store/shows/show', :locals => {:show => show, :collapsed => true}
|
21
30
|
|
22
31
|
.span4
|
32
|
+
-if @event.assigned?
|
33
|
+
.side-section
|
34
|
+
= form_tag store_order_path(@store_organization.cached_slug) do
|
35
|
+
=hidden_field_tag :on_error, store_event_path(@store_organization, @event)
|
36
|
+
=hidden_field_tag :on_success, store_event_path(@store_organization, @event)
|
37
|
+
=hidden_field_tag "event_id", @event.id
|
38
|
+
%table.table
|
39
|
+
%tr#discount-input{:style => 'display:none'}
|
40
|
+
%td
|
41
|
+
= text_field_tag 'discount_or_pass_code', params[:discount_or_pass_code], :placeholder => @enter_code_string, :style => "margin-bottom:0px;width: 160px"
|
42
|
+
%td
|
43
|
+
.pull-right
|
44
|
+
= button_tag "Apply", :class => 'btn btn-primary', :disable_with => "Applying..."
|
45
|
+
-if current_cart.has_discount_or_pass?
|
46
|
+
%tr#discount-display
|
47
|
+
%td.details
|
48
|
+
Code
|
49
|
+
%span=current_cart.applied_code
|
50
|
+
#discount-link= link_to "Change", "#", :class => 'btn btn-primary'
|
51
|
+
%td.right.amount
|
52
|
+
=number_as_cents current_cart.discount_amount
|
53
|
+
-else
|
54
|
+
%tr#discount-link
|
55
|
+
%td= link_to enter_code_string, "#"
|
56
|
+
|
23
57
|
#description.side-section
|
24
58
|
%h6 About
|
25
59
|
- if @event.image?
|
@@ -40,4 +74,4 @@
|
|
40
74
|
|
41
75
|
#poster-modal.modal.hide.fade
|
42
76
|
.modal-body
|
43
|
-
= image_tag @event.image.url
|
77
|
+
= image_tag @event.image.url
|
@@ -5,12 +5,13 @@
|
|
5
5
|
.row
|
6
6
|
.span8
|
7
7
|
|
8
|
-
#event-header
|
9
|
-
%h1#
|
8
|
+
#event-header
|
9
|
+
%h1#event-title= @event.name
|
10
10
|
-if @event.subtitle
|
11
|
-
#subtitle= @event.subtitle
|
12
|
-
%h4= @event.producer
|
11
|
+
%h4#subtitle= @event.subtitle
|
12
|
+
%h4#event-producer= @event.producer
|
13
13
|
%h4= @event.shows.first.show_time
|
14
|
+
%hr.event-line
|
14
15
|
|
15
16
|
#about-event.side-section
|
16
17
|
#description
|