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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers/integrations_helper.rb')
-rw-r--r--app/helpers/integrations_helper.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/app/helpers/integrations_helper.rb b/app/helpers/integrations_helper.rb
index 5471109e6d5..ffea23bf55d 100644
--- a/app/helpers/integrations_helper.rb
+++ b/app/helpers/integrations_helper.rb
@@ -136,6 +136,11 @@ module IntegrationsHelper
form_data[:jira_issue_transition_id] = integration.jira_issue_transition_id
end
+ if integration.is_a?(::Integrations::GitlabSlackApplication)
+ form_data[:upgrade_slack_url] = add_to_slack_link(project, slack_app_id)
+ form_data[:should_upgrade_slack] = integration.upgrade_needed?.to_s
+ end
+
form_data
end
@@ -212,6 +217,28 @@ module IntegrationsHelper
event_i18n_map[event] || event.to_s.humanize
end
+ def add_to_slack_link(project, slack_app_id)
+ query = {
+ scope: SlackIntegration::SCOPES.join(','),
+ client_id: slack_app_id,
+ redirect_uri: slack_auth_project_settings_slack_url(project),
+ state: form_authenticity_token
+ }
+
+ "#{::Projects::SlackApplicationInstallService::SLACK_AUTHORIZE_URL}?#{query.to_query}"
+ end
+
+ def gitlab_slack_application_data(projects)
+ {
+ projects: (projects || []).to_json(only: [:id, :name], methods: [:avatar_url, :name_with_namespace]),
+ sign_in_path: new_session_path(:user, redirect_to_referer: 'yes'),
+ is_signed_in: current_user.present?.to_s,
+ slack_link_path: slack_link_profile_slack_path,
+ gitlab_logo_path: image_path('illustrations/gitlab_logo.svg'),
+ slack_logo_path: image_path('illustrations/slack_logo.svg')
+ }
+ end
+
extend self
private