social_stream-base 0.8.2 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Binary file
@@ -1,6 +1,6 @@
1
- //= require search
2
1
  //= require hoverIntent
3
2
  //= require superfish
3
+ //= require jquery.watermarkinput
4
4
  //
5
5
  $(function() {
6
6
  jQuery('ul.sf-menu').superfish({
@@ -0,0 +1,65 @@
1
+ /******************** Search box css ***********************/
2
+ #header_search {
3
+ float: left;
4
+ padding: 1px 10px 0 10px;
5
+ z-index:2001;
6
+ }
7
+
8
+ #global_search_input {
9
+ width: 150px;
10
+ height: 16px;
11
+ border: solid 1px #dedede;
12
+ padding:0 3px 0 22px;
13
+ background: url('btn/search_icon.png') 5px 50% no-repeat white;
14
+ font-size: 11px;
15
+ color: #2A3890;
16
+ }
17
+ #global_search_display {
18
+ width: 175px;
19
+ display: none;
20
+ float: right;
21
+ margin-right: 35px;
22
+ border-left: solid 1px #B9B9B9;
23
+ border-right: solid 1px #B9B9B9;
24
+ border-bottom: solid 1px #B9B9B9;
25
+ overflow: hidden;
26
+ position: absolute;
27
+ z-index: 2000;
28
+ background: whiteSmoke;
29
+ text-align: center;
30
+ }
31
+
32
+ #global_search_display a {
33
+ color: #2A3890;
34
+ text-decoration: none;
35
+ }
36
+ #global_search_display a:hover {
37
+ color: #2A3890;
38
+ text-decoration: none;
39
+ font-weight: bold;
40
+ }
41
+
42
+ #global_search_display li {
43
+ padding: 4px;
44
+ border-top: solid 1px #B9B9B9;
45
+ font-size: 10px;
46
+ height: 35px;
47
+ background: whiteSmoke;
48
+ overflow: hidden;
49
+ text-align: left;
50
+ }
51
+ #global_search_display li .logo{
52
+ float:left;
53
+ margin-right: 5px;
54
+ }
55
+
56
+ #global_search_display li .name {
57
+ float:left;
58
+ }
59
+
60
+
61
+ #global_search_display li:hover {
62
+ background: #CFDEFF;
63
+ color: #2A3890;
64
+ }
65
+ /******************** Search box css END ***********************/
@@ -41,7 +41,7 @@ class ContactsController < ApplicationController
41
41
  def destroy
42
42
  @contact = current_subject.sent_contacts.find params[:id]
43
43
 
44
- @contact.relation_ids = [current_subject.relation_public.id]
44
+ @contact.relation_ids = [current_subject.relation_reject.id]
45
45
 
46
46
  respond_to do |format|
47
47
  format.js
@@ -0,0 +1,15 @@
1
+ class SearchController < ApplicationController
2
+
3
+ #before_filter :authenticate_user! #??
4
+
5
+ def index
6
+ if params[:mode].eql? "header_search"
7
+ @search_result = Actor.search "*#{params[:id]}*", :page => 1, :per_page => 10
8
+ render :partial => "header_search", :locals =>{:search_result => @search_result}
9
+ return
10
+ else
11
+ @search_result = ThinkingSphinx.search "*#{params[:id]}*"
12
+ end
13
+ end
14
+
15
+ end
data/app/models/actor.rb CHANGED
@@ -195,7 +195,12 @@ class Actor < ActiveRecord::Base
195
195
  def relation_public
196
196
  Relation::Public.of(self)
197
197
  end
198
-
198
+
199
+ # The {Relation::Reject} for this {Actor}
200
+ def relation_reject
201
+ Relation::Reject.of(self)
202
+ end
203
+
199
204
  # All the {Actor actors} this one has relation with
200
205
  #
201
206
  # Options:
@@ -229,7 +234,7 @@ class Actor < ActiveRecord::Base
229
234
  if options[:relations].present?
230
235
  as = as.merge(Tie.related_by(options[:relations]))
231
236
  else
232
- as = as.merge(Relation.where(:type => 'Relation::Custom'))
237
+ as = as.merge(Relation.where(:type => ['Relation::Custom', 'Relation::Public']))
233
238
  end
234
239
 
235
240
  as
@@ -447,6 +452,7 @@ class Actor < ActiveRecord::Base
447
452
  def create_initial_relations
448
453
  Relation::Custom.defaults_for(self)
449
454
  Relation::Public.default_for(self)
455
+ Relation::Reject.default_for(self)
450
456
  end
