artfully_ose 1.2.0.pre.27 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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'
|