tkh_content 0.3.1 → 0.4.2

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 (43) hide show
  1. data/CHANGELOG.md +25 -0
  2. data/app/assets/javascripts/ckeditor/config.js.coffee +1 -1
  3. data/app/controllers/blog_controller.rb +5 -2
  4. data/app/controllers/comments_controller.rb +14 -6
  5. data/app/controllers/contacts_controller.rb +7 -2
  6. data/app/controllers/pages_controller.rb +3 -3
  7. data/app/mailers/contact_mailer.rb +3 -3
  8. data/app/models/page.rb +0 -1
  9. data/app/views/blog/index.atom.builder +14 -0
  10. data/app/views/blog/index.html.erb +3 -2
  11. data/app/views/comments/_list_of_comments.html.erb +8 -8
  12. data/app/views/comments/_status_buttons.html.erb +3 -3
  13. data/app/views/comments/_tab_admin_menu.html.erb +8 -0
  14. data/app/views/comments/accepted.html.erb +29 -0
  15. data/app/views/comments/blocked.html.erb +29 -0
  16. data/app/views/comments/edit.html.erb +4 -1
  17. data/app/views/comments/for_feed.atom.builder +16 -0
  18. data/app/views/comments/index.html.erb +15 -14
  19. data/app/views/comments/pending.html.erb +31 -0
  20. data/app/views/contact_mailer/message_from_contact_form.text.erb +4 -5
  21. data/app/views/contacts/_tab_admin_menu.html.erb +4 -0
  22. data/app/views/contacts/index.html.erb +8 -6
  23. data/app/views/contacts/show.html.erb +18 -0
  24. data/app/views/pages/_admin_context_menu.html.erb +23 -12
  25. data/app/views/pages/_blog_post_meta.html.erb +4 -2
  26. data/app/views/pages/_comment_section.html.erb +1 -3
  27. data/app/views/pages/_form.html.erb +6 -6
  28. data/app/views/pages/_new_comment_section.html.erb +2 -2
  29. data/app/views/pages/_tab_admin_menu.html.erb +5 -0
  30. data/app/views/pages/edit.html.erb +4 -1
  31. data/app/views/pages/index.html.erb +9 -9
  32. data/app/views/pages/new.html.erb +4 -1
  33. data/app/views/pages/show.html.erb +2 -0
  34. data/app/views/shared/_admin_sidebar.html.erb +1 -1
  35. data/config/routes.rb +1 -0
  36. data/lib/generators/tkh_content/create_or_update_locales/templates/de.yml +78 -27
  37. data/lib/generators/tkh_content/create_or_update_locales/templates/en.yml +43 -16
  38. data/lib/generators/tkh_content/create_or_update_locales/templates/es.yml +72 -15
  39. data/lib/generators/tkh_content/create_or_update_locales/templates/fr.yml +73 -16
  40. data/lib/generators/tkh_content/create_or_update_locales/templates/it.yml +109 -0
  41. data/lib/tkh_content/version.rb +1 -1
  42. metadata +14 -5
  43. data/app/views/blog/index.rss.builder +0 -18
data/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
 
4
4
 
5
+ ## 0.4.2
6
+
7
+ * In the admin section of the pages' sidebar, added links to admin panel and to the unmoderated comments when any
8
+ * Pages sidebar admin section title is now capitalized to fit with the other sidebar sections
9
+ * Fixed translations of comments section admin tabs
10
+ * Removed justify button from CKEditor toolbar
11
+ * Special CSS class for a comment by the page's author
12
+ * Added generation of canonical link in pages show and in blog index views
13
+ * Modified display of comments and their count in the blog meta info partial
14
+ * Created a comments atom feed
15
+ * Converted blog feed from RSS to atom
16
+
17
+
18
+ ## 0.4.1
19
+
20
+ * Debugged blog post meta partial
21
+
22
+
23
+ ## 0.4
24
+
25
+ * Added tab admin menu navigation in all sections
26
+ * Set up many, many translations
27
+ * Refactored contact mailer
28
+
29
+
5
30
  ## 0.3.1
