cmor_cms 0.0.41.pre → 0.0.42.pre

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
  SHA256:
3
- metadata.gz: 11ad72e3dce124f192f3d1ce753f7fd46bc09ca90f67698d80073a0a2577ab3c
4
- data.tar.gz: 6d7e2ae8406d0e44e4e6f9dc1e19fab564c396e804c15e273ca36b3d4d6406ee
3
+ metadata.gz: 90f0546f5a5685f505565098b2661619c9ebd7709e9f417afec3c59ce148c57f
4
+ data.tar.gz: 692e92872c9310bcb78619d4a9c2daf11ca479ec95bee3fce82393be4fefeea9
5
5
  SHA512:
6
- metadata.gz: cd3c931520468730aa58757db1dc6a7a4612cf319f0799d94d351d1441d108b8b4fb1510b2e152cc11b230e3c95fa3a7416a381d7a1838d9d7f9b1b5a7441f36
7
- data.tar.gz: 2a61b273471befdef7a297c0663b2ca6ec80a9d70cb117e5c60288d66a087627ba06a9783f1aff56ccccd3df9ae081504ee9451cdaad445df54c94899cd73818
6
+ metadata.gz: 70caf6861fb95e2443cc061457052fafc548429abd3959dfea37eb33128b88795a8daa998801504b711a36ddc2b023829bc870fe3471e78d59e4fef5f62ed080
7
+ data.tar.gz: ef85c25428f70e360cab41df214b30ba6267b2922af79c759a4f3f94253ad94d1b441cfa5d92b84fb0eebd66de137de6ff99925bd7244a38e2991429b3831921
@@ -1,7 +1,5 @@
1
- require 'active_support/concern'
2
-
3
- module Model::Cmor::Cms::NavigationItem
4
- module PropertiesConcern
1
+ module Cmor::Cms
2
+ module NavigationItem::PropertiesConcern
5
3
  extend ActiveSupport::Concern
6
4
 
7
5
  included do
@@ -1,7 +1,11 @@
1
1
  class Cmor::Cms::Navigation < ActiveRecord::Base
2
2
  # associations
3
3
  has_many :navigation_items,
4
- dependent: :destroy
4
+ dependent: :destroy do
5
+ def published
6
+ merge(Cmor::Cms::NavigationItem.published)
7
+ end
8
+ end
5
9
 
6
10
  # validations
7
11
  validates :locale, inclusion: I18n.available_locales.map(&:to_s),
@@ -1,8 +1,6 @@
1
- require_dependency 'model/cmor/cms/navigation_item/properties_concern'
2
-
3
1
  module Cmor::Cms
4
2
  class NavigationItem < ActiveRecord::Base
5
- include Model::Cmor::Cms::NavigationItem::PropertiesConcern
3
+ include Cmor::Cms::NavigationItem::PropertiesConcern
6
4
 
7
5
  # associations
8
6
  belongs_to :navigation,
@@ -10,6 +8,10 @@ module Cmor::Cms
10
8
  belongs_to :page,
11
9
  optional: true
12
10
 
11
+ # publishing
12
+ include ActsAsPublished::ActiveRecord
13
+ acts_as_published
14
+
13
15
  # awesome nested set
14
16
  acts_as_nested_set dependent: :destroy, counter_cache: :children_count, scope: :navigation_id
15
17
 
@@ -1,7 +1,7 @@
1
1
  module Cmor::Cms
2
2
  class Page < ActiveRecord::Base
3
3
  # add shared behaviour for database backed templates
4
- include DatabaseTemplate
4
+ include Cmor::Cms::DatabaseTemplate
5
5
 
6
6
  # associations
7
7
  has_many :navigation_items,
@@ -12,6 +12,10 @@ module Cmor::Cms
12
12
 
13
13
  accepts_nested_attributes_for :content_blocks, allow_destroy: true
14
14
 
15
+ # publishing
16
+ include ActsAsPublished::ActiveRecord
17
+ acts_as_published
18
+
15
19
  # callbacks
