Commit Graph

9508 Commits

Author SHA1 Message Date
Javi Martín
da11c0d7ba Fix empty support link for screen readers users
When identified users accessed the investments page, we were using the
`aria-hidden` attribute to hide this link from screen readers since
unidentified users can't support investments.

However, the link was still focusable using keyboard navigation. This
resulted in screen reader users reaching the link and being able to
click it, but getting no feedback at all about where they were or what
they were clicking on.

This is why the fourth ARIA rule says: "Do not use role="presentation" or
aria-hidden="true" on a focusable element" [1].

So we're replacing the link with a non-interactive element instead, like
we do in other places like proposals.

The accessibility of this part of the page for unidentified users still
has some issues; here we're only improving it up to a certain point.

[1] https://www.w3.org/TR/using-aria/#4thrule
2021-06-14 12:51:41 +02:00
Javi Martín
5663608cd7 Simplify code in link to support investment
The code was harder to read with the (unnecessary) block.
2021-06-14 12:51:41 +02:00
Javi Martín
791e8b61ec Extract method to get support confirmation message 2021-06-14 12:51:41 +02:00
Javi Martín
cd8fa606c7 Use methods instead of variables in votes view
Now the view is more readable and it's possible to customize these
methods writing a custom class, without changing or copying the view.
2021-06-14 12:51:41 +02:00
Javi Martín
ad6dd54da2 Simplify rule to display support alert 2021-06-14 12:51:41 +02:00
Javi Martín
57628a78d9 Move investment votes partial to a component
This way changing it will be easier.
2021-06-14 12:51:41 +02:00
Javi Martín
e4ad70fd82 Revert "Adds .js-class for specs"
The `js-` prefix (which I admit I'm not fond of) is usually used to
indicate the class is used by JavaScript files, not for using it in test
files. And in all the other similar tests, we're using the `in-favor`
class instead of the `js-in-favor` class.

This reverts commit 83fe74d53.
2021-06-14 12:51:41 +02:00
Javi Martín
f437ca988d Merge pull request #4550 from consul/management_support_investment
Fix investment support in management section
2021-06-14 12:51:07 +02:00
Javi Martín
d18a6f863b Merge pull request #4547 from consul/phases_image_alt
Fix accessibility issues in budgets index
2021-06-14 12:48:55 +02:00
Javi Martín
d983443ecc Fix investment support in management section
When supporting an investment in the management section through the
investment view, we were accessing an action in the public investments
controller. This meant the manager was the one supporting the investment
(as they'd be the `current_user` in this controller) and not the managed
user.

In the case of groups with many headings, voting the first time requires
a confirmation and then a regular (non-AJAX) request takes place. In
this case, users were redirected to the public area instead of remaining
in the management area.

Using the proper URL to vote solves the problem.

Note there was a comment about one of these tests failing in Travis.
Most probably the test failed because there was no expectation after
clicking the link with the investment title, so the "Support" button
(which is also present in the index page) was clicked before the
investment view was loaded.
2021-06-14 12:37:40 +02:00
Javi Martín
8b1e48b4ea Fix duplicate support_title I18n key
The key was declared twice and so the first one ("Support this project")
was overwritten.

We're grouping all keys related to the investment list together in order
to reduce the chances of this issue happening again (or, at least, in
this part of the code).
2021-06-12 13:20:39 +02:00
Javi Martín
f3a3bf35f8 Fix contrast in investment list
The color we used offered a contrast of 3.94 against the background. The
minimum requirement for AA level is a contrast of 4.5, and we usually
aim for a contrast of 5 at least.

So we're making the text slightly darker so it's easier to read.
2021-06-12 01:23:26 +02:00
Javi Martín
edaa2d2de8 Fix missing alt attribute in phases images
An image without an alt text is invalid HTML and is confusing for screen
reader users.

This is just a quick patch which partially solves this problem. The
image doesn't necessarily need to be a decorative one, so administrators
should have the option to provide an alternative text for the images.
2021-06-12 01:23:14 +02:00
decabeza
0273156c20 Update single heading budget view
Co-Authored-By: Julian Herrero <microweb10@gmail.com>
2021-06-11 19:32:21 +02:00
decabeza
122195e33c Show a preview list of investments in the budget landing page
Note one of the tests dealing with random results is a bit flaky; since
it's a permutation selecting 7 objects out of 12, it will fail about
once every 4 million times. We think this is acceptable.

Co-Authored-By: Julian Nicolas Herrero <microweb10@gmail.com>
2021-06-11 19:32:21 +02:00
Javi Martín
cb0818b7d6 Merge pull request #4544 from consul/single-budget-views
Simplify investment form in single heading budgets
2021-06-11 18:41:21 +02:00
Senén Rodero Rodríguez
7c475d4c2c Add missing attribute to budget strong params 2021-06-11 16:44:33 +02:00
decabeza
88ad711330 Hide group name only on budgets with one group
In the form of creating a new investment was hiding the name of the
group if it had only one heading, but could be confusing to users if
there are, for example, five different groups of one heading.

The solution:

- If the budget has one group and one heading, the heading selector is
  hidden.
- If the budget has one group and more than one heading, the group name
  is hidden.
- If the budget has more than one group, the group name appears
  regardless of the number of headings.
2021-06-11 14:43:18 +02:00
decabeza
49b4061990 Show heading name and amount on single heading new form
Note we're using an extra `<span>` element but we could use a CSS grid
layout instead. We're not using it because browser compatibility is only
94.56% at the time of writing.
2021-06-11 14:43:18 +02:00
decabeza
8b2bc29b01 Update new budget investment form header 2021-06-11 14:43:17 +02:00
decabeza
0488b3735f Hide single heading select on new budget investment form 2021-06-11 12:37:56 +02:00
Julian Herrero
0ef38b5958 Adjust budget phases link design
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-11 11:28:46 +02:00
Julian Herrero
17b4fb58c9 Add type to budget index table
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-11 00:51:52 +02:00
Julian Herrero
51bca66533 Adapt help component to multiple and single budget mode 2021-06-11 00:34:00 +02:00
Julian Herrero
4c6de86a72 Adapt phases step to single and multiple budget mode
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-11 00:34:00 +02:00
Julian Herrero
e3510fc29d Adapt heading step to single and multiple budget mode
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-11 00:34:00 +02:00
Julian Herrero
9fcae141a6 Adapt group step to single and multiple budget mode
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-11 00:33:59 +02:00
Julian Herrero
0b81f7f621 Allow creating a budget in single or multiple mode
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-11 00:28:56 +02:00
taitus
b1b2cfa8b1 Add new time format :short_datetime
Improve DurationComponent  for render time without seconds.
I believe that adding the seconds in this component is not necessary.
2021-06-10 17:14:01 +02:00
Julian Herrero
db9ac79e05 Add main link to each phase of the budget
Co-authored-by: decabeza <alberto@decabeza.es>
2021-06-09 21:51:39 +02:00
Julian Herrero
43ad69bbaf Allow attaching an image to budget phases
Co-authored-by: decabeza <alberto@decabeza.es>
2021-06-09 21:47:58 +02:00
Julian Herrero
dcad390933 Ability to attach an image to budgets
Co-authored-by: decabeza <alberto@decabeza.es>
2021-06-09 21:33:08 +02:00
decabeza
d78f2e03ad Render link to budget header
- Allow to define a link (text and url) on budget form for render on the budget
header.
- Improve styles

Co-authored-by: Senén Rodero Rodríguez <senenrodero@gmail.com>
2021-06-09 19:16:55 +02:00
decabeza
090f1bcddb Not showing the phase description in the budget header
This description of the current phase is already being displayed on the same page
in the section "Participatory budgets phases"
2021-06-09 16:03:33 +02:00
decabeza
4adb7236dc Add title to budget header 2021-06-09 16:03:33 +02:00
Javi Martín
03d0a46f5d Merge pull request #4531 from consul/budget-steps
Split budget creation in steps
2021-06-09 13:48:28 +02:00
Javi Martín
bdd5361f6a Allow editing the budget in budget creation wizard
When users created a budget and made a typo, they could use the link to
go back to edit a budget. However, after doing so, they were out of the
budget creation process.

So we're now letting users go back to edit the budget, fix any mistakes
they might have made, and then continue to groups.
2021-06-08 18:45:55 +02:00
decabeza
f8008a4a6f Add link to remove budget on budget admin index 2021-06-08 18:45:55 +02:00
Javi Martín
f110e65f80 Allow enabling/disabling phases in budgets wizard
So now there's no need to edit each phase individually to enable/disable
them.

We aren't doing the same thing in the form to edit a budget because we
aren't sure about possible usability issues. On one hand, in some tables
we automatically update records when we mark a checkbox, so users might
expect that. On the other hand, having a checkbox in the middle of a
form which updates the database automatically is counter-intuitive,
particularly when right below that table there are other checkboxes
which don't update the database until the form is submitted.

So, either way, chances are users would think they've updated the phases
(or kept them intact) while the opposite would be true.

In the form within the wizard to create a budget that problem isn't that
important because there aren't any other fields in the form and it's
pretty intuitive that what users do will have no effect until they press
the "Finish" button.

Co-Authored-By: Julian Nicolas Herrero <microweb10@gmail.com>
2021-06-08 18:45:55 +02:00
Julian Herrero
eb77d09425 Add phases step to budget creation 2021-06-08 18:45:55 +02:00
Javi Martín
9421f1673a Extract budget phases form to a component
This way it'll be easier to use it in the budgets wizard section
as well.
2021-06-08 18:45:55 +02:00
Julian Herrero
f8d6ba12d7 Add headings step to budget creation
Co-Authored-By: decabeza <alberto@decabeza.es>
2021-06-08 18:45:53 +02:00
Javi Martín
0a2c70cbfe Improve title in admin headings index
With the word "headings" in it, it's a bit easier to know where we are.

We're also using a translation since not every language in the world
uses a "/" as a standard separator between two terms.
2021-06-08 18:45:14 +02:00
Javi Martín
b99ce2af45 Remove duplication in timeline component
This way adding new steps will be easier.
2021-06-08 18:45:14 +02:00
Alberto
eff370b279 Improve layout in budget headings form 2021-06-08 18:45:14 +02:00
Alberto
b304c640e1 Add groups step to budget creation
Note we're keeping this section's original design (which had one button
to add a new group which after being pressed was replaced by a button to
cancel) but we aren't using Foundation's `data-toggle` because there
were a couple of usability and accessibility issues.

First, using `data-toggle` multiple times and applying it to multiple
elements led to the "cancel" button not being available after submitting
a form with errors. Fixing it made the code more complicated.

Second, the "Add new group" button always had the `aria-expanded`
attribute set to "true", so my screen reader was announcing the button
as expanded even when it wasn't. I didn't manage to fix it using
`data-toggle`.

Finally, after pressing either the "Add new group" and "Cancel" buttons,
the keyboard focus was lost since the elements disappeared.

So we're simplifying the HTML and adding some custom JavaScript to be
able to handle the focus and manually setting the `aria-expanded`
attribute.

Co-Authored-By: Javi Martín <javim@elretirao.net>
Co-Authored-By: Julian Herrero <microweb10@gmail.com>
2021-06-08 18:45:13 +02:00
Alberto
e71ccee682 Hide maximum headings select in groups without headings 2021-06-08 18:30:04 +02:00
Alberto
03e598a53d Improve layout in budget groups form 2021-06-08 18:30:03 +02:00
Javi Martín
01c21158c4 Use :only in groups and headings before_action
When we've got 6 actions and we use it in 3, IMHO the code is easier to
follow if we write the actions where we do use it.
2021-06-08 18:27:32 +02:00
Javi Martín
9d72aed37d Fix mixin for general button styles
Using the placeholder selector, we weren't overwriting the rules in the
mixin called with `@include` in some cases because in the generated CSS
the placeholder selector appeared before the code generated by the calls
to `@include`.
2021-06-08 18:27:32 +02:00