Commit Graph

2326 Commits

Author SHA1 Message Date
Senén Rodero Rodríguez
149ce945c0 Simplify initialization code for tags links
By using an event delegation handler on document body there is no need
to check if element was already initialized (idempotency) anymore.
2020-08-04 20:32:14 +02:00
Senén Rodero Rodríguez
45a80af793 Do not remove click event definition before defining it
Use delegated handlers instead so there is not risk to run method
multiple times.
2020-08-04 20:31:52 +02:00
Javi Martín
82ef5149c5 Remove redundant progress bar
We were displaying two progress bars for the same thing, and hiding one
of them.

Displaying just one of them and readjusting the styles accordingly is a
bit more intuitive IMHO.

We're also getting the text inside the progress bar out of it; its
purpose inside an element with the `progressbar` role is to provide the
same information as the progress bar (which we aren't exactly doing,
although it could be argued that we do), and in order to be accessible
we should provide the same text in the `aria-valuetext` field, which we
aren't doing. This also simplifies our CSS, which was working because we
defined a padding which covered the height of the hidden extra progress
bar and would have needed quite a few changes if we kept just one
progress bar with text inside it. We can also remove a few CSS rules
which we added to override foundation's rules for the
`progress-meter-text` class.
2020-07-30 16:20:00 +02:00
Javi Martín
1b21171602 Remove duplication in CSS for omniauth buttons
We were adding the same styles five times.
2020-07-27 14:47:42 +02:00
decabeza
e3539544a8 Remove google plus share button 2020-07-17 16:24:20 +02:00
Javi Martín
9937e94fcd Fix flagging debates and comments with AJAX
We weren't using `foundation()` in these cases, so after flagging a
debate or a comment, we had to reload the page before we could unflag
it.

We're also adding a test for the fix in commit ea85059d. This test shows
it's necessary to filter the elements with JavaSctipt using `first()` if
we want the same code to work with comments.

Co-Authored-By: taitus <sebastia.roig@gmail.com>
2020-07-07 22:56:17 +02:00
Senén Rodero Rodríguez
31c0b4360d Improve the way to toggle comment responses
Co-Authored-By: Javi Martín <javim@elretirao.net>
2020-05-26 13:20:26 +02:00
Senén Rodero Rodríguez
dcff7e8a33 Show parent comment responses when a new reply is added
When a user replies to a comment whose responses was hidden at the
moment of reply form submission and although the reply were correctly
added to the DOM it was hidden because was added to a collapsed list.

This solution is about showing all responses of parent comment after adding
the new comment to the DOM so the user can see new reply into the screen.
(This is not applicable to root comments which cannot be collapsed)
2020-05-26 13:20:26 +02:00
Senén Rodero Rodríguez
014fa6eb1c Add mutations observer to initialize user initials added through ajax 2020-05-26 13:20:26 +02:00
Senén Rodero Rodríguez
956f002738 Update parent comment responses count when a new reply is created
Extract the needed portion of code to a new partial to be able to update
only the elements needed when a new comment is added keeping UI properly
updated.
2020-05-26 13:20:26 +02:00
Javier Martín
d9d18f0d15 Merge pull request #3995 from rockandror/fix_map_zoom_js_error
Do not update form location fields when marker is not defined
2020-05-14 19:36:26 +02:00
Javi Martín
ae41becd3a Use CSS to hide reply forms
We were using inline styles and passing local variables around, while
the rule we were following is very simple: it's only hidden if it's a
form to reply to a comment.
2020-05-12 23:57:57 +02:00
Javi Martín
faefb52972 Use the same code to add comments and replies 2020-05-12 23:57:57 +02:00
Javi Martín
4627372a62 Use a <ul> tag for a list of comments
We were using a <ul> tag for a single comment, where the first element
of the list was the comment itself and the second element was the list
of replies.

IMHO it makes more sense to have a list of all comments, where every
element is a comment and inside it there's a list of replies.

We're also rendering the list even if it has no children so it's easier
to add comments through JavaScript. Then we use the :empty CSS selector
to hide the list if it's empty. However, since ERB adds whitespace if we
structure our code the usual way and current browsers don't recognize
elements with whitespace as empty, we have to use the `tag` helper so no
whitespace is added.
2020-05-12 23:57:16 +02:00
Javi Martín
41b9d2ba01 Simplify code to show/collapse comment replies
Tests are also a bit easier to read, even though we need to use the
`text:` option to find links because otherwise the text in the hidden
`<span>` tags will cause `click_link` to miss the link we want to click.

