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.
- checksums.yaml +8 -8
- data/app/assets/javascripts/change-membership.js +8 -4
- data/app/assets/javascripts/custom/show.js +13 -8
- data/app/assets/javascripts/locationselector.js +1 -1
- data/app/assets/javascripts/store/store.js +7 -0
- data/app/assets/stylesheets/application.sass +21 -1
- data/app/assets/stylesheets/sass/_tags.sass +13 -2
- data/app/controllers/discounts_controller.rb +8 -1
- data/app/controllers/events_controller.rb +29 -13
- data/app/controllers/events_pass_types_controller.rb +75 -0
- data/app/controllers/imports_controller.rb +10 -3
- data/app/controllers/membership_types_controller.rb +1 -0
- data/app/controllers/pass_types_controller.rb +42 -0
- data/app/controllers/passes_controller.rb +13 -0
- data/app/controllers/passes_kits_controller.rb +25 -0
- data/app/controllers/passes_reports_controller.rb +5 -0
- data/app/controllers/sales_controller.rb +0 -2
- data/app/controllers/searches_controller.rb +10 -3
- data/app/controllers/sections_controller.rb +1 -1
- data/app/controllers/segments_controller.rb +4 -4
- data/app/controllers/shows_controller.rb +21 -47
- data/app/controllers/store/checkouts_controller.rb +6 -1
- data/app/controllers/store/orders_controller.rb +2 -0
- data/app/controllers/store/passes_controller.rb +9 -0
- data/app/controllers/store/store_controller.rb +7 -2
- data/app/helpers/link_helper.rb +10 -0
- data/app/mailers/reports_mailer.rb +5 -4
- data/app/models/cart.rb +21 -16
- data/app/models/checkout.rb +6 -1
- data/app/models/daily_membership_report.rb +1 -1
- data/app/models/daily_pass_report.rb +48 -0
- data/app/models/database_views/item_view.rb +69 -19
- data/app/models/event.rb +5 -0
- data/app/models/events_pass_type.rb +16 -0
- data/app/models/ext/integrations.rb +1 -1
- data/app/models/ext/preprocessor.rb +1 -0
- data/app/models/import.rb +18 -15
- data/app/models/imports/donations_import.rb +1 -1
- data/app/models/imports/events_import.rb +33 -28
- data/app/models/item.rb +13 -3
- data/app/models/job/daily_email_report_job.rb +8 -2
- data/app/models/job/order_processor.rb +10 -1
- data/app/models/job/show_creator.rb +2 -1
- data/app/models/kit.rb +1 -1
- data/app/models/kits/passes_kit.rb +62 -0
- data/app/models/membership.rb +19 -6
- data/app/models/membership_change.rb +18 -7
- data/app/models/membership_comp.rb +1 -0
- data/app/models/membership_type.rb +1 -1
- data/app/models/order.rb +18 -9
- data/app/models/order_handler.rb +22 -0
- data/app/models/organization.rb +7 -0
- data/app/models/pass.rb +45 -0
- data/app/models/pass_type.rb +19 -0
- data/app/models/person.rb +4 -0
- data/app/models/search.rb +170 -63
- data/app/models/section.rb +2 -0
- data/app/models/show.rb +26 -2
- data/app/models/show_touch.rb +12 -0
- data/app/models/ticket.rb +6 -0
- data/app/models/ticket/pricing.rb +1 -0
- data/app/models/ticket/reports.rb +16 -0
- data/app/models/ticket/sale_transitions.rb +4 -0
- data/app/models/ticket/transfers.rb +4 -1
- data/app/presenters/event_presenter.rb +1 -1
- data/app/views/discounts/_form.html.haml +1 -1
- data/app/views/events/_menu.html.haml +4 -13
- data/app/views/events/_share_and_sell.haml +2 -1
- data/app/views/events_pass_types/_form.html.haml +25 -0
- data/app/views/events_pass_types/edit.html.haml +22 -0
- data/app/views/events_pass_types/index.html.haml +43 -0
- data/app/views/events_pass_types/new.html.haml +22 -0
- data/app/views/imports/index.html.haml +2 -2
- data/app/views/layouts/_menu.html.haml +2 -1
- data/app/views/layouts/storefront.html.haml +3 -1
- data/app/views/membership_cancellations/_form.html.haml +1 -1
- data/app/views/membership_cancellations/_processing.html.haml +1 -3
- data/app/views/membership_types/index.html.haml +1 -1
- data/app/views/memberships/index.html.haml +16 -25
- data/app/views/orders/_item_table.haml +2 -2
- data/app/views/pass_types/_form.html.haml +70 -0
- data/app/views/pass_types/_pass_type_fees.html.haml +48 -0
- data/app/views/pass_types/edit.html.haml +4 -0
- data/app/views/pass_types/index.html.haml +32 -0
- data/app/views/pass_types/new.html.haml +4 -0
- data/app/views/passes/index.html.haml +40 -0
- data/app/views/passes_kits/edit.html.haml +30 -0
- data/app/views/passes_reports/index.html.haml +2 -0
- data/app/views/people/_header.html.haml +6 -1
- data/app/views/reports_mailer/daily.html.haml +19 -0
- data/app/views/searches/_form.html.haml +17 -1
- data/app/views/shared/_show_time_and_calendar.html.haml +21 -0
- data/app/views/shared/_tags.html.haml +2 -2
- data/app/views/shows/_controls.html.haml +4 -4
- data/app/views/shows/_glance.html.haml +0 -4
- data/app/views/shows/_sections_table.html.haml +6 -4
- data/app/views/shows/_work_with.html.haml +2 -2
- data/app/views/shows/index.html.haml +79 -20
- data/app/views/shows/new.html.haml +1 -21
- data/app/views/statements/_passes_table.html.haml +25 -0
- data/app/views/statements/show.html.haml +4 -1
- data/app/views/store/checkouts/thanks.html.haml +13 -5
- data/app/views/store/orders/show.html.haml +26 -1
- data/app/views/store/passes/index.html.haml +33 -0
- data/config/locales/en.yml +2 -0
- data/config/routes.rb +8 -2
- data/db/migrate/20140207135731_update_items_view.rb +38 -0
- data/db/migrate/20140210154723_add_cached_stats.rb +5 -0
- data/db/migrate/20140218202726_cache_stats.rb +7 -0
- data/db/migrate/20140304171625_passes_ahoy.rb +52 -0
- data/db/migrate/20140304174807_add_passes_kit.rb +5 -0
- data/db/migrate/20140307144454_add_events_pass_types.rb +9 -0
- data/db/migrate/20140307193350_add_pass_id_to_cart.rb +7 -0
- data/db/migrate/20140314162422_add_total_paid_to_membership.rb +13 -0
- data/db/migrate/20140319191237_add_show_dates_to_advanced_search.rb +6 -0
- data/db/migrate/20140328172333_add_cols_to_events_pass_types.rb +6 -0
- data/db/migrate/20140328174217_add_deleted_at_to_ept.rb +9 -0
- data/db/migrate/20140328185432_add_active_to_ept.rb +5 -0
- data/db/migrate/20140328192612_add_pass_type_id_to_search.rb +5 -0
- data/lib/artfully_ose.rb +3 -3
- data/lib/artfully_ose/version.rb +1 -1
- data/spec/factories/kit_factories.rb +5 -0
- data/spec/factories/membership_factories.rb +1 -0
- 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  
|
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  
|
45
|
+
.tip.muted -3.5% processing
|
46
|
+
$48.25
|
47
|
+
.modal-footer
|
48
|
+
= button_tag "Close", :class => "btn", 'data-dismiss' => 'modal'
|
@@ -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,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
|
+
 
