cmor_cms 0.0.51.pre → 0.0.56.pre

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b99d151a880b13782579ad911f9ac09dcd2886d693201f39fa21e7cc8c846e65
4
- data.tar.gz: ab6a3f127ec4dc629b18a114b6ea35cb142e4efefc7fdf0f2258e80ec692d2d5
3
+ metadata.gz: e51aeea1a91b966aea7c71809234008edf75d433d5be5b52c2e253fee34ad514
4
+ data.tar.gz: 8c18666a9988c579a3af488d331e733e7810dd7d7bfcdb9313acb86da9ce497c
5
5
  SHA512:
6
- metadata.gz: c67ab67fdf728cf5f4b19bfb33717a57178ffafb22bfb9c9ab90611e47ff98430ea88b85dbb2a46ff17cf6383e3e49a9e197fa10ae47bac0c394d124acea2fd4
7
- data.tar.gz: ab5c46a3bbe00ffa5e213abe95ec2b6703282ca404757bcef64e5180c473936dd6740fb6ccbb44b9e63ca7facf96e14d630d9b76eaaaa71a1153ad8b32c95550
6
+ metadata.gz: 22b1a5f888f2a292d68b4c613eba0d55a5dff16d0455a268c38ac5aef3b7a1b5bbdb557547a1f95e219b63963c987e563cd991f0c80df57e5facf03bff9276dd
7
+ data.tar.gz: 3fb57ccdc6cffe3e81c6c135c94817d71525559f15afcee27f92632920dc9185e2272ced7a0edc589fc533b9d430dcd87f2a06544770178d35bce51e51b0e12b
@@ -1,6 +1,7 @@
1
1
  module Cmor
2
2
  module Cms
3
3
  class PageController < Cmor::Cms::Configuration.base_controller.constantize
4
+ include Cmor::Cms::ControllerExtensions::LayoutResolver
4
5
  include Cmor::Cms::ControllerExtensions::PageResolver
5
6
  include Cmor::Cms::ControllerExtensions::PartialResolver
6
7
 
@@ -22,11 +23,13 @@ module Cmor
22
23
  extend ActiveSupport::Concern
23
24
 
24
25
  included do
25
- rescue_from ActionView::MissingTemplate do |exception|
26
- if exception.message.start_with?('Missing partial')
27
- handle_missing_partial(exception)
28
- else
29
- handle_missing_template(exception)
26
+ unless Rails.env.development?
27
+ rescue_from ActionView::MissingTemplate do |exception|
28
+ if exception.message.start_with?('Missing partial')
29
+ handle_missing_partial(exception)
30
+ else
31
+ handle_missing_template(exception)
32
+ end
30
33
  end
31
34
  end
32
35
  end
@@ -0,0 +1,10 @@
1
+ module Cmor::Cms
2
+ class Layout < ApplicationRecord
3
+ # add shared behaviour for database backed templates
4
+ include Cmor::Cms::DatabaseTemplate
5
+
6
+ # publishing
7
+ include ActsAsPublished::ActiveRecord
8
+ acts_as_published
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module Cmor
2
+ module Cms
3
+ class LayoutResolver < TemplateResolver
4
+ def template_class
5
+ 'Cmor::Cms::Layout'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -16,8 +16,8 @@ module Cmor
16
16
  "<meta name=\"description\" content=\"#{c.content_for(:meta_description)}\">"
17
17
  end
18
18
 
19
- def link_to_top
20
- c.render partial: '/cmor/cms/link_to_top'
19
+ def link_to_top(icons: :glyphicons)
20
+ render icons: icons
21
21
  end
22
22
 
23
23
  def is_page?
@@ -0,0 +1,12 @@
1
+ <%= content_tag(:div, class: 'pull-right') do %>
2
+ <%= link_to('#top', id: 'top-link', class: 'btn btn-primary') do %>
3
+ <% case icons %>
4
+ <% when :glyphicons %>
5
+ <%= content_tag(:span, nil, class: 'glyphicon glyphicon-arrow-up') %>
6
+ <% when :font_awesome %>
7
+ <%= content_tag(:i, nil, class: 'fas fa-arrow-up') %>
8
+ <% else %>
9
+ <%= content_tag(:span, "&#8963;".html_safe) %>
10
+ <% end %>
11
+ <% end %>
12
+ <% end %>
@@ -7,6 +7,9 @@ de:
7
7
  cmor/cms/content_box:
8
8
  one: Content Box
9
9
  other: Content Boxen
10
+ cmor/cms/layout:
11
+ one: Layout
12
+ other: Layouts
10
13
  cmor/cms/navigation:
11
14
  one: Navigation
12
15
  other: Navigationen
@@ -44,6 +47,16 @@ de:
44
47
  body: Inhalt
45
48
  content_blocks: Content Blöcke
46
49
  content_blocks_count: Content Blöcke
