artfully_ose 1.2.0.pre.16 → 1.2.0.pre.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +8 -8
  2. data/app/assets/javascripts/angular-resource.js +546 -0
  3. data/app/assets/javascripts/angular.js +20311 -0
  4. data/app/assets/javascripts/application.js +13 -2
  5. data/app/assets/javascripts/change-membership.js +98 -0
  6. data/app/assets/stylesheets/application.sass +3 -0
  7. data/app/controllers/artfully_ose_controller.rb +12 -0
  8. data/app/controllers/membership_awards_controller.rb +2 -0
  9. data/app/controllers/membership_changes_controller.rb +39 -0
  10. data/app/controllers/membership_types_controller.rb +2 -0
  11. data/app/controllers/sales_controller.rb +1 -1
  12. data/app/controllers/store/checkouts_controller.rb +4 -4
  13. data/app/controllers/store/orders_controller.rb +1 -1
  14. data/app/helpers/artfully_ose_helper.rb +10 -0
  15. data/app/helpers/membership_types_helper.rb +17 -0
  16. data/app/models/actions/change_action.rb +13 -0
  17. data/app/models/carts/cart.rb +6 -3
  18. data/app/models/donation.rb +4 -0
  19. data/app/models/ext/integrations.rb +1 -3
  20. data/app/models/item.rb +1 -1
  21. data/app/models/kits/membership_kit.rb +1 -1
  22. data/app/models/member.rb +6 -0
  23. data/app/models/membership.rb +10 -2
  24. data/app/models/membership_change.rb +176 -0
  25. data/app/models/membership_type.rb +10 -1
  26. data/app/models/order_handler.rb +2 -2
  27. data/app/models/orders/order.rb +9 -1
  28. data/app/models/section.rb +1 -1
  29. data/app/models/show.rb +2 -2
  30. data/app/models/ticket.rb +4 -0
  31. data/app/models/ticket_type.rb +2 -2
  32. data/app/views/events/_ticket_type_fields.html.haml +18 -17
  33. data/app/views/kits/_list.html.haml +8 -0
  34. data/app/views/layouts/storefront.html.haml +3 -3
  35. data/app/views/members/mailer/invitation_instructions.html.haml +3 -2
  36. data/app/views/membership_kits/edit.html.haml +2 -18
  37. data/app/views/membership_types/_form.html.haml +71 -5
  38. data/app/views/memberships/index.html.haml +45 -45
  39. data/app/views/orders/_item_table.haml +2 -0
  40. data/app/views/organizations/show.html.haml +22 -16
  41. data/app/views/sales/new.html.haml +1 -1
  42. data/app/views/store/checkouts/_membership_info.html.haml +2 -2
  43. data/app/views/store/checkouts/thanks.html.haml +1 -1
  44. data/app/views/store/memberships/index.html.haml +2 -2
  45. data/app/views/store/orders/show.html.haml +3 -3
  46. data/app/views/store/shows/_show.html.haml +1 -1
  47. data/app/views/user_memberships/_list.html.haml +27 -26
  48. data/config/routes.rb +2 -0
  49. data/db/migrate/20131206153323_add_membership_kit.rb +5 -0
  50. data/db/migrate/20131206175325_add_marketing_to_membership_type.rb +6 -0
  51. data/db/migrate/20131210212342_add_show_fee_to_memberhsip_type.rb +5 -0
  52. data/db/migrate/20131210222814_add_renewal_price_to_membership_type.rb +6 -0
  53. data/lib/artfully_ose/version.rb +1 -1
  54. metadata +13 -4
  55. data/app/assets/javascripts/angular-resource.min.js +0 -11
  56. data/app/assets/javascripts/angular.min.js +0 -178
@@ -1,7 +1,8 @@
1
1
  class MembershipType < ActiveRecord::Base
2
2
  attr_accessible :name, :price, :fee, :number_of_shows,
3
3
  :plan, :on_sale, :description, :ends_at,
4
- :starts_at, :duration, :type, :period, :number_of_tickets, :sales_start_at, :sales_end_at
4
+ :starts_at, :duration, :type, :period, :number_of_tickets, :sales_start_at, :sales_end_at,
5
+ :thanks_copy, :invitation_email_text_copy, :hide_fee, :renewal_price, :offer_renewal
5
6
 
6
7
  belongs_to :organization
7
8
  has_many :memberships
@@ -16,6 +17,8 @@ class MembershipType < ActiveRecord::Base
16
17
  scope :on_sale, where(:on_sale => true)
