lato_blog 2.1

Sign up to get free protection for your applications and to get access to all the features.
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: []