sbdevcore 0.1.2 → 0.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.
Files changed (173) hide show
  1. data/app/assets/images/28DaysLater.ttf +0 -0
  2. data/app/assets/images/ajax-loader.gif +0 -0
  3. data/app/assets/javascripts/jquery.tools.min.js +16 -108
  4. data/app/assets/javascripts/rails.validations.custom.js +5 -0
  5. data/app/assets/javascripts/sbdev-ajax.js +14 -0
  6. data/app/assets/javascripts/sbdevcore-tools.js +24 -37
  7. data/app/assets/javascripts/sbdevcore.js +8 -3
  8. data/app/assets/javascripts/tiny_mce_config.js +2 -0
  9. data/app/assets/stylesheets/_bar_nav.scss +6 -4
  10. data/app/assets/stylesheets/_buttons.scss +16 -10
  11. data/app/assets/stylesheets/_forms.scss +51 -0
  12. data/app/assets/stylesheets/_mixins.scss +40 -15
  13. data/app/assets/stylesheets/_overlay.scss +4 -7
  14. data/app/assets/stylesheets/_sbdev_core.scss +55 -19
  15. data/app/assets/stylesheets/_yui_base.scss +142 -0
  16. data/app/controllers/contacts_controller.rb +2 -36
  17. data/app/controllers/downloadables_controller.rb +6 -46
  18. data/app/controllers/galleries_controller.rb +4 -49
  19. data/app/controllers/indices_controller.rb +2 -45
  20. data/app/controllers/photos_controller.rb +4 -48
  21. data/app/controllers/sbdev_core_controller.rb +40 -0
  22. data/app/controllers/texts_controller.rb +3 -46
  23. data/app/controllers/videos_controller.rb +4 -45
  24. data/app/models/contact.rb +5 -1
  25. data/app/models/downloadable.rb +3 -1
  26. data/app/models/index.rb +4 -1
  27. data/app/models/photo.rb +3 -1
  28. data/app/models/video.rb +2 -0
  29. data/app/views/admins/mailer/confirmation_instructions.html.haml +4 -0
  30. data/app/views/admins/mailer/reset_password_instructions.html.haml +6 -0
  31. data/app/views/admins/mailer/unlock_instructions.html.haml +5 -0
  32. data/app/views/admins/passwords/edit.html.haml +8 -0
  33. data/app/views/admins/passwords/new.html.haml +6 -0
  34. data/app/views/admins/sessions/new.html.haml +8 -0
  35. data/app/views/admins/shared/_links.haml +19 -0
  36. data/app/views/application/_header.html.haml +1 -0
  37. data/app/views/application/_secondary_nav.html.haml +3 -0
  38. data/app/views/contacts/_form.html.haml +5 -0
  39. data/app/views/contacts/edit.html.haml +6 -0
  40. data/app/views/contacts/index.html.haml +21 -0
  41. data/app/views/contacts/new.html.haml +2 -0
  42. data/app/views/contacts/show.html.haml +24 -0
  43. data/app/views/downloadables/_form.html.haml +6 -0
  44. data/app/views/downloadables/_show.html.haml +7 -0
  45. data/app/views/downloadables/edit.html.haml +3 -0
  46. data/app/views/downloadables/new.html.haml +4 -0
  47. data/app/views/galleries/_form.html.haml +22 -0
  48. data/app/views/galleries/edit.html.haml +10 -0
  49. data/app/views/galleries/index.html.haml +9 -0
  50. data/app/views/galleries/new.html.haml +3 -0
  51. data/app/views/galleries/show.html.haml +9 -0
  52. data/app/views/indices/_form.html.haml +43 -0
  53. data/app/views/indices/_show.html.haml +17 -0
  54. data/app/views/indices/edit.html.haml +3 -0
  55. data/app/views/indices/index.html.haml +17 -0
  56. data/app/views/layouts/application.html.haml +16 -1
  57. data/app/views/layouts/bar_nav.html.haml +7 -14
  58. data/app/views/layouts/sbdev_core.html.haml +39 -0
  59. data/app/views/layouts/tab_nav.html.haml +9 -14
  60. data/app/views/mailer/message.haml +4 -0
  61. data/app/views/photos/_form.html.haml +10 -0
  62. data/app/views/photos/_show.html.haml +7 -0
  63. data/app/views/photos/edit.html.haml +3 -0
  64. data/app/views/photos/index.html.haml +21 -0
  65. data/app/views/photos/new.html.haml +4 -0
  66. data/app/views/photos/show.html.haml +4 -0
  67. data/app/views/sbdev_core/index.html.haml +1 -0
  68. data/app/views/sbdev_core/show.html.haml +4 -0
  69. data/app/views/sbdev_core/show.js.haml +1 -0
  70. data/app/views/shared/_asset_show.html.haml +1 -0
  71. data/app/views/shared/_devise_links.haml +15 -0
  72. data/app/views/shared/_gallery.html.haml +14 -0
  73. data/app/views/shared/_prioritizable_fields.html.haml +5 -0
  74. data/app/views/texts/_form.html.haml +3 -0
  75. data/app/views/texts/_show.html.haml +6 -0
  76. data/app/views/texts/edit.html.haml +3 -0
  77. data/app/views/texts/new.html.haml +4 -0
  78. data/app/views/texts/show.html.haml +8 -0
  79. data/app/views/videos/_form.html.haml +7 -0
  80. data/app/views/videos/_show.html.haml +12 -0
  81. data/app/views/videos/edit.html.haml +3 -0
  82. data/app/views/videos/index.html.haml +11 -0
  83. data/app/views/videos/new.html.haml +4 -0
  84. data/app/views/videos/show.html.haml +9 -0
  85. data/app/views/videos/show.js.haml +4 -0
  86. data/config/initializers/client_side_validations.rb +14 -0
  87. data/config/initializers/custom_validators.rb +15 -0
  88. data/config/initializers/load_app_config.rb +2 -0
  89. data/config/initializers/simple_form.rb +93 -0
  90. data/config/locales/en.yml +4 -1
  91. data/db/migrate/20110811000613_create_indices.rb +3 -0
  92. data/db/seeds.rb +23 -57
  93. data/lib/generators/sbdevcore/install_generator.rb +0 -2
  94. data/lib/generators/sbdevcore/templates/application.scss +1 -0
  95. data/lib/generators/sbdevcore/templates/application/_404.html.haml +2 -0
  96. data/lib/generators/sbdevcore/templates/application/_footer.html.haml +2 -1
  97. data/lib/generators/sbdevcore/templates/application/_inline_nav.html.haml +3 -0
  98. data/lib/generators/sbdevcore/templates/application/_nav.html.haml +1 -1
  99. data/lib/generators/sbdevcore/templates/config/initializers/mailer_setup.rb +2 -2
  100. data/lib/generators/sbdevcore/templates/config/initializers/simple_form.rb +93 -0
  101. data/lib/generators/sbdevcore/templates/new_contact.html.haml +4 -0
  102. data/lib/sbdevcore.rb +25 -2
  103. data/lib/sbdevcore/engine.rb +13 -34
  104. data/lib/sbdevcore/version.rb +1 -1
  105. data/lib/tasks/sbdevcore.rake +1 -1
  106. data/public/404.html +2 -2
  107. data/sbdevcore.gemspec +7 -2
  108. metadata +296 -156
  109. data/app/assets/stylesheets/_js_errors.scss +0 -26
  110. data/app/controllers/core_controller.rb +0 -5
  111. data/app/controllers/sbdevcore/application_controller_extensions.rb +0 -13
  112. data/app/controllers/statics_controller.rb +0 -6
  113. data/app/models/asset.rb +0 -27
  114. data/app/views/admins/confirmations/new.html.erb +0 -12
  115. data/app/views/admins/mailer/confirmation_instructions.html.erb +0 -5
  116. data/app/views/admins/mailer/reset_password_instructions.html.erb +0 -8
  117. data/app/views/admins/mailer/unlock_instructions.html.erb +0 -7
  118. data/app/views/admins/passwords/edit.html.erb +0 -16
  119. data/app/views/admins/passwords/new.html.erb +0 -12
  120. data/app/views/admins/registrations/edit.html.erb +0 -25
  121. data/app/views/admins/registrations/new.html.erb +0 -18
  122. data/app/views/admins/sessions/new.html.erb +0 -17
  123. data/app/views/admins/unlocks/new.html.erb +0 -12
  124. data/app/views/contacts/_form.html.erb +0 -18
  125. data/app/views/contacts/edit.html.erb +0 -8
  126. data/app/views/contacts/index.html.erb +0 -27
  127. data/app/views/contacts/new.html.erb +0 -4
  128. data/app/views/contacts/show.html.erb +0 -32
  129. data/app/views/downloadables/_form.html.erb +0 -17
  130. data/app/views/downloadables/_show.html.erb +0 -8
  131. data/app/views/downloadables/edit.html.erb +0 -4
  132. data/app/views/downloadables/new.html.erb +0 -6
  133. data/app/views/galleries/_form.html.erb +0 -33
  134. data/app/views/galleries/edit.html.erb +0 -13
  135. data/app/views/galleries/index.html.erb +0 -16
  136. data/app/views/galleries/new.html.erb +0 -8
  137. data/app/views/galleries/show.html.erb +0 -17
  138. data/app/views/indices/_form.html.erb +0 -60
  139. data/app/views/indices/_show.html.erb +0 -22
  140. data/app/views/indices/edit.html.erb +0 -12
  141. data/app/views/indices/index.html.erb +0 -23
  142. data/app/views/indices/new.html.erb +0 -8
  143. data/app/views/indices/show.html.erb +0 -4
  144. data/app/views/indices/show.js.erb +0 -1
  145. data/app/views/photos/_form.html.erb +0 -27
  146. data/app/views/photos/_show.html.erb +0 -14
  147. data/app/views/photos/edit.html.erb +0 -4
  148. data/app/views/photos/index.html.erb +0 -27
  149. data/app/views/photos/new.html.erb +0 -6
  150. data/app/views/photos/overlay.html.erb +0 -1
  151. data/app/views/photos/show.html.erb +0 -5
  152. data/app/views/shared/_asset_show.html.erb +0 -1
  153. data/app/views/shared/_gallery.html.erb +0 -21
  154. data/app/views/shared/_prioritizable_fields.html.erb +0 -10
  155. data/app/views/shared/course_type_index.html.erb +0 -16
  156. data/app/views/texts/_form.html.erb +0 -9
  157. data/app/views/texts/_new.html.erb +0 -6
  158. data/app/views/texts/_show.html.erb +0 -9
  159. data/app/views/texts/edit.html.erb +0 -4
  160. data/app/views/texts/new.html.erb +0 -6
  161. data/app/views/texts/show.html.erb +0 -9
  162. data/app/views/videos/_form.html.erb +0 -17
  163. data/app/views/videos/_show.html.erb +0 -16
  164. data/app/views/videos/edit.html.erb +0 -4
  165. data/app/views/videos/index.html.erb +0 -17
  166. data/app/views/videos/new.html.erb +0 -6
  167. data/app/views/videos/show.html.erb +0 -12
  168. data/lib/generators/sbdevcore/templates/application/_404.html.erb +0 -2
  169. data/lib/generators/sbdevcore/templates/application/_inline_nav.html.erb +0 -7
  170. data/lib/generators/sbdevcore/templates/config/tiny_mce.yml +0 -46
  171. data/lib/generators/sbdevcore/templates/new_contact.html.erb +0 -4
  172. data/vendor/assets/stylesheets/.gitkeep +0 -0
  173. data/vendor/plugins/.gitkeep +0 -0
