tkh_content 0.9.7 → 0.9.8

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