diff --git a/fabfile.py b/fabfile.py index e08ddd172..8acce93ad 100644 --- a/fabfile.py +++ b/fabfile.py @@ -1,13 +1,13 @@ -from fabric.api import abort, cd, lcd, env, get, hide, hosts, local, prompt, parallel, serial -from fabric.api import put, require, roles, run, runs_once, settings, show, sudo, warn -from fabric.colors import red, green, blue, cyan, magenta, white, yellow +from fabric.api import cd, env, local, parallel +from fabric.api import put, run, settings, sudo +# from fabric.colors import red, green, blue, cyan, magenta, white, yellow try: from boto.s3.connection import S3Connection from boto.s3.key import Key except ImportError: print " ---> Boto not installed yet. No S3 connections available." from fabric.contrib import django -import os, sys +import os django.settings_module('settings') try: @@ -116,11 +116,12 @@ def deploy_code(copy_assets=False, full=False): transfer_assets() if full: with settings(warn_only=True): - run('sudo supervisorctl restart gunicorn') + run('pkill -c gunicorn') else: run('kill -HUP `cat logs/gunicorn.pid`') run('curl -s http://%s > /dev/null' % env.host) run('curl -s http://%s/api/add_site_load_script/ABCDEF > /dev/null' % env.host) + sudo('supervisorctl restart celery') def deploy_node(): with cd(env.NEWSBLUR_PATH): diff --git a/media/css/social/social_page.css b/media/css/social/social_page.css index b886faf55..daa05f84b 100644 --- a/media/css/social/social_page.css +++ b/media/css/social/social_page.css @@ -971,11 +971,25 @@ header { border-bottom: 1px solid #F6F6F6; height: 0; } +.NB-sideoption-login-wrapper { + position: relative; +} +.NB-sideoption-login, +.NB-sideoption-signup { + position: absolute; + top: 0; + left: 0; + width: 138px; +} +.NB-sideoption-signup { + left: 162px; +} .NB-sideoption-login-wrapper .NB-input { - width: 140px; + width: 132px; margin: 0 0 8px; } -.NB-sideoption-login-wrapper .NB-sideoption-login-signup { +.NB-sideoption-login-wrapper .NB-sideoption-login-signup, +.NB-sideoption-login-wrapper .NB-sideoption-signup-login { margin: 12px 0 16px; line-height: 14px; color: white; @@ -985,7 +999,8 @@ header { box-shadow: 2px 2px 0 #95AB76; } -.NB-sideoption-login-wrapper .NB-sideoption-login-button { +.NB-sideoption-login-wrapper .NB-sideoption-login-button, +.NB-sideoption-login-wrapper .NB-sideoption-signup-button { line-height: 14px; margin: 8px 0 2px; -moz-box-shadow: 2px 2px 0 #95AB76; diff --git a/media/js/newsblur/social_page/social_page_login_view.js b/media/js/newsblur/social_page/social_page_login_view.js index 3e7e909df..389dcc668 100644 --- a/media/js/newsblur/social_page/social_page_login_view.js +++ b/media/js/newsblur/social_page/social_page_login_view.js @@ -3,32 +3,36 @@ NEWSBLUR.Views.SocialPageLoginView = Backbone.View.extend({ events: { "click .NB-feed-story-login" : "toggle_login_dialog", "click .NB-sideoption-login-button" : "login", - "click .NB-sideoption-login-signup" : "signup" + "click .NB-sideoption-login-signup" : "switch_to_signup", + "click .NB-sideoption-signup-login" : "switch_to_login", + "click .NB-sideoption-signup-button" : "signup" }, initialize: function() { }, - render: function() { - this.$el.html(this.template({ - story: this.model, - social_services: NEWSBLUR.assets.social_services - })); - - return this; - }, - template: _.template('\
\ -
\ + \ + \
\ '), @@ -39,8 +43,11 @@ NEWSBLUR.Views.SocialPageLoginView = Backbone.View.extend({ var $dialog = this.$('.NB-sideoption-login-wrapper'); var $story_content = this.$('.NB-feed-story-content,.NB-story-content'); var $story_comments = this.$('.NB-feed-story-comments'); - var $username = this.$('input[name=username]'); - var $password = this.$('input[name=password]'); + var $login_username = this.$('input[name=login_username]'); + var $login_password = this.$('input[name=login_password]'); + var $signup_username = this.$('input[name=signup_username]'); + var $signup_password = this.$('input[name=signup_password]'); + var $signup_email = this.$('input[name=signup_email]'); if (options.close || ($sideoption.hasClass('NB-active') && !options.resize_open)) { @@ -73,31 +80,38 @@ NEWSBLUR.Views.SocialPageLoginView = Backbone.View.extend({ } $sideoption.addClass('NB-active'); var $clone = $dialog.clone(); - var full_height = $clone.css({ + $clone.find('.NB-active').css({ + 'position': 'relative' + }); + var dialog_height = $clone.css({ 'height': 'auto', 'position': 'absolute', 'visibility': 'hidden' }).appendTo($dialog.parent()).outerHeight(true); $clone.remove(); $dialog.animate({ - 'height': full_height + 'height': dialog_height }, { 'duration': options.immediate ? 0 : 350, 'easing': 'easeInOutQuint', 'queue': false, - 'complete': function() { - $username.focus(); - } + 'complete': _.bind(function() { + if (this.$('.NB-sideoption-login').hasClass('NB-active')) { + $login_username.focus(); + } else { + $signup_username.focus(); + } + }, this) }); - var sideoptions_height = this.$('.NB-feed-story-sideoptions-container').innerHeight() + 12; + var sideoptions_height = $sideoption.innerHeight() + 12; var content_height = $story_content.innerHeight() + $story_comments.innerHeight(); - if (sideoptions_height + full_height > content_height) { + if (sideoptions_height + dialog_height > content_height) { var original_height = $story_content.height(); var original_outerHeight = $story_content.outerHeight(true); $story_content.animate({ - 'height': original_outerHeight + ((full_height + sideoptions_height) - content_height) + 'height': original_outerHeight + ((dialog_height + sideoptions_height) - content_height) }, { 'duration': 350, 'easing': 'easeInOutQuint', @@ -107,17 +121,31 @@ NEWSBLUR.Views.SocialPageLoginView = Backbone.View.extend({ NEWSBLUR.app.story_list.fetch_story_locations_in_feed_view(); } } - }).data('original_height', original_height); + }); + + if (!$story_content.data('original_height')) { + $story_content.data('original_height', original_height); + } } var login = _.bind(function(e) { e.preventDefault(); this.login(); }, this); - - $username.add($password).unbind('keydown.login') + $login_username.add($login_password) + .unbind('keydown.login') .bind('keydown.login', 'ctrl+return', login) .bind('keydown.login', 'meta+return', login) .bind('keydown.login', 'return', login); + + var signup = _.bind(function(e) { + e.preventDefault(); + this.signup(); + }, this); + $signup_username.add($signup_password).add($signup_email) + .unbind('keydown.login') + .bind('keydown.login', 'ctrl+return', signup) + .bind('keydown.login', 'meta+return', signup) + .bind('keydown.login', 'return', signup); } }, @@ -126,12 +154,38 @@ NEWSBLUR.Views.SocialPageLoginView = Backbone.View.extend({ // = Events = // ========== + login: function() { + + }, + signup: function() { }, - login: function() { + switch_to_signup: function() { + this.switch_logins({signup: true}); + }, + + switch_to_login: function() { + this.switch_logins({login: true}); + }, + + switch_logins: function(options) { + var $login = this.$('.NB-sideoption-login'); + var $signup = this.$('.NB-sideoption-signup'); + var width = $login.closest('.NB-sideoption-share-wrapper').width(); + + $login.toggleClass('NB-active', !!options.login); + $signup.toggleClass('NB-active', !!options.signup); + $login.animate({ + left: !!options.login ? 0 : -1 * width + }); + $signup.animate({ + left: !!options.signup ? 0 : width + }); + + this.toggle_login_dialog({resize_open: true}); } }); \ No newline at end of file