diff --git a/app/assets/javascripts/dispatcher.js.coffee b/app/assets/javascripts/dispatcher.js.coffee index 9afb5974858df16ec9a0ccf46abea27c30439ad6..46d6db0f05cd621d91a315aa10cd84a17357c9f9 100644 --- a/app/assets/javascripts/dispatcher.js.coffee +++ b/app/assets/javascripts/dispatcher.js.coffee @@ -19,6 +19,8 @@ class Dispatcher switch page when 'projects:issues:index' Issues.init() + when 'projects:issues:show' + new Issue() when 'projects:issues:new', 'projects:merge_requests:new' GitLab.GfmAutoComplete.setup() when 'dashboard:show' diff --git a/app/assets/javascripts/issue.js.coffee b/app/assets/javascripts/issue.js.coffee new file mode 100644 index 0000000000000000000000000000000000000000..36935a0a159d62469d0d1587e7935c07183cc9b3 --- /dev/null +++ b/app/assets/javascripts/issue.js.coffee @@ -0,0 +1,9 @@ +class Issue + constructor: -> + $('.edit-issue.inline-update input[type="submit"]').hide() + $(".issue-box .inline-update").on "change", "select", -> + $(this).submit() + $(".issue-box .inline-update").on "change", "#issue_assignee_id", -> + $(this).submit() + +@Issue = Issue diff --git a/app/assets/javascripts/issues.js.coffee b/app/assets/javascripts/issues.js.coffee index 6c239c66c0a6be8428ecef40b9f1c9f53492d651..e2f1bc743f7be00b3fe4419ad51de85f762fd57a 100644 --- a/app/assets/javascripts/issues.js.coffee +++ b/app/assets/javascripts/issues.js.coffee @@ -77,9 +77,3 @@ $("#update_issues_ids").val [] $(".issues_bulk_update").hide() $(".issues-filters").show() - -$ -> - $('.edit-issue.inline-update input[type="submit"]').hide(); - $("body").on "change", ".edit-issue.inline-update select", -> - $(this).submit() - diff --git a/app/assets/javascripts/project_users_select.js.coffee b/app/assets/javascripts/project_users_select.js.coffee index 59a53cb52bcf8dcaae4e6d996cc1225428ce23ee..aa8b70d9b8a3a25dc907fd2363d8e3b7ebd1cd5e 100644 --- a/app/assets/javascripts/project_users_select.js.coffee +++ b/app/assets/javascripts/project_users_select.js.coffee @@ -1,5 +1,31 @@ -$ -> - projectUserFormatResult = (user) -> +@projectUsersSelect = + init: -> + $('.ajax-project-users-select').each (i, select) -> + project_id = $('body').data('project-id') + + $(select).select2 + placeholder: $(select).data('placeholder') || "Search for a user" + multiple: $(select).hasClass('multiselect') + minimumInputLength: 0 + query: (query) -> + Api.projectUsers project_id, query.term, (users) -> + data = { results: users } + query.callback(data) + + initSelection: (element, callback) -> + id = $(element).val() + if id isnt "" + Api.user(id, callback) + + + formatResult: projectUsersSelect.projectUserFormatResult + formatSelection: projectUsersSelect.projectUserFormatSelection + dropdownCssClass: "ajax-project-users-dropdown" + dropdownAutoWidth: true + escapeMarkup: (m) -> # we do not want to escape markup since we are displaying html in results + m + + projectUserFormatResult: (user) -> if user.avatar_url avatar = user.avatar_url else if gon.gravatar_enabled @@ -15,30 +41,8 @@ $ ->
#{user.username}
" - projectUserFormatSelection = (user) -> + projectUserFormatSelection: (user) -> user.name - $('.ajax-project-users-select').each (i, select) -> - project_id = $('body').data('project-id') - - $(select).select2 - placeholder: $(select).data('placeholder') || "Search for a user" - multiple: $(select).hasClass('multiselect') - minimumInputLength: 0 - query: (query) -> - Api.projectUsers project_id, query.term, (users) -> - data = { results: users } - query.callback(data) - - initSelection: (element, callback) -> - id = $(element).val() - if id isnt "" - Api.user(id, callback) - - - formatResult: projectUserFormatResult - formatSelection: projectUserFormatSelection - dropdownCssClass: "ajax-project-users-dropdown" - dropdownAutoWidth: true - escapeMarkup: (m) -> # we do not want to escape markup since we are displaying html in results - m +$ -> + projectUsersSelect.init() diff --git a/app/views/projects/issues/_issue_context.html.haml b/app/views/projects/issues/_issue_context.html.haml index 029d7d6f0f42c9c9debd0ce7e13f6912b437b568..fb124a8ab447f2ce64a4e64d3690f31f90c886bf 100644 --- a/app/views/projects/issues/_issue_context.html.haml +++ b/app/views/projects/issues/_issue_context.html.haml @@ -4,9 +4,6 @@ \ and currently assigned to - if can?(current_user, :modify_issue, @issue) - = link_to profile_path(issue.assignee) do - = image_tag(avatar_icon(issue.assignee.email), class: 'avatar avatar-inline s16 assignee') if issue.assignee - = project_users_select_tag('issue[assignee_id]', placeholder: 'Select a user', class: 'custom-form-control', selected: @issue.assignee_id) - elsif issue.assignee = link_to_member(@project, @issue.assignee) diff --git a/app/views/projects/issues/update.js.haml b/app/views/projects/issues/update.js.haml index 59524e0f224653dc5fdda814159299315d1db26a..5199e9fc61f3b05eb0a23e0a2cbfe46024c7a92b 100644 --- a/app/views/projects/issues/update.js.haml +++ b/app/views/projects/issues/update.js.haml @@ -3,10 +3,7 @@ :plain $("##{dom_id(@issue)}").fadeOut(); - elsif params[:issue_context] - $('.issue-box .context').html("#{escape_javascript(render partial: 'issue_context', locals: { issue: @issue })}"); $('.issue-box .context').effect('highlight'); - $('.select2').select2(); - $('.edit-issue.inline-update input[type="submit"]').hide(); - if @issue.milestone $('.milestone-nav-link').replaceWith("| Milestone #{escape_javascript(link_to @issue.milestone.title, project_milestone_path(@issue.project, @issue.milestone))}") - else