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,87 @@
1
+ <%
2
+ row = cell(:elements, :row).new
3
+ block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
4
+ code = cell(:elements, :code).new
5
+ %>
6
+
7
+ <!-- PRESENTATION -->
8
+ <%=raw row.open %>
9
+
10
+ <%=raw block.open %>
11
+
12
+ <%=raw cell(:elements, :title).new(label: 'Fields: Composed') %>
13
+
14
+ <p>A field used to group other fields.</p>
15
+
16
+ <%=raw block.close %>
17
+
18
+ <%=raw row.close %>
19
+ <!-- / PRESENTATION -->
20
+
21
+ <!-- CONFIGURATION SECTION -->
22
+ <%=raw row.open %>
23
+
24
+ <%=raw block.open %>
25
+
26
+ <%=raw cell(:elements, :title).new(label: 'Configuration', size: 4) %>
27
+
28
+ <p>
29
+ The configuration option should be:
30
+ </p>
31
+
32
+ <%=raw code.open %>
33
+
34
+ field_key:
35
+ type: composed
36
+ position: 1
37
+
38
+ <%=raw code.close %>
39
+
40
+ <p>
41
+ You can set a custom label with a label option:
42
+ </p>
43
+
44
+ <%=raw code.open %>
45
+
46
+ field_key:
47
+ type: composed
48
+ position: 1
49
+ label: Insert here the text
50
+
51
+ <%=raw code.close %>
52
+
53
+ <p>
54
+ You can set a custom classes for the input with the class option:
55
+ </p>
56
+
57
+ <%=raw code.open %>
58
+
59
+ field_key:
60
+ type: composed
61
+ position: 1
62
+ class: xs-12 sm-12 md-6 lg-6
63
+
64
+ <%=raw code.close %>
65
+
66
+
67
+ <p>
68
+ You can specify the list of fields for the composed field with the fields option:
69
+ </p>
70
+
71
+ <%=raw code.open %>
72
+
73
+ field_key:
74
+ type: composed
75
+ position: 1
76
+ fields:
77
+ field_key_1:
78
+ type: field_type
79
+ field_key_2:
80
+ type: field_type
81
+
82
+ <%=raw code.close %>
83
+
84
+ <%=raw block.close %>
85
+
86
+ <%=raw row.close %>
87
+ <!-- / CONFIGURATION SECTION -->
File without changes
@@ -0,0 +1 @@
1
+ <h1>TODO</h1>
@@ -0,0 +1 @@
1
+ <h1>TODO</h1>
@@ -0,0 +1,70 @@
1
+ <%
2
+ row = cell(:elements, :row).new
3
+ block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
4
+ code = cell(:elements, :code).new
5
+ %>
6
+
7
+ <!-- PRESENTATION -->
8
+ <%=raw row.open %>
9
+
10
+ <%=raw block.open %>
11
+
12
+ <%=raw cell(:elements, :title).new(label: 'Fields: Image') %>
13
+
14
+ <p>A normal image input.</p>
15
+
16
+ <%=raw block.close %>
17
+
18
+ <%=raw row.close %>
19
+ <!-- / PRESENTATION -->
20
+
21
+ <!-- CONFIGURATION SECTION -->
22
+ <%=raw row.open %>
23
+
24
+ <%=raw block.open %>
25
+
26
+ <%=raw cell(:elements, :title).new(label: 'Configuration', size: 4) %>
27
+
28
+ <p>
29
+ The configuration option should be:
30
+ </p>
31
+
32
+ <%=raw code.open %>
33
+
34
+ field_key:
35
+ type: image
36
+ position: 1
37
+
38
+ <%=raw code.close %>
39
+
40
+ <p>
41
+ You can set a custom label with a label option:
42
+ </p>
43
+
44
+ <%=raw code.open %>
45
+
46
+ field_key:
47
+ type: image
48
+ position: 1
49
+ label: Insert here the text
50
+
51
+ <%=raw code.close %>
52
+
53
+ <p>
54
+ You can set a custom classes for the input with the class option:
55
+ </p>
56
+
57
+ <%=raw code.open %>
58
+
59
+ field_key:
60
+ type: image
61
+ position: 1
62
+ class: xs-12 sm-12 md-6 lg-6
63
+
64
+ <%=raw code.close %>
65
+
66
+
67
+ <%=raw block.close %>
68
+
69
+ <%=raw row.close %>
70
+ <!-- / CONFIGURATION SECTION -->
@@ -0,0 +1,87 @@
1
+ <%
2
+ row = cell(:elements, :row).new
3
+ block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
4
+ code = cell(:elements, :code).new
5
+ %>
6
+
7
+ <!-- PRESENTATION -->
8
+ <%=raw row.open %>
9
+
10
+ <%=raw block.open %>
11
+
12
+ <%=raw cell(:elements, :title).new(label: 'Fields: Relay') %>
13
+
14
+ <p>A field used to group other fields and create new one at runtime.</p>
15
+
16
+ <%=raw block.close %>
17
+
18
+ <%=raw row.close %>
19
+ <!-- / PRESENTATION -->
20
+
21
+ <!-- CONFIGURATION SECTION -->
22
+ <%=raw row.open %>
23
+
24
+ <%=raw block.open %>
25
+
26
+ <%=raw cell(:elements, :title).new(label: 'Configuration', size: 4) %>
27
+
28
+ <p>
29
+ The configuration option should be:
30
+ </p>
31
+
32
+ <%=raw code.open %>
33
+
34
+ field_key:
35
+ type: relay
36
+ position: 1
37
+
38
+ <%=raw code.close %>
39
+
40
+ <p>
41
+ You can set a custom label with a label option:
42
+ </p>
43
+
44
+ <%=raw code.open %>
45
+
46
+ field_key:
47
+ type: relay
48
+ position: 1
49
+ label: Insert here the text
50
+
51
+ <%=raw code.close %>
52
+
53
+ <p>
54
+ You can set a custom classes for the input with the class option:
55
+ </p>
56
+
57
+ <%=raw code.open %>
58
+
59
+ field_key:
60
+ type: relay
61
+ position: 1
62
+ class: xs-12 sm-12 md-6 lg-6
63
+
64
+ <%=raw code.close %>
65
+
66
+
67
+ <p>
68
+ You can specify the list of fields for the relay field with the fields option:
69
+ </p>
70
+
71
+ <%=raw code.open %>
72
+
73
+ field_key:
74
+ type: relay
75
+ position: 1
76
+ fields:
77
+ field_key_1:
78
+ type: field_type
79
+ field_key_2:
80
+ type: field_type
81
+
82
+ <%=raw code.close %>
83
+
84
+ <%=raw block.close %>
85
+
86
+ <%=raw row.close %>
87
+ <!-- / CONFIGURATION SECTION -->
@@ -0,0 +1,70 @@
1
+ <%
2
+ row = cell(:elements, :row).new
3
+ block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
4
+ code = cell(:elements, :code).new
5
+ %>
6
+
7
+ <!-- PRESENTATION -->
8
+ <%=raw row.open %>
9
+
10
+ <%=raw block.open %>
11
+
12
+ <%=raw cell(:elements, :title).new(label: 'Fields: Text') %>
13
+
14
+ <p>A normal text input.</p>
15
+
16
+ <%=raw block.close %>
17
+
18
+ <%=raw row.close %>
19
+ <!-- / PRESENTATION -->
20
+
21
+ <!-- CONFIGURATION SECTION -->
22
+ <%=raw row.open %>
23
+
24
+ <%=raw block.open %>
25
+
26
+ <%=raw cell(:elements, :title).new(label: 'Configuration', size: 4) %>
27
+
28
+ <p>
29
+ The configuration option should be:
30
+ </p>
31
+
32
+ <%=raw code.open %>
33
+
34
+ field_key:
35
+ type: text
36
+ position: 1
37
+
38
+ <%=raw code.close %>
39
+
40
+ <p>
41
+ You can set a custom label with a label option:
42
+ </p>
43
+
44
+ <%=raw code.open %>
45
+
46
+ field_key:
47
+ type: text
48
+ position: 1
49
+ label: Insert here the text
50
+
51
+ <%=raw code.close %>
52
+
53
+ <p>
54
+ You can set a custom classes for the input with the class option:
55
+ </p>
56
+
57
+ <%=raw code.open %>
58
+
59
+ field_key:
60
+ type: text
61
+ position: 1
62
+ class: xs-12 sm-12 md-6 lg-6
63
+
64
+ <%=raw code.close %>
65
+
66
+
67
+ <%=raw block.close %>
68
+
69
+ <%=raw row.close %>
70
+ <!-- / CONFIGURATION SECTION -->
File without changes
@@ -0,0 +1,49 @@
1
+ <%
2
+ row = cell(:elements, :row).new
3
+ block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
4
+ code = cell(:elements, :code).new
5
+ %>
6
+
7
+ <!-- PRESENTATION -->
8
+ <%=raw row.open %>
9
+
10
+ <%=raw block.open %>
11
+
12
+ <%=raw cell(:elements, :title).new(label: 'General: Installation') %>
13
+
14
+ <p>Install Lato Blog is simple. First of all you need to add the gem on your gemfile:</p>
15
+
16
+ <%=raw code.open %>
17
+
18
+ gem 'lato_blog', git: 'https://github.com/ideonetwork/lato-blog'
19
+
20
+ <%=raw code.close %>
21
+
22
+ <p>Install the gem with bundle:</p>
23
+
24
+ <%=raw code.open %>
25
+
26
+ $> bundle install
27
+
28
+ <%=raw code.close %>
29
+
30
+ <p>Copy the Lato Blog migrations on your application:</p>
31
+
32
+ <%=raw code.open %>
33
+
34
+ $> rails lato_blog:install:migrations
35
+
36
+ <%=raw code.close %>
37
+
38
+ <p>Run the migrations:</p>
39
+
40
+ <%=raw code.open %>
41
+
42
+ $> bundle exec rake db:migrate
43
+
44
+ <%=raw code.close %>
45
+
46
+ <%=raw block.close %>
47
+
48
+ <%=raw row.close %>
49
+ <!-- / PRESENTATION -->
@@ -0,0 +1,5 @@
1
+ <a class="js-related-field__destroy is-first" data-method="post" data-remote="true" href="<%= lato_blog.post_fields_destroy_relay_field_path %>">
2
+ <svg width="64" height="80" viewBox="0 0 64 80" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="M25 0c-2.692 0-5 2.143-5 5v3H4c-2.181 0-4 1.819-4 4v10c0 2.181 1.819 4 4 4h2v50c0 2.181 1.819 4 4 4h44c2.181 0 4-1.819 4-4V26h2c2.181 0 4-1.819 4-4V12c0-2.181-1.819-4-4-4H44V5c0-2.857-2.308-5-5-5H25zm0 4h14c.33 0 1 .533 1 1v3H24V5c0-.467.67-1 1-1zM4 12h56v10H4V12zm6 14h44v50H10V26zm10 8c-1.105 0-2 .895-2 2v30c0 1.105.895 2 2 2s2-.895 2-2V36c0-1.105-.895-2-2-2zm12 0c-1.105 0-2 .895-2 2v30c0 1.105.895 2 2 2s2-.895 2-2V36c0-1.105-.895-2-2-2zm12 0c-1.105 0-2 .895-2 2v30c0 1.105.895 2 2 2s2-.895 2-2V36c0-1.105-.895-2-2-2z" fill-rule="nonzero" fill="#000"/>
4
+ </svg>
5
+ </a>
@@ -0,0 +1,20 @@
1
+ <div class="widgets-systeminfo">
2
+
3
+ <%=raw cell(:elements, :title).new(label: LANGUAGES[:lato_blog][:mixed][:languages], size: 6) %>
4
+
5
+ <% languages = CONFIGS[:lato_blog][:languages].values %>
6
+
7
+ <% languages.each do |language| %>
8
+
9
+ <%
10
+ check = cookies[:lato_blog__current_language] === language[:identifier]
11
+ style = ( check ? 'success' : '')
12
+ icon = ( check ? 'check' : '')
13
+ %>
14
+
15
+ <%=raw cell(:elements, :button).new(label: language[:title], style: style, icon: icon,
16
+ url: lato_blog.switch_current_language_path(language: language[:identifier]), remote: true) %>
17
+
18
+ <% end %>
19
+
20
+ </div>
@@ -0,0 +1,109 @@
1
+ # This file contain all settings for the blog module.
2
+
3
+ # set languages for posts. -> One language is necessary.
4
+ languages:
5
+ language_en:
6
+ identifier: en
7
+ title: English
8
+ language_it:
9
+ identifier: it
10
+ title: Italiano
11
+
12
+ # set post fields for posts.
13
+ post_fields:
14
+ relay:
15
+ type: relay
16
+ position: 1
17
+ label: Custom fields
18
+ class: xs-12 sm-12 md-12 lg-12
19
+ fields:
20
+ text:
21
+ type: text
22
+ label: Text
23
+ image:
24
+ type: image
25
+ label: Image
26
+ editor:
27
+ type: editor
28
+ label: Editor
29
+ geolocalization:
30
+ type: geolocalization
31
+ label: Geolocalization
32
+ datetime:
33
+ type: datetime
34
+ label: Datetime
35
+ composed:
36
+ type: composed
37
+ label: Composed
38
+ fields:
39
+ text1:
40
+ type: text
41
+ label: Text 1
42
+ class: xs-12 sm-12 md-6 lg-6
43
+ text2:
44
+ type: text
45
+ label: Text 1
46
+ class: xs-12 sm-12 md-6 lg-6
47
+
48
+ # hide post default fields
49
+ post_hidden_fields: [] # possible values: ['subtitle', 'content', 'excerpt']
50
+
51
+ # set menu for the module.
52
+ menu:
53
+ blog_articles:
54
+ icon: newspaper-o
55
+ title: translate[posts]
56
+ url: /lato/blog/posts
57
+ position: 3
58
+ permission_min: 0
59
+ permission_max: 99
60
+ sub_items:
61
+ new:
62
+ title: translate[posts_new]
63
+ url: /lato/blog/posts/new
64
+ permission_min: 0
65
+ permission_max: 99
66
+ all:
67
+ title: translate[posts_index]
68
+ url: /lato/blog/posts
69
+ permission_min: 0
70
+ permission_max: 99
71
+ categories:
72
+ title: translate[posts_categories]
73
+ url: /lato/blog/categories
74
+ permission_min: 0
75
+ permission_max: 99
76
+ fields:
77
+ title: translate[post_fields]
78
+ url: /lato/blog/post_fields
79
+ permission_min: 0
80
+ permission_max: 99
81
+ blog_documentation:
82
+ icon: book
83
+ title: translate[documentation]
84
+ url: /lato/blog/doc
85
+ position: 1002
86
+ permission_min: 4
87
+ permission_max: 99
88
+
89
+ # set assets for the module. -> Please, do not edit default assets.
90
+ assets:
91
+ blog_style:
92
+ path: lato_blog/application
93
+ type: stylesheet
94
+ blog_script:
95
+ path: lato_blog/application
96
+ type: javascript
97
+
98
+ # set widgets for the module. -> Please, do not edit default widgets.
99
+ widgets:
100
+ blog_switch_lang:
101
+ icon: flag
102
+ path: lato_blog/widgets/switchlang
103
+ position: 11
104
+
105
+ # set partials added at the end of the layout.
106
+ partials:
107
+ blog_relay_destroy_button:
108
+ path: lato_blog/partials/relay_destroy_button
109
+ position: 11