Welcome to mirror list, hosted at ThFree Co, Russian Federation.

services_helper.rb « helpers « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e9d39cc81752be2e37f40ffd30ac54fe59300591 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# frozen_string_literal: true

module ServicesHelper
  def service_event_description(event)
    case event
    when "push", "push_events"
      s_("ProjectService|Event will be triggered by a push to the repository")
    when "tag_push", "tag_push_events"
      s_("ProjectService|Event will be triggered when a new tag is pushed to the repository")
    when "note", "note_events"
      s_("ProjectService|Event will be triggered when someone adds a comment")
    when "confidential_note", "confidential_note_events"
      s_("ProjectService|Event will be triggered when someone adds a comment on a confidential issue")
    when "issue", "issue_events"
      s_("ProjectService|Event will be triggered when an issue is created/updated/closed")
    when "confidential_issue", "confidential_issue_events"
      s_("ProjectService|Event will be triggered when a confidential issue is created/updated/closed")
    when "merge_request", "merge_request_events"
      s_("ProjectService|Event will be triggered when a merge request is created/updated/merged")
    when "pipeline", "pipeline_events"
      s_("ProjectService|Event will be triggered when a pipeline status changes")
    when "wiki_page", "wiki_page_events"
      s_("ProjectService|Event will be triggered when a wiki page is created/updated")
    when "commit", "commit_events"
      s_("ProjectService|Event will be triggered when a commit is created/updated")
    when "deployment"
      s_("ProjectService|Event will be triggered when a deployment finishes")
    when "alert"
      s_("ProjectService|Event will be triggered when a new, unique alert is recorded")
    end
  end

  def service_event_field_name(event)
    event = event.pluralize if %w[merge_request issue confidential_issue].include?(event)
    "#{event}_events"
  end

  def service_save_button(disabled: false)
    button_tag(class: 'btn btn-success', type: 'submit', disabled: disabled, data: { qa_selector: 'save_changes_button' }) do
      icon('spinner spin', class: 'hidden js-btn-spinner') +
        content_tag(:span, 'Save changes', class: 'js-btn-label')
    end
  end

  def scoped_integrations_path
    if @project.present?
      project_settings_integrations_path(@project)
    elsif @group.present?
      group_settings_integrations_path(@group)
    else
      integrations_admin_application_settings_path
    end
  end

  def scoped_integration_path(integration)
    if @project.present?
      project_service_path(@project, integration)
    elsif @group.present?
      group_settings_integration_path(@group, integration)
    else
      admin_application_settings_integration_path(integration)
    end
  end

  def scoped_edit_integration_path(integration)
    if @project.present?
      edit_project_service_path(@project, integration)
    elsif @group.present?
      edit_group_settings_integration_path(@group, integration)
    else
      edit_admin_application_settings_integration_path(integration)
    end
  end

  def scoped_test_integration_path(integration)
    if @project.present?
      test_project_service_path(@project, integration)
    elsif @group.present?
      test_group_settings_integration_path(@group, integration)
    else
      test_admin_application_settings_integration_path(integration)
    end
  end

  def integration_form_data(integration)
    {
      id: integration.id,
      show_active: integration.show_active_box?.to_s,
      activated: (integration.active || integration.new_record?).to_s,
      type: integration.to_param,
      merge_request_events: integration.merge_requests_events.to_s,
      commit_events: integration.commit_events.to_s,
      enable_comments: integration.comment_on_event_enabled.to_s,
      comment_detail: integration.comment_detail,
      trigger_events: trigger_events_for_service(integration),
      fields: fields_for_service(integration),
      inherit_from_id: integration.inherit_from_id
    }
  end

  def trigger_events_for_service(integration)
    ServiceEventSerializer.new(service: integration).represent(integration.configurable_events).to_json
  end

  def fields_for_service(integration)
    ServiceFieldSerializer.new(service: integration).represent(integration.global_fields).to_json
  end

  def project_jira_issues_integration?
    false
  end

  extend self
end

ServicesHelper.prepend_if_ee('EE::ServicesHelper')

# The methods in `EE::ServicesHelper` should be available as both instance and
# class methods.
ServicesHelper.extend_if_ee('EE::ServicesHelper')