sub menu for people only sharing with you on contacts page

This commit is contained in:
danielgrippi 2011-06-27 17:22:36 -07:00
parent 44b77c58a3
commit 00ffade884
5 changed files with 34 additions and 8 deletions

View file

@ -10,10 +10,13 @@ class ContactsController < ApplicationController
@all_contacts_count = current_user.contacts.count
@my_contacts_count = current_user.contacts.receiving.count
@only_sharing_count = current_user.contacts.only_sharing.count
if params["a_id"]
if params[:a_id]
@aspect_ = current_user.aspects.find(params["a_id"])
@contacts = @aspect_.contacts.includes(:aspects, :person => :profile).order('profiles.last_name ASC').paginate(:page => params[:page], :per_page => 25)
elsif params[:set] == "only_sharing"
@contacts = current_user.contacts.only_sharing.includes(:aspects, :person => :profile).order('profiles.last_name ASC').paginate(:page => params[:page], :per_page => 25)
elsif params[:set] != "all"
@contacts = current_user.contacts.receiving.includes(:aspects, :person => :profile).order('profiles.last_name ASC').paginate(:page => params[:page], :per_page => 25)
else

View file

@ -27,6 +27,10 @@ class Contact < ActiveRecord::Base
where(:receiving => true)
}
scope :only_sharing, lambda {
sharing.where(:receiving => false)
}
before_destroy :destroy_notifications
def destroy_notifications
Notification.where(:target_type => "Person",

View file

@ -16,13 +16,13 @@
.span-5.append-1
%ul#left_nav
%li{:class => ("active" unless params["set"] == "all")}
%li{:class => ("active" if params["set"] != "all" && params["set"] != "only_sharing")}
%a{:href => contacts_path, :class => ("sub_selected" if params["a_id"])}
.contact_count
= @my_contacts_count
My Contacts
%ul#aspect_sub_nav
%ul.sub_nav
- for aspect in all_aspects
%li{:class => ("active" if params["a_id"].to_i == aspect.id)}
%a{:href => contacts_path(:a_id => aspect.id)}
@ -32,17 +32,23 @@
%li
= link_to "+ Add new aspect", "#add_aspect_pane", :class => "new_aspect", :rel => "facebox"
%li{:class => ("active" if params["set"] == "all")}
%a{:href => contacts_path(:set => "all")}
%li{:class => ("active" if params["set"] == "all" || params["set"] == "only_sharing")}
%a{:href => contacts_path(:set => "all"), :class => ("sub_selected" if params["set"] == "only_sharing")}
.contact_count
= @all_contacts_count
All Contacts
%ul.sub_nav
%li{:class => ("active" if params["set"] == "only_sharing")}
%a{:href => contacts_path(:set => "only_sharing")}
.contact_count
= @only_sharing_count
Only sharing with me
.span-15
#people_stream.stream.contacts
- if @contacts.size > 0
- for contact in @contacts
.stream_element{:id => contact.person.id}
.right
- if @aspect_

View file

@ -2989,7 +2989,7 @@ ul#left_nav
:weight 700
:color #666
ul#aspect_sub_nav
ul.sub_nav
:display block
.contact_count
@ -3004,7 +3004,7 @@ ul#left_nav
:font
:size 11px
ul#aspect_sub_nav
ul.sub_nav
:padding 0
:margin 0
:display none

View file

@ -68,6 +68,19 @@ describe Contact do
}.by(1)
end
end
describe 'only_sharing' do
it 'returns contacts with sharing true and receiving false' do
lambda {
alice.contacts.create!(:receiving => true, :sharing => true, :person => Factory(:person))
alice.contacts.create!(:receiving => false, :sharing => true, :person => Factory(:person))
alice.contacts.create!(:receiving => false, :sharing => true, :person => Factory(:person))
alice.contacts.create!(:receiving => true, :sharing => false, :person => Factory(:person))
}.should change{
Contact.receiving.count
}.by(2)
end
end
end
describe '#contacts' do