artfully_ose 1.2.0.pre.21 → 1.2.0.pre.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +8 -8
  2. data/app/assets/javascripts/change-membership.js +8 -4
  3. data/app/assets/javascripts/custom/show.js +13 -8
  4. data/app/assets/javascripts/locationselector.js +1 -1
  5. data/app/assets/javascripts/store/store.js +7 -0
  6. data/app/assets/stylesheets/application.sass +21 -1
  7. data/app/assets/stylesheets/sass/_tags.sass +13 -2
  8. data/app/controllers/discounts_controller.rb +8 -1
  9. data/app/controllers/events_controller.rb +29 -13
  10. data/app/controllers/events_pass_types_controller.rb +75 -0
  11. data/app/controllers/imports_controller.rb +10 -3
  12. data/app/controllers/membership_types_controller.rb +1 -0
  13. data/app/controllers/pass_types_controller.rb +42 -0
  14. data/app/controllers/passes_controller.rb +13 -0
  15. data/app/controllers/passes_kits_controller.rb +25 -0
  16. data/app/controllers/passes_reports_controller.rb +5 -0
  17. data/app/controllers/sales_controller.rb +0 -2
  18. data/app/controllers/searches_controller.rb +10 -3
  19. data/app/controllers/sections_controller.rb +1 -1
  20. data/app/controllers/segments_controller.rb +4 -4
  21. data/app/controllers/shows_controller.rb +21 -47
  22. data/app/controllers/store/checkouts_controller.rb +6 -1
  23. data/app/controllers/store/orders_controller.rb +2 -0
  24. data/app/controllers/store/passes_controller.rb +9 -0
  25. data/app/controllers/store/store_controller.rb +7 -2
  26. data/app/helpers/link_helper.rb +10 -0
  27. data/app/mailers/reports_mailer.rb +5 -4
  28. data/app/models/cart.rb +21 -16
  29. data/app/models/checkout.rb +6 -1
  30. data/app/models/daily_membership_report.rb +1 -1
  31. data/app/models/daily_pass_report.rb +48 -0
  32. data/app/models/database_views/item_view.rb +69 -19
  33. data/app/models/event.rb +5 -0
  34. data/app/models/events_pass_type.rb +16 -0
  35. data/app/models/ext/integrations.rb +1 -1
  36. data/app/models/ext/preprocessor.rb +1 -0
  37. data/app/models/import.rb +18 -15
  38. data/app/models/imports/donations_import.rb +1 -1
  39. data/app/models/imports/events_import.rb +33 -28
  40. data/app/models/item.rb +13 -3
  41. data/app/models/job/daily_email_report_job.rb +8 -2
  42. data/app/models/job/order_processor.rb +10 -1
  43. data/app/models/job/show_creator.rb +2 -1
  44. data/app/models/kit.rb +1 -1
  45. data/app/models/kits/passes_kit.rb +62 -0
  46. data/app/models/membership.rb +19 -6
  47. data/app/models/membership_change.rb +18 -7
  48. data/app/models/membership_comp.rb +1 -0
  49. data/app/models/membership_type.rb +1 -1
  50. data/app/models/order.rb +18 -9
  51. data/app/models/order_handler.rb +22 -0
  52. data/app/models/organization.rb +7 -0
  53. data/app/models/pass.rb +45 -0
  54. data/app/models/pass_type.rb +19 -0
  55. data/app/models/person.rb +4 -0
  56. data/app/models/search.rb +170 -63
  57. data/app/models/section.rb +2 -0
  58. data/app/models/show.rb +26 -2
  59. data/app/models/show_touch.rb +12 -0
  60. data/app/models/ticket.rb +6 -0
  61. data/app/models/ticket/pricing.rb +1 -0
  62. data/app/models/ticket/reports.rb +16 -0
  63. data/app/models/ticket/sale_transitions.rb +4 -0
  64. data/app/models/ticket/transfers.rb +4 -1
  65. data/app/presenters/event_presenter.rb +1 -1
  66. data/app/views/discounts/_form.html.haml +1 -1
  67. data/app/views/events/_menu.html.haml +4 -13
  68. data/app/views/events/_share_and_sell.haml +2 -1
  69. data/app/views/events_pass_types/_form.html.haml +25 -0
  70. data/app/views/events_pass_types/edit.html.haml +22 -0
  71. data/app/views/events_pass_types/index.html.haml +43 -0
  72. data/app/views/events_pass_types/new.html.haml +22 -0
  73. data/app/views/imports/index.html.haml +2 -2
  74. data/app/views/layouts/_menu.html.haml +2 -1
  75. data/app/views/layouts/storefront.html.haml +3 -1
  76. data/app/views/membership_cancellations/_form.html.haml +1 -1
  77. data/app/views/membership_cancellations/_processing.html.haml +1 -3
  78. data/app/views/membership_types/index.html.haml +1 -1
  79. data/app/views/memberships/index.html.haml +16 -25
  80. data/app/views/orders/_item_table.haml +2 -2
  81. data/app/views/pass_types/_form.html.haml +70 -0
  82. data/app/views/pass_types/_pass_type_fees.html.haml +48 -0
  83. data/app/views/pass_types/edit.html.haml +4 -0
  84. data/app/views/pass_types/index.html.haml +32 -0
  85. data/app/views/pass_types/new.html.haml +4 -0
  86. data/app/views/passes/index.html.haml +40 -0
  87. data/app/views/passes_kits/edit.html.haml +30 -0
  88. data/app/views/passes_reports/index.html.haml +2 -0
  89. data/app/views/people/_header.html.haml +6 -1
  90. data/app/views/reports_mailer/daily.html.haml +19 -0
  91. data/app/views/searches/_form.html.haml +17 -1
  92. data/app/views/shared/_show_time_and_calendar.html.haml +21 -0
  93. data/app/views/shared/_tags.html.haml +2 -2
  94. data/app/views/shows/_controls.html.haml +4 -4
  95. data/app/views/shows/_glance.html.haml +0 -4
  96. data/app/views/shows/_sections_table.html.haml +6 -4
  97. data/app/views/shows/_work_with.html.haml +2 -2
  98. data/app/views/shows/index.html.haml +79 -20
  99. data/app/views/shows/new.html.haml +1 -21
  100. data/app/views/statements/_passes_table.html.haml +25 -0
  101. data/app/views/statements/show.html.haml +4 -1
  102. data/app/views/store/checkouts/thanks.html.haml +13 -5
  103. data/app/views/store/orders/show.html.haml +26 -1
  104. data/app/views/store/passes/index.html.haml +33 -0
  105. data/config/locales/en.yml +2 -0
  106. data/config/routes.rb +8 -2
  107. data/db/migrate/20140207135731_update_items_view.rb +38 -0
  108. data/db/migrate/20140210154723_add_cached_stats.rb +5 -0
  109. data/db/migrate/20140218202726_cache_stats.rb +7 -0
  110. data/db/migrate/20140304171625_passes_ahoy.rb +52 -0
  111. data/db/migrate/20140304174807_add_passes_kit.rb +5 -0
  112. data/db/migrate/20140307144454_add_events_pass_types.rb +9 -0
  113. data/db/migrate/20140307193350_add_pass_id_to_cart.rb +7 -0
  114. data/db/migrate/20140314162422_add_total_paid_to_membership.rb +13 -0
  115. data/db/migrate/20140319191237_add_show_dates_to_advanced_search.rb +6 -0
  116. data/db/migrate/20140328172333_add_cols_to_events_pass_types.rb +6 -0
  117. data/db/migrate/20140328174217_add_deleted_at_to_ept.rb +9 -0
  118. data/db/migrate/20140328185432_add_active_to_ept.rb +5 -0
  119. data/db/migrate/20140328192612_add_pass_type_id_to_search.rb +5 -0
  120. data/lib/artfully_ose.rb +3 -3
  121. data/lib/artfully_ose/version.rb +1 -1
  122. data/spec/factories/kit_factories.rb +5 -0
  123. data/spec/factories/membership_factories.rb +1 -0
  124. metadata +45 -6
