Module: Decidim::ReportingProposals::NeedsProposalExtraValidationsSnippets

Extended by:
ActiveSupport::Concern
Included in:
ProposalsControllerOverride
Defined in:
app/controllers/concerns/decidim/reporting_proposals/needs_proposal_extra_validations_snippets.rb

Overview

Exposes the proposal resource so users can view and create them.

Instance Method Summary collapse

Instance Method Details

#rulesObject

caps rules are not explicitly used in the JS validations



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'app/controllers/concerns/decidim/reporting_proposals/needs_proposal_extra_validations_snippets.rb', line 28

def rules
  model = Decidim::Proposals::Proposal.new(title: "title", body: "body")
  etiquette_validator = EtiquetteValidator.new(attributes: [:title, :body])
  etiquette_validator.validate(model)
  {
    genericError: I18n.t("decidim.forms.errors.error"),
    title: {
      caps: {
        enabled: model.errors.details[:title].to_s.include?(":must_start_with_caps"),
        error: I18n.t("errors.messages.must_start_with_caps")
      }
    },
    body: {
      caps: {
        enabled: model.errors.details[:body].to_s.include?(":must_start_with_caps"),
        error: I18n.t("errors.messages.must_start_with_caps")
      }
    }
  }
end

#rules_tagObject



23
24
25
# File 'app/controllers/concerns/decidim/reporting_proposals/needs_proposal_extra_validations_snippets.rb', line 23

def rules_tag
  (:script, "Decidim.ProposalRules = #{rules.to_json};".html_safe)
end

#snippetsObject



13
14
15
16
17
18
19
20
21
# File 'app/controllers/concerns/decidim/reporting_proposals/needs_proposal_extra_validations_snippets.rb', line 13

def snippets
  @snippets ||= Decidim::Snippets.new

  unless @snippets.any?(:reporting_proposals_js_validations)
    @snippets.add(:reporting_proposals_js_validations, rules_tag)
    @snippets.add(:foot, @snippets.for(:reporting_proposals_js_validations))
  end
  @snippets
end