elabs 4.0.0 → 5.0.0

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 (313) hide show
  1. checksums.yaml +4 -4
  2. data/.gitlab-ci.yml +9 -0
  3. data/.node-version +1 -1
  4. data/.rubocop.yml +4 -0
  5. data/.stylelintrc.yml +12 -2
  6. data/CHANGELOG.md +81 -12
  7. data/Gemfile +1 -1
  8. data/Gemfile.lock +96 -94
  9. data/README.md +2 -0
  10. data/ROADMAP.md +4 -2
  11. data/app/assets/config/elabs_manifest.js +2 -1
  12. data/app/assets/fonts/elabs/FontAwesome/fa-brands-400.eot +0 -0
  13. data/app/assets/fonts/elabs/FontAwesome/fa-brands-400.svg +1148 -0
  14. data/app/assets/fonts/elabs/FontAwesome/fa-brands-400.ttf +0 -0
  15. data/app/assets/fonts/elabs/FontAwesome/fa-brands-400.woff +0 -0
  16. data/app/assets/fonts/elabs/FontAwesome/fa-brands-400.woff2 +0 -0
  17. data/app/assets/fonts/elabs/FontAwesome/fa-regular-400.eot +0 -0
  18. data/app/assets/fonts/elabs/FontAwesome/fa-regular-400.svg +467 -0
  19. data/app/assets/fonts/elabs/FontAwesome/fa-regular-400.ttf +0 -0
  20. data/app/assets/fonts/elabs/FontAwesome/fa-regular-400.woff +0 -0
  21. data/app/assets/fonts/elabs/FontAwesome/fa-regular-400.woff2 +0 -0
  22. data/app/assets/fonts/elabs/FontAwesome/fa-solid-900.eot +0 -0
  23. data/app/assets/fonts/elabs/FontAwesome/fa-solid-900.svg +2231 -0
  24. data/app/assets/fonts/elabs/FontAwesome/fa-solid-900.ttf +0 -0
  25. data/app/assets/fonts/elabs/FontAwesome/fa-solid-900.woff +0 -0
  26. data/app/assets/fonts/elabs/FontAwesome/fa-solid-900.woff2 +0 -0
  27. data/app/assets/fonts/elabs/OpenSans/Apache License.txt +201 -0
  28. data/app/assets/fonts/elabs/OpenSans/OpenSans-Bold.ttf +0 -0
  29. data/app/assets/fonts/elabs/OpenSans/OpenSans-Light.ttf +0 -0
  30. data/app/assets/fonts/elabs/OpenSans/OpenSans-Regular.ttf +0 -0
  31. data/app/assets/fonts/elabs/OpenSans/OpenSans-Semibold.ttf +0 -0
  32. data/app/assets/fonts/elabs/license-icons/license-icons.eot +0 -0
  33. data/app/assets/fonts/elabs/license-icons/license-icons.svg +51 -0
  34. data/app/assets/fonts/elabs/license-icons/license-icons.ttf +0 -0
  35. data/app/assets/fonts/elabs/license-icons/license-icons.woff +0 -0
  36. data/app/assets/fonts/elabs/license-icons/license-icons.woff2 +0 -0
  37. data/app/assets/images/elabs/preview_placeholder.png +0 -0
  38. data/app/assets/images/elabs/preview_placeholder_nsfw.png +0 -0
  39. data/app/assets/javascripts/elabs/announcements.js +33 -0
  40. data/app/assets/javascripts/elabs/application.js.erb +17 -14
  41. data/app/assets/javascripts/elabs/forms.js +0 -1
  42. data/app/assets/javascripts/elabs/helpers-markdown.js +2 -2
  43. data/app/assets/javascripts/elabs/helpers.js +17 -0
  44. data/app/assets/javascripts/elabs/menu.js +5 -0
  45. data/app/assets/stylesheets/elabs/_fonts.scss +32 -0
  46. data/app/assets/stylesheets/elabs/_variables.scss +286 -5
  47. data/app/assets/stylesheets/elabs/app/components/_act.scss +83 -0
  48. data/app/assets/stylesheets/elabs/app/components/_announcement.scss +41 -0
  49. data/app/assets/stylesheets/elabs/app/components/_classifier_types.scss +43 -0
  50. data/app/assets/stylesheets/elabs/app/components/_comment.scss +29 -0
  51. data/app/assets/stylesheets/elabs/app/components/_content_relations.scss +53 -0
  52. data/app/assets/stylesheets/elabs/app/components/_content_statuses.scss +39 -0
  53. data/app/assets/stylesheets/elabs/app/components/_content_types.scss +41 -0
  54. data/app/assets/stylesheets/elabs/app/components/_git_cards.scss +122 -0
  55. data/app/assets/stylesheets/elabs/app/elements/_alerts.scss +3 -0
  56. data/app/assets/stylesheets/elabs/app/elements/_badges.scss +17 -0
  57. data/app/assets/stylesheets/elabs/app/elements/_buttons.scss +34 -0
  58. data/app/assets/stylesheets/elabs/app/elements/_dropdowns.scss +78 -0
  59. data/app/assets/stylesheets/elabs/app/elements/_empty.scss +31 -0
  60. data/app/assets/stylesheets/elabs/app/elements/_errors.scss +15 -0
  61. data/app/assets/stylesheets/elabs/app/elements/_filter_link.scss +23 -0
  62. data/app/assets/stylesheets/elabs/app/elements/_fixed_links.scss +19 -0
  63. data/app/assets/stylesheets/elabs/app/elements/_forms.scss +123 -0
  64. data/app/assets/stylesheets/elabs/app/elements/_icons.scss +74 -0
  65. data/app/assets/stylesheets/elabs/app/{_medias.scss → elements/_medias.scss} +2 -0
  66. data/app/assets/stylesheets/elabs/app/{_modals.scss → elements/_modals.scss} +8 -4
  67. data/app/assets/stylesheets/elabs/app/elements/_nsfw.scss +41 -0
  68. data/app/assets/stylesheets/elabs/app/{_pagination.scss → elements/_pagination.scss} +0 -0
  69. data/app/assets/stylesheets/elabs/app/{_tables.scss → elements/_tables.scss} +2 -2
  70. data/app/assets/stylesheets/elabs/app/elements/_tabs.scss +73 -0
  71. data/app/assets/stylesheets/elabs/app/helpers/_cards.scss +80 -0
  72. data/app/assets/stylesheets/elabs/app/helpers/_containers.scss +7 -0
  73. data/app/assets/stylesheets/elabs/app/helpers/_states.scss +3 -0
  74. data/app/assets/stylesheets/elabs/app/{_helpers.scss → helpers/_typo.scss} +6 -4
  75. data/app/assets/stylesheets/elabs/app/layouts/_acts.scss +25 -0
  76. data/app/assets/stylesheets/elabs/app/layouts/_classifiers.scss +32 -0
  77. data/app/assets/stylesheets/elabs/app/{_comments.scss → layouts/_comments.scss} +0 -2
  78. data/app/assets/stylesheets/elabs/app/layouts/_devise.scss +65 -0
  79. data/app/assets/stylesheets/elabs/app/layouts/_layout.scss +40 -0
  80. data/app/assets/stylesheets/elabs/app/layouts/_page.scss +14 -0
  81. data/app/assets/stylesheets/elabs/app/layouts/_page_content.scss +13 -0
  82. data/app/assets/stylesheets/elabs/app/layouts/_page_footer.scss +20 -0
  83. data/app/assets/stylesheets/elabs/app/layouts/_page_header.scss +146 -0
  84. data/app/assets/stylesheets/elabs/app/layouts/_page_menu.scss +232 -0
  85. data/app/assets/stylesheets/elabs/app/layouts/_page_messages.scss +4 -0
  86. data/app/assets/stylesheets/elabs/app/layouts/_private_layout.scss +78 -0
  87. data/app/assets/stylesheets/elabs/app/{_typo.scss → layouts/_typo.scss} +3 -0
  88. data/app/assets/stylesheets/elabs/app/mixins/_classifier_card.scss +43 -0
  89. data/app/assets/stylesheets/elabs/app/mixins/_content_card.scss +103 -0
  90. data/app/assets/stylesheets/elabs/app/mixins/_content_full.scss +158 -0
  91. data/app/assets/stylesheets/elabs/app/mixins/{_content-inline.scss → _content_inline.scss} +0 -0
  92. data/app/assets/stylesheets/elabs/lib/_codemirror.scss +2 -2
  93. data/app/assets/stylesheets/elabs/{_colors.scss → lib/_colors_reference.scss} +0 -52
  94. data/app/assets/stylesheets/elabs/lib/_license_icons.scss +121 -0
  95. data/app/assets/stylesheets/elabs/lib/fontawesome/_fontawesome.scss +1 -1
  96. data/app/assets/stylesheets/elabs/lib/fontawesome/_fonts.scss +18 -18
  97. data/app/assets/stylesheets/elabs/lib/knacss/_knacss.scss +1 -1
  98. data/app/assets/stylesheets/elabs/lib/knacss/_knacss_variables.scss +227 -0
  99. data/app/assets/stylesheets/elabs/style.scss +62 -57
  100. data/app/controllers/elabs/admin/admin_application_controller.rb +1 -1
  101. data/app/controllers/elabs/admin/announcements_controller.rb +71 -0
  102. data/app/controllers/elabs/concerns/elabs_controller.rb +3 -0
  103. data/app/controllers/elabs/content_application_controller.rb +4 -0
  104. data/app/controllers/elabs/elabs_public_controller.rb +15 -0
  105. data/app/controllers/elabs/languages_controller.rb +1 -5
  106. data/app/controllers/elabs/member/comments_controller.rb +42 -0
  107. data/app/controllers/elabs/member/member_application_controller.rb +1 -1
  108. data/app/controllers/elabs/reports_controller.rb +2 -0
  109. data/app/helpers/elabs/acts_helper.rb +7 -2
  110. data/app/helpers/elabs/application_helper.rb +8 -50
  111. data/app/helpers/elabs/content_filters_helper.rb +17 -24
  112. data/app/helpers/elabs/content_helper.rb +8 -35
  113. data/app/helpers/elabs/content_renderer_helper.rb +4 -112
  114. data/app/helpers/elabs/form_helper.rb +11 -11
  115. data/app/helpers/elabs/icons_helper.rb +63 -0
  116. data/app/helpers/elabs/{admin_content_helper.rb → links_admin_helper.rb} +1 -1
  117. data/app/helpers/elabs/links_helper.rb +58 -0
  118. data/app/helpers/elabs/{member_content_helper.rb → links_member_helper.rb} +2 -2
  119. data/app/helpers/elabs/notification_helper.rb +17 -3
  120. data/app/helpers/elabs/shortcodes_helper.rb +108 -0
  121. data/app/helpers/elabs/thumbnails_helper.rb +1 -1
  122. data/app/models/elabs/album.rb +14 -0
  123. data/app/models/elabs/announcement.rb +33 -0
  124. data/app/models/elabs/article.rb +14 -0
  125. data/app/models/elabs/comment.rb +10 -4
  126. data/app/models/elabs/note.rb +14 -0
  127. data/app/models/elabs/project.rb +12 -0
  128. data/app/models/elabs/report.rb +1 -0
  129. data/app/models/elabs/upload.rb +16 -0
  130. data/app/models/elabs/user.rb +2 -1
  131. data/app/views/elabs/acts/_filters.html.haml +3 -2
  132. data/app/views/elabs/acts/index.html.haml +2 -13
  133. data/app/views/elabs/admin/announcements/_announcement.json.jbuilder +10 -0
  134. data/app/views/elabs/admin/announcements/_form.html.haml +52 -0
  135. data/app/views/elabs/admin/announcements/edit.html.haml +3 -0
  136. data/app/views/elabs/admin/announcements/index.html.haml +28 -0
  137. data/app/views/elabs/admin/announcements/index.json.jbuilder +1 -0
  138. data/app/views/elabs/admin/announcements/new.html.haml +3 -0
  139. data/app/views/elabs/admin/licenses/index.html.haml +2 -2
  140. data/app/views/elabs/admin/uploads/_upload.json.jbuilder +3 -3
  141. data/app/views/elabs/albums/_card_content.html.haml +8 -0
  142. data/app/views/elabs/albums/_filters.html.haml +5 -3
  143. data/app/views/elabs/albums/index.html.haml +1 -1
  144. data/app/views/elabs/albums/show.html.haml +38 -29
  145. data/app/views/elabs/articles/_filters.html.haml +5 -3
  146. data/app/views/elabs/articles/index.html.haml +1 -1
  147. data/app/views/elabs/articles/show.html.haml +33 -25
  148. data/app/views/elabs/auth/confirmations/new.html.haml +1 -1
  149. data/app/views/elabs/auth/passwords/edit.html.haml +1 -1
  150. data/app/views/elabs/auth/passwords/new.html.haml +1 -1
  151. data/app/views/elabs/auth/registrations/new.html.haml +7 -2
  152. data/app/views/elabs/auth/sessions/_new.html.haml +1 -1
  153. data/app/views/elabs/auth/unlocks/new.html.haml +1 -1
  154. data/app/views/elabs/comments/_comments.html.haml +29 -20
  155. data/app/views/elabs/comments/_form.html.haml +40 -36
  156. data/app/views/elabs/languages/_filters.html.haml +3 -5
  157. data/app/views/elabs/languages/index.html.haml +12 -13
  158. data/app/views/elabs/languages/show.html.haml +36 -31
  159. data/app/views/elabs/layouts/_announcements.html.haml +9 -0
  160. data/app/views/elabs/layouts/_content_associations.html.haml +89 -0
  161. data/app/views/elabs/layouts/_content_card.html.haml +41 -0
  162. data/app/views/elabs/layouts/_flash_messages.html.haml +4 -0
  163. data/app/views/elabs/layouts/_footer.html.haml +18 -10
  164. data/app/views/elabs/layouts/_form_honeypot.html.haml +12 -0
  165. data/app/views/elabs/layouts/_hidden_entry.html.haml +1 -1
  166. data/app/views/elabs/layouts/_hidden_entry_full.html.haml +4 -2
  167. data/app/views/elabs/layouts/_hidden_entry_inline.html.haml +1 -1
  168. data/app/views/elabs/layouts/_language_menu.html.haml +2 -2
  169. data/app/views/elabs/layouts/_menu.html.haml +58 -75
  170. data/app/views/elabs/layouts/_menu_admin.html.haml +40 -0
  171. data/app/views/elabs/layouts/_menu_member.html.haml +57 -0
  172. data/app/views/elabs/layouts/application.html.haml +24 -13
  173. data/app/views/elabs/layouts/application_admin.html.haml +33 -0
  174. data/app/views/elabs/layouts/application_member.html.haml +36 -0
  175. data/app/views/elabs/layouts/{lists → content_classifiers_lists}/_albums.html.haml +0 -0
  176. data/app/views/elabs/layouts/{lists → content_classifiers_lists}/_projects.html.haml +0 -0
  177. data/app/views/elabs/layouts/{lists → content_classifiers_lists}/_tags.html.haml +0 -0
  178. data/app/views/elabs/layouts/{_shortcode_infinite_loop.html.haml → shortcodes/_infinite_loop.html.haml} +1 -1
  179. data/app/views/elabs/layouts/{_shortcode_infinite_loop_inline.html.haml → shortcodes/_infinite_loop_inline.html.haml} +0 -0
  180. data/app/views/elabs/layouts/{_shortcode_missing_content.html.haml → shortcodes/_missing_content.html.haml} +1 -1
  181. data/app/views/elabs/layouts/{_shortcode_missing_content_inline.html.haml → shortcodes/_missing_content_inline.html.haml} +0 -0
  182. data/app/views/elabs/layouts/shortcodes/_open_to_see.html.haml +2 -0
  183. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/_github_repo_card.html.haml +1 -1
  184. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/_github_repo_inline.html.haml +0 -0
  185. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/_github_user_card.html.haml +0 -0
  186. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/_gitlab_group_card.html.haml +1 -1
  187. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/_gitlab_repo_card.html.haml +1 -1
  188. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/_gitlab_repo_inline.html.haml +0 -0
  189. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/_gitlab_user_card.html.haml +1 -1
  190. data/app/views/elabs/layouts/shortcodes/widgets/vue/_all_widgets.html.haml +5 -0
  191. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/vue/_github_repo_card_vue.html.haml +8 -8
  192. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/vue/_github_user_card_vue.html.haml +5 -5
  193. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/vue/_gitlab_group_card_vue.html.haml +5 -5
  194. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/vue/_gitlab_repo_card_vue.html.haml +8 -8
  195. data/app/views/elabs/layouts/{widgets → shortcodes/widgets}/vue/_gitlab_user_card_vue.html.haml +4 -4
  196. data/app/views/elabs/licenses/_filters.html.haml +3 -2
  197. data/app/views/elabs/licenses/index.html.haml +14 -12
  198. data/app/views/elabs/licenses/show.html.haml +40 -34
  199. data/app/views/elabs/member/albums/_form.html.haml +1 -43
  200. data/app/views/elabs/member/articles/_form.html.haml +1 -39
  201. data/app/views/elabs/member/layouts/_form_commons.html.haml +55 -0
  202. data/app/views/elabs/member/notes/_form.html.haml +1 -39
  203. data/app/views/elabs/member/preferences/edit.html.haml +1 -2
  204. data/app/views/elabs/member/projects/_form.html.haml +3 -38
  205. data/app/views/elabs/member/uploads/_form.html.haml +1 -42
  206. data/app/views/elabs/member/uploads/_upload.json.jbuilder +3 -3
  207. data/app/views/elabs/member/users/edit.html.haml +3 -4
  208. data/app/views/elabs/notes/_filters.html.haml +5 -3
  209. data/app/views/elabs/notes/index.html.haml +1 -1
  210. data/app/views/elabs/notes/show.html.haml +33 -25
  211. data/app/views/elabs/projects/_filters.html.haml +5 -3
  212. data/app/views/elabs/projects/index.html.haml +1 -1
  213. data/app/views/elabs/projects/show.html.haml +68 -62
  214. data/app/views/elabs/reports/_form.html.haml +2 -0
  215. data/app/views/elabs/tags/_filters.html.haml +3 -2
  216. data/app/views/elabs/tags/index.html.haml +11 -11
  217. data/app/views/elabs/tags/show.html.haml +31 -28
  218. data/app/views/elabs/uploads/_filters.html.haml +5 -3
  219. data/app/views/elabs/uploads/_preview.html.haml +5 -4
  220. data/app/views/elabs/uploads/_thumbnail.html.haml +9 -0
  221. data/app/views/elabs/uploads/_upload.json.jbuilder +3 -3
  222. data/app/views/elabs/uploads/index.html.haml +1 -1
  223. data/app/views/elabs/uploads/show.html.haml +45 -39
  224. data/app/views/elabs/users/_filters.html.haml +3 -2
  225. data/app/views/elabs/users/_user.html.haml +3 -3
  226. data/app/views/elabs/users/show.html.haml +48 -43
  227. data/config/routes.rb +13 -8
  228. data/db/migrate/20181025084232_add_archived_field_to_comments.rb +5 -0
  229. data/db/migrate/20181026071743_delete_comment_notifications.rb +5 -0
  230. data/db/migrate/20181030063505_create_announcements.rb +14 -0
  231. data/docs/CODEOWNERS +10 -0
  232. data/docs/migrating.md +16 -1
  233. data/docs/shortcodes_guide.md +51 -0
  234. data/lib/assets/javascripts/README-highlight.js.md +5 -5
  235. data/lib/assets/javascripts/highlight.js-9.13.1/highlight.pack.js +2 -0
  236. data/lib/assets/stylesheets/{highlight.js-9.12.0 → highlight.js-9.13.1}/styles/atelier-sulphurpool-light.css +0 -0
  237. data/lib/elabs.rb +8 -0
  238. data/lib/elabs/version.rb +1 -1
  239. data/lib/generators/elabs/{devise_views_generator.rb → devise_mailer_views_generator.rb} +2 -2
  240. data/lib/generators/elabs/images_generator.rb +24 -0
  241. data/lib/generators/elabs/required_assets_generator.rb +0 -2
  242. data/lib/generators/templates/elabs.rb +3 -0
  243. data/locale/app.pot +132 -19
  244. data/locale/en/app.edit.po +130 -17
  245. data/locale/en/app.po +130 -17
  246. data/locale/fr/app.edit.po +145 -28
  247. data/locale/fr/app.po +141 -27
  248. data/package.json +10 -12
  249. data/yarn.lock +885 -668
  250. metadata +136 -97
  251. data/app/assets/stylesheets/elabs/_icons.scss +0 -17
  252. data/app/assets/stylesheets/elabs/app/_acts.scss +0 -69
  253. data/app/assets/stylesheets/elabs/app/_alerts.scss +0 -3
  254. data/app/assets/stylesheets/elabs/app/_badges.scss +0 -11
  255. data/app/assets/stylesheets/elabs/app/_buttons.scss +0 -29
  256. data/app/assets/stylesheets/elabs/app/_content.scss +0 -25
  257. data/app/assets/stylesheets/elabs/app/_content_statuses.scss +0 -32
  258. data/app/assets/stylesheets/elabs/app/_content_uploads.scss +0 -39
  259. data/app/assets/stylesheets/elabs/app/_empty.scss +0 -19
  260. data/app/assets/stylesheets/elabs/app/_errors.scss +0 -9
  261. data/app/assets/stylesheets/elabs/app/_filter_links.scss +0 -27
  262. data/app/assets/stylesheets/elabs/app/_forms.scss +0 -74
  263. data/app/assets/stylesheets/elabs/app/_languages.scss +0 -6
  264. data/app/assets/stylesheets/elabs/app/_layout.scss +0 -206
  265. data/app/assets/stylesheets/elabs/app/_licenses.scss +0 -6
  266. data/app/assets/stylesheets/elabs/app/_link-to-top.scss +0 -8
  267. data/app/assets/stylesheets/elabs/app/_tabs.scss +0 -54
  268. data/app/assets/stylesheets/elabs/app/_tags.scss +0 -6
  269. data/app/assets/stylesheets/elabs/app/_toolbars.scss +0 -3
  270. data/app/assets/stylesheets/elabs/app/_users.scss +0 -21
  271. data/app/assets/stylesheets/elabs/app/admin-members/_forms.scss +0 -13
  272. data/app/assets/stylesheets/elabs/app/admin-members/_indexes.scss +0 -46
  273. data/app/assets/stylesheets/elabs/app/admin-members/_layout.scss +0 -17
  274. data/app/assets/stylesheets/elabs/app/areas/_devise.scss +0 -31
  275. data/app/assets/stylesheets/elabs/app/components/_cards.scss +0 -16
  276. data/app/assets/stylesheets/elabs/app/components/_container.scss +0 -4
  277. data/app/assets/stylesheets/elabs/app/mixins/_classifier-card.scss +0 -16
  278. data/app/assets/stylesheets/elabs/app/mixins/_content-card.scss +0 -72
  279. data/app/assets/stylesheets/elabs/app/mixins/_content-full.scss +0 -77
  280. data/app/assets/stylesheets/elabs/app/widgets/_git-cards.scss +0 -88
  281. data/app/assets/stylesheets/elabs/lib/fontawesome/_icons.scss +0 -1118
  282. data/app/assets/stylesheets/elabs/lib/knacss/_knacss-variables.scss +0 -239
  283. data/app/views/elabs/albums/_album.html.haml +0 -38
  284. data/app/views/elabs/articles/_article.html.haml +0 -30
  285. data/app/views/elabs/languages/_associations.html.haml +0 -61
  286. data/app/views/elabs/layouts/_shortcode_open_to_see.html.haml +0 -2
  287. data/app/views/elabs/layouts/admin_application.html.haml +0 -21
  288. data/app/views/elabs/layouts/member_application.html.haml +0 -24
  289. data/app/views/elabs/layouts/widgets/vue/_all_widgets.html.haml +0 -5
  290. data/app/views/elabs/licenses/_associations.html.haml +0 -61
  291. data/app/views/elabs/notes/_note.html.haml +0 -31
  292. data/app/views/elabs/projects/_associations.html.haml +0 -54
  293. data/app/views/elabs/projects/_project.html.haml +0 -29
  294. data/app/views/elabs/tags/_associations.html.haml +0 -61
  295. data/app/views/elabs/uploads/_upload.html.haml +0 -41
  296. data/app/views/elabs/users/_associations.html.haml +0 -61
  297. data/db/seeds.rb +0 -10
  298. data/db/seeds_development.rb +0 -21
  299. data/db/seeds_production.rb +0 -0
  300. data/lib/assets/javascripts/codemirror-5.39.2/addon/mode/overlay.js +0 -90
  301. data/lib/assets/javascripts/codemirror-5.39.2/lib/codemirror.js +0 -9684
  302. data/lib/assets/javascripts/codemirror-5.39.2/mode/clike/clike.js +0 -834
  303. data/lib/assets/javascripts/codemirror-5.39.2/mode/css/css.js +0 -832
  304. data/lib/assets/javascripts/codemirror-5.39.2/mode/gfm/gfm.js +0 -129
  305. data/lib/assets/javascripts/codemirror-5.39.2/mode/htmlmixed/htmlmixed.js +0 -152
  306. data/lib/assets/javascripts/codemirror-5.39.2/mode/javascript/javascript.js +0 -896
  307. data/lib/assets/javascripts/codemirror-5.39.2/mode/markdown/markdown.js +0 -882
  308. data/lib/assets/javascripts/codemirror-5.39.2/mode/meta.js +0 -217
  309. data/lib/assets/javascripts/codemirror-5.39.2/mode/xml/xml.js +0 -402
  310. data/lib/assets/javascripts/highlight.js-9.12.0/highlight.pack.js +0 -2
  311. data/lib/assets/stylesheets/codemirror-5.39.2/lib/codemirror.css +0 -346
  312. data/lib/assets/stylesheets/codemirror-5.39.2/theme/base16-dark.css +0 -38
  313. data/lib/assets/stylesheets/codemirror-5.39.2/theme/base16-light.css +0 -38