@@ -11,7 +11,7 @@
11
11
  %th.grouped-checkbox= check_box_tag :all, nil, false, :class => :checkall
12
12
  %th Item
13
13
  %th Price Paid
14
- %th Discount
14
+ %th Discount / Pass
15
15
  %th
16
16
  %tbody
17
17
  - order.all_items.each do |item|
@@ -29,7 +29,7 @@
29
29
  %span=item.product.membership_type.name
30
30
  %td.price= amount_and_nongift item
31
31
  %td
32
- =item.discount.try(:code)
32
+ =item.discount.try(:code) || item.pass.try(:pass_type).try(:name)
33
33
  %td.state
34
34
  -if (item.product_type.eql?('Ticket') && !item.purchased?)
35
35
  = item.state.capitalize
@@ -0,0 +1,70 @@
1
+ =form_for @pass_type, :as => :pass_type, :html => { :class => 'form-horizontal' } do |f|
2
+
3
+ %fieldset
4
+ %legend Basics
5
+ .control-group
6
+ = f.label :name, "Name", :class => 'control-label'
7
+ .controls
8
+ = f.text_field :name, :class => 'input span6'
9
+ .control-group
10
+ = f.label :description, "Description", :class => 'control-label'
11
+ .controls
12
+ = f.text_area :description, :rows => "5", :class => "span6"
13
+
14
+ .control-group
15
+ = f.label :starts_at, "Pass Starts", :class => 'control-label'
16
+ .controls
17
+ = f.text_field :starts_at, :value => "#{(l @pass_type.starts_at, :format => :date_for_input) unless @pass_type.starts_at.nil?}", :class => :datepicker
18
+ .control-group
19
+ = f.label :ends_at, "Pass Ends", :class => 'control-label'
20
+ .controls
21
+ = f.text_field :ends_at, :value => "#{(l @pass_type.ends_at, :format => :date_for_input) unless @pass_type.ends_at.nil?}", :class => :datepicker
22
+
23
+ %fieldset
24
+ %legend Pricing
25
+ .control-group
26
+ = f.label :tickets_allowed, "Number of Tickets", :class => 'control-label'
27
+ .controls
28
+ = f.text_field :tickets_allowed, :class => 'span2'
29
+ .control-group
30
+ = f.label :price, "Price", :class => 'control-label'
31
+ .controls
32
+ = f.text_field :price, :class => 'span2 section-price currency'
33
+
34
+ =render :partial => "pass_types/pass_type_fees", :locals => {:f => f}
35
+
36
+ %fieldset
37
+ %legend Storefront Copy
38
+ .control-group
39
+ = f.label :thanks_copy, :class => 'control-label' do
40
+ Thanks Message
41
+ .tip.muted Thanks message will appear on the confirmation page after the patron completes purchase of the pass.
42
+ .controls
43
+ = f.text_area :thanks_copy, :rows => "5", :class => "span6"
44
+
45
+ %fieldset
46
+ %legend Sales
47
+ .control-group
48
+ = f.label :fee, "Sales Start", :class => 'control-label'
49
+ .controls
50
+ = f.text_field :sales_start_at, :value => "#{(l @pass_type.sales_start_at, :format => :date_for_input) unless @pass_type.sales_start_at.nil?}", :class => :datepicker
51
+ .control-group
52
+ = f.label :fee, "Sales End", :class => 'control-label'
53
+ .controls
54
+ = f.text_field :sales_end_at, :value => "#{(l @pass_type.sales_end_at, :format => :date_for_input) unless @pass_type.sales_end_at.nil?}", :class => :datepicker
55
+
56
+ .control-group
57
+ = f.label :on_sale, :class => 'control-label' do
58
+ Show On Storefront
59
+ .tip.muted If checked, this will be available on your
60
+ =link_to "Pass Storefront", store_passes_path(current_user.current_organization.cached_slug), :target => "_blank"
61
+ .controls
62
+ %label
63
+ = f.check_box :on_sale
64
+ .form-actions
65
+ =f.submit "Save", :class => "btn btn-primary"
66
+ =link_to "Cancel", pass_types_path, :class => "btn"
67
+
68
+ -content_for :custom_js do
69
+ :javascript
70
+ $(document).ready(function() { touchCurrency(); })
@@ -0,0 +1,48 @@
1
+ .control-group
2
+ =f.label :hide_fee, "Who pays the fee?", :class => 'control-label'
3
+ .controls
4
+ = f.select :hide_fee, options_for_select([["Producer", true], ["Patron", false]], @pass_type.hide_fee), {}, :class => 'span2'
5
+ %br
6
+ =link_to "Learn more", "#pricing-example", "data-toggle" => "modal"
7
+
8
+ #pricing-example.modal
9
+ .modal-header
10
+ .close{'data-dismiss'=>'modal'} x
11
+ %h3 Pricing Example
12
+ .modal-body
13
+
14
+ %p You choose who pays the 5% Artful.ly service fee for passes.
15
+ .well
16
+ %p Option #1: You (the producer), pay the fee. With this option, the patron sees a nice, clean price but you net less revenue.
17
+ %p Option #2: The patron pays the fee. Here the fee appears to the patron as a service charge at checkout.
18
+ %p Either way, you pay the 3.5% credit card processing fee. Here's an example:
19
+
20
+ %table.table.table-compact
21
+ %tr
22
+ %th
23
+ %th.right Producer pays
24
+ %th.right Patron pays
25
+ %tr
26
+ %td Membership price
27
+ %td.right $50
28
+ %td.right $50
29
+ %tr
30
+ %td Patron pays
31
+ %td.right
32
+ .tip.muted &nbsp
33
+ $50
34
+ %td.right
35
+ .tip.muted +5% service
36
+ $52.50
37
+ %tr
38
+ %td You receive
39
+ %td.right
40
+ .tip.muted -5% service
41
+ .tip.muted -3.5% processing
42
+ $43.43
43
+ %td.right
44
+ .tip.muted &nbsp
45
+ .tip.muted -3.5% processing
46
+ $48.25
47
+ .modal-footer
48
+ = button_tag "Close", :class => "btn", 'data-dismiss' => 'modal'
@@ -0,0 +1,4 @@
1
+ - content_for :header do
2
+ %h1= "Edit Pass Type"
3
+
4
+ =render :partial => "form"
@@ -0,0 +1,32 @@
1
+ - content_for :header do
2
+ %h1= "Pass Types"
3
+
4
+ .row.bottom-room
5
+ .pull-right
6
+ =icon_link_to("New Pass Type", new_pass_type_path, 'icon-plus', 'btn','')
7
+ =link_to "Download CSV", pass_types_path(:format => "csv"), :class => "btn"
8
+
9
+ %table.table#pass-types-table
10
+ %tr
11
+ %th Name
12
+ %th Starts
13
+ %th Ends
14
+ %th.right Passes Sold
15
+ %th.right # Tickets
16
+ %th.right Price
17
+ %th.right Visibility
18
+ %th.right
19
+ -@pass_types.each do |pass_type|
20
+ %tr
21
+ %td=link_to pass_type.name, edit_pass_type_path(pass_type)
22
+ %td=l pass_type.starts_at, :format => :slashed_date
23
+ %td=l pass_type.ends_at, :format => :slashed_date
24
+ %td.right=pass_type.passes.count
25
+ %td.right=pass_type.tickets_allowed
26
+ %td.right=number_as_cents pass_type.price
27
+ %td.right
28
+ %a{:href => "#", :class => "artfully-tooltip", :rel => "tooltip", "data-original-title" => "This pass is currently #{"not" unless pass_type.on_sale?} visible in your online Storefront.", "data-trigger" => "hover"}
29
+ %span.badge{:class => "#{'badge-success' if pass_type.on_sale?}"}="S"
30
+
31
+ %td.right
32
+ = link_to('Store link', store_pass_path(current_user.current_organization.cached_slug, pass_type))
@@ -0,0 +1,4 @@
1
+ - content_for :header do
2
+ %h1= "New Pass Type"
3
+
4
+ =render :partial => "form"
@@ -0,0 +1,40 @@
1
+ - in_section :people
2
+ - content_for :title do
3
+ #{@person}
4
+
5
+ =render "people/header"
6
+
7
+ .row
8
+ .span12
9
+ .row-fluid
10
+ .span6
11
+ %ul.in-table
12
+ %li.dropdown{:id => "#menu#bulkactions"}
13
+ =icon_link_to('Work with...', "#menu#bulkactions", 'icon-asterisk', 'dropdown-toggle dropdown btn', '')
14
+ .span6.right
15
+ = icon_link_to("View Record", person_path(@person), 'icon-share-alt', 'btn', '')
16
+ = link_to "Resend Pass", "#resend-pass-modal", 'data-toggle' => 'modal', :class => 'btn'
17
+
18
+ %table.table
19
+ %thead
20
+ %tr
21
+ %th Pass Type
22
+ %th.right Purchase Date
23
+ %th.right Tickets Allowed
24
+ %th.right Tickets Purchased
25
+ - @passes.each do |pass|
26
+ %tr
27
+ %td=pass.pass_type.name
28
+ %td.right=l pass.created_at, :format => :slashed_date
29
+ %td.right=pass.tickets_allowed
30
+ %td.right=pass.tickets_purchased
31
+
32
+ #resend-pass-modal.modal
33
+ .modal-header
34
+ .close{'data-dismiss'=>'modal'} x
35
+ %h3 Resend Passes
36
+ .modal-body
37
+ %p="This passholder will receive an email with all of their current passcodes."
38
+ .modal-footer
39
+ =link_to "Resend Passes", reset_password_person_path(@person), :class => "btn btn-primary", 'data-dismiss'=>'modal', :method => :post
40
+ =link_to "Cancel", "#", :class => "btn", 'data-dismiss'=>'modal'
@@ -0,0 +1,30 @@
1
+ - content_for :header do
2
+ %h1 Configure Passes Kit
3
+
4
+ #edit-passes-kit
5
+ =form_for @kit do |f|
6
+ .row-fluid.bottom-room
7
+ .span3
8
+ %strong= f.label :marketing_copy_heading, "Marketing Copy Top", :class => 'control-label'
9
+ .guide
10
+ %p
11
+ This text will appear at the top of your
12
+ =link_to "Passes Storefront", store_passes_path(current_user.current_organization.cached_slug)
13
+ .span9
14
+ = f.text_area :marketing_copy_heading, :class => "input-xxlarge wysihtml5", :rows => "8"
15
+
16
+ .row-fluid.bottom-room
17
+ .span3
18
+ %strong= f.label :marketing_copy_sidebar, "Marketing Copy Sidebar", :class => 'control-label'
19
+ .guide
20
+ %p
21
+ This text will appear on the right sidebar of your
22
+ =link_to "Passes Storefront", store_passes_path(current_user.current_organization.cached_slug)
23
+ .span9
24
+ = f.text_area :marketing_copy_sidebar, :class => "input-xxlarge wysihtml5", :rows => "8"
25
+
26
+ .row-fluid.bottom-room
27
+ .span3
28
+ &nbsp
29
+ .span9
30
+ =f.submit "Save", :class => "btn btn-primary"
@@ -0,0 +1,2 @@
1
+ -content_for :header do
2
+ %h1 Passes
@@ -18,7 +18,10 @@
18
18
 
