tkh_content 0.9.7 → 0.9.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b06a375c8b361ed9c4bf4dd7a10d3a3afb4df4fa
4
- data.tar.gz: de9b8030ae290fbeb30fb88066dd953f5abb28bc
3
+ metadata.gz: 5aa776dd50acb59c951e8fd0506a2af67d60aa50
4
+ data.tar.gz: 3ecdb0062469aae86f29403e5fa710a8f36a8c5c
5
5
  SHA512:
6
- metadata.gz: 93001b14073b528c19fcf91e058e5c9c664d051997783d127caa62eb4345cc6bbfc9fc1691477120d92b106fbbbf13e58cb71420700b21d0b7823fa38ce72afe
7
- data.tar.gz: 92ae0346967036ef283091e13cc6cac875c009167a54b4e2c7f37d4a05d9d219c3ce99e63e3cc52ae74d38f5ca57fbe7946ddef2381fac5cad6249fbeb0357fe
6
+ metadata.gz: ccff788f856910f0b2b1b6478d5495917a0e72c9c082afd69c3a94cdd734dad97e6d7896a3ca43c26395e208635920c1bf3de3887017e179e5f43d61edb5a1c9
7
+ data.tar.gz: f3edf90b3b14d5b35314dd59119b7619236c320dded4c8416308f1bc19fa31adec1e3aad8acd2f9f0f8b317c124b727b1f4ebc83cdbd14b4f0231b5366e3f90c
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
 
4
4
 
5
+ ## 0.9.8
6
+
7
+ * Full implementation of blog tags
8
+
9
+
5
10
  ## 0.9.7
6
11
 
7
12
  * Aesthetic changes to play better with Bootstrap 3 and Rails 4
@@ -1,102 +1,17 @@
1
1
  class BlogController < ApplicationController
2
-
2
+
3
3
  def index
4
- unless params[:tag]
5
- @posts = Page.for_blog.published.order('published_at desc').paginate(:page => params[:page], :per_page => 20)
6
- else
7
- @posts = Page.for_blog.published.tagged_with(params[:tag]).order('published_at desc').paginate(:page => params[:page], :per_page => 20)
8
- end
4
+ @posts = Page.for_blog.published.order('published_at desc').paginate(:page => params[:page], :per_page => 20)
9
5
  respond_to do |format|
10
6
  format.html { render :layout => 'blog' }
11
7
  format.atom
12
8
  end
13
9
  end
14
-
15
- # This is temporary and only to complete the import to SA's site.
16
- def update_data
17
-
18
- @count = 0
19
- @pages = Array.new
20
-
21
- Page.all.each do |page|
22
- # determine whether page contains path
23
- if page.body.match /src="\/system\/photos\/.*\.jpg/
24
- # extract string to be changed
25
- # match_data = page.body.match /src="\/system\/photos\/.*\.jpg/
26
- # # extract an image name with jpg extension in the blog/2006 section
27
- # extracted_image = match_data.to_s.sub("src=\"/images/photos/", '')
28
- # # find the corresponding illustration
29
- # illustration = Illustration.find_by_name(extracted_image)
30
- # if illustration
31
- # # change the image path
32
- # page.body = page.body.sub("/images/blog/2007/", "/system/images/illustration/#{illustration.id}/large_")
33
- # # save the page with new path
34
- # page.save
35
- # end
36
- @count += 1
37
- @pages << page
38
-
39
- end
40
- end
41
-
42
- # @list_of_files = Array.new
43
-
44
- # @count = 0
45
-
46
- # Illustration.all.each do |illustration|
47
- #
48
- # if illustration.name == 'No name given'
49
- #
50
- # illustration.destroy
51
- # @count += 1
52
- #
53
- # end
54
- #
55
- # # # extract an image name with jpg extension in the blog/2006 section
56
- # # extracted_image = page.body.match(/src="\/images\/blog\/2006\/.*\.jpg/).to_s.sub("src=\"/images/blog/2006/", '')
57
- # #
58
- # # if extracted_image
59
- # #
60
- # # # find the corresponding illustration
61
- # # @illustration = Illustration.find_by_image(File.basename("/Users/swamiatma/Documents/railsapps/aya/public/images/blog/2006/#{extracted_image}"))
62
- # #
63
- # # if @illustration
64
- # # # change the path of the image
65
- # # page.body = page.body.sub("/images/blog/2006/", "/system/images/illustration/#{@illustration.id}/large_")
66
- # # # save the page with new path
67
- # # page.save
68
- # #
69
- # # count += 1
70
- # # extracted_image = nil
71
- # # end
72
- # #
73
- # # end
74
- #
75
- # end
76
-
77
- # # take a blog post as an example
78
- # @page = Page.find(9)
79
10
 