@@ -0,0 +1,55 @@
1
+ :ruby
2
+ has_albums = false if has_albums.nil?
3
+ has_projects = true if has_projects.nil?
4
+ has_uploads = false if has_uploads.nil?
5
+
6
+ .field
7
+ .field-input
8
+ = form.check_box :sfw
9
+ = form.label :sfw
10
+ .field
11
+ .field-input
12
+ = form.check_box :published
13
+ = form.label :published
14
+ .field
15
+ .field-input
16
+ = form.check_box :hidden_in_history
17
+ = form.label :hidden_in_history
18
+ .field
19
+ = form.label :license
20
+ .field-input= license_selector form
21
+ .field
22
+ = form.label :language
23
+ .field-input= language_selector form
24
+ - if has_uploads
25
+ .field
26
+ = form.label :uploads
27
+ .field-input= uploads_selector form
28
+ - if has_projects
29
+ .field
30
+ = form.label :projects
31
+ .field-input= projects_selector form
32
+ - if has_albums
33
+ .field
34
+ = form.label :albums
35
+ .field-input= album_selector form
36
+ .field
37
+ = form.label :tags, for: :tags_list
38
+ .field-input
39
+ = form.text_field :tags_list
40
+ .field-hint= _('List of comma-separated tags')
41
+
42
+ .actions
43
+ - if entity.id
44
+ .field
45
+ .field-input
46
+ = form.check_box :minor_update,
47
+ onchange: "toggleUpdateMessageField(event, '#{entity.class.table_name.singularize}_update_description')"
48
+ = form.label :minor_update, _('This is a minor edition')
49
+ .field
50
+ = form.label :update_description, _('Update message')
51
+ .field-input
52
+ = form.text_field :update_description
53
+ .field-hint= _('If this is not a minor modification, you can specify the changes here.')
54
+ .actions-buttons
55
+ = form.submit _('Save'), class: 'btn btn--save'
@@ -16,46 +16,8 @@
16
16
  _('Preview'),