19
19
  -unless @person.member.nil?
20
20
  %ul.detailed-list.tags
21
- %li.tag.rounder{:style => "background-color: #175c71"}= link_to "Member", person_memberships_path(@person), :style => "color:white"
21
+ %li.tag.rounder.tag-member= link_to "Member", person_memberships_path(@person), :style => "color:white"
22
+ -unless @person.passes.empty?
23
+ %ul.detailed-list.tags
24
+ %li.tag.rounder.tag-passholder= link_to "Passholder", person_passes_path(@person), :style => "color:white"
22
25
 
23
26
  .person-tags
24
27
  = render :partial=>'shared/tags', :locals => { :tags => @person.tag_list, :subject => @person }
@@ -31,6 +34,8 @@
31
34
  %ul.person-links
32
35
  -if @person.email.present?
33
36
  %li= mail_to @person.email, @person.email, :class => 'email'
37
+ -if @person.website.present?
38
+ %li= link_to @person.website, full_url(@person.website), :target => :blank, :class => 'website'
34
39
  -if @person.twitter_handle.present?
35
40
  %li= link_to @person.twitter_handle, full_url(@person.twitter_handle, 'http://twitter.com/'), :class => 'twitter'
36
41
  -if @person.facebook_url.present?
@@ -69,6 +69,25 @@
69
69
  - elsif @tix.organization.has_kit?(:regular_donation)
