spina 0.8.3 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of spina might be problematic. Click here for more details.

Files changed (197) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +63 -52
  3. data/app/assets/javascripts/spina/admin/application.js +0 -1
  4. data/app/controllers/spina/admin/accounts_controller.rb +11 -16
  5. data/app/controllers/spina/admin/admin_controller.rb +12 -23
  6. data/app/controllers/spina/admin/attachments_controller.rb +1 -1
  7. data/app/controllers/spina/admin/pages_controller.rb +14 -7
  8. data/app/controllers/spina/admin/photos_controller.rb +4 -2
  9. data/app/controllers/spina/admin/sessions_controller.rb +3 -3
  10. data/app/controllers/spina/admin/users_controller.rb +3 -3
  11. data/app/controllers/spina/application_controller.rb +7 -3
  12. data/app/controllers/spina/pages_controller.rb +13 -2
  13. data/app/controllers/spina/sitemaps_controller.rb +1 -0
  14. data/app/helpers/spina/admin/pages_helper.rb +12 -2
  15. data/app/helpers/spina/application_helper.rb +0 -9
  16. data/app/models/concerns/spina/part.rb +31 -0
  17. data/app/models/{spina → concerns/spina}/partable.rb +0 -0
  18. data/app/models/spina/ability.rb +0 -1
  19. data/app/models/spina/account.rb +6 -6
  20. data/app/models/spina/attachment.rb +1 -1
  21. data/app/models/spina/layout_part.rb +4 -27
  22. data/app/models/spina/line.rb +2 -0
  23. data/app/models/spina/page.rb +24 -5
  24. data/app/models/spina/page_part.rb +6 -30
  25. data/app/models/spina/structure_part.rb +7 -19
  26. data/app/models/spina/text.rb +2 -0
  27. data/app/views/layouts/spina/admin/application.html.haml +12 -14
  28. data/app/views/layouts/spina/admin/media_library.html.haml +4 -4
  29. data/app/views/layouts/spina/admin/settings.html.haml +7 -8
  30. data/app/views/layouts/spina/admin/website.html.haml +9 -16
  31. data/app/views/spina/admin/accounts/style.html.haml +10 -10
  32. data/app/views/spina/admin/attachments/_attachment.html.haml +1 -2
  33. data/app/views/spina/admin/{pages/_attachment_fields.html.haml → attachments/_fields.html.haml} +0 -0
  34. data/app/views/spina/admin/attachments/index.html.haml +2 -7
  35. data/app/views/spina/admin/layout_partables/colors/_form.html.haml +4 -0
  36. data/app/views/spina/admin/layout_partables/lines/_form.html.haml +2 -0
  37. data/app/views/spina/admin/page_partables/attachment_collections/_form.html.haml +15 -0
  38. data/app/views/spina/admin/page_partables/attachments/_form.html.haml +14 -0
  39. data/app/views/spina/admin/page_partables/colors/_form.html.haml +7 -0
  40. data/app/views/spina/admin/page_partables/lines/_form.html.haml +5 -0
  41. data/app/views/spina/admin/page_partables/photo_collections/_form.html.haml +17 -0
  42. data/app/views/spina/admin/page_partables/photos/_form.html.haml +18 -0
  43. data/app/views/spina/admin/page_partables/structures/_form.html.haml +22 -0
  44. data/app/views/spina/admin/page_partables/texts/_form.html.haml +5 -0
  45. data/app/views/spina/admin/pages/_form.html.haml +11 -8
  46. data/app/views/spina/admin/pages/_form_advanced.html.haml +3 -3
  47. data/app/views/spina/admin/pages/_form_page_content.html.haml +8 -3
  48. data/app/views/spina/admin/pages/_form_page_seo.html.haml +1 -1
  49. data/app/views/spina/admin/pages/edit.html.haml +13 -1
  50. data/app/views/spina/admin/photos/_photo.html.haml +1 -3
  51. data/app/views/spina/admin/photos/create.js.erb +1 -2
  52. data/app/views/spina/admin/photos/create_and_select.js.erb +7 -0
  53. data/app/views/spina/admin/photos/index.html.haml +7 -6
  54. data/app/views/spina/admin/shared/_primary_navigation.html.haml +19 -0
  55. data/app/views/spina/admin/shared/_rich_text_field.html.haml +2 -2
  56. data/app/views/spina/admin/structure_items/_fields.html.haml +16 -0
  57. data/app/views/spina/admin/structure_partables/lines/_form.html.haml +2 -0
  58. data/app/views/spina/admin/structure_partables/photos/_form.html.haml +11 -0
  59. data/app/views/spina/admin/structure_partables/texts/_form.html.haml +2 -0
  60. data/app/views/spina/sitemaps/show.xml.builder +12 -8
  61. data/{lib/spina/carrierwave.rb → config/initializers/spina.rb} +0 -0
  62. data/config/locales/de.yml +0 -26
  63. data/config/locales/en.yml +4 -26
  64. data/config/locales/es.yml +0 -26
  65. data/config/locales/fr.yml +4 -27
  66. data/config/locales/it.yml +0 -26
  67. data/config/locales/nl.yml +2 -28
  68. data/config/locales/pt-BR.yml +0 -26
  69. data/config/locales/ru.yml +0 -26
  70. data/config/locales/tr.yml +2 -28
  71. data/config/locales/zh-CN.yml +0 -3
  72. data/config/routes.rb +3 -19
  73. data/db/migrate/{20150507135428_create_spina_tables.rb → 1_create_spina_tables.rb} +0 -11
  74. data/db/migrate/2_create_spina_translation_tables.rb +13 -0
  75. data/lib/generators/spina/install_generator.rb +23 -9
  76. data/lib/generators/spina/templates/app/assets/stylesheets/demo/application.css.sass +3 -0
  77. data/lib/generators/spina/templates/app/views/demo/shared/_languages.html.haml +2 -0
  78. data/lib/generators/spina/templates/app/views/layouts/demo/application.html.haml +1 -0
  79. data/lib/generators/spina/templates/config/initializers/carrierwave.rb +17 -0
  80. data/lib/generators/spina/templates/config/initializers/spina.rb +2 -22
  81. data/lib/generators/spina/templates/config/initializers/themes/default.rb +29 -45
  82. data/lib/generators/spina/templates/config/initializers/themes/demo.rb +82 -92
  83. data/lib/spina.rb +24 -30
  84. data/lib/spina/engine.rb +2 -22
  85. data/lib/spina/plugin.rb +21 -3
  86. data/lib/spina/railtie.rb +9 -0
  87. data/lib/spina/theme.rb +34 -6
  88. data/lib/spina/version.rb +1 -1
  89. metadata +51 -124
  90. data/app/assets/javascripts/spina/admin/aviary.js.coffee +0 -25
  91. data/app/controllers/spina/admin/inquiries_controller.rb +0 -63
  92. data/app/controllers/spina/inquiries_controller.rb +0 -30
  93. data/app/mailers/spina/inquiry_mailer.rb +0 -19
  94. data/app/models/spina/inquiry.rb +0 -41
  95. data/app/views/layouts/spina/admin/messages.html.haml +0 -24
  96. data/app/views/spina/admin/accounts/aviary.html.haml +0 -26
  97. data/app/views/spina/admin/inquiries/inbox.html.haml +0 -30
  98. data/app/views/spina/admin/inquiries/index.html.haml +0 -36
  99. data/app/views/spina/admin/inquiries/show.html.haml +0 -23
  100. data/app/views/spina/admin/inquiries/spam.html.haml +0 -36
  101. data/app/views/spina/admin/layout_partables/_color_form.html.haml +0 -4
  102. data/app/views/spina/admin/layout_partables/_line_form.html.haml +0 -2
  103. data/app/views/spina/admin/page_partables/_attachment_collection_form.html.haml +0 -20
  104. data/app/views/spina/admin/page_partables/_attachment_form.html.haml +0 -19
  105. data/app/views/spina/admin/page_partables/_color_form.html.haml +0 -12
  106. data/app/views/spina/admin/page_partables/_line_form.html.haml +0 -10
  107. data/app/views/spina/admin/page_partables/_photo_collection_form.html.haml +0 -22
  108. data/app/views/spina/admin/page_partables/_photo_form.html.haml +0 -23
  109. data/app/views/spina/admin/page_partables/_structure_form.html.haml +0 -28
  110. data/app/views/spina/admin/page_partables/_text_form.html.haml +0 -10
  111. data/app/views/spina/admin/pages/_structure_item_fields.html.haml +0 -15
  112. data/app/views/spina/admin/shared/_navigation.html.haml +0 -21
  113. data/app/views/spina/admin/structure_partables/_line_form.html.haml +0 -2
  114. data/app/views/spina/admin/structure_partables/_photo_form.html.haml +0 -11
  115. data/app/views/spina/admin/structure_partables/_text_form.html.haml +0 -2
  116. data/app/views/spina/inquiries/create.html.haml +0 -2
  117. data/app/views/spina/inquiries/index.html.haml +0 -19
  118. data/app/views/spina/inquiry_mailer/inquiry.html.haml +0 -15
  119. data/test/dummy/README.rdoc +0 -261
  120. data/test/dummy/Rakefile +0 -7
  121. data/test/dummy/app/assets/javascripts/application.js +0 -15
  122. data/test/dummy/app/assets/stylesheets/default/application.css.sass +0 -0
  123. data/test/dummy/app/assets/stylesheets/demo/application.css.sass +0 -66
  124. data/test/dummy/app/assets/stylesheets/fonts.css.sass +0 -3
  125. data/test/dummy/app/controllers/application_controller.rb +0 -3
  126. data/test/dummy/app/helpers/application_helper.rb +0 -2
  127. data/test/dummy/app/views/default/pages/homepage.html.haml +0 -2
  128. data/test/dummy/app/views/default/pages/show.html.haml +0 -3
  129. data/test/dummy/app/views/default/shared/_navigation.html.haml +0 -5
  130. data/test/dummy/app/views/demo/pages/demo.html.haml +0 -30
  131. data/test/dummy/app/views/demo/pages/homepage.html.haml +0 -2
  132. data/test/dummy/app/views/demo/pages/show.html.haml +0 -3
  133. data/test/dummy/app/views/demo/shared/_navigation.html.haml +0 -5
  134. data/test/dummy/app/views/layouts/default/application.html.haml +0 -11
  135. data/test/dummy/app/views/layouts/demo/application.html.haml +0 -11
  136. data/test/dummy/config.ru +0 -4
  137. data/test/dummy/config/application.rb +0 -52
  138. data/test/dummy/config/application.yml +0 -2
  139. data/test/dummy/config/boot.rb +0 -10
  140. data/test/dummy/config/database.yml +0 -24
  141. data/test/dummy/config/environment.rb +0 -5
  142. data/test/dummy/config/environments/development.rb +0 -41
  143. data/test/dummy/config/environments/production.rb +0 -70
  144. data/test/dummy/config/environments/test.rb +0 -38
  145. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  146. data/test/dummy/config/initializers/inflections.rb +0 -15
  147. data/test/dummy/config/initializers/mime_types.rb +0 -5
  148. data/test/dummy/config/initializers/session_store.rb +0 -8
  149. data/test/dummy/config/initializers/spina.rb +0 -33
  150. data/test/dummy/config/initializers/themes/default.rb +0 -47
  151. data/test/dummy/config/initializers/themes/demo.rb +0 -103
  152. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  153. data/test/dummy/config/locales/en.yml +0 -5
  154. data/test/dummy/config/locales/nl.yml +0 -214
  155. data/test/dummy/config/routes.rb +0 -4
  156. data/test/dummy/config/secrets.yml +0 -7
  157. data/test/dummy/db/migrate/20160114085213_create_spina_tables.spina.rb +0 -167
  158. data/test/dummy/db/schema.rb +0 -183
  159. data/test/dummy/db/seeds.rb +0 -1
  160. data/test/dummy/public/404.html +0 -26
  161. data/test/dummy/public/422.html +0 -26
  162. data/test/dummy/public/500.html +0 -25
  163. data/test/dummy/public/favicon.ico +0 -0
  164. data/test/dummy/script/rails +0 -6
  165. data/test/dummy/tmp/restart.txt +0 -0
  166. data/test/fixtures/spina/accounts.yml +0 -3
  167. data/test/fixtures/spina/pages.yml +0 -10
  168. data/test/fixtures/spina/users.yml +0 -5
  169. data/test/functional/spina/admin/admin_controller.rb +0 -36
  170. data/test/functional/spina/admin/sessions_controller_test.rb +0 -32
  171. data/test/functional/spina/pages_controller_test.rb +0 -16
  172. data/test/integration/navigation_test.rb +0 -8
  173. data/test/integration/spina/admin/login_test.rb +0 -31
  174. data/test/integration/spina/admin/logout_test.rb +0 -17
  175. data/test/integration/spina/admin/pages_test.rb +0 -34
  176. data/test/integration/spina/pages_test.rb +0 -19
  177. data/test/models/spina/line_test.rb +0 -9
  178. data/test/models/spina/text_test.rb +0 -9
  179. data/test/test_helper.rb +0 -23
  180. data/test/unit/helpers/spina/accounts_helper_test.rb +0 -6
  181. data/test/unit/helpers/spina/inquiries_helper_test.rb +0 -6
  182. data/test/unit/helpers/spina/page_parts_helper_test.rb +0 -6
  183. data/test/unit/helpers/spina/pages_helper_test.rb +0 -6
  184. data/test/unit/helpers/spina/photos_helper_test.rb +0 -6
  185. data/test/unit/helpers/spina/sessions_helper_test.rb +0 -6
  186. data/test/unit/helpers/spina/users_helper_test.rb +0 -6
  187. data/test/unit/spina/account_test.rb +0 -9
  188. data/test/unit/spina/file_collection_file_test.rb +0 -9
  189. data/test/unit/spina/gallery_test.rb +0 -9
  190. data/test/unit/spina/inquiry_test.rb +0 -9
  191. data/test/unit/spina/page_include_test.rb +0 -9
  192. data/test/unit/spina/page_part_test.rb +0 -9
  193. data/test/unit/spina/page_test.rb +0 -9
  194. data/test/unit/spina/photo_collection_file_test.rb +0 -9
  195. data/test/unit/spina/photo_collection_test.rb +0 -9
  196. data/test/unit/spina/photo_test.rb +0 -9
  197. data/test/unit/spina/user_test.rb +0 -9
