2018-12-05 23:21:45 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-08-24 12:49:21 +05:30
|
|
|
module ServicesHelper
|
|
|
|
def service_event_description(event)
|
|
|
|
case event
|
2017-08-17 22:00:37 +05:30
|
|
|
when "push", "push_events"
|
2016-08-24 12:49:21 +05:30
|
|
|
"Event will be triggered by a push to the repository"
|
2017-08-17 22:00:37 +05:30
|
|
|
when "tag_push", "tag_push_events"
|
2016-08-24 12:49:21 +05:30
|
|
|
"Event will be triggered when a new tag is pushed to the repository"
|
2017-08-17 22:00:37 +05:30
|
|
|
when "note", "note_events"
|
2016-08-24 12:49:21 +05:30
|
|
|
"Event will be triggered when someone adds a comment"
|
2018-04-05 14:03:07 +05:30
|
|
|
when "confidential_note", "confidential_note_events"
|
|
|
|
"Event will be triggered when someone adds a comment on a confidential issue"
|
2017-08-17 22:00:37 +05:30
|
|
|
when "issue", "issue_events"
|
2016-09-29 09:46:39 +05:30
|
|
|
"Event will be triggered when an issue is created/updated/closed"
|
2018-04-05 14:03:07 +05:30
|
|
|
when "confidential_issue", "confidential_issues_events"
|
2016-09-29 09:46:39 +05:30
|
|
|
"Event will be triggered when a confidential issue is created/updated/closed"
|
2017-08-17 22:00:37 +05:30
|
|
|
when "merge_request", "merge_request_events"
|
2016-08-24 12:49:21 +05:30
|
|
|
"Event will be triggered when a merge request is created/updated/merged"
|
2017-08-17 22:00:37 +05:30
|
|
|
when "pipeline", "pipeline_events"
|
|
|
|
"Event will be triggered when a pipeline status changes"
|
|
|
|
when "wiki_page", "wiki_page_events"
|
2016-08-24 12:49:21 +05:30
|
|
|
"Event will be triggered when a wiki page is created/updated"
|
2017-08-17 22:00:37 +05:30
|
|
|
when "commit", "commit_events"
|
|
|
|
"Event will be triggered when a commit is created/updated"
|
2016-08-24 12:49:21 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def service_event_field_name(event)
|
2016-09-29 09:46:39 +05:30
|
|
|
event = event.pluralize if %w[merge_request issue confidential_issue].include?(event)
|
2016-08-24 12:49:21 +05:30
|
|
|
"#{event}_events"
|
|
|
|
end
|
2017-08-17 22:00:37 +05:30
|
|
|
|
2020-01-01 13:55:28 +05:30
|
|
|
def service_event_action_field_name(action)
|
|
|
|
"#{action}_on_event_enabled"
|
|
|
|
end
|
|
|
|
|
|
|
|
def event_action_title(action)
|
|
|
|
case action
|
|
|
|
when "comment"
|
|
|
|
s_("ProjectService|Comment")
|
|
|
|
else
|
|
|
|
action.humanize
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def event_action_description(action)
|
|
|
|
case action
|
|
|
|
when "comment"
|
|
|
|
s_("ProjectService|Comment will be posted on each event")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2020-05-24 23:13:21 +05:30
|
|
|
def service_save_button
|
|
|
|
button_tag(class: 'btn btn-success', type: 'submit', data: { qa_selector: 'save_changes_button' }) do
|
2018-03-17 18:26:18 +05:30
|
|
|
icon('spinner spin', class: 'hidden js-btn-spinner') +
|
|
|
|
content_tag(:span, 'Save changes', class: 'js-btn-label')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2020-04-22 19:07:51 +05:30
|
|
|
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?
|
2020-05-24 23:13:21 +05:30
|
|
|
edit_project_service_path(@project, integration)
|
2020-04-22 19:07:51 +05:30
|
|
|
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_settings_integration_path(@project, integration)
|
|
|
|
elsif @group.present?
|
|
|
|
test_group_settings_integration_path(@group, integration)
|
|
|
|
else
|
|
|
|
test_admin_application_settings_integration_path(integration)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2020-06-23 00:09:42 +05:30
|
|
|
def integration_form_refactor?
|
|
|
|
Feature.enabled?(:integration_form_refactor, @project)
|
|
|
|
end
|
|
|
|
|
|
|
|
def trigger_events_for_service
|
|
|
|
return [] unless integration_form_refactor?
|
|
|
|
|
|
|
|
ServiceEventSerializer.new(service: @service).represent(@service.configurable_events).to_json
|
|
|
|
end
|
|
|
|
|
|
|
|
def fields_for_service
|
|
|
|
return [] unless integration_form_refactor?
|
|
|
|
|
|
|
|
ServiceFieldSerializer.new(service: @service).represent(@service.global_fields).to_json
|
|
|
|
end
|
|
|
|
|
|
|
|
def show_service_trigger_events?
|
|
|
|
return false if @service.is_a?(JiraService) || integration_form_refactor?
|
|
|
|
|
|
|
|
@service.configurable_events.present?
|
|
|
|
end
|
|
|
|
|
2017-08-17 22:00:37 +05:30
|
|
|
extend self
|
2016-08-24 12:49:21 +05:30
|
|
|
end
|
2019-12-04 20:38:33 +05:30
|
|
|
|
2020-05-24 23:13:21 +05:30
|
|
|
ServicesHelper.prepend_if_ee('EE::ServicesHelper')
|
2019-12-04 20:38:33 +05:30
|
|
|
|
|
|
|
# The methods in `EE::ServicesHelper` should be available as both instance and
|
|
|
|
# class methods.
|
|
|
|
ServicesHelper.extend_if_ee('EE::ServicesHelper')
|