17
17
  href: '#',
18
18
  onclick: 'mdPreviewContent(event)'))
19
- .field
20
- .field-input
21
- = f.check_box :sfw
22
- = f.label :sfw
23
- .field
24
- .field-input
25
- = f.check_box :published
26
- = f.label :published
27
- .field
28
- .field-input
29
- = f.check_box :hidden_in_history
30
- = f.label :hidden_in_history
31
- .field
32
- = f.label :license
33
- .field-input= license_selector f
34
- .field
35
- = f.label :language
36
- .field-input= language_selector f
37
- .field
38
- = f.label :projects
39
- .field-input= project_selector f
40
- .field
41
- = f.label :tags, for: :tags_list
42
- .field-input
43
- = f.text_field :tags_list
44
- .field-hint= _('List of comma-separated tags')
45
19
 
46
- .actions
47
- - if note.id
48
- .field
49
- .field-input
50
- = f.check_box :minor_update, onchange: "toggleUpdateMessageField(event, 'note_update_description')"
51
- = f.label :minor_update, _('This is a minor edition')
52
- .field
53
- = f.label :update_description, _('Update message')
54
- .field-input
55
- = f.text_field :update_description
56
- .field-hint= _('If this is not a minor modification, you can specify the changes here.')
57
- .actions-buttons
58
- = f.submit _('Save'), class: 'btn btn--save'
20
+ = render 'elabs/member/layouts/form_commons', form: f, entity: note
59
21
 
