decidim 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim might be problematic. Click here for more details.

Files changed (308) hide show
  1. checksums.yaml +4 -4
  2. data/.babelrc +2 -1
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +4 -6
  5. data/Dockerfile +2 -2
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +48 -48
  8. data/README.md +6 -1
  9. data/decidim-admin/app/assets/stylesheets/decidim/admin/_decidim.scss +9 -0
  10. data/decidim-admin/app/assets/stylesheets/decidim/admin/_variables.scss +7 -0
  11. data/decidim-admin/app/assets/stylesheets/decidim/admin/application.scss +2 -19
  12. data/decidim-admin/app/assets/stylesheets/decidim/admin/extra/_categories.scss +5 -0
  13. data/decidim-admin/app/assets/stylesheets/decidim/admin/{_email_preview.scss → extra/_email_preview.scss} +0 -0
  14. data/decidim-admin/app/assets/stylesheets/decidim/admin/{_login.scss → extra/_login.scss} +0 -0
  15. data/decidim-admin/app/assets/stylesheets/decidim/admin/extra/_select_multiple.scss +3 -0
  16. data/decidim-admin/app/assets/stylesheets/decidim/admin/extra/_title_bar.scss +5 -0
  17. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_action-icon.scss +13 -0
  18. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_buttons.scss +44 -0
  19. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_callouts.scss +32 -0
  20. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_cards.scss +36 -0
  21. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_char-counter.scss +20 -0
  22. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_component-counter.scss +17 -0
  23. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_forms.scss +80 -0
  24. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_icons.scss +65 -0
  25. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_layout.scss +67 -0
  26. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_main-nav.scss +41 -0
  27. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_modules.scss +24 -0
  28. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_process-header.scss +11 -0
  29. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_secondary-nav.scss +95 -0
  30. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_table-list.scss +78 -0
  31. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_tabs.scss +49 -0
  32. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_title-bar.scss +32 -0
  33. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_typography.scss +15 -0
  34. data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_user-login.scss +23 -0
  35. data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_fontface.scss +27 -0
  36. data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_helpers.scss +25 -0
  37. data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_keyframes.scss +21 -0
  38. data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_mixins.scss +20 -0
  39. data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_settings.scss +590 -0
  40. data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_toggle-expand.scss +8 -0
  41. data/decidim-admin/app/commands/decidim/admin/create_attachment.rb +13 -4
  42. data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +3 -3
  43. data/decidim-admin/app/commands/decidim/admin/update_participatory_process_admin.rb +40 -0
  44. data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +7 -1
  45. data/decidim-admin/app/controllers/decidim/admin/newsletters_controller.rb +1 -1
  46. data/decidim-admin/app/controllers/decidim/admin/organization_controller.rb +2 -0
  47. data/decidim-admin/app/controllers/decidim/admin/participatory_process_user_roles_controller.rb +29 -0
  48. data/decidim-admin/app/controllers/decidim/admin/participatory_processes_controller.rb +2 -2
  49. data/decidim-admin/app/controllers/decidim/admin/scopes_controller.rb +2 -0
  50. data/decidim-admin/app/controllers/decidim/admin/static_pages_controller.rb +2 -0
  51. data/decidim-admin/app/controllers/decidim/admin/user_groups_controller.rb +3 -1
  52. data/decidim-admin/app/controllers/decidim/admin/users_controller.rb +1 -1
  53. data/decidim-admin/app/helpers/decidim/admin/application_helper.rb +8 -0
  54. data/decidim-admin/app/helpers/decidim/admin/icon_link_helper.rb +30 -0
  55. data/decidim-admin/app/jobs/decidim/admin/newsletter_job.rb +1 -1
  56. data/decidim-admin/app/queries/decidim/admin/process_admin_roles_for_process.rb +1 -1
  57. data/decidim-admin/app/views/decidim/admin/attachments/_form.html.erb +29 -8
  58. data/decidim-admin/app/views/decidim/admin/attachments/edit.html.erb +3 -5
  59. data/decidim-admin/app/views/decidim/admin/attachments/index.html.erb +45 -35
  60. data/decidim-admin/app/views/decidim/admin/attachments/new.html.erb +3 -5
  61. data/decidim-admin/app/views/decidim/admin/categories/_form.html.erb +18 -10
  62. data/decidim-admin/app/views/decidim/admin/categories/edit.html.erb +3 -5
  63. data/decidim-admin/app/views/decidim/admin/categories/index.html.erb +57 -42
  64. data/decidim-admin/app/views/decidim/admin/categories/new.html.erb +3 -5
  65. data/decidim-admin/app/views/decidim/admin/dashboard/show.html.erb +6 -3
  66. data/decidim-admin/app/views/decidim/admin/features/_feature.html.erb +11 -11
  67. data/decidim-admin/app/views/decidim/admin/features/_form.html.erb +56 -48
  68. data/decidim-admin/app/views/decidim/admin/features/edit.html.erb +3 -5
  69. data/decidim-admin/app/views/decidim/admin/features/index.html.erb +21 -19
  70. data/decidim-admin/app/views/decidim/admin/features/new.html.erb +3 -4
  71. data/decidim-admin/app/views/decidim/admin/moderations/index.html.erb +71 -61
  72. data/decidim-admin/app/views/decidim/admin/newsletters/_form.html.erb +7 -1
  73. data/decidim-admin/app/views/decidim/admin/newsletters/edit.html.erb +10 -8
  74. data/decidim-admin/app/views/decidim/admin/newsletters/index.html.erb +50 -43
  75. data/decidim-admin/app/views/decidim/admin/newsletters/new.html.erb +10 -8
  76. data/decidim-admin/app/views/decidim/admin/newsletters/show.html.erb +20 -12
  77. data/decidim-admin/app/views/decidim/admin/organization/_form.html.erb +98 -62
  78. data/decidim-admin/app/views/decidim/admin/organization/edit.html.erb +11 -8
  79. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/_form.html.erb +4 -4
  80. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/edit.html.erb +15 -9
  81. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/index.html.erb +37 -35
  82. data/decidim-admin/app/views/decidim/admin/participatory_process_groups/new.html.erb +10 -8
  83. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/_form.html.erb +21 -11
  84. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/edit.html.erb +3 -4
  85. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/index.html.erb +60 -51
  86. data/decidim-admin/app/views/decidim/admin/participatory_process_steps/new.html.erb +4 -5
  87. data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/_form.html.erb +23 -0
  88. data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/edit.html.erb +7 -0
  89. data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +46 -34
  90. data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/new.html.erb +7 -0
  91. data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +103 -72
  92. data/decidim-admin/app/views/decidim/admin/participatory_processes/edit.html.erb +15 -17
  93. data/decidim-admin/app/views/decidim/admin/participatory_processes/index.html.erb +52 -43
  94. data/decidim-admin/app/views/decidim/admin/participatory_processes/new.html.erb +6 -5
  95. data/decidim-admin/app/views/decidim/admin/scopes/edit.html.erb +9 -7
  96. data/decidim-admin/app/views/decidim/admin/scopes/index.html.erb +37 -36
  97. data/decidim-admin/app/views/decidim/admin/scopes/new.html.erb +9 -6
  98. data/decidim-admin/app/views/decidim/admin/static_pages/_form.html.erb +3 -3
  99. data/decidim-admin/app/views/decidim/admin/static_pages/edit.html.erb +10 -8
  100. data/decidim-admin/app/views/decidim/admin/static_pages/index.html.erb +38 -37
  101. data/decidim-admin/app/views/decidim/admin/static_pages/new.html.erb +10 -8
  102. data/decidim-admin/app/views/decidim/admin/user_groups/index.html.erb +37 -31
  103. data/decidim-admin/app/views/decidim/admin/users/_form.html.erb +5 -4
  104. data/decidim-admin/app/views/decidim/admin/users/index.html.erb +57 -52
  105. data/decidim-admin/app/views/decidim/admin/users/new.html.erb +10 -7
  106. data/decidim-admin/app/views/layouts/decidim/admin/_application.html.erb +23 -36
  107. data/decidim-admin/app/views/layouts/decidim/admin/_callouts_full.html.erb +10 -0
  108. data/decidim-admin/app/views/layouts/decidim/admin/_language_chooser.html.erb +9 -9
  109. data/decidim-admin/app/views/layouts/decidim/admin/_main_nav.html.erb +11 -0
  110. data/decidim-admin/app/views/layouts/decidim/admin/_template_bottom.html.erb +2 -0
  111. data/decidim-admin/app/views/layouts/decidim/admin/_template_top.html.erb +3 -0
  112. data/decidim-admin/app/views/layouts/decidim/admin/_title_bar.html.erb +20 -0
  113. data/decidim-admin/app/views/layouts/decidim/admin/newsletters.erb +14 -0
  114. data/decidim-admin/app/views/layouts/decidim/admin/pages.html.erb +14 -0
  115. data/decidim-admin/app/views/layouts/decidim/admin/participatory_process.html.erb +55 -53
  116. data/decidim-admin/app/views/layouts/decidim/admin/participatory_process_groups.html.erb +14 -0
  117. data/decidim-admin/app/views/layouts/decidim/admin/participatory_processes.html.erb +14 -0
  118. data/decidim-admin/app/views/layouts/decidim/admin/settings.html.erb +19 -0
  119. data/decidim-admin/app/views/layouts/decidim/admin/users.html.erb +21 -0
  120. data/decidim-admin/config/i18n-tasks.yml +1 -0
  121. data/decidim-admin/config/locales/ca.yml +77 -22
  122. data/decidim-admin/config/locales/en.yml +75 -20
  123. data/decidim-admin/config/locales/es.yml +77 -22
  124. data/decidim-admin/config/locales/eu.yml +191 -16
  125. data/decidim-admin/config/locales/fi.yml +0 -29
  126. data/decidim-admin/config/routes.rb +1 -1
  127. data/decidim-admin/lib/decidim/admin/test/manage_attachments_examples.rb +11 -11
  128. data/decidim-admin/spec/commands/deliver_newsletter_spec.rb +4 -1
  129. data/decidim-admin/spec/commands/update_participatory_process_spec.rb +117 -0
  130. data/decidim-admin/spec/features/admin_invite_spec.rb +5 -1
  131. data/decidim-admin/spec/features/admin_manages_feature_permissions_spec.rb +1 -1
  132. data/decidim-admin/spec/features/admin_manages_features_spec.rb +10 -10
  133. data/decidim-admin/spec/features/admin_manages_newsletters_spec.rb +11 -9
  134. data/decidim-admin/spec/features/admin_manages_organization_admins_spec.rb +8 -5
  135. data/decidim-admin/spec/features/admin_manages_organization_scopes_spec.rb +7 -6
  136. data/decidim-admin/spec/features/admin_manages_organization_spec.rb +14 -0
  137. data/decidim-admin/spec/features/admin_manages_participatory_process_groups_spec.rb +6 -6
  138. data/decidim-admin/spec/features/admin_manages_participatory_processes_spec.rb +27 -5
  139. data/decidim-admin/spec/features/admin_manages_user_groups_spec.rb +1 -1
  140. data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_process_admins_spec.rb +2 -2
  141. data/decidim-admin/spec/features/static_pages_spec.rb +9 -7
  142. data/decidim-admin/spec/jobs/newsletter_job_spec.rb +2 -0
  143. data/decidim-admin/spec/queries/process_admin_roles_for_process_spec.rb +4 -3
  144. data/decidim-admin/spec/shared/manage_process_admins_examples.rb +31 -8
  145. data/decidim-admin/spec/shared/manage_process_attachments_examples.rb +1 -1
  146. data/decidim-admin/spec/shared/manage_process_categories_examples.rb +11 -26
  147. data/decidim-admin/spec/shared/manage_process_steps_examples.rb +8 -23
  148. data/decidim-admin/spec/shared/manage_processes_examples.rb +5 -33
  149. data/decidim-admin/spec/support/processes_menu_links_helpers.rb +1 -1
  150. data/decidim-admin/yarn.lock +4 -0
  151. data/decidim-api/app/controllers/decidim/api/application_controller.rb +2 -1
  152. data/decidim-budgets/app/controllers/decidim/budgets/admin/projects_controller.rb +1 -1
  153. data/decidim-budgets/app/controllers/decidim/budgets/line_items_controller.rb +21 -15
  154. data/decidim-budgets/app/views/decidim/budgets/admin/projects/_form.html.erb +34 -24
  155. data/decidim-budgets/app/views/decidim/budgets/admin/projects/edit.html.erb +3 -5
  156. data/decidim-budgets/app/views/decidim/budgets/admin/projects/index.html.erb +52 -34
  157. data/decidim-budgets/app/views/decidim/budgets/admin/projects/new.html.erb +4 -5
  158. data/decidim-budgets/app/views/decidim/budgets/projects/_filters.html.erb +1 -1
  159. data/decidim-budgets/config/i18n-tasks.yml +1 -0
  160. data/decidim-budgets/config/locales/ca.yml +5 -0
  161. data/decidim-budgets/config/locales/en.yml +5 -0
  162. data/decidim-budgets/config/locales/es.yml +5 -0
  163. data/decidim-budgets/config/locales/eu.yml +27 -0
  164. data/decidim-budgets/spec/features/orders_spec.rb +22 -0
  165. data/decidim-budgets/spec/shared/manage_attachments_examples.rb +1 -1
  166. data/decidim-budgets/spec/shared/manage_projects_examples.rb +10 -8
  167. data/decidim-comments/README.md +33 -0
  168. data/decidim-comments/app/assets/javascripts/decidim/comments/bundle.js +0 -0
  169. data/decidim-comments/app/assets/javascripts/decidim/comments/comments.js.erb +2 -0
  170. data/decidim-comments/app/frontend/application/{apollo_client.js → apollo_client.ts} +5 -5
  171. data/decidim-comments/app/frontend/application/application.component.test.tsx +36 -0
  172. data/decidim-comments/app/frontend/application/application.component.tsx +37 -0
  173. data/decidim-comments/app/frontend/application/icon.component.test.tsx +49 -0
  174. data/decidim-comments/app/frontend/application/icon.component.tsx +35 -0
  175. data/decidim-comments/app/frontend/comments/{add_comment_form.component.test.jsx → add_comment_form.component.test.tsx} +98 -92
  176. data/decidim-comments/app/frontend/comments/{add_comment_form.component.jsx → add_comment_form.component.tsx} +152 -153
  177. data/decidim-comments/app/frontend/comments/{comment.component.test.jsx → comment.component.test.tsx} +59 -71
  178. data/decidim-comments/app/frontend/comments/{comment.component.jsx → comment.component.tsx} +114 -116
  179. data/decidim-comments/app/frontend/comments/comment_order_selector.component.test.tsx +21 -0
  180. data/decidim-comments/app/frontend/comments/comment_order_selector.component.tsx +88 -0
  181. data/decidim-comments/app/frontend/comments/comment_thread.component.test.tsx +65 -0
  182. data/decidim-comments/app/frontend/comments/comment_thread.component.tsx +70 -0
  183. data/decidim-comments/app/frontend/comments/{comments.component.test.jsx → comments.component.test.tsx} +38 -81
  184. data/decidim-comments/app/frontend/comments/{comments.component.jsx → comments.component.tsx} +49 -63
  185. data/decidim-comments/app/frontend/comments/down_vote_button.component.test.tsx +39 -0
  186. data/decidim-comments/app/frontend/comments/down_vote_button.component.tsx +89 -0
  187. data/decidim-comments/app/frontend/comments/up_vote_button.component.test.tsx +39 -0
  188. data/decidim-comments/app/frontend/comments/up_vote_button.component.tsx +89 -0
  189. data/decidim-comments/app/frontend/comments/vote_button.component.tsx +36 -0
  190. data/decidim-comments/app/frontend/comments/{vote_button_component.test.jsx → vote_button_component.test.tsx} +16 -20
  191. data/decidim-comments/app/frontend/entry.ts +19 -0
  192. data/decidim-comments/app/frontend/{comments → fragments}/add_comment_form_commentable.fragment.graphql +1 -1
  193. data/decidim-comments/app/frontend/{comments → fragments}/add_comment_form_session.fragment.graphql +1 -1
  194. data/decidim-comments/app/frontend/{comments → fragments}/comment.fragment.graphql +3 -1
  195. data/decidim-comments/app/frontend/{comments → fragments}/comment_data.fragment.graphql +6 -3
  196. data/decidim-comments/app/frontend/{comments → fragments}/comment_thread.fragment.graphql +3 -1
  197. data/decidim-comments/app/frontend/{comments/down_vote.fragment.graphql → fragments/down_vote_button.fragment.graphql} +2 -2
  198. data/decidim-comments/app/frontend/{comments/up_vote.fragment.graphql → fragments/up_vote_button.fragment.graphql} +2 -2
  199. data/decidim-comments/app/frontend/{comments/add_comment_form.mutation.graphql → mutations/add_comment.mutation.graphql} +3 -1
  200. data/decidim-comments/app/frontend/{comments → mutations}/down_vote.mutation.graphql +3 -1
  201. data/decidim-comments/app/frontend/{comments → mutations}/up_vote.mutation.graphql +3 -1
  202. data/decidim-comments/app/frontend/{comments → queries}/comments.query.graphql +4 -1
  203. data/decidim-comments/app/frontend/support/{asset_url.js → asset_url.ts} +1 -1
  204. data/decidim-comments/app/frontend/support/{generate_comments_data.js → generate_comments_data.ts} +11 -6
  205. data/decidim-comments/app/frontend/support/{generate_user_data.js → generate_user_data.ts} +2 -2
  206. data/decidim-comments/app/frontend/support/{generate_user_group_data.js → generate_user_group_data.ts} +2 -2
  207. data/decidim-comments/app/frontend/support/graphql_transformer.js +32 -0
  208. data/decidim-comments/app/frontend/support/load_translations.ts +44 -0
  209. data/decidim-comments/app/frontend/support/{require_all.js → require_all.ts} +1 -1
  210. data/decidim-comments/app/frontend/support/{resolve_graphql_query.js → resolve_graphql_query.ts} +7 -7
  211. data/decidim-comments/app/frontend/support/schema.ts +119 -0
  212. data/decidim-comments/config/locales/eu.yml +29 -5
  213. data/decidim-dev/Rakefile +2 -0
  214. data/decidim-dev/config/locales/eu.yml +1 -1
  215. data/decidim-dev/decidim-dev.gemspec +1 -1
  216. data/decidim-dev/lib/decidim/dev/test/rspec_support/capybara.rb +1 -4
  217. data/decidim-dev/lib/decidim/dev/test/rspec_support/feature.rb +1 -0
  218. data/decidim-dev/lib/decidim/dev/test/rspec_support/helpers.rb +1 -1
  219. data/decidim-dev/lib/decidim/dev/test/rspec_support/phantomjs_polyfills/phantomjs-shim.js +215 -0
  220. data/decidim-dev/lib/decidim/dev/test/rspec_support/translation_helpers.rb +1 -1
  221. data/decidim-dev/lib/generators/decidim/dummy_generator.rb +5 -0
  222. data/decidim-meetings/app/controllers/decidim/meetings/admin/application_controller.rb +1 -1
  223. data/decidim-meetings/app/views/decidim/meetings/admin/meeting_closes/_form.html.erb +30 -19
  224. data/decidim-meetings/app/views/decidim/meetings/admin/meeting_closes/edit.html.erb +3 -5
  225. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/_form.html.erb +46 -35
  226. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/edit.html.erb +5 -6
  227. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/index.html.erb +72 -51
  228. data/decidim-meetings/app/views/decidim/meetings/admin/meetings/new.html.erb +4 -6
  229. data/decidim-meetings/app/views/decidim/meetings/meetings/_filters.html.erb +1 -1
  230. data/decidim-meetings/config/locales/ca.yml +2 -1
  231. data/decidim-meetings/config/locales/en.yml +2 -1
  232. data/decidim-meetings/config/locales/es.yml +2 -1
  233. data/decidim-meetings/config/locales/eu.yml +25 -5
  234. data/decidim-meetings/config/locales/fi.yml +0 -1
  235. data/decidim-meetings/spec/shared/manage_attachments_examples.rb +1 -1
  236. data/decidim-meetings/spec/shared/manage_meetings_examples.rb +18 -16
  237. data/decidim-pages/app/views/decidim/pages/admin/pages/_form.html.erb +10 -3
  238. data/decidim-pages/app/views/decidim/pages/admin/pages/edit.html.erb +3 -5
  239. data/decidim-pages/config/locales/eu.yml +4 -2
  240. data/decidim-pages/spec/features/admin_spec.rb +1 -1
  241. data/decidim-proposals/app/controllers/decidim/proposals/admin/proposals_controller.rb +1 -1
  242. data/decidim-proposals/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +14 -8
  243. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/_form.html.erb +28 -20
  244. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/index.html.erb +60 -43
  245. data/decidim-proposals/app/views/decidim/proposals/admin/proposals/new.html.erb +3 -5
  246. data/decidim-proposals/app/views/decidim/proposals/proposals/_filters.html.erb +1 -1
  247. data/decidim-proposals/config/locales/ca.yml +3 -0
  248. data/decidim-proposals/config/locales/en.yml +4 -1
  249. data/decidim-proposals/config/locales/es.yml +3 -0
  250. data/decidim-proposals/config/locales/eu.yml +42 -19
  251. data/decidim-proposals/config/locales/fi.yml +0 -1
  252. data/decidim-proposals/spec/shared/manage_proposals_examples.rb +15 -13
  253. data/decidim-results/README.md +1 -1
  254. data/decidim-results/app/controllers/decidim/results/admin/results_controller.rb +1 -1
  255. data/decidim-results/app/views/decidim/results/admin/results/_form.html.erb +30 -21
  256. data/decidim-results/app/views/decidim/results/admin/results/edit.html.erb +4 -5
  257. data/decidim-results/app/views/decidim/results/admin/results/index.html.erb +40 -25
  258. data/decidim-results/app/views/decidim/results/admin/results/new.html.erb +4 -5
  259. data/decidim-results/app/views/decidim/results/results/_filters.html.erb +1 -1
  260. data/decidim-results/config/locales/ca.yml +2 -0
  261. data/decidim-results/config/locales/en.yml +2 -0
  262. data/decidim-results/config/locales/es.yml +2 -0
  263. data/decidim-results/config/locales/eu.yml +22 -4
  264. data/decidim-results/spec/shared/manage_results_examples.rb +10 -8
  265. data/decidim-system/config/locales/eu.yml +60 -2
  266. data/lib/generators/decidim/app_generator.rb +0 -4
  267. data/lib/generators/decidim/install_generator.rb +0 -4
  268. data/lib/generators/decidim/templates/README.md.erb +18 -18
  269. data/package.json +47 -22
  270. data/tsconfig.json +17 -0
  271. data/tslint.json +12 -0
  272. data/webpack.config.js +8 -6
  273. data/webpack.d.ts +5 -0
  274. data/yarn.lock +1461 -781
  275. metadata +119 -83
  276. data/decidim-admin/app/assets/stylesheets/decidim/admin/_actions.scss +0 -8
  277. data/decidim-admin/app/assets/stylesheets/decidim/admin/_forms.scss +0 -10
  278. data/decidim-admin/app/assets/stylesheets/decidim/admin/_foundation_and_overrides.scss +0 -53
  279. data/decidim-admin/app/assets/stylesheets/decidim/admin/_icons.scss +0 -9
  280. data/decidim-admin/app/assets/stylesheets/decidim/admin/_layout.scss +0 -27
  281. data/decidim-admin/app/assets/stylesheets/decidim/admin/_settings.scss +0 -566
  282. data/decidim-admin/app/assets/stylesheets/decidim/admin/_tables.scss +0 -21
  283. data/decidim-admin/app/views/layouts/decidim/admin/_login_items.html.erb +0 -8
  284. data/decidim-admin/app/views/layouts/decidim/admin/_sidebar.html.erb +0 -22
  285. data/decidim-comments/app/frontend/application/application.component.jsx +0 -37
  286. data/decidim-comments/app/frontend/application/application.component.test.jsx +0 -33
  287. data/decidim-comments/app/frontend/application/icon.component.jsx +0 -26
  288. data/decidim-comments/app/frontend/application/icon.component.test.jsx +0 -53
  289. data/decidim-comments/app/frontend/comments/comment_order_selector.component.jsx +0 -72
  290. data/decidim-comments/app/frontend/comments/comment_order_selector.component.test.jsx +0 -20
  291. data/decidim-comments/app/frontend/comments/comment_thread.component.jsx +0 -75
  292. data/decidim-comments/app/frontend/comments/comment_thread.component.test.jsx +0 -83
  293. data/decidim-comments/app/frontend/comments/down_vote_button.component.jsx +0 -98
  294. data/decidim-comments/app/frontend/comments/down_vote_button.component.test.jsx +0 -48
  295. data/decidim-comments/app/frontend/comments/featured_comment.component.jsx +0 -23
  296. data/decidim-comments/app/frontend/comments/featured_comment.component.test.jsx +0 -15
  297. data/decidim-comments/app/frontend/comments/up_vote_button.component.jsx +0 -98
  298. data/decidim-comments/app/frontend/comments/up_vote_button.component.test.jsx +0 -48
  299. data/decidim-comments/app/frontend/comments/vote_button.component.jsx +0 -32
  300. data/decidim-comments/app/frontend/entry.js +0 -17
  301. data/decidim-comments/app/frontend/entry.test.js +0 -31
  302. data/decidim-comments/app/frontend/support/load_translations.js +0 -23
  303. data/decidim-comments/app/frontend/support/stub_component.js +0 -29
  304. data/decidim-dev/lib/decidim/dev/test/rspec_support/phantomjs_polyfills/bind-polyfill.js +0 -18
  305. data/decidim-dev/lib/decidim/dev/test/rspec_support/phantomjs_polyfills/object-assign-polyfill.js +0 -24
  306. data/karma.conf.js +0 -45
  307. data/lib/generators/decidim/review_app_generator.rb +0 -53
  308. data/lib/generators/decidim/templates/app.json.erb +0 -16
