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.
- checksums.yaml +4 -4
- data/.babelrc +2 -1
- data/.ruby-version +1 -1
- data/.travis.yml +4 -6
- data/Dockerfile +2 -2
- data/Gemfile +1 -1
- data/Gemfile.lock +48 -48
- data/README.md +6 -1
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_decidim.scss +9 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_variables.scss +7 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/application.scss +2 -19
- data/decidim-admin/app/assets/stylesheets/decidim/admin/extra/_categories.scss +5 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/{_email_preview.scss → extra/_email_preview.scss} +0 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/{_login.scss → extra/_login.scss} +0 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/extra/_select_multiple.scss +3 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/extra/_title_bar.scss +5 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_action-icon.scss +13 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_buttons.scss +44 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_callouts.scss +32 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_cards.scss +36 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_char-counter.scss +20 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_component-counter.scss +17 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_forms.scss +80 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_icons.scss +65 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_layout.scss +67 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_main-nav.scss +41 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_modules.scss +24 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_process-header.scss +11 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_secondary-nav.scss +95 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_table-list.scss +78 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_tabs.scss +49 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_title-bar.scss +32 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_typography.scss +15 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/modules/_user-login.scss +23 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_fontface.scss +27 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_helpers.scss +25 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_keyframes.scss +21 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_mixins.scss +20 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_settings.scss +590 -0
- data/decidim-admin/app/assets/stylesheets/decidim/admin/utils/_toggle-expand.scss +8 -0
- data/decidim-admin/app/commands/decidim/admin/create_attachment.rb +13 -4
- data/decidim-admin/app/commands/decidim/admin/update_participatory_process.rb +3 -3
- data/decidim-admin/app/commands/decidim/admin/update_participatory_process_admin.rb +40 -0
- data/decidim-admin/app/controllers/decidim/admin/application_controller.rb +7 -1
- data/decidim-admin/app/controllers/decidim/admin/newsletters_controller.rb +1 -1
- data/decidim-admin/app/controllers/decidim/admin/organization_controller.rb +2 -0
- data/decidim-admin/app/controllers/decidim/admin/participatory_process_user_roles_controller.rb +29 -0
- data/decidim-admin/app/controllers/decidim/admin/participatory_processes_controller.rb +2 -2
- data/decidim-admin/app/controllers/decidim/admin/scopes_controller.rb +2 -0
- data/decidim-admin/app/controllers/decidim/admin/static_pages_controller.rb +2 -0
- data/decidim-admin/app/controllers/decidim/admin/user_groups_controller.rb +3 -1
- data/decidim-admin/app/controllers/decidim/admin/users_controller.rb +1 -1
- data/decidim-admin/app/helpers/decidim/admin/application_helper.rb +8 -0
- data/decidim-admin/app/helpers/decidim/admin/icon_link_helper.rb +30 -0
- data/decidim-admin/app/jobs/decidim/admin/newsletter_job.rb +1 -1
- data/decidim-admin/app/queries/decidim/admin/process_admin_roles_for_process.rb +1 -1
- data/decidim-admin/app/views/decidim/admin/attachments/_form.html.erb +29 -8
- data/decidim-admin/app/views/decidim/admin/attachments/edit.html.erb +3 -5
- data/decidim-admin/app/views/decidim/admin/attachments/index.html.erb +45 -35
- data/decidim-admin/app/views/decidim/admin/attachments/new.html.erb +3 -5
- data/decidim-admin/app/views/decidim/admin/categories/_form.html.erb +18 -10
- data/decidim-admin/app/views/decidim/admin/categories/edit.html.erb +3 -5
- data/decidim-admin/app/views/decidim/admin/categories/index.html.erb +57 -42
- data/decidim-admin/app/views/decidim/admin/categories/new.html.erb +3 -5
- data/decidim-admin/app/views/decidim/admin/dashboard/show.html.erb +6 -3
- data/decidim-admin/app/views/decidim/admin/features/_feature.html.erb +11 -11
- data/decidim-admin/app/views/decidim/admin/features/_form.html.erb +56 -48
- data/decidim-admin/app/views/decidim/admin/features/edit.html.erb +3 -5
- data/decidim-admin/app/views/decidim/admin/features/index.html.erb +21 -19
- data/decidim-admin/app/views/decidim/admin/features/new.html.erb +3 -4
- data/decidim-admin/app/views/decidim/admin/moderations/index.html.erb +71 -61
- data/decidim-admin/app/views/decidim/admin/newsletters/_form.html.erb +7 -1
- data/decidim-admin/app/views/decidim/admin/newsletters/edit.html.erb +10 -8
- data/decidim-admin/app/views/decidim/admin/newsletters/index.html.erb +50 -43
- data/decidim-admin/app/views/decidim/admin/newsletters/new.html.erb +10 -8
- data/decidim-admin/app/views/decidim/admin/newsletters/show.html.erb +20 -12
- data/decidim-admin/app/views/decidim/admin/organization/_form.html.erb +98 -62
- data/decidim-admin/app/views/decidim/admin/organization/edit.html.erb +11 -8
- data/decidim-admin/app/views/decidim/admin/participatory_process_groups/_form.html.erb +4 -4
- data/decidim-admin/app/views/decidim/admin/participatory_process_groups/edit.html.erb +15 -9
- data/decidim-admin/app/views/decidim/admin/participatory_process_groups/index.html.erb +37 -35
- data/decidim-admin/app/views/decidim/admin/participatory_process_groups/new.html.erb +10 -8
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/_form.html.erb +21 -11
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/edit.html.erb +3 -4
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/index.html.erb +60 -51
- data/decidim-admin/app/views/decidim/admin/participatory_process_steps/new.html.erb +4 -5
- data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/_form.html.erb +23 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/edit.html.erb +7 -0
- data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/index.html.erb +46 -34
- data/decidim-admin/app/views/decidim/admin/participatory_process_user_roles/new.html.erb +7 -0
- data/decidim-admin/app/views/decidim/admin/participatory_processes/_form.html.erb +103 -72
- data/decidim-admin/app/views/decidim/admin/participatory_processes/edit.html.erb +15 -17
- data/decidim-admin/app/views/decidim/admin/participatory_processes/index.html.erb +52 -43
- data/decidim-admin/app/views/decidim/admin/participatory_processes/new.html.erb +6 -5
- data/decidim-admin/app/views/decidim/admin/scopes/edit.html.erb +9 -7
- data/decidim-admin/app/views/decidim/admin/scopes/index.html.erb +37 -36
- data/decidim-admin/app/views/decidim/admin/scopes/new.html.erb +9 -6
- data/decidim-admin/app/views/decidim/admin/static_pages/_form.html.erb +3 -3
- data/decidim-admin/app/views/decidim/admin/static_pages/edit.html.erb +10 -8
- data/decidim-admin/app/views/decidim/admin/static_pages/index.html.erb +38 -37
- data/decidim-admin/app/views/decidim/admin/static_pages/new.html.erb +10 -8
- data/decidim-admin/app/views/decidim/admin/user_groups/index.html.erb +37 -31
- data/decidim-admin/app/views/decidim/admin/users/_form.html.erb +5 -4
- data/decidim-admin/app/views/decidim/admin/users/index.html.erb +57 -52
- data/decidim-admin/app/views/decidim/admin/users/new.html.erb +10 -7
- data/decidim-admin/app/views/layouts/decidim/admin/_application.html.erb +23 -36
- data/decidim-admin/app/views/layouts/decidim/admin/_callouts_full.html.erb +10 -0
- data/decidim-admin/app/views/layouts/decidim/admin/_language_chooser.html.erb +9 -9
- data/decidim-admin/app/views/layouts/decidim/admin/_main_nav.html.erb +11 -0
- data/decidim-admin/app/views/layouts/decidim/admin/_template_bottom.html.erb +2 -0
- data/decidim-admin/app/views/layouts/decidim/admin/_template_top.html.erb +3 -0
- data/decidim-admin/app/views/layouts/decidim/admin/_title_bar.html.erb +20 -0
- data/decidim-admin/app/views/layouts/decidim/admin/newsletters.erb +14 -0
- data/decidim-admin/app/views/layouts/decidim/admin/pages.html.erb +14 -0
- data/decidim-admin/app/views/layouts/decidim/admin/participatory_process.html.erb +55 -53
- data/decidim-admin/app/views/layouts/decidim/admin/participatory_process_groups.html.erb +14 -0
- data/decidim-admin/app/views/layouts/decidim/admin/participatory_processes.html.erb +14 -0
- data/decidim-admin/app/views/layouts/decidim/admin/settings.html.erb +19 -0
- data/decidim-admin/app/views/layouts/decidim/admin/users.html.erb +21 -0
- data/decidim-admin/config/i18n-tasks.yml +1 -0
- data/decidim-admin/config/locales/ca.yml +77 -22
- data/decidim-admin/config/locales/en.yml +75 -20
- data/decidim-admin/config/locales/es.yml +77 -22
- data/decidim-admin/config/locales/eu.yml +191 -16
- data/decidim-admin/config/locales/fi.yml +0 -29
- data/decidim-admin/config/routes.rb +1 -1
- data/decidim-admin/lib/decidim/admin/test/manage_attachments_examples.rb +11 -11
- data/decidim-admin/spec/commands/deliver_newsletter_spec.rb +4 -1
- data/decidim-admin/spec/commands/update_participatory_process_spec.rb +117 -0
- data/decidim-admin/spec/features/admin_invite_spec.rb +5 -1
- data/decidim-admin/spec/features/admin_manages_feature_permissions_spec.rb +1 -1
- data/decidim-admin/spec/features/admin_manages_features_spec.rb +10 -10
- data/decidim-admin/spec/features/admin_manages_newsletters_spec.rb +11 -9
- data/decidim-admin/spec/features/admin_manages_organization_admins_spec.rb +8 -5
- data/decidim-admin/spec/features/admin_manages_organization_scopes_spec.rb +7 -6
- data/decidim-admin/spec/features/admin_manages_organization_spec.rb +14 -0
- data/decidim-admin/spec/features/admin_manages_participatory_process_groups_spec.rb +6 -6
- data/decidim-admin/spec/features/admin_manages_participatory_processes_spec.rb +27 -5
- data/decidim-admin/spec/features/admin_manages_user_groups_spec.rb +1 -1
- data/decidim-admin/spec/features/participatory_process_admin_manages_participatory_process_admins_spec.rb +2 -2
- data/decidim-admin/spec/features/static_pages_spec.rb +9 -7
- data/decidim-admin/spec/jobs/newsletter_job_spec.rb +2 -0
- data/decidim-admin/spec/queries/process_admin_roles_for_process_spec.rb +4 -3
- data/decidim-admin/spec/shared/manage_process_admins_examples.rb +31 -8
- data/decidim-admin/spec/shared/manage_process_attachments_examples.rb +1 -1
- data/decidim-admin/spec/shared/manage_process_categories_examples.rb +11 -26
- data/decidim-admin/spec/shared/manage_process_steps_examples.rb +8 -23
- data/decidim-admin/spec/shared/manage_processes_examples.rb +5 -33
- data/decidim-admin/spec/support/processes_menu_links_helpers.rb +1 -1
- data/decidim-admin/yarn.lock +4 -0
- data/decidim-api/app/controllers/decidim/api/application_controller.rb +2 -1
- data/decidim-budgets/app/controllers/decidim/budgets/admin/projects_controller.rb +1 -1
- data/decidim-budgets/app/controllers/decidim/budgets/line_items_controller.rb +21 -15
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/_form.html.erb +34 -24
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/edit.html.erb +3 -5
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/index.html.erb +52 -34
- data/decidim-budgets/app/views/decidim/budgets/admin/projects/new.html.erb +4 -5
- data/decidim-budgets/app/views/decidim/budgets/projects/_filters.html.erb +1 -1
- data/decidim-budgets/config/i18n-tasks.yml +1 -0
- data/decidim-budgets/config/locales/ca.yml +5 -0
- data/decidim-budgets/config/locales/en.yml +5 -0
- data/decidim-budgets/config/locales/es.yml +5 -0
- data/decidim-budgets/config/locales/eu.yml +27 -0
- data/decidim-budgets/spec/features/orders_spec.rb +22 -0
- data/decidim-budgets/spec/shared/manage_attachments_examples.rb +1 -1
- data/decidim-budgets/spec/shared/manage_projects_examples.rb +10 -8
- data/decidim-comments/README.md +33 -0
- data/decidim-comments/app/assets/javascripts/decidim/comments/bundle.js +0 -0
- data/decidim-comments/app/assets/javascripts/decidim/comments/comments.js.erb +2 -0
- data/decidim-comments/app/frontend/application/{apollo_client.js → apollo_client.ts} +5 -5
- data/decidim-comments/app/frontend/application/application.component.test.tsx +36 -0
- data/decidim-comments/app/frontend/application/application.component.tsx +37 -0
- data/decidim-comments/app/frontend/application/icon.component.test.tsx +49 -0
- data/decidim-comments/app/frontend/application/icon.component.tsx +35 -0
- data/decidim-comments/app/frontend/comments/{add_comment_form.component.test.jsx → add_comment_form.component.test.tsx} +98 -92
- data/decidim-comments/app/frontend/comments/{add_comment_form.component.jsx → add_comment_form.component.tsx} +152 -153
- data/decidim-comments/app/frontend/comments/{comment.component.test.jsx → comment.component.test.tsx} +59 -71
- data/decidim-comments/app/frontend/comments/{comment.component.jsx → comment.component.tsx} +114 -116
- data/decidim-comments/app/frontend/comments/comment_order_selector.component.test.tsx +21 -0
- data/decidim-comments/app/frontend/comments/comment_order_selector.component.tsx +88 -0
- data/decidim-comments/app/frontend/comments/comment_thread.component.test.tsx +65 -0
- data/decidim-comments/app/frontend/comments/comment_thread.component.tsx +70 -0
- data/decidim-comments/app/frontend/comments/{comments.component.test.jsx → comments.component.test.tsx} +38 -81
- data/decidim-comments/app/frontend/comments/{comments.component.jsx → comments.component.tsx} +49 -63
- data/decidim-comments/app/frontend/comments/down_vote_button.component.test.tsx +39 -0
- data/decidim-comments/app/frontend/comments/down_vote_button.component.tsx +89 -0
- data/decidim-comments/app/frontend/comments/up_vote_button.component.test.tsx +39 -0
- data/decidim-comments/app/frontend/comments/up_vote_button.component.tsx +89 -0
- data/decidim-comments/app/frontend/comments/vote_button.component.tsx +36 -0
- data/decidim-comments/app/frontend/comments/{vote_button_component.test.jsx → vote_button_component.test.tsx} +16 -20
- data/decidim-comments/app/frontend/entry.ts +19 -0
- data/decidim-comments/app/frontend/{comments → fragments}/add_comment_form_commentable.fragment.graphql +1 -1
- data/decidim-comments/app/frontend/{comments → fragments}/add_comment_form_session.fragment.graphql +1 -1
- data/decidim-comments/app/frontend/{comments → fragments}/comment.fragment.graphql +3 -1
- data/decidim-comments/app/frontend/{comments → fragments}/comment_data.fragment.graphql +6 -3
- data/decidim-comments/app/frontend/{comments → fragments}/comment_thread.fragment.graphql +3 -1
- data/decidim-comments/app/frontend/{comments/down_vote.fragment.graphql → fragments/down_vote_button.fragment.graphql} +2 -2
- data/decidim-comments/app/frontend/{comments/up_vote.fragment.graphql → fragments/up_vote_button.fragment.graphql} +2 -2
- data/decidim-comments/app/frontend/{comments/add_comment_form.mutation.graphql → mutations/add_comment.mutation.graphql} +3 -1
- data/decidim-comments/app/frontend/{comments → mutations}/down_vote.mutation.graphql +3 -1
- data/decidim-comments/app/frontend/{comments → mutations}/up_vote.mutation.graphql +3 -1
- data/decidim-comments/app/frontend/{comments → queries}/comments.query.graphql +4 -1
- data/decidim-comments/app/frontend/support/{asset_url.js → asset_url.ts} +1 -1
- data/decidim-comments/app/frontend/support/{generate_comments_data.js → generate_comments_data.ts} +11 -6
- data/decidim-comments/app/frontend/support/{generate_user_data.js → generate_user_data.ts} +2 -2
- data/decidim-comments/app/frontend/support/{generate_user_group_data.js → generate_user_group_data.ts} +2 -2
- data/decidim-comments/app/frontend/support/graphql_transformer.js +32 -0
- data/decidim-comments/app/frontend/support/load_translations.ts +44 -0
- data/decidim-comments/app/frontend/support/{require_all.js → require_all.ts} +1 -1
- data/decidim-comments/app/frontend/support/{resolve_graphql_query.js → resolve_graphql_query.ts} +7 -7
- data/decidim-comments/app/frontend/support/schema.ts +119 -0
- data/decidim-comments/config/locales/eu.yml +29 -5
- data/decidim-dev/Rakefile +2 -0
- data/decidim-dev/config/locales/eu.yml +1 -1
- data/decidim-dev/decidim-dev.gemspec +1 -1
- data/decidim-dev/lib/decidim/dev/test/rspec_support/capybara.rb +1 -4
- data/decidim-dev/lib/decidim/dev/test/rspec_support/feature.rb +1 -0
- data/decidim-dev/lib/decidim/dev/test/rspec_support/helpers.rb +1 -1
- data/decidim-dev/lib/decidim/dev/test/rspec_support/phantomjs_polyfills/phantomjs-shim.js +215 -0
- data/decidim-dev/lib/decidim/dev/test/rspec_support/translation_helpers.rb +1 -1
- data/decidim-dev/lib/generators/decidim/dummy_generator.rb +5 -0
- data/decidim-meetings/app/controllers/decidim/meetings/admin/application_controller.rb +1 -1
- data/decidim-meetings/app/views/decidim/meetings/admin/meeting_closes/_form.html.erb +30 -19
- data/decidim-meetings/app/views/decidim/meetings/admin/meeting_closes/edit.html.erb +3 -5
- data/decidim-meetings/app/views/decidim/meetings/admin/meetings/_form.html.erb +46 -35
- data/decidim-meetings/app/views/decidim/meetings/admin/meetings/edit.html.erb +5 -6
- data/decidim-meetings/app/views/decidim/meetings/admin/meetings/index.html.erb +72 -51
- data/decidim-meetings/app/views/decidim/meetings/admin/meetings/new.html.erb +4 -6
- data/decidim-meetings/app/views/decidim/meetings/meetings/_filters.html.erb +1 -1
- data/decidim-meetings/config/locales/ca.yml +2 -1
- data/decidim-meetings/config/locales/en.yml +2 -1
- data/decidim-meetings/config/locales/es.yml +2 -1
- data/decidim-meetings/config/locales/eu.yml +25 -5
- data/decidim-meetings/config/locales/fi.yml +0 -1
- data/decidim-meetings/spec/shared/manage_attachments_examples.rb +1 -1
- data/decidim-meetings/spec/shared/manage_meetings_examples.rb +18 -16
- data/decidim-pages/app/views/decidim/pages/admin/pages/_form.html.erb +10 -3
- data/decidim-pages/app/views/decidim/pages/admin/pages/edit.html.erb +3 -5
- data/decidim-pages/config/locales/eu.yml +4 -2
- data/decidim-pages/spec/features/admin_spec.rb +1 -1
- data/decidim-proposals/app/controllers/decidim/proposals/admin/proposals_controller.rb +1 -1
- data/decidim-proposals/app/views/decidim/proposals/admin/proposal_answers/edit.html.erb +14 -8
- data/decidim-proposals/app/views/decidim/proposals/admin/proposals/_form.html.erb +28 -20
- data/decidim-proposals/app/views/decidim/proposals/admin/proposals/index.html.erb +60 -43
- data/decidim-proposals/app/views/decidim/proposals/admin/proposals/new.html.erb +3 -5
- data/decidim-proposals/app/views/decidim/proposals/proposals/_filters.html.erb +1 -1
- data/decidim-proposals/config/locales/ca.yml +3 -0
- data/decidim-proposals/config/locales/en.yml +4 -1
- data/decidim-proposals/config/locales/es.yml +3 -0
- data/decidim-proposals/config/locales/eu.yml +42 -19
- data/decidim-proposals/config/locales/fi.yml +0 -1
- data/decidim-proposals/spec/shared/manage_proposals_examples.rb +15 -13
- data/decidim-results/README.md +1 -1
- data/decidim-results/app/controllers/decidim/results/admin/results_controller.rb +1 -1
- data/decidim-results/app/views/decidim/results/admin/results/_form.html.erb +30 -21
- data/decidim-results/app/views/decidim/results/admin/results/edit.html.erb +4 -5
- data/decidim-results/app/views/decidim/results/admin/results/index.html.erb +40 -25
- data/decidim-results/app/views/decidim/results/admin/results/new.html.erb +4 -5
- data/decidim-results/app/views/decidim/results/results/_filters.html.erb +1 -1
- data/decidim-results/config/locales/ca.yml +2 -0
- data/decidim-results/config/locales/en.yml +2 -0
- data/decidim-results/config/locales/es.yml +2 -0
- data/decidim-results/config/locales/eu.yml +22 -4
- data/decidim-results/spec/shared/manage_results_examples.rb +10 -8
- data/decidim-system/config/locales/eu.yml +60 -2
- data/lib/generators/decidim/app_generator.rb +0 -4
- data/lib/generators/decidim/install_generator.rb +0 -4
- data/lib/generators/decidim/templates/README.md.erb +18 -18
- data/package.json +47 -22
- data/tsconfig.json +17 -0
- data/tslint.json +12 -0
- data/webpack.config.js +8 -6
- data/webpack.d.ts +5 -0
- data/yarn.lock +1461 -781
- metadata +119 -83
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_actions.scss +0 -8
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_forms.scss +0 -10
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_foundation_and_overrides.scss +0 -53
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_icons.scss +0 -9
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_layout.scss +0 -27
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_settings.scss +0 -566
- data/decidim-admin/app/assets/stylesheets/decidim/admin/_tables.scss +0 -21
- data/decidim-admin/app/views/layouts/decidim/admin/_login_items.html.erb +0 -8
- data/decidim-admin/app/views/layouts/decidim/admin/_sidebar.html.erb +0 -22
- data/decidim-comments/app/frontend/application/application.component.jsx +0 -37
- data/decidim-comments/app/frontend/application/application.component.test.jsx +0 -33
- data/decidim-comments/app/frontend/application/icon.component.jsx +0 -26
- data/decidim-comments/app/frontend/application/icon.component.test.jsx +0 -53
- data/decidim-comments/app/frontend/comments/comment_order_selector.component.jsx +0 -72
- data/decidim-comments/app/frontend/comments/comment_order_selector.component.test.jsx +0 -20
- data/decidim-comments/app/frontend/comments/comment_thread.component.jsx +0 -75
- data/decidim-comments/app/frontend/comments/comment_thread.component.test.jsx +0 -83
- data/decidim-comments/app/frontend/comments/down_vote_button.component.jsx +0 -98
- data/decidim-comments/app/frontend/comments/down_vote_button.component.test.jsx +0 -48
- data/decidim-comments/app/frontend/comments/featured_comment.component.jsx +0 -23
- data/decidim-comments/app/frontend/comments/featured_comment.component.test.jsx +0 -15
- data/decidim-comments/app/frontend/comments/up_vote_button.component.jsx +0 -98
- data/decidim-comments/app/frontend/comments/up_vote_button.component.test.jsx +0 -48
- data/decidim-comments/app/frontend/comments/vote_button.component.jsx +0 -32
- data/decidim-comments/app/frontend/entry.js +0 -17
- data/decidim-comments/app/frontend/entry.test.js +0 -31
- data/decidim-comments/app/frontend/support/load_translations.js +0 -23
- data/decidim-comments/app/frontend/support/stub_component.js +0 -29
- data/decidim-dev/lib/decidim/dev/test/rspec_support/phantomjs_polyfills/bind-polyfill.js +0 -18
- data/decidim-dev/lib/decidim/dev/test/rspec_support/phantomjs_polyfills/object-assign-polyfill.js +0 -24
- data/karma.conf.js +0 -45
- data/lib/generators/decidim/review_app_generator.rb +0 -53
- data/lib/generators/decidim/templates/app.json.erb +0 -16
@@ -1,21 +0,0 @@
|
|
1
|
-
table{
|
2
|
-
td.actions, th.actions{
|
3
|
-
text-align: right;
|
4
|
-
}
|
5
|
-
td.center, th.center{
|
6
|
-
text-align: center;
|
7
|
-
}
|
8
|
-
}
|
9
|
-
|
10
|
-
tbody.sortable tr {
|
11
|
-
cursor: move;
|
12
|
-
|
13
|
-
td:first-child {
|
14
|
-
border-left-style: dotted;
|
15
|
-
border-left-color: #ccc;
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
#process_admins td input {
|
20
|
-
margin: 0;
|
21
|
-
}
|
@@ -1,22 +0,0 @@
|
|
1
|
-
<div class="title">
|
2
|
-
<h1>
|
3
|
-
<%= link_to root_path do %>
|
4
|
-
<%= title %>
|
5
|
-
<% end %>
|
6
|
-
</h1>
|
7
|
-
</div>
|
8
|
-
|
9
|
-
<nav class="main-menu">
|
10
|
-
<%= active_link_to t("menu.dashboard", scope: "decidim.admin"), decidim_admin.root_path, active: :exact %>
|
11
|
-
<%= active_link_to t("menu.participatory_processes", scope: "decidim.admin"), decidim_admin.participatory_processes_path, active: :inclusive %>
|
12
|
-
<%= active_link_to t("menu.participatory_process_groups", scope: "decidim.admin"), decidim_admin.participatory_process_groups_path, active: :inclusive %>
|
13
|
-
<%= active_link_to t("menu.static_pages", scope: "decidim.admin"), decidim_admin.static_pages_path, active: :inclusive if can? :read, Decidim::StaticPage %>
|
14
|
-
<%= active_link_to t("menu.scopes", scope: "decidim.admin"), decidim_admin.scopes_path, active: :inclusive if can? :read, Decidim::Scope %>
|
15
|
-
<%= active_link_to t("menu.users", scope: "decidim.admin"), decidim_admin.users_path, active: :inclusive if can? :read, :admin_users %>
|
16
|
-
<%= active_link_to t("menu.user_groups", scope: "decidim.admin"), decidim_admin.user_groups_path, active: :inclusive if can? :index, Decidim::UserGroup %>
|
17
|
-
<%= active_link_to t("menu.newsletters", scope: "decidim.admin"), decidim_admin.newsletters_path, active: :inclusive if can? :index, Decidim::Newsletter %>
|
18
|
-
<%= active_link_to t("menu.settings", scope: "decidim.admin"), decidim_admin.edit_organization_path, active: :inclusive if can? :read, current_organization %>
|
19
|
-
</nav>
|
20
|
-
|
21
|
-
<%= render partial: 'layouts/decidim/admin/login_items' %>
|
22
|
-
<%= render partial: "layouts/decidim/admin/language_chooser" %>
|
@@ -1,37 +0,0 @@
|
|
1
|
-
import { Component, PropTypes } from 'react';
|
2
|
-
import { ApolloProvider } from 'react-apollo';
|
3
|
-
import { I18n } from 'react-i18nify';
|
4
|
-
import moment from 'moment';
|
5
|
-
|
6
|
-
import apolloClient from './apollo_client';
|
7
|
-
|
8
|
-
/**
|
9
|
-
* Wrapper component for all React applications using Apollo
|
10
|
-
* @class
|
11
|
-
* @augments Component
|
12
|
-
*/
|
13
|
-
export default class Application extends Component {
|
14
|
-
constructor(props) {
|
15
|
-
const { locale } = props;
|
16
|
-
|
17
|
-
I18n.setLocale(locale);
|
18
|
-
moment.locale(locale);
|
19
|
-
|
20
|
-
super(props);
|
21
|
-
}
|
22
|
-
|
23
|
-
render() {
|
24
|
-
const { children } = this.props;
|
25
|
-
|
26
|
-
return (
|
27
|
-
<ApolloProvider client={apolloClient}>
|
28
|
-
{children}
|
29
|
-
</ApolloProvider>
|
30
|
-
);
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
|
-
Application.propTypes = {
|
35
|
-
children: PropTypes.element.isRequired,
|
36
|
-
locale: PropTypes.string.isRequired
|
37
|
-
};
|
@@ -1,33 +0,0 @@
|
|
1
|
-
import { shallow } from 'enzyme';
|
2
|
-
import { I18n } from 'react-i18nify';
|
3
|
-
import moment from 'moment';
|
4
|
-
|
5
|
-
import Application from './application.component';
|
6
|
-
|
7
|
-
describe('<Application />', () => {
|
8
|
-
afterEach(() => {
|
9
|
-
I18n.setLocale('en');
|
10
|
-
});
|
11
|
-
|
12
|
-
it("should set I18n locale to locale prop", () => {
|
13
|
-
sinon.spy(I18n, 'setLocale');
|
14
|
-
const locale = "ca";
|
15
|
-
shallow(
|
16
|
-
<Application locale={locale}>
|
17
|
-
<div>My application</div>
|
18
|
-
</Application>
|
19
|
-
);
|
20
|
-
expect(I18n.setLocale).to.have.been.calledWith(locale);
|
21
|
-
});
|
22
|
-
|
23
|
-
it("should set moment locale to locale prop", () => {
|
24
|
-
sinon.spy(moment, 'locale');
|
25
|
-
const locale = "ca";
|
26
|
-
shallow(
|
27
|
-
<Application locale={locale}>
|
28
|
-
<div>My application</div>
|
29
|
-
</Application>
|
30
|
-
);
|
31
|
-
expect(moment.locale).to.have.been.calledWith(locale);
|
32
|
-
});
|
33
|
-
});
|
@@ -1,26 +0,0 @@
|
|
1
|
-
import { PropTypes } from 'react';
|
2
|
-
|
3
|
-
import assetUrl from '../support/asset_url';
|
4
|
-
|
5
|
-
const Icon = ({ name, iconExtraClassName }) => {
|
6
|
-
if (navigator.userAgent.match(/PhantomJS/)) {
|
7
|
-
return <span className={`icon ${iconExtraClassName} ${name}`}>{name}</span>;
|
8
|
-
}
|
9
|
-
|
10
|
-
return (
|
11
|
-
<svg className={`icon ${iconExtraClassName} ${name}`}>
|
12
|
-
<use xmlnsXlink="http://www.w3.org/1999/xlink" xlinkHref={`${assetUrl('icons.svg')}#${name}`} />
|
13
|
-
</svg>
|
14
|
-
);
|
15
|
-
};
|
16
|
-
|
17
|
-
Icon.defaultProps = {
|
18
|
-
iconExtraClassName: 'icon--before'
|
19
|
-
};
|
20
|
-
|
21
|
-
Icon.propTypes = {
|
22
|
-
name: PropTypes.string.isRequired,
|
23
|
-
iconExtraClassName: PropTypes.string.isRequired
|
24
|
-
};
|
25
|
-
|
26
|
-
export default Icon;
|
@@ -1,53 +0,0 @@
|
|
1
|
-
import { shallow, mount } from 'enzyme';
|
2
|
-
|
3
|
-
import Icon from './icon.component';
|
4
|
-
|
5
|
-
describe("<Icon /", () => {
|
6
|
-
beforeEach(() => {
|
7
|
-
window.DecidimComments = {
|
8
|
-
assets: {
|
9
|
-
'icons.svg': '/assets/icons.svg'
|
10
|
-
}
|
11
|
-
};
|
12
|
-
})
|
13
|
-
|
14
|
-
describe("if navigator user agent is not PhantomJS", () => {
|
15
|
-
let currentNavigator = null;
|
16
|
-
|
17
|
-
beforeEach(() => {
|
18
|
-
currentNavigator = window.navigator;
|
19
|
-
window.navigator = {
|
20
|
-
userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36"
|
21
|
-
};
|
22
|
-
});
|
23
|
-
|
24
|
-
it("should render a svg with class defined by prop className", () => {
|
25
|
-
const wrapper = shallow(<Icon name="icon-thumb-down" />);
|
26
|
-
expect(wrapper.find('svg.icon-thumb-down')).to.be.present();
|
27
|
-
});
|
28
|
-
|
29
|
-
it("should render a svg icon using the 'icons.svg' url and name", () => {
|
30
|
-
const wrapper = shallow(<Icon name="icon-thumb-up" />);
|
31
|
-
expect(wrapper.find('svg use')).to.have.attr('xlink:href').equal('/assets/icons.svg#icon-thumb-up');
|
32
|
-
});
|
33
|
-
|
34
|
-
afterEach(() => {
|
35
|
-
window.navigator = currentNavigator;
|
36
|
-
});
|
37
|
-
});
|
38
|
-
|
39
|
-
it("should render a simple span with the icon name", () => {
|
40
|
-
const wrapper = shallow(<Icon name="icon-thumb-up" />);
|
41
|
-
expect(wrapper.find('span')).to.have.text('icon-thumb-up');
|
42
|
-
});
|
43
|
-
|
44
|
-
it("should have a default prop iconExtraClassName with value 'icon--before'", () => {
|
45
|
-
const wrapper = mount(<Icon name="icon-thumb-up" />);
|
46
|
-
expect(wrapper).to.have.prop('iconExtraClassName').equal('icon--before');
|
47
|
-
});
|
48
|
-
|
49
|
-
it("should render the svg with an extra class defined by iconExtraClassName", () => {
|
50
|
-
const wrapper = mount(<Icon name="icon-thumb-up" iconExtraClassName="icon--small" />);
|
51
|
-
expect(wrapper.find('.icon--small')).to.be.present();
|
52
|
-
});
|
53
|
-
});
|
@@ -1,72 +0,0 @@
|
|
1
|
-
import { Component, PropTypes } from 'react';
|
2
|
-
import { I18n } from 'react-i18nify';
|
3
|
-
|
4
|
-
/**
|
5
|
-
* A simple static component with the comment's order selector markup
|
6
|
-
* @class
|
7
|
-
* @augments Component
|
8
|
-
* @todo Needs a proper implementation
|
9
|
-
*/
|
10
|
-
class CommentOrderSelector extends Component {
|
11
|
-
|
12
|
-
constructor(props) {
|
13
|
-
super(props);
|
14
|
-
this.state = {
|
15
|
-
orderBy: this.props.defaultOrderBy
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
render() {
|
20
|
-
const { orderBy } = this.state;
|
21
|
-
|
22
|
-
return (
|
23
|
-
<div className="order-by__dropdown order-by__dropdown--right">
|
24
|
-
<span className="order-by__text">{ I18n.t("components.comment_order_selector.title") }</span>
|
25
|
-
<ul
|
26
|
-
className="dropdown menu"
|
27
|
-
data-dropdown-menu
|
28
|
-
data-close-on-click-inside="false">
|
29
|
-
<li>
|
30
|
-
<a>{ I18n.t(`components.comment_order_selector.order.${orderBy}`) }</a>
|
31
|
-
<ul className="menu">
|
32
|
-
<li>
|
33
|
-
<a href="" className="test" onClick={(event) => this._updateOrder(event, "best_rated")} >
|
34
|
-
{ I18n.t("components.comment_order_selector.order.best_rated") }
|
35
|
-
</a>
|
36
|
-
</li>
|
37
|
-
<li>
|
38
|
-
<a href="" onClick={(event) => this._updateOrder(event, "recent")} >
|
39
|
-
{ I18n.t("components.comment_order_selector.order.recent") }
|
40
|
-
</a>
|
41
|
-
</li>
|
42
|
-
<li>
|
43
|
-
<a href="" onClick={(event) => this._updateOrder(event, "older")} >
|
44
|
-
{ I18n.t("components.comment_order_selector.order.older") }
|
45
|
-
</a>
|
46
|
-
</li>
|
47
|
-
<li>
|
48
|
-
<a href="" onClick={(event) => this._updateOrder(event, "most_discussed")} >
|
49
|
-
{ I18n.t("components.comment_order_selector.order.most_discussed") }
|
50
|
-
</a>
|
51
|
-
</li>
|
52
|
-
</ul>
|
53
|
-
</li>
|
54
|
-
</ul>
|
55
|
-
</div>
|
56
|
-
);
|
57
|
-
}
|
58
|
-
|
59
|
-
_updateOrder(event, orderBy) {
|
60
|
-
event.preventDefault();
|
61
|
-
this.setState({ orderBy });
|
62
|
-
this.props.reorderComments(orderBy);
|
63
|
-
}
|
64
|
-
|
65
|
-
}
|
66
|
-
|
67
|
-
CommentOrderSelector.propTypes = {
|
68
|
-
reorderComments: PropTypes.func.isRequired,
|
69
|
-
defaultOrderBy: PropTypes.string.isRequired
|
70
|
-
};
|
71
|
-
|
72
|
-
export default CommentOrderSelector;
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import { shallow } from 'enzyme';
|
2
|
-
import CommentOrderSelector from './comment_order_selector.component';
|
3
|
-
|
4
|
-
describe('<CommentOrderSelector />', () => {
|
5
|
-
const orderBy = "older";
|
6
|
-
const reorderComments = sinon.spy();
|
7
|
-
|
8
|
-
it("renders a div with classes order-by__dropdown order-by__dropdown--right", () => {
|
9
|
-
const wrapper = shallow(<CommentOrderSelector reorderComments={reorderComments} defaultOrderBy={orderBy} />);
|
10
|
-
expect(wrapper.find('div.order-by__dropdown.order-by__dropdown--right')).to.present();
|
11
|
-
})
|
12
|
-
|
13
|
-
it("should set state order to best_rated if user clicks on the first element", () => {
|
14
|
-
const preventDefault = sinon.spy();
|
15
|
-
const wrapper = shallow(<CommentOrderSelector reorderComments={reorderComments} defaultOrderBy={orderBy} />);
|
16
|
-
wrapper.find('a.test').simulate('click', {preventDefault});
|
17
|
-
expect(reorderComments).to.calledWith("best_rated");
|
18
|
-
});
|
19
|
-
})
|
20
|
-
|
@@ -1,75 +0,0 @@
|
|
1
|
-
import { Component, PropTypes } from 'react';
|
2
|
-
import { filter, propType } from 'graphql-anywhere';
|
3
|
-
import gql from 'graphql-tag';
|
4
|
-
import { I18n } from 'react-i18nify';
|
5
|
-
|
6
|
-
import Comment from './comment.component';
|
7
|
-
|
8
|
-
import commentThreadFragment from './comment_thread.fragment.graphql'
|
9
|
-
|
10
|
-
/**
|
11
|
-
* Define a collection of comments. It represents a conversation with multiple users.
|
12
|
-
* @class
|
13
|
-
* @augments Component
|
14
|
-
* @todo It doesn't handle multiple comments yet
|
15
|
-
*/
|
16
|
-
class CommentThread extends Component {
|
17
|
-
render() {
|
18
|
-
const { comment, session, votable } = this.props;
|
19
|
-
|
20
|
-
return (
|
21
|
-
<div>
|
22
|
-
{this._renderTitle()}
|
23
|
-
<div className="comment-thread">
|
24
|
-
<Comment
|
25
|
-
comment={filter(Comment.fragments.comment, comment)}
|
26
|
-
session={session}
|
27
|
-
votable={votable}
|
28
|
-
isRootComment
|
29
|
-
/>
|
30
|
-
</div>
|
31
|
-
</div>
|
32
|
-
);
|
33
|
-
}
|
34
|
-
|
35
|
-
/**
|
36
|
-
* Render conversation title if comment has commments
|
37
|
-
* @private
|
38
|
-
* @returns {Void|DOMElement} - The conversation's title
|
39
|
-
*/
|
40
|
-
_renderTitle() {
|
41
|
-
const { comment: { author, hasComments } } = this.props;
|
42
|
-
|
43
|
-
if (hasComments) {
|
44
|
-
return (
|
45
|
-
<h6 className="comment-thread__title">
|
46
|
-
{ I18n.t("components.comment_thread.title", { authorName: author.name }) }
|
47
|
-
</h6>
|
48
|
-
);
|
49
|
-
}
|
50
|
-
|
51
|
-
return null;
|
52
|
-
}
|
53
|
-
}
|
54
|
-
|
55
|
-
CommentThread.fragments = {
|
56
|
-
comment: gql`
|
57
|
-
${commentThreadFragment}
|
58
|
-
${Comment.fragments.comment}
|
59
|
-
`
|
60
|
-
};
|
61
|
-
|
62
|
-
CommentThread.propTypes = {
|
63
|
-
session: PropTypes.shape({
|
64
|
-
user: PropTypes.any.isRequired
|
65
|
-
}),
|
66
|
-
comment: propType(CommentThread.fragments.comment).isRequired,
|
67
|
-
votable: PropTypes.bool
|
68
|
-
};
|
69
|
-
|
70
|
-
CommentThread.defaultProps = {
|
71
|
-
session: null,
|
72
|
-
votable: false
|
73
|
-
};
|
74
|
-
|
75
|
-
export default CommentThread;
|
@@ -1,83 +0,0 @@
|
|
1
|
-
import { shallow } from 'enzyme';
|
2
|
-
import { filter } from 'graphql-anywhere';
|
3
|
-
import gql from 'graphql-tag';
|
4
|
-
|
5
|
-
import CommentThread from './comment_thread.component';
|
6
|
-
import Comment from './comment.component';
|
7
|
-
|
8
|
-
import commentThreadFragment from './comment_thread.fragment.graphql'
|
9
|
-
|
10
|
-
import stubComponent from '../support/stub_component';
|
11
|
-
import generateCommentsData from '../support/generate_comments_data';
|
12
|
-
import generateCUserData from '../support/generate_user_data';
|
13
|
-
|
14
|
-
describe('<CommentThread />', () => {
|
15
|
-
let comment = {};
|
16
|
-
let session = null;
|
17
|
-
|
18
|
-
const commentFragment = gql`
|
19
|
-
fragment Comment on Comment {
|
20
|
-
body
|
21
|
-
}
|
22
|
-
`;
|
23
|
-
|
24
|
-
stubComponent(Comment, {
|
25
|
-
fragments: {
|
26
|
-
comment: commentFragment
|
27
|
-
}
|
28
|
-
});
|
29
|
-
|
30
|
-
beforeEach(() => {
|
31
|
-
const commentsData = generateCommentsData(1);
|
32
|
-
|
33
|
-
const fragment = gql`
|
34
|
-
${commentThreadFragment}
|
35
|
-
${commentFragment}
|
36
|
-
`;
|
37
|
-
|
38
|
-
session = {
|
39
|
-
user: generateCUserData()
|
40
|
-
};
|
41
|
-
comment = filter(fragment, commentsData[0]);
|
42
|
-
});
|
43
|
-
|
44
|
-
describe("when comment doesn't have comments", () => {
|
45
|
-
it("should not render a title with author name", () => {
|
46
|
-
const wrapper = shallow(<CommentThread comment={comment} session={session} />);
|
47
|
-
expect(wrapper.find('h6.comment-thread__title')).not.to.present();
|
48
|
-
});
|
49
|
-
});
|
50
|
-
|
51
|
-
describe("when comment does has comments", () => {
|
52
|
-
beforeEach(() => {
|
53
|
-
comment.hasComments = true;
|
54
|
-
});
|
55
|
-
|
56
|
-
it("should render a h6 comment-thread__title with author name", () => {
|
57
|
-
const wrapper = shallow(<CommentThread comment={comment} session={session} />);
|
58
|
-
expect(wrapper.find('h6.comment-thread__title')).to.have.text(`Conversation with ${comment.author.name}`);
|
59
|
-
});
|
60
|
-
});
|
61
|
-
|
62
|
-
describe("should render a Comment", () => {
|
63
|
-
it("and pass the session as a prop to it", () => {
|
64
|
-
const wrapper = shallow(<CommentThread comment={comment} session={session} />);
|
65
|
-
expect(wrapper.find(Comment).first()).to.have.prop("session").deep.equal(session);
|
66
|
-
});
|
67
|
-
|
68
|
-
it("and pass filter comment data as a prop to it", () => {
|
69
|
-
const wrapper = shallow(<CommentThread comment={comment} session={session} />);
|
70
|
-
expect(wrapper.find(Comment).first()).to.have.prop("comment").deep.equal(filter(commentFragment, comment));
|
71
|
-
});
|
72
|
-
|
73
|
-
it("and pass the votable as a prop to it", () => {
|
74
|
-
const wrapper = shallow(<CommentThread comment={comment} session={session} votable />);
|
75
|
-
expect(wrapper.find(Comment).first()).to.have.prop("votable").equal(true);
|
76
|
-
});
|
77
|
-
|
78
|
-
it("and pass the isRootComment equal true", () => {
|
79
|
-
const wrapper = shallow(<CommentThread comment={comment} session={session} votable isRootComment />);
|
80
|
-
expect(wrapper.find(Comment).first()).to.have.prop("isRootComment").equal(true);
|
81
|
-
});
|
82
|
-
});
|
83
|
-
});
|