@@ -1,46 +1,3 @@
1
- class IndicesController < ApplicationController
2
- before_filter :authenticate_admin!, :except => [:show]
3
-
4
- def index
5
- @indices = Index.all
6
- end
7
-
8
- def show
9
- @index = Index.find(params[:id])
10
- end
11
-
12
- def new
13
- @index = Index.new
14
- end
15
-
16
- def create
17
- @index = Index.new(params[:index])
18
- if @index.save
19
- flash[:notice] = "Successfully created index."
20
- redirect_to :back
21
- else
22
- render :action => 'new'
23
- end
24
- end
25
-
26
- def edit
27
- @index = Index.find(params[:id])
28
- end
29
-
30
- def update
31
- @index = Index.find(params[:id])
32
- if @index.update_attributes(params[:index])
33
- flash[:notice] = "Successfully updated index."
34
- redirect_to :back
35
- else
36
- render :action => 'edit'
37
- end
38
- end
39
-
40
- def destroy
41
- @index = Index.find(params[:id])
42
- @index.destroy
43
- flash[:notice] = "Successfully destroyed index."
44
- redirect_to indices_url
45
- end
1
+ class IndicesController < SbdevCoreController
2
+ before_filter :authenticate_admin!, :only => [:index]
46
3
  end
@@ -1,49 +1,5 @@
1
- class PhotosController < ApplicationController
2
- before_filter :authenticate_admin!, :except => [:show, :overlay]
3
- def index
4
- @photos = Photo.all
5
- end
6
-
7
- def show
8
- @photo = Photo.find(params[:id])
9
- render :layout => false
10
- end
11
-
12
- def new
13
- @index = Index.find(params[:index_id])
14
- @photo = @index.photos.build(:priority => ((@index.assets.first.lowest_priority + 1) rescue 0))
15
- render :layout => false
16
- end
17
-
18
- def create
19
- @photo = Photo.new(params[:photo])
20
- if @photo.save
21
- flash[:notice] = "Successfully created photo."
22
- redirect_to :back
23
- else
24
- render :action => 'new'
25
- end
26
- end
27
-
28
- def edit
29
- @photo = Photo.find(params[:id])
30
- render :layout => false
31
- end
32
-
33
- def update
34
- @photo = Photo.find(params[:id])
35
- if @photo.update_attributes(params[:photo])
36
- flash[:notice] = "Successfully updated photo."
37
- redirect_to :back
38
- else
39
- render :action => 'edit'
40
- end
41
- end
42
-
43
- def destroy
44
- @photo = Photo.find(params[:id])
45
- @photo.destroy
46
- flash[:notice] = "Successfully destroyed photo."
47
- redirect_to :back
48
- end
1
+ class PhotosController < SbdevCoreController
2
+ before_filter :authenticate_admin!, :except => :show
3
+ skip_before_filter :get_index
4
+ belongs_to :index, :optional => true
49
5
  end
