lato_blog 2.1

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.
Files changed (125) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +27 -0
  4. data/Rakefile +5 -0
  5. data/app/assets/config/lato_blog_manifest.js +2 -0
  6. data/app/assets/javascripts/lato_blog/application.js +19 -0
  7. data/app/assets/javascripts/lato_blog/initializers/Fields.js +56 -0
  8. data/app/assets/javascripts/lato_blog/initializers/Posts.js +54 -0
  9. data/app/assets/stylesheets/lato_blog/_helpers.scss +37 -0
  10. data/app/assets/stylesheets/lato_blog/application.scss +20 -0
  11. data/app/assets/stylesheets/lato_blog/fields/_composed.scss +7 -0
  12. data/app/assets/stylesheets/lato_blog/fields/_datetime.scss +0 -0
  13. data/app/assets/stylesheets/lato_blog/fields/_editor.scss +3 -0
  14. data/app/assets/stylesheets/lato_blog/fields/_fields.scss +8 -0
  15. data/app/assets/stylesheets/lato_blog/fields/_general.scss +9 -0
  16. data/app/assets/stylesheets/lato_blog/fields/_geolocalization.scss +3 -0
  17. data/app/assets/stylesheets/lato_blog/fields/_image.scss +3 -0
  18. data/app/assets/stylesheets/lato_blog/fields/_relay.scss +121 -0
  19. data/app/assets/stylesheets/lato_blog/fields/_text.scss +3 -0
  20. data/app/assets/stylesheets/lato_blog/pages/_categories.scss +18 -0
  21. data/app/assets/stylesheets/lato_blog/pages/_pages.scss +2 -0
  22. data/app/assets/stylesheets/lato_blog/pages/_posts.scss +25 -0
  23. data/app/assets/stylesheets/lato_blog/theme.scss.erb +12 -0
  24. data/app/assets/stylesheets/lato_blog/widgets/_switchlang.scss +3 -0
  25. data/app/assets/stylesheets/lato_blog/widgets/_widgets.scss +1 -0
  26. data/app/controllers/lato_blog/api/api_controller.rb +5 -0
  27. data/app/controllers/lato_blog/api/categories_controller.rb +51 -0
  28. data/app/controllers/lato_blog/api/posts_controller.rb +93 -0
  29. data/app/controllers/lato_blog/application_controller.rb +13 -0
  30. data/app/controllers/lato_blog/back/back_controller.rb +45 -0
  31. data/app/controllers/lato_blog/back/categories_controller.rb +141 -0
  32. data/app/controllers/lato_blog/back/post_fields_controller.rb +86 -0
  33. data/app/controllers/lato_blog/back/posts_controller.rb +340 -0
  34. data/app/controllers/lato_blog/doc/doc_controller.rb +16 -0
  35. data/app/controllers/lato_blog/doc/fields_controller.rb +19 -0
  36. data/app/controllers/lato_blog/doc/general_controller.rb +11 -0
  37. data/app/helpers/lato_blog/application_helper.rb +13 -0
  38. data/app/helpers/lato_blog/fields_helper.rb +100 -0
  39. data/app/jobs/lato_blog/application_job.rb +4 -0
  40. data/app/mailers/lato_blog/application_mailer.rb +6 -0
  41. data/app/models/lato_blog/application_record.rb +5 -0
  42. data/app/models/lato_blog/category.rb +119 -0
  43. data/app/models/lato_blog/category/entity_helpers.rb +55 -0
  44. data/app/models/lato_blog/category/serializer_helpers.rb +66 -0
  45. data/app/models/lato_blog/category_parent.rb +9 -0
  46. data/app/models/lato_blog/category_post.rb +35 -0
  47. data/app/models/lato_blog/post.rb +112 -0
  48. data/app/models/lato_blog/post/entity_helpers.rb +42 -0
  49. data/app/models/lato_blog/post/serializer_helpers.rb +85 -0
  50. data/app/models/lato_blog/post_field.rb +50 -0
  51. data/app/models/lato_blog/post_field/entity_helpers.rb +5 -0
  52. data/app/models/lato_blog/post_field/serializer_helpers.rb +127 -0
  53. data/app/models/lato_blog/post_parent.rb +20 -0
  54. data/app/views/lato_blog/back/back/switch_current_language.js +2 -0
  55. data/app/views/lato_blog/back/categories/edit.html.erb +44 -0
  56. data/app/views/lato_blog/back/categories/index.html.erb +18 -0
  57. data/app/views/lato_blog/back/categories/new.html.erb +40 -0
  58. data/app/views/lato_blog/back/categories/shared/_form.html.erb +38 -0
  59. data/app/views/lato_blog/back/categories/shared/edit/_edit_child_tree.html.erb +23 -0
  60. data/app/views/lato_blog/back/categories/shared/edit/_edit_child_tree_level.html.erb +7 -0
  61. data/app/views/lato_blog/back/categories/shared/edit/_edit_informations.html.erb +24 -0
  62. data/app/views/lato_blog/back/categories/shared/edit/_edit_languages.html.erb +38 -0
  63. data/app/views/lato_blog/back/categories/shared/new/_new_informations.html.erb +21 -0
  64. data/app/views/lato_blog/back/post_fields/create_relay_field.js.erb +14 -0
  65. data/app/views/lato_blog/back/post_fields/destroy_relay_field.js.erb +14 -0
  66. data/app/views/lato_blog/back/post_fields/fields/_composed.html.erb +24 -0
  67. data/app/views/lato_blog/back/post_fields/fields/_datetime.html.erb +17 -0
  68. data/app/views/lato_blog/back/post_fields/fields/_editor.html.erb +17 -0
  69. data/app/views/lato_blog/back/post_fields/fields/_geolocalization.html.erb +22 -0
  70. data/app/views/lato_blog/back/post_fields/fields/_image.html.erb +18 -0
  71. data/app/views/lato_blog/back/post_fields/fields/_relay.html.erb +39 -0
  72. data/app/views/lato_blog/back/post_fields/fields/_text.html.erb +17 -0
  73. data/app/views/lato_blog/back/post_fields/index.html.erb +28 -0
  74. data/app/views/lato_blog/back/posts/edit.html.erb +48 -0
  75. data/app/views/lato_blog/back/posts/index.html.erb +38 -0
  76. data/app/views/lato_blog/back/posts/new.html.erb +40 -0
  77. data/app/views/lato_blog/back/posts/shared/_fields.html.erb +13 -0
  78. data/app/views/lato_blog/back/posts/shared/_form.html.erb +69 -0
  79. data/app/views/lato_blog/back/posts/shared/edit/_edit_categories.html.erb +36 -0
  80. data/app/views/lato_blog/back/posts/shared/edit/_edit_informations.html.erb +26 -0
  81. data/app/views/lato_blog/back/posts/shared/edit/_edit_languages.html.erb +40 -0
  82. data/app/views/lato_blog/back/posts/shared/edit/_edit_pubblication_datetime.html.erb +24 -0
  83. data/app/views/lato_blog/back/posts/shared/edit/_edit_status_switch.html.erb +27 -0
  84. data/app/views/lato_blog/back/posts/shared/index/_index.html.erb +28 -0
  85. data/app/views/lato_blog/back/posts/shared/index/_index_informations.html.erb +37 -0
  86. data/app/views/lato_blog/back/posts/shared/index/_index_status_switch.html.erb +29 -0
  87. data/app/views/lato_blog/back/posts/shared/new/_new_informations.html.erb +21 -0
  88. data/app/views/lato_blog/doc/doc/index.html.erb +83 -0
  89. data/app/views/lato_blog/doc/fields/composed.html.erb +87 -0
  90. data/app/views/lato_blog/doc/fields/datetime.html.erb +0 -0
  91. data/app/views/lato_blog/doc/fields/editor.html.erb +1 -0
  92. data/app/views/lato_blog/doc/fields/geolocalization.html.erb +1 -0
  93. data/app/views/lato_blog/doc/fields/image.html.erb +70 -0
  94. data/app/views/lato_blog/doc/fields/relay.html.erb +87 -0
  95. data/app/views/lato_blog/doc/fields/text.html.erb +70 -0
  96. data/app/views/lato_blog/doc/general/api.html.erb +0 -0
  97. data/app/views/lato_blog/doc/general/installation.html.erb +49 -0
  98. data/app/views/lato_blog/doc/general/personalization.html.erb +0 -0
  99. data/app/views/lato_blog/partials/_relay_destroy_button.html.erb +5 -0
  100. data/app/views/lato_blog/widgets/_switchlang.html.erb +20 -0
  101. data/config/configs.yml +109 -0
  102. data/config/initializers/assets.rb +4 -0
  103. data/config/initializers/init_system.rb +22 -0
  104. data/config/languages/default.yml +87 -0
  105. data/config/languages/it.yml +87 -0
  106. data/config/routes.rb +16 -0
  107. data/config/routes/api.rb +11 -0
  108. data/config/routes/back.rb +17 -0
  109. data/config/routes/doc.rb +19 -0
  110. data/db/migrate/20170504222008_create_lato_blog_posts.rb +19 -0
  111. data/db/migrate/20170504223521_create_lato_blog_post_parents.rb +9 -0
  112. data/db/migrate/20170516063317_create_lato_blog_categories.rb +16 -0
  113. data/db/migrate/20170516063320_create_lato_blog_category_parents.rb +9 -0
  114. data/db/migrate/20170516063330_create_lato_blog_category_posts.rb +10 -0
  115. data/db/migrate/20170516063330_create_lato_blog_post_fields.rb +18 -0
  116. data/lib/lato_blog.rb +6 -0
  117. data/lib/lato_blog/engine.rb +15 -0
  118. data/lib/lato_blog/interface.rb +17 -0
  119. data/lib/lato_blog/interfaces/categories.rb +34 -0
  120. data/lib/lato_blog/interfaces/fields.rb +195 -0
  121. data/lib/lato_blog/interfaces/languages.rb +15 -0
  122. data/lib/lato_blog/interfaces/posts.rb +13 -0
  123. data/lib/lato_blog/version.rb +3 -0
  124. data/lib/tasks/lato_blog_tasks.rake +4 -0
  125. metadata +223 -0
@@ -0,0 +1,195 @@
1
+ module LatoBlog
2
+
3
+ module Interface::Fields
4
+
5
+ # This function syncronizes the config post fields with the post
6
+ # fields on database.
7
+ def blog__sync_config_post_fields_with_db_post_fields
8
+ posts = LatoBlog::Post.all
9
+ # create / update fields on database
10
+ posts.map { |p| blog__sync_config_post_fields_with_db_post_fields_for_post(p) }
11
+ end
12
+
13
+ # This function syncronizes the config post fields with the post fields
14
+ # on database for a single post object.
15
+ def blog__sync_config_post_fields_with_db_post_fields_for_post(post)
16
+ # save or update post fields from config
17
+ post_fields = CONFIGS[:lato_blog][:post_fields]
18
+ post_fields.map { |key, content| blog__sync_config_post_field(post, key, content) }
19
+ # remove old post fields
20
+ db_post_fields = post.post_fields.visibles.roots
21
+ db_post_fields.map { |dbpf| blog__sync_db_post_field(post, dbpf) }
22
+ end
23
+
24
+ # This function syncronizes a single post field of a specific post with database.
25
+ def blog__sync_config_post_field(post, key, content)
26
+ db_post_field = LatoBlog::PostField.find_by(
27
+ key: key,
28
+ lato_blog_post_id: post.id,
29
+ lato_blog_post_field_id: nil
30
+ )
31
+ # check if post field can be created for the post
32
+ if content[:categories] && !content[:categories].empty?
33
+ db_categories = LatoBlog::Category.where(meta_permalink: content[:categories])
34
+ return if (post.categories.pluck(:id) & db_categories.pluck(:id)).empty?
35
+ end
36
+ # run correct action for field
37
+ if db_post_field
38
+ blog__update_db_post_field(db_post_field, content)
39
+ else
40
+ blog__create_db_post_field(post, key, content)
41
+ end
42
+ end
43
+
44
+ # This function syncronizes a single post field of a specific post with config file.
45
+ def blog__sync_db_post_field(post, db_post_field)
46
+ post_fields = CONFIGS[:lato_blog][:post_fields]
47
+ # search db post field on config file
48
+ content = post_fields[db_post_field.key]
49
+ db_post_field.update(meta_visible: false) && return unless content
50
+ # check category of post field is accepted
51
+ if content[:categories] && !content[:categories].empty?
52
+ db_categories = LatoBlog::Category.where(meta_permalink: content[:categories])
53
+ db_post_field.update(meta_visible: false) && return if (post.categories.pluck(:id) & db_categories.pluck(:id)).empty?
54
+ end
55
+ end
56
+
57
+ # Manage single field functions:
58
+ # **************************************************************************
59
+
60
+ # This function creates a new db post field from a specific content.
61
+ def blog__create_db_post_field(post, key, content, post_field_parent = nil)
62
+ # create post field on database
63
+ db_post_field = LatoBlog::PostField.new(
64
+ key: key,
65
+ typology: content[:type],
66
+ lato_blog_post_id: post.id,
67
+ lato_blog_post_field_id: post_field_parent ? post_field_parent.id : nil
68
+ )
69
+ throw "Impossible to create post field #{key}" unless db_post_field.save
70
+ # update post field with correct content
71
+ blog__update_db_post_field(db_post_field, content, post_field_parent)
72
+ end
73
+
74
+ # This function update an existing post field on database with new content.
75
+ def blog__update_db_post_field(db_post_field, content, post_field_parent = nil)
76
+ # run minimum updates
77
+ db_post_field.update(
78
+ position: content[:position],
79
+ meta_visible: true
80
+ )
81
+ # run custom update for type
82
+ case db_post_field.typology
83
+ when 'text'
84
+ update_db_post_field_text(db_post_field, content, post_field_parent)
85
+ when 'datetime'
86
+ update_db_post_field_datetime(db_post_field, content, post_field_parent)
87
+ when 'editor'
88
+ update_db_post_field_editor(db_post_field, content, post_field_parent)
89
+ when 'geolocalization'
90
+ update_db_post_field_geolocalization(db_post_field, content, post_field_parent)
91
+ when 'image'
92
+ update_db_post_field_image(db_post_field, content, post_field_parent)
93
+ when 'composed'
94
+ update_db_post_field_composed(db_post_field, content, post_field_parent)
95
+ when 'relay'
96
+ update_db_post_field_relay(db_post_field, content, post_field_parent)
97
+ end
98
+ end
99
+
100
+ private
101
+
102
+ # Manage single specific field functions:
103
+ # **************************************************************************
104
+
105
+ # Text.
106
+ def update_db_post_field_text(db_post_field, content, post_field_parent = nil)
107
+ db_post_field.update(
108
+ meta_datas: {
109
+ label: content[:label] && !content[:label].blank? ? content[:label] : db_post_field.key,
110
+ class: content[:class] && !content[:class].blank? ? content[:class] : nil
111
+ }
112
+ )
113
+ end
114
+
115
+ # Datetime.
116
+ def update_db_post_field_datetime(db_post_field, content, post_field_parent = nil)
117
+ db_post_field.update(
118
+ meta_datas: {
119
+ label: content[:label] && !content[:label].blank? ? content[:label] : db_post_field.key,
120
+ class: content[:class] && !content[:class].blank? ? content[:class] : nil
121
+ }
122
+ )
123
+ end
124
+
125
+ # Editor.
126
+ def update_db_post_field_editor(db_post_field, content, post_field_parent = nil)
127
+ db_post_field.update(
128
+ meta_datas: {
129
+ label: content[:label] && !content[:label].blank? ? content[:label] : db_post_field.key,
130
+ class: content[:class] && !content[:class].blank? ? content[:class] : nil
131
+ }
132
+ )
133
+ end
134
+
135
+ # Geolocalization.
136
+ def update_db_post_field_geolocalization(db_post_field, content, post_field_parent = nil)
137
+ db_post_field.update(
138
+ meta_datas: {
139
+ label: content[:label] && !content[:label].blank? ? content[:label] : db_post_field.key,
140
+ class: content[:class] && !content[:class].blank? ? content[:class] : nil
141
+ }
142
+ )
143
+ end
144
+
145
+ # Image.
146
+ def update_db_post_field_image(db_post_field, content, post_field_parent = nil)
147
+ db_post_field.update(
148
+ meta_datas: {
149
+ label: content[:label] && !content[:label].blank? ? content[:label] : db_post_field.key,
150
+ class: content[:class] && !content[:class].blank? ? content[:class] : nil
151
+ }
152
+ )
153
+ end
154
+
155
+ # Composed.
156
+ def update_db_post_field_composed(db_post_field, content, post_field_parent = nil)
157
+ # update the main field
158
+ db_post_field.update(
159
+ meta_datas: {
160
+ label: content[:label] && !content[:label].blank? ? content[:label] : db_post_field.key,
161
+ class: content[:class] && !content[:class].blank? ? content[:class] : nil
162
+ }
163
+ )
164
+ # create or update child fields
165
+ return unless content[:fields]
166
+ content[:fields].each do |child_key, child_content|
167
+ # search child field on db
168
+ child_db_post_field = LatoBlog::PostField.find_by(
169
+ key: child_key,
170
+ lato_blog_post_id: db_post_field.post.id,
171
+ lato_blog_post_field_id: db_post_field.id
172
+ )
173
+ # update or create child field on db
174
+ if child_db_post_field
175
+ blog__update_db_post_field(child_db_post_field, child_content, db_post_field)
176
+ else
177
+ blog__create_db_post_field(db_post_field.post, child_key, child_content, db_post_field)
178
+ end
179
+ end
180
+ end
181
+
182
+ # Relay.
183
+ def update_db_post_field_relay(db_post_field, content, post_parent = nil)
184
+ db_post_field.update(
185
+ meta_datas: {
186
+ label: content[:label] && !content[:label].blank? ? content[:label] : db_post_field.key,
187
+ class: content[:class] && !content[:class].blank? ? content[:class] : nil,
188
+ fields: content[:fields] && !content[:fields].empty? ? content[:fields] : nil
189
+ }
190
+ )
191
+ end
192
+
193
+ end
194
+
195
+ end
@@ -0,0 +1,15 @@
1
+ module LatoBlog
2
+
3
+ # This module contains a list of functions used to manage languages for the blog.
4
+ module Interface::Languages
5
+
6
+ # This function return an array with possible languages for posts.
7
+ def blog__get_languages_identifier
8
+ languages = CONFIGS[:lato_blog][:languages]
9
+ return [] unless languages
10
+
11
+ languages.values.map { |lang| lang[:identifier] }
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ module LatoBlog
2
+
3
+ # This module contains a list of functions used to manage posts for the blog.
4
+ module Interface::Posts
5
+
6
+ # This function cleans all old post parents without any child.
7
+ def blog__clean_post_parents
8
+ post_parents = LatoBlog::PostParent.all
9
+ post_parents.map { |pp| pp.destroy if pp.posts.empty? }
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module LatoBlog
2
+ VERSION = '2.1'
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :lato_blog do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,223 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lato_blog
3
+ version: !ruby/object:Gem::Version
4
+ version: '2.1'
5
+ platform: ruby
6
+ authors:
7
+ - Ideonetwork
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-08-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 5.1.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 5.1.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: lato_core
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 2.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: lato_media
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 2.1.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 2.1.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: sqlite3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Lato is a modular management system for Rails
70
+ email:
71
+ - info@ideonetwork.it
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - MIT-LICENSE
77
+ - README.md
78
+ - Rakefile
79
+ - app/assets/config/lato_blog_manifest.js
80
+ - app/assets/javascripts/lato_blog/application.js
81
+ - app/assets/javascripts/lato_blog/initializers/Fields.js
82
+ - app/assets/javascripts/lato_blog/initializers/Posts.js
83
+ - app/assets/stylesheets/lato_blog/_helpers.scss
84
+ - app/assets/stylesheets/lato_blog/application.scss
85
+ - app/assets/stylesheets/lato_blog/fields/_composed.scss
86
+ - app/assets/stylesheets/lato_blog/fields/_datetime.scss
87
+ - app/assets/stylesheets/lato_blog/fields/_editor.scss
88
+ - app/assets/stylesheets/lato_blog/fields/_fields.scss
89
+ - app/assets/stylesheets/lato_blog/fields/_general.scss
90
+ - app/assets/stylesheets/lato_blog/fields/_geolocalization.scss
91
+ - app/assets/stylesheets/lato_blog/fields/_image.scss
92
+ - app/assets/stylesheets/lato_blog/fields/_relay.scss
93
+ - app/assets/stylesheets/lato_blog/fields/_text.scss
94
+ - app/assets/stylesheets/lato_blog/pages/_categories.scss
95
+ - app/assets/stylesheets/lato_blog/pages/_pages.scss
96
+ - app/assets/stylesheets/lato_blog/pages/_posts.scss
97
+ - app/assets/stylesheets/lato_blog/theme.scss.erb
98
+ - app/assets/stylesheets/lato_blog/widgets/_switchlang.scss
99
+ - app/assets/stylesheets/lato_blog/widgets/_widgets.scss
100
+ - app/controllers/lato_blog/api/api_controller.rb
101
+ - app/controllers/lato_blog/api/categories_controller.rb
102
+ - app/controllers/lato_blog/api/posts_controller.rb
103
+ - app/controllers/lato_blog/application_controller.rb
104
+ - app/controllers/lato_blog/back/back_controller.rb
105
+ - app/controllers/lato_blog/back/categories_controller.rb
106
+ - app/controllers/lato_blog/back/post_fields_controller.rb
107
+ - app/controllers/lato_blog/back/posts_controller.rb
108
+ - app/controllers/lato_blog/doc/doc_controller.rb
109
+ - app/controllers/lato_blog/doc/fields_controller.rb
110
+ - app/controllers/lato_blog/doc/general_controller.rb
111
+ - app/helpers/lato_blog/application_helper.rb
112
+ - app/helpers/lato_blog/fields_helper.rb
113
+ - app/jobs/lato_blog/application_job.rb
114
+ - app/mailers/lato_blog/application_mailer.rb
115
+ - app/models/lato_blog/application_record.rb
116
+ - app/models/lato_blog/category.rb
117
+ - app/models/lato_blog/category/entity_helpers.rb
118
+ - app/models/lato_blog/category/serializer_helpers.rb
119
+ - app/models/lato_blog/category_parent.rb
120
+ - app/models/lato_blog/category_post.rb
121
+ - app/models/lato_blog/post.rb
122
+ - app/models/lato_blog/post/entity_helpers.rb
123
+ - app/models/lato_blog/post/serializer_helpers.rb
124
+ - app/models/lato_blog/post_field.rb
125
+ - app/models/lato_blog/post_field/entity_helpers.rb
126
+ - app/models/lato_blog/post_field/serializer_helpers.rb
127
+ - app/models/lato_blog/post_parent.rb
128
+ - app/views/lato_blog/back/back/switch_current_language.js
129
+ - app/views/lato_blog/back/categories/edit.html.erb
130
+ - app/views/lato_blog/back/categories/index.html.erb
131
+ - app/views/lato_blog/back/categories/new.html.erb
132
+ - app/views/lato_blog/back/categories/shared/_form.html.erb
133
+ - app/views/lato_blog/back/categories/shared/edit/_edit_child_tree.html.erb
134
+ - app/views/lato_blog/back/categories/shared/edit/_edit_child_tree_level.html.erb
135
+ - app/views/lato_blog/back/categories/shared/edit/_edit_informations.html.erb
136
+ - app/views/lato_blog/back/categories/shared/edit/_edit_languages.html.erb
137
+ - app/views/lato_blog/back/categories/shared/new/_new_informations.html.erb
138
+ - app/views/lato_blog/back/post_fields/create_relay_field.js.erb
139
+ - app/views/lato_blog/back/post_fields/destroy_relay_field.js.erb
140
+ - app/views/lato_blog/back/post_fields/fields/_composed.html.erb
141
+ - app/views/lato_blog/back/post_fields/fields/_datetime.html.erb
142
+ - app/views/lato_blog/back/post_fields/fields/_editor.html.erb
143
+ - app/views/lato_blog/back/post_fields/fields/_geolocalization.html.erb
144
+ - app/views/lato_blog/back/post_fields/fields/_image.html.erb
145
+ - app/views/lato_blog/back/post_fields/fields/_relay.html.erb
146
+ - app/views/lato_blog/back/post_fields/fields/_text.html.erb
147
+ - app/views/lato_blog/back/post_fields/index.html.erb
148
+ - app/views/lato_blog/back/posts/edit.html.erb
149
+ - app/views/lato_blog/back/posts/index.html.erb
150
+ - app/views/lato_blog/back/posts/new.html.erb
151
+ - app/views/lato_blog/back/posts/shared/_fields.html.erb
152
+ - app/views/lato_blog/back/posts/shared/_form.html.erb
153
+ - app/views/lato_blog/back/posts/shared/edit/_edit_categories.html.erb
154
+ - app/views/lato_blog/back/posts/shared/edit/_edit_informations.html.erb
155
+ - app/views/lato_blog/back/posts/shared/edit/_edit_languages.html.erb
156
+ - app/views/lato_blog/back/posts/shared/edit/_edit_pubblication_datetime.html.erb
157
+ - app/views/lato_blog/back/posts/shared/edit/_edit_status_switch.html.erb
158
+ - app/views/lato_blog/back/posts/shared/index/_index.html.erb
159
+ - app/views/lato_blog/back/posts/shared/index/_index_informations.html.erb
160
+ - app/views/lato_blog/back/posts/shared/index/_index_status_switch.html.erb
161
+ - app/views/lato_blog/back/posts/shared/new/_new_informations.html.erb
162
+ - app/views/lato_blog/doc/doc/index.html.erb
163
+ - app/views/lato_blog/doc/fields/composed.html.erb
164
+ - app/views/lato_blog/doc/fields/datetime.html.erb
165
+ - app/views/lato_blog/doc/fields/editor.html.erb
166
+ - app/views/lato_blog/doc/fields/geolocalization.html.erb
167
+ - app/views/lato_blog/doc/fields/image.html.erb
168
+ - app/views/lato_blog/doc/fields/relay.html.erb
169
+ - app/views/lato_blog/doc/fields/text.html.erb
170
+ - app/views/lato_blog/doc/general/api.html.erb
171
+ - app/views/lato_blog/doc/general/installation.html.erb
172
+ - app/views/lato_blog/doc/general/personalization.html.erb
173
+ - app/views/lato_blog/partials/_relay_destroy_button.html.erb
174
+ - app/views/lato_blog/widgets/_switchlang.html.erb
175
+ - config/configs.yml
176
+ - config/initializers/assets.rb
177
+ - config/initializers/init_system.rb
178
+ - config/languages/default.yml
179
+ - config/languages/it.yml
180
+ - config/routes.rb
181
+ - config/routes/api.rb
182
+ - config/routes/back.rb
183
+ - config/routes/doc.rb
184
+ - db/migrate/20170504222008_create_lato_blog_posts.rb
185
+ - db/migrate/20170504223521_create_lato_blog_post_parents.rb
186
+ - db/migrate/20170516063317_create_lato_blog_categories.rb
187
+ - db/migrate/20170516063320_create_lato_blog_category_parents.rb
188
+ - db/migrate/20170516063330_create_lato_blog_category_posts.rb
189
+ - db/migrate/20170516063330_create_lato_blog_post_fields.rb
190
+ - lib/lato_blog.rb
191
+ - lib/lato_blog/engine.rb
192
+ - lib/lato_blog/interface.rb
193
+ - lib/lato_blog/interfaces/categories.rb
194
+ - lib/lato_blog/interfaces/fields.rb
195
+ - lib/lato_blog/interfaces/languages.rb
196
+ - lib/lato_blog/interfaces/posts.rb
197
+ - lib/lato_blog/version.rb
198
+ - lib/tasks/lato_blog_tasks.rake
199
+ homepage: http://naturaldesign.cc/
200
+ licenses:
201
+ - MIT
202
+ metadata: {}
203
+ post_install_message:
204
+ rdoc_options: []
205
+ require_paths:
206
+ - lib
207
+ required_ruby_version: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
212
+ required_rubygems_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ requirements: []
218
+ rubyforge_project:
219
+ rubygems_version: 2.6.12
220
+ signing_key:
221
+ specification_version: 4
222
+ summary: Lato blog module
223
+ test_files: []