80
-
81
- # redirect_to blog_path, notice: "#{count} wp images have been detected"
82
- #
83
- # count = 0
84
- #
85
- # Dir["/Users/swamiatma/Documents/railsapps/aya/public/images/photos/*.*"].each do |file|
86
- #
87
- # illustration = Illustration.new
88
- # illustration.image = File.open(file)
89
- # illustration.name = "photos-#{File.basename(file)}"
90
- # illustration.save
91
- #
92
- # count += 1
93
- #
94
- # end
95
- #
96
- #
97
- # redirect_to illustrations_path, notice: "#{count} new illustrations should be uploaded"
98
-
99
-
11
+ def by_tag
12
+ @tag = Tag.where('name = ?', params[:id]).first
13
+ @posts = @tag.pages.order('published_at desc').paginate(:page => params[:page], :per_page => 20)
14
+ render :layout => 'blog'
100
15
  end
101
-
16
+
102
17
  end
data/app/models/tag.rb CHANGED
@@ -18,4 +18,10 @@ class Tag < ActiveRecord::Base
18
18
  name ? "#{id}-#{name.to_url}" : id
19
19
  end
20
20
 
21
+ def self.with_taggings
22
+ taggings = Tagging.select("DISTINCT tag_id")
23
+ ids = taggings.map { |tagging| tagging.tag_id }
24
+ tags = Tag.order('name').find(ids)
25
+ end
26
+
21
27
  end
@@ -0,0 +1,13 @@
1
+ <% if administrator? %>
2
+
3
+ <% content_for :admin_context_menu do %>
4
+
5
+ <h2><%= t('admin_section') %></h2>
6
+ <ul class="list-group">
7
+ <li class="list-group-item"><%= link_to t('admin_panel'), pages_path %></li>
8
+ <%= content_tag :li, link_to( "#{t('activerecord.models.comments').capitalize} <span class='badge'>#{Comment.pending.count}</span>".html_safe, pending_comments_path ), class: 'list-group-item' if Comment.pending.count > 0 %>
9
+ </ul>
10
+
11
+ <% end -%>
12
+
13
+ <% end -%>
@@ -0,0 +1,10 @@
1
+ <% content_for :all_tags_list do %>
2
+ <h2>étiquettes</h2>
3
+ <% if Tag.count > 0 %>
4
+ <p class="all-tags-list">
5
+ <%= render :partial => 'blog/individual_tag', collection: Tag.with_taggings, as: :tag %>
6
+ </p>
7
+ <% else %>
8
+ <p>There are currently no tags to display</p>
9
+ <% end %>
10
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= content_tag :span, link_to(tag.name, blog_by_tag_path(tag.name)), class: 'individual-tag' %>
@@ -0,0 +1,23 @@
1
+ <% content_for :meta_title, Setting.first.try(:company_name) %>
2
+ <% content_for :meta_description, "Blog posts with the '#{@tag.name}' tag." %>
3
+ <% content_for :canonical_link, link_to('', blog_path, rel: 'canonical') %>
4
+
5
+ <div class="panel panel-info">
6
+ <div class="panel-heading">
7
+ <h3 class="panel-title"><%= @tag.name %></h3>
8
+ </div>
9
+ <div class="panel-body">
10
+ Liste des articles avec cette étiquette
11
+ </div>
12
+ </div>
13
+
14
+ <% for post in @posts %>
15
+ <%= render '/pages/individual_blog_post_in_list', post: post %>
16
+ <% end %>
17
+
18
+ <%= will_paginate @posts %>
19
+
20
+ <%= render 'all_tags_list' %>
21
+ <%= render( 'admin_context_menu', page: @page) %>
22
+ <%# partial in tkh_menus gem or has to be added in host app %>
23
+ <%= render './shared/menus' %>
@@ -7,5 +7,9 @@
7
7
  <%= render '/pages/individual_blog_post_in_list', post: post %>