60
22
  = render 'elabs/member/layouts/markdown-preview'
61
23
 
@@ -1,4 +1,3 @@
1
1
  - @page_title = _('Editing preferences')
2
2
 
3
- .w960p.center
4
- = render 'form', preference: @preference
3
+ = render 'form', preference: @preference
@@ -19,7 +19,7 @@
19
19
  preview_button: content_tag('a',
20
20
  _('Preview'),
21
21
  href: '#',
22
- onclick: 'shortDescriptionCM(event)'))
22
+ onclick: 'mdPreviewShortDescription(event)'))
23
23
  .field
24
24
  = f.label :description
25
25
  .field-input
@@ -28,7 +28,7 @@
28
28
  preview_button: content_tag('a',
29
29
  _('Preview'),
30
30
  href: '#',
31
- onclick: 'descriptionCM(event)'))
31
+ onclick: 'mdPreviewDescription(event)'))
32
32
  .field
33
33
  = f.label :main_url
34
34
  .field-input= f.text_field :main_url
@@ -38,43 +38,8 @@
38
38
  .field
39
39
  = f.label :docs_url
40
40
  .field-input= f.text_field :docs_url
41
- .field
42
- .field-input
43
- = f.check_box :sfw
44
- = f.label :sfw
45
- .field
46
- .field-input
47
- = f.check_box :published
48
- = f.label :published
49
- .field
50
- .field-input
51
- = f.check_box :hidden_in_history
52
- = f.label :hidden_in_history
53
- .field
54
- = f.label :license
55
- .field-input= license_selector f
56
- .field
57
- = f.label :language
58
- .field-input= language_selector f
59
- .field
60
- = f.label :tags, for: :tags_list
61
- .field-input
62
- = f.text_field :tags_list
63
- .field-hint= _('List of comma-separated tags')
64
41
 
