From 909d2d8b3144f5b25652547758aa237474e5b4a2 Mon Sep 17 00:00:00 2001 From: Connor Shea <connor.james.shea@gmail.com> Date: Fri, 15 Jul 2016 11:04:53 -0600 Subject: [PATCH] Remove inline JavaScript for Search autocomplete. --- app/assets/javascripts/search_autocomplete.js | 38 +++++++++++++++++++ app/views/layouts/_search.html.haml | 24 ++---------- 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/app/assets/javascripts/search_autocomplete.js b/app/assets/javascripts/search_autocomplete.js index 227e8c696b4..6445a8018c2 100644 --- a/app/assets/javascripts/search_autocomplete.js +++ b/app/assets/javascripts/search_autocomplete.js @@ -367,4 +367,42 @@ })(); + $(function() { + if ($('.js-search-project-options').length) { + var projectOptionsDataEl = $('.js-search-project-options'); + + gl.projectOptions = gl.projectOptions || {}; + + var projectPath = projectOptionsDataEl.data('project-path'); + + gl.projectOptions[projectPath] = { + name: projectOptionsDataEl.data('name'), + issuesPath: projectOptionsDataEl.data('issues-path'), + mrPath: projectOptionsDataEl.data('mr-path') + }; + } + + if ($('.js-search-group-options').length) { + var groupOptionsDataEl = $('.js-search-group-options'); + + gl.groupOptions = gl.groupOptions || {}; + + var groupPath = groupOptionsDataEl.data('group-path'); + + gl.groupOptions[groupPath] = { + name: groupOptionsDataEl.data('name'), + issuesPath: groupOptionsDataEl.data('issues-path'), + mrPath: groupOptionsDataEl.data('mr-path') + }; + } + + if ($('.js-search-dashboard-options').length) { + var dashboardOptionsDataEl = $('.js-search-dashboard-options'); + gl.dashboardOptions = { + issuesPath: dashboardOptionsDataEl.data('issues-path'), + mrPath: dashboardOptionsDataEl.data('mr-path') + }; + } + }); + }).call(this); diff --git a/app/views/layouts/_search.html.haml b/app/views/layouts/_search.html.haml index f7580f00159..ca9d7ac8a60 100644 --- a/app/views/layouts/_search.html.haml +++ b/app/views/layouts/_search.html.haml @@ -36,30 +36,12 @@ - else = hidden_field_tag :search_code, true - :javascript - gl.projectOptions = gl.projectOptions || {}; - gl.projectOptions["#{j(@project.path)}"] = { - issuesPath: "#{namespace_project_issues_path(@project.namespace, @project)}", - mrPath: "#{namespace_project_merge_requests_path(@project.namespace, @project)}", - name: "#{j(@project.name)}" - }; + .js-search-project-options{ data: { project_path: "#{j(@project.path)}", name: "#{j(@project.name)}", issues_path: "#{namespace_project_issues_path(@project.namespace, @project)}", mr_path: "#{namespace_project_merge_requests_path(@project.namespace, @project)}" } } - if @group && @group.persisted? && @group.path - :javascript - gl.groupOptions = gl.groupOptions || {}; - gl.groupOptions["#{j(@group.path)}"] = { - name: "#{j(@group.name)}", - issuesPath: "#{issues_group_path(j(@group.path))}", - mrPath: "#{merge_requests_group_path(j(@group.path))}" - }; - - - :javascript - gl.dashboardOptions = { - issuesPath: "#{issues_dashboard_url}", - mrPath: "#{merge_requests_dashboard_url}" - }; + .js-search-group-options{ data: { group_path: "#{j(@group.path)}", name: "#{j(@group.name)}", issues_path: "#{issues_group_path(j(@group.path))}", mr_path: "#{merge_requests_group_path(j(@group.path))}" } } + .js-search-dashboard-options{ data: { issues_path: "#{issues_dashboard_url}", mr_path: "#{merge_requests_dashboard_url}" } } - if @snippet || @snippets = hidden_field_tag :snippets, true -- GitLab