40 lines
1.6 KiB
Ruby
40 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module NotifyHelper
|
|
def merge_request_reference_link(entity, *args)
|
|
link_to(entity.to_reference, merge_request_url(entity, *args))
|
|
end
|
|
|
|
def issue_reference_link(entity, *args, full: false)
|
|
link_to(entity.to_reference(full: full), issue_url(entity, *args))
|
|
end
|
|
|
|
def invited_to_description(source)
|
|
default_description =
|
|
case source
|
|
when Project
|
|
s_('InviteEmail|Projects are used to host and collaborate on code, track issues, and continuously build, test, and deploy your app with built-in GitLab CI/CD.')
|
|
when Group
|
|
s_('InviteEmail|Groups assemble related projects together and grant members access to several projects at once.')
|
|
end
|
|
|
|
(source.description || default_description).truncate(200, separator: ' ')
|
|
end
|
|
|
|
def invited_join_url(token, member)
|
|
additional_params = { invite_type: Emails::Members::INITIAL_INVITE }
|
|
|
|
# order important below to our scheduled testing of these
|
|
# `from` experiment will be after the `text` on, but we may not cleanup
|
|
# from the `text` one by the time we run the `from` experiment,
|
|
# therefore we want to support `text` being fully enabled
|
|
# but if `from` is also enabled, then we only care about `from`
|
|
if experiment(:invite_email_from, actor: member).enabled?
|
|
additional_params[:experiment_name] = 'invite_email_from'
|
|
elsif experiment(:invite_email_preview_text, actor: member).enabled?
|
|
additional_params[:experiment_name] = 'invite_email_preview_text'
|
|
end
|
|
|
|
invite_url(token, additional_params)
|
|
end
|
|
end
|