diff options
author | Alfredo Sumaran <alfredo@gitlab.com> | 2017-05-03 12:05:29 -0500 |
---|---|---|
committer | Alfredo Sumaran <alfredo@gitlab.com> | 2017-05-03 13:42:56 -0500 |
commit | 1a603402f8abfc8e182d97ecfef49189e77b1377 (patch) | |
tree | 693c88acaf3f5600be8356bac511d3fe2a81fedf | |
parent | 0b8437dc772f968f23fefa97e78881e0e4d140a2 (diff) | |
download | gitlab-ce-28558-create-new-branch-from-issue-page.tar.gz |
Expose has_related_branch? on can_create_branch endpoint28558-create-new-branch-from-issue-page
This is to avoid accesing the repository on page load.
-rw-r--r-- | app/assets/javascripts/create_merge_request_dropdown.js | 6 | ||||
-rw-r--r-- | app/controllers/projects/issues_controller.rb | 2 | ||||
-rw-r--r-- | app/views/projects/issues/_new_branch.html.haml | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/app/assets/javascripts/create_merge_request_dropdown.js b/app/assets/javascripts/create_merge_request_dropdown.js index ada693828c2..ff2f2c81971 100644 --- a/app/assets/javascripts/create_merge_request_dropdown.js +++ b/app/assets/javascripts/create_merge_request_dropdown.js @@ -62,6 +62,10 @@ export default class CreateMergeRequestDropdown { this.dropdownToggle.setAttribute('disabled', 'disabled'); } + hide() { + this.wrapperEl.classList.add('hide'); + } + setUnavailableButtonState(isLoading = true) { if (isLoading) { this.unavailableButtonArrow.classList.add('fa-spinner', 'fa-spin'); @@ -93,6 +97,8 @@ export default class CreateMergeRequestDropdown { this.initDroplab(); this.bindEvents(); } + } else if (data.has_related_branch) { + this.hide(); } }).fail(() => { this.unavailable(); diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index 8c894cba5bc..af9157bfbb5 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -194,7 +194,7 @@ class Projects::IssuesController < Projects::ApplicationController respond_to do |format| format.json do - render json: { can_create_branch: can_create } + render json: { can_create_branch: can_create, has_related_branch: @issue.has_related_branch? } end end end diff --git a/app/views/projects/issues/_new_branch.html.haml b/app/views/projects/issues/_new_branch.html.haml index 13a52119653..6bc6bf76e18 100644 --- a/app/views/projects/issues/_new_branch.html.haml +++ b/app/views/projects/issues/_new_branch.html.haml @@ -1,4 +1,4 @@ -- if can?(current_user, :push_code, @project) and !@issue.has_related_branch? +- if can?(current_user, :push_code, @project) .create-mr-dropdown-wrap{ data: { can_create_path: can_create_branch_namespace_project_issue_path(@project.namespace, @project, @issue), create_mr_path: create_merge_request_namespace_project_issue_path(@project.namespace, @project, @issue), create_branch_path: namespace_project_branches_path(@project.namespace, @project, branch_name: @issue.to_branch_name, issue_iid: @issue.iid) } } .btn-group.unavailable %button.btn.btn-grouped{ type: 'button', disabled: 'disabled' } |