summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2017-01-30 15:56:45 +0000
committerFatih Acet <acetfatih@gmail.com>2017-02-03 17:02:44 +0300
commit6c828906a24e374c68884c8884135ec1472721b8 (patch)
treeb26371d79b28ebde942138e8155cd9ad486f251a
parentb129187267292fb1052c984878f5d6f41483c204 (diff)
downloadgitlab-ce-6c828906a24e374c68884c8884135ec1472721b8.tar.gz
Disabled add issues button if no lists exist
-rw-r--r--app/assets/javascripts/boards/boards_bundle.js.es629
-rw-r--r--app/controllers/projects/boards/issues_controller.rb2
-rw-r--r--app/views/shared/issuable/_filter.html.haml3
3 files changed, 23 insertions, 11 deletions
diff --git a/app/assets/javascripts/boards/boards_bundle.js.es6 b/app/assets/javascripts/boards/boards_bundle.js.es6
index 0e2794334fa..18b67abfccc 100644
--- a/app/assets/javascripts/boards/boards_bundle.js.es6
+++ b/app/assets/javascripts/boards/boards_bundle.js.es6
@@ -88,12 +88,25 @@ $(() => {
}
});
- // This element is outside the Vue app
- $(document)
- .off('click', '.js-show-add-issues')
- .on('click', '.js-show-add-issues', (e) => {
- e.preventDefault();
-
- ModalStore.store.showAddIssuesModal = true;
- });
+ gl.IssueBoardsModalAddBtn = new Vue({
+ el: '#js-add-issues-btn',
+ data: {
+ modal: ModalStore.store,
+ store: Store.state,
+ },
+ computed: {
+ disabled() {
+ return Store.shouldAddBlankState();
+ },
+ },
+ template: `
+ <button
+ class="btn btn-create pull-right prepend-left-10 has-tooltip"
+ type="button"
+ :disabled="disabled"
+ @click="modal.showAddIssuesModal = true">
+ Add issues
+ </button>
+ `,
+ });
});
diff --git a/app/controllers/projects/boards/issues_controller.rb b/app/controllers/projects/boards/issues_controller.rb
index 7fe61c6800d..61fef4dc133 100644
--- a/app/controllers/projects/boards/issues_controller.rb
+++ b/app/controllers/projects/boards/issues_controller.rb
@@ -7,7 +7,7 @@ module Projects
def index
issues = ::Boards::Issues::ListService.new(project, current_user, filter_params).execute
- issues = issues.page(params[:page])
+ issues = issues.page(params[:page]).per(params[:per] || 20)
render json: {
issues: serialize_as_json(issues),
diff --git a/app/views/shared/issuable/_filter.html.haml b/app/views/shared/issuable/_filter.html.haml
index 1b1348d435a..1eed314d068 100644
--- a/app/views/shared/issuable/_filter.html.haml
+++ b/app/views/shared/issuable/_filter.html.haml
@@ -38,8 +38,7 @@
#js-boards-search.issue-boards-search
%input.pull-left.form-control{ type: "search", placeholder: "Filter by name...", "v-model" => "filters.search", "debounce" => "250" }
- if can?(current_user, :admin_list, @project)
- %button.btn.btn-create.pull-right.prepend-left-10.js-show-add-issues{ type: "button" }
- Add issues
+ #js-add-issues-btn.pull-right.prepend-left-10
.dropdown.pull-right
%button.btn.btn-create.btn-inverted.js-new-board-list{ type: "button", data: { toggle: "dropdown", labels: labels_filter_path, namespace_path: @project.try(:namespace).try(:path), project_path: @project.try(:path) } }
Add list