elabs 4.0.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
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,15 @@
1
+ .error {
2
+ @extend %card;
3
+ background-color: $error-background-color;
4
+ color: $error-color;
5
+ padding: $spacer-small;
6
+
7
+ h2 {
8
+ @include font-size('h5');
9
+ }
10
+
11
+ // Responsive variations ------------
12
+ @include respond-to('small-up') {
13
+ padding: $spacer-medium;
14
+ }
15
+ }
@@ -0,0 +1,23 @@
1
+ // Filter links -----------------------
2
+ .filter-link {
3
+ display: flex;
4
+ padding: $spacer-small $spacer-tiny;
5
+ color: $page-header-links-color;
6
+ text-decoration: none;
7
+
8
+ .link {
9
+ text-align: left;
10
+ flex-grow: 1;
11
+ }
12
+
13
+ .icon {
14
+ flex: none;
15
+ line-height: inherit;
16
+ }
17
+
18
+ &:hover {
19
+ background-color: $filter-links-panel-hover-bg;
20
+ text-decoration: none;
21
+ color: darken($page-header-links-color, 15%);
22
+ }
23
+ }
@@ -0,0 +1,19 @@
1
+ // The links that are always visible on the page like "report this" and "go to top"
2
+ .fixed-link {
3
+ display: inline-block;
4
+ position: fixed;
5
+ bottom: $spacer-small;
6
+ padding: $spacer-tiny 0;
7
+ box-shadow: 0 0 5px 0 rgba(0, 0, 0, .2);
8
+ border-radius: $fixed-links-border-radius;
9
+
10
+ &.to-top {
11
+ left: $spacer-small;
12
+ background-color: $fixed-link-to-top-background;
13
+ }
14
+
15
+ &.to-report {
16
+ left: #{$spacer-small * 2 + $spacer-large };
17
+ background-color: $fixed-link-to-report-background;
18
+ }
19
+ }
@@ -0,0 +1,123 @@
1
+ [type='color'],
2
+ [type='date'],
3
+ [type='datetime-local'],
4
+ [type='email'],
5
+ [type='month'],
6
+ [type='number'],
7
+ [type='password'],
8
+ [type='search'],
9
+ [type='tel'],
10
+ [type='text'],
11
+ [type='time'],
12
+ [type='url'],
13
+ [type='week'],
14
+ select,
15
+ textarea {
16
+ background-color: $form-input-background-color;
17
+ box-shadow: none;
18
+ line-height: 1em;
19
+ border: $form-input-border;
20
+ border: {
21
+ bottom: 3px solid $form-input-border-color;
22
+ radius: 0;
23
+ }
24
+ padding: $spacer-tiny;
25
+ width: 100%;
26
+
27
+ &:focus {
28
+ border-color: $form-input-focus-border-color;
29
+ }
30
+
31
+ &[disabled] { /* stylelint-disable-line selector-no-qualifying-type */
32
+ border-style: dashed;
33
+ }
34
+ }
35
+
36
+ .textarea {
37
+
38
+ &--large {
39
+ min-height: 8em;
40
+
41
+ // Responsive variations
42
+ @include respond-to('small-up') {
43
+ min-height: 12em;
44
+ }
45
+ }
46
+ }
47
+
48
+ /* stylelint-disable selector-max-type */
49
+
50
+ form {
51
+
52
+ .field {
53
+
54
+ &:not(:first-child) {
55
+ margin-top: $spacer-medium-plus;
56
+ }
57
+
58
+ > label,
59
+ > .field_with_errors {
60
+ font-weight: 500;
61
+ }
62
+
63
+ .field_with_errors {
64
+ color: $color-error;
65
+ }
66
+
67
+ &-input {
68
+
69
+ label {
70
+ font-weight: 100;
71
+ }
72
+
73
+ &--datetime {
74
+ display: flex;
75
+ }
76
+ }
77
+
78
+ &-hint {
79
+ @include font-size('small');
80
+ }
81
+
82
+ // Honeypots ----------------------
83
+ &#form-body {
84
+
85
+ textarea {
86
+ height: 2em;
87
+ min-height: 2em;
88
+ }
89
+ }
90
+
91
+ // Responsive variations ----------
92
+ @include respond-to('small-up') {
93
+ @include grid(4, $spacer-small);
94
+
95
+ &:not(:first-child) {
96
+ margin-top: $spacer-small;
97
+ }
98
+
99
+ > label,
100
+ > .field_with_errors {
101
+ grid-column: 1 / span 1;
102
+ padding-top: $spacer-tiny;
103
+ text-align: right;
104
+ }
105
+
106
+ &-input {
107
+ grid-column: 2 / span 3;
108
+ }
109
+ }
110
+ }
111
+
112
+ .actions {
113
+ background-color: $form-actions-background;
114
+ margin: $spacer-small (-$spacer-small) (-$spacer-small) (-$spacer-small);
115
+ padding: $spacer-small;
116
+
117
+ &-buttons {
118
+ text-align: right;
119
+ }
120
+ }
121
+ }
122
+
123
+ /* stylelint-enable selector-max-type */
@@ -0,0 +1,74 @@
1
+ /* stylelint-disable rule-empty-line-before */
2
+ .#{$fa-css-prefix}-amount:before { content: fa-content($fa-var-hashtag); }
3
+ .#{$fa-css-prefix}-angry:before { content: fa-content($fa-var-angry); }
4
+ .#{$fa-css-prefix}-announcement:before { content: fa-content($fa-var-bullhorn); }
5
+ .#{$fa-css-prefix}-archive:before { content: fa-content($fa-var-archive); }
6
+ .#{$fa-css-prefix}-arrow-up:before { content: fa-content($fa-var-arrow-up); }
7
+ .#{$fa-css-prefix}-bars:before { content: fa-content($fa-var-bars); }
8
+ .#{$fa-css-prefix}-bell:before { content: fa-content($fa-var-bell); }
9
+ .#{$fa-css-prefix}-book:before { content: fa-content($fa-var-book); }
10
+ .#{$fa-css-prefix}-bug:before { content: fa-content($fa-var-bug); }
11
+ .#{$fa-css-prefix}-calendar-check:before { content: fa-content($fa-var-calendar-check); }
12
+ .#{$fa-css-prefix}-calendar-times:before { content: fa-content($fa-var-calendar-times); }
13
+ .#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar); }
14
+ .#{$fa-css-prefix}-check:before,
15
+ .#{$fa-css-prefix}-is-sfw:before { content: fa-content($fa-var-check); }
16
+ .#{$fa-css-prefix}-chevron-down:before { content: fa-content($fa-var-chevron-down); }
17
+ .#{$fa-css-prefix}-circle:before { content: fa-content($fa-var-circle); }
18
+ .#{$fa-css-prefix}-code-branch:before { content: fa-content($fa-var-code-branch); }
19
+ .#{$fa-css-prefix}-code:before { content: fa-content($fa-var-code); }
20
+ .#{$fa-css-prefix}-cog:before { content: fa-content($fa-var-cog); }
21
+ .#{$fa-css-prefix}-cogs:before { content: fa-content($fa-var-cogs); }
22
+ .#{$fa-css-prefix}-comment:before { content: fa-content($fa-var-comment); }
23
+ .#{$fa-css-prefix}-cut:before { content: fa-content($fa-var-cut); }
24
+ .#{$fa-css-prefix}-dot-circle:before { content: fa-content($fa-var-dot-circle); }
25
+ .#{$fa-css-prefix}-download:before { content: fa-content($fa-var-download); }
26
+ .#{$fa-css-prefix}-ellipsis-h:before { content: fa-content($fa-var-ellipsis-h); }
27
+ .#{$fa-css-prefix}-exclamation-circle:before { content: fa-content($fa-var-exclamation-circle); }
28
+ .#{$fa-css-prefix}-exclamation:before { content: fa-content($fa-var-exclamation); }
29
+ .#{$fa-css-prefix}-experience:before { content: fa-content($fa-var-flask); }
30
+ .#{$fa-css-prefix}-eye-slash:before { content: fa-content($fa-var-eye-slash); }
31
+ .#{$fa-css-prefix}-eye:before { content: fa-content($fa-var-eye); }
32
+ .#{$fa-css-prefix}-file:before { content: fa-content($fa-var-file); }
33
+ .#{$fa-css-prefix}-filter:before { content: fa-content($fa-var-filter); }
34
+ .#{$fa-css-prefix}-flag:before { content: fa-content($fa-var-flag); }
35
+ .#{$fa-css-prefix}-font:before { content: fa-content($fa-var-font); }
36
+ .#{$fa-css-prefix}-frown:before { content: fa-content($fa-var-frown); }
37
+ .#{$fa-css-prefix}-github:before { content: fa-content($fa-var-github); }
38
+ .#{$fa-css-prefix}-gitlab:before { content: fa-content($fa-var-gitlab); }
39
+ .#{$fa-css-prefix}-globe:before { content: fa-content($fa-var-globe); }
40
+ .#{$fa-css-prefix}-group:before { content: fa-content($fa-var-box); }
41
+ .#{$fa-css-prefix}-home:before { content: fa-content($fa-var-home); }
42
+ .#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); }
43
+ .#{$fa-css-prefix}-infinity:before { content: fa-content($fa-var-infinity); }
44
+ .#{$fa-css-prefix}-info:before { content: fa-content($fa-var-info); }
45
+ .#{$fa-css-prefix}-language:before { content: fa-content($fa-var-language); }
46
+ .#{$fa-css-prefix}-license:before { content: fa-content($fa-var-balance-scale); }
47
+ .#{$fa-css-prefix}-lock:before { content: fa-content($fa-var-lock); }
48
+ .#{$fa-css-prefix}-minus:before { content: fa-content($fa-var-minus); }
49
+ .#{$fa-css-prefix}-nsfw:before { content: fa-content($fa-var-exclamation); }
50
+ .#{$fa-css-prefix}-pen:before { content: fa-content($fa-var-pen); }
51
+ .#{$fa-css-prefix}-pencil-alt:before { content: fa-content($fa-var-pencil-alt); }
52
+ .#{$fa-css-prefix}-permalink:before { content: fa-content($fa-var-link); }
53
+ .#{$fa-css-prefix}-plus:before { content: fa-content($fa-var-plus); }
54
+ .#{$fa-css-prefix}-rss:before { content: fa-content($fa-var-rss); }
55
+ .#{$fa-css-prefix}-sign-in-alt:before { content: fa-content($fa-var-sign-in-alt); }
56
+ .#{$fa-css-prefix}-sign-out-alt:before { content: fa-content($fa-var-sign-out-alt); }
57
+ .#{$fa-css-prefix}-sliders-h:before { content: fa-content($fa-var-sliders-h); }
58
+ .#{$fa-css-prefix}-sort-down:before { content: fa-content($fa-var-sort-down); }
59
+ .#{$fa-css-prefix}-sort-up:before { content: fa-content($fa-var-sort-up); }
60
+ .#{$fa-css-prefix}-spinner:before { content: fa-content($fa-var-spinner); }
61
+ .#{$fa-css-prefix}-star:before { content: fa-content($fa-var-star); }
62
+ .#{$fa-css-prefix}-sticky-note:before { content: fa-content($fa-var-sticky-note); }
63
+ .#{$fa-css-prefix}-tag:before { content: fa-content($fa-var-tag); }
64
+ .#{$fa-css-prefix}-tags:before { content: fa-content($fa-var-tags); }
65
+ .#{$fa-css-prefix}-times:before,
66
+ .#{$fa-css-prefix}-is-nsfw:before { content: fa-content($fa-var-times); }
67
+ .#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash); }
68
+ .#{$fa-css-prefix}-unlock:before { content: fa-content($fa-var-unlock); }
69
+ .#{$fa-css-prefix}-upload:before { content: fa-content($fa-var-upload); }
70
+ .#{$fa-css-prefix}-user:before { content: fa-content($fa-var-user); }
71
+ .#{$fa-css-prefix}-users:before { content: fa-content($fa-var-users); }
72
+ .#{$fa-css-prefix}-wrench:before,
73
+ .#{$fa-css-prefix}-mime-type:before { content: fa-content($fa-var-wrench); }
74
+ /* stylelint-enable rule-empty-line-before */
@@ -4,6 +4,8 @@ video {
4
4
  }