65
- .actions
66
- - if project.id
67
- .field
68
- .field-input
69
- = f.check_box :minor_update, onchange: "toggleUpdateMessageField(event, 'project_update_description')"
70
- = f.label :minor_update, _('This is a minor edition')
71
- .field
72
- = f.label :update_description, _('Update message')
73
- .field-input
74
- = f.text_field :update_description
75
- .field-hint= _('If this is not a minor modification, you can specify the changes here.')
76
- .actions-buttons
77
- = f.submit _('Save'), class: 'btn btn--save'
42
+ = render 'elabs/member/layouts/form_commons', form: f, entity: project, has_projects: false
78
43
 
79
44
  = render 'elabs/member/layouts/markdown-preview'
80
45
 
@@ -20,55 +20,14 @@
20
20
  _('Preview'),
21
21
  href: '#',
22
22
  onclick: 'mdPreviewDescription(event)'))
23
- .field
24
- .field-input
25
- = f.check_box :sfw
26
- = f.label :sfw
27
- .field
28
- .field-input
29
- = f.check_box :published
30
- = f.label :published
31
- .field
32
- .field-input
33
- = f.check_box :hidden_in_history
34
- = f.label :hidden_in_history
35
- .field
36
- = f.label :license
37
- .field-input= license_selector f
38
- .field
39
- = f.label :language
40
- .field-input= language_selector f
41
23
  .field
