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.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/loading-white.gif +0 -0
  3. data/app/assets/images/seating_temp/1.jpg +0 -0
  4. data/app/assets/images/seating_temp/10.jpg +0 -0
  5. data/app/assets/images/seating_temp/11.jpg +0 -0
  6. data/app/assets/images/seating_temp/2.jpg +0 -0
  7. data/app/assets/images/seating_temp/3.jpg +0 -0
  8. data/app/assets/images/seating_temp/4.jpg +0 -0
  9. data/app/assets/images/seating_temp/5.jpg +0 -0
  10. data/app/assets/images/seating_temp/6.jpg +0 -0
  11. data/app/assets/images/seating_temp/7.jpg +0 -0
  12. data/app/assets/images/seating_temp/8.jpg +0 -0
  13. data/app/assets/images/seating_temp/9.jpg +0 -0
  14. data/app/assets/images/seating_temp/icon_43405.png +0 -0
  15. data/app/assets/images/seating_temp/icon_43405.svg +3 -0
  16. data/app/assets/images/seating_temp/icon_43405_plus.png +0 -0
  17. data/app/assets/images/seating_temp/license.txt +8 -0
  18. data/app/assets/javascripts/application.js +1 -0
  19. data/app/assets/javascripts/custom/cookies.js +27 -0
  20. data/app/assets/javascripts/custom/inline-people-search.js +4 -0
  21. data/app/assets/javascripts/custom/job-monitor.js +0 -1
  22. data/app/assets/javascripts/exchange-seat-chart.js +5 -0
  23. data/app/assets/javascripts/seat-chart.js +606 -0
  24. data/app/assets/javascripts/show-seat-chart.js +17 -0
  25. data/app/assets/javascripts/store/store-seat-chart.js +76 -0
  26. data/app/assets/javascripts/store/store.js +14 -39
  27. data/app/assets/stylesheets/application.sass +49 -1
  28. data/app/assets/stylesheets/bootstrap-overrides.css +11 -3
  29. data/app/assets/stylesheets/sass/seat-chart.sass +311 -0
  30. data/app/assets/stylesheets/sass/store.sass +73 -19
  31. data/app/assets/stylesheets/storefront.css +2 -0
  32. data/app/concerns/pdf_generation.rb +1 -15
  33. data/app/controllers/advanced_searches_controller.rb +1 -3
  34. data/app/controllers/charts_controller.rb +14 -12
  35. data/app/controllers/console_sales_controller.rb +55 -0
  36. data/app/controllers/event_calendars_controller.rb +15 -0
  37. data/app/controllers/events_controller.rb +16 -5
  38. data/app/controllers/exchanges_controller.rb +32 -9
  39. data/app/controllers/export_controller.rb +8 -0
  40. data/app/controllers/members/sessions_controller.rb +0 -2
  41. data/app/controllers/membership_comps_controller.rb +2 -1
  42. data/app/controllers/prices_controller.rb +20 -0
  43. data/app/controllers/shows_controller.rb +3 -1
  44. data/app/controllers/store/events_controller.rb +6 -5
  45. data/app/controllers/store/orders_controller.rb +11 -13
  46. data/app/controllers/store/shows_controller.rb +1 -0
  47. data/app/controllers/store/store_controller.rb +11 -0
  48. data/app/controllers/tickets_controller.rb +0 -28
  49. data/app/controllers/user_memberships_controller.rb +7 -2
  50. data/app/controllers/venues_controller.rb +9 -0
  51. data/app/helpers/artfully_ose_helper.rb +18 -4
  52. data/app/helpers/seating_helper.rb +157 -0
  53. data/app/models/assigned_chart.rb +220 -0
  54. data/app/models/cart.rb +6 -1
  55. data/app/models/chart.rb +28 -17
  56. data/app/models/database_views/item_view.rb +76 -5
  57. data/app/models/discount.rb +4 -0
  58. data/app/models/discounts/buy_one_get_one_free_discount_type.rb +1 -1
  59. data/app/models/discounts/dollars_off_tickets_discount_type.rb +5 -1
  60. data/app/models/discounts/percentage_off_tickets_discount_type.rb +8 -4
  61. data/app/models/event.rb +86 -12
  62. data/app/models/general_admission_chart.rb +51 -0
  63. data/app/models/imports/events_import.rb +1 -1
  64. data/app/models/job/show_creator.rb +3 -10
  65. data/app/models/kit.rb +11 -1
  66. data/app/models/kits/assigned_seating_kit.rb +23 -0
  67. data/app/models/member_walkup.rb +1 -1
  68. data/app/models/order_handler.rb +22 -6
  69. data/app/models/organization.rb +4 -5
  70. data/app/models/person.rb +3 -1
  71. data/app/models/sale.rb +1 -1
  72. data/app/models/seat.rb +96 -0
  73. data/app/models/section.rb +1 -3
  74. data/app/models/show.rb +10 -17
  75. data/app/models/ticket.rb +30 -6
  76. data/app/models/ticket/locker.rb +3 -2
  77. data/app/models/ticket_type.rb +12 -6
  78. data/app/models/ticket_types_seat.rb +4 -0
  79. data/app/models/venue.rb +23 -0
  80. data/app/views/advanced_searches/filters/_birthday.html.haml +1 -0
  81. data/app/views/assigned_charts/_show.html.haml +12 -0
  82. data/app/views/console_sales/_aloha.html.haml +5 -4
  83. data/app/views/console_sales/new.html.haml +9 -0
  84. data/app/views/event_calendars/index.html.haml +34 -0
  85. data/app/views/events/_menu.html.haml +2 -1
  86. data/app/views/events/_section_fields.html.haml +13 -8
  87. data/app/views/events/new.html.haml +34 -4
  88. data/app/views/events/prices.html.haml +3 -4
  89. data/app/views/events/seating.html.haml +131 -0
  90. data/app/views/exchanges/_assigned_chart.html.haml +108 -0
  91. data/app/views/exchanges/_general_admission_chart.html.haml +55 -0
  92. data/app/views/exchanges/new.html.haml +1 -55
  93. data/app/views/general_admission_charts/_show.html.haml +2 -0
  94. data/app/views/layouts/_menu.html.haml +44 -31
  95. data/app/views/layouts/storefront.html.haml +72 -30
  96. data/app/views/membership_comps/new.html.haml +1 -0
  97. data/app/views/order_mailer/confirmation_for.html.haml +5 -3
  98. data/app/views/order_mailer/confirmation_for.text.haml +1 -2
  99. data/app/views/pdfs/order.html.haml +20 -6
  100. data/app/views/seating/_actions_menu.html.haml +10 -0
  101. data/app/views/seating/_chart.html.haml +15 -0
  102. data/app/views/seating/_chart_container.html.haml +2 -0
  103. data/app/views/seating/_chart_note_display.html.haml +7 -0
  104. data/app/views/seating/_hold_seats_modal.html.haml +39 -0
  105. data/app/views/seating/_layer_menu.html.haml +23 -0
  106. data/app/views/seating/_legend.html.haml +52 -0
  107. data/app/views/seating/_modify_seats_modal.html.haml +29 -0
  108. data/app/views/seating/_ticket_type_modals.html.haml +41 -0
  109. data/app/views/shows/_seat_chart.html.haml +122 -0
  110. data/app/views/shows/_sections_table.html.haml +3 -24
  111. data/app/views/shows/_ticket_table.html.haml +4 -2
  112. data/app/views/shows/_work_with.html.haml +4 -0
  113. data/app/views/shows/new.html.haml +2 -2
  114. data/app/views/shows/show.html.haml +93 -14
  115. data/app/views/store/assigned_charts/_show.html.haml +54 -0
  116. data/app/views/store/checkouts/shopping_cart_display/_tickets.haml +13 -0
  117. data/app/views/store/donations/index.html.haml +1 -1
  118. data/app/views/store/events/calendar.html.haml +94 -11
  119. data/app/views/store/events/index.html.haml +1 -1
  120. data/app/views/store/events/show.html.haml +36 -2
  121. data/app/views/store/events/single_show.html.haml +5 -4
  122. data/app/views/store/general_admission_charts/_show.html.haml +41 -0
  123. data/app/views/store/orders/show.html.haml +17 -4
  124. data/app/views/store/shared/_donate_form.html.haml +2 -1
  125. data/app/views/store/shared/_small_donate_form.html.haml +1 -1
  126. data/app/views/store/shows/_show.html.haml +1 -39
  127. data/app/views/ticket_types/edit.html.haml +1 -1
  128. data/app/views/user_memberships/_list.html.haml +1 -1
  129. data/app/views/venues/edit.html.haml +1 -1
  130. data/app/views/venues/show.html.haml +11 -0
  131. data/config/routes.rb +27 -10
  132. data/db/migrate/20140828174357_add_type_to_chart.rb +7 -0
  133. data/db/migrate/20140828195617_create_seats.rb +16 -0
  134. data/db/migrate/20140829135426_add_venue_to_chart.rb +5 -0
  135. data/db/migrate/20140829143520_add_assigned_to_event.rb +5 -0
  136. data/db/migrate/20140904164927_add_fields_to_seat.rb +14 -0
  137. data/db/migrate/20140912170010_add_note_to_seat.rb +6 -0
  138. data/db/migrate/20140919152307_add_seats_to_ticket.rb +5 -0
  139. data/db/migrate/20140930224543_add_public_note_to_chart.rb +5 -0
  140. data/db/migrate/20141001140737_add_seat_id_index_to_tickets.rb +5 -0
  141. data/db/migrate/20141001193242_associate_hold_with_person.rb +6 -0
  142. data/db/migrate/20141021175311_create_ticket_types_seats.rb +11 -0
  143. data/db/migrate/20150106161744_migrate_charts_back_to_venues.rb +18 -0
  144. data/db/migrate/20151105085424_add_creator_to_items_view.rb +40 -0
  145. data/lib/artfully_ose/version.rb +1 -1
  146. data/spec/factories/assigned_chart_factories.rb +18 -0
  147. data/spec/factories/chart_factories.rb +4 -8
  148. data/spec/factories/kit_factories.rb +4 -0
  149. data/spec/factories/seat_factories.rb +4 -0
  150. data/spec/factories/show_factories.rb +1 -1
  151. metadata +66 -5
  152. data/app/models/ticket/foundry.rb +0 -48
  153. data/app/models/ticket/template.rb +0 -40
  154. 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.each do |ticket_type|
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
- #show-headline.row-fluid
12
- .span6
11
+ .row-fluid
12
+ .span4
13
13
  %h3=l @show.datetime_local_to_event, :format => :day_time
