decidim-core 0.24.1 → 0.24.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim-core might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bd1ecc9d053031a0c808fb50de21f015f51172196e38c1b048d61e6d55d69700
4
- data.tar.gz: 6046c271b086faaa89c964732b62b8fad30615d28dbb81d16a16b8018a7d14a3
3
+ metadata.gz: ab5095df3a838b44266df05ea2907b58743c104adb1a61af39919a003ceeab25
4
+ data.tar.gz: 79816ce45c6d0d505cefd28199a8271b40cefa88d057d0c25df9abae4a5a6b1a
5
5
  SHA512:
6
- metadata.gz: b750f331b5ba8e6d3ef0e7976bfbe604aa00284fcfdbe7d6787d67d7e9c1ca6b54867af75990ae6bfeeb4e48d6b0fa08e478ee7b11fc9343466b7431d3e2483c
7
- data.tar.gz: 8b7a123c28ac11d11134657e2939cd450338f7be0fc9ab8e1940c90ec4c5a73d63c8969eb4318a66a020b488b2c4b29b429ab13eb877ca77fbfd3e9c2022cc90
6
+ metadata.gz: c9d199e7ba25fb0fe25b650672c9a1c275080377e4df96378953462056342efc078849648a3c7421fab19541eecfc7d35cb96ac23a7dfd6850f131e2b01e29c6
7
+ data.tar.gz: 9076c3518c1b64cc06a16a95f562342fb5b75d6b6592f2c8c55e2cb74003f2da6bad11521da43a89890485e8daeb49e7502967b2e94e5ac688e4ce26c852412d
@@ -72,6 +72,13 @@
72
72
  }
73
73
  });
74
74
 
75
+ quill.clipboard.addMatcher("BR", (node) => {
76
+ if (node && node.parentNode && node.parentNode.tagName && node.parentNode.tagName === "A") {
77
+ return new Delta().insert("\n");
78
+ }
79
+ return new Delta().insert({"break": ""});
80
+ });
81
+
75
82
  addEnterBindings(quill);
76
83
  backspaceBindingsRangeAny(quill);
77
84
  backspaceBindings(quill);
@@ -40,17 +40,28 @@
40
40
  const currentLeaf = quill.getLeaf(range.index)[0];
41
41
  const nextLeaf = quill.getLeaf(range.index + 1)[0];
42
42
  const previousChar = quill.getText(range.index - 1, 1);
43
+ const formats = quill.getFormat(range.index);
43
44
 
44
- quill.insertEmbed(range.index, "break", true, "user");
45
- quill.formatText(range.index + 1, "bold", true)
46
- if (nextLeaf === null || (currentLeaf.parent !== nextLeaf.parent)) {
45
+ if ((currentLeaf && currentLeaf.next && currentLeaf.next.domNode &&
46
+ currentLeaf.next.domNode.tagName && currentLeaf.next.domNode.tagName === "A") ||
47
+ (nextLeaf && nextLeaf.parent && nextLeaf.parent.domNode && nextLeaf.parent.domNode.tagName &&
48
+ nextLeaf.parent.domNode.tagName === "A")) {
49
+ quill.insertEmbed(range.index, "break", true, "user");
50
+ quill.removeFormat(range.index, 1, Quill.sources.SILENT)
51
+ } else {
52
+ quill.insertEmbed(range.index, "break", true, "user");
53
+ }
54
+
55
+ if (nextLeaf === null) {
47
56
  quill.insertEmbed(range.index, "break", true, "user");
48
57
  } else if (context.offset === 1 && previousChar === "\n") {
49
58
  const delta = new Delta().retain(range.index).insert("\n");
50
59
  quill.updateContents(delta, Quill.sources.USER);
51
60
  }
52
61
 
53
- quill.format(name, context.format[name], Quill.sources.USER);
62
+ Object.keys(formats).forEach((format) => {
63
+ quill.format(format, context.format[format], Quill.sources.USER);
64
+ });
54
65
  quill.setSelection(range.index + 1, Quill.sources.SILENT);
55
66
 
56
67
  const lineFormats = getLineFormats(context);
@@ -58,12 +69,6 @@
58
69
  };
59
70
 