@@ -1,103 +1,93 @@
1
- module Spina
2
- module DemoTheme
3
- include ::ActiveSupport::Configurable
1
+ ::Spina::Theme.register do |theme|
4
2
 
5
- config_accessor :title, :page_parts, :view_templates, :layout_parts, :custom_pages, :plugins, :structures
3
+ theme.name = 'demo'
4
+ theme.title = 'Demo theme'
6
5
 
7
- self.title = 'Demo theme'
6
+ theme.page_parts = [{
7
+ name: 'line',
8
+ title: 'Line',
9
+ partable_type: 'Spina::Line'
10
+ }, {
11
+ name: 'text',
12
+ title: 'Text',
13
+ partable_type: 'Spina::Text'
14
+ }, {
15
+ name: 'photo',
16
+ title: 'Photo',
17
+ partable_type: 'Spina::Photo'
18
+ }, {
19
+ name: 'photo_collection',
20
+ title: 'Photo collection',
21
+ partable_type: 'Spina::PhotoCollection'
22
+ }, {
23
+ name: 'attachment',
24
+ title: 'Attachment',
25
+ partable_type: 'Spina::Attachment'
26
+ }, {
27
+ name: 'attachment_collection',
28
+ title: 'Attachment collection',
29
+ partable_type: 'Spina::AttachmentCollection'
30
+ }, {
31
+ name: 'structure',
32
+ title: 'Structure',
33
+ partable_type: 'Spina::Structure'
34
+ }, {
35
+ name: 'color',
36
+ title: 'Color',
37
+ partable_type: 'Spina::Color'
38
+ }]
8
39
 
