diff --git a/app/assets/javascripts/app/controllers/_application_controller.coffee b/app/assets/javascripts/app/controllers/_application_controller.coffee index 55c753ccf..89f87ead2 100644 --- a/app/assets/javascripts/app/controllers/_application_controller.coffee +++ b/app/assets/javascripts/app/controllers/_application_controller.coffee @@ -111,7 +111,11 @@ class App.Controller extends Spine.Controller App.Event.trigger 'notifyDesktop', data # add @navupdate methode to update navigation - navupdate: (url) -> + navupdate: (url, force = false) -> + + # ignore navupdate untill #clues are gone + return if !force && window.location.hash is '#clues' + App.Event.trigger 'navupdate', url # show navigation diff --git a/app/assets/javascripts/app/controllers/_dashboard/first_steps.coffee b/app/assets/javascripts/app/controllers/_dashboard/first_steps.coffee new file mode 100644 index 000000000..92cd98b55 --- /dev/null +++ b/app/assets/javascripts/app/controllers/_dashboard/first_steps.coffee @@ -0,0 +1,33 @@ +class App.DashboardFirstSteps extends App.Controller + events: + 'click a': 'scrollIntoView' + + constructor: -> + super + + @load() + + load: => + + @ajax( + id: 'first_steps' + type: 'GET' + url: @apiPath + '/first_steps' + success: (data) => + @render(data) + ) + + render: (data) -> + @html App.view('dashboard/first_steps')( + data: data + ) + + scrollIntoView: (e) -> + href = $(e.currentTarget).attr('href') + return if !href + return if href is '#' + delay = -> + element = $("[href='#{href}']").get(0) + return if !element + element.scrollIntoView() + @delay(delay, 20) diff --git a/app/assets/javascripts/app/controllers/clues.coffee b/app/assets/javascripts/app/controllers/clues.coffee new file mode 100644 index 000000000..48c31fd25 --- /dev/null +++ b/app/assets/javascripts/app/controllers/clues.coffee @@ -0,0 +1,21 @@ +class Index extends App.Controller + constructor: -> + super + @navupdate '#', true + @clues() + + clues: => + new App.FirstStepsClues( + el: @el + onComplete: => + @ajax( + id: 'preferences' + type: 'PUT' + url: @apiPath + '/users/preferences' + data: JSON.stringify({user:{intro:true}}) + processData: true + ) + @navigate '#' + ) + +App.Config.set( 'clues', Index, 'Routes' ) diff --git a/app/assets/javascripts/app/controllers/dashboard.coffee b/app/assets/javascripts/app/controllers/dashboard.coffee index 4152ecc58..bae51c7a3 100644 --- a/app/assets/javascripts/app/controllers/dashboard.coffee +++ b/app/assets/javascripts/app/controllers/dashboard.coffee @@ -23,23 +23,30 @@ class App.Dashboard extends App.Controller render: -> - @html App.view('dashboard')( + localEl = $( App.view('dashboard')( head: 'Dashboard' isAdmin: @isRole('Admin') - ) + ) ) new App.DashboardStats( - el: @$('.stat-widgets') + el: localEl.find('.stat-widgets') ) new App.DashboardActivityStream( - el: @$('.sidebar') + el: localEl.find('.sidebar') limit: 25 ) + new App.DashboardFirstSteps( + el: localEl.find('.first-steps-widgets') + ) + + @html localEl + mayBeClues: => return if !@clueAccess return if !@activeState + return if @Config.get('switch_back_to_possible') preferences = @Session.get('preferences') @clueAccess = false return if preferences['intro'] @@ -49,17 +56,7 @@ class App.Dashboard extends App.Controller @clueAccess = false if e e.preventDefault() - new App.FirstStepsClues( - el: @el - onComplete: => - @ajax( - id: 'preferences' - type: 'PUT' - url: @apiPath + '/users/preferences' - data: JSON.stringify({user:{intro:true}}) - processData: true - ) - ) + @navigate '#clues' active: (state) => @activeState = state diff --git a/app/assets/javascripts/app/views/dashboard.jst.eco b/app/assets/javascripts/app/views/dashboard.jst.eco index 2757b71cf..4020add13 100644 --- a/app/assets/javascripts/app/views/dashboard.jst.eco +++ b/app/assets/javascripts/app/views/dashboard.jst.eco @@ -3,69 +3,8 @@
<%- @T('My Stats') %>
<%- @T('First Steps') %>
- - - +
-