th_simple_blog 0.0.1 → 0.0.3
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 +8 -8
- data/app/assets/images/simple_blog/button_lightbox_close.png +0 -0
- data/app/assets/javascripts/simple_blog/index.js +8 -0
- data/app/assets/javascripts/simple_blog/simple_posts.js +15 -0
- data/app/assets/stylesheets/simple_blog/index.css.scss +2 -0
- data/app/assets/stylesheets/simple_blog/simple_posts.css.scss +5 -0
- data/app/controllers/simple_blog/simple_posts_controller.rb +9 -4
- data/app/models/simple_blog/simple_post.rb +24 -2
- data/app/models/simple_blog/simple_post_tag.rb +11 -0
- data/app/views/simple_blog/simple_posts/_form.html.erb +15 -0
- data/app/views/simple_blog/simple_posts/index.html.erb +2 -0
- data/app/views/simple_blog/simple_posts/show.html.erb +12 -0
- data/config/locales/simple_blog/nl/models/simple_post.yml +5 -1
- data/lib/simple_blog/simple_post_thumbnail_uploader.rb +25 -0
- data/lib/simple_blog/version.rb +1 -1
- data/lib/simple_blog.rb +1 -0
- metadata +11 -6
- data/app/assets/javascripts/simple_blog/application.js +0 -15
- data/app/assets/stylesheets/simple_blog/application.css +0 -13
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZmRkYWYzMTM1OGM4NDQyNTNkZjJkZTE3MGMwMDEwZjAzYjkxYzM1Yg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
M2U5NWJmMTc2ZjBkNjE4M2E0MjIwNmYyMjAzNTY2NjZiNDVlNGU2Ng==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODUzNjQyZDk3NWVlMTI4NTM5Njc3ZmI2YjEzZTZiYjA4NDdkZGEwZmMwZTE2
|
10
|
+
OTg3ZDgyMzA3ZWMxYzliMDg5MDBjNmU3M2YyZmQwOTFkOWJhZGRjM2NiODUz
|
11
|
+
NDZlNzRhNTYzYzFhODg5Y2RlYzU5ZTc4YjliZDU1ODZmYzUxYTU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NjAwZjVkNDhlYjcyZTZhMzcxYWIxM2Q1MWVmNTZkYTk4NDdkMzg4Yjg5YjAy
|
14
|
+
ZDk0OGM2MDkxNjU1OTM2MDZlYTA5ZGJkNDAyNGE3NjFiNjZmNjgyZDc1YTEz
|
15
|
+
ZmVjOGQzODM1NjZlYzMwODU3YTNlNDVkNTY3MzRmMjhkNzcyNDk=
|
Binary file
|
@@ -0,0 +1,15 @@
|
|
1
|
+
$(function() {
|
2
|
+
if(!$("#simple_blog_simple_posts_edit, #simple_blog_simple_posts_new").length)
|
3
|
+
return;
|
4
|
+
|
5
|
+
$("#simple_blog_simple_post_tags_list").each(function() {
|
6
|
+
$(this).tagsManager({
|
7
|
+
prefilled: $(this).val().split(/,/g),
|
8
|
+
preventSubmitOnEnter: true,
|
9
|
+
typeahead: true,
|
10
|
+
typeaheadSource: $(this).data("tags"),
|
11
|
+
hiddenTagListName: $(this).prop("name")
|
12
|
+
});
|
13
|
+
$(this).prop("name", "").val("");
|
14
|
+
});
|
15
|
+
})
|
@@ -2,8 +2,8 @@ class SimpleBlog::SimplePostsController < InheritedResources::Base
|
|
2
2
|
defaults :resource_class => SimpleBlog::SimplePost
|
3
3
|
include SimpleAdminPanel::ControllerExtensions
|
4
4
|
alias_method_chain :collection, :search_and_pagination
|
5
|
+
before_filter :ensure_defaults, only: :new
|
5
6
|
before_filter :ensure_user, only: [:new, :create]
|
6
|
-
before_filter :ensure_published_at, only: [:new]
|
7
7
|
|
8
8
|
protected
|
9
9
|
def end_of_association_chain
|
@@ -12,10 +12,15 @@ class SimpleBlog::SimplePostsController < InheritedResources::Base
|
|
12
12
|
|
13
13
|
private
|
14
14
|
def ensure_user
|
15
|
-
build_resource.
|
15
|
+
build_resource.tap do |post|
|
16
|
+
post.user ||= current_user
|
17
|
+
end
|
16
18
|
end
|
17
19
|
|
18
|
-
def
|
19
|
-
build_resource.
|
20
|
+
def ensure_defaults
|
21
|
+
build_resource.tap do |post|
|
22
|
+
post.author_name ||= current_user.name
|
23
|
+
post.published_at ||= (Time.current + 1.hour).beginning_of_hour
|
24
|
+
end
|
20
25
|
end
|
21
26
|
end
|
@@ -1,10 +1,32 @@
|
|
1
1
|
class SimpleBlog::SimplePost < ActiveRecord::Base
|
2
|
+
include SimpleContentManagement::ContentText
|
3
|
+
|
4
|
+
mount_uploader :thumbnail, SimpleBlog::SimplePostThumbnailUploader
|
5
|
+
|
2
6
|
belongs_to :user
|
7
|
+
has_and_belongs_to_many :tags, class_name: "SimpleBlog::SimplePostTag"
|
3
8
|
|
4
9
|
scope :active, where(deleted: false)
|
5
|
-
scope :published, ->{ where("published_at IS NOT NULL AND published_at < ?", DateTime.current) }
|
10
|
+
scope :published, ->{ where("published_at IS NOT NULL AND published_at < ? AND (expires_at IS NULL OR expires_at > ?)", DateTime.current, DateTime.current) }
|
11
|
+
|
12
|
+
attr_accessible :title, :content_html, :published_at, :expires_at, :tags_list, :author_name, :thumbnail, :thumbnail_cache
|
13
|
+
|
14
|
+
def to_param
|
15
|
+
"#{id}-#{title.parameterize}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def tags_list
|
19
|
+
tags.pluck("name").join ","
|
20
|
+
end
|
6
21
|
|
7
|
-
|
22
|
+
def tags_list= tags_list
|
23
|
+
tag_names = tags_list.split %r{\s*,\s*}
|
24
|
+
existing_tags = SimpleBlog::SimplePostTag.where(name: tag_names).all
|
25
|
+
existing_tag_names = existing_tags.map &:name
|
26
|
+
self.tags = (existing_tags + tag_names.map{ |tag_name|
|
27
|
+
SimpleBlog::SimplePostTag.create(name: tag_name) unless existing_tag_names.include? tag_name
|
28
|
+
}.compact)
|
29
|
+
end
|
8
30
|
|
9
31
|
def destroy
|
10
32
|
update_attribute :deleted, true
|
@@ -1,11 +1,26 @@
|
|
1
1
|
<%= simple_form_for [:admin, @simple_post], url: @simple_post.new_record? ? simple_blog_simple_posts_path : simple_blog_simple_post_path(@simple_post) do |f| %>
|
2
2
|
<%= f.input :title, input_html: { class: "input-xlarge" } %>
|
3
|
+
<%= f.input :tags_list, input_html: { data: { tags: SimpleBlog::SimplePostTag.pluck("name") } } %>
|
4
|
+
<%= f.input :author_name %>
|
5
|
+
|
6
|
+
<%= f.input :thumbnail do %>
|
7
|
+
<%= image_tag(@simple_post.thumbnail_url :thumb) if @simple_post.thumbnail? %>
|
8
|
+
<%= f.input_field :thumbnail %>
|
9
|
+
<%= f.hidden_field :thumbnail_cache %>
|
10
|
+
<% end %>
|
11
|
+
|
3
12
|
<%= f.input :content_html, input_html: { cols: 120, rows: 7, class: "input-xxlarge redactor" } %>
|
13
|
+
|
4
14
|
<%= f.input :published_at, wrapper: :append, hint: "Laat leeg om de post niet te publiceren." do %>
|
5
15
|
<%= f.input_field :published_at, as: :string, value: (resource.published_at ? l(resource.published_at, format: "%Y-%m-%d %H:%M") : ""), placeholder: "YYYY-MM-DD HH:MM", class: "input-medium" %>
|
6
16
|
<span class="add-on"><%= l(resource.published_at.presence || Time.current, format: "%Z") %></span>
|
7
17
|
<% end %>
|
8
18
|
|
19
|
+
<%= f.input :expires_at, wrapper: :append, hint: "Laat leeg om de post niet automatisch te verwijderen." do %>
|
20
|
+
<%= f.input_field :expires_at, as: :string, value: (resource.expires_at ? l(resource.expires_at, format: "%Y-%m-%d %H:%M") : ""), placeholder: "YYYY-MM-DD HH:MM", class: "input-medium" %>
|
21
|
+
<span class="add-on"><%= l(resource.published_at.presence || Time.current, format: "%Z") %></span>
|
22
|
+
<% end %>
|
23
|
+
|
9
24
|
<div class="form-actions">
|
10
25
|
<%= f.button :submit %>
|
11
26
|
</div>
|
@@ -1,8 +1,10 @@
|
|
1
1
|
<%= table_list_for @simple_posts, sortable: false, resource_class: SimpleBlog::SimplePost do |t| %>
|
2
2
|
<%= t.item :title, as: :link %>
|
3
3
|
<%= t.item :user, :name %>
|
4
|
+
<%= t.item :author_name %>
|
4
5
|
<%= t.item :created_at, as: :short_datetime %>
|
5
6
|
<%= t.item :published_at, as: :short_datetime %>
|
7
|
+
<%= t.item :expires_at, as: :short_datetime %>
|
6
8
|
<%= t.item :updated_at, as: :short_datetime %>
|
7
9
|
<%= t.item as: :actions %>
|
8
10
|
<% end %>
|
@@ -1 +1,13 @@
|
|
1
|
+
<% @simple_post.tags.each do |tag| %>
|
2
|
+
<%= content_tag :span, tag.name, class: "label" %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<div id="simple-post-thumbnail-lightbox" class="lightbox hide fade" tabindex="-1" role="dialog" aria-hidden="true">
|
6
|
+
<%= link_to image_tag("simple_blog/button_lightbox_close.png"), "#simple-post-thumbnail-lightbox", class: "close", data: { toggle: "lightbox" } %>
|
7
|
+
<div class="lightbox-content">
|
8
|
+
<%= image_tag @simple_post.thumbnail_url(:content) %>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<%= link_to image_tag(@simple_post.thumbnail_url(:thumb), class: "thumbnail pull-left"), "#simple-post-thumbnail-lightbox", data: { toggle: "lightbox" } if @simple_post.thumbnail? %>
|
1
13
|
<%= @simple_post.content_html.html_safe %>
|
@@ -10,7 +10,11 @@ nl:
|
|
10
10
|
title: Titel
|
11
11
|
published_at: Publicatiedatum
|
12
12
|
published_at_abbr: Publicatie
|
13
|
+
expires_at: Verloopdatum
|
14
|
+
expires_atr_abbr: Verloopt
|
13
15
|
created_at: Aangemaakt
|
14
16
|
updated_at: Laatst gewijzigd
|
15
17
|
updated_at_abbr: Gewijzigd
|
16
|
-
user_name: Gebruiker
|
18
|
+
user_name: Gebruiker
|
19
|
+
tags_list: Tags
|
20
|
+
author_name: Auteur
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class SimpleBlog::SimplePostThumbnailUploader < CarrierWave::Uploader::Base
|
2
|
+
include CarrierWave::MiniMagick
|
3
|
+
storage :file
|
4
|
+
|
5
|
+
# Override the directory where uploaded files will be stored.
|
6
|
+
# This is a sensible default for uploaders that are meant to be mounted:
|
7
|
+
def store_dir
|
8
|
+
"system/blog/post_thumbnails/#{model.id}"
|
9
|
+
end
|
10
|
+
|
11
|
+
# Create different versions of your uploaded files:
|
12
|
+
version :thumb do
|
13
|
+
process :resize_to_fill => [160, 160]
|
14
|
+
end
|
15
|
+
|
16
|
+
version :content do
|
17
|
+
process :resize_to_limit => [800, 800]
|
18
|
+
end
|
19
|
+
|
20
|
+
# Add a white list of extensions which are allowed to be uploaded.
|
21
|
+
# For images you might use something like this:
|
22
|
+
def extension_white_list
|
23
|
+
%w(png gif jpg jpeg)
|
24
|
+
end
|
25
|
+
end
|
data/lib/simple_blog/version.rb
CHANGED
data/lib/simple_blog.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: th_simple_blog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- toby hinloopen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -25,13 +25,13 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.2.12
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: th_simple_content_management
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
|
-
type: :
|
34
|
+
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
@@ -45,11 +45,15 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
-
- app/assets/
|
49
|
-
- app/assets/
|
48
|
+
- app/assets/images/simple_blog/button_lightbox_close.png
|
49
|
+
- app/assets/javascripts/simple_blog/index.js
|
50
|
+
- app/assets/javascripts/simple_blog/simple_posts.js
|
51
|
+
- app/assets/stylesheets/simple_blog/index.css.scss
|
52
|
+
- app/assets/stylesheets/simple_blog/simple_posts.css.scss
|
50
53
|
- app/controllers/simple_blog/simple_posts_controller.rb
|
51
54
|
- app/helpers/simple_blog/application_helper.rb
|
52
55
|
- app/models/simple_blog/simple_post.rb
|
56
|
+
- app/models/simple_blog/simple_post_tag.rb
|
53
57
|
- app/views/simple_blog/simple_posts/_form.html.erb
|
54
58
|
- app/views/simple_blog/simple_posts/edit.html.erb
|
55
59
|
- app/views/simple_blog/simple_posts/index.html.erb
|
@@ -58,6 +62,7 @@ files:
|
|
58
62
|
- config/locales/simple_blog/nl/models/simple_post.yml
|
59
63
|
- config/routes.rb
|
60
64
|
- lib/simple_blog/engine.rb
|
65
|
+
- lib/simple_blog/simple_post_thumbnail_uploader.rb
|
61
66
|
- lib/simple_blog/version.rb
|
62
67
|
- lib/simple_blog.rb
|
63
68
|
- lib/tasks/simple_blog_tasks.rake
|
@@ -1,15 +0,0 @@
|
|
1
|
-
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
-
// listed below.
|
3
|
-
//
|
4
|
-
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
-
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
-
//
|
7
|
-
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
-
// the compiled file.
|
9
|
-
//
|
10
|
-
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
11
|
-
// GO AFTER THE REQUIRES BELOW.
|
12
|
-
//
|
13
|
-
//= require jquery
|
14
|
-
//= require jquery_ujs
|
15
|
-
//= require_tree .
|
@@ -1,13 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
-
* listed below.
|
4
|
-
*
|
5
|
-
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
-
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
-
*
|
8
|
-
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
|
-
* compiled file, but it's generally better to create a new file per style scope.
|
10
|
-
*
|
11
|
-
*= require_self
|
12
|
-
*= require_tree .
|
13
|
-
*/
|