14
- .row-fluid
15
- .span5
16
- =render :partial => "work_with", :locals => {:show => @show}
17
- .span6
18
- =icon_link_to("Box Office", new_event_show_sales_path(@event,@show,:render => 'boxoffice'), 'fa-shopping-cart', 'btn', '')
19
- .span6
20
- = render :partial => "glance", :locals => { :report => @show.glance, :show => @show }
21
- #sections
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
- .span3
24
- %h4 Ticket Capacity
25
- = render :partial => 'sections_table', :locals => { :show => @show, :tickets => @show.tickets }
100
+ .span12
101
+ %h6 About this show
102
+ = render :partial => 'shared/show_summary', :locals => { :show => @show }
26
103
 
27
- #newTicketType.modal
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"} &nbsp
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
@@ -20,4 +20,4 @@
20
20
  = donation_kit.donation_ask_text.html_safe
21
21
  %hr
22
22
  #donate-now
23
- = render 'store/shared/donate_form'
23
+ = render 'store/shared/donate_form'
@@ -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
- .span8
11
- =render 'calendar'
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'} &nbsp&nbsp&nbsp&nbsp
29
+ Tickets available
30
+ %span{:style => 'background-color: #ADADAD'} &nbsp&nbsp&nbsp&nbsp
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
- - @event.upcoming_public_shows.each do |show|
20
- %li{:id => "show_#{show.id}", 'data-show-uuid' => show.uuid, :style => "display:none", 'data-date' => "#{show.datetime_local_to_event.strftime('%D')}"}
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
- #poster-modal.modal.hide.fade
42
- .modal-body
43
- = image_tag @event.image.url
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.side-section
9
- %h1#logo= @event.name
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