70
70
  %p There were no donations made.
71
71
 
72
+ -if @tix.organization.can? :access, :passes
73
+ - if !@passes.rows.empty?
74
+ %h3 Passes: #{number_to_currency(@passes.total / 100.0)}
75
+ %table.tabular-data{:cellspacing => "0"}
76
+ %tr
77
+ %th.order Order
78
+ %th.customer Customer
79
+ %th #
80
+ %th Pass
81
+ %th.total Total
82
+ - @passes.rows.each do |row|
83
+ %tr
84
+ %td.order-number= link_to row.id, order_url(id: row.id)
85
+ %td= link_to row.person, person_url(id: row.person_id)
86
+ %td=row.quantity
87
+ %td=row.pass_type
88
+ %td.total= row.total
89
+ - else
90
+ %p There were no passes purchased.
72
91
 
73
92
  - if !@memberships.rows.empty?
74
93
  %h3 Memberships: #{number_to_currency(@memberships.total / 100.0)}
@@ -26,11 +26,16 @@
26
26
  .accordion-group
27
27
  .accordion-heading
28
28
  %a.accordion-toggle{"data-toggle"=>"collapse","data-parent"=>"#accordion2",:href=>"#collapseTwo"}
29
- Events
29
+ Tickets
30
30
  #collapseTwo.accordion-body.collapse
