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.
This commit is contained in:
parent
93a4ac6f9c
commit
dc5b321b62
12 changed files with 92 additions and 78 deletions
|
|
@ -1,6 +1,7 @@
|
|||
class ApplicationController < ActionController::Base
|
||||
protect_from_forgery :except => :receive
|
||||
layout 'application'
|
||||
|
||||
before_filter :set_friends
|
||||
|
||||
layout :layout_by_resource
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
class BlogsController < ApplicationController
|
||||
before_filter :authenticate_user!
|
||||
|
||||
|
||||
def index
|
||||
@blogs = Blog.paginate :page => params[:page], :order => 'created_at DESC'
|
||||
end
|
||||
|
|
|
|||
11
app/views/js/_google_a_js.haml
Normal file
11
app/views/js/_google_a_js.haml
Normal file
|
|
@ -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);
|
||||
})();
|
||||
27
app/views/js/_websocket_js.haml
Normal file
27
app/views/js/_websocket_js.haml
Normal file
|
|
@ -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...");
|
||||
};});
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
11
config/app_config.yml
Normal file
11
config/app_config.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
development:
|
||||
debug: true
|
||||
socket_port: 8080
|
||||
|
||||
test:
|
||||
debug: false
|
||||
socket_port: 8081
|
||||
|
||||
production:
|
||||
debug: false
|
||||
socket_port: 8080
|
||||
2
config/initializers/load_app_config.rb
Normal file
2
config/initializers/load_app_config.rb
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
raw_config = File.read("#{Rails.root}/config/app_config.yml")
|
||||
APP_CONFIG = YAML.load(raw_config)[Rails.env].symbolize_keys
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue