blythedunham-sms_on_rails 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/Manifest +101 -0
- data/README +163 -0
- data/README.rdoc +211 -0
- data/Rakefile +76 -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 +8 -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/sms_on_rails.gemspec +32 -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 +18 -0
- data/test/service_providers/abstract_test_support.rb +104 -0
- data/test/service_providers/clickatell_test.rb +39 -0
- data/test/service_providers/email_gateway_test.rb +30 -0
- data/test/test_helper.rb +24 -0
- data/uninstall.rb +1 -0
- metadata +187 -0
@@ -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) %>
|
@@ -0,0 +1,69 @@
|
|
1
|
+
<p>
|
2
|
+
<b>Id:</b>
|
3
|
+
<%= h @outbound.id %>
|
4
|
+
</p>
|
5
|
+
|
6
|
+
<p>
|
7
|
+
<b>Status:</b>
|
8
|
+
<%=h @outbound.status %>
|
9
|
+
</p>
|
10
|
+
|
11
|
+
<% if @outbound.delivered? %>
|
12
|
+
<p>
|
13
|
+
<b>Message</b>
|
14
|
+
<%=h @outbound.actual_message %>
|
15
|
+
</p>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<p>
|
19
|
+
<b>Notes:</b>
|
20
|
+
<%=h @outbound.notes %>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<p>
|
24
|
+
<b>Procesed on:</b>
|
25
|
+
<%=h @outbound.processed_on %>
|
26
|
+
</p>
|
27
|
+
|
28
|
+
<p>
|
29
|
+
<b>Sms service provider:</b>
|
30
|
+
<%=h @outbound.sms_service_provider.human_name if @outbound.sms_service_provider %>
|
31
|
+
</p>
|
32
|
+
|
33
|
+
<p>
|
34
|
+
<b>Created at:</b>
|
35
|
+
<%=h @outbound.created_at %>
|
36
|
+
</p>
|
37
|
+
|
38
|
+
<p>
|
39
|
+
<b>Retry count:</b>
|
40
|
+
<%=h @outbound.retry_count %>
|
41
|
+
</p>
|
42
|
+
|
43
|
+
<p>
|
44
|
+
<b>Sub status:</b>
|
45
|
+
<%=h @outbound.sub_status %>
|
46
|
+
</p>
|
47
|
+
|
48
|
+
<p>
|
49
|
+
<b>Options:</b>
|
50
|
+
<%=h @outbound.options %>
|
51
|
+
</p>
|
52
|
+
|
53
|
+
<p>
|
54
|
+
<b>Send priority:</b>
|
55
|
+
<%=h @outbound.send_priority %>
|
56
|
+
</p>
|
57
|
+
|
58
|
+
<p>
|
59
|
+
<b>Draft:</b>
|
60
|
+
<%= link_to_sms_draft(@outbound.draft) %>
|
61
|
+
</p>
|
62
|
+
|
63
|
+
<p>
|
64
|
+
<b>Phone number:</b>
|
65
|
+
<%= link_to_sms_phone_number(@outbound.phone_number) %>
|
66
|
+
</p>
|
67
|
+
|
68
|
+
<%= link_to 'Edit', edit_sms_draft_outbound_path(@outbound.draft, @outbound) %> |
|
69
|
+
<%= link_to 'Back', sms_draft_outbounds_path(@outbound.draft) %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<h1>Editing phone carrier</h1>
|
2
|
+
|
3
|
+
<% form_for(:phone_carrier, @phone_carrier, :url => sms_phone_carrier_path(@phone_carrier), :html => {:method => :put}) do |f| %>
|
4
|
+
<%= f.error_messages %>
|
5
|
+
|
6
|
+
<p>
|
7
|
+
<%= f.label :name %><br />
|
8
|
+
<%= f.text_field :name %>
|
9
|
+
</p>
|
10
|
+
<p>
|
11
|
+
<%= f.label :email_domain %><br />
|
12
|
+
<%= f.text_field :email_domain %>
|
13
|
+
</p>
|
14
|
+
<p>
|
15
|
+
<%= f.label :options %><br />
|
16
|
+
<%= f.text_field :options %>
|
17
|
+
</p>
|
18
|
+
<p>
|
19
|
+
<%= f.submit 'Update' %>
|
20
|
+
</p>
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<%= link_to 'Show', sms_phone_carrier_path(@phone_carrier) %> |
|
24
|
+
<%= link_to 'Back', sms_phone_carriers_path %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<h1>SMS Phone Carriers</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<tr>
|
5
|
+
<th class="short">Id</th>
|
6
|
+
<th class="long">Name</th>
|
7
|
+
<th class="long">Email domain</th>
|
8
|
+
<th>Options</th>
|
9
|
+
</tr>
|
10
|
+
|
11
|
+
<% staggered_table_rows(@phone_carriers) do |phone_carrier| %>
|
12
|
+
<td><%=h phone_carrier.id %></td>
|
13
|
+
<td><%=h phone_carrier.name %></td>
|
14
|
+
<td><%=h phone_carrier.email_domain %></td>
|
15
|
+
<td><%=h phone_carrier.options %></td>
|
16
|
+
<td><%= link_to 'Show', sms_phone_carrier_path(phone_carrier) %></td>
|
17
|
+
<td><%= link_to 'Edit', edit_sms_phone_carrier_path(phone_carrier) %></td>
|
18
|
+
<td><%= link_to 'Destroy', sms_phone_carrier_path(phone_carrier), :confirm => 'Are you sure?', :method => :delete %></td>
|
19
|
+
<% end %>
|
20
|
+
</table>
|
21
|
+
|
22
|
+
<br />
|
23
|
+
|
24
|
+
<%= link_to 'New phone carrier', new_sms_phone_carrier_path %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<h1>New phone carrier</h1>
|
2
|
+
<% form_for(:phone_carrier, @phone_carrier, :url => sms_phone_carriers_path ) do |f| %>
|
3
|
+
<%= f.error_messages %>
|
4
|
+
|
5
|
+
<p>
|
6
|
+
<%= f.label :name %><br />
|
7
|
+
<%= f.text_field :name %>
|
8
|
+
</p>
|
9
|
+
<p>
|
10
|
+
<%= f.label :email_domain %><br />
|
11
|
+
<%= f.text_field :email_domain %>
|
12
|
+
</p>
|
13
|
+
<p>
|
14
|
+
<%= f.label :options %><br />
|
15
|
+
<%= f.text_field :options %>
|
16
|
+
</p>
|
17
|
+
<p>
|
18
|
+
<%= f.submit 'Create' %>
|
19
|
+
</p>
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
<%= link_to 'Back', sms_phone_carriers_path %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<h1>Carrier: <%=h @phone_carrier.name %></h1>
|
2
|
+
<p>
|
3
|
+
<b>Id:</b>
|
4
|
+
<%= h @phone_carrier.id %>
|
5
|
+
</p>
|
6
|
+
|
7
|
+
<p>
|
8
|
+
<b>Name:</b>
|
9
|
+
<%=h @phone_carrier.name %>
|
10
|
+
</p>
|
11
|
+
|
12
|
+
<p>
|
13
|
+
<b>Email domain:</b>
|
14
|
+
<%=h @phone_carrier.email_domain %>
|
15
|
+
</p>
|
16
|
+
|
17
|
+
<p>
|
18
|
+
<b>Options:</b>
|
19
|
+
<%=h @phone_carrier.options %>
|
20
|
+
</p>
|
21
|
+
|
22
|
+
|
23
|
+
<%= link_to 'Edit', edit_sms_phone_carrier_path(@phone_carrier) %> |
|
24
|
+
<%= link_to 'Back', sms_phone_carriers_path %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<h1>Editing Phone Number</h1>
|
2
|
+
|
3
|
+
<% form_for(:phone_number, @phone_number, :url => sms_phone_number_path, :html => {:method => :put}) do |f| %>
|
4
|
+
<%= f.error_messages %>
|
5
|
+
|
6
|
+
<p>
|
7
|
+
<%= f.label :number %><br />
|
8
|
+
<%= f.text_field :number, :value => @phone_number.human_display %>
|
9
|
+
</p>
|
10
|
+
<p>
|
11
|
+
<%= f.label :carrier_id, 'Phone Carrier' %><br />
|
12
|
+
<%= phone_carriers_collection_select(f) %>
|
13
|
+
</p>
|
14
|
+
<p>
|
15
|
+
<%= f.label :country_code %><br />
|
16
|
+
<%= f.text_field :country_code %>
|
17
|
+
</p>
|
18
|
+
<p>
|
19
|
+
<%= f.label :do_not_send %><br />
|
20
|
+
<%= f.select :do_not_send, ['bounce', 'abuse', 'opt out', 'other'] %>
|
21
|
+
</p>
|
22
|
+
<p>
|
23
|
+
<%= f.label :white_list %><br />
|
24
|
+
<%= f.check_box :white_list %>
|
25
|
+
</p>
|
26
|
+
|
27
|
+
<p>
|
28
|
+
<%= f.submit 'Update' %>
|
29
|
+
</p>
|
30
|
+
<% end %>
|
31
|
+
|
32
|
+
<%= link_to 'Show', sms_phone_number_path(:id => @phone_number) %> |
|
33
|
+
<%= link_to 'Back', sms_phone_numbers_path %>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<h1>Phone Numbers</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<tr>
|
5
|
+
<th class="short">Id</th>
|
6
|
+
<th class="long">Number</th>
|
7
|
+
<th>Carrier</th>
|
8
|
+
<th>Country code</th>
|
9
|
+
<th>Do Not Send</th>
|
10
|
+
<th>White List</th>
|
11
|
+
</tr>
|
12
|
+
|
13
|
+
<% staggered_table_rows(@phone_numbers) do |phone_number| %>
|
14
|
+
<td><%=h phone_number.id %></td>
|
15
|
+
<td><%=h phone_number.human_display %></td>
|
16
|
+
<td><%= phone_number_carrier_link(phone_number) %></td>
|
17
|
+
<td><%=h phone_number.country_code %></td>
|
18
|
+
<td><%=h phone_number.do_not_send %></td>
|
19
|
+
<td><%=h phone_number.white_list? %></td>
|
20
|
+
<td><%= link_to 'Show', sms_phone_number_path(:id => phone_number)%></td>
|
21
|
+
<td><%= link_to 'Edit', edit_sms_phone_number_path(phone_number) %></td>
|
22
|
+
<td><%= link_to 'Destroy', sms_phone_number_path(:id => phone_number), :confirm => 'Are you sure?', :method => :delete %></td>
|
23
|
+
<% end %>
|
24
|
+
</table>
|
25
|
+
|
26
|
+
<br />
|
27
|
+
|
28
|
+
<%= link_to 'New phone number', new_sms_phone_number_path %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<h1>New Phone Number</h1>
|
2
|
+
|
3
|
+
<% form_for(:phone_number, @phone_number, :url => sms_phone_numbers_path) do |f| %>
|
4
|
+
<%= f.error_messages %>
|
5
|
+
|
6
|
+
<p>
|
7
|
+
<%= f.label :number %><br />
|
8
|
+
<%= f.text_field :number %>
|
9
|
+
</p>
|
10
|
+
<p>
|
11
|
+
<%= f.label :carrier_id, 'Phone Carrier' %><br />
|
12
|
+
<%= phone_carriers_collection_select(f) %>
|
13
|
+
</p>
|
14
|
+
<p>
|
15
|
+
<%= f.label :country_code %><br />
|
16
|
+
<%= f.text_field :country_code %>
|
17
|
+
</p>
|
18
|
+
<p>
|
19
|
+
<%= f.label :do_not_send %><br />
|
20
|
+
<%= f.select :do_not_send, ['bounce', 'abuse', 'opt_out', 'other'], :include_blank => true %>
|
21
|
+
</p>
|
22
|
+
<p>
|
23
|
+
<%= f.label :white_list %><br />
|
24
|
+
<%= f.check_box :white_list %>
|
25
|
+
</p>
|
26
|
+
<p>
|
27
|
+
<%= f.submit 'Create' %>
|
28
|
+
</p>
|
29
|
+
<% end %>
|
30
|
+
|
31
|
+
<%= link_to 'Back', sms_phone_numbers_path %>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<h1>Phone Number <%=h @phone_number.human_display %></h1>
|
2
|
+
<p>
|
3
|
+
<b>Id:</b>
|
4
|
+
<%= h @phone_number.id %>
|
5
|
+
</p>
|
6
|
+
<p>
|
7
|
+
<b>Number:</b>
|
8
|
+
<%=h @phone_number.human_display %>
|
9
|
+
</p>
|
10
|
+
|
11
|
+
<p>
|
12
|
+
<b>Carrier:</b>
|
13
|
+
<%= phone_number_carrier_link @phone_number %>
|
14
|
+
</p>
|
15
|
+
|
16
|
+
<p>
|
17
|
+
<b>Country code:</b>
|
18
|
+
<%=h @phone_number.country_code %>
|
19
|
+
</p>
|
20
|
+
|
21
|
+
<p>
|
22
|
+
<b>Do Not Send:</b>
|
23
|
+
<%=h @phone_number.do_not_send %>
|
24
|
+
</p>
|
25
|
+
|
26
|
+
<p>
|
27
|
+
<b>White List:</b>
|
28
|
+
<%=h @phone_number.white_list %>
|
29
|
+
</p>
|
30
|
+
|
31
|
+
<%= link_to 'Edit', edit_sms_phone_number_path(@phone_number) %> |
|
32
|
+
<%= link_to 'Back', sms_phone_numbers_path %>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
|
4
|
+
<!-- SMS On Rails is brought to you by snowgiraffe under the MIT License
|
5
|
+
Sms On Rails is martiniware. Buy yourself a martini if you like this software. -->
|
6
|
+
|
7
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
8
|
+
|
9
|
+
<head>
|
10
|
+
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
11
|
+
<title>
|
12
|
+
<% if controller.class.name =~ /^Admin/ %>
|
13
|
+
Sms On Rails Admin
|
14
|
+
<% else %>
|
15
|
+
Sms
|
16
|
+
<% end %>
|
17
|
+
</title>
|
18
|
+
<%= stylesheet_link_tag 'sms_on_rails' %>
|
19
|
+
</head>
|
20
|
+
<body>
|
21
|
+
<div class="smsOnRailsHtml">
|
22
|
+
<p class="smsFlashNotice"><%= flash[:notice] %></p>
|
23
|
+
<%= yield %>
|
24
|
+
</div>
|
25
|
+
</body>
|
26
|
+
</html>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<% form_for(:draft, @draft, :url => send_sms_form_url) do |f| %>
|
2
|
+
<%= f.error_messages %>
|
3
|
+
|
4
|
+
<p>
|
5
|
+
<%= f.label :message %><br />
|
6
|
+
<%= f.text_area :message, :rows => 4 %>
|
7
|
+
</p>
|
8
|
+
|
9
|
+
<% f.fields_for :outbounds do |outbound_form| %>
|
10
|
+
<% outbound_form.fields_for :phone_number do |phone_form| %>
|
11
|
+
<p>
|
12
|
+
<%= phone_form.label :number, 'Phone Number' %>
|
13
|
+
<%= phone_form.text_field :number, :value => (phone_form.object.human_display if phone_form.object) %>
|
14
|
+
</p>
|
15
|
+
<%= render :partial => '/sms_on_rails/phone_carrier_form_item', :locals => {:phone_form => phone_form } %>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<% unless outbound_form.object.new_record? %>
|
19
|
+
<%= outbound_form.check_box '_delete' %>
|
20
|
+
<%= outbound_form.label '_delete', 'Remove' %>
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<% end %>
|
24
|
+
|
25
|
+
<p>
|
26
|
+
<%= f.label :deliver_after %><br />
|
27
|
+
<%= f.datetime_select :deliver_after, :include_blank => true %>
|
28
|
+
</p>
|
29
|
+
|
30
|
+
<p>
|
31
|
+
<%= f.submit 'Send Sms' %>
|
32
|
+
</p>
|
33
|
+
<% end %>
|