Put preloads into gon.preloads

Fixed tagFollowing not getting into preloads
This commit is contained in:
Fábián Tamás László 2013-06-30 17:25:04 +02:00 committed by Jonne Haß
parent fb9b3e35c3
commit aa472b25de
9 changed files with 25 additions and 18 deletions

View file

@ -2,6 +2,7 @@
## Refactor ## Refactor
* Background actual mailing when sending invitations [#4069](https://github.com/diaspora/diaspora/issues/4069) * Background actual mailing when sending invitations [#4069](https://github.com/diaspora/diaspora/issues/4069)
* Set the current user on the client side through gon [#4028](https://github.com/diaspora/diaspora/issues/4028)
## Bug fixes ## Bug fixes
* Don't focus comment form on 'show n more comments' [#4265](https://github.com/diaspora/diaspora/issues/4265) * Don't focus comment form on 'show n more comments' [#4265](https://github.com/diaspora/diaspora/issues/4265)

View file

@ -34,11 +34,11 @@ var app = {
initialize: function() { initialize: function() {
app.router = new app.Router(); app.router = new app.Router();
var currentUser = false; if (window.gon == undefined) {
if (window.preloads != undefined) { window.gon = {preloads:{}};
currentUser = app.user(window.preloads.user)
} }
app.currentUser = currentUser || new app.models.User();
app.currentUser = app.user(window.gon.user) || new app.models.User();
if(app.currentUser.authenticated()){ if(app.currentUser.authenticated()){
app.header = new app.views.Header(); app.header = new app.views.Header();
@ -63,19 +63,19 @@ var app = {
}, },
hasPreload : function(prop) { hasPreload : function(prop) {
return !!(window.preloads && window.preloads[prop]) //returning boolean variable so that parsePreloads, which cleans up properly is used instead return !!(window.gon.preloads && window.gon.preloads[prop]) //returning boolean variable so that parsePreloads, which cleans up properly is used instead
}, },
setPreload : function(prop, val) { setPreload : function(prop, val) {
window.preloads = window.preloads || {} window.gon.preloads = window.gon.preloads || {}
window.preloads[prop] = val window.gon.preloads[prop] = val
}, },
parsePreload : function(prop){ parsePreload : function(prop){
if(!app.hasPreload(prop)) { return } if(!app.hasPreload(prop)) { return }
var preload = window.preloads[prop] var preload = window.gon.preloads[prop]
delete window.preloads[prop] //prevent dirty state across navigates delete window.gon.preloads[prop] //prevent dirty state across navigates
return(preload) return(preload)
}, },

View file

@ -34,7 +34,7 @@ app.Router = Backbone.Router.extend({
post.fetch({url : window.location}) post.fetch({url : window.location})
function setPreloadAttributesAndNavigate(){ function setPreloadAttributesAndNavigate(){
window.preloads.post = post.attributes window.gon.preloads.post = post.attributes
app.router.navigate(post.url(), {trigger:true, replace: true}) app.router.navigate(post.url(), {trigger:true, replace: true})
} }
}, },
@ -73,7 +73,7 @@ app.Router = Backbone.Router.extend({
$("#tags_list").replaceWith(followedTagsView.render().el); $("#tags_list").replaceWith(followedTagsView.render().el);
followedTagsView.setupAutoSuggest(); followedTagsView.setupAutoSuggest();
app.tagFollowings.reset(preloads.tagFollowings); app.tagFollowings.reset(gon.preloads.tagFollowings);
if(name) { if(name) {
var followedTagsAction = new app.views.TagFollowingAction( var followedTagsAction = new app.views.TagFollowingAction(

View file

@ -276,7 +276,7 @@ $(document).ready(function(){
function createUploader(){ function createUploader(){
var aspectIds = gon.aspect_ids; var aspectIds = gon.preloads.aspect_ids;
var uploader = new qq.FileUploaderBasic({ var uploader = new qq.FileUploaderBasic({
element: document.getElementById('file-upload-publisher'), element: document.getElementById('file-upload-publisher'),

View file

@ -11,7 +11,8 @@ class ApplicationController < ActionController::Base
before_filter :set_diaspora_header before_filter :set_diaspora_header
before_filter :set_grammatical_gender before_filter :set_grammatical_gender
before_filter :mobile_switch before_filter :mobile_switch
before_filter :set_current_user_in_javascript before_filter :gon_set_current_user
before_filter :gon_set_preloads
inflection_method :grammatical_gender => :gender inflection_method :grammatical_gender => :gender
@ -138,11 +139,16 @@ class ApplicationController < ActionController::Base
current_user.getting_started? ? getting_started_path : stream_path current_user.getting_started? ? getting_started_path : stream_path
end end
def set_current_user_in_javascript def gon_set_current_user
return unless user_signed_in? return unless user_signed_in?
a_ids = session[:a_ids] || [] a_ids = session[:a_ids] || []
user = UserPresenter.new(current_user, a_ids) user = UserPresenter.new(current_user, a_ids)
gon.push({:user => user}) gon.push({:user => user})
end end
def gon_set_preloads
return unless gon.preloads.nil?
gon.preloads = {}
end
end end

View file

@ -43,7 +43,7 @@ class StreamsController < ApplicationController
end end
def followed_tags def followed_tags
gon.tagFollowings = tags gon.preloads[:tagFollowings] = tags
stream_responder(Stream::FollowedTag) stream_responder(Stream::FollowedTag)
end end

View file

@ -33,7 +33,7 @@ class TagsController < ApplicationController
redirect_to(:action => :show, :name => downcased_tag_name) && return if tag_has_capitals? redirect_to(:action => :show, :name => downcased_tag_name) && return if tag_has_capitals?
if user_signed_in? if user_signed_in?
gon.tagFollowings = tags gon.preloads[:tagFollowings] = tags
end end
@stream = Stream::Tag.new(current_user, params[:name], :max_time => max_time, :page => params[:page]) @stream = Stream::Tag.new(current_user, params[:name], :max_time => max_time, :page => params[:page])
respond_with do |format| respond_with do |format|

View file

@ -53,7 +53,7 @@
%link{:rel => 'alternate', :type => "application/json+oembed", :href => "#{oembed_url(:url => post_url(@post))}"} %link{:rel => 'alternate', :type => "application/json+oembed", :href => "#{oembed_url(:url => post_url(@post))}"}
= og_page_specific_tags(@post) = og_page_specific_tags(@post)
= include_gon(:camel_case => true, :namespace => :preloads) = include_gon(:camel_case => true)
%body %body
= flash_messages = flash_messages

View file

@ -40,7 +40,7 @@ describe("app.views.Post.SmallFrame", function(){
beforeEach(function(){ beforeEach(function(){
app.page = { editMode : false } app.page = { editMode : false }
app.router = new app.Router() app.router = new app.Router()
window.preloads = {} window.gon.preloads = {}
spyOn(app.router, "navigate") spyOn(app.router, "navigate")
}) })