summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2016-09-05 16:38:19 +0100
committerPhil Hughes <me@iamphill.com>2016-09-16 10:49:55 +0100
commita5035ed3108e4c335382c44b24470e4a564270e4 (patch)
treec98a35569219fe3c21ed13e8542c4fcd929d2906
parent3531032e162ae78bbf21299d14d8b7cc452625f0 (diff)
downloadgitlab-ce-a5035ed3108e4c335382c44b24470e4a564270e4.tar.gz
Correctly loads gfm autocomplete source on pages where it is required
-rw-r--r--CHANGELOG2
-rw-r--r--app/views/layouts/_init_auto_complete.html.haml4
-rw-r--r--app/views/layouts/application.html.haml1
-rw-r--r--app/views/layouts/project.html.haml3
-rw-r--r--app/views/projects/_zen.html.haml1
-rw-r--r--spec/features/projects/gfm_autocomplete_load_spec.rb23
6 files changed, 27 insertions, 7 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 7f144628d61..96509f8b2d7 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -57,6 +57,8 @@ v 8.12.0 (unreleased)
- Optimistic locking for Issues and Merge Requests (title and description overriding prevention)
- Add `wiki_page_events` to project hook APIs (Ben Boeckel)
- Remove Gitorious import
+ - Loads GFM autocomplete source only when required
+ - Fix issue with slash commands not loading on new issue page
- Fix inconsistent background color for filter input field (ClemMakesApps)
- Remove prefixes from transition CSS property (ClemMakesApps)
- Add Sentry logging to API calls
diff --git a/app/views/layouts/_init_auto_complete.html.haml b/app/views/layouts/_init_auto_complete.html.haml
index 62c93eb06ed..67ff4b272b9 100644
--- a/app/views/layouts/_init_auto_complete.html.haml
+++ b/app/views/layouts/_init_auto_complete.html.haml
@@ -1,10 +1,6 @@
- project = @target_project || @project
- noteable_type = @noteable.class if @noteable.present?
-- if noteable_type
- :javascript
- GitLab.GfmAutoComplete.dataLoading = false;
-
:javascript
GitLab.GfmAutoComplete.dataSource = "#{autocomplete_sources_namespace_project_path(project.namespace, project, type: noteable_type, type_id: params[:id])}"
GitLab.GfmAutoComplete.cachedData = undefined;
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index 15a94ac23c5..748c94c7825 100644
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -10,4 +10,5 @@
= render "layouts/header/default", title: header_title
= render 'layouts/page', sidebar: sidebar, nav: nav
+ = render "layouts/init_auto_complete" if current_user && @load_gfm
= yield :scripts_body
diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml
index 9fe94291db7..277eb71ea73 100644
--- a/app/views/layouts/project.html.haml
+++ b/app/views/layouts/project.html.haml
@@ -14,9 +14,6 @@
window.project_uploads_path = "#{namespace_project_uploads_path project.namespace,project}";
window.preview_markdown_path = "#{preview_markdown_path}";
-- content_for :scripts_body do
- = render "layouts/init_auto_complete" if current_user
-
- content_for :header_content do
.js-dropdown-menu-projects
.dropdown-menu.dropdown-select.dropdown-menu-projects
diff --git a/app/views/projects/_zen.html.haml b/app/views/projects/_zen.html.haml
index 3978fa60d66..fd92cbf9070 100644
--- a/app/views/projects/_zen.html.haml
+++ b/app/views/projects/_zen.html.haml
@@ -1,3 +1,4 @@
+- @load_gfm = true
- supports_slash_commands = local_assigns.fetch(:supports_slash_commands, false)
.zen-backdrop
- classes << ' js-gfm-input js-autosize markdown-area'
diff --git a/spec/features/projects/gfm_autocomplete_load_spec.rb b/spec/features/projects/gfm_autocomplete_load_spec.rb
new file mode 100644
index 00000000000..18cf2f9d1fb
--- /dev/null
+++ b/spec/features/projects/gfm_autocomplete_load_spec.rb
@@ -0,0 +1,23 @@
+require 'spec_helper'
+
+describe 'GFM autocomplete loading', feature: true, js: true do
+ let(:user) { create(:user) }
+ let(:project) { create(:project) }
+
+ before do
+ project.team << [user, :master]
+ login_as user
+
+ visit namespace_project_path(project.namespace, project)
+ end
+
+ it 'does not load on project#show' do
+ expect(evaluate_script('GitLab.GfmAutoComplete.dataSource')).to eq('')
+ end
+
+ it 'loads on new issue page' do
+ visit new_namespace_project_issue_path(project.namespace, project)
+
+ expect(evaluate_script('GitLab.GfmAutoComplete.dataSource')).not_to eq('')
+ end
+end