Here's an explanation by one of Capybara's authors:
https://github.com/teamcapybara/capybara/issues/2347#issuecomment-626373440
2020-05-12 23:23:01 +02:00
Javi Martín
255e56c0f2 Simplify toggleClass call
This method accepts several classes as arguments, so there's no need to
call it twice.
2020-05-11 16:09:23 +02:00
Javier Martín
2fee7099ae Merge pull request #3998 from rockandror/ckeditor-browser-history-back
Destroy and intialize ckeditor on browser history back
2020-05-11 14:29:39 +02:00
Senén Rodero Rodríguez
3d0ce57f03 Destroy and intialize ckeditor on browser history back
When a page with ckeditor is restored from browser cache by using browser
history back feature application was trying to re-initialize it but this was
throwing some javascript errors that left ckeditor useless. The ckeditor user
interface seemed to be loaded correctly but editor contents was not shown
and ckeditor locked.

This solution is about destroying all ckeditor instances on page before
leaving it and force the reinitialization after Turbolinks restored the cache.
Inspiration here [1].

There is a similar patch to make it work with Turbolinks 5.x versions [2].

  [1] https://github.com/galetahub/ckeditor/issues/575#issuecomment-132757961
  [2] https://github.com/galetahub/ckeditor/issues/575#issuecomment-241185136
2020-05-11 11:15:45 +02:00
Senén Rodero Rodríguez
c2b9377055 Extract duplicated code to method 2020-05-09 08:17:56 +02:00
Senén Rodero Rodríguez
70a9fb7355 Do not call initialize_modules after every ajax call
We were calling initialize_modules after every ajax call only to apply the
application javascript to new elements added though ajax calls, this is not
always needed because some ajax calls do not add new elements to the user
interface so there is no new elements to initialize. This technique was working
fine in most cases but was causing different kind of problems at some pages where
some elements where being unnecessarily reinitiliazed causing the execution of the
element associated scripts as many times as the element was initialized. This fix
should relief a little bit of work to users browsers.

After this change we had to fix some pieces of javascript:

Regarding LegistationAnnotatable module, since we are not re-initializing Annotator
app we cannot destroy it so now we only need to insert the new annotation into annotator
interface to keep it properly updated.

Regarding Comments module, we do not need anymore the initialization check because this
code only will be fired once now we do not launch application initialization after ajax
calls. Also, when a new comment is created its added to the DOM through AJAX and include
some elements that needs javascript initialization to work. By using
"Delegated event handlers" [1] new comments will be initialized automatically when added.

[1] https://api.jquery.com/on/#direct-and-delegated-events
2020-05-09 08:17:55 +02:00
Senén Rodero Rodríguez
0ec1f6a4f8 Do not update form location fields when marker is not defined 2020-04-30 19:44:23 +02:00
Javier Martín
082fc1a1b6 Merge pull request #3981 from rockandror/disable-ckeditor-unused-plugins
Disable ckeditor unused plugins
2020-04-23 13:06:50 +02:00
Javier Martín
2e4ff552c6 Merge pull request #3977 from consul/fix_ckeditor_drag_drop
Fix attaching images in CKEditor via drag and drop
2020-04-23 13:03:48 +02:00
Senén Rodero Rodríguez
9fd9ef8a54 Explicitly disable not used ckeditor plugins
All of these plugins are not used anywhere.

Change introduced at ckeditor initializer will ommit unneeded
precompilation of plugins assets on production environments.

Change introduced at ckeditor config file adresses the problem with assets
pipeline fallback on testing environments described here: #2711. Now plugins
that are explicitly disabled will not be precomiled when running ckeditor
javascript enabled feature specs.
2020-04-23 10:37:26 +02:00
Javier Martín
b2d64b20ed Merge pull request #3979 from rockandror/ckeditor-recover-copy-paste
Allow to paste formatted content into ckeditors
2020-04-22 14:57:12 +02:00
Javier Martín
5a80548fc8 Merge pull request #3973 from consul/cards-height
Replace equalizer to display flex on cards
2020-04-21 14:00:02 +02:00
Senén Rodero Rodríguez
1e3f7e0062 Allow to paste formatted content into ckeditors 2020-04-20 20:27:00 +02:00
Javi Martín
8e4f9d5173 Fix attaching images in CKEditor via drag and drop
The URL used for the generated request was
`/ckeditor/pictures&responseType=json`. This is a known issue in the
ckeditor gem, and it's suggested to add a `?` at the end of the URL in
order to fix it.