31
31
  .accordion-inner
32
32
  = f.select :has_purchased_for, options_for_select([["Purchased tickets for", true], ["Have not purchased for", false]], selected: search.has_purchased_for)
33
33
  = f.select :event_id, options_for_select(@event_options, selected: search.event_id), include_blank: ""
34
+ %h5 For Shows Between
35
+ .control
36
+ = date_field_tag "search[show_date_start]", search.show_date_start.try(:strftime, "%F")
37
+ %span.range-separator through
38
+ = date_field_tag "search[show_date_end]", search.show_date_end.try(:strftime, "%F")
34
39
 
35
40
  .accordion-group
36
41
  .accordion-heading
@@ -120,6 +125,17 @@
120
125
  / .accordion-inner
121
126
  / = f.select :membership_status, ["2013", "2012", "2010", "2009"], include_blank: ""
122
127
 
128
+ -with_kit(:passes) do
129
+ %h4 Passes
130
+ .accordion#accordion4
131
+ .accordion-group
132
+ .accordion-heading
133
+ %a.accordion-toggle{"data-toggle"=>"collapse","data-parent"=>"#accordion4",:href=>"#collapseEighty"}
134
+ Type
135
+ #collapseEighty.accordion-body.collapse
136
+ .accordion-inner
137
+ = f.select :pass_type_id, options_from_collection_for_select(@pass_types, 'id', 'name', @search.pass_type_id), include_blank: ""
138
+
123
139
  .control
