tkh_content 0.3.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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>