kuhsaft 0.0.8 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,7 +9,7 @@ class Kuhsaft::LocalizedPage < ActiveRecord::Base
9
9
 
10
10
  validates :title, :presence => true
11
11
  validates :locale, :presence => true
12
- validates :slug, :presence => true
12
+ validates :slug, :presence => true, :unless => :allow_empty_slug
13
13
 
14
14
  accepts_nested_attributes_for :page_parts, :allow_destroy => true
15
15
 
@@ -22,21 +22,20 @@ class Kuhsaft::LocalizedPage < ActiveRecord::Base
22
22
  end
23
23
 
24
24
  def create_url
25
- return if self.page_type == 'redirect'
25
+ return if self.page_type == Kuhsaft::PageType::REDIRECT
26
26
  complete_slug = ''
27
27
  if page.present? && page.parent.present?
28
28
  complete_slug << page.parent.url.to_s
29
29
  else
30
30
  complete_slug = "#{self.locale}"
31
31
  end
32
- complete_slug << "/#{self.slug}"
32
+ complete_slug << "/#{self.slug}" unless self.page_type == Kuhsaft::PageType::NAVIGATION
33
33
  self.url = complete_slug
34
34
  end
35
35
 
36
36
  def create_slug
37
- if title.present? && slug.blank?
38
- write_attribute(:slug, read_attribute(:title).downcase.parameterize)
39
- end
37
+ has_slug = title.present? && slug.blank?
38
+ write_attribute(:slug, read_attribute(:title).downcase.parameterize) if has_slug
40
39
  end
41
40
 
42
41
  def collect_fulltext
@@ -49,4 +48,8 @@ class Kuhsaft::LocalizedPage < ActiveRecord::Base
49
48
  end
50
49
  self.fulltext << [title.to_s, keywords.to_s, description.to_s].join(' ')
51
50
  end
51
+
52
+ def allow_empty_slug
53
+ self.page_type == Kuhsaft::PageType::NAVIGATION
54
+ end
52
55
  end
@@ -93,7 +93,7 @@ class Kuhsaft::Page < ActiveRecord::Base
93
93
  if translation.page_parts.count == 0 && childs.count > 0
94
94
  childs.first.link
95
95
  else
96
- if translation.page_type == 'redirect'
96
+ if translation.page_type == Kuhsaft::PageType::REDIRECT
97
97
  url
98
98
  else
99
99
  "/#{url}"
@@ -0,0 +1,11 @@
1
+ module Kuhsaft
2
+ class PageType
3
+ REDIRECT = 'redirect'
4
+ NAVIGATION = 'navigation'
5
+ CONTENT = ''
6
+
7
+ def self.all
8
+ [CONTENT, REDIRECT, NAVIGATION]
9
+ end
10
+ end
11
+ end
@@ -2,10 +2,10 @@
2
2
  = page.fields_for :localized_pages, @localized_page do |localized|
3
3
  = localized.input :title
4
4
  = localized.input :slug, :required => false
5
- = localized.input :page_type, :as => :radio, :collection => ['', 'redirect']
5
+ = localized.input :page_type, :as => :radio, :collection => Kuhsaft::PageType.all
6
6
  = localized.input :published, :collection => Kuhsaft::PublishState.all, :label_method => :human_name, :value_method => :value
7
7
  .clear
8
- - unless localized.object.page_type == 'redirect'
8
+ - unless localized.object.page_type == Kuhsaft::PageType::REDIRECT
9
9
  - if localized.object.published == Kuhsaft::PublishState::PUBLISHED_AT
10
10
  = localized.input :published_at, :as => :datetime
11
11
  = localized.input :keywords
@@ -1,3 +1,3 @@
1
1
  module Kuhsaft
2
- VERSION = "0.0.8"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -57,18 +57,27 @@ describe Kuhsaft::LocalizedPage do
57
57
  @localized_page.should respond_to(:page_type)
58
58
  end
59
59
 
60
- it 'should generate the url with an empty page_type' do
60
+ it 'should just generate the url when the page_type is empty' do
61
61
  page = Factory.create :page
62
62
  page.translation.url.should eq('en/english-title')
63
63
  end
64
64
 
65
- it 'should take the users url with a "redirect" page_type' do
65
+ it 'should save the users url with a "REDIRECT" page_type' do
66
66
  page = Factory.create :page
67
- page.translation.page_type = 'redirect'
67
+ page.translation.page_type = Kuhsaft::PageType::REDIRECT
68
68
  page.translation.url = '/en/news'
69
69
  page.save
70
70
  page.translation.url.should eq('/en/news')
71
71
  end
72
+
73
+ it 'should not use the slug in the url when the page_type is "NAVIGATION"' do
74
+ page = Factory.create :page
75
+ child_page = Factory.create :page
76
+ page.childs << child_page
77
+ page.translation.page_type = Kuhsaft::PageType::NAVIGATION
78
+ page.save
79
+ child_page.translation.url.should eq('en/english-title')
80
+ end
72
81
  end
73
82
 
74
83
  describe 'validations' do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kuhsaft
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 8
10
- version: 0.0.8
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Immanuel H\xC3\xA4ussermann"
@@ -284,6 +284,7 @@ files:
284
284
  - app/models/kuhsaft/page_part.rb
285
285
  - app/models/kuhsaft/page_part/content.rb
286
286
  - app/models/kuhsaft/page_part/markdown.rb
287
+ - app/models/kuhsaft/page_type.rb
287
288
  - app/models/kuhsaft/publish_state.rb
288
289
  - app/stylesheets/kuhsaft/admin/ie.sass
289
290
  - app/stylesheets/kuhsaft/admin/partials/_assets.sass