summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfredo Sumaran <alfredo@gitlab.com>2017-05-03 12:05:29 -0500
committerAlfredo Sumaran <alfredo@gitlab.com>2017-05-03 13:42:56 -0500
commit1a603402f8abfc8e182d97ecfef49189e77b1377 (patch)
tree693c88acaf3f5600be8356bac511d3fe2a81fedf
parent0b8437dc772f968f23fefa97e78881e0e4d140a2 (diff)
downloadgitlab-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.js6
-rw-r--r--app/controllers/projects/issues_controller.rb2
-rw-r--r--app/views/projects/issues/_new_branch.html.haml2
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' }