Commit Graph

9884 Commits

Author SHA1 Message Date
Javi Martín
e6437bb896 Fix tags styles in forms
These styles were broken in commit 2614de79c, since there we only
considered scenarios where the `tags` element is a list. In these forms, however, the `tags` element is a regular <div> tag.
2021-02-14 18:56:52 +01:00
Javi Martín
7ce61ced85 Use font awesome in social share icons
Since we've changed the facebook and twitter login icons, it makes sense
to use the same icons in social share links.

Besides, using font-awesome simplifies the code and prevents problems
with screen readers announcing the value of the `content:` CSS property.
2021-02-14 14:57:13 +01:00
Javi Martín
741f2fc141 Use icon width variable in SSB icons
The font size and the line-height were chosen according to the width of
the icon; we're now making it clear.
2021-02-14 14:42:40 +01:00
Javi Martín
60c3fd2fff Use google icon in sign in page
We were using the icon for google plus, which was confusing since google
plus no longer exists.

Note this change requires changing the font for these icons, since the
google icon is not present in the "icons" font. On the plus side, using
the font awesome icons we can simplify the code a little bit.
2021-02-09 19:12:47 +01:00
Javi Martín
b867243e83 Remove redundant background property
The property is overwritten for each icon.
2021-02-09 19:00:04 +01:00
Javi Martín
3ce86078e1 Remove unused styles for button-telegram
We only use the button-* classes in the sign in form, and there's no
"Sign in through Telegram" feature.
2021-02-09 18:19:17 +01:00
Javi Martín
5569663308 Use aria-expanded on column selector toggle button
This way screen reader users will be informed about what happens when
the button is clicked. We also simplify the HTML/JavaScript a little
bit.
2021-02-08 19:57:42 +01:00
Javi Martín
00dfa95902 Allow toggling the column selector with a keyboard
Using a button tag, it's possible for every user to "click" the element.
Besides, we don't need to call the `preventDefault` function, because
buttons with type "button" don't do anything by default.
2021-02-08 19:57:42 +01:00
Javi Martín
aed38aa3cf Fix styles for mobile icons in featured proposals
We were only adding styles for facebook and twitter, meaning telegram
and whatsapp looked out of place.
2021-02-08 16:31:26 +01:00
Javi Martín
abc81b30be Simplify styles for SSB icons
By using the same selector used by the social-share-button gem, we can
remove all the !important rules.
2021-02-08 16:31:26 +01:00
Javi Martín
68260360ef Remove unused styles
As far as I can see, the `.jumbo-budget` never had social share button
elements inside it.
2021-02-08 16:31:26 +01:00
Javi Martín
780660afc7 Use the icon-width variable to set SSB icon size
The same way we use it for SDG icons.
2021-02-08 16:31:26 +01:00
Javi Martín
86cac524b2 Remove unnecessary <div> tag
The `proposal-show` HTML class was only used in this context to style
the whatsapp icon, which is now styled the same way as other social
share icons. The `proposal-show` class should be reserved for the actual
proposal show action.
2021-02-08 16:31:26 +01:00
Javi Martín
0d8119a1e3 Use social-share-button whatsapp icon
We were using a custom icon because in the past social-share-button
didn't have support for whatsapp. But now that it does, we can remove
our custom icon.

Note we're using the `_app` suffix because that's the name of the icon
meant for mobile devices.
2021-02-08 16:31:26 +01:00
Javi Martín
ae8afc9b75 Remove duplication in social share button styles
All buttons were using the same styles, so we might as well style them
together.
2021-02-08 16:31:26 +01:00
Javi Martín
c5a56214c6 Remove redundant social share button styles
These styles were defined twice in our layout stylesheet.
2021-02-08 16:31:25 +01:00
Javi Martín
00656e2e10 Fix SpaceAroundErbTag offense 2021-02-08 15:18:56 +01:00
Javi Martín
b214205d8f Use Capybara to disable animations in tests
We were doing it manually, but Capybara offers an option which does the
exact same thing.