124
140
  = f.submit "Search", :id => "advanced-search-submit", :class => 'btn'
125
141
  = link_to "Simple Search", people_path
@@ -0,0 +1,21 @@
1
+ .control-group
2
+ .navbar.clean
3
+ .navbar-inner
4
+ .brand.brand-lite Show Time
5
+ .controls
6
+ =select_tag :hour, options_for_select(["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], "8"), :id => "show-time-hour", :class => "input-small"
7
+ =":"
8
+ =select_tag :minute, options_for_select(["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59"]), :id => "show-time-minute", :class => "input-small"
9
+ =select_tag :meridian, options_for_select([["AM", "a"], ["PM", "p"]], "p"), :id => "show-time-meridian", :class => "input-small"
10
+ .bottom-room
11
+ .navbar.clean
12
+ .navbar-inner
13
+ .brand.brand-lite Show Dates
14
+ #new-show-calendar{'data-event-id' => @event.id, 'data-event-type' => event_type}
15
+ #calendar-help
16
+ .pull-right
17
+ %span{:style => 'background-color: #adadad'} &nbsp&nbsp&nbsp&nbsp
18
+ Existing shows
19
+ %span{:style => 'background-color: #3a87ad'} &nbsp&nbsp&nbsp&nbsp
20
+ New shows
21
+ %div{:style => "clear:both"}
@@ -1,8 +1,8 @@
1
1
  %ul.detailed-list.tags{:id => "people-#{subject.id}-tags"}
2
2
  - tags.each do |tag|
3
- %li.tag.deletable.rounder= tag
3
+ %li.tag.rounder.deletable= tag
4
4
 
5
- %li.tag.new-tag.rounder= link_to_function '<i class="icon-plus-sign"></i> Add tag'.html_safe, "$(this).parent().hide(); $('.new-tag-form').show(); $('#new-tag-field').focus();"
5
+ %li.tag.new-tag= link_to_function '<i class="icon-plus-sign"></i> Add tag'.html_safe, "$(this).parent().hide(); $('.new-tag-form').show(); $('#new-tag-field').focus();"
6
6
 
7
7
  = form_tag person_new_tag_path(subject), :method => :post, :class => 'new-tag-form form-search', :autocomplete => 'off', :style => 'display:none', :remote=>'true' do
8
8
  = hidden_field_tag :subject_id, subject.id, {:id=>'subject-id-field'}
@@ -1,11 +1,11 @@
1
1
 
2
2
  - if not show.played?
3
- = form_tag unpublished_event_show_path(show.event, show), :remote => true, :'data-type' => :json, :class => "sprited published", :id => "show_#{show.id}" do
3
+ = form_tag unpublished_event_show_path(@event, show), :remote => true, :'data-type' => :json, :class => "sprited published", :id => "show_#{show.id}" do
4
4
  = submit_tag "Unpublish", :class => [ 'btn', 'btn-mini' ]
5
5
  .confirmation.dialog
6
- %p= "You are unpublishing the #{l show.stats.datetime_local_to_event} show."
6
+ %p= "You are unpublishing the #{l show.parsed_local_datetime} show."
7
7
 
8
- = form_tag published_event_show_path(show.event, show), :remote => true, :'data-type' => :json, :class => "sprited built unpublished" do
8
+ = form_tag published_event_show_path(@event, show), :remote => true, :'data-type' => :json, :class => "sprited built unpublished" do
9
9
  = submit_tag "Publish", :class => [ 'btn', 'btn-mini' ]
10
10
  .confirmation.dialog
11
- %p= "You are publishing the #{l show.stats.datetime_local_to_event} show."
11
+ %p= "You are publishing the #{l show.parsed_local_datetime} show."
@@ -15,10 +15,6 @@
15
15
  %td Sold
16
16
  %td= number_as_cents(report.sales_total)
17
17
  %td="#{report.sold_total} tickets"
18
- %tr
19
- %td Available
20
- %td
21
- %td="#{report.available_total} tickets"
22
18
 
23
19
  .pull-right
24
20
  =icon_link_to("View Complete Statement", statement_path(show.id), 'icon-th-list', '', '')
@@ -13,10 +13,12 @@
13
13
  =link_to "Add tickets", "#addTickets#{section.id}", 'data-toggle' => 'modal'
14
14
  %td
15
15
  &nbsp
16
- %td="#{section.summary.total} tickets"
17
- %td="#{section.summary.available} on sale"
18
- %td="#{section.summary.sold} sold"
19
- %td="#{section.summary.comped} comp"
16
+ %td="#{section.show.capacity} tickets"
17
+ %td="#{section.show.open} open"
18
+ %td="#{section.show.on_sale} on sale"
19
+ %td="#{section.show.off_sale} off sale"
20
+ %td="#{section.show.sold} sold"
21
+ %td="#{section.show.comped} comp"
20
22
 
21
23
  #tickets
22
24
  .row-fluid
@@ -1,7 +1,7 @@
1
- %ul.in-table
1
+ %ul.in-table.sprited-container
2
2
  %li.dropdown{:id => "#menu#bulkactions"}
3
3
  =icon_link_to('Work with...', "#menu#bulkactions", 'icon-asterisk', 'dropdown-toggle dropdown btn', '')
4
- %ul.sprited-container.dropdown-menu{ :class => [show.state, show.destroyable? ? "destroyable" : "" ] }
4
+ %ul.sprited-element.dropdown-menu{ :class => [show.state, show.destroyable? ? "destroyable" : "" ] }
5
5
  %li
6
6
  =link_to "Door List", door_list_event_show_path(@event, @show)
7
7
  %li{:class => "sprited built published"}
@@ -10,41 +10,100 @@
10
10
  = render "shared/error_messages", :target => @event
11
11
  .row-fluid
12
12
  .span12
13
- .btn-group.pull-right
14
- =link_to "Upcoming", event_shows_path(@event), :class => "btn #{"active" if @upcoming}"
15
- =link_to "All", event_shows_path(@event, :range => :all), :class => "btn #{"active" if @all}"
16
- %a.btn.dropdown-toggle#month-button{"data-toggle"=>"dropdown", :href=>"#", :class => "#{"active" if @monthly}"}
17
- =@monthly ? "#{params[:month]} #{params[:year]}" : "Month"
18
- %span.caret
19
- %ul.dropdown-menu#month-select
20
- - @month_years.each do |month_year|
21
- %li=link_to month_year, monthly_event_shows_path(@event, month_year.split[1], month_year.split[0])
22
- %table.table
13
+ .something
14
+ .btn-group.pull-right
15
+ =link_to "Upcoming", event_shows_path(@event), :class => "btn #{"active" if @upcoming}"
16
+ =link_to "All", event_shows_path(@event, :range => :all), :class => "btn #{"active" if @all}"
17
+ %a.btn.dropdown-toggle#month-button{"data-toggle"=>"dropdown", :href=>"#", :class => "#{"active" if @monthly}"}
18
+ =@monthly ? "#{params[:month]} #{params[:year]}" : "Month"
19
+ %span.caret
20
+ %ul.dropdown-menu#month-select
21
+ - @month_years.each do |month_year|
22
+ %li=link_to month_year, monthly_event_shows_path(@event, month_year.split[1], month_year.split[0])
23
+
24
+ %table.table.table-hover
23
25
  %thead
24
26
  %th{:colspan => 2} Date/Time
25
27
  %th
26
- %th.right On sale
28
+ %th.right Capacity
29
+ %th.right Open
30
+ %th.right On Sale
31
+ %th.right Off Sale
27
32
  %th.right Sold
28
33
  %th.right Comped
29
34
  %tbody
30
35
  -if @shows.empty?
31
36
  %tr
32
- %td{:colspan => 6}
37
+ %td{:colspan => 9}
33
38
  .no-image.full
34
39
  #text
35
40
  =link_to 'You have no upcoming shows scheduled.', new_event_show_path(@event, @show)
36
41
  -@shows.each do |show|
37
- %tr.sprited-container{ :class => [show.state] }
42
+ %tr.sprited-container.valign{:id => "show_row_#{show.id}", :class => "#{'unpublished' if show.unpublished?}"}
38
43
  %td
39
- =link_to l(show.stats.datetime_local_to_event, :format => :abbreviated_day), event_show_path(@event, show), :title => 'show-datetime'
44
+ =link_to l(show.parsed_local_datetime, :format => :abbreviated_day), event_show_path(@event, show), :title => 'show-datetime'
40
45
  %td
41
- =link_to l(show.stats.datetime_local_to_event, :format => :short), event_show_path(@event, show), :title => 'show-datetime'
42
- %td{:style => 'text-align:right'}
43
- =render :partial => "shows/controls", :locals => { :show => show }
46
+ =link_to l(show.parsed_local_datetime, :format => :short), event_show_path(@event, show), :title => 'show-datetime'
47
+ %td
48
+ -unless show.played?
49
+ %ul.in-table
50
+ %li.dropdown{:id => "bulkactions#{show.id}"}
51
+ =icon_link_to('', "#menu#bulkactions#{show.id}", 'icon-asterisk', 'dropdown-toggle dropdown btn btn-mini', '')
52
+ %ul.sprited-element.dropdown-menu{ :class => [show.state] }
53
+ %li
54
+ =link_to "Door List", door_list_event_show_path(@event, show)
55
+ %li{:class => "sprited built published"}
56
+ =link_to("Unpublish", unpublished_event_show_path(@event, show), {:remote => true, 'data-type' => :json, :method => :post})
57
+ %li{:class => "sprited built unpublished"}
58
+ =link_to("Publish", published_event_show_path(@event, show), {:remote => true, 'data-type' => :json, :method => :post})
59
+ %li
60
+ =link_to "Put on sale", "#putOnSale#{show.id}", 'data-toggle' => 'modal'
61
+ %li
62
+ =link_to "Take off sale", "#takeOffSale#{show.id}", 'data-toggle' => 'modal'
63
+
64
+ .modal{:id => "takeOffSale#{show.id}"}
65
+ .modal-header
66
+ .close{'data-dismiss'=>'modal'} x
67
+ .row-fluid
68
+ .span10
69
+ %h3 Take Tickets Off Sale
70
+ .modal-body
71
+ =form_tag off_sale_event_show_path(@event, show), :method => :post, :class=>'form-inline' do
72
+ Quantity:
73
+ =text_field_tag :quantity, "0", :class => 'span1'
74
+ %button.btn{:type=>'submit'}
75
+ Take off sale
76
+
77
+
78
+ .modal{:id => "putOnSale#{show.id}"}
79
+ .modal-header
80
+ .close{'data-dismiss'=>'modal'} x
81
+ .row-fluid
82
+ .span10
83
+ %h3 Put Tickets On Sale
84
+ .modal-body
85
+ =form_tag on_sale_event_show_path(@event, show), :method => :post, :class=>'form-inline' do
86
+ Quantity:
87
+ =text_field_tag :quantity, "0", :class => 'span1'
88
+ %button.btn{:type=>'submit'}
89
+ Put on sale
90
+
44
91
 
45
- %td.right.available_value= show.stats.on_sale
46
- %td.right.gross_value= show.stats.sold
47
- %td.right.comped_value= show.stats.comped
92
+ %td.right.available_value{:id => "capacity#{show.id}"}= show.capacity
93
+ %td.right.available_value{:id => "open#{show.id}"}= show.open
94
+ %td.right.available_value{:id => "on_sale#{show.id}"}= show.on_sale
95
+ %td.right.available_value{:id => "off_sale#{show.id}"}= show.off_sale
96
+ %td.right.gross_value{:id => "sold#{show.id}"}= show.sold
97
+ %td.right.comped_value{:id => "comped#{show.id}"}= show.comped
98
+
99
+ .row-fluid
100
+ .span12
101
+ #calendar-help
102
+ .pull-right
103
+ %span{:style => 'background-color: #ADADAD'} &nbsp&nbsp&nbsp&nbsp
104
+ Unpublished shows
105
+ %span{:style => 'background-color: #FFFFFF; border:1px solid #bbb;'} &nbsp&nbsp&nbsp&nbsp
106
+ Published shows
48
107
 
49
108
  =will_paginate @shows
50
109