journal-chr 0.3.8 → 0.4.0

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: a00a6a1237651ff13a7538e103a87a7ddcecd9d1
4
- data.tar.gz: f68c81a417f8cc974d5ef4d1d66a54682cfda975
3
+ metadata.gz: 5f20361e316ff91793a6d95cb050a5dd7b02c8df
4
+ data.tar.gz: e7411a029fb14f0f78f57919932185d3522d12b0
5
5
  SHA512:
6
- metadata.gz: 55f7b46f1448079b508faa64050d9447fbd473a2a7645741a9b41dba978e3227397289a9264df1310eb59a89569f8b3b20325676be766adc28608fdc1aeca5f1
7
- data.tar.gz: 0a42d7abb1722477c0212fb8f4a89c8fb83350d215ba6e29bc470c0a8bc8c6fd674552c6ef8d8b9a84734c20dd39e05f187b3f2f5000f5e1903f5206c9eee1f0
6
+ metadata.gz: 45ba95c370271890eae0ee874a4ea7b918d4a3dc128ca38138d45e726cdd78627ab50fc843d74bfc785b3a174446b753ef94f599eba05bf7b9c3bfcee8bdf0ce
7
+ data.tar.gz: 6046fe9876c1e051f10155ea19e625468f379739dbc8d728625ca56ce11a8e571f0ee86e5940d8d766918c35992f017da242aa25bb20ceb67b3a3cc80cfba86e
@@ -1,10 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- journal-chr (0.3.8)
5
- ants (>= 0.3.13)
6
- chr (>= 0.5.7)
7
- loft (>= 0.3.1)
4
+ journal-chr (0.4.0)
5
+ chr (>= 0.5.8)
6
+ loft (>= 0.4.1)
8
7
  mongosteen (>= 0.2.0)
9
8
 
10
9
  GEM
@@ -45,7 +44,7 @@ GEM
45
44
  minitest (~> 5.1)
46
45
  thread_safe (~> 0.3, >= 0.3.4)
47
46
  tzinfo (~> 1.1)
48
- ants (0.3.13)
47
+ ants (0.3.14)
49
48
  devise
50
49
  meta-tags
51
50
  mongoid (>= 4.0)
@@ -66,11 +65,11 @@ GEM
66
65
  carrierwave (>= 0.8.0, < 0.11.0)
67
66
  mongoid (>= 3.0, < 6.0)
68
67
  mongoid-grid_fs (>= 1.3, < 3.0)
69
- chr (0.5.7)
68
+ chr (0.5.8)
70
69
  bourbon
71
70
  coffee-rails (>= 4.0)
72
71
  font-awesome-rails
73
- formagic (>= 0.3.9)
72
+ formagic (>= 0.3.10)
74
73
  jquery-rails
75
74
  rails (~> 4.2.5)
76
75
  sass-rails
@@ -95,7 +94,7 @@ GEM
95
94
  fast-stemmer (1.0.2)
96
95
  font-awesome-rails (4.5.0.0)
97
96
  railties (>= 3.2, < 5.0)
98
- formagic (0.3.9)
97
+ formagic (0.3.10)
99
98
  bourbon (>= 3.2)
100
99
  normalize-rails (>= 3.0)
101
100
  globalid (0.3.6)
@@ -117,15 +116,15 @@ GEM
117
116
  kaminari (0.16.3)
118
117
  actionpack (>= 3.0.0)
119
118
  activesupport (>= 3.0.0)
120
- loft (0.3.1)
121
- ants (>= 0.3.10)
119
+ loft (0.4.1)
120
+ ants (>= 0.3.14)
122
121
  carrierwave-mongoid (>= 0.7.1)
123
- chr (>= 0.5.4)
122
+ chr (>= 0.5.8)
124
123
  mini_magick (>= 4.1.0)
125
124
  mongoid-autoinc (>= 4.0.0)
126
125
  mongoid-grid_fs (>= 2.1.0)
127
126
  mongoid_search (>= 0.3)
128
- mongosteen (>= 0.1.8)
127
+ mongosteen (>= 0.2.0)
129
128
  loofah (2.0.3)
130
129
  nokogiri (>= 1.5.9)
131
130
  mail (2.6.3)
data/README.md CHANGED
@@ -47,9 +47,9 @@ pages: new JournalPages()
47
47
  ## Journal family
48
48
 
