diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index c816b616631..adb5eeee3e4 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -294,4 +294,8 @@ module ApplicationHelper def page_class "issue-boards-page" if current_controller?(:boards) end + + def pretty_url(url) + url.gsub(/\A.*?:\/\//, '') + end end diff --git a/app/views/projects/mattermost/_no_teams.html.haml b/app/views/projects/mattermost/_no_teams.html.haml new file mode 100644 index 00000000000..605c7f61dee --- /dev/null +++ b/app/views/projects/mattermost/_no_teams.html.haml @@ -0,0 +1,12 @@ +%p + You aren’t a member of any team on the Mattermost instance at + %strong= Gitlab.config.mattermost.host +%p + To install this service, + = link_to "#{Gitlab.config.mattermost.host}/select_team", target: '__blank' do + join a team + = icon('external-link') + and try again. +%hr +.clearfix + = link_to 'Go back', edit_namespace_project_service_path(@project.namespace, @project, @service), class: 'btn btn-lg pull-right' diff --git a/app/views/projects/mattermost/_team_selection.html.haml b/app/views/projects/mattermost/_team_selection.html.haml new file mode 100644 index 00000000000..e0ab63dbc5d --- /dev/null +++ b/app/views/projects/mattermost/_team_selection.html.haml @@ -0,0 +1,41 @@ +%p + This service will be installed on the Mattermost instance at + %strong= Gitlab.config.mattermost.host +%hr += form_for(:create, method: :post, url: configure_namespace_project_mattermost_index_path(@project.namespace, @project)) do |f| + %h4 Team + %p Select or create the team where the slash commands will be used in + - options = mattermost_teams_options(@teams) + = f.select(:team_id, options, {}, { class: 'form-control', selected: "#{options.first[1] if options.count.one?}", disabled: options.count.one? }) + .help-block + - if options.count.one? + This is the only team where you are an administrator. + - else + The list shows teams where you are administrator + To create a team, ask your Mattermost system administrator. + To create a team, + = link_to "#{Gitlab.config.mattermost.host}/create_team" do + use Mattermost's interface + = icon('external-link') + %hr + %h4 Command trigger word + %p Choose the word that will trigger commands + = f.text_field(:trigger, value: @project.path, class: 'form-control') + .help-block + %p Trigger word must be unique, and cannot begin with a slash or contain any spaces. Use the word that works best for your team. + %p Fill in the word that works best for your team. + %p + Suggestions: + %code= 'gitlab' + %code= @project.path # Path contains no spaces, but dashes + %code= @project.path_with_namespace + %p + Reserved: + = link_to 'https://docs.mattermost.com/help/messaging/executing-commands.html#built-in-commands', target: '__blank' do + see list of built-in slash commands + = icon('external-link') + %hr + .clearfix + .pull-right + = link_to 'Cancel', edit_namespace_project_service_path(@project.namespace, @project, @service), class: 'btn btn-lg' + = f.submit 'Install', class: 'btn btn-save btn-lg' diff --git a/app/views/projects/mattermost/new.html.haml b/app/views/projects/mattermost/new.html.haml index 02521579df7..96b1d2aee61 100644 --- a/app/views/projects/mattermost/new.html.haml +++ b/app/views/projects/mattermost/new.html.haml @@ -3,57 +3,6 @@ = custom_icon('mattermost_logo', size: 48) %h3 Install Mattermost Command - if @teams.empty? - %p - You aren’t a member of any team on the Mattermost instance at - %strong= Gitlab.config.mattermost.host - %p - To install this service, - = link_to "#{Gitlab.config.mattermost.host}/select_team", target: '__blank' do - join a team - = icon('external-link') - and try again. - %hr - .clearfix - = link_to 'Go back', edit_namespace_project_service_path(@project.namespace, @project, @service), class: 'btn btn-lg pull-right' + = render 'no_teams' - else - %p - This service will be installed on the Mattermost instance at - %strong= Gitlab.config.mattermost.host - %hr - = form_for(:create, method: :post, url: configure_namespace_project_mattermost_index_path(@project.namespace, @project)) do |f| - %h4 Team - %p Select or create the team where the slash commands will be used in - - options = mattermost_teams_options(@teams) - = f.select(:team_id, options, {}, {class: 'form-control', selected: "#{options.first[1] if options.count.one?}", disabled: options.count.one?}) - .help-block - - if options.count.one? - This is the only team where you are an administrator. - - else - The list shows teams where you are administrator - To create a team, ask your Mattermost system administrator. - To create a team, - = link_to "#{Gitlab.config.mattermost.host}/create_team" do - use Mattermost's interface - = icon('external-link') - %hr - %h4 Command trigger word - %p Choose the word that will trigger commands - = f.text_field(:trigger, value: @project.path, class: 'form-control') - .help-block - %p Trigger word must be unique, and cannot begin with a slash or contain any spaces. Use the word that works best for your team. - %p Fill in the word that works best for your team. - %p - Suggestions: - %code= 'gitlab' - %code= @project.path # Path contains no spaces, but dashes - %code= @project.path_with_namespace - %p - Reserved: - = link_to 'https://docs.mattermost.com/help/messaging/executing-commands.html#built-in-commands', target: '__blank' do - see list of built-in slash commands - = icon('external-link') - %hr - .clearfix - .pull-right - = link_to 'Cancel', edit_namespace_project_service_path(@project.namespace, @project, @service), class: 'btn btn-lg' - = f.submit 'Install', class: 'btn btn-save btn-lg' + = render 'team_selection' diff --git a/app/views/projects/services/mattermost_slash_commands/_installation_info.html.haml b/app/views/projects/services/mattermost_slash_commands/_installation_info.html.haml index 11a7bd7d30e..abc68e955e7 100644 --- a/app/views/projects/services/mattermost_slash_commands/_installation_info.html.haml +++ b/app/views/projects/services/mattermost_slash_commands/_installation_info.html.haml @@ -4,7 +4,7 @@ .col-sm-9= @service.activated? ? 'Installed' : 'Not installed' .row %strong.col-sm-3.text-right Mattermost - = link_to Gitlab.config.mattermost.host.gsub(/\A.*?:\/\//, ''), Gitlab.config.mattermost.host, class: 'col-sm-9', target: '__blank' + = link_to pretty_url(Gitlab.config.mattermost.host), Gitlab.config.mattermost.host, class: 'col-sm-9', target: '__blank' .row %strong.col-sm-3.text-right Installation .col-sm-9