summaryrefslogtreecommitdiff
path: root/app/views/shared/_recaptcha_form.html.haml
blob: f524747dea00a6e25376baabf88b708fa245ccb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- resource_name = spammable.class.model_name.singular
- humanized_resource_name = spammable.class.model_name.human.downcase
- script = local_assigns.fetch(:script, true)
- method = params[:action] == 'create' ? :post : :put
- has_submit = local_assigns.fetch(:has_submit, true)

= form_for resource_name, method: method, html: { class: 'recaptcha-form js-recaptcha-form' } do |f|
  .recaptcha
    - params[resource_name].each do |field, value|
      = hidden_field(resource_name, field, value: value)
    = hidden_field_tag(:spam_log_id, spammable.spam_log.id)
    -# The reCAPTCHA response value will be returned in the 'g-recaptcha-response' field
    = recaptcha_tags script: script, callback: 'recaptchaDialogCallback' unless Rails.env.test?
    -# Fake the 'g-recaptcha-response' field in the test environment, so that the feature spec
    -# can get to the (mocked) SpamVerdictService check.
    = hidden_field_tag('g-recaptcha-response', 'abc123') if Rails.env.test?

    -# Yields a block with given extra params.
    = yield

  - if has_submit
    .row-content-block.footer-block
      = f.submit _("Submit %{humanized_resource_name}") % { humanized_resource_name: humanized_resource_name }, class: 'gl-button btn btn-confirm'