@@ -0,0 +1,40 @@
1
+ class SbdevCoreController < InheritedResources::Base
2
+ protect_from_forgery
3
+
4
+ respond_to :html
5
+
6
+ before_filter :authenticate_admin!, :except => [:show, :index]
7
+ before_filter :get_index, :only => [:index]
8
+
9
+ layout "application"
10
+
11
+ def show
12
+ show!(:layout => !request.xhr?)
13
+ end
14
+
15
+ def new
16
+ new!(:layout => !request.xhr?)
17
+ end
18
+
19
+ def create
20
+ create!{ request.referer }
21
+ end
22
+
23
+ def edit
24
+ edit!(:layout => !request.xhr?)
25
+ end
26
+
27
+ def update
28
+ update!{ request.referer }
29
+ end
30
+
31
+ def destroy
32
+ destroy!{ request.referer }
33
+ end
34
+
35
+ private
36
+
37
+ def get_index
38
+ @index = Index.find_by_name(controller_name)
39
+ end
40
+ end
@@ -1,48 +1,5 @@
1
- class TextsController < ApplicationController
1
+ class TextsController < SbdevCoreController
2
2
  before_filter :authenticate_admin!
3
- def index
4
- @texts = Text.all
5
- end
6
-
7
- def show
8
- @text = Text.find(params[:id])
9
- end
10
-
11
- def new
12
- @index = Index.find(params[:index_id])
13
- @text = @index.texts.build(:priority => ((@index.texts.first.lowest_priority + 1) rescue 0))
14
- render :layout => false
15
- end
16
-
17
- def create
18
- @text = @owner.texts.build(params[:text])
19
- if @owner.save
20
- flash[:notice] = "Successfully created text."
21
- redirect_to :back
22
- else
23
- render :action => 'new'
24
- end
25
- end
26
-
27
- def edit
28
- @text = Text.find(params[:id])
29
- render :layout => false
30
- end
31
-
32
- def update
33
- @text = Text.find(params[:id])
34
- if @text.update_attributes(params[:text])
35
- flash[:notice] = "Successfully updated text."
36
- redirect_to :back
37
- else
38
- render :action => 'edit'
39
- end
40
- end
41
-
42
- def destroy
43
- @text = Text.find(params[:id])
44
- @text.destroy
45
- flash[:notice] = "Successfully destroyed text."
46
- redirect_to :back
47
- end
3
+ skip_before_filter :get_index
4
+ belongs_to :index, :optional => true
48
5
  end