17
18
  scope :not_ended, where('ends_at > ?', DateTime.now)
18
19
 
20
+ SERVICE_FEE = 0.05
21
+
19
22
  comma do
20
23
  name
21
24
  description
@@ -44,6 +47,12 @@ class MembershipType < ActiveRecord::Base
44
47
  self.name.end_with?("Membership") ? self.name : self.name + " Membership"
45
48
  end
46
49
 
50
+ def price_for(member = nil)
51
+ return price if member.nil?
52
+
53
+ (offer_renewal? && member.current?) ? renewal_price : price
54
+ end
55
+
47
56
  def create_list_segment
48
57
  @search = organization.searches.create({:membership_type => self})
49
58
  @segment = organization.segments.create({:search => @search, :name => self.name})
@@ -76,7 +76,7 @@ class OrderHandler
76
76
  end
77
77
 
78
78
 
79
- def handle_memberships(params)
79
+ def handle_memberships(params, member = nil)
80
80
  unless params[:membership_type].blank?
81
81
  membership_type_id = params[:membership_type][:id]
82
82
  quantity = params[:quantity].to_i
@@ -85,7 +85,7 @@ class OrderHandler
85
85
  #current_membership_type_count = self.cart.memberships.count{ |membership| membership.membership_type_id == membership_type_id }
86
86
 
87
87
  (1..quantity).each do |i|
88
- self.cart.memberships << Membership.for(MembershipType.find(membership_type_id))
88
+ self.cart.memberships << Membership.for(MembershipType.find(membership_type_id), member)
89
89
  end
90
90
 
91
91
  end
@@ -237,6 +237,10 @@ class Order < ActiveRecord::Base
237
237
  def memberships(reload=false)
238
238
  items(reload).select(&:membership?)
239
239
  end
240
+
241
+ def membership_types
242
+ memberships.collect{|item| item.product.membership_type}.uniq
243
+ end
240
244
 
241
245
  def has_single_donation?
242
246
  (donations.size == 1) && tickets.empty?
@@ -370,6 +374,10 @@ class Order < ActiveRecord::Base
370
374
  self.person.calculate_lifetime_donations
371
375
  end
372
376
 
377
+ def membership_action_class
378
+ GetAction
379
+ end
380
+
373
381
  def purchase_action_class
374
382
  GetAction
375
383
  end
@@ -422,7 +430,7 @@ class Order < ActiveRecord::Base
422
430
 
423
431
  def create_membership_action
424
432
  unless self.memberships.empty?
425
- action = GetAction.new
433
+ action = self.membership_action_class.new
426
434
  action.person = self.person
427
435
  action.subject = self
428
436
  action.organization = self.organization
@@ -60,7 +60,7 @@ class Section < ActiveRecord::Base
60
60
  types << ticket_types.storefront
61
61
  unless member.nil?
62
62
 
63
- #Add "unrestricted member" ticket_types that aren't tired to a particular membership type
63
+ #Add "unrestricted member" ticket_types that aren't tied to a particular membership type
64
64
  types << ticket_types.members.select{|ticket_type| !ticket_type.member_ticket?} unless member.nil?
65
65
 
66
66
  #Now add member ticket_types that apply to this particular member
data/app/models/show.rb CHANGED
@@ -146,7 +146,7 @@ class Show < ActiveRecord::Base
146
146
  "show_time" => show_time,
147
147
  "datetime" => datetime_local_to_event,
148
148
  "destroyable" => destroyable?,
149
- "chart" => chart_for("storefront", options[:member], options[:organization_id]).as_json(options)
149
+ "chart" => chart_for("storefront", options[:organization_id]).as_json(options)
150
150
  }
151
151
  end
152
152
 
@@ -156,7 +156,7 @@ class Show < ActiveRecord::Base
156
156
  def as_widget_json(options = {})
157
157
  as_json.merge(:event => event.as_json,
158
158
  :venue => event.venue.as_json,
159
- :chart => chart_for("storefront", options[:member], options[:organization_id]).as_json(options))
159
+ :chart => chart_for("storefront", options[:organization_id]).as_json(options))
160
160
  end
161
161
 
162
162
  def bulk_on_sale(ids)
data/app/models/ticket.rb CHANGED
@@ -150,6 +150,10 @@
150
150
  0
151
151
  end
152
152
 
153
+ def realized_fee
154
+ self.class.realized_fee
155
+ end
156
+
153
157
  def expired?
154
158
  datetime < DateTime.now
155
159
  end
@@ -34,7 +34,7 @@ class TicketType < ActiveRecord::Base
34
34
  #
35
35
  # Returns an integer number of tickets available
36
36
  #
37
- def available(member = nil)
37
+ def available(channel = "storefront", member = nil)
38
38
  available_in_section = Ticket.where(:section_id => self.section, :state => :on_sale, :cart_id => nil, :ticket_type_id => nil).count
39
39
 
40
40
  return available_in_section if unlimited? && !self.member_ticket?
@@ -42,7 +42,7 @@ class TicketType < ActiveRecord::Base
42
42
  available_measures = []
43
43
  available_measures << limit - committed.length - locked.length unless limit.nil?
44
44
  available_measures << available_in_section
45
- available_measures << available_to(member, available_in_section) if self.member_ticket?
45
+ available_measures << available_to(member, available_in_section) if self.member_ticket? && channel == "storefront"
46
46
 
47
47
  [ available_measures.min, 0].max
48
48
  end
@@ -5,26 +5,27 @@
5
5
  .controls
6
6
  =f.text_field :name, :class => 'span4'
7
7
 
8
- .control-group
9
- =label_tag "Member ticket?", "Member ticket?", :class => 'control-label'
10
- .controls
11
- %label.radio.inline
12
- = f.radio_button :member_ticket, true, :class => "member-ticket-yes"
13
- Yes
14
- %label.radio.inline
15
- = f.radio_button :member_ticket, false, :class => "member-ticket-no"
16
- No
17
-
18
- .membership-fields{:style => "display: none"}
8
+ -with_kit :membership do
19
9
  .control-group
20
- =f.label :membership_type_id, "Membership", :class => 'control-label'
10
+ =label_tag "Member ticket?", "Member ticket?", :class => 'control-label'
21
11
  .controls
22
- =f.select :membership_type_id, options_from_collection_for_select(MembershipType.in_play, 'id', 'name', f.object.membership_type_id), {}, :class => 'span4'
12
+ %label.radio.inline
13
+ = f.radio_button :member_ticket, true, :class => "member-ticket-yes"
14
+ Yes
15
+ %label.radio.inline
16
+ = f.radio_button :member_ticket, false, :class => "member-ticket-no"
17
+ No
23
18
 
24
- .control-group
25
- =f.label :tickets_per_membership, "Tickets per Membership", :class => 'control-label'
26
- .controls
27
- =f.text_field :tickets_per_membership, :class => 'input-small'
19
+ .membership-fields{:style => "display: none"}
20
+ .control-group
21
+ =f.label :membership_type_id, "Membership", :class => 'control-label'
22
+ .controls
23
+ =f.select :membership_type_id, options_from_collection_for_select(MembershipType.in_play, 'id', 'name', f.object.membership_type_id), {}, :class => 'span4'
24
+
25
+ .control-group
26
+ =f.label :tickets_per_membership, "Tickets per Membership", :class => 'control-label'
27
+ .controls
28
+ =f.text_field :tickets_per_membership, :class => 'input-small'
28
29
 
29
30
  .control-group
30
31
  =f.label :price, "Price", :class => 'control-label'
@@ -0,0 +1,8 @@
1
+ .row.bottom-room
2
+ .span3
3
+ %h3{:style => "margin-top: 0px"} Kits
4
+ .span9
5
+ %ul
6
+ %li Paid Ticketing
7
+ %li People
8
+ %li= link_to "Membership", [:edit, @organization.membership_kit], :id => "configure_#{@organization.membership_kit.type.underscore}"
@@ -9,10 +9,10 @@
9
9
  .navbar-inner
10
10
  .container
11
11
  = link_to @store_organization.name, root_path, :class => 'brand'
12
- %ul.nav
12
+ %ul.nav#main-menu-options
13
13
  %li= link_to "Buy Tickets", store_events_path(@store_organization.cached_slug)
14
- %li= link_to "Become a Member", store_memberships_path(@store_organization.cached_slug)
15
- -# %li= link_to "Passes"
14
+ -with_kit(:membership)do
15
+ %li= link_to "Become a Member", store_memberships_path(@store_organization.cached_slug)
16
16
  %li= link_to "Donate Now", store_donate_path(@store_organization.cached_slug), :class => "btn btn-small btn-warning primary"
17
17
  %ul.nav.pull-right
18
18
  -if member_signed_in?
@@ -1,7 +1,8 @@
1
1
  ="Hello #{@resource.person.first_name},"
2
2
 
3
- %p
4
- =@resource.organization.membership_kit.invitation_email_text_copy.html_safe
3
+ -@resource.current_membership_types.uniq.each do |membership_type|
4
+ %p
5
+ =membership_type.invitation_email_text_copy
5
6
 
6
7
  = link_to 'Setup your account now', accept_invitation_url(@resource, :invitation_token => @resource.invitation_token)
7
8
 
@@ -25,25 +25,9 @@
25
25
 
26
26
  .row-fluid.bottom-room
27
27
  .span3
28
- %strong= f.label :thanks_copy, "Thanks Copy", :class => 'control-label'
29
- .guide
30
- Ut porta risus et lectus lobortis, vitae ultricies massa placerat. In non dapibus augue.
31
- %p
32
- =link_to "Preview", "#thanks-preview-modal", 'data-toggle' => 'modal'
28
+ &nbsp
33
29
  .span9
34
- = f.text_area :thanks_copy, :class => "input-xxlarge", :rows => "8"
35
-
36
- .row-fluid.bottom-room
37
- .span3
38
- %strong= f.label :invitation_email_text_copy, "Welcome Email Copy", :class => 'control-label'
39
- .guide
40
- Ut porta risus et lectus lobortis, vitae ultricies massa placerat. In non dapibus augue.
41
- %p
42
- =link_to "Preview", "#invite-preview-modal", 'data-toggle' => 'modal'
43
- .span9
44
- = f.text_area :invitation_email_text_copy, :class => "input-xxlarge", :rows => "8"
45
-
46
- =f.submit "Save", :class => "btn btn-primary"
30
+ =f.submit "Save", :class => "btn btn-primary"
47
31
 
48
32
  #thanks-preview-modal.modal
49
33
  .modal-header
@@ -1,6 +1,7 @@
1
1
  =form_for @membership_type, :as => :membership_type, :html => { :class => 'form-horizontal' } do |f|
2
2
  =f.hidden_field :type, :value => @membership_type.type
3
3
  %fieldset
4
+ %legend Basics
4
5
  .control-group
5
6
  = f.label :name, "Name", :class => 'control-label'
6
7
  .controls
@@ -9,22 +10,87 @@
9
10
  = f.label :description, "Description", :class => 'control-label'
10
11
  .controls
11
12
  = f.text_area :description, :rows => "5"
13
+ .control-group
14
+ = f.label :number_of_tickets, "Number of Tickets", :class => 'control-label'
15
+ .controls
16
+ = f.text_field :number_of_tickets, :class => "span1"
17
+
18
+ =render "membership_types/#{@membership_type.class.name.underscore}_form", :f => f
19
+ %fieldset
20
+ %legend Pricing
12
21
  .control-group
13
22
  = f.label :price, "Price", :class => 'control-label'
14
23
  .controls
15
24
  = f.text_field :price, :class => 'input-small section-price currency'
25
+
16
26
  .control-group
17
- = f.label :fee, "Member Fee", :class => 'control-label'
27
+ =f.label :hide_fee, "Hide service fee?", :class => 'control-label'
18
28
  .controls
19
- = f.text_field :fee, :class => 'input-small section-price currency'
29
+ = f.select :hide_fee, options_for_select([["Yes", true], ["No", false]]), {}, :class => 'span1'
30
+ %br
31
+ =link_to "Learn more", "#pricing-example", "data-toggle" => "modal"
32
+
20
33
  .control-group
21
- = f.label :number_of_tickets, "Number of Tickets", :class => 'control-label'
34
+ = f.label :offer_renewal, "Offer renewal price?", :class => 'control-label'
22
35
  .controls
23
- = f.text_field :number_of_tickets, :class => "span1"
36
+ %label
37
+ = f.check_box :offer_renewal
24
38
 
39
+ .control-group#renewal-price-group
40
+ = f.label :renewal_price, "Renewal Price", :class => 'control-label'
41
+ .controls
42
+ = f.text_field :renewal_price, :class => 'input-small section-price currency'
25
43
 
26
- =render "membership_types/#{@membership_type.class.name.underscore}_form", :f => f
44
+ #pricing-example.modal
45
+ .modal-header
46
+ .close{'data-dismiss'=>'modal'} x
47
+ %h3 Pricing Example
48
+ .modal-body
49
+ %table.table.table-compact
50
+ %tr
51
+ %th
52
+ %th.right Hidden fee
53
+ %th.right Shown fee
54
+ %tr
55
+ %td Membership price
56
+ %td.right $100
57
+ %td.right $100
58
+ %tr
59
+ %td Patron pays
60
+ %td.right $100
61
+ %td.right $100 + 5% service = $105
62
+ %tr
63
+ %td You receive
64
+ %td.right
65
+ $100
66
+ %br
67
+ ="- 5% service"
68
+ %br
69
+ ="- 3.5% processing"
70
+ %br
71
+ ="$91.68"
72
+ %td.right $100 - 3.5% processing = $96.5
73
+ .modal-footer
74
+ = button_tag "Close", :class => "btn", 'data-dismiss' => 'modal'
27
75
 
76
+
77
+ / .control-group
78
+ / = f.label :fee, "Member Fee", :class => 'control-label'
79
+ / .controls
80
+ / = f.text_field :fee, :class => 'input-small section-price currency'
81
+ %fieldset
82
+ %legend Storefront Copy
83
+ .control-group
84
+ = f.label :thanks_copy, "Thanks Message", :class => 'control-label'
85
+ .controls
86
+ = f.text_area :thanks_copy, :rows => "5"
87
+ .control-group
88
+ = f.label :invitation_email_text_copy, "Email Message", :class => 'control-label'
89
+ .controls
90
+ = f.text_area :invitation_email_text_copy, :rows => "5"
91
+
92
+ %fieldset
93
+ %legend Sales
28
94
  .control-group
29
95
  = f.label :fee, "Sales Start", :class => 'control-label'
30
96
  .controls
@@ -19,7 +19,7 @@
19
19
  %li
20
20
  = link_to "Change Expiration", "#extend", 'data-toggle' => 'modal'
21
21
  %li
22
- = link_to "Change Membership", "#change", 'data-toggle' => 'modal'
22
+ = link_to "Change Membership", "#change", 'ng-controller' => 'ChangeMembershipController', 'ng-click' => 'changeSelected($event)'
23
23
  %li
24
24
  = link_to "Cancel Membership", "#cancel", 'data-toggle' => 'modal'
25
25
  .span6.right
@@ -41,10 +41,10 @@
41
41
  %tbody
42
42
  - @person.memberships.each do |membership|
43
43
  %tr
44
- %td.grouped-checkbox= check_box_tag "membership_ids[]", membership.id, false
44
+ %td.grouped-checkbox= check_box_tag "membership_ids[]", membership.id, false, :id => "membership_id_#{membership.id}"
45
45
  %td.item-description=link_to membership.membership_type.name, membership_type_path(membership.membership_type.id)
46
- %td=l membership.starts_at, :format => :slashed_date
47
- %td=l membership.ends_at, :format => :slashed_date
46
+ %td.starts-at=l membership.starts_at, :format => :slashed_date
47
+ %td.ends-at=l membership.ends_at, :format => :slashed_date
48
48
  %td.price.right=number_as_cents membership.sold_price
49
49
  %td.fee.right TODO
50
50
 
@@ -72,51 +72,63 @@
72
72
  =link_to "Process Refund", "#", :class => "btn btn-success", 'data-dismiss'=>'modal'
73
73
  =link_to "Cancel", "#", :class => "btn btn-danger", 'data-dismiss'=>'modal'
74
74
 
75
- #change.modal
76
- =form_tag "#", :class => "form-horizontal", :method => :post do
75
+ #change.modal{'ng-controller' => 'ChangeMembershipController'}
76
+ =form_tag person_membership_changes_path, :class => "form-horizontal", 'novalidate' => 'novalidate', 'name' => 'changeForm', :method => :post do
77
77
  .modal-header
78
78
  .close{'data-dismiss'=>'modal'} x
79
79
  %h3 Change Membership
80
80
  .modal-body
81
81
  .control-group
82
- %label.control-label="Membership Type"
82
+ %label.control-label="Selected Memberships"
83
83
  .controls
84
- = select_tag :membership_type, options_from_collection_for_select(@membership_types, 'id', 'name')
84
+ %ol
85
+ %li{'ng-repeat' => 'membership in selected'}
86
+ = hidden_field_tag('membership_ids[]', '{{membership.id}}')
87
+ = '{{membership.type}} - {{membership.price}}'
88
+ .control-group
89
+ %label.control-label="New Membership Type"
90
+ .controls
91
+ = select_tag :membership_type_id, options_for_membership_types(@membership_types, include_price: true)
92
+
93
+ .control-group
94
+ %label.control-label Price Per Membership
95
+ .controls
96
+ = text_field_tag :price, '0', :class => 'span1 currency', 'ng-model' => 'price', 'ng-change' => 'updateTotal()'
85
97
 
86
98
  .control-group
87
- %label.control-label Price per membership
99
+ %label.control-label Total Price
88
100
  .controls
89
- .input-prepend
90
- %span.add-on $
91
- = text_field_tag :sold_price, "", :class => 'span1'
101
+ = text_field_tag 'total', '', :class => 'span1', :disabled => 'disabled', 'ng-model' => 'total'
92
102
 
93
- #payment-controls.controls
94
- %label.radio
95
- = radio_button_tag(:payment_method, :cash, true, :class => 'payment-method', :humanized_value => 'Cash')
96
- Cash
97
- %label.radio
98
- = radio_button_tag(:payment_method, :comp, false, :class => 'payment-method', :humanized_value => 'Comp')
99
- Comp
100
- %label.radio
101
- = radio_button_tag(:payment_method, :credit_card_manual, false, :class => 'payment-method', :humanized_value => 'Credit card')
102
- Credit
103
+ .control-group
104
+ %label.control-label Payment Method
105
+ #payment-controls.controls
106
+ %label.radio
107
+ = radio_button_tag(:payment_method, :cash, true, :class => 'payment-method', :humanized_value => 'Cash', 'ng-model' => 'payment_method')
108
+ Cash
109
+ %label.radio
110
+ = radio_button_tag(:payment_method, :comp, false, :class => 'payment-method', :humanized_value => 'Comp', 'ng-model' => 'payment_method')
111
+ Comp
112
+ %label.radio
113
+ = radio_button_tag(:payment_method, :credit_card_manual, false, :class => 'payment-method', :humanized_value => 'Credit card', 'ng-model' => 'payment_method')
114
+ Credit
103
115
 
104
- #payment-info.hidden.well
116
+ #payment-info.well{'ng-show' => "'credit_card_manual' == payment_method"}
105
117
  .control-group
106
- %label.control-label="Name on Card"
107
- .controls= text_field_tag("credit_card[name]", params[:cardholder_name])
118
+ %label.control-label='Name on Card'
119
+ .controls= text_field_tag('credit_card_info[name]')
108
120
  .control-group
109
- %label.control-label="Card Number"
110
- .controls= text_field_tag("credit_card[number]", params[:card_number])
121
+ %label.control-label='Card Number'
122
+ .controls= text_field_tag('credit_card_info[number]')
111
123
  .control-group
112
- %label.control-label="Expiration Date"
124
+ %label.control-label='Expiration Date'
113
125
  .date_field.controls
114
- = select_tag("credit_card[month]", options_for_select(1..12, params["month"]), :class => 'input-small inline')
115
- = select_tag("credit_card[year]", options_for_select(Time.now.year..Time.now.year + 10, params["year"]), :class => 'input-small inline')
126
+ = select_tag('credit_card_info[month]', options_for_select(1..12), :class => 'input-small inline')
127
+ = select_tag('credit_card_info[year]', options_for_select(Time.now.year..Time.now.year + 10), :class => 'input-small inline')
116
128
 
117
- .modal-footer
118
- =link_to "Process Membership Change", "#", :class => "btn btn-success", 'data-dismiss'=>'modal'
119
- =link_to "Cancel", "#", :class => "btn btn-danger", 'data-dismiss'=>'modal'
129
+ .modal-footer
130
+ = submit_tag "Process Membership Change", :class => "btn btn-success"
131
+ =link_to "Cancel", "#", :class => "btn btn-danger", 'data-dismiss'=>'modal'
120
132
 
121
133
  #partial-refund.modal
122
134
  .modal-header
@@ -141,15 +153,3 @@
141
153
  .modal-footer
142
154
  =link_to "Cancel Memberhships", "#", :class => "btn btn-success", 'data-dismiss'=>'modal'
143
155
  =link_to "Cancel", "#", :class => "btn btn-danger", 'data-dismiss'=>'modal'
144
-
145
- -content_for :custom_js do
146
- :javascript
147
- $(".payment-method").change(function(){
148
- if($(this).attr('value') != 'credit_card_manual'){
149
- $("#payment-info").addClass("hidden");
150
- $("#credit_card_number").val("")
151
- $("#credit_card_name").val("")
152
- } else {
153
- $("#payment-info").removeClass("hidden");
154
- }
155
- });