cms-inquiries 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/admin/inquiries_controller.rb +41 -0
- data/app/controllers/admin/inquiry_settings_controller.rb +48 -0
- data/app/controllers/inquiries_controller.rb +43 -0
- data/app/helpers/inquiries_helper.rb +2 -0
- data/app/mailers/inquiry_mailer.rb +21 -0
- data/app/models/inquiry.rb +23 -0
- data/app/models/inquiry_setting.rb +47 -0
- data/app/views/admin/inquiries/_inquiry.html.erb +24 -0
- data/app/views/admin/inquiries/_submenu.html.erb +27 -0
- data/app/views/admin/inquiries/index.html.erb +30 -0
- data/app/views/admin/inquiries/show.html.erb +72 -0
- data/app/views/admin/inquiry_settings/_confirmation_email_form.html.erb +59 -0
- data/app/views/admin/inquiry_settings/_notification_recipients_form.html.erb +25 -0
- data/app/views/admin/inquiry_settings/edit.html.erb +5 -0
- data/app/views/inquiries/new.html.erb +34 -0
- data/app/views/inquiries/thank_you.html.erb +1 -0
- data/app/views/inquiry_mailer/confirmation.html.erb +1 -0
- data/app/views/inquiry_mailer/notification.html.erb +18 -0
- data/cms-inquiries.gemspec +98 -0
- data/config/locales/bg.yml +75 -0
- data/config/locales/cs.yml +75 -0
- data/config/locales/da.yml +68 -0
- data/config/locales/de.yml +76 -0
- data/config/locales/en-GB.yml +75 -0
- data/config/locales/en.yml +75 -0
- data/config/locales/es.yml +79 -0
- data/config/locales/fr.yml +76 -0
- data/config/locales/it.yml +77 -0
- data/config/locales/lolcat.yml +76 -0
- data/config/locales/lt.yml +76 -0
- data/config/locales/lv.yml +76 -0
- data/config/locales/nb.yml +75 -0
- data/config/locales/nl.yml +75 -0
- data/config/locales/pl.yml +76 -0
- data/config/locales/pt-BR.yml +76 -0
- data/config/locales/ru.yml +75 -0
- data/config/locales/sk.yml +75 -0
- data/config/locales/sl.yml +75 -0
- data/config/locales/sv.yml +75 -0
- data/config/locales/zh-CN.yml +75 -0
- data/config/routes.rb +23 -0
- data/db/migrate/20101208082840_create_inquiries.rb +31 -0
- data/db/migrate/20101208082841_remove_position_and_open_from_inquiries.rb +11 -0
- data/db/migrate/20110719082646_drop_inquiry_settings_table.rb +11 -0
- data/db/seeds/pages_for_inquiries.rb +55 -0
- data/features/create_inquiries.feature +38 -0
- data/features/manage_inquiries.feature +57 -0
- data/features/step_definitions/inquiry_steps.rb +25 -0
- data/features/support/factories.rb +7 -0
- data/features/support/paths.rb +26 -0
- data/lib/gemspec.rb +29 -0
- data/lib/generators/refinerycms_inquiries_generator.rb +6 -0
- data/lib/inquiries.rb +2 -0
- data/lib/refinerycms-inquiries.rb +24 -0
- data/license.md +21 -0
- data/readme.md +49 -0
- data/spec/models/inquiry_spec.rb +59 -0
- metadata +135 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
class Admin::InquiriesController < Admin::BaseController
|
2
|
+
|
3
|
+
crudify :inquiry, :title_attribute => "name", :order => "created_at DESC"
|
4
|
+
helper_method :group_by_date
|
5
|
+
|
6
|
+
before_filter :find_all_ham, :only => [:index]
|
7
|
+
before_filter :find_all_spam, :only => [:spam]
|
8
|
+
before_filter :get_spam_count, :only => [:index, :spam]
|
9
|
+
|
10
|
+
def index
|
11
|
+
@inquiries = @inquiries.with_query(params[:search]) if searching?
|
12
|
+
@inquiries = @inquiries.paginate({:page => params[:page]})
|
13
|
+
end
|
14
|
+
|
15
|
+
def spam
|
16
|
+
self.index
|
17
|
+
render :action => 'index'
|
18
|
+
end
|
19
|
+
|
20
|
+
def toggle_spam
|
21
|
+
find_inquiry
|
22
|
+
@inquiry.toggle!(:spam)
|
23
|
+
|
24
|
+
redirect_to :back
|
25
|
+
end
|
26
|
+
|
27
|
+
protected
|
28
|
+
|
29
|
+
def find_all_ham
|
30
|
+
@inquiries = Inquiry.ham
|
31
|
+
end
|
32
|
+
|
33
|
+
def find_all_spam
|
34
|
+
@inquiries = Inquiry.spam
|
35
|
+
end
|
36
|
+
|
37
|
+
def get_spam_count
|
38
|
+
@spam_count = Inquiry.count(:conditions => {:spam => true})
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
class Admin::InquirySettingsController < Admin::BaseController
|
2
|
+
|
3
|
+
crudify :refinery_setting,
|
4
|
+
:title_attribute => "name",
|
5
|
+
:order => 'name ASC',
|
6
|
+
:redirect_to_url => "admin_inquiries_url"
|
7
|
+
|
8
|
+
before_filter :set_url_override?, :only => [:edit, :update]
|
9
|
+
after_filter :save_subject_for_confirmation?, :only => :update
|
10
|
+
after_filter :save_message_for_confirmation?, :only => :update
|
11
|
+
around_filter :rewrite_flash?, :only => :update
|
12
|
+
|
13
|
+
protected
|
14
|
+
def rewrite_flash?
|
15
|
+
yield
|
16
|
+
|
17
|
+
flash[:notice] = flash[:notice].to_s.gsub(/(\'.*\')/) {|m| m.titleize}.gsub('Inquiry ', '')
|
18
|
+
end
|
19
|
+
|
20
|
+
def save_subject_for_confirmation?
|
21
|
+
InquirySetting.confirmation_subject = params[:subject] if params.keys.include?('subject')
|
22
|
+
end
|
23
|
+
|
24
|
+
def save_message_for_confirmation?
|
25
|
+
InquirySetting.confirmation_message = params[:message] if params.keys.include?('message')
|
26
|
+
end
|
27
|
+
|
28
|
+
def set_url_override?
|
29
|
+
@url_override = admin_inquiry_setting_url(@refinery_setting, :dialog => from_dialog?)
|
30
|
+
end
|
31
|
+
|
32
|
+
def find_refinery_setting
|
33
|
+
# ensure that we're dealing with the name of the setting, not the id.
|
34
|
+
begin
|
35
|
+
if params[:id].to_i.to_s == params[:id]
|
36
|
+
params[:id] = RefinerySetting.find(params[:id]).name.to_s
|
37
|
+
end
|
38
|
+
rescue
|
39
|
+
end
|
40
|
+
|
41
|
+
# prime the setting first, if it's valid.
|
42
|
+
if InquirySetting.methods.map(&:to_sym).include?(params[:id].to_s.gsub('inquiry_', '').to_sym)
|
43
|
+
InquirySetting.send(params[:id].to_s.gsub('inquiry_', '').to_sym)
|
44
|
+
end
|
45
|
+
@refinery_setting = RefinerySetting.find_by_name(params[:id])
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
class InquiriesController < ApplicationController
|
2
|
+
|
3
|
+
before_filter :find_page, :only => [:create, :new]
|
4
|
+
|
5
|
+
def thank_you
|
6
|
+
@page = Page.find_by_link_url("/contact/thank_you", :include => [:parts, :slugs])
|
7
|
+
end
|
8
|
+
|
9
|
+
def new
|
10
|
+
@inquiry = Inquiry.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def create
|
14
|
+
@inquiry = Inquiry.new(params[:inquiry])
|
15
|
+
|
16
|
+
if @inquiry.save
|
17
|
+
if @inquiry.ham?
|
18
|
+
begin
|
19
|
+
InquiryMailer.notification(@inquiry, request).deliver
|
20
|
+
rescue
|
21
|
+
logger.warn "There was an error delivering an inquiry notification.\n#{$!}\n"
|
22
|
+
end
|
23
|
+
|
24
|
+
begin
|
25
|
+
InquiryMailer.confirmation(@inquiry, request).deliver
|
26
|
+
rescue
|
27
|
+
logger.warn "There was an error delivering an inquiry confirmation:\n#{$!}\n"
|
28
|
+
end if InquirySetting.send_confirmation?
|
29
|
+
end
|
30
|
+
|
31
|
+
redirect_to thank_you_inquiries_url
|
32
|
+
else
|
33
|
+
render :action => 'new'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
protected
|
38
|
+
|
39
|
+
def find_page
|
40
|
+
@page = Page.find_by_link_url('/contact', :include => [:parts, :slugs])
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class InquiryMailer < ActionMailer::Base
|
2
|
+
|
3
|
+
def confirmation(inquiry, request)
|
4
|
+
subject InquirySetting.confirmation_subject(Globalize.locale)
|
5
|
+
recipients inquiry.email
|
6
|
+
from "\"#{RefinerySetting[:site_name]}\" <no-reply@#{request.domain(RefinerySetting.find_or_set(:tld_length, 1))}>"
|
7
|
+
reply_to InquirySetting.notification_recipients.split(',').first
|
8
|
+
sent_on Time.now
|
9
|
+
@inquiry = inquiry
|
10
|
+
end
|
11
|
+
|
12
|
+
def notification(inquiry, request)
|
13
|
+
subject InquirySetting.notification_subject
|
14
|
+
recipients InquirySetting.notification_recipients
|
15
|
+
from "\"#{RefinerySetting[:site_name]}\" <no-reply@#{request.domain(RefinerySetting.find_or_set(:tld_length, 1))}>"
|
16
|
+
reply_to inquiry.email
|
17
|
+
sent_on Time.now
|
18
|
+
@inquiry = inquiry
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class Inquiry < ActiveRecord::Base
|
2
|
+
|
3
|
+
filters_spam :message_field => :message,
|
4
|
+
:email_field => :email,
|
5
|
+
:author_field => :name,
|
6
|
+
:other_fields => [:phone],
|
7
|
+
:extra_spam_words => %w()
|
8
|
+
|
9
|
+
validates :name, :presence => true
|
10
|
+
validates :message, :presence => true
|
11
|
+
validates :email, :format=> { :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i }
|
12
|
+
|
13
|
+
acts_as_indexed :fields => [:name, :email, :message, :phone]
|
14
|
+
|
15
|
+
default_scope :order => 'created_at DESC' # previously scope :newest
|
16
|
+
|
17
|
+
attr_accessible :name, :phone, :message, :email
|
18
|
+
|
19
|
+
def self.latest(number = 7, include_spam = false)
|
20
|
+
include_spam ? limit(number) : ham.limit(number)
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
class InquirySetting < ActiveRecord::Base
|
2
|
+
|
3
|
+
class << self
|
4
|
+
def confirmation_body
|
5
|
+
RefinerySetting.find_or_set(:inquiry_confirmation_body,
|
6
|
+
"Thank you for your inquiry %name%,\n\nThis email is a receipt to confirm we have received your inquiry and we'll be in touch shortly.\n\nThanks."
|
7
|
+
)
|
8
|
+
end
|
9
|
+
|
10
|
+
def confirmation_subject(locale='en')
|
11
|
+
RefinerySetting.find_or_set("inquiry_confirmation_subject_#{locale}".to_sym,
|
12
|
+
"Thank you for your inquiry")
|
13
|
+
end
|
14
|
+
|
15
|
+
def confirmation_subject=(value)
|
16
|
+
value.first.keys.each do |locale|
|
17
|
+
RefinerySetting.set("inquiry_confirmation_subject_#{locale}".to_sym, value.first[locale.to_sym])
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def confirmation_message(locale='en')
|
22
|
+
RefinerySetting.find_or_set("inquiry_confirmation_messeage_#{locale}".to_sym,
|
23
|
+
RefinerySetting[:inquiry_confirmation_body])
|
24
|
+
end
|
25
|
+
|
26
|
+
def confirmation_message=(value)
|
27
|
+
value.first.keys.each do |locale|
|
28
|
+
RefinerySetting.set("inquiry_confirmation_messeage_#{locale}".to_sym, value.first[locale.to_sym])
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def notification_recipients
|
33
|
+
RefinerySetting.find_or_set(:inquiry_notification_recipients,
|
34
|
+
((Role[:refinery].users.first.email rescue nil) if defined?(Role)).to_s)
|
35
|
+
end
|
36
|
+
|
37
|
+
def notification_subject
|
38
|
+
RefinerySetting.find_or_set(:inquiry_notification_subject,
|
39
|
+
"New inquiry from your website")
|
40
|
+
end
|
41
|
+
|
42
|
+
def send_confirmation?
|
43
|
+
RefinerySetting.find_or_set(:inquiry_send_confirmation, true)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<li class='clearfix record <%= cycle("on", "on-hover") %>'>
|
2
|
+
<span class='title'>
|
3
|
+
<%= link_to inquiry.name, admin_inquiry_url(inquiry) %> <%= t('.said') %>
|
4
|
+
<span class="preview"><%= truncate(strip_tags(inquiry.message), :length => 60) -%></span>
|
5
|
+
</span>
|
6
|
+
<span class='actions'>
|
7
|
+
<%= link_to refinery_icon_tag('delete.png'), admin_inquiry_url(inquiry),
|
8
|
+
{ :method => :delete,
|
9
|
+
:confirm => t('shared.admin.delete.message', :title => inquiry.name) },
|
10
|
+
:class => "cancel confirm-delete",
|
11
|
+
:title => t('admin.inquiries.delete') -%>
|
12
|
+
|
13
|
+
<%= link_to refinery_icon_tag('zoom.png'), admin_inquiry_url(inquiry),
|
14
|
+
:title => t('.read_inquiry') -%>
|
15
|
+
|
16
|
+
<% if inquiry.spam? %>
|
17
|
+
<%= link_to refinery_icon_tag('email.png'), toggle_spam_admin_inquiry_url(inquiry),
|
18
|
+
:title => t('.mark_as_ham') -%>
|
19
|
+
<% else %>
|
20
|
+
<%= link_to refinery_icon_tag('bin_closed.png'), toggle_spam_admin_inquiry_url(inquiry),
|
21
|
+
:title => t('.mark_as_spam') -%>
|
22
|
+
<% end %>
|
23
|
+
</span>
|
24
|
+
</li>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<div id='actions'>
|
2
|
+
<ul>
|
3
|
+
<li>
|
4
|
+
<%= render :partial => "/shared/admin/search", :locals => {:url => request.path} %>
|
5
|
+
</li>
|
6
|
+
<li <%= "class='selected'" if params[:action] == "index" %>>
|
7
|
+
<%= link_to t('.inbox'), admin_inquiries_url, :class => "email_icon" %>
|
8
|
+
</li>
|
9
|
+
<li <%= "class='selected'" if params[:action] == "spam" %>>
|
10
|
+
<% if @spam_count > 0 %>
|
11
|
+
<%= link_to "#{t('.spam')} (#{@spam_count})", spam_admin_inquiries_url, :class => "spam_icon" %>
|
12
|
+
<% else %>
|
13
|
+
<%= link_to t('.spam'), spam_admin_inquiries_url, :class => "spam_empty_icon" %>
|
14
|
+
<% end %>
|
15
|
+
</li>
|
16
|
+
<li>
|
17
|
+
<%= link_to t('.update_notified'),
|
18
|
+
edit_admin_inquiry_setting_url(:inquiry_notification_recipients, :dialog => true, :height => 300),
|
19
|
+
:class => "user_comment_icon" %>
|
20
|
+
</li>
|
21
|
+
<li>
|
22
|
+
<%= link_to t('.edit_confirmation_email'),
|
23
|
+
edit_admin_inquiry_setting_url(:inquiry_confirmation_body, :dialog => true),
|
24
|
+
:class => "edit_email_icon" %>
|
25
|
+
</li>
|
26
|
+
</ul>
|
27
|
+
</div>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<%= render :partial => "submenu" %>
|
2
|
+
<div id='records'>
|
3
|
+
<% if searching? %>
|
4
|
+
<h2><%= t('shared.admin.search.results_for', :query => params[:search]) %></h2>
|
5
|
+
<% if @inquiries.any? %>
|
6
|
+
<%= will_paginate @inquiries %>
|
7
|
+
<ul>
|
8
|
+
<%= render :partial => "inquiry", :collection => @inquiries %>
|
9
|
+
</ul>
|
10
|
+
<%= will_paginate @inquiries %>
|
11
|
+
<% else %>
|
12
|
+
<p><%= t('shared.admin.search.no_results') %></p>
|
13
|
+
<% end %>
|
14
|
+
<% else %>
|
15
|
+
<% if @inquiries.any? -%>
|
16
|
+
<%= will_paginate @inquiries %>
|
17
|
+
<% group_by_date(@inquiries).each do |container| %>
|
18
|
+
<h3><%= l((inquiry_group = container.last).first.created_at, :format => :short) %></h3>
|
19
|
+
<ul>
|
20
|
+
<%= render :partial => 'inquiry', :collection => inquiry_group %>
|
21
|
+
</ul>
|
22
|
+
<% end %>
|
23
|
+
<%= will_paginate @inquiries %>
|
24
|
+
<% else -%>
|
25
|
+
<p>
|
26
|
+
<strong><%= t(".no_#{action_name == 'index' ? 'inquiries' : 'spam'}") %></strong>
|
27
|
+
</p>
|
28
|
+
<% end -%>
|
29
|
+
<% end %>
|
30
|
+
</div>
|
@@ -0,0 +1,72 @@
|
|
1
|
+
<div id='actions'>
|
2
|
+
<h2><%= t('.details')%></h2>
|
3
|
+
<p>
|
4
|
+
<strong><%= t('.age') %>:</strong> <%= time_ago_in_words(@inquiry.created_at) %>
|
5
|
+
</p>
|
6
|
+
<% if @inquiry.spam? %>
|
7
|
+
<p>
|
8
|
+
<strong><%= t('.spam') %>:</strong> <%= t('.spam_yes') %>
|
9
|
+
</p>
|
10
|
+
<% end %>
|
11
|
+
<h2><%= t('.actions') %></h2>
|
12
|
+
<ul>
|
13
|
+
<li>
|
14
|
+
<%= link_to t('.back_to_all_inquiries'), {:action => 'index'}, :class => "back_icon" %>
|
15
|
+
</li>
|
16
|
+
<li>
|
17
|
+
<%= link_to t('admin.inquiries.delete'),
|
18
|
+
admin_inquiry_url(@inquiry),
|
19
|
+
:class => 'delete_icon no-tooltip confirm-delete',
|
20
|
+
:title => t('admin.inquiries.delete'),
|
21
|
+
:confirm => t('shared.admin.delete.message', :title => @inquiry.name),
|
22
|
+
:method => :delete %>
|
23
|
+
</li>
|
24
|
+
</ul>
|
25
|
+
</div>
|
26
|
+
<div id='records'>
|
27
|
+
<h2><%= t('.inquiry') %></h2>
|
28
|
+
<table id='inquiry'>
|
29
|
+
<tr>
|
30
|
+
<td>
|
31
|
+
<strong><%= t('.to') %></strong>
|
32
|
+
</td>
|
33
|
+
<td>
|
34
|
+
<%= RefinerySetting[:site_name] %>
|
35
|
+
</td>
|
36
|
+
</tr>
|
37
|
+
<tr>
|
38
|
+
<td>
|
39
|
+
<strong><%= t('.from') %></strong>
|
40
|
+
</td>
|
41
|
+
<td>
|
42
|
+
<%= @inquiry.name %> [<%= mail_to @inquiry.email, @inquiry.email, {:title => t('.click_to_email')} %>]
|
43
|
+
</td>
|
44
|
+
</tr>
|
45
|
+
<% unless @inquiry.phone.blank? %>
|
46
|
+
<tr>
|
47
|
+
<td>
|
48
|
+
<strong><%= t('.phone') %></strong>
|
49
|
+
</td>
|
50
|
+
<td>
|
51
|
+
<%= @inquiry.phone %>
|
52
|
+
</td>
|
53
|
+
</tr>
|
54
|
+
<% end %>
|
55
|
+
<tr>
|
56
|
+
<td>
|
57
|
+
<strong><%= t('.date') %></strong>
|
58
|
+
</td>
|
59
|
+
<td>
|
60
|
+
<%= l(Date.parse(@inquiry.created_at.to_s), :format => :long) %>
|
61
|
+
</td>
|
62
|
+
</tr>
|
63
|
+
<tr>
|
64
|
+
<td valign='top'>
|
65
|
+
<strong><%= t('.message') %></strong>
|
66
|
+
</td>
|
67
|
+
<td>
|
68
|
+
<%= simple_format strip_tags(@inquiry.message), :style => 'margin-top: 0' %>
|
69
|
+
</td>
|
70
|
+
</tr>
|
71
|
+
</table>
|
72
|
+
</div>
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<%= form_for([:admin, @refinery_setting], :url => (@url_override || @url)) do |f| %>
|
2
|
+
|
3
|
+
<p>
|
4
|
+
<%= t('.explanation') %>
|
5
|
+
</p>
|
6
|
+
<p>
|
7
|
+
<%= t('.below_edit_email_sent') %>
|
8
|
+
</p>
|
9
|
+
<table id='inquiry'>
|
10
|
+
<tr>
|
11
|
+
<td>
|
12
|
+
<label class='stripped'><%= t('.to') %></label>
|
13
|
+
</td>
|
14
|
+
<td>
|
15
|
+
<%= t('.the_customer_making_inquiry') %>
|
16
|
+
</td>
|
17
|
+
</tr>
|
18
|
+
<tr>
|
19
|
+
<td>
|
20
|
+
<label class='stripped'><%= t('.from') %></label>
|
21
|
+
</td>
|
22
|
+
<td>
|
23
|
+
<%= "#{RefinerySetting[:site_name]} <no-reply@#{request.domain(RefinerySetting.find_or_set(:tld_length, 1))}>".html_safe %>
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<% (RefinerySetting.get("i18n_translation_frontend_locales", :scoping => 'refinery')||[I18n.locale]).each do |locale| %>
|
27
|
+
<tr>
|
28
|
+
<td>
|
29
|
+
<label class='stripped'><%= t('.subject') %> (<%= locale.to_s %>)</label>
|
30
|
+
</td>
|
31
|
+
<td>
|
32
|
+
<%= text_field_tag "subject[][#{locale.to_s}]", InquirySetting.confirmation_subject(locale),
|
33
|
+
:class => 'widest' %>
|
34
|
+
</td>
|
35
|
+
</tr>
|
36
|
+
<tr>
|
37
|
+
<td valign='top'>
|
38
|
+
<%= f.label :value, t('.message'),
|
39
|
+
:class => 'stripped' %> (<%= locale.to_s %>)
|
40
|
+
</td>
|
41
|
+
<td>
|
42
|
+
<%= text_area_tag "message[][#{locale.to_s}]", InquirySetting.confirmation_message(locale), # required, we can't use :value
|
43
|
+
:rows => "5",
|
44
|
+
:class => 'widest' %>
|
45
|
+
<br/>
|
46
|
+
<em><%= t('.note') %></em>
|
47
|
+
</td>
|
48
|
+
</tr>
|
49
|
+
<% end %>
|
50
|
+
</table>
|
51
|
+
|
52
|
+
<%= render :partial => "/shared/admin/form_actions",
|
53
|
+
:locals => {
|
54
|
+
:f => f,
|
55
|
+
:continue_editing => false,
|
56
|
+
:cancel_url => admin_inquiries_url,
|
57
|
+
:hide_delete => true
|
58
|
+
} %>
|
59
|
+
<% end %>
|