42
24
  = f.label :file
43
25
  .field-input
44
26
  = f.file_field :file
45
27
  .field-hint= format(_('The following formats will be viewable online; other will need a download: %<formats>s'),
46
28
  formats: available_formats.join(', '))
47
- .field
48
- = f.label :albums
49
- .field-input= album_selector f
50
- .field
51
- = f.label :projects
52
- .field-input= project_selector f
53
- .field
54
- = f.label :tags, for: :tags_list
55
- .field-input
56
- = f.text_field :tags_list
57
- .field-hint= _('List of comma-separated tags')
58
29
 
59
- .actions
60
- - if upload.id
61
- .field
62
- .field-input
63
- = f.check_box :minor_update, onchange: "toggleUpdateMessageField(event, 'upload_update_description')"
64
- = f.label :minor_update, _('This is a minor edition')
65
- .field
66
- = f.label :update_description, _('Update message')
67
- .field-input
68
- = f.text_field :update_description
69
- .field-hint= _('If this is not a minor modification, you can specify the changes here.')
70
- .actions-buttons
71
- = f.submit _('Save'), class: 'btn btn--save'
30
+ = render 'elabs/member/layouts/form_commons', form: f, entity: upload, has_albums: true
72
31
 
73
32
  = render 'elabs/member/layouts/markdown-preview'
