From dc5b321b62713d3da5c623829e8aa10a6da66037 Mon Sep 17 00:00:00 2001 From: maxwell <maxwell@joindiaspora.com> Date: Wed, 30 Jun 2010 00:20:44 -0700 Subject: [PATCH] sorry for the monster commit.... 4 small chores...1) moved tons of dynamic javascript to haml partials in the new js view folder, and moved some of the js that got put in the application layout into view.js 2. set up a static config prefrence loader in initializers, loaded from yaml 3) fixed the top right login text from being pushed over. 4) fixed a bug when no user is on the node and someone hits the landing page.... you still cant create a new user from there, but now at least it doesnt blow up. --- app/controllers/application_controller.rb | 1 + app/controllers/blogs_controller.rb | 1 - app/views/js/_google_a_js.haml | 11 ++++ app/views/js/_websocket_js.haml | 27 +++++++++ app/views/layouts/application.html.haml | 68 ++--------------------- app/views/layouts/session_wall.html.haml | 13 +++-- config/app_config.yml | 11 ++++ config/initializers/load_app_config.rb | 2 + config/initializers/socket.rb | 7 ++- public/javascripts/view.js | 19 +++++++ public/stylesheets/application.css | 6 +- public/stylesheets/sass/application.sass | 4 +- 12 files changed, 92 insertions(+), 78 deletions(-) create mode 100644 app/views/js/_google_a_js.haml create mode 100644 app/views/js/_websocket_js.haml create mode 100644 config/app_config.yml create mode 100644 config/initializers/load_app_config.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 7f0ca264e6..890d32a1c1 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,6 +1,7 @@ class ApplicationController < ActionController::Base protect_from_forgery :except => :receive layout 'application' + before_filter :set_friends layout :layout_by_resource diff --git a/app/controllers/blogs_controller.rb b/app/controllers/blogs_controller.rb index 333cb694ad..7ca1f2441f 100644 --- a/app/controllers/blogs_controller.rb +++ b/app/controllers/blogs_controller.rb @@ -1,7 +1,6 @@ class BlogsController < ApplicationController before_filter :authenticate_user! - def index @blogs = Blog.paginate :page => params[:page], :order => 'created_at DESC' end diff --git a/app/views/js/_google_a_js.haml b/app/views/js/_google_a_js.haml new file mode 100644 index 0000000000..d160024f41 --- /dev/null +++ b/app/views/js/_google_a_js.haml @@ -0,0 +1,11 @@ +:javascript + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-17207587-1']); + _gaq.push(['_setDomainName', '#{root_url}']); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); \ No newline at end of file diff --git a/app/views/js/_websocket_js.haml b/app/views/js/_websocket_js.haml new file mode 100644 index 0000000000..00d130029f --- /dev/null +++ b/app/views/js/_websocket_js.haml @@ -0,0 +1,27 @@ +- if user_signed_in? + - unless request.user_agent.include? "Safari" ||"Chrome" + = javascript_include_tag 'FABridge', 'swfobject', 'web_socket' + :javascript + WebSocket.__swfLocation = "/javascripts/WebSocketMain.swf"; + :javascript + $(document).ready(function(){ + function debug(str){ $("#debug").append("<p>" + str); }; + + ws = new WebSocket("ws://#{request.host}:8080/"); + ws.onmessage = function(evt) { + var obj = jQuery.parseJSON(evt.data); + debug("got a " + obj['class']); + if((location.href.indexOf(obj['class']) != -1 ) || (location.pathname == '/')) { + $("#stream").prepend( + $(obj['html']).fadeIn("fast", function(){ + $("#stream label:first").inFieldLabels(); + } + ) + ); + }; + }; + ws.onclose = function() { debug("socket closed"); }; + ws.onopen = function() { + ws.send(location.pathname); + debug("connected..."); + };}); \ No newline at end of file diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 2cf2f02d64..94b5b87dc1 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -2,7 +2,8 @@ %html %head %title - = "diaspora" + = "diaspora " + = "- #{User.first.real_name}" if User.first %meta{"http-equiv"=>"Content-Type", :content=>"text/html; charset=utf-8"}/ %meta{"http-equiv"=> "X-UA-Compatible", :content =>"chrome=1" } @@ -11,73 +12,12 @@ /= javascript_include_tag"http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" = javascript_include_tag 'jquery142', 'rails', 'view', 'publisher' = javascript_include_tag 'tiny_mce/tiny_mce.js','jquery.infieldlabel' - :javascript - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-17207587-1']); - _gaq.push(['_setDomainName', '#{root_url}']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - - - unless request.user_agent.include? "Safari" ||"Chrome" - = javascript_include_tag 'FABridge', 'swfobject', 'web_socket' - :javascript - WebSocket.__swfLocation = "/javascripts/WebSocketMain.swf"; - + = render "js/google_a_js" + = render "js/websocket_js" = csrf_meta_tag = yield(:head) - - if user_signed_in? - :javascript - $(document).ready(function(){ - function debug(str){ $("#debug").append("<p>" + str); }; - - ws = new WebSocket("ws://#{request.host}:8080/"); - ws.onmessage = function(evt) { - var obj = jQuery.parseJSON(evt.data); - debug("got a " + obj['class']); - if((location.href.indexOf(obj['class']) != -1 ) || (location.pathname == '/')) { - $("#stream").prepend( - $(obj['html']).fadeIn("fast", function(){ - $("#stream label:first").inFieldLabels(); - } - ) - ); - }; - }; - ws.onclose = function() { debug("socket closed"); }; - ws.onopen = function() { - ws.send(location.pathname); - debug("connected..."); - }; - - - $("#stream li").hover(function() { - $(this).children(".destroy_link").fadeIn(0); - }, function() { - $(this).children(".destroy_link").fadeOut(0); - }); - - // in field label plugin - - $(".show_post_comments").click( function() { - if( $(this).hasClass( "visible" )) { - $(this).html($(this).html().replace("hide", "show")); - $(this).parents("li").children(".comments").fadeOut(100); - } else { - $(this).html($(this).html().replace("show", "hide")); - $(this).parents("li").children(".comments").fadeIn(100); - } - $(this).toggleClass( "visible" ); - }); - - - }); = javascript_include_tag 'satisfaction' , 'satisfaction-display' %body diff --git a/app/views/layouts/session_wall.html.haml b/app/views/layouts/session_wall.html.haml index dfcd5d12c8..3838ba0d24 100644 --- a/app/views/layouts/session_wall.html.haml +++ b/app/views/layouts/session_wall.html.haml @@ -18,10 +18,13 @@ .container - flash.each do |name, msg| = content_tag :div, msg, :id => "flash_#{name}" - - %div#huge_text - welcome back, - %span - = User.first.real_name.downcase + - if User.first + %div#huge_text + welcome back, + %span + = User.first.real_name.downcase + -else + %div#huge_text + you need to add a user first! = yield diff --git a/config/app_config.yml b/config/app_config.yml new file mode 100644 index 0000000000..56f8420066 --- /dev/null +++ b/config/app_config.yml @@ -0,0 +1,11 @@ +development: + debug: true + socket_port: 8080 + +test: + debug: false + socket_port: 8081 + +production: + debug: false + socket_port: 8080 diff --git a/config/initializers/load_app_config.rb b/config/initializers/load_app_config.rb new file mode 100644 index 0000000000..4e5bbdd9dd --- /dev/null +++ b/config/initializers/load_app_config.rb @@ -0,0 +1,2 @@ +raw_config = File.read("#{Rails.root}/config/app_config.yml") +APP_CONFIG = YAML.load(raw_config)[Rails.env].symbolize_keys diff --git a/config/initializers/socket.rb b/config/initializers/socket.rb index 3c716ef052..105314b8ae 100644 --- a/config/initializers/socket.rb +++ b/config/initializers/socket.rb @@ -11,7 +11,10 @@ module WebSocket SocketRenderer.instantiate_view end - EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 8080, :debug =>true) do |ws| + EventMachine::WebSocket.start( + :host => "0.0.0.0", + :port => APP_CONFIG[:socket_port], + :debug =>APP_CONFIG[:debug]) do |ws| ws.onopen { sid = @channel.subscribe { |msg| ws.send msg } @@ -25,6 +28,4 @@ module WebSocket def self.update_clients(object) @channel.push(SocketRenderer.view_hash(object).to_json) if @channel end - - end diff --git a/public/javascripts/view.js b/public/javascripts/view.js index 4ec1ed95b3..3b062b36ae 100644 --- a/public/javascripts/view.js +++ b/public/javascripts/view.js @@ -53,4 +53,23 @@ $(document).ready(function(){ $('#flash_notice, #flash_error, #flash_alert').delay(1500).slideUp(130); + $("#stream li").hover(function() { + $(this).children(".destroy_link").fadeIn(0); + }, function() { + $(this).children(".destroy_link").fadeOut(0); + }); + + // in field label plugin + + $(".show_post_comments").click( function() { + if( $(this).hasClass( "visible" )) { + $(this).html($(this).html().replace("hide", "show")); + $(this).parents("li").children(".comments").fadeOut(100); + } else { + $(this).html($(this).html().replace("show", "hide")); + $(this).parents("li").children(".comments").fadeIn(100); + } + $(this).toggleClass( "visible" ); + }); + });//end document ready diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 2145ea5854..f80f31bc04 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -64,10 +64,10 @@ header { border: none; top: 10px; } header #session_action { - position: absolute; - right: 300px; + float: right; font-size: 110%; - top: 7px; } + top: 7px; + padding-right: 10px; } header #session_action a { color: #cccccc; border: none; } diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index 201c5bf584..6017941363 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -71,14 +71,14 @@ header :top 10px #session_action - :position absolute - :right 300px + :float right :font :size 110% :top 7px a :color #ccc :border none + :padding-right 10px #show_filters :z-index 100 -- GitLab