This way we also apply the NoJavascriptTagHelper ERB rule, which
reported one error in the `disable_animations_in_tests` partial.
2021-02-05 17:46:23 +01:00
Javi Martín
1c2886debb Remove redundant condition
The association `organization.user` returns `nil` when the user is
hidden.

This was discovered thanks to the `Style/AndOr` rule. We were using
`and` and `||` on the same line, which is confusing.
2021-02-05 17:46:23 +01:00
Javi Martín
e7ca01fad7 Apply Rails/Presence rule in ERB files 2021-02-05 17:46:23 +01:00
Javi Martín
82200c5d0b Apply ParenthesesAsGroupedExpression rule in ERB 2021-02-05 17:46:23 +01:00
Javi Martín
c1cf9f0c34 Apply Style/SymbolProc rule in ERB files 2021-02-05 17:46:23 +01:00
Javi Martín
cc2aa6de6e Apply Style/TrailingCommaInHashLiteral rule in ERB 2021-02-05 17:46:23 +01:00
Javi Martín
2eb255e85a Apply Rails/SafeNavigation rule in ERB files 2021-02-05 17:46:23 +01:00
Javi Martín
0911b89d16 Add name attribute to heading content blocks
This way we can simplify the code and don't have to rely on `.try`
statements which are confusing and so we don't allow them in the
`Rails/SafeNavigation` Rubocop rule.
2021-02-05 17:46:23 +01:00
Javi Martín
2d37a0396b Apply Layout/ExtraSpacing rule in ERB files
Note that in Ruby files this rule allows vertical alignment, but doesn't
seem to do the same in ERB. Since we only used vertical alignment in one
place, and that place also had an unneeded extra space on every aligned
line, I've decided to change the code in that place and follow the rule.
2021-02-05 17:46:23 +01:00
Javi Martín
4809a87a78 Apply Style/HashSyntax rule in ERB files 2021-02-05 17:46:23 +01:00
Javi Martín
67c6515405 Apply Style/CollectionMethods rule to ERB files 2021-02-05 17:46:23 +01:00
Javi Martín
f864156b21 Add and apply ClosingErbTagIndent ERB Lint rule
Note this rule does still allow us to add new lines after opening tags;
it just makes sure that if we do, we also add it in closing tags.
Likewise, if we don't add it in the opening tag, it forces us not to add
it in the closing tag either.

I don't have a strong preference about either style; in these cases I've
chosen the latter because it seemed more common in our code.
2021-02-05 17:39:42 +01:00
Javi Martín
92a09f74b0 Remove obsolete tag list rule
This rule was added so the tag list wouldn't have an extra bottom
margin. However, the rule is already applied by the `.tags` selector
inside `.budget-investment` and it was conflicting with other lists
(goals and tags) we've added to thi investments index.
2021-02-04 12:32:03 +01:00
Javi Martín
7d4e49a090 Reorganize SDG tag list components
So now we've got a component receiving records (goals or targets) and a
related model (Debate, Proposal, ...), with optionally a link to see
more tags.

This way we simplify some logic since the `TagList` classes were dealing
with too many cases (a record is passed, a class name is passed, a limit
is passed), ... Now `TagList` only deal with the natural `TagList` case,
which is listing the tags for a record. The case where a class name is
passed is used in the `TagCloud` class.
2021-02-02 22:22:40 +01:00
Javi Martín
a78663120a Extract component to render a goal/target tag 2021-02-02 22:22:40 +01:00
Javi Martín
999d1a2cfd Rename goals FilterLinks component to TagCloud
This is more consistent with the "tag_cloud" partial name.
2021-02-02 22:22:39 +01:00
Javi Martín
ad56b01a9a Extract component to render "see more" link 2021-02-02 22:22:37 +01:00
Javi Martín
6112016773 Extract component to render a list of tags 2021-02-02 21:56:45 +01:00
Javi Martín
7c4515d6ce Simplify code to generate "See more" link
We can skip the `link_to(*options) if options` part if we accept anchor
tags in the `link_list` helper.
2021-02-02 20:05:40 +01:00
Senén Rodero Rodríguez
fb611d91ca Fix legislation proposal crash with SDG enabled
Now we check the given record or name is a relatable instance or class
to avoid trying to render goals for records which don't have a goals
association.