74
33
 
@@ -12,6 +12,6 @@ json.extract! upload, :id,
12
12
  :created_at,
13
13
  :updated_at
14
14
  json.file content_type: upload.file.content_type,
15
- url: main_app.url_for(upload.file),
16
- filename: upload.file.filename,
17
- metadata: upload.file.metadata
15
+ url: main_app.url_for(upload.file),
16
+ filename: upload.file.filename,
17
+ metadata: upload.file.metadata
@@ -1,7 +1,6 @@
1
1
  - @page_title = _('About you')
2
2
 
3
- .w960p.center
4
- .page__actions
5
- = link_to _('Show online'), @user, class: 'btn btn--show'
3
+ .page__actions
4
+ = link_to _('Show online'), @user, class: 'btn btn--show'
6
5
 
7
- = render 'form', user: @user
6
+ = render 'form', user: @user
@@ -1,7 +1,9 @@
1
- .filter-links
2
- .filter-links__group
1
+ .page__header__actions__filters
2
+ .page__header__actions__filters__group
3
+ .page__header__actions__filters__group__title= _('Sort by…')
3
4
  = order_link _('Pub. date'), 'published_at'
4
5
  = order_link _('Upd. date'), 'updated_at'
5
6
 
6
- .filter-links__group
7
+ .page__header__actions__filters__group
8
+ .page__header__actions__filters__group__title= _('NSFW content')
7
9
  = sfw_status_links
@@ -4,6 +4,6 @@
4
4
  = render 'elabs/layouts/empty' if @notes.length.zero?
5
5
 
6
6
  - @notes.each do |n|
7
- = render 'note', note: n
7
+ = render 'elabs/layouts/content_card', entity: n
8
8
 
9
9
  = paginate @notes
@@ -6,33 +6,41 @@
6
6
  .note.note--full
7
7
  %aside
8
8
  %ul
9
- %li
10
- = icon('user', ['fw'])
11
- %b= _('Author:')
12
- = link_to @note.user.display_name, @note.user
13
- %li
14
- = icon('calendar-check', ['fw'])
15
- %b= _('Published at:')
16
- = medium_datetime @note.published_at
17
- %li
18
- = icon('calendar', ['fw'])
19
- %b= _('Updated at:')
20
- = medium_datetime @note.updated_at
21
9
  %li.separator
22
- = icon('info', ['fw'])
23
- %b= _('SFW:')
24
- = boolean_icon_tag @note.sfw, 'is-sfw', 'is-nsfw'
25
- %li
26
- = icon('language', ['fw'])
27
- %b= _('Language:')
28
- = link_to @note.language.name, @note.language
29
- %li
30
- = icon('license', ['fw'])
31
- %b= _('License:')
32
- = link_to @note.license.name, @note.license
10
+ %ul
11
+ %li
12
+ = icon('user', ['fw'])
13
+ %b= _('Author:')
14
+ = link_to @note.user.display_name, @note.user
15
+ %li
16
+ = icon('calendar-check', ['fw'])
17
+ %b= _('Published at:')
18
+ = medium_datetime @note.published_at
19
+ %li
20
+ = icon('calendar', ['fw'])
21
+ %b= _('Updated at:')
22
+ = medium_datetime @note.updated_at
33
23
 
34
- %li.separator= render 'elabs/layouts/lists/projects', projects: @note.projects
35
- %li.separator= render 'elabs/layouts/lists/tags', tags: @note.tags
24
+ %li.separator
25
+ %ul
26
+ %li
27
+ = icon('info', ['fw'])
28
+ %b= _('SFW:')
29
+ = boolean_icon_tag @note.sfw, 'is-sfw', 'is-nsfw'
30
+ %li
31
+ = icon('language', ['fw'])
32
+ %b= _('Language:')
33
+ = link_to @note.language.name, @note.language
34
+ %li
35
+ = icon('license', ['fw'])
36
+ %b= _('License:')
37
+ = link_to @note.license do
38
+ = license_icon @note.license
39
+ = @note.license.name
40
+ %li.separator
41
+ %ul
42
+ %li= render 'elabs/layouts/content_classifiers_lists/projects', projects: @note.visible_projects
43
+ %li.separator= render 'elabs/layouts/content_classifiers_lists/tags', tags: @note.tags
36
44
 
37
45
  .content
38
46
  %article{ lang: @note.language.iso639_1 }
@@ -1,8 +1,10 @@
1
- .filter-links
2
- .filter-links__group
1
+ .page__header__actions__filters
2
+ .page__header__actions__filters__group
3
+ .page__header__actions__filters__group__title= _('Sort by…')
3
4
  = order_link _('Name'), 'name'
4
5
  = order_link _('Pub. date'), 'published_at'
5
6
  = order_link _('Upd. date'), 'updated_at'
6
7
 
7
- .filter-links__group
8
+ .page__header__actions__filters__group
9
+ .page__header__actions__filters__group__title= _('NSFW content')
8
10
  = sfw_status_links
@@ -4,6 +4,6 @@
4
4
  = render 'elabs/layouts/empty' if @projects.length.zero?
