kuhsaft 0.0.8 → 0.1.0

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.
@@ -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