smsonrails 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/MIT-LICENSE +20 -0
- data/Manifest +101 -0
- data/README.rdoc +211 -0
- data/Rakefile +109 -0
- data/app/controllers/admin/sms_on_rails/base_controller.rb +11 -0
- data/app/controllers/admin/sms_on_rails/drafts_controller.rb +75 -0
- data/app/controllers/admin/sms_on_rails/outbounds_controller.rb +117 -0
- data/app/controllers/admin/sms_on_rails/phone_carriers_controller.rb +85 -0
- data/app/controllers/admin/sms_on_rails/phone_numbers_controller.rb +101 -0
- data/app/controllers/sms_on_rails/creation_support.rb +99 -0
- data/app/controllers/sms_on_rails_controller.rb +14 -0
- data/app/helpers/admin/sms_on_rails/drafts_helper.rb +2 -0
- data/app/helpers/admin/sms_on_rails/phone_carriers_helper.rb +2 -0
- data/app/helpers/sms_on_rails/phone_numbers_helper.rb +9 -0
- data/app/helpers/sms_on_rails/sms_helper.rb +44 -0
- data/app/models/sms_on_rails/draft.rb +9 -0
- data/app/models/sms_on_rails/outbound.rb +17 -0
- data/app/models/sms_on_rails/phone_carrier.rb +14 -0
- data/app/models/sms_on_rails/phone_number.rb +8 -0
- data/app/views/admin/sms_on_rails/base/index.html.erb +5 -0
- data/app/views/admin/sms_on_rails/drafts/_show.html.erb +34 -0
- data/app/views/admin/sms_on_rails/drafts/edit.html.erb +36 -0
- data/app/views/admin/sms_on_rails/drafts/index.html.erb +32 -0
- data/app/views/admin/sms_on_rails/drafts/new.html.erb +34 -0
- data/app/views/admin/sms_on_rails/drafts/send_sms.html.erb +3 -0
- data/app/views/admin/sms_on_rails/drafts/show.html.erb +4 -0
- data/app/views/admin/sms_on_rails/outbounds/edit.html.erb +68 -0
- data/app/views/admin/sms_on_rails/outbounds/index.html.erb +37 -0
- data/app/views/admin/sms_on_rails/outbounds/new.html.erb +54 -0
- data/app/views/admin/sms_on_rails/outbounds/show.html.erb +69 -0
- data/app/views/admin/sms_on_rails/phone_carriers/edit.html.erb +24 -0
- data/app/views/admin/sms_on_rails/phone_carriers/index.html.erb +24 -0
- data/app/views/admin/sms_on_rails/phone_carriers/new.html.erb +22 -0
- data/app/views/admin/sms_on_rails/phone_carriers/show.html.erb +24 -0
- data/app/views/admin/sms_on_rails/phone_numbers/edit.html.erb +33 -0
- data/app/views/admin/sms_on_rails/phone_numbers/index.html.erb +28 -0
- data/app/views/admin/sms_on_rails/phone_numbers/new.html.erb +31 -0
- data/app/views/admin/sms_on_rails/phone_numbers/show.html.erb +32 -0
- data/app/views/layouts/sms_on_rails/basic.html.erb +26 -0
- data/app/views/sms_on_rails/_phone_carrier_form_item.html.erb +6 -0
- data/app/views/sms_on_rails/_send_sms.html.erb +33 -0
- data/app/views/sms_on_rails/index.html.erb +8 -0
- data/app/views/sms_on_rails/send_sms.html.erb +3 -0
- data/app/views/sms_on_rails/show.html.erb +29 -0
- data/config/routes.rb +19 -0
- data/db/data/fixtures/sms_phone_carriers.yml +110 -0
- data/db/migrate/sms_on_rails_carrier_tables.rb +9 -0
- data/db/migrate/sms_on_rails_model_tables.rb +48 -0
- data/db/migrate/sms_on_rails_phone_number_tables.rb +11 -0
- data/db/seed_data.rb +16 -0
- data/generators/sms_on_rails/USAGE +31 -0
- data/generators/sms_on_rails/commands/inserts.rb +63 -0
- data/generators/sms_on_rails/commands/timestamps.rb +33 -0
- data/generators/sms_on_rails/runners/add_all_models.rb +6 -0
- data/generators/sms_on_rails/runners/dependencies.rb +1 -0
- data/generators/sms_on_rails/runners/remove_all_models.rb +5 -0
- data/generators/sms_on_rails/runners/sms_on_rails_routes.rb +14 -0
- data/generators/sms_on_rails/sms_on_rails_generator.rb +255 -0
- data/generators/sms_on_rails/templates/configuration/clickatell.rb +6 -0
- data/generators/sms_on_rails/templates/configuration/email_gateway.rb +7 -0
- data/generators/sms_on_rails/templates/migrate/schema_migration.rb +15 -0
- data/generators/sms_on_rails/templates/migrate/sms_on_rails_update_phone_numbers.rb +40 -0
- data/generators/sms_on_rails/templates/phone_number_collision.rb +2 -0
- data/init.rb +3 -0
- data/install.rb +1 -0
- data/lib/sms_on_rails.rb +10 -0
- data/lib/sms_on_rails/activerecord_extensions/acts_as_deliverable.rb +92 -0
- data/lib/sms_on_rails/activerecord_extensions/acts_as_substitutable.rb +80 -0
- data/lib/sms_on_rails/activerecord_extensions/has_a_sms_service_provider.rb +101 -0
- data/lib/sms_on_rails/activerecord_extensions/lockable_record.rb +186 -0
- data/lib/sms_on_rails/all_models.rb +3 -0
- data/lib/sms_on_rails/model_support/draft.rb +178 -0
- data/lib/sms_on_rails/model_support/outbound.rb +136 -0
- data/lib/sms_on_rails/model_support/phone_carrier.rb +77 -0
- data/lib/sms_on_rails/model_support/phone_number.rb +248 -0
- data/lib/sms_on_rails/model_support/phone_number_associations.rb +13 -0
- data/lib/sms_on_rails/schema_helper.rb +51 -0
- data/lib/sms_on_rails/service_providers/base.rb +222 -0
- data/lib/sms_on_rails/service_providers/clickatell.rb +52 -0
- data/lib/sms_on_rails/service_providers/dummy.rb +19 -0
- data/lib/sms_on_rails/service_providers/email_gateway.rb +68 -0
- data/lib/sms_on_rails/service_providers/email_gateway_support/errors.rb +20 -0
- data/lib/sms_on_rails/service_providers/email_gateway_support/sms_mailer.rb +21 -0
- data/lib/sms_on_rails/service_providers/email_gateway_support/sms_mailer/sms_through_gateway.erb +6 -0
- data/lib/sms_on_rails/util/sms_error.rb +12 -0
- data/lib/smsonrails.rb +1 -0
- data/public/images/sms_on_rails/railsYoDawg.jpg +0 -0
- data/public/stylesheets/sms_on_rails.css +137 -0
- data/tasks/sms_on_rails_tasks.rake +67 -0
- data/test/active_record_extensions/delivery_and_locking_test.rb +84 -0
- data/test/models/draft_test.rb +72 -0
- data/test/models/outbound_test.rb +89 -0
- data/test/models/phone_number_test.rb +131 -0
- data/test/run.rb +19 -0
- data/test/service_providers/abstract_test_support.rb +104 -0
- data/test/service_providers/clickatell_test.rb +37 -0
- data/test/service_providers/email_gateway_test.rb +30 -0
- data/test/test_helper.rb +24 -0
- data/uninstall.rb +1 -0
- metadata +201 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
class SmsOnRailsController < ApplicationController
|
2
|
+
helper SmsOnRails::SmsHelper
|
3
|
+
helper SmsOnRails::PhoneNumbersHelper
|
4
|
+
|
5
|
+
include SmsOnRails::CreationSupport
|
6
|
+
layout 'sms_on_rails/basic.html'
|
7
|
+
|
8
|
+
def index
|
9
|
+
respond_to do |format|
|
10
|
+
format.html { render :action => 'index.html.erb' }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module SmsOnRails::PhoneNumbersHelper
|
2
|
+
def phone_carriers_collection_select(form)
|
3
|
+
form.collection_select('carrier_id',SmsOnRails::PhoneCarrier.find(:all), :id, :name)
|
4
|
+
end
|
5
|
+
|
6
|
+
def phone_number_carrier_link(phone_number)
|
7
|
+
link_to(phone_number.carrier.name, sms_phone_carrier_path(phone_number.carrier_id)) if phone_number.carrier
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# To change this template, choose Tools | Templates
|
2
|
+
# and open the template in the editor.
|
3
|
+
|
4
|
+
module SmsOnRails::SmsHelper
|
5
|
+
def link_to_sms_phone_number(phone_number)
|
6
|
+
return '' unless phone_number
|
7
|
+
link_to phone_number.human_display, sms_phone_number_url(:id => phone_number)
|
8
|
+
end
|
9
|
+
|
10
|
+
def link_to_sms_draft(draft, message=nil)
|
11
|
+
return '' unless draft
|
12
|
+
link_to((message||draft.message), sms_draft_url(:id => draft))
|
13
|
+
end
|
14
|
+
|
15
|
+
def service_providers_collection_select(form)
|
16
|
+
@@spc_select||= form.select(:sms_service_provider_id,
|
17
|
+
SmsOnRails::ServiceProviders::Base.provider_list.collect{|x| [ x.human_name, x.provider_id ]},
|
18
|
+
:include_blank => true)
|
19
|
+
end
|
20
|
+
|
21
|
+
def sms_on_rails_status_select(form, options={})
|
22
|
+
form.select(:status, form.object.class.locrec_status.values.collect{|x| [x.titleize, x]},
|
23
|
+
options)
|
24
|
+
end
|
25
|
+
|
26
|
+
def requires_phone_carrier?
|
27
|
+
SmsOnRails::ServiceProviders::Base.default_service_provider.requires_carrier?
|
28
|
+
end
|
29
|
+
|
30
|
+
def send_sms_form_url
|
31
|
+
{:controller => controller_name, :action => :create,
|
32
|
+
:send_immediately => true,
|
33
|
+
:previous_action => (params[:previous_action]|| params[:action])}
|
34
|
+
end
|
35
|
+
|
36
|
+
def staggered_table_rows(objs, &block)
|
37
|
+
objs.each_with_index do |obj, idx|
|
38
|
+
concat("<tr class=\"#{idx % 2 == 0 ? 'even' : 'odd'}\"")
|
39
|
+
yield(obj)
|
40
|
+
concat("</tr>")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module SmsOnRails
|
2
|
+
class Outbound < ActiveRecord::Base
|
3
|
+
set_table_name 'sms_outbounds'
|
4
|
+
belongs_to :draft, :class_name => 'SmsOnRails::Draft', :foreign_key => :sms_draft_id
|
5
|
+
belongs_to :phone_number, :class_name => 'SmsOnRails::PhoneNumber', :foreign_key => :sms_phone_number_id
|
6
|
+
|
7
|
+
#adding this here instead of support since might not want it
|
8
|
+
#for performance reasons
|
9
|
+
validates_uniqueness_of :sms_phone_number_id,
|
10
|
+
:scope => :sms_draft_id,
|
11
|
+
:message => 'is already included as an outbound for this draft',
|
12
|
+
:if => Proc.new { |outbound| outbound.sms_draft_id }
|
13
|
+
|
14
|
+
include SmsOnRails::ModelSupport::Outbound
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module SmsOnRails
|
2
|
+
class PhoneCarrier < ActiveRecord::Base
|
3
|
+
|
4
|
+
set_table_name 'sms_phone_carriers'
|
5
|
+
|
6
|
+
acts_as_static_record :key => :name
|
7
|
+
|
8
|
+
has_many :phone_numbers, :class_name => 'SmsOnRails::PhoneNumber',
|
9
|
+
:foreign_key => 'carrier_id', :dependent => :nullify
|
10
|
+
|
11
|
+
include SmsOnRails::ModelSupport::PhoneCarrier
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<p>
|
2
|
+
<b>Id:</b>
|
3
|
+
<%= h @draft.id %>
|
4
|
+
</p>
|
5
|
+
<p>
|
6
|
+
<b>Message:</b>
|
7
|
+
<%=h @draft.message %>
|
8
|
+
</p>
|
9
|
+
|
10
|
+
<p>
|
11
|
+
<b>Header:</b>
|
12
|
+
<%=h @draft.header %>
|
13
|
+
</p>
|
14
|
+
|
15
|
+
<p>
|
16
|
+
<b>Footer:</b>
|
17
|
+
<%=h @draft.footer %>
|
18
|
+
</p>
|
19
|
+
|
20
|
+
<p>
|
21
|
+
<b>Status:</b>
|
22
|
+
<%=h @draft.status %>
|
23
|
+
</p>
|
24
|
+
|
25
|
+
<p>
|
26
|
+
<b>Deliver after:</b>
|
27
|
+
<%=h @draft.deliver_after %>
|
28
|
+
</p>
|
29
|
+
|
30
|
+
<p>
|
31
|
+
<b>Delivery date:</b>
|
32
|
+
<%=h @draft.delivery_date %>
|
33
|
+
</p>
|
34
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<h1>Editing draft</h1>
|
2
|
+
|
3
|
+
<% form_for(:draft, @draft, :url => sms_draft_path, :html => {:method => :put}) do |f| %>
|
4
|
+
<%= f.error_messages %>
|
5
|
+
|
6
|
+
<p>
|
7
|
+
<%= f.label :message %><br />
|
8
|
+
<%= f.text_field :message %>
|
9
|
+
</p>
|
10
|
+
<p>
|
11
|
+
<%= f.label :header %><br />
|
12
|
+
<%= f.text_field :header %>
|
13
|
+
</p>
|
14
|
+
<p>
|
15
|
+
<%= f.label :footer %><br />
|
16
|
+
<%= f.text_field :footer %>
|
17
|
+
</p>
|
18
|
+
<p>
|
19
|
+
<%= f.label :status %><br />
|
20
|
+
<%= sms_on_rails_status_select f %>
|
21
|
+
</p>
|
22
|
+
<p>
|
23
|
+
<%= f.label :deliver_after %><br />
|
24
|
+
<%= f.datetime_select :deliver_after %>
|
25
|
+
</p>
|
26
|
+
<p>
|
27
|
+
<%= f.label :delivery_date %><br />
|
28
|
+
<%= f.datetime_select :delivery_date %>
|
29
|
+
</p>
|
30
|
+
<p>
|
31
|
+
<%= f.submit 'Update' %>
|
32
|
+
</p>
|
33
|
+
<% end %>
|
34
|
+
|
35
|
+
<%= link_to 'Show', sms_draft_path(@draft) %> |
|
36
|
+
<%= link_to 'Back', sms_drafts_path %>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<h1>SMS Drafts</h1>
|
2
|
+
|
3
|
+
<table class="stagger">
|
4
|
+
<tr>
|
5
|
+
<th class="short">Id</th>
|
6
|
+
<th class="long">Message</th>
|
7
|
+
<th>Header</th>
|
8
|
+
<th>Footer</th>
|
9
|
+
<th>Status</th>
|
10
|
+
<th>Deliver after</th>
|
11
|
+
<th>Delivery date</th>
|
12
|
+
</tr>
|
13
|
+
|
14
|
+
<% staggered_table_rows(@drafts) do |draft| %>
|
15
|
+
<td class="short"><%=h draft.id %></td>
|
16
|
+
<td><%=h draft.message %></td>
|
17
|
+
<td><%=h draft.header %></td>
|
18
|
+
<td><%=h draft.footer %></td>
|
19
|
+
<td><%=h draft.status %></td>
|
20
|
+
<td><%=h draft.deliver_after %></td>
|
21
|
+
<td><%=h draft.delivery_date %></td>
|
22
|
+
<td class="links"><%= link_to 'Show', sms_draft_outbounds_path(draft)%></td>
|
23
|
+
<td class="links"><%= link_to 'Edit', edit_sms_draft_path(draft) %></td>
|
24
|
+
<td class="links"><%= link_to 'Destroy', sms_draft_path(draft), :confirm => 'Are you sure?', :method => :delete %></td>
|
25
|
+
<% end %>
|
26
|
+
</table>
|
27
|
+
|
28
|
+
|
29
|
+
<br />
|
30
|
+
|
31
|
+
<%= link_to 'New draft', new_sms_draft_path %> |
|
32
|
+
<%= link_to 'Send SMS', send_sms_new_sms_draft_path %>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<h1>New draft</h1>
|
2
|
+
|
3
|
+
<% form_for(:draft, @draft, :url => sms_drafts_path) do |f| %>
|
4
|
+
<%= f.error_messages %>
|
5
|
+
<p>
|
6
|
+
<%= f.label :message %><br />
|
7
|
+
<%= f.text_field :message %>
|
8
|
+
</p>
|
9
|
+
<p>
|
10
|
+
<%= f.label :header %><br />
|
11
|
+
<%= f.text_field :header %>
|
12
|
+
</p>
|
13
|
+
<p>
|
14
|
+
<%= f.label :footer %><br />
|
15
|
+
<%= f.text_field :footer %>
|
16
|
+
</p>
|
17
|
+
<p>
|
18
|
+
<%= f.label :status %><br />
|
19
|
+
<%= sms_on_rails_status_select f %>
|
20
|
+
</p>
|
21
|
+
<p>
|
22
|
+
<%= f.label :deliver_after %><br />
|
23
|
+
<%= f.datetime_select :deliver_after, :include_blank => true %>
|
24
|
+
</p>
|
25
|
+
<p>
|
26
|
+
<%= f.label :delivery_date %><br />
|
27
|
+
<%= f.datetime_select :delivery_date %>
|
28
|
+
</p>
|
29
|
+
<p>
|
30
|
+
<%= f.submit 'Create' %>
|
31
|
+
</p>
|
32
|
+
<% end %>
|
33
|
+
|
34
|
+
<%= link_to 'Back',sms_drafts_path %>
|
@@ -0,0 +1,68 @@
|
|
1
|
+
<h1>Editing outbound</h1>
|
2
|
+
|
3
|
+
<% form_for(:outbound, @outbound, :url => sms_draft_outbound_path(@outbound.draft, @outbound), :html => {:method => :put}) do |f| %>
|
4
|
+
<%= f.error_messages %>
|
5
|
+
|
6
|
+
<p>
|
7
|
+
<%= f.label :status %><br />
|
8
|
+
<%= sms_on_rails_status_select(f) %>
|
9
|
+
</p>
|
10
|
+
<p>
|
11
|
+
<%= f.label :notes %><br />
|
12
|
+
<%= f.text_field :notes %>
|
13
|
+
</p>
|
14
|
+
<p>
|
15
|
+
<%= f.label :processed_on %><br />
|
16
|
+
<%= f.datetime_select :processed_on %>
|
17
|
+
</p>
|
18
|
+
<p>
|
19
|
+
<%= f.label :sms_service_provider_id, 'Sms Service Provider' %><br />
|
20
|
+
<%= service_providers_collection_select(f) %>
|
21
|
+
</p>
|
22
|
+
<p>
|
23
|
+
<%= f.label :created_at %><br />
|
24
|
+
<%= f.datetime_select :created_at %>
|
25
|
+
</p>
|
26
|
+
<p>
|
27
|
+
<%= f.label :retry_count %><br />
|
28
|
+
<%= f.text_field :retry_count %>
|
29
|
+
</p>
|
30
|
+
<p>
|
31
|
+
<%= f.label :sub_status %><br />
|
32
|
+
<%= f.text_field :sub_status %>
|
33
|
+
</p>
|
34
|
+
<p>
|
35
|
+
<%= f.label :options %><br />
|
36
|
+
<%= f.text_field :options %>
|
37
|
+
</p>
|
38
|
+
<p>
|
39
|
+
<%= f.label :send_priority %><br />
|
40
|
+
<%= f.text_field :send_priority %>
|
41
|
+
</p>
|
42
|
+
|
43
|
+
<p>
|
44
|
+
<% f.fields_for :phone_number, @outbound.phone_number do |phone_form| %>
|
45
|
+
<%= phone_form.label :name, 'Phone Number'%><br />
|
46
|
+
<%= link_to_sms_phone_number(phone_form.object) %>
|
47
|
+
<% end %>
|
48
|
+
</p>
|
49
|
+
|
50
|
+
<p>
|
51
|
+
<% f.fields_for :draft, @outbound.draft do |draft_form| %>
|
52
|
+
<%= draft_form.label :message, 'Draft' %><br />
|
53
|
+
<%= link_to_sms_draft(draft_form.object) %>
|
54
|
+
<% end %>
|
55
|
+
</p>
|
56
|
+
<% unless @outbound.delivered? %>
|
57
|
+
<p>
|
58
|
+
<%= f.label :send_immediately %><br />
|
59
|
+
<%= check_box_tag :outbound_send_immediately %>
|
60
|
+
</p>
|
61
|
+
<% end %>
|
62
|
+
<p>
|
63
|
+
<%= f.submit 'Update' %>
|
64
|
+
</p>
|
65
|
+
<% end %>
|
66
|
+
|
67
|
+
<%= link_to 'Show', sms_draft_outbound_path(@outbound.draft, @outbound) %> |
|
68
|
+
<%= link_to 'Back', sms_draft_outbounds_path(@outbound.draft) %>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<% if @draft %>
|
2
|
+
<h1> SMS Draft Outbounds</h1>
|
3
|
+
<%= render :partial => 'admin/sms_on_rails/drafts/show.html.erb' %>
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<h2>SMS Outbounds</h2>
|
7
|
+
<table>
|
8
|
+
<tr>
|
9
|
+
<th class="short">Id</th>
|
10
|
+
<th>Phone number</th>
|
11
|
+
<th>Status</th>
|
12
|
+
<th class="long">Message</th>
|
13
|
+
<th>Procesed on</th>
|
14
|
+
<th>Sms service provider</th>
|
15
|
+
<th>Sub status</th>
|
16
|
+
</tr>
|
17
|
+
<% staggered_table_rows(@outbounds) do |outbound| %>
|
18
|
+
<td><%=h outbound.id %></td>
|
19
|
+
<td><%= link_to_sms_phone_number(outbound.phone_number) %></td>
|
20
|
+
<td><%=h outbound.status %></td>
|
21
|
+
<td><%= link_to_sms_draft(outbound.draft, outbound.actual_message) %></td>
|
22
|
+
<td><%=h outbound.processed_on %></td>
|
23
|
+
<td><%=h outbound.sms_service_provider_name %></td>
|
24
|
+
<td><%=h outbound.sub_status %></td>
|
25
|
+
<td><%= link_to('Send', :action => :deliver_sms, :id => outbound.to_param) unless outbound.delivered? %></td>
|
26
|
+
<td><%= link_to 'Show', sms_draft_outbound_path(@draft, outbound) %></td>
|
27
|
+
<td><%= link_to 'Edit', edit_sms_draft_outbound_path(@draft, outbound) %></td>
|
28
|
+
<td><%= link_to 'Destroy', sms_draft_outbound_path(@draft, outbound), :confirm => 'Are you sure?', :method => :delete %></td>
|
29
|
+
<% end %>
|
30
|
+
</table>
|
31
|
+
|
32
|
+
<br />
|
33
|
+
<% if @draft %>
|
34
|
+
<%= link_to 'New outbound', new_sms_draft_outbound_path(@draft) %> |
|
35
|
+
<%= link_to 'Edit Draft', edit_sms_draft_path(@draft) %> |
|
36
|
+
<%= link_to 'List of Drafts', sms_drafts_path %>
|
37
|
+
<% end %>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<h1>New outbound</h1>
|
2
|
+
|
3
|
+
<% form_for(:outbound, @outbound, :url => sms_draft_outbounds_path(@outbound.draft)) do |f| %>
|
4
|
+
<%= f.error_messages %>
|
5
|
+
<% @outbound.phone_number ||= SmsOnRails::PhoneNumber.new-%>
|
6
|
+
<% f.fields_for :phone_number do |phone_form| %>
|
7
|
+
<p>
|
8
|
+
<%= f.label :phone_number %><br />
|
9
|
+
<%= phone_form.text_field :number%>
|
10
|
+
</p>
|
11
|
+
<%= render :partial => '/sms_on_rails/phone_carrier_form_item', :locals => {:phone_form => phone_form } %>
|
12
|
+
<% end %>
|
13
|
+
<p>
|
14
|
+
<%= f.label :status %><br />
|
15
|
+
<%= sms_on_rails_status_select(f) %>
|
16
|
+
</p>
|
17
|
+
<p>
|
18
|
+
<%= f.label :notes %><br />
|
19
|
+
<%= f.text_field :notes %>
|
20
|
+
</p>
|
21
|
+
<p>
|
22
|
+
<%= f.label :processed_on %><br />
|
23
|
+
<%= f.datetime_select :processed_on %>
|
24
|
+
</p>
|
25
|
+
<p>
|
26
|
+
<%= f.label :sms_service_provider_id, 'Sms Service Provider' %><br />
|
27
|
+
<%= service_providers_collection_select(f) %>
|
28
|
+
</p>
|
29
|
+
<p>
|
30
|
+
<%= f.label :created_at %><br />
|
31
|
+
<%= f.datetime_select :created_at %>
|
32
|
+
</p>
|
33
|
+
<p>
|
34
|
+
<%= f.label :retry_count %><br />
|
35
|
+
<%= f.text_field :retry_count %>
|
36
|
+
</p>
|
37
|
+
<p>
|
38
|
+
<%= f.label :sub_status %><br />
|
39
|
+
<%= f.text_field :sub_status %>
|
40
|
+
</p>
|
41
|
+
<p>
|
42
|
+
<%= f.label :options %><br />
|
43
|
+
<%= f.text_field :options %>
|
44
|
+
</p>
|
45
|
+
<p>
|
46
|
+
<%= f.label :send_priority %><br />
|
47
|
+
<%= f.text_field :send_priority %>
|
48
|
+
</p>
|
49
|
+
<p>
|
50
|
+
<%= f.submit 'Create' %>
|
51
|
+
</p>
|
52
|
+
<% end %>
|
53
|
+
|
54
|
+
<%= link_to 'Back', sms_draft_outbounds_path(@outbound.draft) %>
|