49
49
  - [Character](https://github.com/slate-studio/chr): Powerful javascript CMS for apps
50
- - [Mongosteen](https://github.com/slate-studio/mongosteen): An easy way to add restful actions for mongoid models
51
- - [Inverter](https://github.com/slate-studio/inverter): An easy way to connect Rails templates content to CMS
50
+ - [Mongosteen](https://github.com/slate-studio/mongosteen): Add CRUD actions for Mongoid models with one line
52
51
  - [Loft](https://github.com/slate-studio/loft): Media assets manager for Character CMS
52
+ - [Inverter](https://github.com/slate-studio/inverter): An easy way to connect Rails templates content to CMS
53
53
 
54
54
 
55
55
  ## License
@@ -1,2 +1,2 @@
1
- #= require formagic/inputs/markdown
1
+ #= require formagic/inputs/ace-markdown
2
2
  #= require_tree ./journal
@@ -1,6 +1,8 @@
1
- class @JournalCategories
2
- constructor: (@title="Categories", @apiPath="/admin") ->
3
- @showWithParent = true
1
+ class @JournalCategories extends AntsContent
2
+ constructor: (title="Categories", @apiPath="/admin") ->
3
+ super("Category")
4
+
5
+ @title = title
4
6
 
5
7
  @arrayStore = new RailsArrayStore({
6
8
  resource: "journal_category"
@@ -8,12 +10,14 @@ class @JournalCategories
8
10
  reorderable: { positionFieldName: "_position" }
9
11
  })
10
12
 
11
- @formSchema =
12
- generic:
13
- type: "group"
14
- groupClass: "group-panel"
15
- inputs:
16
- title:
17
- type: "string"
18
- placeholder: "Category Title"
19
- slug: new AntsSlugInput("#{location.origin}/")
13
+ # PRIVATE =====================================================================
14
+
15
+ _path: (object) ->
16
+ "#{location.origin}/"
17
+
18
+ _preview_url: (object) ->
19
+ slug = object.slug
20
+ if object.hidden
21
+ "/#{slug}/preview"
22
+ else
23
+ "/#{slug}"
@@ -19,6 +19,17 @@
19
19
  }
20
20
  }
21
21
 
22
+ .categories .content_panel {
23
+ .input-markdown {
24
+ margin-top: -1px;
25
+ padding-top: 0;
26
+ padding-bottom: 0;
27
+ }
28
+ .input-markdown .label {
29
+ display: none;
30
+ }
31
+ }
32
+
22
33
  /* Tablet ----------------------------------------------------------------- */
23
34
  @media #{$tablet} {
24
35
  .list.posts,
@@ -2,7 +2,7 @@ module Admin
2
2
  class JournalCategoriesController < Admin::BaseController
3
3
  mongosteen
4
4
 
5
- json_config methods: %w(slug),
5
+ json_config methods: %w(slug opengraph_image_url meta_title meta_description),
6
6
  actions: {
7
7
  index: {
8
8
  except: %w(body_markdown body_html),
@@ -0,0 +1,27 @@
1
+ class JournalCategoriesController < ApplicationController
2
+ before_action :set_params
3
+
4
+ def show
5
+ @category = JournalCategory.not_hidden.find(@slug)
6
+ @posts = posts
7
+ render @category.template_name || "show"
8
+ end
9
+
10
+ def preview
11
+ @category = JournalCategory.find(@slug)
12
+ @posts = posts
13
+ render @category.template_name || "show"
14
+ end
15
+
16
+ private
17
+
18
+ def posts
19
+ @category.posts.not_hidden.published.page(@page).per(@perPage)
20
+ end
21
+
22
+ def set_params
23
+ @slug = params[:slug]
24
+ @page = params[:page].try(:to_i) || 1
25
+ @perPage = 15
26
+ end
27
+ end
@@ -3,10 +3,11 @@ class JournalPagesController < ApplicationController
3
3
 
4
4
  def show
5
5
  @page = JournalPage.not_hidden.find(params[:slug])
6
+ render @page.template_name || "show"
6
7
  end
7
8
 
8
9
  def preview
9
10
  @page = JournalPage.find(params[:slug])
10
- render "journal_pages/show"
11
+ render @page.template_name || "show"
11
12
  end
12
13
  end
@@ -1,5 +1,4 @@
1
1
  class JournalPostsController < ApplicationController
2
- before_filter :set_all_posts, only: %w( index show )
3
2
  before_action :authenticate_admin_user!, only: %w( preview )
4
3
 
5
4
  def index
@@ -15,35 +14,21 @@ class JournalPostsController < ApplicationController
15
14
 
16
15
  def show
17
16
  @post = published_post_by_int_id
18
- end
19
-
20
- def redirect
21
- @post = published_post_by_int_id
22
- redirect_to show_journal_post_path(@post.hex, @post.slug)
17
+ render @post.template_name || "show"
23
18
  end
24
19
 
25
20
  def preview
26
21
  @post = post_by_int_id
27
- render "journal_posts/show"
22
+ render @post.template_name || "show"
28
23
  end
29
24
 
30
- def category
31
- @slug = params[:slug]
32
- @page = params[:page].try(:to_i) || 1
33
- @perPage = 15
34
-
35
- category = JournalCategory.find(@slug)
36
- @posts = category.posts.not_hidden.published.page(@page).per(@perPage)
37
-
38
- render "journal_posts/index"
25
+ def redirect
26
+ @post = published_post_by_int_id
27
+ redirect_to show_journal_post_path(@post.hex, @post.slug)
39
28
  end
40
29
 
41
30
  private
42
31
 
43
- def set_all_posts
44
- @posts = JournalPost.not_hidden
45
- end
46
-
47
32
  def int_id
48
33
  params[:hex].to_i(16)
49
34
  end
@@ -1,6 +1,14 @@
1
1
  class JournalCategory
2
2
  include Ants::Content
3
3
  include Ants::Orderable
4
+ include Mongoid::Autoinc
5
+
6
+ ## Attributes
7
+ field :template_name, default: "show"
8
+
9
+ ## Autoinc
10
+ field :int_id, type: Integer
11
+ increments :int_id
4
12
 
5
13
  ## Relations
6
14
  has_and_belongs_to_many :posts, class_name: "JournalPost", inverse_of: :categories, index: true
@@ -1,4 +1,12 @@
1
1
  class JournalPage
2
2
  include Ants::Content
3
3
  include Ants::Orderable
4
+ include Mongoid::Autoinc
5
+
6
+ ## Attributes
7
+ field :template_name, default: "show"
8
+
9
+ ## Autoinc
10
+ field :int_id, type: Integer
11
+ increments :int_id
4
12
  end
@@ -4,6 +4,9 @@ class JournalPost
4
4
  include Ants::Featurable
5
5
  include Mongoid::Autoinc
6
6
 
7
+ ## Attributes
8
+ field :template_name, default: "show"
9
+
7
10
  ## Autoinc
8
11
  field :int_id, type: Integer
9
12
  increments :int_id
@@ -0,0 +1 @@
1
+ <%# This is a placeholder to be overriden in the project%>
@@ -0,0 +1,5 @@
1
+ <% if @category.body_html.presence %>
2
+ <section class="journal-category-content">
3
+ <%= @category.body_html.html_safe %>
4
+ </section>
5
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <% content_meta_tags @category %>
2
+ <% content_for :extra_body_classes do %>category-<%= @category.int_id %><% end %>
3
+ <%= render partial: 'aside' %>
4
+ <%= render partial: 'content' %>
5
+ <%= render partial: 'journal_posts/post', collection: @posts %>
6
+ <%= paginate @posts %>
@@ -0,0 +1 @@
1
+ <%# This is a placeholder to be overriden in the project%>
@@ -1,5 +1,6 @@
1
1
  <% content_meta_tags @page %>
2
-
2
+ <% content_for :extra_body_classes do %>page-<%= @page.int_id %><% end %>
3
+ <%= render partial: 'aside' %>
3
4
  <article class='journal-page'>
4
5
  <header class='journal-page-header'>
5
6
  <h1><%= @page.title %></h1>
@@ -0,0 +1 @@
1
+ <%# This is a placeholder to be overriden in the project%>
@@ -0,0 +1 @@
1
+ <%# This is a placeholder to be overriden in the project%>
@@ -1,3 +1,4 @@
1
+ <%= render partial: 'aside_index' %>
1
2
  <% if @featured && @featured.size > 0 %>
2
3
  <section class='journal-featured-posts'>
3
4
  <%= render partial: 'post', collection: @featured %>
@@ -1,5 +1,6 @@
1
1
  <% content_meta_tags @post %>
2
-
2
+ <% content_for :extra_body_classes do %>post-<%= @post.hex %><% end %>
3
+ <%= render partial: 'aside_show' %>
3
4
  <article class='journal-page'>
4
5
  <header class='journal-page-header'>
5
6
  <h1>
@@ -14,20 +15,4 @@
14
15
  <section class='journal-page-body'>
15
16
  <%= @post.body_html.html_safe %>
16
17
  </section>
17
-
18
- <!--
19
- <footer class='journal-page-footer'>
20
- <% if @disqus_shortname %>
21
- <%= link_to 'Show comments', '#', class: 'journal-show-comments' %>
22
- <% end %>
23
- </footer>
24
- -->
25
18
  </article>
26
-
27
- <!--
28
- <% if @disqus_shortname %>
29
- <div class='journal-comments' style='display:none;'>
30
- <div id='disqus_thread' class='journal-disqus' data-shortname='<%= @disqus_shortname %>'></div>
31
- </div>
32
- <% end %>
33
- -->
@@ -18,8 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.add_development_dependency "bundler", "~> 1.9"
19
19
  s.add_development_dependency "rake", "~> 10.0"
20
20
 
21
- s.add_dependency "chr", ">= 0.5.7"
22
- s.add_dependency "ants", ">= 0.3.13"
23
- s.add_dependency "loft", ">= 0.3.1"
21
+ s.add_dependency "chr", ">= 0.5.8"
22
+ s.add_dependency "loft", ">= 0.4.1"
24
23
  s.add_dependency "mongosteen", ">= 0.2.0"
25
24
  end
@@ -2,7 +2,11 @@ module Constraints
2
2
  class JournalCategories
3
3
  def self.matches?(request)
4
4
  begin
5
- JournalCategory.find(request.params[:slug])
5
+ if request.path.end_with? "/preview"
6
+ JournalCategory.find(request.params[:slug])
7
+ else
8
+ JournalCategory.not_hidden.find(request.params[:slug])
9
+ end
6
10
  rescue
7
11
  false
8
12
  end
@@ -33,7 +33,10 @@ module ActionDispatch::Routing
33
33
  end
34
34
 
35
35
  def mount_journal_categories
36
- get '/:slug' => 'journal_posts#category',
36
+ get '/:slug/preview' => 'journal_categories#preview',
37
+ as: :preview_journal_category,
38
+ constraints: ::Constraints::JournalCategories
39
+ get '/:slug' => 'journal_categories#show',
37
40
  as: :show_journal_category,
38
41
  constraints: ::Constraints::JournalCategories
39
42
  end
@@ -1,3 +1,3 @@
1
1
  module Journal
2
- VERSION = "0.3.8"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: journal-chr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Kravets
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-23 00:00:00.000000000 Z
11
+ date: 2015-12-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -44,42 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.5.7
47
+ version: 0.5.8
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.5.7
55
- - !ruby/object:Gem::Dependency
56
- name: ants
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 0.3.13
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: 0.3.13
54
+ version: 0.5.8
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: loft
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - ">="
74
60
  - !ruby/object:Gem::Version
75
- version: 0.3.1
61
+ version: 0.4.1
76
62
  type: :runtime
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
- version: 0.3.1
68
+ version: 0.4.1
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: mongosteen
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -114,13 +100,20 @@ files:
114
100
  - app/controllers/admin/journal_categories_controller.rb
115
101
  - app/controllers/admin/journal_pages_controller.rb
116
102
  - app/controllers/admin/journal_posts_controller.rb
103
+ - app/controllers/journal_categories_controller.rb
117
104
  - app/controllers/journal_pages_controller.rb
118
105
  - app/controllers/journal_posts_controller.rb
119
106
  - app/helpers/journal_helper.rb
120
107
  - app/models/journal_category.rb
121
108
  - app/models/journal_page.rb
122
109
  - app/models/journal_post.rb
110
+ - app/views/journal_categories/_aside.html.erb
111
+ - app/views/journal_categories/_content.html.erb
112
+ - app/views/journal_categories/show.html.erb
113
+ - app/views/journal_pages/_aside.html.erb
123
114
  - app/views/journal_pages/show.html.erb
115
+ - app/views/journal_posts/_aside_index.html.erb
116
+ - app/views/journal_posts/_aside_show.html.erb
124
117
  - app/views/journal_posts/_post.html.erb
125
118
  - app/views/journal_posts/index.html.erb
126
119
  - app/views/journal_posts/show.html.erb