5
5
 
6
6
  .thumbnail {
7
+ @extend %card;
8
+ padding: $spacer-tiny;
7
9
 
8
10
  &--small {
9
11
  border-radius: $border-radius;
@@ -13,18 +13,17 @@
13
13
  left: 0;
14
14
  width: 100vw;
15
15
  height: 100vh;
16
- background: transparentize($background-base, .5);
16
+ background: transparentize($modal-overlay-background-color, .5);
17
17
  z-index: #{$zindex-modal - 1};
18
18
  }
19
19
 
20
20
  &__window {
21
21
  position: fixed;
22
- min-width: 50%;
23
- max-width: 75%;
22
+ width: 95%;
24
23
  left: 50%;
25
24
  transform: translateX(-50%);
26
25
  top: 10vh;
27
- background-color: $background-base;
26
+ background-color: $modal-background-color;
28
27
  border: $border-default;
29
28
  z-index: $zindex-modal;
30
29
 
@@ -53,5 +52,10 @@
53
52
  text-align: right;
54
53
  }
55
54
  }
55
+
56
+ // Responsive variations ----------
57
+ @include respond-to('small-up') {
58
+ width: 75%;
59
+ }
56
60
  }
57
61
  }
@@ -0,0 +1,41 @@
1
+ .nsfw {
2
+ background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gwfCiUV0msLOwAAAGRJREFUOMut07kNACEQQ9E/xPRfKQVstBJCHHPYsfXkxIY/3VMyJQYMU2KehSHsBYaxG5jCTmAa24ElbAXL2AxKsB+UYQBNiQG9KTHPwhH9elNiNzCFncA0tgNL2AqWsRmUYAAfgBoTKoJcDtUAAAAASUVORK5CYII=');
3
+ }
4
+
5
+ .nsfw,
6
+ .locked {
7
+
8
+ &--large {
9
+ @extend %card;
10
+ padding: $spacer-small;
11
+
12
+ // Responsive variation -----------
13
+ @include respond-to('small-up') {
14
+ padding: $spacer-medium;
15
+ }
16
+ }
17
+
18
+ &--full {
19
+ @extend %card;
20
+ padding: $spacer-small;
21
+ border: none;
22
+
23
+ // Responsive variation -----------
24
+ @include respond-to('small-up') {
25
+ padding: $spacer-large;
26
+ }
27
+ }
28
+
29
+ &__title {
30
+ @include font-size('h3');
31
+
32
+ // Responsive variation -----------
33
+ @include respond-to('small-up') {
34
+ @include font-size('h2');
35
+ }
36
+ }
37
+
38
+ &__subtitle {
39
+ font-size: .8em;
40
+ }
41
+ }
@@ -6,11 +6,11 @@ table {
6
6
  tr {
7
7
 
8
8
  &:nth-child(even) {
9
- background-color: darken($background-base, 10%);
9
+ background-color: $table-row-even-background-color;
10
10
  }
11
11
 
12
12
  &:hover {
13
- background-color: darken($background-base, 5%);
13
+ background-color: $table-row-hover-background-color;
14
14
  }
15
15
  }
16
16
 
@@ -0,0 +1,73 @@
1
+ .tabs {
2
+
3
+ &__tabs-list {
4
+ display: flex;
5
+ list-style-type: none;
6
+ margin-bottom: 0;
7
+ padding: 0;
8
+ border-bottom: 1px solid $tab-border-color;
9
+
10
+ &__tab {
11
+ padding: $spacer-tiny;
12
+ border: {
13
+ top: 1px solid $tab-border-color;
14
+ right: 1px solid $tab-border-color;
15
+ bottom: 3px solid transparent;
16
+ left: 1px solid $tab-border-color;
17
+ }
18
+
19
+ &:not(:first-child) {
20
+ border-left: none;
21
+ }
22
+
23
+ &.active {
24
+ border-color: $tab-border-color;
25
+ background: $tab-active-background-color;
26
+ }
27
+
28
+ a {
29
+ text-decoration: none;
30
+ color: $color-base;
31
+ }
32
+
33
+ &:hover {
34
+ background-color: $tab-hover-background-color;
35
+ }
36
+
37
+ // Responsive variations --------
38
+ @include respond-to('small-up') {
39
+ padding: $spacer-small $spacer-small-plus;
40
+ }
41
+ }
42
+ }
43
+
44
+ &__tab-content {
45
+
46
+ &__title {
47
+ display: flex;
48
+ margin: $spacer-small 0 $spacer-medium 0;
49
+
50
+ h2 {
51
+ @include font-size('h4');
52
+ flex-grow: 1;
53
+ }
54
+
55
+ .actions {
56
+ flex: none;
57
+ text-align: right;
58
+ }
59
+ }
60
+
61
+ &.tab--initialized {
62
+ display: none;
63
+
64
+ &.active {
65
+ display: block;
66
+ }
67
+ }
68
+ }
69
+
70
+ &.is-section:not(:first-child) {
71
+ margin-top: $spacer-large;
72
+ }
73
+ }
@@ -0,0 +1,80 @@
1
+ // Base style for a card --------------
2
+ %card {
3
+ border: $card-border;
4
+ border-radius: $card-border-radius;
5
+ background-color: $card-background-color;
6
+ margin-bottom: $spacer-medium;
7
+
8
+ // Responsive variations ------------
9
+ @include respond-to('small-up') {
10
+ margin-bottom: $spacer-large;
11
+ }
12
+ }
13
+
14
+ // Base style for classifier cards ----
15
+ %classifier-card {
16
+ @extend %card;
17
+ margin-bottom: $spacer-small;
18
+ padding: $classifier-card-padding;
19
+
20
+ .content {
21
+ padding: $classifier-card-content-vertical-padding 0;
22
+
23
+ .btn {
24
+ text-decoration: none;
25
+
26
+ &--block {
27
+ display: flex;
28
+
29
+ .icon {
30
+ flex: none;
31
+ }
32
+
33
+ .text {
34
+ flex-grow: 1;
35
+ text-align: center;
36
+ }
37
+
38
+ &:not(:last-child) {
39
+ margin-bottom: $spacer-tiny;
40
+ }
41
+ }
42
+ }
43
+ }
44
+
45
+ header {
46
+ display: flex;
47
+ margin-bottom: $spacer-medium;
48
+
49
+ .icon {
50
+ padding: 0;
51
+ flex: none;
52
+ margin-right: $spacer-tiny;
53
+
54
+ img {
55
+ border-radius: $border-radius;
56
+ }
57
+ }
58
+
59
+ h3 {
60
+ margin: 0;
61
+ line-height: 1em;
62
+ }
63
+
64
+ ul.information {
65
+ @include font-size('small');
66
+ list-style-type: none;
67
+ margin: 0;
68
+ padding: 0;
69
+
70
+ li {
71
+ display: inline;
72
+ margin-left: $spacer-tiny;
73
+
74
+ &:first-child {
75
+ margin-left: 0;
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }