From e5b9cf10c6c6c5981fae84054ee0d454f74ba739 Mon Sep 17 00:00:00 2001 From: Laura Jaime Date: Thu, 21 Sep 2023 17:28:02 +0200 Subject: [PATCH] Add align text in Quill Editor --- Gemfile.lock | 439 +++++++++--------- app/packs/src/decidim/.keep | 0 .../decidim/decidim_awesome/editors/editor.js | 225 +++++++++ config/assets.rb | 10 +- docs/overrides.md | 4 + 5 files changed, 463 insertions(+), 215 deletions(-) delete mode 100644 app/packs/src/decidim/.keep create mode 100644 app/packs/src/decidim/decidim_awesome/editors/editor.js diff --git a/Gemfile.lock b/Gemfile.lock index 51f4cd54..8ff24ce9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,59 +1,59 @@ GIT remote: https://github.com/CodiTramuntana/decidim.git - revision: f7b34af3b665edc67259d11996a5a82b3f914f26 + revision: 9204816fa76841ce8866cf1d652c4f03072adc21 branch: release/0.26-stable specs: - decidim (0.26.5) - decidim-accountability (= 0.26.5) - decidim-admin (= 0.26.5) - decidim-api (= 0.26.5) - decidim-assemblies (= 0.26.5) - decidim-blogs (= 0.26.5) - decidim-budgets (= 0.26.5) - decidim-comments (= 0.26.5) - decidim-core (= 0.26.5) - decidim-debates (= 0.26.5) - decidim-forms (= 0.26.5) - decidim-generators (= 0.26.5) - decidim-meetings (= 0.26.5) - decidim-pages (= 0.26.5) - decidim-participatory_processes (= 0.26.5) - decidim-proposals (= 0.26.5) - decidim-sortitions (= 0.26.5) - decidim-surveys (= 0.26.5) - decidim-system (= 0.26.5) - decidim-templates (= 0.26.5) - decidim-verifications (= 0.26.5) - decidim-accountability (0.26.5) - decidim-comments (= 0.26.5) - decidim-core (= 0.26.5) - decidim-admin (0.26.5) + decidim (0.26.8) + decidim-accountability (= 0.26.8) + decidim-admin (= 0.26.8) + decidim-api (= 0.26.8) + decidim-assemblies (= 0.26.8) + decidim-blogs (= 0.26.8) + decidim-budgets (= 0.26.8) + decidim-comments (= 0.26.8) + decidim-core (= 0.26.8) + decidim-debates (= 0.26.8) + decidim-forms (= 0.26.8) + decidim-generators (= 0.26.8) + decidim-meetings (= 0.26.8) + decidim-pages (= 0.26.8) + decidim-participatory_processes (= 0.26.8) + decidim-proposals (= 0.26.8) + decidim-sortitions (= 0.26.8) + decidim-surveys (= 0.26.8) + decidim-system (= 0.26.8) + decidim-templates (= 0.26.8) + decidim-verifications (= 0.26.8) + decidim-accountability (0.26.8) + decidim-comments (= 0.26.8) + decidim-core (= 0.26.8) + decidim-admin (0.26.8) active_link_to (~> 1.0) - decidim-core (= 0.26.5) + decidim-core (= 0.26.8) devise (~> 4.7) devise-i18n (~> 1.2) devise_invitable (~> 2.0) - decidim-api (0.26.5) + decidim-api (0.26.8) graphql (~> 1.12, < 1.13) rack-cors (~> 1.0) redcarpet (~> 3.5, >= 3.5.1) - decidim-assemblies (0.26.5) - decidim-core (= 0.26.5) - decidim-blogs (0.26.5) - decidim-admin (= 0.26.5) - decidim-comments (= 0.26.5) - decidim-core (= 0.26.5) - decidim-budgets (0.26.5) - decidim-comments (= 0.26.5) - decidim-core (= 0.26.5) - decidim-comments (0.26.5) - decidim-core (= 0.26.5) + decidim-assemblies (0.26.8) + decidim-core (= 0.26.8) + decidim-blogs (0.26.8) + decidim-admin (= 0.26.8) + decidim-comments (= 0.26.8) + decidim-core (= 0.26.8) + decidim-budgets (0.26.8) + decidim-comments (= 0.26.8) + decidim-core (= 0.26.8) + decidim-comments (0.26.8) + decidim-core (= 0.26.8) redcarpet (~> 3.5, >= 3.5.1) - decidim-consultations (0.26.5) - decidim-admin (= 0.26.5) - decidim-comments (= 0.26.5) - decidim-core (= 0.26.5) - decidim-core (0.26.5) + decidim-consultations (0.26.8) + decidim-admin (= 0.26.8) + decidim-comments (= 0.26.8) + decidim-core (= 0.26.8) + decidim-core (0.26.8) active_link_to (~> 1.0) acts_as_list (~> 0.9) batch-loader (~> 1.2) @@ -63,7 +63,7 @@ GIT cells-rails (~> 0.1.3) charlock_holmes (~> 0.7) date_validator (~> 0.9.0) - decidim-api (= 0.26.5) + decidim-api (= 0.26.8) devise (~> 4.7) devise-i18n (~> 1.2) diffy (~> 3.3) @@ -105,15 +105,15 @@ GIT valid_email2 (~> 2.1) webpacker (= 6.0.0.rc.5) wisper (~> 2.0) - decidim-debates (0.26.5) - decidim-comments (= 0.26.5) - decidim-core (= 0.26.5) - decidim-dev (0.26.5) + decidim-debates (0.26.8) + decidim-comments (= 0.26.8) + decidim-core (= 0.26.8) + decidim-dev (0.26.8) axe-core-rspec (~> 4.1.0) byebug (~> 11.0) capybara (~> 3.24) db-query-matchers (~> 0.10.0) - decidim (= 0.26.5) + decidim (= 0.26.8) erb_lint (~> 0.0.35) factory_bot_rails (~> 4.8) i18n-tasks (~> 0.9.18) @@ -136,55 +136,52 @@ GIT w3c_rspec_validators (~> 0.3.0) webmock (~> 3.6) wisper-rspec (~> 1.0) - decidim-forms (0.26.5) - decidim-core (= 0.26.5) + decidim-forms (0.26.8) + decidim-core (= 0.26.8) wicked_pdf (~> 2.1) wkhtmltopdf-binary (~> 0.12) - decidim-generators (0.26.5) - decidim-core (= 0.26.5) - decidim-initiatives (0.26.5) - decidim-admin (= 0.26.5) - decidim-comments (= 0.26.5) - decidim-core (= 0.26.5) - decidim-verifications (= 0.26.5) + decidim-generators (0.26.8) + decidim-core (= 0.26.8) + decidim-initiatives (0.26.8) + decidim-admin (= 0.26.8) + decidim-comments (= 0.26.8) + decidim-core (= 0.26.8) + decidim-verifications (= 0.26.8) origami (~> 2.1) virtus-multiparams (~> 0.1) wicked (~> 1.3) wicked_pdf (~> 2.1) wkhtmltopdf-binary (~> 0.12) - decidim-meetings (0.26.5) - decidim-core (= 0.26.5) - decidim-forms (= 0.26.5) + decidim-meetings (0.26.8) + decidim-core (= 0.26.8) + decidim-forms (= 0.26.8) icalendar (~> 2.5) - decidim-pages (0.26.5) - decidim-core (= 0.26.5) - decidim-participatory_processes (0.26.5) - decidim-core (= 0.26.5) - decidim-proposals (0.26.5) - decidim-comments (= 0.26.5) - decidim-core (= 0.26.5) + decidim-pages (0.26.8) + decidim-core (= 0.26.8) + decidim-participatory_processes (0.26.8) + decidim-core (= 0.26.8) + decidim-proposals (0.26.8) + decidim-comments (= 0.26.8) + decidim-core (= 0.26.8) doc2text (~> 0.4.4) redcarpet (~> 3.5, >= 3.5.1) - decidim-sortitions (0.26.5) - decidim-admin (= 0.26.5) - decidim-comments (= 0.26.5) - decidim-core (= 0.26.5) - decidim-proposals (= 0.26.5) - decidim-surveys (0.26.5) - decidim-core (= 0.26.5) - decidim-forms (= 0.26.5) - decidim-templates (= 0.26.5) - decidim-system (0.26.5) + decidim-sortitions (0.26.8) + decidim-admin (= 0.26.8) + decidim-comments (= 0.26.8) + decidim-core (= 0.26.8) + decidim-proposals (= 0.26.8) + decidim-surveys (0.26.8) + decidim-core (= 0.26.8) + decidim-forms (= 0.26.8) + decidim-templates (= 0.26.8) + decidim-system (0.26.8) active_link_to (~> 1.0) - decidim-core (= 0.26.5) + decidim-core (= 0.26.8) devise (~> 4.7) devise-i18n (~> 1.2) devise_invitable (~> 2.0) - decidim-templates (0.26.5) - decidim-core (= 0.26.5) - decidim-forms (= 0.26.5) - decidim-verifications (0.26.5) - decidim-core (= 0.26.5) + decidim-verifications (0.26.8) + decidim-core (= 0.26.8) GIT remote: https://github.com/mainio/decidim-module-term_customizer @@ -232,38 +229,38 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (6.0.6) - actionpack (= 6.0.6) + actioncable (6.0.6.1) + actionpack (= 6.0.6.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.0.6) - actionpack (= 6.0.6) - activejob (= 6.0.6) - activerecord (= 6.0.6) - activestorage (= 6.0.6) - activesupport (= 6.0.6) + actionmailbox (6.0.6.1) + actionpack (= 6.0.6.1) + activejob (= 6.0.6.1) + activerecord (= 6.0.6.1) + activestorage (= 6.0.6.1) + activesupport (= 6.0.6.1) mail (>= 2.7.1) - actionmailer (6.0.6) - actionpack (= 6.0.6) - actionview (= 6.0.6) - activejob (= 6.0.6) + actionmailer (6.0.6.1) + actionpack (= 6.0.6.1) + actionview (= 6.0.6.1) + activejob (= 6.0.6.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.6) - actionview (= 6.0.6) - activesupport (= 6.0.6) + actionpack (6.0.6.1) + actionview (= 6.0.6.1) + activesupport (= 6.0.6.1) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.6) - actionpack (= 6.0.6) - activerecord (= 6.0.6) - activestorage (= 6.0.6) - activesupport (= 6.0.6) + actiontext (6.0.6.1) + actionpack (= 6.0.6.1) + activerecord (= 6.0.6.1) + activestorage (= 6.0.6.1) + activesupport (= 6.0.6.1) nokogiri (>= 1.8.5) - actionview (6.0.6) - activesupport (= 6.0.6) + actionview (6.0.6.1) + activesupport (= 6.0.6.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -271,20 +268,20 @@ GEM active_link_to (1.0.5) actionpack addressable - activejob (6.0.6) - activesupport (= 6.0.6) + activejob (6.0.6.1) + activesupport (= 6.0.6.1) globalid (>= 0.3.6) - activemodel (6.0.6) - activesupport (= 6.0.6) - activerecord (6.0.6) - activemodel (= 6.0.6) - activesupport (= 6.0.6) - activestorage (6.0.6) - actionpack (= 6.0.6) - activejob (= 6.0.6) - activerecord (= 6.0.6) + activemodel (6.0.6.1) + activesupport (= 6.0.6.1) + activerecord (6.0.6.1) + activemodel (= 6.0.6.1) + activesupport (= 6.0.6.1) + activestorage (6.0.6.1) + actionpack (= 6.0.6.1) + activejob (= 6.0.6.1) + activerecord (= 6.0.6.1) marcel (~> 1.0) - activesupport (6.0.6) + activesupport (6.0.6.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -292,13 +289,13 @@ GEM zeitwerk (~> 2.2, >= 2.2.2) acts_as_list (0.9.19) activerecord (>= 3.0) - addressable (2.8.1) + addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) akami (1.3.1) gyoku (>= 0.4.0) nokogiri ast (2.4.2) - axe-core-api (4.6.0) + axe-core-api (4.7.0) dumb_delegator virtus axe-core-rspec (4.1.0) @@ -309,8 +306,9 @@ GEM descendants_tracker (~> 0.0.4) ice_nine (~> 0.11.0) thread_safe (~> 0.3, >= 0.3.1) + base64 (0.1.1) batch-loader (1.5.0) - bcrypt (3.1.18) + bcrypt (3.1.19) better_html (1.0.16) actionview (>= 4.0) activesupport (>= 4.0) @@ -320,12 +318,12 @@ GEM parser (>= 2.4) smart_properties bindex (0.8.1) - bootsnap (1.14.0) + bootsnap (1.16.0) msgpack (~> 1.2) browser (2.7.1) builder (3.2.4) byebug (11.1.3) - capybara (3.38.0) + capybara (3.39.2) addressable matrix mini_mime (>= 0.1.3) @@ -334,7 +332,7 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - carrierwave (2.2.3) + carrierwave (2.2.4) activemodel (>= 5.0.0) activesupport (>= 5.0.0) addressable (~> 2.6) @@ -354,7 +352,7 @@ GEM actionpack (>= 5.0) cells (>= 4.1.6, < 5.0.0) charlock_holmes (0.7.7) - chef-utils (18.1.29) + chef-utils (18.3.0) concurrent-ruby childprocess (3.0.0) coderay (1.1.3) @@ -368,13 +366,14 @@ GEM execjs coffee-script-source (1.12.2) colorize (0.8.1) - concurrent-ruby (1.1.10) - connection_pool (2.3.0) + concurrent-ruby (1.2.2) + connection_pool (2.4.1) crack (0.4.5) rexml crass (1.0.6) - css_parser (1.14.0) + css_parser (1.16.0) addressable + date (3.3.3) date_validator (0.9.0) activemodel activesupport @@ -385,6 +384,9 @@ GEM decidim-admin (>= 0.25.0, < 0.27) decidim-core (>= 0.25.0, < 0.27) sassc (~> 2.3) + decidim-templates (0.26.8) + decidim-core (= 0.26.8) + decidim-forms (= 0.26.8) declarative-builder (0.1.0) declarative-option (< 0.2.0) declarative-option (0.1.0) @@ -396,7 +398,7 @@ GEM rainbow (>= 2.1.0) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) - devise (4.9.0) + devise (4.9.2) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) @@ -404,16 +406,16 @@ GEM warden (~> 1.2.3) devise-i18n (1.11.0) devise (>= 4.9.0) - devise_invitable (2.0.7) + devise_invitable (2.0.8) actionmailer (>= 5.0) devise (>= 4.6) diff-lcs (1.5.0) diffy (3.4.2) - doc2text (0.4.5) - nokogiri (>= 1.13.2, < 1.14.0) + doc2text (0.4.6) + nokogiri (>= 1.13.2, < 1.15.0) rubyzip (~> 2.3.0) docile (1.4.0) - doorkeeper (5.6.5) + doorkeeper (5.6.6) railties (>= 5) doorkeeper-i18n (4.0.1) dotenv (2.8.1) @@ -432,19 +434,20 @@ GEM smart_properties erbse (0.1.4) temple - erubi (1.11.0) + erubi (1.12.0) et-orbi (1.2.7) tzinfo - excon (0.99.0) - execjs (2.8.1) + excon (0.103.0) + execjs (2.9.1) factory_bot (4.11.1) activesupport (>= 3.0.0) factory_bot_rails (4.11.1) factory_bot (~> 4.11.1) railties (>= 3.0.0) - faker (3.0.0) + faker (3.2.1) i18n (>= 1.8.11, < 2) - faraday (2.7.4) + faraday (2.7.11) + base64 faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.2) @@ -465,11 +468,11 @@ GEM activemodel (>= 4.1, < 7.1) activesupport (>= 4.1, < 7.1) railties (>= 4.1, < 7.1) - fugit (1.7.2) + fugit (1.8.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) geocoder (1.7.5) - globalid (1.0.0) + globalid (1.1.0) activesupport (>= 5.0) graphql (1.12.24) gyoku (1.4.0) @@ -483,7 +486,7 @@ GEM httpi (2.5.0) rack socksify - i18n (1.12.0) + i18n (1.14.1) concurrent-ruby (~> 1.0) i18n-tasks (0.9.37) activesupport (>= 4.0.2) @@ -495,7 +498,7 @@ GEM rails-i18n rainbow (>= 2.2.2, < 4.0) terminal-table (>= 1.5.1) - icalendar (2.8.0) + icalendar (2.9.0) ice_cube (~> 0.16) ice_cube (0.16.4) ice_nine (0.11.2) @@ -505,7 +508,7 @@ GEM invisible_captcha (0.13.0) rails (>= 3.2.0) json (2.6.3) - jwt (2.7.0) + jwt (2.7.1) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -524,8 +527,8 @@ GEM kramdown (~> 2.0) ladle (1.0.1) open4 (~> 1.0) - launchy (2.5.0) - addressable (~> 2.7) + launchy (2.5.2) + addressable (~> 2.8) letter_opener (1.8.1) launchy (>= 2.2, < 3) letter_opener_web (2.0.0) @@ -540,8 +543,11 @@ GEM loofah (2.3.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) - mail (2.7.1) + mail (2.8.1) mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp marcel (1.0.2) matrix (0.4.2) mdl (0.12.0) @@ -551,29 +557,32 @@ GEM mixlib-config (>= 2.2.1, < 4) mixlib-shellout method_source (1.0.0) - mime-types (3.4.1) + mime-types (3.5.1) mime-types-data (~> 3.2015) - mime-types-data (3.2023.0218.1) + mime-types-data (3.2023.0808) mini_magick (4.12.0) - mini_mime (1.1.2) - mini_portile2 (2.8.0) - minitest (5.16.3) + mini_mime (1.1.5) + minitest (5.20.0) mixlib-cli (2.1.8) mixlib-config (3.0.27) tomlrb mixlib-shellout (3.2.7) chef-utils - msgpack (1.6.0) + msgpack (1.7.2) multi_xml (0.6.0) mustache (1.1.1) - net-ldap (0.17.1) + net-imap (0.3.7) + date + net-protocol + net-ldap (0.18.0) + net-pop (0.1.2) + net-protocol net-protocol (0.2.1) timeout - net-smtp (0.3.3) + net-smtp (0.4.0) net-protocol - nio4r (2.5.8) - nokogiri (1.13.9) - mini_portile2 (~> 2.8.0) + nio4r (2.5.9) + nokogiri (1.14.5-x86_64-linux) racc (~> 1.4) nori (2.6.0) oauth (1.1.0) @@ -619,15 +628,16 @@ GEM paper_trail (12.3.0) activerecord (>= 5.2) request_store (~> 1.1) - parallel (1.22.1) - parser (3.2.1.1) + parallel (1.23.0) + parser (3.2.2.3) ast (~> 2.4.1) + racc pg (1.1.4) pg_search (2.3.6) activerecord (>= 5.2) activesupport (>= 5.2) polyglot (0.3.5) - premailer (1.20.0) + premailer (1.21.0) addressable css_parser (>= 1.12.0) htmlentities (>= 4.0.0) @@ -635,7 +645,7 @@ GEM actionmailer (>= 3) net-smtp premailer (~> 1.7, >= 1.7.9) - pry (0.14.1) + pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) pry-byebug (3.10.1) @@ -643,52 +653,53 @@ GEM pry (>= 0.13, < 0.15) pry-rails (0.3.9) pry (>= 0.10.4) - public_suffix (5.0.0) - puma (5.6.5) + public_suffix (5.0.3) + puma (5.6.7) nio4r (~> 2.0) raabro (1.4.0) - racc (1.6.0) - rack (2.2.4) - rack-attack (6.6.1) - rack (>= 1.0, < 3) + racc (1.7.1) + rack (2.2.8) + rack-attack (6.7.0) + rack (>= 1.0, < 4) rack-cors (1.1.1) rack (>= 2.0.0) - rack-protection (3.0.3) + rack-protection (3.1.0) + rack (~> 2.2, >= 2.2.4) + rack-proxy (0.7.7) rack - rack-proxy (0.7.6) - rack - rack-test (2.0.2) + rack-test (2.1.0) rack (>= 1.3) - rails (6.0.6) - actioncable (= 6.0.6) - actionmailbox (= 6.0.6) - actionmailer (= 6.0.6) - actionpack (= 6.0.6) - actiontext (= 6.0.6) - actionview (= 6.0.6) - activejob (= 6.0.6) - activemodel (= 6.0.6) - activerecord (= 6.0.6) - activestorage (= 6.0.6) - activesupport (= 6.0.6) + rails (6.0.6.1) + actioncable (= 6.0.6.1) + actionmailbox (= 6.0.6.1) + actionmailer (= 6.0.6.1) + actionpack (= 6.0.6.1) + actiontext (= 6.0.6.1) + actionview (= 6.0.6.1) + activejob (= 6.0.6.1) + activemodel (= 6.0.6.1) + activerecord (= 6.0.6.1) + activestorage (= 6.0.6.1) + activesupport (= 6.0.6.1) bundler (>= 1.3.0) - railties (= 6.0.6) + railties (= 6.0.6.1) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) activesupport (>= 5.0.1.rc1) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest nokogiri (>= 1.6) rails-html-sanitizer (1.4.3) loofah (~> 2.3) rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - railties (6.0.6) - actionpack (= 6.0.6) - activesupport (= 6.0.6) + railties (6.0.6.1) + actionpack (= 6.0.6.1) + activesupport (= 6.0.6.1) method_source rake (>= 0.8.7) thor (>= 0.20.3, < 2.0) @@ -709,13 +720,13 @@ GEM wisper (>= 1.6.1) redcarpet (3.6.0) redis (4.5.1) - regexp_parser (2.7.0) + regexp_parser (2.8.1) request_store (1.5.1) rack (>= 1.4) responders (3.1.0) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.2.5) + rexml (3.2.6) rspec (3.12.0) rspec-core (~> 3.12.0) rspec-expectations (~> 3.12.0) @@ -723,15 +734,15 @@ GEM rspec-cells (0.3.8) cells (>= 4.0.0, < 6.0.0) rspec-rails (>= 3.0.0, < 6.1.0) - rspec-core (3.12.0) + rspec-core (3.12.2) rspec-support (~> 3.12.0) - rspec-expectations (3.12.0) + rspec-expectations (3.12.3) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.12.0) rspec-html-matchers (0.9.4) nokogiri (~> 1) rspec (>= 3.0.0.a, < 4) - rspec-mocks (3.12.0) + rspec-mocks (3.12.6) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.12.0) rspec-rails (4.1.2) @@ -744,7 +755,7 @@ GEM rspec-support (~> 3.10) rspec-retry (0.6.2) rspec-core (> 3.3) - rspec-support (3.12.0) + rspec-support (3.12.1) rspec_junit_formatter (0.3.0) rspec-core (>= 2, < 4, != 2.12.0) rubocop (0.92.0) @@ -756,7 +767,7 @@ GEM rubocop-ast (>= 0.5.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 2.0) - rubocop-ast (1.27.0) + rubocop-ast (1.29.0) parser (>= 3.2.1.0) rubocop-rails (2.9.1) activesupport (>= 4.2.0) @@ -794,8 +805,8 @@ GEM rack (~> 2.0) rack-protection (>= 1.5.0) redis (~> 4.5, < 4.6.0) - sidekiq-cron (1.8.0) - fugit (~> 1) + sidekiq-cron (1.9.1) + fugit (~> 1.8) sidekiq (>= 4.2.1) simplecov (0.19.1) docile (~> 1.1) @@ -814,25 +825,25 @@ GEM spring-watcher-listen (2.0.1) listen (>= 2.7, < 4.0) spring (>= 1.2, < 3.0) - sprockets (4.2.0) + sprockets (4.2.1) concurrent-ruby (~> 1.0) rack (>= 2.2.4, < 4) sprockets-rails (3.4.2) actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - ssrf_filter (1.1.1) + ssrf_filter (1.1.2) system_test_html_screenshots (0.2.0) actionpack (>= 5.2, < 6.1.a) - temple (0.10.0) + temple (0.10.2) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - thor (1.2.1) + thor (1.2.2) thread_safe (0.3.6) - tilt (2.1.0) - timeout (0.3.2) + tilt (2.3.0) + timeout (0.4.0) tomlrb (2.0.3) - tzinfo (1.2.10) + tzinfo (1.2.11) thread_safe (~> 0.1) uber (0.1.0) uglifier (4.2.0) @@ -841,7 +852,7 @@ GEM valid_email2 (2.3.1) activemodel (>= 3.2) mail (~> 2.5) - version_gem (1.1.1) + version_gem (1.1.3) virtus (1.0.5) axiom-types (~> 0.1) coercible (~> 1.0) @@ -863,12 +874,12 @@ GEM addressable httpi (~> 2.0) nokogiri (>= 1.4.2) - web-console (4.2.0) + web-console (4.2.1) actionview (>= 6.0.0) activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webmock (3.18.1) + webmock (3.19.1) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -877,22 +888,22 @@ GEM rack-proxy (>= 0.6.1) railties (>= 5.2) semantic_range (>= 2.3.0) - websocket-driver (0.7.5) + websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) wicked (1.4.0) railties (>= 3.0.7) - wicked_pdf (2.6.3) + wicked_pdf (2.7.0) activesupport wisper (2.0.1) wisper-rspec (1.1.0) wkhtmltopdf-binary (0.12.6.6) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.6) + zeitwerk (2.6.11) PLATFORMS - ruby + x86_64-linux DEPENDENCIES bootsnap @@ -931,4 +942,4 @@ RUBY VERSION ruby 2.7.5p203 BUNDLED WITH - 2.3.6 + 2.3.4 diff --git a/app/packs/src/decidim/.keep b/app/packs/src/decidim/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/app/packs/src/decidim/decidim_awesome/editors/editor.js b/app/packs/src/decidim/decidim_awesome/editors/editor.js new file mode 100644 index 00000000..c92ef927 --- /dev/null +++ b/app/packs/src/decidim/decidim_awesome/editors/editor.js @@ -0,0 +1,225 @@ +/* eslint-disable require-jsdoc, func-style */ + +/* +* Since version 0.25 we follow a different strategy and opt to destroy and override completely the original editor +* That's because editors are instantiated directly instead of creating a global function to instantiate them +*/ + +import lineBreakButtonHandler from "src/decidim/editor/linebreak_module" +import InscrybMDE from "inscrybmde" +import Europa from "europa" +import "inline-attachment/src/inline-attachment"; +import "inline-attachment/src/codemirror-4.inline-attachment"; +import "inline-attachment/src/jquery.inline-attachment"; +import hljs from "highlight.js"; +import "highlight.js/styles/github.css"; +import "src/decidim/editor/clipboard_override" +import "src/decidim/vendor/image-resize.min" +import "src/decidim/vendor/image-upload.min" +import { marked } from "marked"; + +const DecidimAwesome = window.DecidimAwesome || {}; +const quillFormats = ["bold", "italic", "link", "underline", "header", "list", "video", "image", "alt", "break", "width", "style", "code", "blockquote", "indent", + // START DIBA CUSTOMIZATION + "align" + // END DIBA CUSTOMIZATION +]; + +// A tricky way to destroy the quill editor +export function destroyQuillEditor(container) { + if (container) { + const content = $(container).find(".ql-editor").html(); + $(container).html(content); + $(container).siblings(".ql-toolbar").remove(); + $(container).find("*[class*='ql-']").removeClass((index, className) => (className.match(/(^|\s)ql-\S+/g) || []).join(" ")); + $(container).removeClass((index, className) => (className.match(/(^|\s)ql-\S+/g) || []).join(" ")); + if ($(container).next().is("p.help-text")) { + $(container).next().remove(); + } + } + else { + console.error(`editor [${container}] not exists`); + } +} + +export function createQuillEditor(container) { + const toolbar = $(container).data("toolbar"); + const disabled = $(container).data("disabled"); + const allowedEmptyContentSelector = "iframe"; + + let quillToolbar = [ + ["bold", "italic", "underline", "linebreak"], + [{ list: "ordered" }, { list: "bullet" }], + ["link", "clean"], + ["code", "blockquote"], + [{ "indent": "-1"}, { "indent": "+1" }], + // START DIBA CUSTOMIZATION + [{"align": []}] + // END DIBA CUSTOMIZATION + ]; + + let addImage = false; + + if (toolbar === "full") { + quillToolbar = [ + [{ header: [2, 3, 4, 5, 6, false] }], + ...quillToolbar + ]; + if (DecidimAwesome.allow_images_in_full_editor) { + quillToolbar.push(["video", "image"]); + addImage = true; + } else { + quillToolbar.push(["video"]); + } + } else if (toolbar === "basic") { + if (DecidimAwesome.allow_images_in_small_editor) { + quillToolbar.push(["video", "image"]); + addImage = true; + } else { + quillToolbar.push(["video"]); + } + } else if (DecidimAwesome.allow_images_in_small_editor) { + quillToolbar.push(["image"]); + addImage = true; + } + + let modules = { + linebreak: {}, + toolbar: { + container: quillToolbar, + handlers: { + "linebreak": lineBreakButtonHandler + } + } + }; + + const $input = $(container).siblings('input[type="hidden"]'); + container.innerHTML = $input.val() || ""; + const token = $('meta[name="csrf-token"]').attr("content"); + if (addImage) { + modules.imageResize = { + modules: ["Resize", "DisplaySize"] + } + modules.imageUpload = { + url: DecidimAwesome.editor_uploader_path, + method: "POST", + name: "image", + withCredentials: false, + headers: { "X-CSRF-Token": token }, + callbackOK: (serverResponse, next) => { + $("div.ql-toolbar").last().removeClass("editor-loading") + next(serverResponse.url); + }, + callbackKO: (serverError) => { + $("div.ql-toolbar").last().removeClass("editor-loading") + let msg = serverError && serverError.body; + try { + msg = JSON.parse(msg).message; + } catch (evt) { console.error("Parsing error", evt); } + console.error(`Image upload error: ${msg}`); + let $p = $(`