60
71
  const addEnterBindings = (quill) => {
61
- quill.clipboard.addMatcher("BR", () => {
62
- let newDelta = new Delta();
63
- newDelta.insert({"break": ""});
64
- return newDelta;
65
- });
66
-
67
72
  quill.keyboard.addBinding({
68
73
  key: 13,
69
74
  shiftKey: true
@@ -30,6 +30,7 @@ module Decidim
30
30
  helper Decidim::LayoutHelper
31
31
  helper Decidim::MenuHelper
32
32
  helper Decidim::OmniauthHelper
33
+ helper Decidim::CacheHelper
33
34
 
34
35
  layout "layouts/decidim/application"
35
36
 
@@ -20,7 +20,7 @@ module Decidim
20
20
 
21
21
  validates :name, presence: true
22
22
  validates :email, presence: true, 'valid_email_2/email': { disposable: true }
23
- validates :nickname, presence: true, format: /\A[\w\-]+\z/
23
+ validates :nickname, presence: true, format: Decidim::User::REGEXP_NICKNAME
24
24
 
25
25
  validates :nickname, length: { maximum: Decidim::User.nickname_max_length, allow_blank: true }
26
26
  validates :password, confirmation: true
@@ -7,6 +7,7 @@ module Decidim
7
7
  include Decidim::ScopesHelper
8
8
  include Decidim::ContextualHelpHelper
9
9
  include Decidim::AmendmentsHelper
10
+ include Decidim::CacheHelper
10
11
 
11
12
  # Truncates a given text respecting its HTML tags.
12
13
  #
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ # Helper overrides for the ActionView::Helpers::CacheHelper in order to take
5
+ # locale into account for fragment caching.
6
+ module CacheHelper
7
+ # See: https://git.io/J3ouj
8
+ def cache(name = {}, options = {}, &block)
9
+ name = Array(name) + [current_locale]
10
+
11
+ super(name, options, &block)
12
+ end
13
+ end
14
+ end
@@ -33,7 +33,6 @@ module Decidim
33
33
  hash = []
34
34
  hash << "decidim/proposals/filters"
35
35
  hash << type.to_s if type.present?
36
- hash << I18n.locale.to_s
37
36
  hash << Digest::MD5.hexdigest(filter.to_json)
38
37
 
39
38
  hash.join("/")
@@ -13,6 +13,8 @@ module Decidim
13
13
  include Decidim::UserReportable
14
14
  include Decidim::Traceable
15
15
 
16
+ REGEXP_NICKNAME = /\A[\w\-]+\z/.freeze
17
+
16
18
  class Roles
17
19
  def self.all
18
20
  Decidim.config.user_roles
@@ -35,7 +37,11 @@ module Decidim
35
37
  has_one :blocking, class_name: "Decidim::UserBlock", foreign_key: :id, primary_key: :block_id, dependent: :destroy
36
38
 
37
39
  validates :name, presence: true, unless: -> { deleted? }
38
- validates :nickname, presence: true, unless: -> { deleted? || managed? }, length: { maximum: Decidim::User.nickname_max_length }
40
+ validates :nickname,
41
+ presence: true,
42
+ format: { with: REGEXP_NICKNAME },
43
+ length: { maximum: Decidim::User.nickname_max_length },
44
+ unless: -> { deleted? || managed? }
39
45
  validates :locale, inclusion: { in: :available_locales }, allow_blank: true
40
46
  validates :tos_agreement, acceptance: true, allow_nil: false, on: :create
41
47
  validates :tos_agreement, acceptance: true, if: :user_invited?
@@ -23,7 +23,7 @@ module Decidim
23
23
  validates_avatar
24
24
  mount_uploader :avatar, Decidim::AvatarUploader
25
25
 
26
- validates :name, :nickname, format: { with: REGEXP_NAME }
26
+ validates :name, format: { with: REGEXP_NAME }
27
27
 
28
28
  # Public: Returns a collection with all the entities this user is following.
29
29
  #
@@ -1,7 +1,7 @@
1
1
  <div class="card--list__item">
2
2
  <div class="card--list__text">
3
3
  <div>
4
- <a href="<%= document.url %>" class="card__link">
4
+ <a href="<%= document.url %>" class="card__link" target="_blank">
5
5
  <h4 class="card--list__heading heading6">
6
6
  <%= attachment_title(document) %> <small><%= document.file_type %> <%= number_to_human_size(document.file_size) %></small>
7
7
  </h4>
@@ -1538,6 +1538,10 @@ es-MX:
1538
1538
  too_short: Es demasiado corto (menos de 15 caracteres)
1539
1539
  forms:
1540
1540
  correct_errors: Hay errores en el formulario, por favor corrígelos para continuar.
1541
+ length_validator:
1542
+ minimum:
1543
+ one: Al menos %{count} carácter
1544
+ other: Al menos %{count} caracteres
1541
1545
  required: Obligatorio
1542
1546
  required_explanation: "* Los campos requeridos están marcados con un asterisco"
1543
1547
  invisible_captcha:
@@ -1538,6 +1538,10 @@ es-PY:
1538
1538
  too_short: es demasiado corto (menos de 15 caracteres)
1539
1539
  forms:
1540
1540
  correct_errors: Hay errores en el formulario, por favor corrígelos para continuar.
1541
+ length_validator:
1542
+ minimum:
1543
+ one: Al menos %{count} carácter
1544
+ other: Al menos %{count} caracteres
1541
1545
  required: Obligatorio
1542
1546
  required_explanation: "* Los campos requeridos están marcados con un asterisco"
1543
1547
  invisible_captcha:
@@ -1534,6 +1534,10 @@ es:
1534
1534
  too_short: Es demasiado corto (menos de 15 caracteres)
1535
1535
  forms:
1536
1536
  correct_errors: Hay errores en el formulario, por favor corrígelos para continuar.
1537
+ length_validator:
1538
+ minimum:
1539
+ one: Al menos %{count} carácter
1540
+ other: Al menos %{count} caracteres
1537
1541
  required: Obligatorio
1538
1542
  required_explanation: "* Los campos requeridos están marcados con un asterisco"
1539
1543
  invisible_captcha:
@@ -704,7 +704,7 @@ fr:
704
704
  file:
705
705
  explanation: 'Orientation pour le fichier :'
706
706
  message_1: Doit être une image ou un document.
707
- message_2: Pour les images, utilisez de préférence des formats paysage, car le service recadre l'image. Pour les fichiers CSV, le séparateur entre les colonnes doit être une virgule (",")
707
+ message_2: Pour les images, utilisez de préférence des formats paysage, car le service recadre l'image. Pour les fichiers CSV, le séparateur entre les colonnes doit être une virgule (","). Pour pouvoir choisir le type de séparateur il recommander d'utiliser le logiciel "Libre Office"
708
708
  image:
709
709
  explanation: 'Orientation pour l''image:'
710
710
  message_1: De préférence une image au format paysage qui n'a pas de texte.
@@ -151,6 +151,7 @@ sv:
151
151
  officialize: "%{user_name} gjorde deltagaren %{resource_name} officiell"
152
152
  remove_from_admin: "%{user_name} tog bort deltagaren %{resource_name} med rollen: %{role}"
153
153
  show_email: "%{user_name} hämtade e-postadressen för deltagaren %{resource_name}"
154
+ transfer: "%{user_name} överförde deltagaren %{resource_name}"
154
155
  unblock: "%{user_name} avblockerade användaren %{resource_name}"
155
156
  unofficialize: "%{user_name} gjorde deltagaren %{resource_name} inofficiell"
156
157
  user_group:
@@ -386,6 +387,8 @@ sv:
386
387
  cta_settings_form:
387
388
  background_image: Bakgrundsbild
388
389
  button_text: Uppmaningens text
390
+ button_url: Uppmaningens URL
391
+ description: Beskrivning
389
392
  footer_sub_hero:
390
393
  name: Sidfot sub hero banner
391
394
  hero:
@@ -397,6 +400,7 @@ sv:
397
400
  name: Banner för uppmärksammat innehåll
398
401
  highlighted_elements_settings_form:
399
402
  orders:
403
+ label: 'Sortera element efter:'
400
404
  random: Slumpmässig
401
405
  recent: Senaste
402
406
  how_to_participate:
@@ -423,6 +427,7 @@ sv:
423
427
  ready: Klar
424
428
  show:
425
429
  download_data: Hämta data
430
+ download_data_description: En fil som innehåller all information kopplad till ditt konto kommer att skickas till <strong>%{user_email}</strong>. Detta e-postmeddelande kommer att innehålla en .zip-fil och ett lösenord för att öppna den.<br/><br/>För att packa upp filen behöver du <a href="https://www.7-zip.org/">7-Zip</a> (för Windows) eller <a href="https://www.keka.io/">Keka</a> (för MacOS). Om du använder Linux, för det mesta kommer du att ha den installerad som standard. Om inte, kan du använda <a href="https://gitlab.gnome.org/GNOME/file-roller">File Roller</a> eller <a href="https://peazip.github.io">PeaZip</a>).
426
431
  request_data: Begär data
427
432
  datepicker:
428
433
  help_text: 'Förväntat format: %{datepicker_format}'
@@ -432,6 +437,7 @@ sv:
432
437
  email_already_exists: Ett annat konto använder samma e-postadress
433
438
  new:
434
439
  complete_profile: Komplettera profil
440
+ nickname_help: Ditt alias i %{organization}. Kan bara innehålla bokstäver, siffror, '-' och '_'.
435
441
  sign_up: Var god slutför din profil
436
442
  subtitle: Slutför registreringen genom att fylla i följande formulär
437
443
  username_help: Offentligt namn som visas i dina inlägg. Du kan ange ett annat namn än ditt eget, om du vill vara anonym.
@@ -440,6 +446,7 @@ sv:
440
446
  already_have_an_account?: Har du redan ett konto?
441
447
  newsletter: Få enstaka nyhetsbrev med relevant information
442
448
  newsletter_title: Kontakttillstånd
449
+ nickname_help: Ditt alias i %{organization}. Kan bara innehålla bokstäver, siffror, '-' och '_'.
443
450
  password_help: "Minst %{minimun_characters} tecken, får inte vara för vanligt (som 123456) och måste vara skilt från ditt användarnamn och din e-postadress."
444
451
  sign_in: Logga in
445
452
  sign_up: Registrera dig
@@ -456,11 +463,14 @@ sv:
456
463
  register: Skapa ett konto
457
464
  sign_in_disabled: Du kan få åtkomst via ett externt konto
458
465
  sign_up_disabled: Anmälan är avaktiverad, men du kan komma in med ett befintligt konto
466
+ user:
467
+ timed_out: Du var inaktiv för länge och du har blivit automatiskt utloggad från tjänsten. Om du vill fortsätta använda tjänsten, vänligen logga in igen.
459
468
  shared:
460
469
  newsletter_modal:
461
470
  buttons:
462
471
  check: Kontrollera och fortsätt
463
472
  close_modal: Stäng modal
473
+ uncheck: Behåll avmarkeringen
464
474
  notice: |-
465
475
  <p>Hej, är du säker på att du inte vill få nyhetsbrevet?<br>
466
476
  Överväg gärna en gång till att markera kryssrutan för nyhetsbrev nedan.<br>
@@ -626,6 +636,11 @@ sv:
626
636
  notification_title: '%{user_group_name} användargrupp har uppdaterat sin profil och lämnar den overifierad. Du kan nu verifiera den i <a href="%{groups_admin_path}">administratörspanelen</a>.'
627
637
  notification_event:
628
638
  notification_title: En händelse inträffade i <a href="%{resource_path}">%{resource_title}</a>.
639
+ reports:
640
+ resource_hidden:
641
+ email_intro: En administratör tog bort din %{resource_type} eftersom den har rapporterats som %{report_reasons}.
642
+ email_outro: Du har fått det här meddelandet eftersom du är en författare till detta innehåll.
643
+ email_subject: Din %{resource_type} har tagits bort
629
644
  resource_endorsed:
630
645
  email_intro: '%{endorser_name} %{endorser_nickname}, som du följer, har just instämt med "%{resource_title}" och vi tror att du kan vara intresserad. Ta en titt och bidra:'
631
646
  email_outro: Du har fått det här meddelandet eftersom du följer %{endorser_nickname}. Du kan sluta att ta emot meddelanden via föregående länk.
@@ -1187,6 +1202,7 @@ sv:
1187
1202
  view_all: Visa alla (%{count})
1188
1203
  security:
1189
1204
  selfxss_warning:
1205
+ description: Denna webbläsarfunktion är avsedd för utvecklare och du bör inte klistra in något här om du ombads att göra det. Klistra in innehåll i detta fönster kan påverka din integritet och ge hackare tillgång till ditt konto.
1190
1206
  title: OBS!
1191
1207
  shared:
1192
1208
  confirm_modal:
@@ -1503,6 +1519,10 @@ sv:
1503
1519
  too_short: är för kort (under 15 tecken)
1504
1520
  forms:
1505
1521
  correct_errors: Det finns fel på formuläret, vänligen korrigera dem för att fortsätta.
1522
+ length_validator:
1523
+ minimum:
1524
+ one: Minst %{count} tecken
1525
+ other: Minst %{count} tecken
1506
1526
  required: Krävs
1507
1527
  required_explanation: "* Obligatoriska fält är markerade med en asterisk"
1508
1528
  invisible_captcha:
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-core version.
5
5
  module Core
6
6
  def self.version
7
- "0.24.1"
7
+ "0.24.2"
8
8
  end
9
9
  end
10
10
  end
@@ -43,7 +43,7 @@ module Decidim
43
43
  def headers
44
44
  return [] if processed_collection.empty?
45
45
 
46
- processed_collection.first.keys
46
+ processed_collection.inject([]) { |keys, resource| keys | resource.keys }
47
47
  end
48
48
 
49
49
  def processed_collection
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.1
4
+ version: 0.24.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-04-08 00:00:00.000000000 Z
13
+ date: 2021-05-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: active_link_to
@@ -608,14 +608,14 @@ dependencies:
608
608
  requirements:
609
609
  - - "~>"
610
610
  - !ruby/object:Gem::Version
611
- version: 5.2.5
611
+ version: 5.2.6
612
612
  type: :runtime
613
613
  prerelease: false
614
614
  version_requirements: !ruby/object:Gem::Requirement
615
615
  requirements:
616
616
  - - "~>"
617
617
  - !ruby/object:Gem::Version
618
- version: 5.2.5
618
+ version: 5.2.6
619
619
  - !ruby/object:Gem::Dependency
620
620
  name: rails-i18n
621
621
  requirement: !ruby/object:Gem::Requirement
@@ -858,28 +858,28 @@ dependencies:
858
858
  requirements:
859
859
  - - '='
860
860
  - !ruby/object:Gem::Version
861
- version: 0.24.1
861
+ version: 0.24.2
862
862
  type: :runtime
863
863
  prerelease: false
864
864
  version_requirements: !ruby/object:Gem::Requirement
865
865
  requirements:
866
866
  - - '='
867
867
  - !ruby/object:Gem::Version
868
- version: 0.24.1
868
+ version: 0.24.2
869
869
  - !ruby/object:Gem::Dependency
870
870
  name: decidim-dev
871
871
  requirement: !ruby/object:Gem::Requirement
872
872
  requirements:
873
873
  - - '='
874
874
  - !ruby/object:Gem::Version
875
- version: 0.24.1
875
+ version: 0.24.2
876
876
  type: :development
877
877
  prerelease: false
878
878
  version_requirements: !ruby/object:Gem::Requirement
879
879
  requirements:
880
880
  - - '='
881
881
  - !ruby/object:Gem::Version
882
- version: 0.24.1
882
+ version: 0.24.2
883
883
  description: Adds core features so other engines can hook into the framework.
884
884
  email:
885
885
  - josepjaume@gmail.com
@@ -1493,6 +1493,7 @@ files:
1493
1493
  - app/helpers/decidim/aria_selected_link_to_helper.rb
1494
1494
  - app/helpers/decidim/attachments_helper.rb
1495
1495
  - app/helpers/decidim/authorization_form_helper.rb
1496
+ - app/helpers/decidim/cache_helper.rb
1496
1497
  - app/helpers/decidim/card_helper.rb
1497
1498
  - app/helpers/decidim/categories_helper.rb
1498
1499
  - app/helpers/decidim/cells_helper.rb