I haven't added a test for this case since simulating dropping a file in
the browser with Selenium/Capybara seems to be quite tricky and I
haven't found a solution guaranteed to correctly emulate what users do.
2020-04-18 12:39:30 +02:00
Javier Martín
56bc0c6e41 Merge pull request #3976 from rockandror/deactivate-ckeditor-file-attachment
Deactivate ckeditor file attachments feature
2020-04-18 12:38:31 +02:00
Senén Rodero Rodríguez
7466148408 Deactivate ckeditor file uploads feature
This feature was not working so its better to disable it completely.

By removing attachment_files endpoints related buttons and tabs from ckeditor UI are not shown to users anymore.
2020-04-18 09:21:25 +02:00
decabeza
111e3d3083 Replaces icons of expand/collapse comments 2020-04-16 23:22:14 +02:00
decabeza
a8537f7e19 Replace equalizer to display flex on cards 2020-04-14 17:14:52 +02:00
taitus
162462fc32 Use en-GB locale when current locale is not include in application.js
When a current locale is not defined on applicaton.js, datepicker load
the last jquery-ui/i18n/datepicker-xx defined.
Add 'jquery-ui/i18n/datepicker-en-GB' as last "require" to use when a current locale is not defined.
2020-02-19 15:58:55 +01:00
taitus
11cdcb72ef Add the rest of the languages available in "available_locales"
Of all the available locales on application.rb, the only ones that do not
have a correspondence with:
https://github.com/jquery/jquery-ui/tree/master/ui/i18n are [:so, :val]
2020-02-18 17:57:21 +01:00
Alceu Medeiros
6c3509fbf5 Add datepicker translations to available locales 2020-02-18 17:42:46 +01:00
Eduardo Moreira
9f948c150b Fix card description overflow 2020-02-18 09:36:19 -03:00
Javier Martín
7f19b16478 Merge pull request #3902 from consul/wordpress_login
Enable Wordpress Oauth login and registration
2020-02-07 14:23:00 +01:00
Julian Herrero
193e51d42f Enable Wordpress Oauth login and registration 2020-02-07 12:23:41 +07:00
taitus
14c38a2615 Force dateFormat to dd/mm/yyyy for all locales
To maintain consistency and the use of advanced search in the frontend,
we forced the expected date format for all languages. This is a temporary
solution that we should analyze in depth to allow different date formats
depending on the language in the filters.
2020-02-05 09:27:10 +01:00
decabeza
d163dee242 Fix menu styles 2020-01-18 11:10:11 +01:00
Alberto
34c75fec4b Merge pull request #3606 from consul/fontawesome
Add Font Awesome icons
2020-01-18 11:07:03 +01:00
Javi Martín
d19abd7ddb Fix uploading images through CKEditor's upload tab
The bug was introduced when we upgraded the ckeditor gem in commit
f240e007.
2020-01-17 21:52:21 +01:00
Javier Martín
bae999299a Merge pull request #3900 from consul/fix_ckeditor_validation_error
Fix style for validation errors in HTML areas
2020-01-17 16:41:41 +01:00
Javier Martín
50c830a55f Merge pull request #3830 from PierreMesure/fixes-pagination-bug-on-mobile
Fix pagination problem on mobile
2020-01-17 16:12:21 +01:00
Javi Martín
dc485b0ac6 Fix style for validation errors in HTML areas
Rails automatically adds the field class to the validation error
message, and so it had an unusual height.
2020-01-09 20:33:11 +01:00
Javier Martín
dadd921730 Merge pull request #3854 from PierreMesure/fix-a-css-leak
Fix a tiny CSS leak
2019-12-20 15:23:22 +01:00
Pierre Mesure
1431a8379c Fix a CSS leak 2019-12-19 23:34:31 +01:00
Javi Martín
42106e6601 Fix double scroll bar in admin content
We were using `overflow: scroll` as a workaround with a problem we had
with the equalizer. But now we never need an extra vertical scroll bar,
and we only need an extra horizontal scroll bar on small screens.

Since the dashboard was using the class `admin-content` as well, we need
to apply to the dashboard the same changes we've done in the admin
section. I've extracted them into a mixin.
2019-12-19 16:02:31 +01:00
Javi Martín
91d4624443 Simplify admin side menu layout
We can move the button to toggle the menu to the main content, and
everything will look the same way while we'll need one div less.
2019-12-19 16:02:31 +01:00
Javi Martín
f2e32b44b1 Fix blank space in admin content
In some situations where JavaScript makes content disappear, the height
of the element calculated by foundation's equalizer isn't recalculated,
leaving blank space at the bottom of the page. I've seen cases where a
blank vertical space of 2000 pixels is on the page.

Using flexbox solves the problem, since CSS takes care of everything.
2019-12-19 16:02:31 +01:00