451
457
 
452
458
  # After create callback
@@ -116,12 +116,13 @@ class Contact < ActiveRecord::Base
116
116
  # Is this {Contact} +new+ or +edit+ for {SocialStream::Models::Subject subject} ?
117
117
  #
118
118
  # action is +new+ when, despite of being created, it has not {Tie ties} or it has a {Tie} with a
119
- # {Relation::Public public relation}.
119
+ # {Relation::Reject reject relation}.
120
120
  #
121
- # The contact's action is +edit+ when it has any {Tie} with a {Relation::Custom custom relation}
121
+ # The contact's action is +edit+ when it has any {Tie} with a {Relation::Custom custom relation} or
122
+ # a {Relation::Public public relation}
122
123
  #
123
124
  def action
124
- if ties_count > 0 && relations.where(:type => 'Relation::Custom').any?
125
+ if ties_count > 0 && relations.where(:type => ['Relation::Custom', 'Relation::Public']).any?
125
126
  'edit'
126
127
  else
127
128
  'new'
@@ -35,6 +35,12 @@ class Relation < ActiveRecord::Base
35
35
  has_many :audiences, :dependent => :destroy
36
36
  has_many :activities, :through => :audiences
37
37
 
38
+ validates_presence_of :actor_id
39
+
40
+ scope :actor, lambda { |a|
41
+ where(:actor_id => Actor.normalize_id(a))
42
+ }
43
+
38
44
  scope :mode, lambda { |st, rt|
39
45
  where(:sender_type => st, :receiver_type => rt)
40
46
  }
@@ -1,31 +1,9 @@
1
- class Relation::Public < Relation
2
- scope :actor, lambda { |a|
3
- where(:actor_id => Actor.normalize_id(a))
4
- }
5
-
6
- validates_presence_of :actor_id
7
-
8
- class << self
9
- def default_for(actor)
10
- create! :actor => actor
11
- end
12
-
13
- # The {Relation::Public} belonging to actor
14
- def of(actor)
15
- actor(actor).first
16
- end
17
- end
18
-
1
+ class Relation::Public < Relation::Single
19
2
  # A {Relation::Public public relation} is always the weakest
20
3
  def <=>(relation)
21
4
  1
22
5
  end
23
6
 
24
- # The name of public relation
25
- def name
26
- I18n.t('relation_public.name')
27
- end
28
-
29
7
  # Are we supporting custom permissions for {Relation::Public}? Not by the moment.
30
8
  def allow?(user, action, object)
31
9
  action == 'read' && object == 'activity'
@@ -0,0 +1,3 @@
1
+ class Relation::Reject < Relation::Single
2
+ end
3
+
@@ -0,0 +1,22 @@
1
+ # Common methods for single relations, like {Relation::Public} and {Relation::Reject}
2
+ #
3
+ # Unlike {Relation::Custom}, {SocialStream::Models::Subject subjects} have only one of
4
+ # these {Relation relations}.
5
+ #
6
+ class Relation::Single < Relation
7
+ class << self
8
+ def default_for(actor)
9
+ create! :actor => actor
10
+ end
11
+
12
+ # The {Relation::Public} belonging to actor
13
+ def of(actor)
14
+ actor(actor).first
15
+ end
16
+ end
17
+
18
+ # The name of public relation
19
+ def name
20
+ I18n.t("relation_#{ self.class.name }.name")
21
+ end
22
+ end
data/app/models/tie.rb CHANGED
@@ -88,7 +88,7 @@ class Tie < ActiveRecord::Base
88
88
  #
89
89
  # Create contact activity if this is the first tie
90
90
  def create_activity
91
- return if contact.reload.ties_count != 1 || relation.is_a?(Relation::Public)
91
+ return if contact.reload.ties_count != 1 || relation.is_a?(Relation::Reject)
92
92
 
93
93
  Activity.create! :contact => contact,
94
94
  :relation_ids => contact.relation_ids,
@@ -4,39 +4,63 @@
4
4
  link_to (t('account.edit'), edit_user_registration_path)
5
5
  ) %>
6
6
 
7
+ <%= devise_error_messages! %>
8
+
9
+ <div class="space_center"></div>
10
+ <h2><%= t('account.edit') %></h2>
7
11
  <div class="space_center"></div>
8
12
 
9
- <div class="block" id="account_form">
10
- <div class="form_row">
11
- <h2><%= t('account.edit') %></h2>
13
+ <div class="block" id="password_form">
14
+ <div class="header">
15
+ Change password
12
16
  </div>