5
5
 
6
6
  - @projects.each do |p|
7
- = render 'project', project: p
7
+ = render 'elabs/layouts/content_card', entity: p
8
8
 
9
9
  = paginate @projects
@@ -6,78 +6,84 @@
6
6
  .project.project--full
7
7
  %aside
8
8
  %ul
9
- %li
10
- = icon('user', ['fw'])
11
- %strong= _('Creator:')
12
- = link_to @project.user.display_name, @project.user
13
- %li
14
- = icon('calendar-check', ['fw'])
15
- %strong= _('Published at:')
16
- = medium_datetime @project.published_at
17
- %li
18
- = icon('calendar', ['fw'])
19
- %strong= _('Updated at:')
20
- = medium_datetime @project.updated_at
21
-
22
- - if @project.main_url.present?
23
- %li.separator
24
- = icon('home', ['fw'])
25
- %strong= _('Home page:')
26
- = @project.main_url
27
- - if @project.sources_url.present?
28
- %li{ class: @project.main_url.present? ? '' : 'separator' }
29
- = icon('code', ['fw'])
30
- %strong= _('Sources:')
31
- = @project.sources_url
32
- - if @project.docs_url.present?
33
- %li{ class: @project.main_url.present? || @project.sources_url.present? ? '' : 'separator' }
34
- = icon('book', ['fw'])
35
- %strong= _('Documentation:')
36
- = @project.docs_url
37
-
38
9
  %li.separator
39
- = icon('info', ['fw'])
40
- %strong= _('SFW:')
41
- = boolean_icon_tag @project.sfw, 'is-sfw', 'is-nsfw'
42
- %li
43
- = icon('license', ['fw'])
44
- %strong= _('License:')
45
- = link_to @project.license.name, @project.license
46
- %li
47
- = icon('language', ['fw'])
48
- %strong= _('Language:')
49
- = link_to @project.language.name, @project.language
10
+ %ul
11
+ %li
12
+ = icon('user', ['fw'])
13
+ %strong= _('Creator:')
14
+ = link_to @project.user.display_name, @project.user
15
+ %li
16
+ = icon('calendar-check', ['fw'])
17
+ %strong= _('Published at:')
18
+ = medium_datetime @project.published_at
19
+ %li
20
+ = icon('calendar', ['fw'])
21
+ %strong= _('Updated at:')
22
+ = medium_datetime @project.updated_at
50
23
 
51
24
  %li.separator
52
- = icon('amount', ['fw'])
53
- %strong= _('Albums:')
54
- = @project.albums_count
55
- %li
56
- = icon('amount', ['fw'])
57
- %strong= _('Articles:')
58
- = @project.articles_count
59
- %li
60
- = icon('amount', ['fw'])
61
- %strong= _('Notes:')
62
- = @project.notes_count
63
- %li
64
- = icon('amount', ['fw'])
65
- %strong= _('Uploads:')
66
- = @project.uploads_count
25
+ %ul
26
+ - if @project.main_url.present?
27
+ %li
28
+ = icon('home', ['fw'])
29
+ %strong= link_to _('Home page'), @project.main_url, target: '_blank'
30
+ - if @project.sources_url.present?
31
+ %li
32
+ = icon('code', ['fw'])
33
+ %strong= link_to _('Sources'), @project.sources_url, target: '_blank'
34
+ - if @project.docs_url.present?
35
+ %li
36
+ = icon('book', ['fw'])
37
+ %strong= link_to _('Documentation'), @project.docs_url, target: '_blank'
38
+ %li.separator
39
+ %ul
40
+ %li
41
+ = icon('info', ['fw'])
42
+ %strong= _('SFW:')
43
+ = boolean_icon_tag @project.sfw, 'is-sfw', 'is-nsfw'
44
+ %li
45
+ = icon('license', ['fw'])
46
+ %strong= _('License:')
47
+ = link_to @project.license do
48
+ = license_icon @project.license
49
+ = @project.license.name
50
+ %li
51
+ = icon('language', ['fw'])
52
+ %strong= _('Language:')
53
+ = link_to @project.language.name, @project.language
67
54
 
68
- %li.separator= render 'elabs/layouts/lists/tags', tags: @project.tags
55
+ %li.separator
56
+ %ul
57
+ %li
58
+ = icon('amount', ['fw'])
59
+ %strong= _('Albums:')
60
+ = @project.albums_count
61
+ %li
62
+ = icon('amount', ['fw'])
63
+ %strong= _('Articles:')
64
+ = @project.articles_count
65
+ %li
66
+ = icon('amount', ['fw'])
67
+ %strong= _('Notes:')
68
+ = @project.notes_count
69
+ %li
70
+ = icon('amount', ['fw'])
71
+ %strong= _('Uploads:')
72
+ = @project.uploads_count
73
+ %li.separator= render 'elabs/layouts/content_classifiers_lists/tags', tags: @project.tags
69
74
 
70
75
  .content
71
76
  %article{ lang: @project.language.iso639_1 }
72
77
  = render_entity_content @project, :short_description
73
78
  = render_entity_content @project, :description
74
79
 
75
- = render 'associations',
76
- project: @project,
77
- project_albums: @project_albums,
78
- project_articles: @project_articles,
79
- project_notes: @project_notes,
80
- project_uploads: @project_uploads
80
+ = render 'elabs/layouts/content_associations',
81
+ is_section: true,
82
+ entity: @project,
83
+ albums: @project_albums,
84
+ articles: @project_articles,
85
+ notes: @project_notes,
86
+ uploads: @project_uploads
81
87
 
82
88
  = render 'elabs/comments/comments',
83
89
  entity: @project,