${msg}

`); + $(container).after($p) + setTimeout(() => { + $p.fadeOut(1000, () => { + $p.destroy(); + }); + }, 3000); + }, + checkBeforeSend: (file, next) => { + $("div.ql-toolbar").last().addClass("editor-loading") + next(file); + } + } + } + const quill = new Quill(container, { + modules: modules, + formats: quillFormats, + theme: "snow" + }); + + if (disabled) { + quill.disable(); + } + + quill.on("text-change", () => { + const text = quill.getText(); + + // Triggers CustomEvent with the cursor position + // It is required in input_mentions.js + let event = new CustomEvent("quill-position", { + detail: quill.getSelection() + }); + container.dispatchEvent(event); + + if (text === "\n" || text === "\n\n") { + $input.val(""); + } else { + $input.val(quill.root.innerHTML); + } + if ((text === "\n" || text === "\n\n") && quill.root.querySelectorAll(allowedEmptyContentSelector).length === 0) { + $input.val(""); + } else { + const emptyParagraph = "


"; + const cleanHTML = quill.root.innerHTML.replace( + new RegExp(`^${emptyParagraph}|${emptyParagraph}$`, "g"), + "" + ); + $input.val(cleanHTML); + } + }); + // After editor is ready, linebreak_module deletes two extraneous new lines + quill.emitter.emit("editor-ready"); + + if (addImage) { + const text = $(container).data("dragAndDropHelpText") || DecidimAwesome.texts.drag_and_drop_image; + $(container).after(`

${text}

`); + } + + // After editor is ready, linebreak_module deletes two extraneous new lines + quill.emitter.emit("editor-ready"); + + return quill; +} + +export function createMarkdownEditor(container) { + const text = DecidimAwesome.texts.drag_and_drop_image; + const token = $('meta[name="csrf-token"]').attr("content"); + const $input = $(container).siblings('input[type="hidden"]'); + const $faker = $('