50
+ cmor/cms/layout:
51
+ <<: *defaults
52
+ basename: Name
53
+ body: Inhalt
54
+ filename: Dateiname
55
+ format: Format
56
+ handler: Handler
57
+ locale: Sprache
58
+ path_and_filename: Dateipfad
59
+ pathname: Pfad
47
60
  cmor/cms/navigation:
48
61
  <<: *defaults
49
62
  navigation_items: Navigationseinträge
@@ -93,8 +106,6 @@ de:
93
106
  <<: *defaults
94
107
  basename: Name
95
108
  body: Inhalt
96
- cmor_cms_folder_id: Ordner
97
- cmor_cms_folder: Ordner
98
109
  filename: Dateiname
99
110
  format: Format
100
111
  handler: Handler
@@ -106,8 +117,6 @@ de:
106
117
  <<: *defaults
107
118
  basename: Name
108
119
  body: Inhalt
109
- cmor_cms_folder_id: Ordner
110
- cmor_cms_folder: Ordner
111
120
  filename: Dateiname
112
121
  format: Format
113
122
  handler: Handler
@@ -7,6 +7,9 @@ en:
7
7
  cmor/cms/content_box:
8
8
  one: Content box
9
9
  other: Content boxes
10
+ cmor/cms/layout:
11
+ one: Layout
12
+ other: Layouts
10
13
  cmor/cms/navigation:
11
14
  one: Navigation
12
15
  other: Navigations
@@ -41,7 +44,17 @@ en:
41
44
  name: Name
42
45
  body: Body
43
46
  content_blocks: Content blocks
44
- content_blocks_count: Content blocksx
47
+ content_blocks_count: Content blocks
48
+ cmor/cms/layout:
49
+ <<: *defaults
50
+ basename: Name
51
+ body: Body
52
+ filename: Filename
53
+ format: Format
54
+ handler: Handler
55
+ locale: Language
56
+ path_and_filename: Filepath
57
+ pathname: Path
45
58
  cmor/cms/navigation:
46
59
  <<: *defaults
47
60
  navigation_items: Navigation items
@@ -91,8 +104,6 @@ en:
91
104
  <<: *defaults
92
105
  basename: Name
93
106
  body: Body
94
- cmor_cms_folder_id: Folder
95
- cmor_cms_folder: Folder
96
107
  filename: Filename
97
108
  format: Format
98
109
  handler: Handler
@@ -104,8 +115,6 @@ en:
104
115
  <<: *defaults
105
116
  basename: Name
106
117
  body: Body
107
- cmor_cms_folder_id: Folder
108
- cmor_cms_folder: Folder
109
118
  filename: Filename
110
119
  format: Format
111
120
  handler: Handler
@@ -1,6 +1,8 @@
1
1
  Cmor::Cms::Engine.routes.draw do
2
2
  localized do
3
- get '/*page', to: 'page#respond', as: :page
3
+ get '/*page', to: 'page#respond', as: :page, constraints: lambda { |req|
4
+ req.path.exclude? 'rails/active_storage'
5
+ }
4
6
  get '/', to: 'page#respond', page: 'home'
5
7
  end
6
8
  end
@@ -0,0 +1,15 @@
1
+ class CreateCmorCmsLayouts < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :cmor_cms_layouts do |t|
4
+ t.string :basename
5
+ t.string :pathname
6
+ t.text :body
7
+ t.string :locale
8
+ t.string :format
9
+ t.string :handler
10
+ t.timestamp :published_at
11
+
12
+ t.timestamps
13
+ end
14
+ end
15
+ end
@@ -6,6 +6,7 @@ require 'cmor/cms/configuration'
6
6
 
7
7
  require 'cmor/cms/database_template'
8
8
 
9
+ require 'cmor/cms/controller_extensions/layout_resolver'
9
10
  require 'cmor/cms/controller_extensions/page_resolver'
10
11
  require 'cmor/cms/controller_extensions/partial_resolver'
11
12
  require 'cmor/cms/controller_extensions/template_resolver'
@@ -36,6 +36,29 @@ module ActionView
36
36
 
37
37
  render_template(template, layout, options[:locals])
38
38
  end
39
+ elsif Rails::VERSION::MAJOR < 6
40
+ def render(context, options)
41
+ @view = context
42
+ @details = extract_details(options)
43
+ template = determine_template(options)
44
+ layout = template.respond_to?(:layout) && template.layout.present? ? template.layout : options[:layout]
45
+
46
+ prepend_formats(template.formats)
47
+
48
+ @lookup_context.rendered_format ||= (template.formats.first || formats.first)
49
+
50
+ render_template(template, layout, options[:locals])
51
+ end
52
+ else
53
+ def render(context, options)
54
+ @details = extract_details(options)
55
+ template = determine_template(options)
56
+
57
+ prepend_formats(template.format)
58
+
59
+ layout = (template.respond_to?(:layout) ? template.layout : nil) || options[:layout]
60
+ render_template(context, template, (layout || options[:layout]), options[:locals] || {})
61
+ end
39
62
  end