Note for now we are ignoring the case where we pass a controller_path
for an unsupported class (for example, `legislation/proposals` or
`budgets/headings`) because we never use it. We might need to revisit
this case in the future.

Co-Authored-By: Javi Martín <javim@elretirao.net>
2021-01-31 14:44:53 +01:00
Senén Rodero Rodríguez
450b157a5e Fix tag links on legislation proposals
On commit 1a902a96 we removed this helper to make use of polymorphic
routes but when it's called for Legislation::Proposal fails as the
namespace does not match the model namespace.

Now we recover the removed helper but only the parts that do not work
with polymorphic_url helper.

Co-Authored-By: Javi Martín <javim@elretirao.net>
2021-01-31 13:56:05 +01:00
taitus
35db41827c Add tag list component to process feed
Remember that this component (widget/feeds/process) is displayed both in
the home page and in the target index.
2021-01-31 13:53:57 +01:00
taitus
ca36dd56f0 Add tag list component to proposal feed 2021-01-31 13:53:57 +01:00
taitus
edbef4fd88 Add tag list component to debate feed 2021-01-31 13:53:57 +01:00
Javi Martín
60f3cc8cf9 Merge pull request #4329 from consul/sdg_polls_processes
Display related SDG and targets on polls and processes
2021-01-31 13:44:51 +01:00
Senén Rodero Rodríguez
2f9caa502a Darken goal icons on link hover
As they not seem to be interactive elements.
2021-01-31 13:33:28 +01:00
Javi Martín
a877449936 Add related SDG and targets tags to processes
I'm not sure why we were using squares to style these lists see commit
bbacd4546b) but I don't think it's very important and it breaks
displaying the list of related SDGs.
2021-01-31 13:33:27 +01:00
Javi Martín
19bab5a9dc Add related SDG and targets tags to polls 2021-01-31 13:33:27 +01:00
Senén Rodero Rodríguez
bb1315def1 Prepare SDG tag list component to render list with or without links
Now the tag list can render tags with or without links, so we need
to adapt the styles slightly.

We want to use the same text color for tags without links.

The hover style is only needed when using tags with links.
2021-01-31 13:33:26 +01:00
Senén Rodero Rodríguez
cc2ce38d13 Create SDG target component to render plain tags 2021-01-31 13:33:25 +01:00
Senén Rodero Rodríguez
54843c1e53 Create SDG goal component to render plain tags 2021-01-31 13:33:25 +01:00
Javi Martín
96d5354cd8 Improve performance sorting SDG records
We noticed there was a performance issue while browsing the SDG
Management section and when one of our tests started failing sometimes
because the request to the relations#index controller took too long.

The issue proved to be `SDG::Target#<=>`. This method calls `.goal` for
each target, meaning we were generating 169 database queries when
sorting all targets.

So we're comparing codes directly to minimize the number of database
queries and improve performance. Requests to the relations index take
now less than third of the time they used to take.
2021-01-30 14:00:44 +01:00
Javi Martín
cdfa23fc6f Adjust icon margins on small screens
On these screens, sometimes the icons will be `$sdg-icon-min-width`
wide, but the margins were not taking this into account.

We can use CSS `max` function to set minimum margins just like we set
minimum width. However, there are two things to take into account:

* LibSass does not support these functions as it tries to use Sass own
  functionst at compile time, so we need to hack them writing `Max()`
  (which works in CSS because it is not case sensitive)
* Not all browsers support it (90% at the time of writing), so we write
  the rules twice (the first time for browsers not supporting it); we
  could use `@supports` but then we would have to overwrite some of the
  rules in the `.sdg-goals-index .sdg-goal-list` selector using
  `!important` or adding a `@supports` clause there as well
2021-01-29 19:07:32 +01:00