9
- self.page_parts = [{
10
- name: 'line',
11
- title: 'Line',
12
- page_partable_type: 'Spina::Line'
40
+ theme.structures = [{
41
+ name: 'structure',
42
+ structure_parts: [{
43
+ name: 'title',
44
+ title: 'Title',
45
+ partable_type: 'Spina::Line'
13
46
  }, {
14
- name: 'text',
15
- title: 'Text',
16
- page_partable_type: 'Spina::Text'
17
- }, {
18
- name: 'photo',
19
- title: 'Photo',
20
- page_partable_type: 'Spina::Photo'
21
- }, {
22
- name: 'photo_collection',
23
- title: 'Photo collection',
24
- page_partable_type: 'Spina::PhotoCollection'
25
- }, {
26
- name: 'attachment',
27
- title: 'Attachment',
28
- page_partable_type: 'Spina::Attachment'
29
- }, {
30
- name: 'attachment_collection',
31
- title: 'Attachment collection',
32
- page_partable_type: 'Spina::AttachmentCollection'
33
- }, {
34
- name: 'structure',
35
- title: 'Structure',
36
- page_partable_type: 'Spina::Structure'
37
- }, {
38
- name: 'color',
39
- title: 'Color',
40
- page_partable_type: 'Spina::Color'
47
+ name: 'description',
48
+ title: 'Description',
49
+ partable_type: 'Spina::Text'
41
50
  }]
51
+ }]
42
52
 
43
- self.structures = {
44
- 'structure' => [{
45
- name: 'title',
46
- title: 'Title',
47
- structure_partable_type: 'Spina::Line'
48
- }, {
49
- name: 'description',
50
- title: 'Description',
51
- structure_partable_type: 'Spina::Text'
52
- }]
53
- }
53
+ theme.layout_parts = [{
54
+ name: 'line',
55
+ title: 'Line',
56
+ partable_type: 'Spina::Line'
57
+ }, {
58
+ name: 'color',
59
+ title: 'Color',
60
+ partable_type: 'Spina::Color'
61
+ }]
54
62
 
55
- self.layout_parts = [{
56
- name: 'line',
57
- title: 'Line',
58
- layout_partable_type: 'Spina::Line'
59
- }, {
60
- name: 'color',
61
- title: 'Color',
62
- layout_partable_type: 'Spina::Color'
63
- }]
64
-
65
- self.view_templates = {
66
- 'homepage' => {
67
- title: 'Homepage',
68
- page_parts: ['text']
69
- },
70
- 'show' => {
71
- title: 'Default',
72
- description: 'A simple page',
73
- usage: 'Use for your content',
74
- page_parts: ['text']
75
- },
76
- 'demo' => {
77
- title: 'Demo',
78
- description: 'Contains examples of every page part',
79
- page_parts: ['line', 'text', 'photo', 'photo_collection', 'attachment', 'attachment_collection', 'structure', 'color']
80
- }
81
- }
63
+ theme.view_templates = [{
64
+ name: 'homepage',
65
+ title: 'Homepage',
66
+ page_parts: ['text'],
67
+ }, {
68
+ name: 'show',
69
+ title: 'Default',
70
+ usage: 'Use for your content',
71
+ page_parts: ['text']
72
+ }, {
73
+ name: 'demo',
74
+ title: 'Demo',
75
+ description: 'Contains examples of every page part',
76
+ page_parts: ['line', 'text', 'photo', 'photo_collection', 'attachment', 'attachment_collection', 'structure', 'color']
77
+ }]
82
78
 
83
- self.custom_pages = [{
84
- name: 'homepage',
85
- title: 'Homepage',
86
- deletable: false,
87
- view_template: 'homepage'
88
- }, {
89
- name: 'demo',
90
- title: 'Demo',
91
- deletable: true,
92
- view_template: 'demo'
93
- }]
79
+ theme.custom_pages = [{
80
+ name: 'homepage',
81
+ title: 'Homepage',
82
+ deletable: false,
83
+ view_template: 'homepage'
84
+ }, {
85
+ name: 'demo',
86
+ title: 'Demo',
87
+ deletable: true,
88
+ view_template: 'demo'
89
+ }]
94
90
 
95
- self.plugins = []
91
+ theme.plugins = ['reviews']
96
92
 
97
- end
98
93
  end
99
-
100
- theme = Spina::Theme.new
101
- theme.name = 'demo'
102
- theme.config = Spina::DemoTheme.config
103
- Spina.register_theme(theme)
data/lib/spina.rb CHANGED
@@ -1,11 +1,15 @@
1
1
  require 'spina/engine'
2
+ require 'spina/railtie'
2
3
  require 'spina/template'
3
4
 
4
5
  module Spina
5
6
 
6
7
  include ActiveSupport::Configurable
7
8
 
8
- config_accessor :backend_path, :storage, :max_page_depth
9
+ PLUGINS = []
10
+ THEMES = []
11
+
12
+ config_accessor :backend_path, :storage, :max_page_depth, :locales
9
13
 
10
14
  self.backend_path = 'admin'
11
15
 
@@ -13,37 +17,27 @@ module Spina
13
17
 
14
18
  self.max_page_depth = 5
15
19
 
16
- class << self
17
-
18
- @@themes = []
19
- @@plugins = []
20
-
21
- def register_theme(theme)
22
- @@themes << theme
23
- end
24
-
25
- def theme(theme_name)
26
- @@themes.find { |theme| theme.name == theme_name }
27
- end
20
+ self.locales = [I18n.default_locale]
28
21
 
29
- def themes
30
- @@themes
31
- end
32
-
33
- def register_plugin(plugin)
34
- @@plugins << plugin
35
- end
36
-
37
- def plugin(plugin_name)
38
- @@plugins.find { |plugin| plugin.name == plugin_name }
39
- end
22
+ class << self
40
23
 
41
- def plugins(plugin_type = :all)
42
- case plugin_type
43
- when :website_resource
44
- @@plugins.find_all { |plugin| plugin.config.plugin_type == 'website_resource' }
45
- else
46
- @@plugins
24
+ def register_theme(deprecated_theme)
25
+ warn "[DEPRECATION] `register_theme` is deprecated. Please use `::Spina::Theme.register` instead."
26
+ Spina::Theme.register do |theme|
27
+ theme.name = deprecated_theme.name
28
+ theme.title = deprecated_theme.config.title
29
+ theme.page_parts = deprecated_theme.config.page_parts
30
+ theme.view_templates = deprecated_theme.config.view_templates.inject([]) do |a, (k, v)|
31
+ v[:name] = k
32
+ a << v
33
+ end
34
+ theme.layout_parts = deprecated_theme.config.layout_parts
35
+ theme.custom_pages = deprecated_theme.config.custom_pages
36
+ theme.plugins = deprecated_theme.config.plugins
37
+ theme.structures = deprecated_theme.config.structures.inject([]) do |a, (k, v)|
38
+ a << { name: k, structure_parts: v }
39
+ end
40
+ theme.public_theme = deprecated_theme.config.public_theme
47
41
  end
48
42
  end
49
43
 
data/lib/spina/engine.rb CHANGED
@@ -9,11 +9,12 @@ require 'turbolinks'
9
9
  require 'carrierwave'
10
10
  require 'mini_magick'
11
11
  require 'cancan'
12
- require 'negative_captcha'
13
12
  require 'filters_spam'
14
13
  require 'ancestry'
15
14
  require 'breadcrumbs_on_rails'
16
15
  require 'kaminari'
16
+ require 'globalize'
17
+ require 'rack-rewrite'
17
18
 
18
19
  module Spina
19
20
  class Engine < ::Rails::Engine
@@ -23,27 +24,6 @@ module Spina
23
24
  config.autoload_paths += %W( #{config.root}/lib )
24
25
  config.assets.paths << config.root.join('vendor', 'assets')
25
26
 
26
- initializer 'spina.configure_carrierwave' do
27
- CarrierWave.configure do |cfg|
28
- if Spina.config.storage == :s3
29
- cfg.storage = :fog
30
- cfg.fog_credentials = {
31
- provider: 'AWS',
32
- region: Spina.config.aws_region,
33
- aws_access_key_id: Spina.config.aws_access_key_id,
34
- aws_secret_access_key: Spina.config.aws_secret_key
35
- }
36
- cfg.fog_directory = Spina.config.s3_bucket
37
- cfg.fog_public = true
38
- cfg.fog_attributes = { 'Cache-Control' => 'max-age=315576000' }
39
- else
40
- cfg.storage = :file
41
- end
42
-
43
- cfg.enable_processing = !Rails.env.test?
44
- end
45
- end
46
-
47
27
  config.to_prepare do
48
28
  [Rails.root].flatten.map { |p| Dir[p.join('app', 'decorators', '**', '*_decorator.rb')]}.flatten.uniq.each do |decorator|
49
29
  Rails.configuration.cache_classes ? require(decorator) : load(decorator)
data/lib/spina/plugin.rb CHANGED
@@ -1,10 +1,28 @@
1
1
  module Spina
2
2
  class Plugin
3
3
 
4
- attr_accessor :name, :config
4
+ attr_accessor :name, :namespace
5
+
6
+ class << self
7
+
8
+ def all
9
+ ::Spina::PLUGINS
10
+ end
11
+
12
+ def find_by_name(name)
13
+ all.find { |plugin| plugin.name == name }
14
+ end
15
+
16
+ def register
17
+ plugin = new
18
+ yield plugin
19
+ raise 'Missing plugin name' if plugin.name.nil?
20
+ raise 'Missing plugin namespace' if plugin.namespace.nil?
21
+ all << plugin
22
+ plugin
23
+ end
5
24
 
6
- def to_s
7
- name
8
25
  end
26
+
9
27
  end
10
28
  end
@@ -0,0 +1,9 @@
1
+ module Spina
2
+ class Railtie < Rails::Railtie
3
+ initializer "spina.configure_rails_initialization" do
4
+ Rails.application.middleware.insert_before(Rack::Runtime, Rack::Rewrite) do
5
+ r301 %r{^/(.*)/$}, '/$1'
6
+ end
7
+ end
8
+ end
9
+ end
data/lib/spina/theme.rb CHANGED
@@ -1,21 +1,49 @@
1
1
  module Spina
2
2
  class Theme
3
3
 
4
- attr_accessor :name, :config, :public_theme
4
+ attr_accessor :name, :title, :page_parts, :structures, :view_templates, :layout_parts, :custom_pages, :plugins, :public_theme, :config
5
+
6
+ class << self
7
+
8
+ def all
9
+ ::Spina::THEMES
10
+ end
11
+
12
+ def find_by_name(name)
13
+ all.find { |theme| theme.name == name }
14
+ end
15
+
16
+ def register
17
+ theme = ::Spina::Theme.new
18
+ yield theme
19
+ raise 'Missing theme name' if theme.name.nil?
20
+ if theme.plugins.nil?
21
+ theme.plugins = ::Spina::Plugin.all.map { |plugin| plugin.name }
22
+ end
23
+ all << theme
24
+ end
5
25
 
6
- def to_s
7
- name
26
+ end
27
+
28
+ def initialize
29
+ @page_parts = []
30
+ @structures = []
31
+ @layout_parts = []
32
+ @view_templates = []
33
+ @custom_pages = []
34
+ @public_theme = false
8
35
  end
9
36
 
10
37
  def new_page_templates
11
- config.view_templates.map do |view_template|
12
- [view_template[0], view_template[1][:title], view_template[1][:description], view_template[1][:usage]] unless is_custom_undeletable_page?(view_template[0])
38
+ @view_templates.map do |view_template|
39
+ [view_template[:name], view_template[:title], view_template[:description], view_template[:usage]] unless is_custom_undeletable_page?(view_template[:name])
13
40
  end.compact
14
41
  end
15
42
 
16
43
  # Check if view_template is defined as a custom undeletable page
17
44
  def is_custom_undeletable_page?(view_template)
18
- config.custom_pages.any? { |page| page[:view_template] == view_template && !page[:deletable] }
45
+ @custom_pages.any? { |page| page[:view_template] == view_template && !page[:deletable] }
19
46
  end
47
+
20
48
  end
21
49
  end
data/lib/spina/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Spina
2
- VERSION = "0.8.3"
2
+ VERSION = "0.9.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spina
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bram Jetten
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-03-14 00:00:00.000000000 Z
12
+ date: 2016-04-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -166,7 +166,7 @@ dependencies:
166
166
  - !ruby/object:Gem::Version
167
167
  version: '0'
168
168
  - !ruby/object:Gem::Dependency
169
- name: negative_captcha
169
+ name: ancestry
170
170
  requirement: !ruby/object:Gem::Requirement
171
171
  requirements:
172
172
  - - ">="
@@ -180,7 +180,7 @@ dependencies:
180
180
  - !ruby/object:Gem::Version
181
181
  version: '0'
182
182
  - !ruby/object:Gem::Dependency
183
- name: ancestry
183
+ name: breadcrumbs_on_rails
184
184
  requirement: !ruby/object:Gem::Requirement
185
185
  requirements:
186
186
  - - ">="
@@ -194,7 +194,7 @@ dependencies:
194
194
  - !ruby/object:Gem::Version
195
195
  version: '0'
196
196
  - !ruby/object:Gem::Dependency
197
- name: breadcrumbs_on_rails
197
+ name: spina-template
198
198
  requirement: !ruby/object:Gem::Requirement
199
199
  requirements:
200
200
  - - ">="
@@ -208,7 +208,7 @@ dependencies:
208
208
  - !ruby/object:Gem::Version
209
209
  version: '0'
210
210
  - !ruby/object:Gem::Dependency
211
- name: spina-template
211
+ name: turbolinks
212
212
  requirement: !ruby/object:Gem::Requirement
213
213
  requirements:
214
214
  - - ">="
@@ -222,7 +222,7 @@ dependencies:
222
222
  - !ruby/object:Gem::Version
223
223
  version: '0'
224
224
  - !ruby/object:Gem::Dependency
225
- name: turbolinks
225
+ name: kaminari
226
226
  requirement: !ruby/object:Gem::Requirement
227
227
  requirements:
228
228
  - - ">="
@@ -236,19 +236,33 @@ dependencies:
236
236
  - !ruby/object:Gem::Version
237
237
  version: '0'
238
238
  - !ruby/object:Gem::Dependency
239
- name: kaminari
239
+ name: globalize
240
240
  requirement: !ruby/object:Gem::Requirement
241
241
  requirements:
242
- - - ">="
242
+ - - "~>"
243
243
  - !ruby/object:Gem::Version
244
- version: '0'
244
+ version: 5.0.0
245
245
  type: :runtime
246
246
  prerelease: false
247
247
  version_requirements: !ruby/object:Gem::Requirement
248
248
  requirements:
249
- - - ">="
249
+ - - "~>"
250
250
  - !ruby/object:Gem::Version
251
- version: '0'
251
+ version: 5.0.0
252
+ - !ruby/object:Gem::Dependency
253
+ name: rack-rewrite
254
+ requirement: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - "~>"
257
+ - !ruby/object:Gem::Version
258
+ version: 1.5.0
259
+ type: :runtime
260
+ prerelease: false
261
+ version_requirements: !ruby/object:Gem::Requirement
262
+ requirements:
263
+ - - "~>"
264
+ - !ruby/object:Gem::Version
265
+ version: 1.5.0
252
266
  description: CMS
253
267
  email:
254
268
  - bram@denkgroot.com
@@ -263,7 +277,6 @@ files:
263
277
  - app/assets/images/spina/admin/spina.png
264
278
  - app/assets/javascripts/spina/admin/account.js.coffee
265
279
  - app/assets/javascripts/spina/admin/application.js
266
- - app/assets/javascripts/spina/admin/aviary.js.coffee
267
280
  - app/assets/javascripts/spina/admin/confirm_delete.js.coffee.erb
268
281
  - app/assets/javascripts/spina/admin/pages.js.coffee.erb
269
282
  - app/assets/javascripts/spina/admin/spina.infinite_scroll.coffee
@@ -277,31 +290,28 @@ files:
277
290
  - app/controllers/spina/admin/accounts_controller.rb
278
291
  - app/controllers/spina/admin/admin_controller.rb
279
292
  - app/controllers/spina/admin/attachments_controller.rb
280
- - app/controllers/spina/admin/inquiries_controller.rb
281
293
  - app/controllers/spina/admin/page_parts_controller.rb
282
294
  - app/controllers/spina/admin/pages_controller.rb
283
295
  - app/controllers/spina/admin/photos_controller.rb
284
296
  - app/controllers/spina/admin/sessions_controller.rb
285
297
  - app/controllers/spina/admin/users_controller.rb
286
298
  - app/controllers/spina/application_controller.rb
287
- - app/controllers/spina/inquiries_controller.rb
288
299
  - app/controllers/spina/pages_controller.rb
289
300
  - app/controllers/spina/sitemaps_controller.rb
290
301
  - app/helpers/spina/admin/admin_helper.rb
291
302
  - app/helpers/spina/admin/pages_helper.rb
292
303
  - app/helpers/spina/application_helper.rb
293
- - app/mailers/spina/inquiry_mailer.rb
304
+ - app/models/concerns/spina/part.rb
305
+ - app/models/concerns/spina/partable.rb
294
306
  - app/models/spina/ability.rb
295
307
  - app/models/spina/account.rb
296
308
  - app/models/spina/attachment.rb
297
309
  - app/models/spina/attachment_collection.rb
298
310
  - app/models/spina/color.rb
299
- - app/models/spina/inquiry.rb
300
311
  - app/models/spina/layout_part.rb
301
312
  - app/models/spina/line.rb
302
313
  - app/models/spina/page.rb
303
314
  - app/models/spina/page_part.rb
304
- - app/models/spina/partable.rb
305
315
  - app/models/spina/photo.rb
306
316
  - app/models/spina/photo_collection.rb
307
317
  - app/models/spina/photo_collections_photo.rb
@@ -318,19 +328,18 @@ files:
318
328
  - app/uploaders/spina/photo_uploader.rb
319
329
  - app/views/layouts/spina/admin/application.html.haml
320
330
  - app/views/layouts/spina/admin/media_library.html.haml
321
- - app/views/layouts/spina/admin/messages.html.haml
322
331
  - app/views/layouts/spina/admin/settings.html.haml
323
332
  - app/views/layouts/spina/admin/website.html.haml
324
333
  - app/views/layouts/spina/email.html.erb
325
334
  - app/views/layouts/spina/login.html.haml
326
335
  - app/views/spina/admin/accounts/_form.html.haml
327
336
  - app/views/spina/admin/accounts/analytics.html.haml
328
- - app/views/spina/admin/accounts/aviary.html.haml
329
337
  - app/views/spina/admin/accounts/edit.html.haml
330
338
  - app/views/spina/admin/accounts/social.html.haml
331
339
  - app/views/spina/admin/accounts/style.html.haml
332
340
  - app/views/spina/admin/attachments/_attachment.html.haml
333
341
  - app/views/spina/admin/attachments/_attachment_collection.html.haml
342
+ - app/views/spina/admin/attachments/_fields.html.haml
334
343
  - app/views/spina/admin/attachments/_select.html.haml
335
344
  - app/views/spina/admin/attachments/_select_collection.html.haml
336
345
  - app/views/spina/admin/attachments/create.js.erb
@@ -339,30 +348,24 @@ files:
339
348
  - app/views/spina/admin/attachments/insert_collection.js.erb
340
349
  - app/views/spina/admin/attachments/select.js.erb
341
350
  - app/views/spina/admin/attachments/select_collection.js.erb
342
- - app/views/spina/admin/inquiries/inbox.html.haml
343
- - app/views/spina/admin/inquiries/index.html.haml
344
- - app/views/spina/admin/inquiries/show.html.haml
345
- - app/views/spina/admin/inquiries/spam.html.haml
346
- - app/views/spina/admin/layout_partables/_color_form.html.haml
347
- - app/views/spina/admin/layout_partables/_line_form.html.haml
348
- - app/views/spina/admin/page_partables/_attachment_collection_form.html.haml
349
- - app/views/spina/admin/page_partables/_attachment_form.html.haml
350
- - app/views/spina/admin/page_partables/_color_form.html.haml
351
- - app/views/spina/admin/page_partables/_line_form.html.haml
352
- - app/views/spina/admin/page_partables/_photo_collection_form.html.haml
353
- - app/views/spina/admin/page_partables/_photo_form.html.haml
354
- - app/views/spina/admin/page_partables/_structure_form.html.haml
355
- - app/views/spina/admin/page_partables/_text_form.html.haml
351
+ - app/views/spina/admin/layout_partables/colors/_form.html.haml
352
+ - app/views/spina/admin/layout_partables/lines/_form.html.haml
353
+ - app/views/spina/admin/page_partables/attachment_collections/_form.html.haml
354
+ - app/views/spina/admin/page_partables/attachments/_form.html.haml
355
+ - app/views/spina/admin/page_partables/colors/_form.html.haml
356
+ - app/views/spina/admin/page_partables/lines/_form.html.haml
357
+ - app/views/spina/admin/page_partables/photo_collections/_form.html.haml
358
+ - app/views/spina/admin/page_partables/photos/_form.html.haml
359
+ - app/views/spina/admin/page_partables/structures/_form.html.haml
360
+ - app/views/spina/admin/page_partables/texts/_form.html.haml
356
361
  - app/views/spina/admin/page_parts/_wysihtml5_link.html.haml
357
362
  - app/views/spina/admin/page_parts/insert_wysihtml5_link.js
358
363
  - app/views/spina/admin/page_parts/wysihtml5_link.js
359
- - app/views/spina/admin/pages/_attachment_fields.html.haml
360
364
  - app/views/spina/admin/pages/_form.html.haml
361
365
  - app/views/spina/admin/pages/_form_advanced.html.haml
362
366
  - app/views/spina/admin/pages/_form_page_content.html.haml
363
367
  - app/views/spina/admin/pages/_form_page_seo.html.haml
364
368
  - app/views/spina/admin/pages/_page.html.haml
365
- - app/views/spina/admin/pages/_structure_item_fields.html.haml
366
369
  - app/views/spina/admin/pages/edit.html.haml
367
370
  - app/views/spina/admin/pages/index.html.haml
368
371
  - app/views/spina/admin/pages/new.html.haml
@@ -377,6 +380,7 @@ files:
377
380
  - app/views/spina/admin/photos/_photo_uploaded.html.haml
378
381
  - app/views/spina/admin/photos/_wysihtml5_select.html.haml
379
382
  - app/views/spina/admin/photos/create.js.erb
383
+ - app/views/spina/admin/photos/create_and_select.js.erb
380
384
  - app/views/spina/admin/photos/index.html.haml
381
385
  - app/views/spina/admin/photos/index.js.erb
382
386
  - app/views/spina/admin/photos/insert_photo.js.erb
@@ -390,19 +394,17 @@ files:
390
394
  - app/views/spina/admin/photos/wysihtml5_insert.js.coffee
391
395
  - app/views/spina/admin/photos/wysihtml5_select.js.erb
392
396
  - app/views/spina/admin/sessions/new.html.haml
393
- - app/views/spina/admin/shared/_navigation.html.haml
394
397
  - app/views/spina/admin/shared/_notifications.html.haml
398
+ - app/views/spina/admin/shared/_primary_navigation.html.haml
395
399
  - app/views/spina/admin/shared/_rich_text_field.html.haml
396
- - app/views/spina/admin/structure_partables/_line_form.html.haml
397
- - app/views/spina/admin/structure_partables/_photo_form.html.haml
398
- - app/views/spina/admin/structure_partables/_text_form.html.haml
400
+ - app/views/spina/admin/structure_items/_fields.html.haml
401
+ - app/views/spina/admin/structure_partables/lines/_form.html.haml
402
+ - app/views/spina/admin/structure_partables/photos/_form.html.haml
403
+ - app/views/spina/admin/structure_partables/texts/_form.html.haml
399
404
  - app/views/spina/admin/users/_form.html.haml
400
405
  - app/views/spina/admin/users/edit.html.haml
401
406
  - app/views/spina/admin/users/index.html.haml
402
407
  - app/views/spina/admin/users/new.html.haml
403
- - app/views/spina/inquiries/create.html.haml
404
- - app/views/spina/inquiries/index.html.haml
405
- - app/views/spina/inquiry_mailer/inquiry.html.haml
406
408
  - app/views/spina/pages/robots.text.erb
407
409
  - app/views/spina/shared/_admin_bar.html.haml
408
410
  - app/views/spina/shared/_analytics.html.erb
@@ -410,6 +412,7 @@ files:
410
412
  - app/views/spina/shared/_social.html.haml
411
413
  - app/views/spina/sitemaps/show.xml.builder
412
414
  - config/initializers/assets.rb
415
+ - config/initializers/spina.rb
413
416
  - config/initializers/time_formats.rb
414
417
  - config/locales/de.yml
415
418
  - config/locales/en.yml
@@ -422,7 +425,8 @@ files:
422
425
  - config/locales/tr.yml
423
426
  - config/locales/zh-CN.yml
424
427
  - config/routes.rb
425
- - db/migrate/20150507135428_create_spina_tables.rb
428
+ - db/migrate/1_create_spina_tables.rb
429
+ - db/migrate/2_create_spina_translation_tables.rb
426
430
  - db/seeds.rb
427
431
  - lib/generators/spina/install_generator.rb
428
432
  - lib/generators/spina/templates/app/assets/stylesheets/default/application.css.sass
@@ -433,98 +437,21 @@ files:
433
437
  - lib/generators/spina/templates/app/views/demo/pages/demo.html.haml
434
438
  - lib/generators/spina/templates/app/views/demo/pages/homepage.html.haml
435
439
  - lib/generators/spina/templates/app/views/demo/pages/show.html.haml
440
+ - lib/generators/spina/templates/app/views/demo/shared/_languages.html.haml
436
441
  - lib/generators/spina/templates/app/views/demo/shared/_navigation.html.haml
437
442
  - lib/generators/spina/templates/app/views/layouts/default/application.html.haml
438
443
  - lib/generators/spina/templates/app/views/layouts/demo/application.html.haml
444
+ - lib/generators/spina/templates/config/initializers/carrierwave.rb
439
445
  - lib/generators/spina/templates/config/initializers/spina.rb
440
446
  - lib/generators/spina/templates/config/initializers/themes/default.rb
441
447
  - lib/generators/spina/templates/config/initializers/themes/demo.rb
442
448
  - lib/spina.rb
443
- - lib/spina/carrierwave.rb
444
449
  - lib/spina/engine.rb
445
450
  - lib/spina/plugin.rb
451
+ - lib/spina/railtie.rb
446
452
  - lib/spina/theme.rb
447
453
  - lib/spina/version.rb
448
454
  - lib/tasks/spina_tasks.rake
449
- - test/dummy/README.rdoc
450
- - test/dummy/Rakefile
451
- - test/dummy/app/assets/javascripts/application.js
452
- - test/dummy/app/assets/stylesheets/default/application.css.sass
453
- - test/dummy/app/assets/stylesheets/demo/application.css.sass
454
- - test/dummy/app/assets/stylesheets/fonts.css.sass
455
- - test/dummy/app/controllers/application_controller.rb
456
- - test/dummy/app/helpers/application_helper.rb
457
- - test/dummy/app/views/default/pages/homepage.html.haml
458
- - test/dummy/app/views/default/pages/show.html.haml
459
- - test/dummy/app/views/default/shared/_navigation.html.haml
460
- - test/dummy/app/views/demo/pages/demo.html.haml
461
- - test/dummy/app/views/demo/pages/homepage.html.haml
462
- - test/dummy/app/views/demo/pages/show.html.haml
463
- - test/dummy/app/views/demo/shared/_navigation.html.haml
464
- - test/dummy/app/views/layouts/default/application.html.haml
465
- - test/dummy/app/views/layouts/demo/application.html.haml
466
- - test/dummy/config.ru
467
- - test/dummy/config/application.rb
468
- - test/dummy/config/application.yml
469
- - test/dummy/config/boot.rb
470
- - test/dummy/config/database.yml
471
- - test/dummy/config/environment.rb
472
- - test/dummy/config/environments/development.rb
473
- - test/dummy/config/environments/production.rb
474
- - test/dummy/config/environments/test.rb
475
- - test/dummy/config/initializers/backtrace_silencers.rb
476
- - test/dummy/config/initializers/inflections.rb
477
- - test/dummy/config/initializers/mime_types.rb
478
- - test/dummy/config/initializers/session_store.rb
479
- - test/dummy/config/initializers/spina.rb
480
- - test/dummy/config/initializers/themes/default.rb
481
- - test/dummy/config/initializers/themes/demo.rb
482
- - test/dummy/config/initializers/wrap_parameters.rb
483
- - test/dummy/config/locales/en.yml
484
- - test/dummy/config/locales/nl.yml
485
- - test/dummy/config/routes.rb
486
- - test/dummy/config/secrets.yml
487
- - test/dummy/db/migrate/20160114085213_create_spina_tables.spina.rb
488
- - test/dummy/db/schema.rb
489
- - test/dummy/db/seeds.rb
490
- - test/dummy/public/404.html
491
- - test/dummy/public/422.html
492
- - test/dummy/public/500.html
493
- - test/dummy/public/favicon.ico
494
- - test/dummy/script/rails
495
- - test/dummy/tmp/restart.txt
496
- - test/fixtures/spina/accounts.yml
497
- - test/fixtures/spina/pages.yml
498
- - test/fixtures/spina/users.yml
499
- - test/functional/spina/admin/admin_controller.rb
500
- - test/functional/spina/admin/sessions_controller_test.rb
501
- - test/functional/spina/pages_controller_test.rb
502
- - test/integration/navigation_test.rb
503
- - test/integration/spina/admin/login_test.rb
504
- - test/integration/spina/admin/logout_test.rb
505
- - test/integration/spina/admin/pages_test.rb
506
- - test/integration/spina/pages_test.rb
507
- - test/models/spina/line_test.rb
508
- - test/models/spina/text_test.rb
509
- - test/test_helper.rb
510
- - test/unit/helpers/spina/accounts_helper_test.rb
511
- - test/unit/helpers/spina/inquiries_helper_test.rb
512
- - test/unit/helpers/spina/page_parts_helper_test.rb
513
- - test/unit/helpers/spina/pages_helper_test.rb
514
- - test/unit/helpers/spina/photos_helper_test.rb
515
- - test/unit/helpers/spina/sessions_helper_test.rb
516
- - test/unit/helpers/spina/users_helper_test.rb
517
- - test/unit/spina/account_test.rb
518
- - test/unit/spina/file_collection_file_test.rb
519
- - test/unit/spina/gallery_test.rb
520
- - test/unit/spina/inquiry_test.rb
521
- - test/unit/spina/page_include_test.rb
522
- - test/unit/spina/page_part_test.rb
523
- - test/unit/spina/page_test.rb
524
- - test/unit/spina/photo_collection_file_test.rb
525
- - test/unit/spina/photo_collection_test.rb
526
- - test/unit/spina/photo_test.rb
527
- - test/unit/spina/user_test.rb
528
455
  homepage: http://www.denkgroot.com
529
456
  licenses:
530
457
  - MIT