Commit 9d63bd1e63669eac7955bf1c0620198154bfba4f

Authored by Dmitriy Zaporozhets
2 parents fbb7cd8b de7d6431

Merge branch 'feature/turbolinks' of /home/git/repositories/gitlab/gitlabhq

@@ -105,6 +105,8 @@ group :assets do @@ -105,6 +105,8 @@ group :assets do
105 gem "coffee-rails", "~> 3.2.2" 105 gem "coffee-rails", "~> 3.2.2"
106 gem "uglifier", "~> 1.3.0" 106 gem "uglifier", "~> 1.3.0"
107 gem "therubyracer" 107 gem "therubyracer"
  108 + gem 'turbolinks'
  109 + gem 'jquery-turbolinks'
108 110
109 gem 'chosen-rails', "0.9.8" 111 gem 'chosen-rails', "0.9.8"
110 gem 'select2-rails' 112 gem 'select2-rails'
@@ -232,6 +232,9 @@ GEM @@ -232,6 +232,9 @@ GEM
232 jquery-rails (2.1.3) 232 jquery-rails (2.1.3)
233 railties (>= 3.1.0, < 5.0) 233 railties (>= 3.1.0, < 5.0)
234 thor (~> 0.14) 234 thor (~> 0.14)
  235 + jquery-turbolinks (1.0.0)
  236 + railties (>= 3.1.0)
  237 + turbolinks
235 jquery-ui-rails (2.0.2) 238 jquery-ui-rails (2.0.2)
236 jquery-rails 239 jquery-rails
237 railties (>= 3.1.0) 240 railties (>= 3.1.0)
@@ -461,6 +464,8 @@ GEM @@ -461,6 +464,8 @@ GEM
461 treetop (1.4.12) 464 treetop (1.4.12)
462 polyglot 465 polyglot
463 polyglot (>= 0.3.1) 466 polyglot (>= 0.3.1)
  467 + turbolinks (1.1.1)
  468 + coffee-rails
464 tzinfo (0.3.37) 469 tzinfo (0.3.37)
465 uglifier (1.3.0) 470 uglifier (1.3.0)
466 execjs (>= 0.3.0) 471 execjs (>= 0.3.0)
@@ -521,6 +526,7 @@ DEPENDENCIES @@ -521,6 +526,7 @@ DEPENDENCIES
521 httparty 526 httparty
522 jquery-atwho-rails (= 0.1.7) 527 jquery-atwho-rails (= 0.1.7)
523 jquery-rails (= 2.1.3) 528 jquery-rails (= 2.1.3)
  529 + jquery-turbolinks
524 jquery-ui-rails (= 2.0.2) 530 jquery-ui-rails (= 2.0.2)
525 kaminari (~> 0.14.1) 531 kaminari (~> 0.14.1)
526 launchy 532 launchy
@@ -564,5 +570,6 @@ DEPENDENCIES @@ -564,5 +570,6 @@ DEPENDENCIES
564 test_after_commit 570 test_after_commit
565 therubyracer 571 therubyracer
566 thin 572 thin
  573 + turbolinks
567 uglifier (~> 1.3.0) 574 uglifier (~> 1.3.0)
568 webmock 575 webmock
app/assets/javascripts/application.js
@@ -14,6 +14,8 @@ @@ -14,6 +14,8 @@
14 //= require jquery.waitforimages 14 //= require jquery.waitforimages
15 //= require jquery.atwho 15 //= require jquery.atwho
16 //= require jquery.scrollto 16 //= require jquery.scrollto
  17 +//= require turbolinks
  18 +//= require jquery.turbolinks
17 //= require bootstrap 19 //= require bootstrap
18 //= require modernizr 20 //= require modernizr
19 //= require chosen-jquery 21 //= require chosen-jquery
app/assets/javascripts/main.js.coffee
@@ -41,6 +41,14 @@ window.linkify = (str) -&gt; @@ -41,6 +41,14 @@ window.linkify = (str) -&gt;
41 exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig 41 exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig
42 return str.replace(exp,"<a href='$1'>$1</a>") 42 return str.replace(exp,"<a href='$1'>$1</a>")
43 43
  44 +window.startSpinner = ->
  45 + $('.turbolink-spinner').fadeIn()
  46 +
  47 +window.stopSpinner = ->
  48 + $('.turbolink-spinner').fadeOut()
  49 +
  50 +document.addEventListener("page:fetch", startSpinner)
  51 +document.addEventListener("page:receive", stopSpinner)
44 52
45 $ -> 53 $ ->
46 # Click a .one_click_select field, select the contents 54 # Click a .one_click_select field, select the contents
app/views/layouts/_head_panel.html.haml
@@ -9,6 +9,10 @@ @@ -9,6 +9,10 @@
9 %h1.project_name= title 9 %h1.project_name= title
10 %ul.nav 10 %ul.nav
11 %li 11 %li
  12 + %a
  13 + %div.hide.turbolink-spinner
  14 + %i.icon-refresh.icon-spin
  15 + %li
12 = render "layouts/search" 16 = render "layouts/search"
13 %li 17 %li
14 = link_to public_root_path, title: "Public area", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do 18 = link_to public_root_path, title: "Public area", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do