8
8
  <% end %>
9
9
 
10
-
11
10
  <%= will_paginate @posts %>
11
+
12
+ <%= render 'all_tags_list' %>
13
+ <%= render( 'admin_context_menu', page: @page) %>
14
+ <%# partial in tkh_menus gem or has to be added in host app %>
15
+ <%= render './shared/menus' %>
@@ -1,9 +1,15 @@
1
- <p class="meta-info">
2
- <%= post.author.name %> |
3
- <%= post.published_at ? link_to(l(post.published_at, format: :tkh_default), post) : t('pages.not_published_yet') %> |
4
- <%= "#{t('activerecord.models.comments')}#{t('colon')} #{post.comments.showable.for_locale(I18n.locale.to_s).count}" %>
5
- <% if administrator? %>
6
- <br />
7
- <%= link_to t('edit'), edit_page_path(post), class: 'btn btn-xs btn-primary' %>
1
+ <p class="post-meta-info">
2
+ <%= content_tag :span, post.author.name, class: 'author-name' %>
3
+ <%= content_tag :span, (post.published_at ? link_to(l(post.published_at, format: :tkh_default), post) : t('pages.not_published_yet')), class: 'published-date' %>
4
+ <%= content_tag :span, "#{t('activerecord.models.comments')}#{t('colon')} #{post.comments.showable.for_locale(I18n.locale.to_s).count}", class: 'comment-count' %>
5
+
6
+ <% if post.tags.count > 0 %>
7
+ <span class="tag-list">
8
+ <%= render :partial => 'blog/individual_tag', collection: post.tags.alphabetically, as: :tag %>
9
+ </span>
10
+ <% end %>
11
+
12
+ <% if administrator? %>
13
+ <%= content_tag :span, (link_to t('edit'), edit_page_path(post), class: 'btn btn-xs btn-primary'), class: 'edit-button' %>
8
14
  <% end %>
9
15
  </p>
@@ -1,10 +1,12 @@
1
1
  <%= simple_form_for @page, :html => { class: 'form-horizontal', role: 'form' } do |f| %>
2
2
  <%= f.error_notification %>
3
3
 
4
- <div class="form-inputs">
5
- <%= f.input :title, label: t('activerecord.attributes.pages.title'), hint: t('pages.hint.title') %>
4
+ <%= f.input :title,
5
+ label: t('activerecord.attributes.pages.title'),
6
+ hint: t('pages.hint.title'),
7
+ input_html: { size: 45 } %>
6
8
  <%= f.input :for_blog, label: t('activerecord.attributes.pages.for_the_blog') %>
7
- <%= f.input :tag_list, hint: 'space separated', :wrapper_html => { :id => 'page-tag-list' } %>
9
+ <%= f.input :tag_list, hint: 'space separated', :wrapper_html => { :id => 'page-tag-list' }, input_html: { size: 45 } %>
8
10
  <%= f.input :short_title, label: t('activerecord.attributes.pages.short_title'), hint: t('pages.hint.short_title'), :wrapper_html => { :id => 'page-short-title' } %>
9
11
  <%= f.input :parent_page_title,
10
12
  as: :string,
@@ -15,7 +17,7 @@
15
17
  :data => { provide: 'typeahead',
16
18
  source: Page.not_for_blog.by_title.map(&:title).to_json }
17
19
  } %>
18
- <%= f.input :description, label: t('activerecord.attributes.pages.description'), :input_html => { :rows => 3 } %>
20
+ <%= f.input :description, label: t('activerecord.attributes.pages.description'), :input_html => { cols: 45, rows: 3 } %>
19
21
  <%= f.input :body, label: t('activerecord.attributes.pages.body'), :input_html => { :rows => 35, :class => 'ckeditor' } %>
20
22
 
21
23
  <% if controller.action_name == 'edit' # the current_user is the page creator in create method %>
@@ -24,14 +26,13 @@
24
26
  :wrapper_html => { :id => 'author-name' },
25
27
  label: "author name",
26
28
  :input_html => {
29
+ size: 45,
27
30
  :autocomplete => 'off',
28
31
  :data => { source: User.administrators.alphabetically.map(&:formal_name).to_json }
29
32
  } %>