|
29
|
+
.span9
|
30
|
+
=f.submit "Save", :class => "btn btn-primary"
|
@@ -18,7 +18,10 @@
|
|
18
18
|
|
19
19
|
-unless @person.member.nil?
|
20
20
|
%ul.detailed-list.tags
|
21
|
-
%li.tag.rounder
|
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
|
-
|
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'}     
|
18
|
+
Existing shows
|
19
|
+
%span{:style => 'background-color: #3a87ad'}     
|
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
|
3
|
+
%li.tag.rounder.deletable= tag
|
4
4
|
|
5
|
-
%li.tag.new-tag
|
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(
|
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.
|
6
|
+
%p= "You are unpublishing the #{l show.parsed_local_datetime} show."
|
7
7
|
|
8
|
-
= form_tag published_event_show_path(
|
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.
|
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
|
 
|
16
|
-
%td="#{section.
|
17
|
-
%td="#{section.
|
18
|
-
%td="#{section.
|
19
|
-
%td="#{section.
|
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-
|
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
|
-
.
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
-
|
21
|
-
|
22
|
-
|
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
|
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 =>
|
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 =>
|
42
|
+
%tr.sprited-container.valign{:id => "show_row_#{show.id}", :class => "#{'unpublished' if show.unpublished?}"}
|
38
43
|
%td
|
39
|
-
=link_to l(show.
|
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.
|
42
|
-
%td
|
43
|
-
|
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.
|
46
|
-
%td.right.
|
47
|
-
%td.right.
|
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'}     
|
104
|
+
Unpublished shows
|
105
|
+
%span{:style => 'background-color: #FFFFFF; border:1px solid #bbb;'}     
|
106
|
+
Published shows
|
48
107
|
|
49
108
|
=will_paginate @shows
|
50
109
|
|