16
20
  after_save :touch_navigation_items
17
21
 
@@ -1,15 +1,19 @@
1
- require 'cmor/cms/database_template'
1
+ module Cmor::Cms
2
+ class Partial < ActiveRecord::Base
3
+ # add shared behaviour for database backed templates
4
+ include Cmor::Cms::DatabaseTemplate
2
5
 
3
- class Cmor::Cms::Partial < ActiveRecord::Base
4
- # add shared behaviour for database backed templates
5
- include Cmor::Cms::DatabaseTemplate
6
+ # publishing
7
+ include ActsAsPublished::ActiveRecord
8
+ acts_as_published
6
9
 
7
- # callbacks
8
- before_validation :ensure_basename_starts_with_underscore, if: proc { |t| t.basename.present? }
10
+ # callbacks
11
+ before_validation :ensure_basename_starts_with_underscore, if: proc { |t| t.basename.present? }
9
12
 
10
- private
13
+ private
11
14
 
12
- def ensure_basename_starts_with_underscore
13
- basename.insert(0, '_') unless basename.start_with?('_')
15
+ def ensure_basename_starts_with_underscore
16
+ basename.insert(0, '_') unless basename.start_with?('_')
17
+ end
14
18
  end
15
19
  end
@@ -1,13 +1,19 @@
1
- class Cmor::Cms::Template < ActiveRecord::Base
2
- # add shared behaviour for database backed templates
3
- include Cmor::Cms::DatabaseTemplate
1
+ module Cmor::Cms
2
+ class Template < ActiveRecord::Base
3
+ # add shared behaviour for database backed templates
4
+ include Cmor::Cms::DatabaseTemplate
4
5
 
5
- # callbacks
6
- before_validation :ensure_basename_starts_without_underscore, if: proc { |t| t.basename.present? }
6
+ # publishing
7
+ include ActsAsPublished::ActiveRecord
8
+ acts_as_published
7
9
 
8
- private
10
+ # callbacks
11
+ before_validation :ensure_basename_starts_without_underscore, if: proc { |t| t.basename.present? }
9
12
 
10
- def ensure_basename_starts_without_underscore
11
- basename.slice!(0) if basename.start_with?('_')
13
+ private
14
+
15
+ def ensure_basename_starts_without_underscore
16
+ basename.slice!(0) if basename.start_with?('_')
17
+ end
12
18
  end
13
19
  end
@@ -27,6 +27,9 @@ module Cmor
27
27
 
28
28
  query = template_class.constantize.where(conditions)
29
29
 
30
+ # 1) Only include published templates
31
+ query = query.published
32
+
30
33
  # 2) Check for templates with the given format or format is nil
31
34
  query = query.where(["format = ? OR format = '' OR format IS NULL", format])
32
35
 
@@ -22,7 +22,7 @@ module Cmor
22
22
  #
23
23
  def render(name, options = {})
