From 1c9ca738ae50531a72dcebb66b5c253ef7175ce9 Mon Sep 17 00:00:00 2001 From: danielgrippi Date: Fri, 8 Apr 2011 17:10:43 -0700 Subject: [PATCH] green everywhere. --- .../aspect_memberships_controller.rb | 27 ++---------- app/controllers/aspects_controller.rb | 9 ---- app/views/aspect_memberships/create.js.erb | 15 +++++++ app/views/aspect_memberships/destroy.js.erb | 13 ++++++ app/views/aspects/_aspect_badge.haml | 7 --- app/views/aspects/create.js.erb | 3 ++ config/assets.yml | 2 +- features/connects_users.feature | 1 - public/javascripts/contact-list.js | 43 ++----------------- 9 files changed, 38 insertions(+), 82 deletions(-) create mode 100644 app/views/aspect_memberships/create.js.erb create mode 100644 app/views/aspect_memberships/destroy.js.erb delete mode 100644 app/views/aspects/_aspect_badge.haml create mode 100644 app/views/aspects/create.js.erb diff --git a/app/controllers/aspect_memberships_controller.rb b/app/controllers/aspect_memberships_controller.rb index fc826a654..72631232b 100644 --- a/app/controllers/aspect_memberships_controller.rb +++ b/app/controllers/aspect_memberships_controller.rb @@ -16,21 +16,10 @@ class AspectMembershipsController < ApplicationController membership = @contact ? @contact.aspect_memberships.where(:aspect_id => @aspect_id).first : nil if membership && membership.destroy + @aspect = membership.aspect + flash.now[:notice] = I18n.t 'aspect_memberships.destroy.success' - respond_to do |format| - format.js do - render :json => {:button_html => - render_to_string(:partial => 'aspect_memberships/remove_from_aspect', - :locals => {:aspect => membership.aspect, - :person => @contact.person, - :contact => @contact }), - :aspect_id => @aspect_id} - end - format.html{ - redirect_to :back - } - end else flash.now[:error] = I18n.t 'aspect_memberships.destroy.failure' errors = membership ? membership.errors.full_messages : t('aspect_memberships.destroy.no_membership') @@ -47,20 +36,10 @@ class AspectMembershipsController < ApplicationController @person = Person.find(params[:person_id]) @aspect = current_user.aspects.where(:id => params[:aspect_id]).first - if current_user.share_with(@person, @aspect) + if @contact = current_user.share_with(@person, @aspect) flash.now[:notice] = I18n.t 'aspects.add_to_aspect.success' - respond_to do |format| - format.js { render :json => { - :button_html => render_to_string(:partial => 'aspect_memberships/add_to_aspect', - :locals => {:aspect_id => @aspect.id, - :person_id => @person.id}), - :badge_html => render_to_string(:partial => 'aspects/aspect_badge', - :locals => {:aspect => @aspect}) - }} - format.html{ redirect_to aspect_path(@aspect.id)} - end else flash[:error] = I18n.t 'contacts.create.failure' redirect_to :back diff --git a/app/controllers/aspects_controller.rb b/app/controllers/aspects_controller.rb index a2058e07a..bad011fa5 100644 --- a/app/controllers/aspects_controller.rb +++ b/app/controllers/aspects_controller.rb @@ -49,15 +49,6 @@ class AspectsController < ApplicationController @contact = Contact.where(:id => params[:aspect][:contact_id]).first @person = Person.where(:id => params[:aspect][:person_id]).first @contact = current_user.contact_for(@person) || Contact.new - - respond_to do |format| - format.js { render :json => {:html => render_to_string( - :partial => 'aspects/aspect_list_item', - :locals => {:aspect => @aspect, - :person => @person, - :contact => @contact} - ), :aspect_id => @aspect.id}, :status => 201 } - end else respond_with @aspect end diff --git a/app/views/aspect_memberships/create.js.erb b/app/views/aspect_memberships/create.js.erb new file mode 100644 index 000000000..62874556f --- /dev/null +++ b/app/views/aspect_memberships/create.js.erb @@ -0,0 +1,15 @@ +var element = $(".add", "li[data-guid=<%= @aspect.id %>]"); + +if( $("#no_contacts").is(':visible') ) { + $("#no_contacts").fadeOut(200); +} + +$(".badges").prepend("<%= escape_javascript( aspect_badge(@aspect).html_safe ) %>"); +element.parent().html("<%= escape_javascript(render('aspect_memberships/add_to_aspect', :aspect_id => @aspect.id, :person_id => @person.id)) %>"); + +if($('#aspects_list').length == 1) { + $('.aspect_list').attr('data-contact_id', "<%= @contact_id %>"); + $('.aspect_list ul').find('.add').each(function(a,b){$(b).attr('href', $(b).attr('href').replace('contacts','aspect_memberships'));}) +}; + +element.fadeTo(200,1); diff --git a/app/views/aspect_memberships/destroy.js.erb b/app/views/aspect_memberships/destroy.js.erb new file mode 100644 index 000000000..f153fbe52 --- /dev/null +++ b/app/views/aspect_memberships/destroy.js.erb @@ -0,0 +1,13 @@ +var element = $(".added", "li[data-guid=<%= @aspect.id %>]"), + contactPictures = $(".contact_pictures"); + +if( contactPictures.length > 0 ) { + if( contactPictures[0].childElementCount == 0 ) { + $("#no_contacts").fadeIn(200); + } +} + +$("a[data-guid=<%= @aspect_id %>]", ".aspects").parent().remove(); +element.parent().html("<%= escape_javascript(render('aspect_memberships/remove_from_aspect', :aspect => @aspect, :person => @contact.person, :contact => @contact)) %>"); +element.fadeTo(200,1); + diff --git a/app/views/aspects/_aspect_badge.haml b/app/views/aspects/_aspect_badge.haml deleted file mode 100644 index 3d92edfd1..000000000 --- a/app/views/aspects/_aspect_badge.haml +++ /dev/null @@ -1,7 +0,0 @@ --# Copyright (c) 2010, Diaspora Inc. This file is --# licensed under the Affero General Public License version 3 or later. See --# the COPYRIGHT file. - - -.aspect_badge.single{:guid=>aspect.id} - = link_to aspect.name, aspect diff --git a/app/views/aspects/create.js.erb b/app/views/aspects/create.js.erb new file mode 100644 index 000000000..68e98c38c --- /dev/null +++ b/app/views/aspects/create.js.erb @@ -0,0 +1,3 @@ +$('#aspects_list ul').append("<%= escape_javascript( render('aspects/aspect_list_item', :aspect => @aspect, :person => @person, :contact => @contact)) %>"); +$("#aspects_list ul li[data-guid='<%= @aspect.id %>'] .add.button").click(); + diff --git a/config/assets.yml b/config/assets.yml index 65c3911a6..128695c35 100644 --- a/config/assets.yml +++ b/config/assets.yml @@ -22,7 +22,6 @@ javascripts: - public/javascripts/vendor/Mustache.js - public/javascripts/vendor/charCount.js - public/javascripts/jquery.autocomplete-custom.js - - public/javascripts/fileuploader-custom.js - public/javascripts/keycodes.js - public/javascripts/diaspora.js - public/javascripts/widgets/i18n.js @@ -57,6 +56,7 @@ javascripts: - public/javascripts/aspect-filters.js - public/javascripts/contact-list.js - public/javascripts/aspect-edit-pane.js + - public/javascripts/fileuploader-custom.js people: - public/javascripts/vendor/jquery.autoSuggest.custom.js photos: diff --git a/features/connects_users.feature b/features/connects_users.feature index 3c493a661..8daab72ee 100644 --- a/features/connects_users.feature +++ b/features/connects_users.feature @@ -80,7 +80,6 @@ Feature: sending and receiving requests When I go to the home page Then I go to the manage aspects page - Then I should see 1 contact in "Super People" Then I go to the destroy user session page diff --git a/public/javascripts/contact-list.js b/public/javascripts/contact-list.js index 1a1d38a57..3120626b5 100644 --- a/public/javascripts/contact-list.js +++ b/public/javascripts/contact-list.js @@ -43,21 +43,11 @@ $(document).ready(function() { $(this).fadeTo(200,0.4); }); - $('.added').live('ajax:success', function(data, json, xhr) { - var json = $.parseJSON(json); - var contactPictures = $(".contact_pictures"); - - if( contactPictures.length > 0 ) { - if( contactPictures[0].childElementCount == 0 ) { - $("#no_contacts").fadeIn(200); - } - } - - $(".aspect_badge[guid='" + json.aspect_id + "']", ".aspects").remove(); - $(this).parent().html(json.button_html); - $(this).fadeTo(200,1); + $('.add').live('ajax:loading', function() { + $(this).fadeTo(200,0.4); }); + $('.added').live('ajax:failure', function(data, html, xhr) { if(confirm(Diaspora.widgets.i18n.t('shared.contact_list.cannot_remove'))){ var contact_id; @@ -75,27 +65,6 @@ $(document).ready(function() { }); - $('.add').live('ajax:loading', function() { - $(this).fadeTo(200,0.4); - }); - - $('.add').live('ajax:success', function(data, json, xhr) { - var json = $.parseJSON(json); - if( $("#no_contacts").is(':visible') ) { - $("#no_contacts").fadeOut(200); - } - - $(".badges").prepend(json.badge_html); - $(this).parent().html(json.button_html); - - if($('#aspects_list').length == 1) { - $('.aspect_list').attr('data-contact_id', json.contact_id); - $('.aspect_list ul').find('.add').each(function(a,b){$(b).attr('href', $(b).attr('href').replace('contacts','aspect_memberships'));}) - }; - - $(this).fadeTo(200,1); - }); - $('.added').live('mouseover', function() { $(this).addClass("remove"); $(this).children("img").attr("src","/images/icons/monotone_close_exit_delete.png"); @@ -104,11 +73,5 @@ $(document).ready(function() { $(this).children("img").attr("src","/images/icons/monotone_check_yes.png"); }); - $('.new_aspect').live('ajax:success', function(data, json, xhr){ - var json = JSON.parse(json); - $('#aspects_list ul').append(json.html); - $("#aspects_list ul li[data-guid='" + json.aspect_id + "'] .add.button").click(); - }); - List.initialize(); });