Correct views for first iteration agreement

This commit is contained in:
Luke "Jared" Bennett 2016-12-19 14:21:39 +00:00
parent 6d14a6640f
commit 53aeb33f46
No known key found for this signature in database
GPG Key ID: 402ED51FB5D306C2
6 changed files with 140 additions and 53 deletions

View File

@ -153,7 +153,7 @@ module ProjectsHelper
return nil unless team['display_name'] && team['id'] return nil unless team['display_name'] && team['id']
[team['display_name'], team['id']] [team['display_name'], team['id']]
end.compact end.compact
teams_options.unshift(['Select a team...', '0']) unless teams_options.count === 1 teams_options.unshift(['Select a team...', '0']) unless teams_options.one?
teams_options teams_options
end end

View File

@ -1,13 +1,8 @@
- twoTeams = [{"id"=>"w59qt5a817f69jkxdz6xe7y4ir", "create_at"=>1481835484179, "update_at"=>1481835484179, "delete_at"=>0, "display_name"=>"new_team", "name"=>"new-team", "email"=>"", "type"=>"O", "company_name"=>"", "allowed_domains"=>"", "invite_id"=>"mfgsqnmpiby18eepo6jd6pq3oh", "allow_open_invite"=>false}, {"id"=>"my9oujxf5jy1zqdgu9rihd66do", "create_at"=>1481826062406, "update_at"=>1481826062406, "delete_at"=>0, "display_name"=>"chatops", "name"=>"chatops", "email"=>"", "type"=>"O", "company_name"=>"", "allowed_domains"=>"", "invite_id"=>"s7c1phenmi8udkybcyytc3pxuh", "allow_open_invite"=>false}]
- oneTeams = [{"id"=>"w59qt5a817f69jkxdz6xe7y4ir", "create_at"=>1481835484179, "update_at"=>1481835484179, "delete_at"=>0, "display_name"=>"new_team", "name"=>"new-team", "email"=>"", "type"=>"O", "company_name"=>"", "allowed_domains"=>"", "invite_id"=>"mfgsqnmpiby18eepo6jd6pq3oh", "allow_open_invite"=>false}]
- noTeams = []
- teams = twoTeams
.service-installation .service-installation
.inline.pull-right .inline.pull-right
= custom_icon('mattermost_logo', size: 48) = custom_icon('mattermost_logo', size: 48)
%h3 Install Mattermost Command %h3 Install Mattermost Command
- if teams.count === 0 - if @teams.empty?
%p %p
To install this service, you must be administrator of a team in the Mattermost instance at To install this service, you must be administrator of a team in the Mattermost instance at
%strong some_path.url %strong some_path.url
@ -23,7 +18,7 @@
= form_for(:create, method: :post, url: configure_namespace_project_mattermost_index_path(@project.namespace, @project, )) do |f| = form_for(:create, method: :post, url: configure_namespace_project_mattermost_index_path(@project.namespace, @project, )) do |f|
%h4 Team %h4 Team
%p Select or create the team where the slash commands will be used in %p Select or create the team where the slash commands will be used in
- options = mattermost_teams_options(teams) - options = mattermost_teams_options(@teams)
- isOneTeam = options.count === 1 - isOneTeam = options.count === 1
= f.select(:team_id, options, {}, {class: 'form-control', selected: "#{options.first[1] if isOneTeam}", disabled: isOneTeam}) = f.select(:team_id, options, {}, {class: 'form-control', selected: "#{options.first[1] if isOneTeam}", disabled: isOneTeam})
- if isOneTeam - if isOneTeam

View File

@ -8,14 +8,13 @@
.col-lg-9 .col-lg-9
= form_for(@service, as: :service, url: namespace_project_service_path(@project.namespace, @project, @service.to_param), method: :put, html: { class: 'form-horizontal' }) do |form| = form_for(@service, as: :service, url: namespace_project_service_path(@project.namespace, @project, @service.to_param), method: :put, html: { class: 'form-horizontal' }) do |form|
= render 'shared/service_settings', form: form, subject: @service = render 'shared/service_settings', form: form, subject: @service
- if @service.to_param != 'mattermost_slash_commands' .footer-block.row-content-block
.footer-block.row-content-block = form.submit 'Save changes', class: 'btn btn-save'
= form.submit 'Save changes', class: 'btn btn-save'  
  - if @service.valid? && @service.activated?
- if @service.valid? && @service.activated? - unless @service.can_test?
- unless @service.can_test? - disabled_class = 'disabled'
- disabled_class = 'disabled' - disabled_title = @service.disabled_title
- disabled_title = @service.disabled_title
= link_to 'Test settings', test_namespace_project_service_path(@project.namespace, @project, @service), class: "btn #{disabled_class}", title: disabled_title = link_to 'Test settings', test_namespace_project_service_path(@project.namespace, @project, @service), class: "btn #{disabled_class}", title: disabled_title
= link_to "Cancel", namespace_project_services_path(@project.namespace, @project), class: "btn btn-cancel" = link_to "Cancel", namespace_project_services_path(@project.namespace, @project), class: "btn btn-cancel"

View File

@ -0,0 +1,91 @@
- run_actions_text = "Perform common operations on this project: #{@project.name_with_namespace}"
To setup this service:
%ul.list-unstyled
%li
1.
= link_to 'Enable custom slash commands', 'https://docs.mattermost.com/developer/slash-commands.html#enabling-custom-commands'
on your Mattermost installation
%li
2.
= link_to 'Add a slash command', 'https://docs.mattermost.com/developer/slash-commands.html#set-up-a-custom-command'
in Mattermost with these options:
%hr
.help-form
.form-group
= label_tag :display_name, 'Display name', class: 'col-sm-2 col-xs-12 control-label'
.col-sm-10.col-xs-12.input-group
= text_field_tag :display_name, "GitLab / #{@project.name_with_namespace}", class: 'form-control input-sm', readonly: 'readonly'
.input-group-btn
= clipboard_button(clipboard_target: '#display_name')
.form-group
= label_tag :description, 'Description', class: 'col-sm-2 col-xs-12 control-label'
.col-sm-10.col-xs-12.input-group
= text_field_tag :description, run_actions_text, class: 'form-control input-sm', readonly: 'readonly'
.input-group-btn
= clipboard_button(clipboard_target: '#description')
.form-group
= label_tag nil, 'Command trigger word', class: 'col-sm-2 col-xs-12 control-label'
.col-sm-10.col-xs-12.text-block
%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
.form-group
= label_tag :request_url, 'Request URL', class: 'col-sm-2 col-xs-12 control-label'
.col-sm-10.col-xs-12.input-group
= text_field_tag :request_url, service_trigger_url(subject), class: 'form-control input-sm', readonly: 'readonly'
.input-group-btn
= clipboard_button(clipboard_target: '#request_url')
.form-group
= label_tag nil, 'Request method', class: 'col-sm-2 col-xs-12 control-label'
.col-sm-10.col-xs-12.text-block POST
.form-group
= label_tag :response_username, 'Response username', class: 'col-sm-2 col-xs-12 control-label'
.col-sm-10.col-xs-12.input-group
= text_field_tag :response_username, 'GitLab', class: 'form-control input-sm', readonly: 'readonly'
.input-group-btn
= clipboard_button(clipboard_target: '#response_username')
.form-group
= label_tag :response_icon, 'Response icon', class: 'col-sm-2 col-xs-12 control-label'
.col-sm-10.col-xs-12.input-group
= text_field_tag :response_icon, asset_url('gitlab_logo.png'), class: 'form-control input-sm', readonly: 'readonly'
.input-group-btn
= clipboard_button(clipboard_target: '#response_icon')
.form-group
= label_tag nil, 'Autocomplete', class: 'col-sm-2 col-xs-12 control-label'
.col-sm-10.col-xs-12.text-block Yes
.form-group
= label_tag :autocomplete_hint, 'Autocomplete hint', class: 'col-sm-2 col-xs-12 control-label'
.col-sm-10.col-xs-12.input-group
= text_field_tag :autocomplete_hint, '[help]', class: 'form-control input-sm', readonly: 'readonly'
.input-group-btn
= clipboard_button(clipboard_target: '#autocomplete_hint')
.form-group
= label_tag :autocomplete_description, 'Autocomplete description', class: 'col-sm-2 col-xs-12 control-label'
.col-sm-10.col-xs-12.input-group
= text_field_tag :autocomplete_description, run_actions_text, class: 'form-control input-sm', readonly: 'readonly'
.input-group-btn
= clipboard_button(clipboard_target: '#autocomplete_description')
%hr
%ul.list-unstyled
%li
3. After adding the slash command, paste the
%strong token
into the field below

View File

@ -1,3 +1,5 @@
- enabled = Gitlab.config.mattermost.enabled
.well .well
This service allows GitLab users to perform common operations on this This service allows GitLab users to perform common operations on this
project by entering slash commands in Mattermost. project by entering slash commands in Mattermost.
@ -5,5 +7,6 @@
See list of available commands in Mattermost after setting up this service, See list of available commands in Mattermost after setting up this service,
by entering by entering
%code /<command_trigger_word> help %code /<command_trigger_word> help
= render 'projects/services/mattermost_slash_commands/detailed_help', subject: @service unless enabled
= render 'projects/services/mattermost_slash_commands/installation_info' = render 'projects/services/mattermost_slash_commands/installation_info' if enabled

View File

@ -7,45 +7,44 @@
= preserve do = preserve do
= markdown @service.help = markdown @service.help
- if @service.to_param != 'mattermost_slash_commands' .service-settings
.service-settings .form-group
= form.label :active, "Active", class: "control-label"
.col-sm-10
= form.check_box :active
- if @service.supported_events.present?
.form-group .form-group
= form.label :active, "Active", class: "control-label" = form.label :url, "Trigger", class: 'control-label'
.col-sm-10 .col-sm-10
= form.check_box :active - @service.supported_events.each do |event|
%div
= form.check_box service_event_field_name(event), class: 'pull-left'
.prepend-left-20
= form.label service_event_field_name(event), class: 'list-label' do
%strong
= event.humanize
- if @service.supported_events.present? - field = @service.event_field(event)
.form-group
= form.label :url, "Trigger", class: 'control-label'
.col-sm-10 - if field
- @service.supported_events.each do |event| %p
%div = form.text_field field[:name], class: "form-control", placeholder: field[:placeholder]
= form.check_box service_event_field_name(event), class: 'pull-left'
.prepend-left-20
= form.label service_event_field_name(event), class: 'list-label' do
%strong
= event.humanize
- field = @service.event_field(event) %p.light
= service_event_description(event)
- if field - @service.global_fields.each do |field|
%p - type = field[:type]
= form.text_field field[:name], class: "form-control", placeholder: field[:placeholder]
%p.light - if type == 'fieldset'
= service_event_description(event) - fields = field[:fields]
- legend = field[:legend]
- @service.global_fields.each do |field| %fieldset
- type = field[:type] %legend= legend
- fields.each do |subfield|
- if type == 'fieldset' = render 'shared/field', form: form, field: subfield
- fields = field[:fields] - else
- legend = field[:legend] = render 'shared/field', form: form, field: field
%fieldset
%legend= legend
- fields.each do |subfield|
= render 'shared/field', form: form, field: subfield
- else
= render 'shared/field', form: form, field: field