24
24
  options.reverse_merge!(
25
- renderer: :bootstrap,
25
+ renderer: :list,
26
26
  expand_all: true,
27
27
  level: 1,
28
28
  selected_class: nil,
@@ -48,7 +48,7 @@ module Cmor
48
48
  return I18n.t('cmor.cms.navigation.messages.not_found', lang: I18n.locale.to_s, name: name.to_s)
49
49
  end
50
50
 
51
- roots = navigation.navigation_items.roots.all
51
+ roots = navigation.navigation_items.roots.published.all
52
52
  if roots.empty?
53
53
  return I18n.t('cmor.cms.navigation.messages.empty', lang: I18n.locale.to_s, name: name)
54
54
  end
@@ -72,9 +72,9 @@ module Cmor
72
72
  options.reverse_merge!(html: item_html.dup, link_html: link_html)
73
73
 
74
74
  navigation.dom_class = container_css_class
75
- if item.children.present?
75
+ if item.children.published.present?
76
76
  navigation.item(item.key, item.name, item.url, options) do |sub_navigation|
77
- item.children.each do |sub_item|
77
+ item.children.published.each do |sub_item|
78
78
  build_navigation_item(sub_navigation, sub_item, container_css_class, item_html, link_html)
79
79
  end
80
80
  end
@@ -23,8 +23,14 @@ de:
23
23
  one: Vorlage
24
24
  other: Vorlagen
25
25
  attributes:
26
- cmor/cms/content_block:
26
+ defaults: &defaults
27
27
  id: ID
28
+ created_at: Erstellt am
29
+ updated_at: Aktualisiert am
30
+ published_at: Veröffentlicht am
31
+ published: Veröffentlicht
32
+ cmor/cms/content_block:
33
+ <<: *defaults
28
34
  body: Inhalt
29
35
  page: Seite
30
36
  page_id: Seite
@@ -33,24 +39,20 @@ de:
33
39
  created_at: Erstellt am
34
40
  updated_at: Aktualisiert am
35
41
  cmor/cms/content_box:
36
- id: ID
42
+ <<: *defaults
37
43
  name: Name
38
44
  body: Inhalt
39
45
  content_blocks: Content Blöcke
40
46
  content_blocks_count: Content Blöcke
41
- created_at: Erstellt am
42
- updated_at: Aktualisiert am
43
47
  cmor/cms/navigation:
44
- id: ID
45
- created_at: Erstellt am
48
+ <<: *defaults
46
49
  navigation_items: Navigationseinträge
47
50
  navigation_items_count: Navigationseinträge
48
51
  locale: Sprache
49
52
  name: Name
50
53
  slug: Freundliche ID
51
- updated_at: Aktualisiert am
52
54
  cmor/cms/navigation_item:
53
- id: ID
55
+ <<: *defaults
54
56
  children_count: Unterelemente
55
57
  data_add_icon: Symbol
56
58
  depth: Baumtiefe
@@ -70,10 +72,8 @@ de:
70
72
  rgt: Rechts
71
73
  slug: Freundliche ID
72
74
  url: Ziel-URL
73
- created_at: Erstellt am
74
- updated_at: Aktualisiert am
75
75
  cmor/cms/page:
76
- id: ID
76
+ <<: *defaults
77
77
  basename: Name
78
78
  body: Inhalt
79
79
  cmor_cms_folder_id: Ordner
@@ -89,10 +89,8 @@ de:
89
89
  path_and_filename: Dateipfad
90
90
  pathname: Pfad
91
91
  title: Titel
92
- created_at: Erstellt am
93
- updated_at: Aktualisiert am
94
92
  cmor/cms/partial:
95
- id: ID
93
+ <<: *defaults
96
94
  basename: Name
97
95
  body: Inhalt
98
96
  cmor_cms_folder_id: Ordner
@@ -104,10 +102,8 @@ de:
104
102
  locale: Sprache
105
103
  path_and_filename: Dateipfad
106
104
  pathname: Pfad
107
- created_at: Erstellt am
108
- updated_at: Aktualisiert am
109
105
  cmor/cms/template:
110
- id: ID
106
+ <<: *defaults
111
107
  basename: Name
112
108
  body: Inhalt
113
109
  cmor_cms_folder_id: Ordner
@@ -119,8 +115,6 @@ de:
119
115
  locale: Sprache
120
116
  path_and_filename: Dateipfad
121
117
  pathname: Pfad
122
- created_at: Erstellt am
123
- updated_at: Aktualsiert am
124
118
  classes:
125
119
  cmor/cms/add_homepages_service: 'Dienst zum hinzufügen von Homepages'
126
120
  cmor/cms/import_partials_service: 'Dienst zum importieren von Fragmenten'
@@ -130,7 +124,7 @@ de:
130
124
  menu: CMS
131
125
  navigation:
132
126
  messages:
133
- empty: Navigation %{name} (%{lang}) ist leer
127
+ empty: Navigation %{name} (%{lang}) ist leer
134
128
  not_found: Navigation %{name} (%{lang}) nicht gefunden
135
129
  resources:
136
130
  navigations: navigationen
@@ -23,34 +23,34 @@ en:
23
23
  one: Template
24
24
  other: Templates
25
25
  attributes:
26
- cmor/cms/content_block:
26
+ defaults: &defaults
27
27
  id: ID
28
+ created_at: Created at
29
+ updated_at: Updated at
30
+ published_at: Published at
31
+ published: Published
32
+ cmor/cms/content_block:
33
+ <<: *defaults
28
34
  body: Body
29
35
  page: Page
30
36
  page_id: Page
31
37
  content_box: Content box
32
38
  content_box_id: Content box
33
- created_at: Created at
34
- updated_at: Updated at
35
39
  cmor/cms/content_box:
36
- id: ID
40
+ <<: *defaults
37
41
  name: Name
38
42
  body: Body
39
43
  content_blocks: Content blocks
40
- content_blocks_count: Content blocks
41
- created_at: Created at
42
- updated_at: updated at
44
+ content_blocks_count: Content blocksx
43
45
  cmor/cms/navigation:
44
- id: ID
46
+ <<: *defaults
45
47
  navigation_items: Navigation items
46
48
  navigation_items_count: Navigation items
47
49
  locale: Language
48
50
  name: Name
49
51
  slug: Slug
50
- created_at: Created at
51
- updated_at: updated at
52
52
  cmor/cms/navigation_item:
53
- id: ID
53
+ <<: *defaults
54
54
  children_count: Subitems
55
55
  data_add_icon: Icon
56
56
  depth: Tree depth
@@ -70,10 +70,8 @@ en:
70
70
  rgt: Right
71
71
  slug: Slug
72
72
  url: Target url
73
- created_at: Created at
74
- updated_at: Updated at
75
73
  cmor/cms/page:
76
- id: ID
74
+ <<: *defaults
77
75
  basename: Name
78
76
  body: Body
79
77
  cmor_cms_folder_id: Folder
@@ -89,10 +87,8 @@ en:
89
87
  path_and_filename: Filepath
90
88
  pathname: Path
91
89
  title: Title
92
- created_at: Created at
93
- updated_at: Updated at
94
90
  cmor/cms/partial:
95
- id: ID
91
+ <<: *defaults
96
92
  basename: Name
97
93
  body: Body
98
94
  cmor_cms_folder_id: Folder
@@ -104,10 +100,8 @@ en:
104
100
  locale: Language
105
101
  path_and_filename: Filepath
106
102
  pathname: Path
107
- created_at: Created at
108
- updated_at: Updated at
109
103
  cmor/cms/template:
110
- id: ID
104
+ <<: *defaults
111
105
  basename: Name
112
106
  body: Body
113
107
  cmor_cms_folder_id: Folder
@@ -119,8 +113,6 @@ en:
119
113
  locale: Language
120
114
  path_and_filename: Filepath
121
115
  pathname: Path
122
- created_at: Created at
123
- updated_at: Updated at
124
116
  classes:
125
117
  cmor/cms/add_homepages_service: 'Add homepages service'
126
118
  cmor/cms/import_partials_service: 'Import partials service'
@@ -0,0 +1,5 @@
1
+ class AddPublishedAtToCmorCmsPages < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :cmor_cms_pages, :published_at, :timestamp
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddPublishedAtToCmorCmsTemplates < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :cmor_cms_templates, :published_at, :timestamp
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddPublishedAtToCmorCmsPartials < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :cmor_cms_partials, :published_at, :timestamp
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddPublishedAtToCmorCmsNavigationItems < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :cmor_cms_navigation_items, :published_at, :timestamp
4
+ end
5
+ end
@@ -0,0 +1,27 @@
1
+ class SetAllPublishableToPublished < ActiveRecord::Migration[5.2]
2
+ def self.up
3
+ ActiveRecord::Base.transaction do
4
+ [
5
+ Cmor::Cms::NavigationItem,
6
+ Cmor::Cms::Page,
7
+ Cmor::Cms::Partial,
8
+ Cmor::Cms::Template
9
+ ].each do |klass|
10
+ klass.update_all(published_at: Time.zone.now)
11
+ end
12
+ end
13
+ end
14
+
15
+ def down.up
16
+ ActiveRecord::Base.transaction do
17
+ [
18
+ Cmor::Cms::NavigationItem,
19
+ Cmor::Cms::Page,
20
+ Cmor::Cms::Partial,
21
+ Cmor::Cms::Template
22
+ ].each do |klass|
23
+ klass.update_all(published_at: nil)
24
+ end
25
+ end
26
+ end
27
+ end
data/lib/cmor_cms.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'acts_as_published'
1
2
  require 'awesome_nested_set'
2
3
  require 'cmor_core_frontend'
3
4
  require 'rao-service'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cmor_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.41.pre
4
+ version: 0.0.42.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-19 00:00:00.000000000 Z
11
+ date: 2020-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.41.pre
33
+ version: 0.0.42.pre
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.41.pre
40
+ version: 0.0.42.pre
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: cmor_core_frontend
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 0.0.41.pre
47
+ version: 0.0.42.pre
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.0.41.pre
54
+ version: 0.0.42.pre
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sqlite3
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -304,6 +304,20 @@ dependencies:
304
304
  - - ">="
305
305
  - !ruby/object:Gem::Version
306
306
  version: '0'
307
+ - !ruby/object:Gem::Dependency
308
+ name: acts_as_published
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - ">="
312
+ - !ruby/object:Gem::Version
313
+ version: '0'
314
+ type: :runtime
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: '0'
307
321
  - !ruby/object:Gem::Dependency
308
322
  name: awesome_nested_set
309
323
  requirement: !ruby/object:Gem::Requirement
@@ -404,6 +418,7 @@ files:
404
418
  - app/assets/stylesheets/cmor/cms/application.css
405
419
  - app/assets/stylesheets/cmor/cms/application/keep.css
406
420
  - app/assets/stylesheets/cmor_cms.css
421
+ - app/concerns/cmor/cms/navigation_item/properties_concern.rb
407
422
  - app/controllers/cmor/cms/page_controller.rb
408
423
  - app/importers/cmor/cms/importers/navigation.rb
409
424
  - app/importers/cmor/cms/importers/navigation_item.rb
@@ -415,7 +430,6 @@ files:
415
430
  - app/models/cmor/cms/page.rb
416
431
  - app/models/cmor/cms/partial.rb
417
432
  - app/models/cmor/cms/template.rb
418
- - app/models/concerns/model/cmor/cms/navigation_item/properties_concern.rb
419
433
  - app/resolvers/cmor/cms/database_resolver.rb
420
434
  - app/resolvers/cmor/cms/page_resolver.rb
421
435
  - app/resolvers/cmor/cms/partial_resolver.rb
@@ -445,6 +459,11 @@ files:
445
459
  - db/migrate/006_create_cmor_cms_navigation_items.rb
446
460
  - db/migrate/007_create_cmor_cms_content_boxes.rb
447
461
  - db/migrate/008_create_cmor_cms_content_blocks.rb
462
+ - db/migrate/20200120134306_add_published_at_to_cmor_cms_pages.rb
463
+ - db/migrate/20200120134342_add_published_at_to_cmor_cms_templates.rb
464
+ - db/migrate/20200120134400_add_published_at_to_cmor_cms_partials.rb
465
+ - db/migrate/20200120134422_add_published_at_to_cmor_cms_navigation_items.rb
466
+ - db/migrate/20200120141440_set_all_publishable_to_published.rb
448
467
  - lib/cmor/cms.rb
449
468
  - lib/cmor/cms/action_view/template_patch.rb
450
469
  - lib/cmor/cms/action_view/template_renderer_patch.rb