30
33
  <% end -%>
31
- </div>
32
34
 
33
- <div class="form-actions">
35
+ <br />
34
36
  <%= f.button :submit, :class => 'btn btn-primary' %>
35
- </div>
36
37
 
37
38
  <% end %>
@@ -13,9 +13,11 @@
13
13
  <%= render '/pages/blog_post_meta', post: @page %>
14
14
  <%= raw tkhed(@page.body) %>
15
15
  <%= render 'comment_section' if Setting.first.enable_comments_in_blog? %>
16
+ <%= render 'blog/all_tags_list' %>
16
17
 
17
18
  <% end -%>
18
19
 
19
20
  <%= render( 'admin_context_menu', page: @page) %>
20
21
  <%# partial in tkh_menus gem or has to be added in host app %>
21
22
  <%= render './shared/menus' %>
23
+
data/config/routes.rb CHANGED
@@ -6,13 +6,13 @@ Rails.application.routes.draw do
6
6
  post :unpublish
7
7
  post :toggle_for_blog
8
8
  end
9
- collection do
9
+ collection do
10
10
  post :sort
11
11
  end
12
12
  end
13
-
13
+
14
14
  resources :contacts
15
-
15
+
16
16
  resources :comments do
17
17
  collection do
18
18
  get :pending
@@ -26,7 +26,7 @@ Rails.application.routes.draw do
26
26
  end
27
27
  end
28
28
  get 'blog' => 'blog#index', as: :blog
29
- get 'tags/:tag', to: 'blog#index', as: :tag
30
-
29
+ get 'blog_by_tag/:id', :to => 'blog#by_tag', :as => 'blog_by_tag'
30
+
31
31
  end
32
- end
32
+ end
@@ -3,11 +3,11 @@
3
3
  <head>
4
4
  <title>
5
5
  <% if defined?(SETTINGS) && SETTINGS['site_name'] %>
6
- <%= @meta_title ? "#{@meta_title} | #{SETTINGS['site_name']}" : SETTINGS['site_name'] %>
6
+ <%= @meta_title ? "#{@meta_title} | #{SETTINGS['site_name']}" : SETTINGS['site_name'] %>
7
7
  <% else %>
8
8
  <%= @meta_title ? @meta_tile : 'A web site powered by tkh_cms' %>
9
9
  <% end -%>
10
- - The blog</title>
10
+ - The blog</title>
11
11
  <meta name="description" content="<%= @meta_description -%>">
12
12
  <%= stylesheet_link_tag "application", :media => "all" %>
13
13
  <%= favicon_link_tag '/favicon.ico' %>
@@ -16,23 +16,23 @@
16
16
  <body>
17
17
 
18
18
  <div id="content">
19
-
20
- <article>
19
+
20
+ <article>
21
21
  <% flash.each do |name, msg| %>
22
22
  <%= content_tag :div, msg, :id => "flash_#{name}" %>
23
23
  <% end %>
24
-
24
+
25
25
  <h1>The blog</h1>
26
-
26
+
27
27
  <%= yield %>
28
28
  </article>
29
-
29
+
30
30
  <aside>
31
31
  <%# = render 'shared/sidebar' %>
32
32
  </aside>
33
-
33
+
34
34
  </div>
35
-
35
+
36
36
  <%= javascript_include_tag "application" %>
37
37
  </body>
38
38
  </html>
@@ -1,3 +1,3 @@
1
1
  module TkhContent
2
- VERSION = "0.9.7"
2
+ VERSION = "0.9.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tkh_content
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.7
4
+ version: 0.9.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Swami Atma
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-04 00:00:00.000000000 Z
11
+ date: 2014-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -160,6 +160,10 @@ files:
160
160
  - app/models/page.rb
161
161
  - app/models/tag.rb
162
162
  - app/models/tagging.rb
163
+ - app/views/blog/_admin_context_menu.html.erb
164
+ - app/views/blog/_all_tags_list.html.erb
165
+ - app/views/blog/_individual_tag.html.erb
166
+ - app/views/blog/by_tag.html.erb
163
167
  - app/views/blog/index.atom.builder
164
168
  - app/views/blog/index.html.erb
165
169
  - app/views/comments/_form.html.erb