13
-
14
- <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
15
- <%= devise_error_messages! %>
16
-
17
+ <div >
18
+ <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
17
19
  <div class="form_row">
18
20
  <div class="form_label">
19
- <%= f.label :email %>
21
+ <%= f.label t('account.password.new') %>
20
22
  </div>
21
23
  <div class="form_field">
22
- <%= f.email_field :email, :class => "form_tag" %>
24
+ <%= f.password_field :password, :class => "form_tag" %>
23
25
  </div>
24
26
  </div>
25
27
  <div class="form_row">
26
28
  <div class="form_label">
27
- <%= f.label :password %>
29
+ <%= f.label t('account.password.retype') %>
28
30
  </div>
29
31
  <div class="form_field">
30
- <%= f.password_field :password, :class => "form_tag" %><br/>
31
- <span class="form_comment">(Leave blank if you don't want to change it)</span>
32
+ <%= f.password_field :password_confirmation, :class => "form_tag" %>
32
33
  </div>
33
34
  </div>
34
35
  <div class="form_row">
35
36
  <div class="form_label">
36
- <%= f.label :password_confirmation %>
37
+ <%= f.label :current_password %>
37
38
  </div>
38
39
  <div class="form_field">
39
- <%= f.password_field :password_confirmation, :class => "form_tag" %>
40
+ <%= f.password_field :current_password, :class => "form_tag" %>
41
+ </div>
42
+ </div>
43
+ <div class="form_row space_center">
44
+ <%= f.submit t('button.update'), :class => "button" %>
45
+ <button class="button" onclick="window.location.href='<%= polymorphic_path(current_subject) %>';">
46
+ <%= t('button.cancel')%>
47
+ </button>
48
+ </div>
49
+ <% end%>
50
+ </div>
51
+ </div>
52
+ <div class="block" id="email_form">
53
+ <div class="header">
54
+ Change email address
55
+ </div>
56
+ <div >
57
+ <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
58
+ <div class="form_row">
59
+ <div class="form_label">
60
+ <%= f.label :email %>
61
+ </div>
62
+ <div class="form_field">
63
+ <%= f.email_field :email, :class => "form_tag" %>
40
64
  </div>
41
65
  </div>
42
66
  <div class="form_row">
@@ -44,8 +68,7 @@
44
68
  <%= f.label :current_password %>
45
69
  </div>
46
70
  <div class="form_field">
47
- <%= f.password_field :current_password, :class => "form_tag" %><br/>
48
- <span class="form_comment">(We need your current password to confirm your changes)</span>
71
+ <%= f.password_field :current_password, :class => "required form_tag" %>
49
72
  </div>
50
73
  </div>
51
74
  <div class="form_row space_center">
@@ -54,15 +77,14 @@
54
77
  <%= t('button.cancel')%>
55
78
  </button>
56
79
  </div>
57
- <% end %>
58
- <div>
59
- <div class="block">
60
- <div class="content">
61
- <h3>Cancel my account</h3>
80
+ <% end%>
81
+ </div>
82
+ </div>
83
+ <div class="block" id="cancel_account">
84
+ <div class="header">
85
+ Cancel account
86
+ </div>
87
+ <div class="form_row">
88
+ Unhappy? <b><%= link_to "Cancel my account", registration_path(resource_name), :confirm => "Are you sure?", :method => :delete %>.</b>
62
89
  </div>
63
-
64
- <p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :confirm => "Are you sure?", :method => :delete %>.</p>
65
-
66
- <%= link_to "Back", :back %>
67
-
68
90
  </div>
@@ -8,12 +8,11 @@
8
8
  <div class="menu_list menu_white" id="menu_home">
9
9
  <ul>
10
10
  <li class="btn_menu_profile"><%= link_to(t('profile.one'), current_subject)%></li>
11
- <li class="pipe">|</li>
12
- <li class="btn_menu_browse"><%=link_to(t('browse'),users_path) %></li>
13
11
  </ul>
14
12
  </div>
15
13
  <% end %>
16
14
  </div>
15
+ <%= render :partial => 'layouts/search' %>
17
16
  <div id="header_right">
18
17
  <% if user_signed_in? %>
19
18
  <%= render :partial => 'layouts/representation' %>
@@ -0,0 +1,53 @@
1
+ <div id="header_search">
2
+ <form action="#" method="post">
3
+ <input id="global_search_input" name="search" type="text" autocomplete="off" />
4
+ </form>
5
+ <div id="global_search_display">
6
+ <%= image_tag('loading.gif', :class => :loading) %>
7
+ </div>
8
+ </div>
9
+ <%= javascript_tag do %>
10
+ $(document).ready(function() {
11
+ var last_search = "";
12
+
13
+ $(document).click(function() {
14
+ $("#global_search_display").hide();
15
+ });
16
+ $('#global_search_input').click(function(e) {
17
+ e.stopPropagation();
18
+ });
19
+ $('#global_search_display').click(function(e) {
20
+ e.stopPropagation();
21
+ });
22
+
23
+ $("#global_search_input").Watermark("Search");
24
+
25
+ $("#global_search_input").keyup(function() {
26
+ var searchstring = $(this).val();
27
+ if((searchstring=="")){
28
+ $("#global_search_display").hide();
29
+ }
30
+ else if(searchstring.length < 2) {
31
+ $("#global_search_display").hide();
32
+ } else {
33
+ if (last_search!=searchstring){
34
+ last_search=searchstring;
35
+ $("#global_search_display").html("<%= escape_javascript(image_tag('loading.gif', :class => :loading)) %>").show();
36
+ $.ajax({
37
+ type : "GET",
38
+ url : "<%= search_url %>?id=" + searchstring + "&mode=header_search",
39
+ success : function(html) {
40
+ if ($("#global_search_input").val()==searchstring){ //Only show if input value is still the same
41
+ $("#global_search_display").html(html);
42
+ }
43
+ },
44
+ error: function(){
45
+ $("#global_search_display").html("Something went wrong with search engine");
46
+ }
47
+ });
48
+ }
49
+ }
50
+ return false;
51
+ });
52
+ })
53
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <ul>
2
+ <% search_result.each do |actor| %>
3
+ <%= link_to actor.subject do %>
4
+ <li>
5
+ <%= image_tag(actor.logo.url(:actor), :class => :logo) %>
6
+ <%= content_tag(:span, actor.name, :class => :name) %>
7
+ </li>
8
+ <% end %>
9
+ <% end %>
10
+ </ul>
@@ -7,6 +7,9 @@ en:
7
7
  account:
8
8
  edit: "Edit user"
9
9
  one: "Account"
10
+ password:
11
+ new: "New password"
12
+ retype: "Retype new password"
10
13
  privacy: "Privacy"
11
14
  activity:
12
15
  audience:
data/config/routes.rb CHANGED
@@ -65,6 +65,8 @@ Rails.application.routes.draw do
65
65
  resource :like
66
66
  end
67
67
 
68
+ match 'search' => 'search#index', :as => :search
69
+
68
70
  match 'ties' => 'ties#index', :as => :ties
69
71
 
70
72
  # Social Stream objects configured in config/initializers/social_stream.rb
@@ -0,0 +1,29 @@
1
+ class AddRejectRelation < ActiveRecord::Migration
2
+ def up
3
+ Actor.all.each do |a|
4
+ Relation::Reject.default_for(a)
5
+ end
6
+
7
+ Tie.
8
+ includes(:relation, :contact, :sender).
9
+ merge(Relation.where(:type => 'Relation::Public')).
10
+ each do |t|
11
+ if t.contact.ties_count != 1
12
+ logger.warn "Public contact #{ t.contact_id } has #{ contact.ties_count }, when expecting 1"
13
+ end
14
+
15
+ t.update_attribute :relation_id, t.sender.relation_reject.id
16
+ end
17
+ end
18
+
19
+ def down
20
+ Tie.
21
+ includes(:relation, :contact).
22
+ merge(Relation.where(:type => 'Relation::Reject')).
23
+ each do |t|
24
+ t.update_attribute :relation_id, t.sender.relation_public.id
25
+ end
26
+
27
+ Relation::Reject.destroy_all
28
+ end
29
+ end
@@ -6,7 +6,7 @@ module Mailboxer
6
6
  notification_text = notification_text.gsub(/\%\{sender\}/, link_to(truncate_name(activity.sender.name),
7
7
  url_for(:controller=> activity.sender.subject.class.to_s.underscore.pluralize,
8
8
  :action=> :show, :id=> activity.sender.subject.slug, :only_path => false)))
9
- notification_text = notification_text.gsub(/\%\{confirm\}/,link_to(t('notification.confirm'),edit_contact_url(activity.receiver.contact_to!(activity.sender), :s => activity.sender.slug)))
9
+ notification_text = notification_text.gsub(/\%\{confirm\}/,link_to(t('notification.confirm'),edit_contact_url(activity.receiver.contact_to!(activity.sender), :s => activity.receiver.slug)))
10
10
  notification_text = notification_text.gsub(/\%\{look\}/,link_to(t('notification.look'),
11
11
  url_for(:controller=> activity.sender.subject.class.to_s.underscore.pluralize,
12
12
  :action=> :show, :id=> activity.sender.subject.slug, :only_path => false)))
@@ -1,5 +1,5 @@
1
1
  module SocialStream
2
2
  module Base
3
- VERSION = "0.8.2".freeze
3
+ VERSION = "0.9.0".freeze
4
4
  end
5
5
  end
@@ -16,6 +16,10 @@ Factory.define :public, :parent => :tie do |t|
16
16
  t.after_build { |u| u.relation = u.sender.relation_public }
17
17
  end
18
18
 
19
+ Factory.define :reject, :parent => :tie do |t|
20
+ t.after_build { |u| u.relation = u.sender.relation_reject }
21
+ end
22
+
19
23
  # Group ties
20
24
  Factory.define :g2u_tie, :parent => :tie do |t|
21
25
  t.contact { |c| Factory(:group_contact) }
@@ -59,13 +59,24 @@ describe Tie do
59
59
  end
60
60
 
61
61
  describe "with public relation" do
62
- it "should not create activity" do
62
+ it "should create activity" do
63
63
  count = Activity.count
64
64
 
65
65
  Factory(:public)
66
66
 
67
+ Activity.count.should eq(count + 1)
68
+ end
69
+ end
70
+
71
+ describe "with reject relation" do
72
+ it "should not create activity" do
73
+ count = Activity.count
74
+
75
+ Factory(:reject)
76
+
67
77
  Activity.count.should eq(count)
68
78
  end
69
79
  end
80
+
70
81
  end
71
82
 
@@ -0,0 +1,81 @@
1
+ /*
2
+ * Copyright (c) 2007 Josh Bush (digitalbush.com)
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person
5
+ * obtaining a copy of this software and associated documentation
6
+ * files (the "Software"), to deal in the Software without
7
+ * restriction, including without limitation the rights to use,
8
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ * copies of the Software, and to permit persons to whom the
10
+ * Software is furnished to do so, subject to the following
11
+ * conditions:
12
+
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23
+ * OTHER DEALINGS IN THE SOFTWARE.
24
+ */
25
+
26
+ /*
27
+ * Version: Beta 1
28
+ * Release: 2007-06-01
29
+ */
30
+ (function($) {
31
+ var map=new Array();
32
+ $.Watermark = {
33
+ ShowAll:function(){
34
+ for (var i=0;i<map.length;i++){
35
+ if(map[i].obj.val()==""){
36
+ map[i].obj.val(map[i].text);
37
+ map[i].obj.css("color",map[i].WatermarkColor);
38
+ }else{
39
+ map[i].obj.css("color",map[i].DefaultColor);
40
+ }
41
+ }
42
+ },
43
+ HideAll:function(){
44
+ for (var i=0;i<map.length;i++){
45
+ if(map[i].obj.val()==map[i].text)
46
+ map[i].obj.val("");
47
+ }
48
+ }
49
+ }
50
+
51
+ $.fn.Watermark = function(text,color) {
52
+ if(!color)
53
+ color="#aaa";
54
+ return this.each(
55
+ function(){
56
+ var input=$(this);
57
+ var defaultColor=input.css("color");
58
+ map[map.length]={text:text,obj:input,DefaultColor:defaultColor,WatermarkColor:color};
59
+ function clearMessage(){
60
+ if(input.val()==text)
61
+ input.val("");
62
+ input.css("color",defaultColor);
63
+ }
64
+
65
+ function insertMessage(){
66
+ if(input.val().length==0 || input.val()==text){
67
+ input.val(text);
68
+ input.css("color",color);
69
+ }else
70
+ input.css("color",defaultColor);
71
+ }
72
+
73
+ input.focus(clearMessage);
74
+ input.blur(insertMessage);
75
+ input.change(insertMessage);
76
+
77
+ insertMessage();
78
+ }
79
+ );
80
+ };
81
+ })(jQuery);
metadata CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 8
9
- - 2
10
- version: 0.8.2
8
+ - 9
9
+ - 0
10
+ version: 0.9.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - GING - DIT - UPM
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-09-07 00:00:00 +02:00
19
+ date: 2011-09-12 00:00:00 +02:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -554,6 +554,7 @@ files:
554
554
  - app/assets/images/btn/point_gray.png
555
555
  - app/assets/images/btn/post.png
556
556
  - app/assets/images/btn/search.png
557
+ - app/assets/images/btn/search_icon.png
557
558
  - app/assets/images/btn/shadow.png
558
559
  - app/assets/images/btn/share.png
559
560
  - app/assets/images/btn/subtime.png
@@ -589,6 +590,7 @@ files:
589
590
  - app/assets/images/icons/favicon.ico
590
591
  - app/assets/images/left.png
591
592
  - app/assets/images/loader.gif
593
+ - app/assets/images/loading.gif
592
594
  - app/assets/images/logo.png
593
595
  - app/assets/images/logos/actor/group.png
594
596
  - app/assets/images/logos/actor/remote_subject.png
@@ -614,7 +616,6 @@ files:
614
616
  - app/assets/javascripts/posts.js
615
617
  - app/assets/javascripts/profiles.js
616
618
  - app/assets/javascripts/relation_customs.js
617
- - app/assets/javascripts/search.js
618
619
  - app/assets/javascripts/settings.js
619
620
  - app/assets/javascripts/social_stream-base.js
620
621
  - app/assets/javascripts/ties.js
@@ -650,6 +651,7 @@ files:
650
651
  - app/assets/stylesheets/messages.css
651
652
  - app/assets/stylesheets/profiles.css
652
653
  - app/assets/stylesheets/relation_customs.css
654
+ - app/assets/stylesheets/search.css
653
655
  - app/assets/stylesheets/settings.css
654
656
  - app/assets/stylesheets/social_stream-base.css
655
657
  - app/assets/stylesheets/ties.css
@@ -673,6 +675,7 @@ files:
673
675
  - app/controllers/posts_controller.rb
674
676
  - app/controllers/profiles_controller.rb
675
677
  - app/controllers/relation/customs_controller.rb
678
+ - app/controllers/search_controller.rb
676
679
  - app/controllers/settings_controller.rb
677
680
  - app/controllers/subjects_controller.rb
678
681
  - app/controllers/tags_controller.rb
@@ -708,6 +711,8 @@ files:
708
711
  - app/models/relation.rb
709
712
  - app/models/relation/custom.rb
710
713
  - app/models/relation/public.rb
714
+ - app/models/relation/reject.rb
715
+ - app/models/relation/single.rb
711
716
  - app/models/relation_permission.rb
712
717
  - app/models/tie.rb
713
718
  - app/models/user.rb
@@ -787,6 +792,7 @@ files:
787
792
  - app/views/layouts/_footer.html.erb
788
793
  - app/views/layouts/_header.erb
789
794
  - app/views/layouts/_representation.html.erb
795
+ - app/views/layouts/_search.html.erb
790
796
  - app/views/layouts/_settings.html.erb
791
797
  - app/views/layouts/application.html.erb
792
798
  - app/views/layouts/frontpage.html.erb
@@ -843,6 +849,7 @@ files:
843
849
  - app/views/relation/customs/create.js.erb
844
850
  - app/views/relation/customs/index.html.erb
845
851
  - app/views/relation/customs/update.js.erb
852
+ - app/views/search/_header_search.html.erb
846
853
  - app/views/settings/_api_key.html.erb
847
854
  - app/views/settings/_index.html.erb
848
855
  - app/views/settings/_notifications.html.erb
@@ -873,6 +880,7 @@ files:
873
880
  - db/migrate/20110705103202_empty_ties_count.rb
874
881
  - db/migrate/20110712090343_remove_spheres.rb
875
882
  - db/migrate/20110712142140_remove_permission_function.rb
883
+ - db/migrate/20110912074426_add_reject_relation.rb
876
884
  - lib/acts_as_taggable_on/acts_as_taggable_on/dirty.rb
877
885
  - lib/acts_as_taggable_on/social_stream.rb
878
886
  - lib/generators/social_stream/base/install_generator.rb
@@ -988,6 +996,7 @@ files:
988
996
  - vendor/assets/javascripts/jquery.livequery.js
989
997
  - vendor/assets/javascripts/jquery.scrollTo.min.js
990
998
  - vendor/assets/javascripts/jquery.validate.js
999
+ - vendor/assets/javascripts/jquery.watermarkinput.js
991
1000
  - vendor/assets/javascripts/menu.js
992
1001
  - vendor/assets/javascripts/superfish.js
993
1002
  - vendor/assets/javascripts/ui.checkbox.js
@@ -1 +0,0 @@
1
-