artfully_ose 1.2.0.pre.27 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/README.md +4 -6
- data/app/assets/javascripts/application.js +39 -0
- data/app/assets/javascripts/boxoffice.js +558 -0
- data/app/assets/javascripts/custom/kits-config.js +33 -0
- data/app/assets/javascripts/sales-console.js +29 -24
- data/app/assets/javascripts/store/store.js +11 -0
- data/app/assets/stylesheets/application.sass +66 -52
- data/app/assets/stylesheets/bootstrap-overrides.css +1 -1
- data/app/assets/stylesheets/boxoffice.css.scss +258 -0
- data/app/assets/stylesheets/pages/bootstrap-responsive.css +1109 -0
- data/app/assets/stylesheets/sass/store.sass +52 -62
- data/app/assets/stylesheets/storefront.css +1 -1
- data/app/concerns/itemable.rb +1 -1
- data/app/concerns/pdf_generation.rb +1 -11
- data/app/concerns/search_by_dates.rb +20 -0
- data/app/controllers/events_controller.rb +1 -0
- data/app/controllers/export_controller.rb +11 -1
- data/app/controllers/imports_controller.rb +2 -3
- data/app/controllers/member_cards_controller.rb +2 -3
- data/app/controllers/orders_controller.rb +42 -0
- data/app/controllers/organizations_controller.rb +1 -0
- data/app/controllers/passes_reports_controller.rb +21 -1
- data/app/controllers/regular_donation_kits_controller.rb +32 -0
- data/app/controllers/store/donations_controller.rb +19 -1
- data/app/controllers/store/orders_controller.rb +15 -5
- data/app/helpers/artfully_ose_helper.rb +28 -18
- data/app/models/database_views/item_view.rb +41 -0
- data/app/models/event.rb +10 -2
- data/app/models/ext/integrations.rb +5 -0
- data/app/models/fee_strategy.rb +47 -1
- data/app/models/imports/events_import.rb +6 -7
- data/app/models/item.rb +4 -3
- data/app/models/job/order_processor.rb +4 -3
- data/app/models/kit.rb +18 -0
- data/app/models/kits/regular_donation_kit.rb +51 -9
- data/app/models/member.rb +4 -3
- data/app/models/membership.rb +1 -2
- data/app/models/membership_sale_search.rb +2 -20
- data/app/models/membership_type.rb +1 -2
- data/app/models/order.rb +29 -1
- data/app/models/order_handler.rb +4 -3
- data/app/models/organization.rb +17 -9
- data/app/models/pass.rb +18 -17
- data/app/models/pass_sale_search.rb +18 -0
- data/app/models/pass_type.rb +7 -2
- data/app/models/passes_report.rb +117 -0
- data/app/models/sale_search.rb +3 -21
- data/app/models/user.rb +1 -2
- data/app/serializers/show_serializer.rb +15 -0
- data/app/views/contributions/index.html.haml +2 -2
- data/app/views/events/_header.html.haml +1 -0
- data/app/views/events/_ticket_type_fields.html.haml +31 -15
- data/app/views/events/edit.html.haml +6 -1
- data/app/views/imports/_export_links.html.haml +3 -0
- data/app/views/imports/donations/_pending.html.haml +24 -6
- data/app/views/imports/events/_pending.html.haml +16 -5
- data/app/views/imports/index.html.haml +6 -4
- data/app/views/imports/people/_pending.html.haml +20 -25
- data/app/views/layouts/storefront.html.haml +9 -5
- data/app/views/order_mailer/confirmation_for.html.haml +11 -5
- data/app/views/order_mailer/confirmation_for_refund.html.haml +6 -2
- data/app/views/order_mailer/confirmation_for_refund.text.haml +4 -3
- data/app/views/orders/membership.html.haml +15 -19
- data/app/views/orders/passes.html.haml +97 -0
- data/app/views/orders/sales.html.haml +2 -2
- data/app/views/organizations/_form.html.haml +4 -37
- data/app/views/pass_types/index.html.haml +1 -1
- data/app/views/passes_reports/index.html.haml +79 -1
- data/app/views/people/show.html.haml +16 -15
- data/app/views/regular_donation_kits/edit.html.haml +140 -0
- data/app/views/store/checkouts/thanks.html.haml +14 -6
- data/app/views/store/donations/index.html.haml +19 -2
- data/app/views/store/events/calendar.html.haml +1 -0
- data/app/views/store/events/index.html.haml +1 -0
- data/app/views/store/events/show.html.haml +1 -0
- data/app/views/store/events/single_show.html.haml +2 -0
- data/app/views/store/orders/show.html.haml +10 -10
- data/app/views/store/passes/index.html.haml +2 -2
- data/app/views/store/shared/_donate_form.html.haml +31 -12
- data/app/views/store/shared/_small_donate_form.html.haml +22 -0
- data/app/views/users/invitations/edit.html.haml +3 -42
- data/config/locales/en.yml +3 -1
- data/config/routes.rb +4 -1
- data/db/migrate/20140603200735_add_subtitle_to_events.rb +5 -0
- data/lib/artfully_ose/version.rb +1 -1
- data/spec/factories/kit_factories.rb +5 -4
- metadata +25 -13
- data/app/assets/javascripts/box-office.js +0 -262
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
- in_section :transactions
|
|
2
|
+
- content_for :header do
|
|
3
|
+
%h1 Pass Orders
|
|
4
|
+
|
|
5
|
+
#donations-search
|
|
6
|
+
|
|
7
|
+
.control-group.well
|
|
8
|
+
= form_tag passes_orders_path, :method => :get, :id => 'passes-date-search-form', :class => 'form-inline' do
|
|
9
|
+
.pull-left
|
|
10
|
+
= label_tag :start, "From", :class => "control-label"
|
|
11
|
+
= text_field_tag :start,"#{l @search.start, :format => :date_for_input}", :class => 'datepicker input-small'
|
|
12
|
+
|
|
13
|
+
= label_tag :stop, "To", :class => "control-label"
|
|
14
|
+
= text_field_tag :stop, "#{l @search.stop, :format => :date_for_input}", :class => 'datepicker input-small'
|
|
15
|
+
|
|
16
|
+
- if @pass_types.present?
|
|
17
|
+
= label_tag :pass_type_id, nil, :class => "control-label"
|
|
18
|
+
= raw select_pass_type_for_sales_search @pass_types, :pass_type_id, params[:pass_type_id]
|
|
19
|
+
|
|
20
|
+
= submit_tag "Search", :class => "btn"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
- if @search.results.present?
|
|
24
|
+
.pull-right
|
|
25
|
+
|
|
26
|
+
%ul.in-table
|
|
27
|
+
%li.dropdown#bulkactions
|
|
28
|
+
=icon_link_to('Work with...', "#menu#bulkactions", 'fa-asterisk', 'dropdown-toggle dropdown btn', '')
|
|
29
|
+
%ul.dropdown-menu
|
|
30
|
+
%li
|
|
31
|
+
= link_to 'Export to CSV', params.merge(:format => 'csv').delete_if {|k,v| :commit == k.to_sym }
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
- if @search.results.present?
|
|
35
|
+
|
|
36
|
+
#tickets
|
|
37
|
+
%table.standalone.zebra.table
|
|
38
|
+
%thead
|
|
39
|
+
%tr
|
|
40
|
+
%th Order
|
|
41
|
+
%th Time
|
|
42
|
+
%th Person
|
|
43
|
+
%th Method
|
|
44
|
+
%th Membership Type
|
|
45
|
+
%th Amount
|
|
46
|
+
%tbody
|
|
47
|
+
- @search.results.each do |order|
|
|
48
|
+
- order.items.select(&:pass?).each_with_index do |item, index|
|
|
49
|
+
- if index == 0
|
|
50
|
+
%tr{:id => "order_#{order.id}"}
|
|
51
|
+
- rowspan = order.items.select(&:pass?).size
|
|
52
|
+
%td{:rowspan => rowspan}= link_to order.id, order_path(order.id)
|
|
53
|
+
%td{:rowspan => rowspan}= l(order.created_at_local_to_organization, :format => :short)
|
|
54
|
+
%td{:rowspan => rowspan}= link_to_person(order.person)
|
|
55
|
+
%td{:rowspan => rowspan}= (order.payment_method || "")
|
|
56
|
+
%td
|
|
57
|
+
="#{item.product.pass_type.name}"
|
|
58
|
+
%td= number_as_cents item.price
|
|
59
|
+
- else
|
|
60
|
+
%tr
|
|
61
|
+
%td
|
|
62
|
+
="#{item.product.pass_type.name}"
|
|
63
|
+
%td= number_as_cents item.price
|
|
64
|
+
|
|
65
|
+
= will_paginate(@search.results)
|
|
66
|
+
|
|
67
|
+
- else
|
|
68
|
+
|
|
69
|
+
%h4= "No sales found."
|
|
70
|
+
|
|
71
|
+
- content_for :custom_js do
|
|
72
|
+
:javascript
|
|
73
|
+
var printCardInterval;
|
|
74
|
+
|
|
75
|
+
$('#print-cards').on('show', function (show) {
|
|
76
|
+
// Remove any existing intervals
|
|
77
|
+
clearInterval(printCardInterval);
|
|
78
|
+
|
|
79
|
+
// Initial hurry to 90%
|
|
80
|
+
var bar = $('#print-cards .bar');
|
|
81
|
+
$(bar).css('width', '1%').animate({width: '90%'}, 1500, function() {
|
|
82
|
+
|
|
83
|
+
// Progress to 100% from there
|
|
84
|
+
var times = 0;
|
|
85
|
+
printCardInterval = setInterval(function() {
|
|
86
|
+
// Count this run
|
|
87
|
+
times = times + 1;
|
|
88
|
+
|
|
89
|
+
// Update the progress bar
|
|
90
|
+
$(bar).css('width', (90 + times) + '%');
|
|
91
|
+
|
|
92
|
+
// Clear the interval on the last run
|
|
93
|
+
if (times > 9) { clearInterval(printCardInterval); }
|
|
94
|
+
}, 1000);
|
|
95
|
+
|
|
96
|
+
});
|
|
97
|
+
});
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
.control-group.well
|
|
8
8
|
.pull-left
|
|
9
9
|
= label_tag :start, "From", :class => "control-label"
|
|
10
|
-
= text_field_tag :start,"#{l @search.start, :format => :date_for_input}", :
|
|
10
|
+
= text_field_tag :start,"#{l @search.start, :format => :date_for_input}", :class => 'datepicker input-small'
|
|
11
11
|
|
|
12
12
|
= label_tag :stop, "To", :class => "control-label"
|
|
13
|
-
= text_field_tag :stop, "#{l @search.stop, :format => :date_for_input}", :
|
|
13
|
+
= text_field_tag :stop, "#{l @search.stop, :format => :date_for_input}", :class => 'datepicker input-small'
|
|
14
14
|
|
|
15
15
|
- if @events.present?
|
|
16
16
|
= label_tag :event_id, nil, :class => "control-label"
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
%fieldset
|
|
2
|
-
|
|
3
|
-
.control-group{"ng-class" => "{error: ! data.organization.valid_name}"}
|
|
1
|
+
%fieldset
|
|
2
|
+
.control-group
|
|
4
3
|
= form.label :name, "Organization Name", :class => 'control-label'
|
|
5
4
|
.controls
|
|
6
5
|
= form.text_field :name, :value => @organization.name, :required => true, :class => 'input-xlarge no-fa'
|
|
7
|
-
%p.text-error{"ng-hide" => "data.organization.valid_name"} Artful.ly already has an organization with this name and zip code. If you forgot your password or would like to be added to the existing organization please email #{mail_to "support@artful.ly"}.
|
|
8
6
|
|
|
9
7
|
.control-group
|
|
10
8
|
= form.label :email, 'Organization Email', :class=>'control-label'
|
|
@@ -12,41 +10,10 @@
|
|
|
12
10
|
= form.email_field :email, :placeholder => 'contact@organization.org', :required => true, :class => 'input-xlarge email-popup', "data-content" => "Your patrons will be able to respond to this email address when receiving ticket/donation receipts. You can change this at any time."
|
|
13
11
|
%span.help-inline (default contact for your patrons)
|
|
14
12
|
|
|
15
|
-
- unless @organization.new_record?
|
|
16
|
-
.control-group
|
|
17
|
-
= form.label :cached_slug, 'Storefront URL', :class=>'control-label'
|
|
18
|
-
.controls
|
|
19
|
-
= form.text_field :cached_slug, :placeholder => @organization.cached_slug, :required => true, :class => 'input-xlarge'
|
|
20
|
-
|
|
21
|
-
%fieldset
|
|
22
|
-
%legend Details
|
|
23
13
|
.control-group
|
|
24
|
-
= form.label :
|
|
25
|
-
.controls= form.select :country, [(h form.object.country || "United States")], selected: (form.object.country || "United States"), :required => true
|
|
26
|
-
|
|
27
|
-
.control-group
|
|
28
|
-
.control-label.form-inline
|
|
29
|
-
= form.label :state, 'State'
|
|
30
|
-
&
|
|
31
|
-
= form.label :zip, 'Zip'
|
|
14
|
+
= form.label :cached_slug, 'Storefront URL', :class=>'control-label'
|
|
32
15
|
.controls
|
|
33
|
-
= form.
|
|
34
|
-
= form.text_field :zip, :placeholder => '10001', :class => 'span1', :required => true, "ng-model" => "data.organization.zip", "ng-init" => "data.organization.zip = '#{form.object.zip}'"
|
|
35
|
-
|
|
36
|
-
.control-group
|
|
37
|
-
= form.label :phone_number, 'Phone Number', :class => 'control-label'
|
|
38
|
-
.controls= form.text_field :phone_number, :placeholder => '(888) 692-7878', :required => true
|
|
39
|
-
|
|
40
|
-
.control-group
|
|
41
|
-
= form.label :website, :class => 'control-label'
|
|
42
|
-
.controls
|
|
43
|
-
.input-prepend
|
|
44
|
-
%span.add-on http://
|
|
45
|
-
= form.text_field :website, :placeholder => 'example.com'
|
|
46
|
-
|
|
47
|
-
.control-group
|
|
48
|
-
= form.label :discipline, :class => 'control-label hidden'
|
|
49
|
-
.controls= form.select :discipline, ['Dance', 'Film & Electronic Media', 'Literary Arts', 'Music', 'Theater', 'Visual Arts', 'Other'], {:include_blank => 'What kind of work does your organization primarily do?'}, {:class => 'span5', :required => true}
|
|
16
|
+
= form.text_field :cached_slug, :placeholder => @organization.cached_slug, :required => true, :class => 'input-xlarge'
|
|
50
17
|
|
|
51
18
|
.control-group
|
|
52
19
|
= form.label :time_zone, "Time Zone", :class => 'control-label'
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
%td=link_to pass_type.name, edit_pass_type_path(pass_type)
|
|
22
22
|
%td=l pass_type.starts_at, :format => :slashed_date
|
|
23
23
|
%td=l pass_type.ends_at, :format => :slashed_date
|
|
24
|
-
%td.right=pass_type.
|
|
24
|
+
%td.right=pass_type.sold.count
|
|
25
25
|
%td.right=pass_type.tickets_allowed
|
|
26
26
|
%td.right=number_as_cents pass_type.price
|
|
27
27
|
%td.right
|
|
@@ -1,2 +1,80 @@
|
|
|
1
1
|
-content_for :header do
|
|
2
|
-
%h1
|
|
2
|
+
%h1 Pass Usage
|
|
3
|
+
|
|
4
|
+
= form_tag passes_reports_path, :method => :get, :class => 'well form-inline' do
|
|
5
|
+
= label_tag :pass_type, "Pass", :class => "control-label"
|
|
6
|
+
= select_tag :pass_type, options_for_select(@options_for_select, @report.pass_type.try(:id))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
= label_tag :start_date, "From", :class => "control-label"
|
|
10
|
+
= text_field_tag :start_date, @start_date, :readonly => true, :class => 'datepicker input-small'
|
|
11
|
+
|
|
12
|
+
= label_tag :end_date, "To", :class => "control-label"
|
|
13
|
+
= text_field_tag :end_date, @end_date, :readonly => true, :class => 'datepicker input-small'
|
|
14
|
+
|
|
15
|
+
.pull-right
|
|
16
|
+
= submit_tag "Search", :class => "btn"
|
|
17
|
+
|
|
18
|
+
- unless @report.nil?
|
|
19
|
+
|
|
20
|
+
.row-fluid.botton-room
|
|
21
|
+
.span9
|
|
22
|
+
%h3=@report.header
|
|
23
|
+
.span3
|
|
24
|
+
.pull-right
|
|
25
|
+
=link_to "Download CSV", passes_reports_path(code: @report.pass_type, start_date: @report.start_date, end_date: @report.end_date, format: "csv"), :class => "btn"
|
|
26
|
+
|
|
27
|
+
#statement-summary.bottom-room.well
|
|
28
|
+
.row-fluid
|
|
29
|
+
.span4
|
|
30
|
+
.center.headline-stat#passes-sold-stat
|
|
31
|
+
=@report.passes_sold
|
|
32
|
+
.center.headline-caption
|
|
33
|
+
%h6 PASSES SOLD
|
|
34
|
+
.span4
|
|
35
|
+
.center.headline-stat#tickets-sold-stat
|
|
36
|
+
=@report.tickets_sold
|
|
37
|
+
.center.headline-caption
|
|
38
|
+
%h6 TICKETS SOLD
|
|
39
|
+
.span4
|
|
40
|
+
.center.headline-stat#tickets-remaining-stat
|
|
41
|
+
=@report.tickets_remaining
|
|
42
|
+
.center.headline-caption
|
|
43
|
+
%h6 TICKETS REMAINING
|
|
44
|
+
|
|
45
|
+
.row
|
|
46
|
+
.span12
|
|
47
|
+
%table.table.zebra#order-table
|
|
48
|
+
%thead
|
|
49
|
+
%tr
|
|
50
|
+
%th{:style=>'width:200px'} Pass
|
|
51
|
+
%th Order/Date
|
|
52
|
+
%th{:style=>'width:200px'} Person
|
|
53
|
+
%th Event
|
|
54
|
+
%th.right Tickets
|
|
55
|
+
%th.right Orig. Price
|
|
56
|
+
%th.right Gross
|
|
57
|
+
%tbody
|
|
58
|
+
-if @rows.empty?
|
|
59
|
+
%tr
|
|
60
|
+
%td{:colspan => 7}
|
|
61
|
+
.no-image#no-pass-sales
|
|
62
|
+
#text
|
|
63
|
+
=icon_tag '299-ticket'
|
|
64
|
+
%br
|
|
65
|
+
This pass hasn't been used to buy any tickets.
|
|
66
|
+
-@rows.each do |row|
|
|
67
|
+
%tr
|
|
68
|
+
%td=row.pass_type
|
|
69
|
+
%td
|
|
70
|
+
=link_to row.order.id, order_path(row.order)
|
|
71
|
+
%br
|
|
72
|
+
=l row.order.created_at, :format => :slashed_date
|
|
73
|
+
%td
|
|
74
|
+
=link_to row.order.person, person_path(row.order.person)
|
|
75
|
+
%td=link_to row.show.event.name, event_path(row.show.event)
|
|
76
|
+
%td.right=row.ticket_count
|
|
77
|
+
%td.right=number_as_cents row.original_price
|
|
78
|
+
%td.right=number_as_cents row.gross
|
|
79
|
+
|
|
80
|
+
= will_paginate(@rows)
|
|
@@ -68,10 +68,10 @@
|
|
|
68
68
|
%span Do Not Email
|
|
69
69
|
= form.submit "Save", :class => 'btn btn-primary hidden'
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
- with_kit(:mailchimp) do
|
|
72
|
+
%h5 Email Lists
|
|
73
|
+
%section#subscription-listing
|
|
74
|
+
= form_for @person do |form|
|
|
75
75
|
.mailchimp-list
|
|
76
76
|
- mailchimp_kit = @person.organization.kits.mailchimp
|
|
77
77
|
= hidden_field_tag "person[subscribed_lists][]", nil, :id => "person_subscribed_lists_empty"
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
= label_tag "", :class => "checkbox" do
|
|
80
80
|
= check_box_tag "person[subscribed_lists][]", list[:list_id], @person.subscribed_lists.include?(list[:list_id]), :class => "mail-chimp-list", :disabled => @person.do_not_email
|
|
81
81
|
%span= list[:list_name]
|
|
82
|
-
|
|
82
|
+
= form.submit "Save", :class => 'btn btn-primary hidden'
|
|
83
83
|
|
|
84
84
|
.span8
|
|
85
85
|
#notes
|
|
@@ -146,13 +146,14 @@
|
|
|
146
146
|
= render 'convert_to_company_modal'
|
|
147
147
|
#edit-order-popup.modal
|
|
148
148
|
|
|
149
|
-
-
|
|
150
|
-
.
|
|
151
|
-
.modal-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
149
|
+
-with_kit(:mailchimp) do
|
|
150
|
+
- if current_user.current_organization.kits.mailchimp
|
|
151
|
+
.modal#subscribe-modal(role="dialog")
|
|
152
|
+
.modal-header
|
|
153
|
+
%button(type="button" class="close" data-dismiss="modal" aria-hidden="true") ×
|
|
154
|
+
%h3 MailChimp List Subscription
|
|
155
|
+
.modal-body
|
|
156
|
+
%p #{@person} will receive an email from MailChimp confirming their addition to this list
|
|
157
|
+
.modal-footer
|
|
158
|
+
%button(class="btn" data-dismiss="modal" aria-hidden="true") Cancel
|
|
159
|
+
%button(class="btn btn-primary") OK
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
- content_for :header do
|
|
2
|
+
%h1 Configure 501(c)(3) Donation Kit
|
|
3
|
+
|
|
4
|
+
#edit-donation-kit
|
|
5
|
+
= form_for @kit do |f|
|
|
6
|
+
.row-fluid.bottom-room
|
|
7
|
+
.span3
|
|
8
|
+
= f.label :about_organization_text, 'About Your Organization', :class => 'control-label'
|
|
9
|
+
.guide
|
|
10
|
+
%p
|
|
11
|
+
Briefly describe your organization's activities and goals to a potential patron.
|
|
12
|
+
.span9
|
|
13
|
+
= f.text_area :about_organization_text, :class => 'input-xxlarge wysihtml5', :rows => 8
|
|
14
|
+
|
|
15
|
+
.row-fluid.bottom-room
|
|
16
|
+
.span3
|
|
17
|
+
= f.label :donation_ask_text, 'Donation Ask for Storefront', :class => 'control-label'
|
|
18
|
+
.guide
|
|
19
|
+
%p
|
|
20
|
+
Why should someone donate to your organization? This appeal appears on your Donation Storefront.
|
|
21
|
+
.span9
|
|
22
|
+
= f.text_area :donation_ask_text, :class => 'input-xxlarge wysihtml5', :rows => 8
|
|
23
|
+
|
|
24
|
+
.row-fluid.bottom-room
|
|
25
|
+
.span3
|
|
26
|
+
= f.label :donate_now_text, 'Navigation Button Name', :class => 'control-label'
|
|
27
|
+
.guide
|
|
28
|
+
%p
|
|
29
|
+
Customize the name of orange donate button on your Storefront navigation bar.
|
|
30
|
+
.span9
|
|
31
|
+
= f.text_field :donate_now_text, :class => 'input-xxlarge'
|
|
32
|
+
|
|
33
|
+
.row-fluid.bottom-room
|
|
34
|
+
.span3
|
|
35
|
+
= f.label :donation_nudge_text, 'Donation Nudge for Cart', :class => 'control-label'
|
|
36
|
+
.guide
|
|
37
|
+
%p
|
|
38
|
+
This short appeal appears in the shopping cart to encourage patrons to add a donation to their order.
|
|
39
|
+
.span9
|
|
40
|
+
= f.text_field :donation_nudge_text, :class => 'input-xxlarge'
|
|
41
|
+
|
|
42
|
+
.row-fluid.bottom-room
|
|
43
|
+
%hr
|
|
44
|
+
|
|
45
|
+
.row-fluid.bottom-room
|
|
46
|
+
.span3
|
|
47
|
+
= f.label :suggested_gifts, 'Suggested Gifts', :class => 'control-label'
|
|
48
|
+
.span9
|
|
49
|
+
- idx = 0
|
|
50
|
+
- Array(@kit.suggested_gifts).each do |s|
|
|
51
|
+
.suggested-gift-container
|
|
52
|
+
= f.text_field "suggested_gift_#{idx}_level_name", :name => "regular_donation_kit[suggested_gifts][#{idx}][level_name]",
|
|
53
|
+
:placeholder => 'Level Name (optional)',
|
|
54
|
+
:value => s['level_name'].present? ? s['level_name'] : ''
|
|
55
|
+
= f.text_field "suggested_gift_#{idx}_amount", :name => "regular_donation_kit[suggested_gifts][#{idx}][amount]",
|
|
56
|
+
:placeholder => '$ Amount',
|
|
57
|
+
:value => s['amount'].present? ? s['amount'] : ''
|
|
58
|
+
%a{ href: 'javascript:;', :class => 'suggested-gift-remove' }
|
|
59
|
+
Remove
|
|
60
|
+
- idx = idx + 1
|
|
61
|
+
.suggested-gift-container.new-suggested-gift-container
|
|
62
|
+
= f.text_field "suggested_gift_#{idx}_level_name", :name => "regular_donation_kit[suggested_gifts][#{idx}][level_name]",
|
|
63
|
+
:placeholder => 'Level Name (optional)',
|
|
64
|
+
:value => ''
|
|
65
|
+
= f.text_field "suggested_gift_#{idx}_amount", :name => "regular_donation_kit[suggested_gifts][#{idx}][amount]",
|
|
66
|
+
:placeholder => '$ Amount',
|
|
67
|
+
:value => ''
|
|
68
|
+
%a{ href: 'javascript:;', :class => 'suggested-gift-add' }
|
|
69
|
+
Add
|
|
70
|
+
|
|
71
|
+
.row-fluid.bottom-room
|
|
72
|
+
.span3
|
|
73
|
+
= f.label :open_gift_field, 'Display open gift field', :class => 'control-label'
|
|
74
|
+
.span9
|
|
75
|
+
= f.check_box :open_gift_field, :checked => @kit.open_gift_field.nil? || @kit.open_gift_field == '1'
|
|
76
|
+
|
|
77
|
+
.row-fluid.bottom-room
|
|
78
|
+
%hr
|
|
79
|
+
|
|
80
|
+
.row-fluid.bottom-room
|
|
81
|
+
.span3
|
|
82
|
+
= f.label :thanks_msg_text, 'Thanks Message', :class => 'control-label'
|
|
83
|
+
.guide
|
|
84
|
+
%p
|
|
85
|
+
This appears on the confirmation page after your patron makes a donation.
|
|
86
|
+
.span9
|
|
87
|
+
= f.text_area :thanks_msg_text, :class => 'input-xxlarge', :rows => 8
|
|
88
|
+
|
|
89
|
+
.row-fluid.bottom-room
|
|
90
|
+
.span3
|
|
91
|
+
= f.label :email_msg_text, 'Email Message', :class => 'control-label'
|
|
92
|
+
.guide
|
|
93
|
+
%p
|
|
94
|
+
This appears in the email order confirmation your patron receives after making a donation.
|
|
95
|
+
.span9
|
|
96
|
+
= f.text_area :email_msg_text, :class => 'input-xxlarge', :rows => 8
|
|
97
|
+
|
|
98
|
+
.row-fluid.bottom-room
|
|
99
|
+
%hr
|
|
100
|
+
|
|
101
|
+
.row-fluid.bottom-room
|
|
102
|
+
.span3
|
|
103
|
+
= f.label :donation_only_storefront, 'Donation-Only Storefront Link'
|
|
104
|
+
.span9
|
|
105
|
+
= link_to store_donate_url(@kit.organization.cached_slug).gsub(/^https?:\/+/, ''), store_donate_url(@kit.organization.cached_slug), :target => '_blank'
|
|
106
|
+
|
|
107
|
+
.row-fluid.bottom-room
|
|
108
|
+
.span3
|
|
109
|
+
= f.label :open_gift_field, 'Display Donation-Only Storefront', :class => 'control-label'
|
|
110
|
+
.span9
|
|
111
|
+
= f.check_box :donation_only_storefront
|
|
112
|
+
|
|
113
|
+
.row-fluid.bottom-room
|
|
114
|
+
.span3
|
|
115
|
+
 
|
|
116
|
+
.span9
|
|
117
|
+
=f.submit 'Save', :class => 'btn btn-primary'
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
#about_organization_text-preview-modal.modal
|
|
121
|
+
.modal-header
|
|
122
|
+
.close{'data-dismiss' => 'modal'} x
|
|
123
|
+
%h3 About Organization Text Preview
|
|
124
|
+
|
|
125
|
+
.modal-body
|
|
126
|
+
#about_organization_text-preview
|
|
127
|
+
(About Organization Text Preview)
|
|
128
|
+
.modal-footer
|
|
129
|
+
= link_to 'Close', '#', :class => 'btn', 'data-dismiss' => 'modal'
|
|
130
|
+
|
|
131
|
+
#donation_ask_text-preview-modal.modal
|
|
132
|
+
.modal-header
|
|
133
|
+
.close{'data-dismiss' => 'modal'} x
|
|
134
|
+
%h3 Donation Ask Preview
|
|
135
|
+
|
|
136
|
+
.modal-body
|
|
137
|
+
#donation_ask_text-preview
|
|
138
|
+
(Donation Ask Preview)
|
|
139
|
+
.modal-footer
|
|
140
|
+
= link_to 'Close', '#', :class => 'btn', 'data-dismiss' => 'modal'
|