40
63
  end
41
64
  end
@@ -0,0 +1,12 @@
1
+ module Cmor
2
+ module Cms
3
+ module ControllerExtensions
4
+ module LayoutResolver
5
+ def self.included(base)
6
+ # add the template resolver
7
+ base.prepend_view_path ::Cmor::Cms::LayoutResolver.instance unless base.view_paths.include?(::Cmor::Cms::LayoutResolver.instance)
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :cmor_cms_layout, class: 'Cmor::Cms::Layout' do
3
+ sequence(:basename) { |i| "layout_#{i}" }
4
+ handler { 'erb' }
5
+ pathname { '/' }
6
+ end
7
+ end
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.51.pre
4
+ version: 0.0.56.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-03-23 00:00:00.000000000 Z
11
+ date: 2020-07-14 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.51.pre
33
+ version: 0.0.56.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.51.pre
40
+ version: 0.0.56.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.51.pre
47
+ version: 0.0.56.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.51.pre
54
+ version: 0.0.56.pre
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sqlite3
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -425,12 +425,14 @@ files:
425
425
  - app/importers/cmor/cms/importers/page.rb
426
426
  - app/models/cmor/cms/content_block.rb
427
427
  - app/models/cmor/cms/content_box.rb
428
+ - app/models/cmor/cms/layout.rb
428
429
  - app/models/cmor/cms/navigation.rb
429
430
  - app/models/cmor/cms/navigation_item.rb
430
431
  - app/models/cmor/cms/page.rb
431
432
  - app/models/cmor/cms/partial.rb
432
433
  - app/models/cmor/cms/template.rb
433
434
  - app/resolvers/cmor/cms/database_resolver.rb
435
+ - app/resolvers/cmor/cms/layout_resolver.rb
434
436
  - app/resolvers/cmor/cms/page_resolver.rb
435
437
  - app/resolvers/cmor/cms/partial_resolver.rb
436
438
  - app/resolvers/cmor/cms/template_resolver.rb
@@ -441,7 +443,7 @@ files:
441
443
  - app/view_helpers/cmor/cms/application_view_helper.rb
442
444
  - app/view_helpers/cmor/cms/navigation_view_helper.rb
443
445
  - app/view_helpers/cmor/cms/page_view_helper.rb
444
- - app/views/cmor/cms/_link_to_top.html.erb
446
+ - app/views/cmor/cms/application_view_helper/_link_to_top.html.erb
445
447
  - app/views/cmor/cms/page/fallback.html.erb
446
448
  - app/views/cmor/cms/page/fallback.txt
447
449
  - config/initializers/assets.rb
@@ -464,10 +466,12 @@ files:
464
466
  - db/migrate/20200120134400_add_published_at_to_cmor_cms_partials.rb
465
467
  - db/migrate/20200120134422_add_published_at_to_cmor_cms_navigation_items.rb
466
468
  - db/migrate/20200120141440_set_all_publishable_to_published.rb
469
+ - db/migrate/20200514115526_create_cmor_cms_layouts.rb
467
470
  - lib/cmor/cms.rb
468
471
  - lib/cmor/cms/action_view/template_patch.rb
469
472
  - lib/cmor/cms/action_view/template_renderer_patch.rb
470
473
  - lib/cmor/cms/configuration.rb
474
+ - lib/cmor/cms/controller_extensions/layout_resolver.rb
471
475
  - lib/cmor/cms/controller_extensions/page_resolver.rb
472
476
  - lib/cmor/cms/controller_extensions/partial_resolver.rb
473
477
  - lib/cmor/cms/controller_extensions/template_resolver.rb
@@ -482,6 +486,7 @@ files:
482
486
  - lib/tasks/cmor_cms_tasks.rake
483
487
  - spec/factories/cmor/cms/content_block.rb
484
488
  - spec/factories/cmor/cms/content_box.rb
489
+ - spec/factories/cmor/cms/layouts.rb
485
490
  - spec/factories/cmor/cms/navigation_items.rb
486
491
  - spec/factories/cmor/cms/navigations.rb
487
492
  - spec/factories/cmor/cms/pages.rb
@@ -506,7 +511,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
506
511
  - !ruby/object:Gem::Version
507
512
  version: 1.3.1
508
513
  requirements: []
509
- rubygems_version: 3.1.2
514
+ rubygems_version: 3.1.4
510
515
  signing_key:
511
516
  specification_version: 4
512
517
  summary: CMS base module for ruby on rails.
@@ -1,5 +0,0 @@
1
- <%= content_tag(:div, class: 'pull-right') do %>
2
- <%= link_to('#top', id: 'top-link', class: 'btn btn-primary') do %>
3
- <%= content_tag(:i, nil, class: 'glyphicon glyphicon-arrow-up') %>
4
- <% end %>
5
- <% end %>