@@ -1,46 +1,5 @@
1
- class VideosController < ApplicationController
2
- def index
3
- @videos = Video.all
4
- end
5
-
6
- def show
7
- @video = Video.find(params[:id])
8
- end
9
-
10
- def new
11
- @index = Index.find(params[:index_id])
12
- @video = @index.videos.build(:priority => ((@index.assets.first.lowest_priority + 1) rescue 0))
13
- render :layout => false
14
- end
15
-
16
- def create
17
- @video = Video.new(params[:video])
18
- if @video.save
19
- flash[:notice] = "Successfully created video."
20
- redirect_to @video
21
- else
22
- render :action => 'new'
23
- end
24
- end
25
-
26
- def edit
27
- @video = Video.find(params[:id])
28
- end
29
-
30
- def update
31
- @video = Video.find(params[:id])
32
- if @video.update_attributes(params[:video])
33
- flash[:notice] = "Successfully updated video."
34
- redirect_to :back
35
- else
36
- render :action => 'edit'
37
- end
38
- end
39
-
40
- def destroy
41
- @video = Video.find(params[:id])
42
- @video.destroy
43
- flash[:notice] = "Successfully destroyed video."
44
- redirect_to :back
45
- end
1
+ class VideosController < SbdevCoreController
2
+ before_filter :authenticate_admin!
3
+ skip_before_filter :get_index
4
+ belongs_to :index, :optional => true
46
5
  end
@@ -2,7 +2,11 @@ class Contact < ActiveRecord::Base
2
2
  attr_accessible :name, :email, :message
3
3
 
4
4
  after_create :send_email
5
-
5
+
6
+ validates_presence_of :name, :email, :message
7
+
8
+ validates_email :email
9
+
6
10
  def send_email
7
11
  Mailer.message(self).deliver
8
12
  end
@@ -1,6 +1,8 @@
1
1
  class Downloadable < ActiveRecord::Base
2
2
  belongs_to :index
3
- attr_accessible :name, :description, :asset, :asset_file_name, :asset_content_type, :asset_file_size, :owner_id, :owner_type
3
+ attr_accessible :name, :description, :asset, :asset_file_name, :asset_content_type, :asset_file_size
4
+
5
+ validates_presence_of :name, :asset
4
6
 
5
7
  include ActsAsPrioritizable
6
8
  acts_as_prioritizable("index", "assets")
data/app/models/index.rb CHANGED
@@ -1,9 +1,12 @@
1
1
  class Index < ActiveRecord::Base
2
- attr_accessible :name, :page_title, :keywords, :page_description, :texts_attributes, :photos_attributes, :videos_attributes, :downloadables_attributes, :gallery_attributes
2
+ attr_accessible :name, :title, :page_title, :keywords, :page_description, :texts_attributes, :photos_attributes, :videos_attributes, :downloadables_attributes, :gallery_attributes
3
3
 
4
4
  has_many :indices, :as => :owner, :dependent => :destroy
5
5
  belongs_to :owner, :polymorphic => true
6
6
 
7
+ extend FriendlyId
8
+ friendly_id :name, :use => :slugged
9
+
7
10
  has_one :gallery, :dependent => :destroy
8
11
 
9
12
  has_many :texts, :dependent => :destroy
data/app/models/photo.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  class Photo < ActiveRecord::Base
2
2
  belongs_to :index
3
- attr_accessible :name, :description, :asset, :asset_file_name, :asset_content_type, :asset_file_size, :owner_id, :owner_type, :klass
3
+ attr_accessible :name, :description, :asset, :asset_file_name, :asset_content_type, :asset_file_size, :klass
4
+
5
+ validates_presence_of :name, :asset
4
6
 
5
7
  include ActsAsPrioritizable
6
8
  acts_as_prioritizable("index", "assets")
data/app/models/video.rb CHANGED
@@ -2,6 +2,8 @@ class Video < ActiveRecord::Base
2
2
  belongs_to :index
3
3
  attr_accessible :name, :description, :index_id, :remote_id, :remote_type
4
4
 
5
+ validates_presence_of :name, :remote_id
6
+
5
7
  include ActsAsPrioritizable
6
8
  acts_as_prioritizable("index", "assets")
7
9
 
@@ -0,0 +1,4 @@
1
+ %p
2
+ Welcome #{@resource.email}!
3
+ %p You can confirm your account through the link below:
4
+ %p= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token)
@@ -0,0 +1,6 @@
1
+ %p
2
+ Hello #{@resource.email}!
3
+ %p Someone has requested a link to change your password, and you can do this through the link below.
4
+ %p= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token)
5
+ %p If you didn't request this, please ignore this email.
6
+ %p Your password won't change until you access the link above and create a new one.
@@ -0,0 +1,5 @@
1
+ %p
2
+ Hello #{@resource.email}!
3
+ %p Your account has been locked due to an excessive amount of unsuccessful sign in attempts.
4
+ %p Click the link below to unlock your account:
5
+ %p= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token)
@@ -0,0 +1,8 @@
1
+ %h2 Change your password
2
+ = simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f|
3
+ = devise_error_messages!
4
+ = f.hidden_field :reset_password_token
5
+ = f.input :password, :label => "New password"
6
+ = f.input :password_confirmation, :as => :password, :label => "Confirm new password"
7
+ = f.button :submit, "Change my password"
8
+ = render :partial => "devise/shared/links"
@@ -0,0 +1,6 @@
1
+ %h2 Forgot your password?
2
+ = simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f|
3
+ = devise_error_messages!
4
+ = f.input :email
5
+ = f.button :submit, "Send me reset password instructions"
6
+ = render :partial => "devise/shared/links"
@@ -0,0 +1,8 @@
1
+ %h2 Sign in
2
+ = simple_form_for(resource, :as => resource_name, :url => session_path(resource_name), :validate => true) do |f|
3
+ = f.input :username
4
+ = f.input :password
5
+ - if devise_mapping.rememberable?
6
+ = f.input :remember_me, :as => :boolean
7
+ = f.button :submit, "Sign in"
8
+ = render :partial => "devise/shared/links"
@@ -0,0 +1,19 @@
1
+ - if controller_name != 'sessions'
2
+ = link_to "Sign in", new_session_path(resource_name)
3
+ %br/
4
+ - if devise_mapping.registerable? && controller_name != 'registrations'
5
+ = link_to "Sign up", new_registration_path(resource_name)
6
+ %br/
7
+ - if devise_mapping.recoverable? && controller_name != 'passwords'
8
+ = link_to "Forgot your password?", new_password_path(resource_name)
9
+ %br/
10
+ - if devise_mapping.confirmable? && controller_name != 'confirmations'
11
+ = link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name)
12
+ %br/
13
+ - if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks'
14
+ = link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name)
15
+ %br/
16
+ - if devise_mapping.omniauthable?
17
+ - resource_class.omniauth_providers.each do |provider|
18
+ = link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider)
19
+ %br/
@@ -0,0 +1 @@
1
+ %h1=APP_CONFIG[:app_name]
@@ -0,0 +1,3 @@
1
+ #secondary_nav
2
+ -obj.indices.each do |page|
3
+ = link_to page.title, page.title, :class => 'button', :remote => true, :rel => '#main'
@@ -0,0 +1,5 @@
1
+ = simple_form_for @contact, :validate => true do |f|
2
+ = f.input :name, :label => "What's your name?"
3
+ = f.input :email, :label => "and email address?"
4
+ = f.input :message, :label => "Your message.", :input_html => { :cols => 48, :rows => 5 }
5
+ = f.button :submit, "Send Message"
@@ -0,0 +1,6 @@
1
+ - title "Edit Contact"
2
+ = render :partial => 'form'
3
+ %p
4
+ = link_to "Show", @contact
5
+ |
6
+ \#{link_to "View All", contacts_path}
@@ -0,0 +1,21 @@
1
+ - title "Contacts"
2
+ %table
3
+ %tr
4
+ %th Name
5
+ %th From
6
+ %th Arrival Date
7
+ %th Departure Date
8
+ %th Email
9
+ %th Message
10
+ - for contact in @contacts
11
+ %tr
12
+ %td= h contact.name
13
+ %td= h contact.from
14
+ %td= h contact.arrival_date
15
+ %td= h contact.departure_date
16
+ %td= h contact.email
17
+ %td= h contact.message
18
+ %td= link_to "Show", contact
19
+ %td= link_to "Edit", edit_contact_path(contact)
20
+ %td= link_to "Destroy", contact, :confirm => 'Are you sure?', :method => :delete
21
+ %p= link_to "New Contact", new_contact_path
@@ -0,0 +1,2 @@
1
+ = render :partial => 'indices/show', :object => @index, :as => :index
2
+ = render :partial => 'form'
@@ -0,0 +1,24 @@
1
+ - title "Contact"
2
+ %p
3
+ %strong Name:
4
+ = h @contact.name
5
+ %p
6
+ %strong From:
7
+ = h @contact.from
8
+ %p
9
+ %strong Arrival Date:
10
+ = h @contact.arrival_date
11
+ %p
12
+ %strong Departure Date:
13
+ = h @contact.departure_date
14
+ %p
15
+ %strong Email:
16
+ = h @contact.email
17
+ %p
18
+ %strong Message:
19
+ = h @contact.message
20
+ %p
21
+ = link_to "Edit", edit_contact_path(@contact)
22
+ |
23
+ \#{link_to "Destroy", @contact, :confirm => 'Are you sure?', :method => :delete} |
24
+ \#{link_to "View All", contacts_path}