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
@@ -0,0 +1,108 @@
|
|
1
|
+
|
2
|
+
.row-fluid
|
3
|
+
.span9
|
4
|
+
.center
|
5
|
+
%h3{:style => "line-height: 24px"}
|
6
|
+
="4. Pick #{@items.length} Seats From the Chart"
|
7
|
+
#big-seat-chart-container
|
8
|
+
.no-image#stage
|
9
|
+
#text
|
10
|
+
STAGE
|
11
|
+
|
12
|
+
#chart-parent{:style => "position: relative; overflow: auto;"}
|
13
|
+
#chart.seat-chart-layout
|
14
|
+
-@chart.by_rows.each do |row_index, row|
|
15
|
+
.seat-row
|
16
|
+
.row-label=row.first.row_label
|
17
|
+
-row.each do |seat|
|
18
|
+
.seat{"data-col-index" => seat.col_index, "data-chart-id" => @chart.id, "data-seat-id" => seat.id, "data-seat-label" => seat.label, "data-seat-note" => seat.seat_note, "data-seat-qualifier" => seat.qualifier, :class => exchange_html_class_for(seat, @ticket_type)}
|
19
|
+
="A" if seat.aisle?
|
20
|
+
-if seat.seat_note.present?
|
21
|
+
.seat-note
|
22
|
+
%i.icon-file{:class => "artfully-tooltip", :rel => "tooltip", :title=>"#{seat.seat_note}", "data-placement" => "bottom"}
|
23
|
+
.clear
|
24
|
+
|
25
|
+
#chart-note-display{:style => "#{'display:none' if @chart.public_note.blank?}"}
|
26
|
+
#public-chart-note.bottom-room
|
27
|
+
=@chart.public_note
|
28
|
+
|
29
|
+
|
30
|
+
.span3
|
31
|
+
%h3
|
32
|
+
5. Click This Button
|
33
|
+
.center
|
34
|
+
=link_to "Review Exchange", "#reviewExchangeModal", :class => "btn block btn-success btn-large", :id => "review-exchange-button", :disabled => "disabled", "data-toggle"=>"modal"
|
35
|
+
|
36
|
+
#reviewExchangeModal.modal
|
37
|
+
.modal-header
|
38
|
+
.close{'data-dismiss'=>'modal'} x
|
39
|
+
%h3 Confirm Exchange
|
40
|
+
.modal-body
|
41
|
+
= form_tag '/exchanges', :id => "exchange-form" do
|
42
|
+
= hidden_field_tag :order_id, params[:order_id]
|
43
|
+
= hidden_field_tag :show_id, params[:show_id]
|
44
|
+
= hidden_field_tag :ticket_type_id, params[:ticket_type_id]
|
45
|
+
- params[:items].each do |item_id|
|
46
|
+
= hidden_field_tag "items[]", item_id
|
47
|
+
#exchange-details
|
48
|
+
%p
|
49
|
+
When you click the "Confirm Exchange" button, these tickets:
|
50
|
+
|
51
|
+
.center
|
52
|
+
%ul
|
53
|
+
- @items.each do |item|
|
54
|
+
%li.ticket-detail
|
55
|
+
%b= item.show.event.name
|
56
|
+
= "#{l(item.show.datetime_local_to_event, :format => :short)},"
|
57
|
+
= "#{item.product.ticket_type.name},"
|
58
|
+
=number_as_cents item.total_price
|
59
|
+
|
60
|
+
%p
|
61
|
+
will be immediately exchanged for the tickets you selected. We'll update the show data and door list right away.
|
62
|
+
|
63
|
+
%p
|
64
|
+
Artful.ly will not refund or credit any accounts. If there is money to be collected from or refunded to a patron, please reconcile with the patron directly.
|
65
|
+
|
66
|
+
|
67
|
+
- if @order.skip_confirmation_email?
|
68
|
+
%p="We cannot send an email confirmation because we have no email address for #{@order.person}."
|
69
|
+
- else
|
70
|
+
.center
|
71
|
+
.control-group
|
72
|
+
.controls
|
73
|
+
%label.checkbox
|
74
|
+
= check_box_tag :send_email_confirmation, "1", "", :style => "float:none"
|
75
|
+
="Also send an email confirmation to #{@order.person.email}."
|
76
|
+
|
77
|
+
- unless @ticket_type.nil?
|
78
|
+
.center
|
79
|
+
= submit_tag "Confirm Exchange", :class => "btn btn-large btn-primary", :id => "comfirm-exchange-button", :disable_with => "Exchanging..."
|
80
|
+
|
81
|
+
-content_for :custom_js do
|
82
|
+
= javascript_include_tag 'seat-chart'
|
83
|
+
= javascript_include_tag 'exchange-seat-chart'
|
84
|
+
|
85
|
+
:javascript
|
86
|
+
$(document).ready(function() {
|
87
|
+
$(".seat-selectable").click(function () {
|
88
|
+
var numSelectedSeats = $(".seat-selected").length
|
89
|
+
if (numSelectedSeats == #{@items.length}) {
|
90
|
+
$("#review-exchange-button").attr("disabled", false)
|
91
|
+
$("#comfirm-exchange-button").attr("disabled", false)
|
92
|
+
} else {
|
93
|
+
$("#review-exchange-button").attr("disabled", true)
|
94
|
+
$("#comfirm-exchange-button").attr("disabled", true)
|
95
|
+
}
|
96
|
+
})
|
97
|
+
|
98
|
+
$("#exchange-form").submit( function(eventObj) {
|
99
|
+
$.each($(".seat-selected"), function(index, el) {
|
100
|
+
var seatId = $(el).attr("data-seat-id")
|
101
|
+
$('<input />').attr('type', 'hidden')
|
102
|
+
.attr('name', "seat_id[]")
|
103
|
+
.attr('value', seatId)
|
104
|
+
.appendTo('#exchange-form');
|
105
|
+
})
|
106
|
+
return true;
|
107
|
+
});
|
108
|
+
})
|
@@ -0,0 +1,55 @@
|
|
1
|
+
= form_tag '/exchanges' do
|
2
|
+
= hidden_field_tag :order_id, params[:order_id]
|
3
|
+
= hidden_field_tag :show_id, params[:show_id]
|
4
|
+
= hidden_field_tag :ticket_type_id, params[:ticket_type_id]
|
5
|
+
- params[:items].each do |item_id|
|
6
|
+
= hidden_field_tag "items[]", item_id
|
7
|
+
#exchange-details
|
8
|
+
- unless @num_available_tickets < @items.length
|
9
|
+
.row
|
10
|
+
.span3.offset2#outgoing-tickets
|
11
|
+
.well
|
12
|
+
%ol.unstyled
|
13
|
+
- @items.each do |item|
|
14
|
+
%li.ticket-detail
|
15
|
+
%h6= item.show.event.name
|
16
|
+
= l(item.show.datetime_local_to_event, :format => :short)
|
17
|
+
%br
|
18
|
+
= item.product.ticket_type.name
|
19
|
+
.lead=number_as_cents item.total_price
|
20
|
+
#exchange-arrow.span2
|
21
|
+
%i.fa.fa-arrow-right.fa-3x
|
22
|
+
|
23
|
+
.span3#incoming-tickets
|
24
|
+
.well{class: ("negative" if @free_upgrade)}
|
25
|
+
%ol.unstyled
|
26
|
+
- @items.count.times do
|
27
|
+
%li.ticket-detail
|
28
|
+
%h6= @event.name
|
29
|
+
= l(@ticket_type.show.datetime_local_to_event, :format => :short)
|
30
|
+
%br
|
31
|
+
= @ticket_type.name
|
32
|
+
.lead=number_as_cents @ticket_type.price
|
33
|
+
|
34
|
+
.row
|
35
|
+
.span6.offset3
|
36
|
+
%p
|
37
|
+
When you click the "Confirm Exchange" button, The tickets on the left will be immediately exchanged for the tickets on the right. We'll update the show data and door list right away.
|
38
|
+
|
39
|
+
%p
|
40
|
+
Artful.ly will not refund or credit any accounts. If there is money to be collected from or refunded to a patron, please reconcile with the patron directly.
|
41
|
+
|
42
|
+
|
43
|
+
- if @order.skip_confirmation_email?
|
44
|
+
%p="We cannot send an email confirmation because we have no email address for #{@order.person}."
|
45
|
+
- else
|
46
|
+
.center
|
47
|
+
.control-group
|
48
|
+
.controls
|
49
|
+
%label.checkbox
|
50
|
+
= check_box_tag :send_email_confirmation, "1", "", :style => "float:none"
|
51
|
+
="Also send an email confirmation to #{@order.person.email}."
|
52
|
+
|
53
|
+
- unless @ticket_type.nil?
|
54
|
+
.center
|
55
|
+
= submit_tag "Confirm Exchange", :class => "btn btn-large btn-primary", :disable_with => "Exchanging..."
|
@@ -21,61 +21,7 @@
|
|
21
21
|
= select_tag "ticket_type_selector", options_for_select(@show.chart.ticket_types.collect{ |ticket_type| [(truncate(ticket_type.name, :length => 20, :separator => ' ', :omission => '...') + ' ' + number_as_cents(ticket_type.price)), url_for(params.merge({:ticket_type_id => ticket_type.id}))] }, url_for(params.merge({:ticket_type_id => @ticket_type.try(:id)}))), include_blank: true, class: "visit-on-select ticket-type-select span4"
|
22
22
|
|
23
23
|
- unless @ticket_type.nil?
|
24
|
-
=
|
25
|
-
= hidden_field_tag :order_id, params[:order_id]
|
26
|
-
= hidden_field_tag :show_id, params[:show_id]
|
27
|
-
= hidden_field_tag :ticket_type_id, params[:ticket_type_id]
|
28
|
-
- params[:items].each do |item_id|
|
29
|
-
= hidden_field_tag "items[]", item_id
|
30
|
-
#exchange-details
|
31
|
-
- unless @num_available_tickets < @items.length
|
32
|
-
.row
|
33
|
-
.span3.offset2#outgoing-tickets
|
34
|
-
.well
|
35
|
-
%ol.unstyled
|
36
|
-
- @items.each do |item|
|
37
|
-
%li.ticket-detail
|
38
|
-
%h6= item.show.event.name
|
39
|
-
= l(item.show.datetime_local_to_event, :format => :short)
|
40
|
-
%br
|
41
|
-
= item.product.ticket_type.name
|
42
|
-
.lead=number_as_cents item.total_price
|
43
|
-
#exchange-arrow.span2
|
44
|
-
%i.fa.fa-arrow-right.fa-3x
|
45
|
-
|
46
|
-
.span3#incoming-tickets
|
47
|
-
.well{class: ("negative" if @free_upgrade)}
|
48
|
-
%ol.unstyled
|
49
|
-
- @items.count.times do
|
50
|
-
%li.ticket-detail
|
51
|
-
%h6= @event.name
|
52
|
-
= l(@ticket_type.show.datetime_local_to_event, :format => :short)
|
53
|
-
%br
|
54
|
-
= @ticket_type.name
|
55
|
-
.lead=number_as_cents @ticket_type.price
|
56
|
-
|
57
|
-
.row
|
58
|
-
.span6.offset3
|
59
|
-
%p
|
60
|
-
When you click the "Confirm Exchange" button, The tickets on the left will be immediately exchanged for the tickets on the right. We'll update the show data and door list right away.
|
61
|
-
|
62
|
-
%p
|
63
|
-
Artful.ly will not refund or credit any accounts. If there is money to be collected from or refunded to a patron, please reconcile with the patron directly.
|
64
|
-
|
65
|
-
|
66
|
-
- if @order.skip_confirmation_email?
|
67
|
-
%p="We cannot send an email confirmation because we have no email address for #{@order.person}."
|
68
|
-
- else
|
69
|
-
.center
|
70
|
-
.control-group
|
71
|
-
.controls
|
72
|
-
%label.checkbox
|
73
|
-
= check_box_tag :send_email_confirmation, "1", "", :style => "float:none"
|
74
|
-
="Also send an email confirmation to #{@order.person.email}."
|
75
|
-
|
76
|
-
- unless @ticket_type.nil?
|
77
|
-
.center
|
78
|
-
= submit_tag "Confirm Exchange", :class => "btn btn-large btn-primary", :disable_with => "Exchanging..."
|
24
|
+
=render :partial => "#{@show.chart.class.name.underscore}"
|
79
25
|
|
80
26
|
- content_for :custom_js do
|
81
27
|
:javascript
|
@@ -1,35 +1,47 @@
|
|
1
|
-
.navbar
|
1
|
+
.navbar
|
2
2
|
.navbar-inner
|
3
3
|
.container
|
4
|
-
.brand
|
4
|
+
.brand=current_user.current_organization.name
|
5
5
|
%ul.nav
|
6
6
|
%li{ :class => "dropdown #{active?(:events)}" }
|
7
7
|
= nav_dropdown "Sell"
|
8
8
|
%ul.dropdown-menu
|
9
|
-
%li=
|
10
|
-
%li=
|
11
|
-
%li=
|
12
|
-
%li=
|
13
|
-
%li=
|
14
|
-
-if current_user.is_in_organization?
|
15
|
-
%li=
|
9
|
+
%li= permission_link_to [:create, Event], "New Event", new_event_path
|
10
|
+
%li= permission_link_to [:view, Event], "All Events", events_path
|
11
|
+
%li=permission_link_to [:view, Membership], "Memberships", membership_types_path
|
12
|
+
%li=permission_link_to [:view, Pass], "Passes", pass_types_path
|
13
|
+
%li=permission_link_to [:create, Sale], "Sales Console", new_console_sale_path
|
14
|
+
-if current_user.is_in_organization?
|
15
|
+
%li=permission_link_to [:view, Event], "Central Storefront", store_organization_events_url(current_user.current_organization.cached_slug), :target => '_blank'
|
16
16
|
|
17
17
|
%li{ :class => "dropdown #{active?(:people)}" }
|
18
18
|
= nav_dropdown "People"
|
19
19
|
%ul.dropdown-menu
|
20
|
-
%li=
|
21
|
-
%li=
|
22
|
-
%li=
|
23
|
-
%li=
|
24
|
-
%li=
|
25
|
-
%li=
|
20
|
+
%li= permission_link_to [:view_basic, Person], "New Contact", new_person_path
|
21
|
+
%li= permission_link_to [:view_basic, Person], "Search", people_path
|
22
|
+
%li= permission_link_to [:create, Search], "Advanced Search", new_advanced_search_path
|
23
|
+
%li= permission_link_to [:manage, Segment], "List Segments", advanced_search_segments_path
|
24
|
+
%li= permission_link_to [:manage, Person], "Suggested Households", suggested_households_path
|
25
|
+
%li= permission_link_to [:manage, Person], "Tags List", tags_path
|
26
|
+
%li= permission_link_to [:manage, Import], "Import", new_import_path(:type => :people)
|
27
|
+
%li= permission_link_to [:manage, :export], "Export", imports_path
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
%
|
31
|
-
|
32
|
-
|
29
|
+
- if current_user.can? :manage, :report
|
30
|
+
%li{ :class => "dropdown #{active?(:reports)}" }
|
31
|
+
= nav_dropdown "Reports"
|
32
|
+
%ul.dropdown-menu
|
33
|
+
%li= link_to "Statements", statements_path
|
34
|
+
%li= link_to "Discounts", discounts_reports_path
|
35
|
+
%li= link_to "Pass Usage", passes_reports_path
|
36
|
+
%li= link_to "Imports / Exports", imports_path
|
37
|
+
|
38
|
+
%li{ :class => "dropdown #{active?(:campaigns)}" }
|
39
|
+
= nav_dropdown "Fundraising"
|
40
|
+
%ul.dropdown-menu#campaigns-menu
|
41
|
+
%li= link_to "Campaigns", campaigns_path
|
42
|
+
%li= link_to "Log Donation/Pledge", new_contribution_path
|
43
|
+
%li= link_to "Outstanding Pledges", pledges_path
|
44
|
+
%li= link_to "Unacknowledged Gifts", unacknowledged_gifts_path
|
33
45
|
|
34
46
|
%li{ :class => "dropdown #{active?(:transactions)}"}
|
35
47
|
= nav_dropdown "Orders"
|
@@ -38,13 +50,14 @@
|
|
38
50
|
%li= link_to "Donations", contributions_path
|
39
51
|
%li= link_to "Memberships", membership_orders_path
|
40
52
|
%li= link_to "Search All", orders_path
|
41
|
-
|
42
|
-
%
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
-
|
49
|
-
|
50
|
-
|
53
|
+
|
54
|
+
%ul.nav.pull-right
|
55
|
+
%li.divider-vertical
|
56
|
+
%li.dropdown
|
57
|
+
= gravatar_image_tag(current_user.email, :alt => 'User icon', :class => 'nav-grav', :gravatar => { :size => 32 })
|
58
|
+
%li.dropdown
|
59
|
+
= nav_dropdown current_user.email
|
60
|
+
%ul.dropdown-menu
|
61
|
+
-if current_user.is_in_organization?
|
62
|
+
%li= link_to "Account Administration", organization_path(current_user.current_organization)
|
63
|
+
%li= link_to "Sign Out", destroy_user_session_path
|
@@ -2,40 +2,49 @@
|
|
2
2
|
%html{:xmlns => "http://www.w3.org/1999/xhtml", "xml:lang" => "en", :lang => "en"}
|
3
3
|
%head
|
4
4
|
%title= "#{yield :title}"
|
5
|
+
:plain
|
6
|
+
<link href='http://fonts.googleapis.com/css?family=Gravitas+One' rel='stylesheet' type='text/css'>
|
7
|
+
<link href='http://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
|
8
|
+
<link href='http://fonts.googleapis.com/css?family=Old+Standard+TT' rel='stylesheet' type='text/css'>
|
9
|
+
<link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow' rel='stylesheet' type='text/css'>
|
5
10
|
= stylesheet_link_tag :storefront
|
6
11
|
= render :partial => 'layouts/google_analytics', :locals => { :segment => "storefront" }
|
7
12
|
%body
|
8
13
|
.navbar.navbar-fixed-top
|
9
|
-
.
|
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
|
-
|
14
|
+
.clean
|
15
|
+
.navbar-inner
|
16
|
+
.container
|
17
|
+
= link_to @store_organization.name, store_organization_events_url(@store_organization.cached_slug), :class => 'brand brand-lite'
|
18
|
+
%ul.nav#main-menu-options
|
19
|
+
%li= link_to "Buy Tickets", store_events_path(@store_organization.cached_slug)
|
20
|
+
- if @store_organization.has_kit?(:passes)
|
21
|
+
%li= link_to "Buy Passes", store_passes_path(@store_organization.cached_slug)
|
22
|
+
|
23
|
+
- if @store_organization.has_kit?(:membership)
|
24
|
+
-if member_signed_in?
|
25
|
+
%li= link_to "Buy Memberships", store_memberships_path(@store_organization.cached_slug)
|
26
|
+
-else
|
27
|
+
%li= link_to "Become a Member", store_memberships_path(@store_organization.cached_slug)
|
28
|
+
|
29
|
+
- if @store_organization.has_active_donation_only_storefront?
|
30
|
+
-if @store_organization.kit(:regular_donation).donate_now_text.present?
|
31
|
+
%li= link_to @store_organization.kit(:regular_donation).donate_now_text, store_donate_path(@store_organization.cached_slug), :class => "btn btn-small btn-warning primary"
|
32
|
+
-else
|
33
|
+
%li= link_to "Donate Now", store_donate_path(@store_organization.cached_slug), :class => "btn btn-small btn-warning primary"
|
34
|
+
|
35
|
+
- if @store_organization.has_kit?(:membership)
|
36
|
+
%ul.nav.pull-right#menu-member-login
|
37
|
+
-if member_signed_in?
|
38
|
+
%li.dropdown
|
39
|
+
= nav_dropdown member_menu_caption
|
40
|
+
%ul.dropdown-menu
|
41
|
+
%li= link_to "My Membership", members_root_path
|
42
|
+
%li= link_to "Sign Out", destroy_member_session_path
|
43
|
+
-else
|
44
|
+
%li= link_to "Member Login", new_member_session_path({ :org_name => @store_organization.name })
|
45
|
+
%ul.nav.pull-right
|
46
|
+
%li
|
47
|
+
=icon_link_to("#{current_cart.items.size}", store_order_path(@store_organization.cached_slug), 'fa-shopping-cart', '', 'cart-item-count')
|
39
48
|
|
40
49
|
.content.container
|
41
50
|
= render :partial => 'layouts/flash', :locals => { :flash => flash }
|
@@ -43,5 +52,38 @@
|
|
43
52
|
= javascript_include_tag 'ical'
|
44
53
|
= yield
|
45
54
|
|
55
|
+
-if write_membership_modal
|
56
|
+
.modal.fade.hide{:id => "loginNagModal"}
|
57
|
+
.modal-header
|
58
|
+
.close{'data-dismiss'=>'modal'} x
|
59
|
+
.center
|
60
|
+
%h4 LET'S FIND YOUR TICKETS
|
61
|
+
.modal-body
|
62
|
+
.row-fluid
|
63
|
+
.span6
|
64
|
+
.well
|
65
|
+
.center
|
66
|
+
%h6 LOG INTO YOUR ACCOUNT
|
67
|
+
|
68
|
+
= form_for(Member.new, :as => "member", :url => session_path("member")) do |f|
|
69
|
+
%fieldset
|
70
|
+
= f.text_field :email, :placeholder => "Email"
|
71
|
+
= f.password_field :password, :placeholder => "Password", :autocomplete => 'off'
|
72
|
+
= f.submit "Sign In", :class => "btn btn-primary btn-block"
|
73
|
+
.span6
|
74
|
+
.well
|
75
|
+
.center
|
76
|
+
%h6 NEW HERE?
|
77
|
+
.button-container
|
78
|
+
=link_to "Become a member", store_memberships_path(@store_organization), :class => "btn btn-block btn-success"
|
79
|
+
%button.btn.btn-block#close-login-nag
|
80
|
+
Continue without signing in
|
81
|
+
|
82
|
+
.row-fluid
|
83
|
+
%p
|
84
|
+
Forgot your password?
|
85
|
+
=link_to "Click here so we can help", new_password_path("member")
|
86
|
+
|
46
87
|
= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"
|
47
88
|
= javascript_include_tag :storefront
|
89
|
+
= yield :custom_js
|