@@ -0,0 +1,8 @@
1
+ //Generic toggle expand
2
+
3
+ .toggle-show{
4
+ display: none;
5
+ &.is-expanded{
6
+ display: block;
7
+ }
8
+ }
@@ -22,16 +22,25 @@ module Decidim
22
22
  def call
23
23
  return broadcast(:invalid) if form.invalid?
24
24
 
25
- create_attachment
26
- broadcast(:ok)
25
+ build_attachment
26
+
27
+ if @attachment.valid?
28
+ @attachment.save!
29
+ broadcast(:ok)
30
+ else
31
+ if @attachment.errors.has_key? :file
32
+ @form.errors.add :file, @attachment.errors[:file]
33
+ end
34
+ broadcast(:invalid)
35
+ end
27
36
  end
28
37
 
29
38
  private
30
39
 
31
40
  attr_reader :form
32
41
 
33
- def create_attachment
34
- Attachment.create!(
42
+ def build_attachment
43
+ @attachment = Attachment.new(
35
44
  title: form.title,
36
45
  description: form.description,
37
46
  file: form.file,
@@ -34,7 +34,7 @@ module Decidim
34
34
 
35
35
  private
36
36
 
37
- attr_reader :form
37
+ attr_reader :form, :participatory_process
38
38
 
39
39
  def update_participatory_process
40
40
  @participatory_process.assign_attributes(attributes)
@@ -47,8 +47,8 @@ module Decidim
47
47
  subtitle: form.subtitle,
48
48
  slug: form.slug,
49
49
  hashtag: form.hashtag,
50
- hero_image: form.hero_image,
51
- banner_image: form.banner_image,
50
+ hero_image: form.hero_image || participatory_process.hero_image,
51
+ banner_image: form.banner_image || participatory_process.banner_image,
52
52
  promoted: form.promoted,
53
53
  description: form.description,
54
54
  short_description: form.short_description,
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+ module Decidim
3
+ module Admin
4
+ # A command with all the business logic when updated a participatory
5
+ # process admin in the system.
6
+ class UpdateParticipatoryProcessAdmin < Rectify::Command
7
+ # Public: Initializes the command.
8
+ #
9
+ # form - A form object with the params.
10
+ # participatory_process - The ParticipatoryProcess that will hold the
11
+ # user role
12
+ def initialize(form, user_role)
13
+ @form = form
14
+ @user_role = user_role
15
+ end
16
+
17
+ # Executes the command. Broadcasts these events:
18
+ #
19
+ # - :ok when everything is valid.
20
+ # - :invalid if the form wasn't valid and we couldn't proceed.
21
+ #
22
+ # Returns nothing.
23
+ def call
24
+ return broadcast(:invalid) if form.invalid?
25
+ return broadcast(:invalid) unless user_role
26
+
27
+ update_role!
28
+ broadcast(:ok)
29
+ end
30
+
31
+ private
32
+
33
+ attr_reader :form, :user_role
34
+
35
+ def update_role!
36
+ user_role.update_attributes!(role: form.role)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -2,12 +2,18 @@
2
2
  module Decidim
3
3
  module Admin
4
4
  # The main application controller that inherits from Rails.
5
- class ApplicationController < ActionController::Base
5
+ class ApplicationController < ::DecidimController
6
6
  include NeedsOrganization
7
7
  include NeedsAuthorization
8
8
  include FormFactory
9
9
  include LocaleSwitcher
10
10
  include PayloadInfo
11
+ helper Decidim::Admin::ApplicationHelper
12
+ helper Decidim::Admin::AttributesDisplayHelper
13
+ helper Decidim::Admin::FeatureSettingsHelper
14
+ helper Decidim::Admin::ProcessGroupsForSelectHelper
15
+ helper Decidim::Admin::ProcessesForSelectHelper
16
+ helper Decidim::Admin::IconLinkHelper
11
17
  helper Decidim::DecidimFormHelper
12
18
  helper Decidim::ReplaceButtonsHelper
13
19
  helper Decidim::OrganizationScopesHelper
@@ -28,7 +28,7 @@ module Decidim
28
28
  email = NewsletterMailer.newsletter(current_user, @newsletter)
29
29
  Premailer::Rails::Hook.perform(email)
30
30
 
31
- render text: email.html_part.body.decoded
31
+ render html: email.html_part.body.decoded
32
32
  end
33
33
 
34
34
  def create
@@ -6,6 +6,8 @@ module Decidim
6
6
  # Controller that allows managing the user organization.
7
7
  #
8
8
  class OrganizationController < ApplicationController
9
+ layout "decidim/admin/settings"
10
+
9
11
  def edit
10
12
  authorize! :update, current_organization
11
13
  @form = form(OrganizationForm).from_model(current_organization)
@@ -14,6 +14,11 @@ module Decidim
14
14
  authorize! :read, Decidim::Admin::ParticipatoryProcessUserRole
15
15
  end
16
16
 
17
+ def new
18
+ authorize! :create, Decidim::Admin::ParticipatoryProcessUserRole
19
+ @form = form(ParticipatoryProcessUserRoleForm).instance
20
+ end
21
+
17
22
  def create
18
23
  authorize! :create, Decidim::Admin::ParticipatoryProcessUserRole
19
24
  @form = form(ParticipatoryProcessUserRoleForm).from_params(params)
@@ -30,6 +35,30 @@ module Decidim
30
35
  end
31
36
  end
32
37
 
38
+ def edit
39
+ @user_role = collection.find(params[:id])
40
+ authorize! :update, @user_role
41
+ @form = form(ParticipatoryProcessUserRoleForm).from_model(@user_role.user, current_process: participatory_process)
42
+ end
43
+
44
+ def update
45
+ @user_role = collection.find(params[:id])
46
+ authorize! :update, @user_role
47
+ @form = form(ParticipatoryProcessUserRoleForm).from_params(params)
48
+
49
+ UpdateParticipatoryProcessAdmin.call(@form, @user_role) do
50
+ on(:ok) do
51
+ flash[:notice] = I18n.t("participatory_process_user_roles.update.success", scope: "decidim.admin")
52
+ redirect_to participatory_process_user_roles_path(participatory_process)
53
+ end
54
+
55
+ on(:invalid) do
56
+ flash.now[:alert] = I18n.t("participatory_process_user_roles.update.error", scope: "decidim.admin")
57
+ render :edit
58
+ end
59
+ end
60
+ end
61
+
33
62
  def destroy
34
63
  @participatory_process_user_role = collection.find(params[:id])
35
64
  authorize! :destroy, @participatory_process_user_role
@@ -8,7 +8,6 @@ module Decidim
8
8
  class ParticipatoryProcessesController < ApplicationController
9
9
  helper_method :participatory_process
10
10
  helper Decidim::OrganizationScopesHelper
11
- layout "decidim/admin/participatory_process", only: [:show, :edit, :update]
12
11
 
13
12
  def index
14
13
  authorize! :index, Decidim::ParticipatoryProcess
@@ -41,6 +40,7 @@ module Decidim
41
40
  @participatory_process = collection.find(params[:id])
42
41
  authorize! :update, @participatory_process
43
42
  @form = form(ParticipatoryProcessForm).from_model(@participatory_process)
43
+ render layout: "decidim/admin/participatory_process"
44
44
  end
45
45
 
46
46
  def update
@@ -51,7 +51,7 @@ module Decidim
51
51
  UpdateParticipatoryProcess.call(@participatory_process, @form) do
52
52
  on(:ok) do |participatory_process|
53
53
  flash[:notice] = I18n.t("participatory_processes.update.success", scope: "decidim.admin")
54
- redirect_to participatory_process_path(participatory_process)
54
+ redirect_to edit_participatory_process_path(participatory_process)
55
55
  end
56
56
 
57
57
  on(:invalid) do
@@ -6,6 +6,8 @@ module Decidim
6
6
  # Controller that allows managing all scopes at the admin panel.
7
7
  #
8
8
  class ScopesController < ApplicationController
9
+ layout "decidim/admin/settings"
10
+
9
11
  def index
10
12
  authorize! :index, Scope
11
13
  @scopes = collection
@@ -6,6 +6,8 @@ module Decidim
6
6
  # Controller that allows managing all pages at the admin panel.
7
7
  #
8
8
  class StaticPagesController < ApplicationController
9
+ layout "decidim/admin/pages"
10
+
9
11
  def index
10
12
  authorize! :index, StaticPage
11
13
  @pages = collection
@@ -5,9 +5,11 @@ module Decidim
5
5
  # Controller that allows managing user groups at the admin panel.
6
6
  #
7
7
  class UserGroupsController < ApplicationController
8
+ layout "decidim/admin/users"
9
+
8
10
  def index
9
11
  authorize! :index, UserGroup
10
- @user_groups = collection
12
+ @user_groups = collection.page(params[:page]).per(15)
11
13
  end
12
14
 
13
15
  def verify
@@ -8,7 +8,7 @@ module Decidim
8
8
  class UsersController < Admin::ApplicationController
9
9
  def index
10
10
  authorize! :index, :admin_users
11
- @users = collection
11
+ @users = collection.page(params[:page]).per(15)
12
12
  end
13
13
 
14
14
  def new
@@ -14,6 +14,14 @@ module Decidim
14
14
  def title
15
15
  current_organization.name
16
16
  end
17
+
18
+ def admin_menu_item_to(name, url, options={})
19
+ content_tag :li, class: options[:active_class] || active_link_to_class(url, active: options[:active], class_active: "is-active") do
20
+ active_link_to url, active: options[:active], class_active: "is-active" do
21
+ icon(options[:icon_name] || name) + I18n.t("menu.#{name}", scope: "decidim.admin")
22
+ end
23
+ end
24
+ end
17
25
  end
18
26
  end
19
27
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+ module Decidim
3
+ module Admin
4
+ module IconLinkHelper
5
+ # This helper adds the necessary boilerplate for the admin icon links.
6
+ #
7
+ # icon_name - A String representing the icon name from Iconic
8
+ # http://useiconic.com/open
9
+ # link - The path or url where the link should point to.
10
+ # title - A String that will be shown when hovering the icon.
11
+ # options - An optional Hash containing extra data for the link:
12
+ # method - Symbol of HTTP verb. Supported verbs are :post, :get, :delete, :patch, and :put.
13
+ # class - Any extra class that will be added to the link.
14
+ # data - This option can be used to add custom data attributes.
15
+ #
16
+ def icon_link_to(icon_name, link, title, options = {})
17
+ link_to(link,
18
+ method: options[:method],
19
+ class: "action-icon #{options[:class]}",
20
+ data: { tooltip: true, disable_hover: false }.merge(options[:data] || {}),
21
+ tooltip: true,
22
+ disable_hover: false,
23
+ title: title,
24
+ target: options[:target]) do
25
+ icon(icon_name)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -25,7 +25,7 @@ module Decidim
25
25
  private
26
26
 
27
27
  def recipients
28
- @recipients ||= User.where(newsletter_notifications: true).where.not(email: nil)
28
+ @recipients ||= User.where(newsletter_notifications: true).where.not(email: nil, confirmed_at: nil)
29
29
  end
30
30
  end
31
31
  end
@@ -24,7 +24,7 @@ module Decidim
24
24
  # Returns an ActiveRecord::Relation.
25
25
  def query
26
26
  ParticipatoryProcessUserRole
27
- .where(participatory_process: process, role: :admin)
27
+ .where(participatory_process: process, role: [:admin, :collaborator])
28
28
  end
29
29
 
30
30
  private
@@ -1,11 +1,32 @@
1
- <div class="field">
2
- <%= form.translated :text_field, :title, autofocus: true %>
3
- </div>
1
+ <div class="card">
2
+ <div class="card-divider">
3
+ <h2 class="card-title">
4
+ <%= title %>
5
+ </h2>
6
+ </div>
4
7
 
5
- <div class="field">
6
- <%= form.translated :text_field, :description %>
7
- </div>
8
+ <div class="card-section">
9
+ <div class="row column">
10
+ <%= form.translated :text_field, :title, autofocus: true %>
11
+ </div>
12
+
13
+ <div class="row column">
14
+ <%= form.translated :text_field, :description %>
15
+ </div>
16
+
17
+ <div class="row column">
18
+ <%= form.file_field :file %>
19
+ </div>
8
20
 
9
- <div class="field">
10
- <%= form.file_field :file %>
21
+ <% if @attachment && @attachment.file.present? %>
22
+ <div class="row column">
23
+ <label><%= t('.current_file') %></label>
24
+ <% if @attachment.photo? %>
25
+ <%= image_tag form.object.file.url(:thumbnail) %>
26
+ <% end %>
27
+ <label><%= t('.url') %></label>
28
+ <%= link_to @attachment.file.url, @attachment.file.url, target: "_blank" %>
29
+ </div>
30
+ <% end %>
31
+ </div>
11
32
  </div>
@@ -1,9 +1,7 @@
1
- <h3><%= t ".title" %></h3>
1
+ <%= decidim_form_for(@form, url: url_for([@attachment.attached_to, @attachment]), html: { class: "form edit_participatory_process_attachment" }) do |f| %>
2
+ <%= render partial: 'decidim/admin/attachments/form', object: f, locals: { title: t(".title") } %>
2
3
 
3
- <%= decidim_form_for(@form, url: url_for([@attachment.attached_to, @attachment])) do |f| %>
4
- <%= render partial: 'decidim/admin/attachments/form', object: f %>
5
-
6
- <div class="actions">
4
+ <div class="button--double form-general-submit">
7
5
  <%= f.submit t(".update") %>
8
6
  </div>
9
7
  <% end %>
@@ -1,37 +1,47 @@
1
- <section id="attachments">
2
- <h4><%= t(".attachments_title", scope: "decidim.admin") %></h4>
1
+ <div class='card' id="attachments">
2
+ <div class="card-divider">
3
+ <h2 class="card-title">
4
+ <%= t(".attachments_title", scope: "decidim.admin") %>
5
+ <% if can? :create, authorization_object %>
6
+ <%= link_to t("actions.new", scope: "decidim.admin", name: t("models.attachment.name", scope: "decidim.admin")), url_for(action: :new), class: 'button tiny button--title new' %>
7
+ <% end %>
8
+ </h2>
9
+ </div>
3
10
 
4
- <% if can? :create, authorization_object %>
5
- <div class="actions title">
6
- <%= link_to t("actions.new", scope: "decidim.admin", name: t("models.attachment.name", scope: "decidim.admin")), url_for(action: :new), class: 'new' %>
7
- </div>
8
- <% end %>
11
+ <div class="card-section">
12
+ <% if attached_to.attachments.any? %>
13
+ <div class="table-scroll">
14
+ <table class="table-list">
15
+ <thead>
16
+ <tr>
17
+ <th><%= t("models.attachment.fields.title", scope: "decidim.admin") %></th>
18
+ <th><%= t("models.attachment.fields.content_type", scope: "decidim.admin") %></th>
19
+ <th class="actions"></th>
20
+ </tr>
21
+ </thead>
22
+ <tbody>
23
+ <% attached_to.attachments.each do |attachment| %>
24
+ <tr data-id="<%= attachment.id %>">
25
+ <td>
26
+ <%= link_to translated_attribute(attachment.title), edit_polymorphic_path([attached_to, attachment]) %><br />
27
+ </td>
28
+ <td>
29
+ <%= attachment.file_type %>
30
+ </td>
31
+ <td class="table-list__actions">
32
+ <% if can? :update, authorization_object %>
33
+ <%= icon_link_to "pencil", edit_polymorphic_path([attached_to, attachment]), t("actions.edit", scope: "decidim.admin"), class: "action-icon--edit" %>
34
+ <% end %>
9
35
 
10
- <% if attached_to.attachments.any? %>
11
- <table class="stack">
12
- <thead>
13
- <tr>
14
- <th><%= t("models.attachment.fields.title", scope: "decidim.admin") %></th>
15
- <th><%= t("models.attachment.fields.content_type", scope: "decidim.admin") %></th>
16
- <th class="actions"><%= t("actions.title", scope: "decidim.admin") %></th>
17
- </tr>
18
- </thead>
19
- <tbody>
20
- <% attached_to.attachments.each do |attachment| %>
21
- <tr data-id="<%= attachment.id %>">
22
- <td>
23
- <%= link_to translated_attribute(attachment.title), polymorphic_path([attached_to, attachment]) %><br />
24
- </td>
25
- <td>
26
- <%= attachment.file_type %>
27
- </td>
28
- <td class="actions">
29
- <%= link_to t("actions.edit", scope: "decidim.admin"), edit_polymorphic_path([attached_to, attachment]) if can? :update, authorization_object %>
30
- <%= link_to t("actions.destroy", scope: "decidim.admin"), polymorphic_path([attached_to, attachment]), method: :delete, class: "small alert button", data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } if can? :destroy, authorization_object %>
31
- </td>
32
- </tr>
33
- <% end %>
34
- </tbody>
35
- </table>
36
- <% end %>
37
- </section>
36
+ <% if can? :destroy, authorization_object %>
37
+ <%= icon_link_to "circle-x", polymorphic_path([attached_to, attachment]), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
38
+ <% end %>
39
+ </td>
40
+ </tr>
41
+ <% end %>
42
+ </tbody>
43
+ </table>
44
+ </div>
45
+ <% end %>
46
+ </div>
47
+ </div>