6
31
 
7
32
  * CKEditor strips formatting from text during pasting
@@ -8,7 +8,7 @@ CKEDITOR.editorConfig = (config) ->
8
8
  config.toolbar_Pure = [
9
9
  { name: 'styles', items: [ 'Format' ] },
10
10
  { name: 'basicstyles', items: [ 'Bold','Italic','Strike','-','RemoveFormat' ] },
11
- { name: 'paragraph', items: [ 'BulletedList','NumberedList','-','Outdent','Indent','-','Blockquote','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock' ] },
11
+ { name: 'paragraph', items: [ 'BulletedList','NumberedList','-','Outdent','Indent','-','Blockquote','-','JustifyLeft','JustifyCenter','JustifyRight' ] },
12
12
  '/',
13
13
  { name: 'clipboard', items: [ 'Undo','Redo' ] },
14
14
  { name: 'links', items: [ 'Link','Unlink' ] },
@@ -6,10 +6,13 @@ class BlogController < ApplicationController
6
6
  else
7
7
  @posts = Page.for_blog.published.tagged_with(params[:tag]).order('published_at desc').paginate(:page => params[:page], :per_page => 20)
8
8
  end
9
- # respond_to
10
- render :layout => 'blog'
9
+ respond_to do |format|
10
+ format.html { render :layout => 'blog' }
11
+ format.atom
12
+ end
11
13
  end
12
14
 
15
+ # This is temporary and only to complete the import to SA's site.
13
16
  def update_data
14
17
 
15
18
  @count = 0
@@ -1,10 +1,10 @@
1
1
  class CommentsController < ApplicationController
2
2
 
3
- before_filter :authenticate
4
- before_filter :authenticate_with_admin, :except => 'create'
3
+ before_filter :authenticate, :except => ['for_feed']
4
+ before_filter :authenticate_with_admin, :except => ['create', 'for_feed']
5
5
 
6
6
  def index
7
- @comments = Comment.by_recent
7
+ @comments = Comment.by_recent.paginate(:page => params[:page], :per_page => 50)
8
8
  switch_to_admin_layout
9
9
  end
10
10
 
@@ -64,18 +64,26 @@ class CommentsController < ApplicationController
64
64
  end
65
65
 
66
66
  def pending
67
- @comments = Comment.pending
67
+ @comments = Comment.pending.by_created.paginate(:page => params[:page], :per_page => 50)
68
68
  switch_to_admin_layout
69
69
  end
70
70
 
71
71
  def accepted
72
- @comments = Comment.accepted.by_recent
72
+ @comments = Comment.accepted.by_recent.paginate(:page => params[:page], :per_page => 50)
73
73
  switch_to_admin_layout
74
74
  end
75
75
 
76
76
  def blocked
77
- @comments = Comment.blocked.by_recent
77
+ @comments = Comment.blocked.by_recent.paginate(:page => params[:page], :per_page => 50)
78
78
  switch_to_admin_layout
79
79
  end
80
80
 
81
+ def for_feed
82
+ @comments = Comment.showable.for_locale(I18n.locale).by_recently_created.limit(50)
83
+ respond_to do |format|
84
+ format.html { redirect_to root_path }
85
+ format.atom
86
+ end
87
+ end
88
+
81
89
  end
@@ -7,6 +7,11 @@ class ContactsController < ApplicationController
7
7
  @contacts = Contact.by_recent.paginate(:page => params[:page], :per_page => 35)
8
8
  switch_to_admin_layout
9
9
  end
10
+
11
+ def show
12
+ @contact = Contact.find(params[:id])
13
+ switch_to_admin_layout
14
+ end
10
15
 
11
16
  def create
12
17
  @contact = Contact.new(params[:contact])
@@ -19,10 +24,10 @@ class ContactsController < ApplicationController
19
24
  flash[:error] = t("contacts.create.warning")
20
25
  redirect_to :back
21
26
  elsif saved && sent_email == 'invalid'
22
- flash[:error] = "#{t("contacts.create.warning")} Your email address does not seem to be valid!"
27
+ flash[:error] = "#{t("contacts.create.warning")} #{t('contacts.create.invalid_email')}"
23
28
  redirect_to :back
24
29
  else
25
- flash[:error] = 'Something went wrong. Your message did not reach the intended recipient.'
30
+ flash[:error] = t('contacts.create.did_not_reach')
26
31
  redirect_to :back
27
32
  end
28
33
  end
@@ -57,21 +57,21 @@ class PagesController < ApplicationController
57
57
  page = Page.find(params[:id])
58
58
  page.published_at = Time.now
59
59
  page.save
60
- redirect_to pages_path, notice: 'The page has been published'
60
+ redirect_to pages_path, notice: t('pages.status.changed.published')
61
61
  end
62
62
 
63
63
  def unpublish
64
64
  page = Page.find(params[:id])
65
65
  page.published_at = nil
66
66
  page.save
67
- redirect_to pages_path, notice: "The page has been unpublished. It's a draft again."
67
+ redirect_to pages_path, notice: t('pages.status.changed.unpublished')
68
68
  end
69
69
 
70
70
  def toggle_for_blog
71
71
  page = Page.find(params[:id])
72
72
  page.for_blog? ? page.for_blog = false : page.for_blog = true
73
73
  page.save
74
- redirect_to pages_path notice: "The blog status of the page has been changed"
74
+ redirect_to pages_path notice: t('pages.status.changed.toggled')
75
75
  end
76
76
 
77
77
  def sort
@@ -11,11 +11,11 @@ class ContactMailer < ActionMailer::Base
11
11
  @contact = contact
12
12
  # FIXME - only the email addresses show up. not the names :-(
13
13
  # TODO - what do to if contact_email is not set?
14
- recipient = "#{Setting.first.company_name} <#{Setting.first.contact_email}>"
14
+ recipient = "#{Setting.first.try(:company_name)} <#{Setting.first.try(:contact_email)}>"
15
15
  reply_to = "#{@contact.sender_name} <#{@contact.sender_email}>"
16
16
  mail to: recipient,
17
- from: "#{Setting.first.site_name} <deploy@pragmaticyoga.org>",
17
+ from: "#{Setting.first.site_name} <deploy@ohlalaweb.pragmaticyoga.org>",
18
18
  reply_to: reply_to,
19
- subject: "Message from #{@contact.sender_name} via #{Setting.first.site_name} web site"
19
+ subject: "Message from #{@contact.sender_name} via #{Setting.first.try(:site_name)} web site"
20
20
  end
21
21
  end
data/app/models/page.rb CHANGED
@@ -87,7 +87,6 @@ class Page < ActiveRecord::Base
87
87
  end
88
88
 
89
89
  ### autocomplete related instance methods
90
-
91
90
  def parent_page_title
92
91
  parent.try(:title) unless self.orphan?
93
92
  end
@@ -0,0 +1,14 @@
1
+ atom_feed(:language => I18n.locale.to_s) do |feed|
2
+ feed.title Setting.first.blog_name || t('blog.itself')
3
+ feed.updated @posts.maximum(:updated_at)
4
+
5
+ @posts.each do |post|
6
+ feed.entry post, published: post.published_at do |entry|
7
+ entry.title post.title
8
+ entry.content post.body, type: 'html'
9
+ entry.author do |author|
10
+ author.name post.author.name
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,5 +1,6 @@
1
- <% content_for :meta_title, Setting.first.company_name %>
2
- <%= content_for :meta_description, "#{Setting.first.blog_tagline} - #{Setting.first.company_name}: the official blog" %>
1
+ <% content_for :meta_title, Setting.first.try(:company_name) %>
2
+ <% content_for :meta_description, "#{Setting.first.try(:blog_tagline)} - #{Setting.first.try(:company_name)}#{t('colon')} #{t('blog.official')}" %>
3
+ <% content_for :canonical_link, link_to('', blog_path, rel: 'canonical') %>
3
4
 
4
5
 
5
6
  <% for post in @posts %>
@@ -1,10 +1,10 @@
1
1
  <% @page.comments.showable.for_locale(I18n.locale.to_s).by_created.each_with_index do |comment, index| %>
2
- <div id="comment-<%= comment.id %>" class="individual-comment">
3
- <p>
4
- <span class="comment-index"><%= index + 1 %></span>
5
- <span class="comment-author-name"><%= comment.author.name %></span>
6
- <span class="comment-created-date"><%= l comment.created_at, format: :tkh_default %></span>
7
- <span class="comment-body"><%= sanitize comment.body.gsub(/\r\n?/, "<br>"), :tags => %w(br), :attributes => %w() %></span>
8
- </p>
9
- </div>
2
+ <div id="comment-<%= comment.id %>" class="individual-comment<%= " by-page-author" if comment.author_id == comment.page.author_id %>">
3
+ <p>
4
+ <span class="comment-index"><%= index + 1 %></span>
5
+ <span class="comment-author-name"><%= comment.author.name %></span>
6
+ <span class="comment-created-date"><%= l comment.created_at, format: :tkh_default %></span>
7
+ <span class="comment-body"><%= sanitize comment.body.gsub(/\r\n?/, "<br>"), :tags => %w(br), :attributes => %w() %></span>
8
+ </p>
9
+ </div>
10
10
  <% end %>
@@ -1,7 +1,7 @@
1
1
  <% if comment.status == 'pending' %>
2
- <%= link_to t('comments.moderation.actions.accept'), accept_comment_path(comment), method: :post, class: 'btn btn-mini btn-primary' %><%= link_to t('comments.moderation.actions.block'), block_comment_path(comment), method: :post, class: 'btn btn-mini btn-danger' %>
2
+ <%= link_to t('comments.moderation.actions.accept'), accept_comment_path(comment), method: :post, class: 'btn btn-mini' %><%= link_to t('comments.moderation.actions.block'), block_comment_path(comment), method: :post, class: 'btn btn-mini' %>
3
3
  <% elsif comment.status == 'accepted' %>
4
- <%= link_to t('comments.moderation.actions.block'), block_comment_path(comment), method: :post, class: 'btn btn-mini btn-danger' %>
4
+ <%= link_to t('comments.moderation.actions.block'), block_comment_path(comment), method: :post, class: 'btn btn-mini' %>
5
5
  <% elsif comment.status == 'blocked' %>
6
- <%= link_to t('comments.moderation.actions.accept'), accept_comment_path(comment), method: :post, class: 'btn btn-mini btn-primary' %>
6
+ <%= link_to t('comments.moderation.actions.accept'), accept_comment_path(comment), method: :post, class: 'btn btn-mini' %>
7
7
  <% end -%>
@@ -0,0 +1,8 @@
1
+ <ul class="nav nav-tabs" id="admin-menu-tab">
2
+ <%= content_tag :li, link_to(t('all'), comments_path), ({ class: 'active' } if controller.action_name.to_s == 'index' ) %>
3
+ <%= content_tag :li, link_to(t('comments.status.pending'), pending_comments_path), ({ class: 'active' } if controller.action_name.to_s == 'pending' ) %>
4
+ <%= content_tag :li, link_to(t('comments.status.accepted'), accepted_comments_path), ({ class: 'active' } if controller.action_name.to_s == 'accepted' ) %>
5
+ <%= content_tag :li, link_to(t('comments.status.blocked'), blocked_comments_path), ({ class: 'active' } if controller.action_name.to_s == 'blocked' ) %>
6
+ <%= content_tag :li, link_to(t('view'), comments_path), ({ class: 'active' }) if controller.action_name.to_s == 'show' %>
7
+ <%= content_tag :li, link_to(t('edit'), comments_path), ({ class: 'active' }) if controller.action_name.to_s == 'edit' %>
8
+ </ul>
@@ -0,0 +1,29 @@
1
+ <h1><%= t('activerecord.models.comments') %></h1>
2
+
3
+ <%= render 'tab_admin_menu' %>
4
+
5
+ <table class='table table-striped'>
6
+ <thead>
7
+ <tr>
8
+ <th><%= t('activerecord.attributes.comments.author') %>, <%= t('activerecord.models.page') %>, <%= t('activerecord.attributes.comments.locale') %><br />
9
+ <%= t('activerecord.attributes.comments.body') %></th>
10
+ <th><%= t('activerecord.attributes.comments.status') %></th>
11
+ <th><%= t('actions') %></th>
12
+ </tr>
13
+ </thead>
14
+
15
+ <tbody>
16
+ <% @comments.each do |comment| %>
17
+ <tr>
18
+ <td><%= comment.author.name %> - <%= link_to comment.page.title, comment.page %> | <%= comment.locale %><br /><br />
19
+ <%= sanitize comment.body.gsub(/\r\n?/, "<br>"), :tags => %w(br), :attributes => %w() %></td>
20
+ <td><%= t("comments.status.#{comment.status}") %><%= t 'colon' %><%= render 'comments/status_buttons', comment: comment %></td>
21
+ <td><%= link_to t('edit'), edit_comment_path(comment), class: 'btn btn-mini' %><%= link_to t('delete'), comment, method: :delete, data: { confirm: t('are_you_sure') }, class: 'btn btn-mini btn-danger' %></td>
22
+ </tr>
23
+ <% end %>
24
+ </tbody>
25
+ </table>
26
+
27
+ <%= will_paginate @comments %>
28
+
29
+ <%= render 'shared/admin_sidebar' %>
@@ -0,0 +1,29 @@
1
+ <h1><%= t('activerecord.models.comments') %></h1>
2
+
3
+ <%= render 'tab_admin_menu' %>
4
+
5
+ <table class='table table-striped'>
6
+ <thead>
7
+ <tr>
8
+ <th><%= t('activerecord.attributes.comments.author') %>, <%= t('activerecord.models.page') %>, <%= t('activerecord.attributes.comments.locale') %><br />
9
+ <%= t('activerecord.attributes.comments.body') %></th>
10
+ <th><%= t('activerecord.attributes.comments.status') %></th>
11
+ <th><%= t('actions') %></th>
12
+ </tr>
13
+ </thead>
14
+
15
+ <tbody>
16
+ <% @comments.each do |comment| %>
17
+ <tr>
18
+ <td><%= comment.author.name %> - <%= link_to comment.page.title, comment.page %> | <%= comment.locale %><br /><br />
19
+ <%= sanitize comment.body.gsub(/\r\n?/, "<br>"), :tags => %w(br), :attributes => %w() %></td>
20
+ <td><%= t("comments.status.#{comment.status}") %><%= t 'colon' %><%= render 'comments/status_buttons', comment: comment %></td>
21
+ <td><%= link_to t('edit'), edit_comment_path(comment), class: 'btn btn-mini' %><%= link_to t('delete'), comment, method: :delete, data: { confirm: t('are_you_sure') }, class: 'btn btn-mini btn-danger' %></td>
22
+ </tr>
23
+ <% end %>
24
+ </tbody>
25
+ </table>
26
+
27
+ <%= will_paginate @comments %>
28
+
29
+ <%= render 'shared/admin_sidebar' %>
@@ -1,3 +1,6 @@
1
- <h1>Edit a Comment</h1>
1
+ <h1><%= t('activerecord.models.comments') %></h1>
2
+
3
+
4
+
2
5
  <%= render 'form' %>
3
6
  <%= render 'shared/admin_sidebar' %>
@@ -0,0 +1,16 @@
1
+ atom_feed(:language => I18n.locale.to_s) do |feed|
2
+ feed.title "#{Setting.first.site_name}. #{t('activerecord.models.comments').capitalize}"
3
+ feed.updated @comments.maximum(:updated_at)
4
+ feed.language I18n.locale.to_s
5
+
6
+ @comments.each do |comment|
7
+ feed.entry comment, url: page_url(comment.page, anchor: "comment-#{comment.id}") do |entry|
8
+ entry.title truncate comment.body, length: 30, separator: ' ...'
9
+ entry.url page_url(comment.page, anchor: "comment-#{comment.id}")
10
+ entry.content comment.body
11
+ entry.author do |author|
12
+ author.name comment.author.name
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,29 +1,30 @@
1
- <h1>List of Comments</h1>
1
+ <h1><%= t('activerecord.models.comments') %></h1>
2
+
3
+ <%= render 'tab_admin_menu' %>
2
4
 
3
5
  <table class='table table-striped'>
4
6
  <thead>
5
- <tr>
6
- <th><%= t 'activerecord.attributes.comments.author' %></th>
7
- <th><%= t 'activerecord.attributes.comments.page' %></th>
8
- <th><%= t 'activerecord.attributes.comments.body' %></th>
9
- <th><%= t 'activerecord.attributes.comments.status' %></th>
10
- <th><%= t 'activerecord.attributes.comments.locale' %></th>
11
- <th>Actions</th>
7
+ <tr>
8
+ <th><%= t('activerecord.attributes.comments.author') %>, <%= t('activerecord.models.page') %>, <%= t('activerecord.attributes.comments.locale') %><br />
9
+ <%= t('activerecord.attributes.comments.body') %></th>
10
+ <th><%= t('activerecord.attributes.comments.status') %></th>
11
+ <th><%= t('actions') %></th>
12
12
  </tr>
13
13
  </thead>
14
14
 
15
15
  <tbody>
16
- <% @comments.each do |comment| %>h
16
+ <% @comments.each do |comment| %>
17
17
  <tr>
18
- <td><%= comment.author.name %></td>
19
- <td><%= link_to comment.page.title, comment.page %></td>
20
- <td><%= truncate comment.body, length: 75, separator: ' ...' %></td>
21
- <td><%= comment.status %><%= t 'colon' %><%= render 'comments/status_buttons', comment: comment %></td>
22
- <td><%= comment.locale %></td>
18
+ <td><%= comment.author.name %> - <%= link_to comment.page.title, comment.page %> | <%= comment.locale %><br /><br />
19
+ <%= sanitize comment.body.gsub(/\r\n?/, "<br>"), :tags => %w(br), :attributes => %w() %></td>
20
+
21
+ <td><%= t("comments.status.#{comment.status}") %><%= t 'colon' %><%= render 'comments/status_buttons', comment: comment %></td>
23
22
  <td><%= link_to t('edit'), edit_comment_path(comment), class: 'btn btn-mini' %><%= link_to t('delete'), comment, method: :delete, data: { confirm: t('are_you_sure') }, class: 'btn btn-mini btn-danger' %></td>
24
23
  </tr>
25
24
  <% end %>
26
25
  </tbody>
27
26
  </table>
28
27
 
28
+ <%= will_paginate @comments %>
29
+
29
30
  <%= render 'shared/admin_sidebar' %>
@@ -0,0 +1,31 @@
1
+ <h1><%= t('activerecord.models.comments') %></h1>
2
+
3
+ <%= render 'tab_admin_menu' %>
4
+
5
+ <p><span class="label label-info"><%= t('comments.sorted_by_oldest') %></span></p>
6
+
7
+ <table class='table table-striped'>
8
+ <thead>
9
+ <tr>
10
+ <th><%= t('activerecord.attributes.comments.author') %>, <%= t('activerecord.models.page') %>, <%= t('activerecord.attributes.comments.locale') %><br />
11
+ <%= t('activerecord.attributes.comments.body') %></th>
12
+ <th><%= t('activerecord.attributes.comments.status') %></th>
13
+ <th><%= t('actions') %></th>
14
+ </tr>
15
+ </thead>
16
+
17
+ <tbody>
18
+ <% @comments.each do |comment| %>
19
+ <tr>
20
+ <td><%= comment.author.name %> - <%= link_to comment.page.title, comment.page %> | <%= comment.locale %><br /><br />
21
+ <%= sanitize comment.body.gsub(/\r\n?/, "<br>"), :tags => %w(br), :attributes => %w() %></td>
22
+ <td><%= t("comments.status.#{comment.status}") %><%= t 'colon' %><%= render 'comments/status_buttons', comment: comment %></td>
23
+ <td><%= link_to t('edit'), edit_comment_path(comment), class: 'btn btn-mini' %><%= link_to t('delete'), comment, method: :delete, data: { confirm: t('are_you_sure') }, class: 'btn btn-mini btn-danger' %></td>
24
+ </tr>
25
+ <% end %>
26
+ </tbody>
27
+ </table>
28
+
29
+ <%= will_paginate @comments %>
30
+
31
+ <%= render 'shared/admin_sidebar' %>
@@ -1,13 +1,12 @@
1
- Here is the message sent via the contact form on the web site:
1
+ <%= t('contacts.mailer.intro') %>
2
2
 
3
- - Sender's name: <%= @contact.sender_name %>
4
- - Sender's email: <%= @contact.sender_email %>
3
+ - <%= t('contacts.mailer.sender_name') %> <%= @contact.sender_name %>
4
+ - <%= t('contacts.mailer.sender_email') %> <%= @contact.sender_email %>
5
5
 
6
- Message:
6
+ <%= t('contacts.mailer.message') %>
7
7
 
8
8
  -----------------------------------
9
9
 
10
10
  <%= @contact.body %>
11
11
 
12
12
  -----------------------------------
13
-
@@ -0,0 +1,4 @@
1
+ <ul class="nav nav-tabs" id="admin-menu-tab">
2
+ <%= content_tag :li, link_to(t('list'), contacts_path), ({ class: 'active' } if controller.action_name.to_s == 'index' ) %>
3
+ <%= content_tag :li, link_to(t('view'), contacts_path), ({ class: 'active' }) if controller.action_name.to_s == 'show' %>
4
+ </ul>
@@ -1,4 +1,6 @@
1
- <h1><%= t 'contacts.index.title' %></h1>
1
+ <h1><%= t 'activerecord.models.contacts' %></h1>
2
+
3
+ <%= render 'tab_admin_menu' %>
2
4
 
3
5
  <table class='table table-striped'>
4
6
  <thead>
@@ -7,7 +9,7 @@
7
9
  <th><%= t 'activerecord.attributes.contacts.sender_email' %></th>
8
10
  <th><%= t 'activerecord.attributes.contacts.body' %></th>
9
11
  <th><%= t 'contacts.sent' %></th>
10
- <th>Actions</th>
12
+ <th><%= t('actions') %></th>
11
13
  </tr>
12
14
  </thead>
13
15
 
@@ -15,10 +17,10 @@
15
17
  <% @contacts.each do |contact| %>
16
18
  <tr>
17
19
  <td><%= contact.sender_name %></td>
18
- <td><%= mail_to contact.sender_email, contact.sender_name, subject: 'Response to your message' %></td>
19
- <td><%= truncate contact.body, length: 55, separator: ' ...' %></td>
20
- <td><%= l contact.created_at, :format => :default %></td>
21
- <td>Reply to email: <%= mail_to contact.sender_email, contact.sender_name, subject: 'Response to your message' %></td>
20
+ <td><%= link_to contact.sender_email, "mailto:#{contact.sender_email}" %></td>
21
+ <td><%= truncate contact.body, length: 85, separator: ' ...' %></td>
22
+ <td><%= l contact.created_at, :format => :tkh_default %></td>
23
+ <td><%= link_to t('view'), contact %></td>
22
24
  </tr>
23
25
  <% end %>
24
26
  </tbody>