social_stream 0.3.5 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +2 -0
- data/app/controllers/authentications_controller.rb +17 -0
- data/app/controllers/omniauth_callbacks_controller.rb +17 -0
- data/app/models/actor.rb +11 -1
- data/app/models/authentication.rb +3 -0
- data/app/models/permission.rb +81 -18
- data/app/models/relation.rb +21 -3
- data/app/models/tie.rb +38 -20
- data/app/models/user.rb +29 -0
- data/app/views/frontpage/_sponsor.html.erb +6 -6
- data/app/views/groups/index.html.erb +1 -1
- data/app/views/layouts/_header.erb +1 -1
- data/app/views/layouts/application.html.erb +3 -3
- data/app/views/users/_profile.html.erb +5 -3
- data/app/views/users/edit.html.erb +105 -114
- data/app/views/users/index.html.erb +7 -6
- data/bin/social_stream +0 -0
- data/bin/social_stream_heroku +76 -0
- data/config/locales/en.yml +1 -0
- data/config/routes.rb +1 -2
- data/lib/generators/social_stream/install_generator.rb +8 -0
- data/lib/generators/social_stream/templates/initializer.rb +2 -2
- data/lib/generators/social_stream/templates/migration.rb +15 -0
- data/lib/generators/social_stream/templates/public/stylesheets/browse.css +47 -5
- data/lib/generators/social_stream/templates/public/stylesheets/edit_user.css +32 -19
- data/lib/generators/social_stream/templates/public/stylesheets/index.css +25 -13
- data/lib/generators/social_stream/templates/public/stylesheets/jqcloud.css +2 -2
- data/lib/generators/social_stream/templates/public/stylesheets/users.css +0 -22
- data/lib/generators/social_stream/templates/relations.yml +25 -20
- data/lib/social_stream.rb +1 -1
- data/lib/social_stream/models/subject.rb +9 -1
- data/lib/social_stream/rails.rb +2 -0
- data/lib/social_stream/version.rb +1 -1
- data/social_stream.gemspec +4 -1
- data/spec/dummy/config/initializers/devise.rb +71 -40
- data/spec/dummy/config/initializers/social_stream.rb +2 -2
- data/spec/dummy/config/relations.yml +25 -20
- data/spec/dummy/script/rails +0 -0
- data/spec/models/activity_spec.rb +3 -3
- data/spec/models/tie_spec.rb +1 -1
- metadata +78 -24
@@ -20,18 +20,19 @@
|
|
20
20
|
|
21
21
|
<div id="my_conferences">
|
22
22
|
<div id="tabconference_browse" class="widget content_size">
|
23
|
-
|
24
|
-
<li>
|
25
|
-
<a href="/users"><%= t('user.all')%> (<%=User.count%>) </a>
|
26
|
-
</li>
|
27
|
-
</ul>
|
23
|
+
|
28
24
|
<div id="contacts" class="tabconference_browse">
|
29
25
|
<div class="space_center">
|
30
26
|
</div>
|
31
|
-
<div><input type="text" value="Search by name" id="search_field" class="search_input" /><%= image_tag("btn/search.png",:size=>"20x20",:id=>"search_button") %></div>
|
27
|
+
<div class="search_field_wrapper"><input type="text" value="Search by name" id="search_field" class="search_input" /><%= image_tag("btn/search.png",:size=>"20x20",:id=>"search_button") %></div>
|
32
28
|
<div class="space_center">
|
33
29
|
</div>
|
34
30
|
<div class="letters" class="content_size">
|
31
|
+
<ul class="tabconference_browse">
|
32
|
+
<li>
|
33
|
+
<%= link_to t('user.all_n', :count => User.count), users_path %>
|
34
|
+
</li>
|
35
|
+
</ul>
|
35
36
|
<% for char in 'A'..'Z' %>
|
36
37
|
<%= link_to char,{:letter => char,:page => 1},:class => "user_letter_link" %>
|
37
38
|
<% end %>
|
data/bin/social_stream
CHANGED
File without changes
|
@@ -0,0 +1,76 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
#Social_stream_heroku complete install
|
3
|
+
#Arguments:
|
4
|
+
#$1 --> Name of the folder to create the social_stream project
|
5
|
+
EXPECTED_ARGS=1
|
6
|
+
|
7
|
+
if [ $# -ne $EXPECTED_ARGS ]
|
8
|
+
then
|
9
|
+
echo "Usage: `basename $0` path/to/your/application"
|
10
|
+
exit 1
|
11
|
+
fi
|
12
|
+
|
13
|
+
|
14
|
+
#Linux packages
|
15
|
+
echo 'Installing Linux packages'
|
16
|
+
PACKAGES_COMMON='ruby ruby-dev rdoc irb libopenssl-ruby wget make curl aspell-es aspell-en libxml2-dev libxslt-dev libmagickcore-dev libmagickwand-dev libsqlite3-dev libmysqlclient-dev mysql-server rake git-core'
|
17
|
+
PACKAGES_PRODUCTION='awstats logrotate nfs-common'
|
18
|
+
sudo apt-get install $PACKAGES_COMMON
|
19
|
+
sudo apt-get install $PACKAGES_PRODUCTION
|
20
|
+
echo 'Done'
|
21
|
+
|
22
|
+
#Rubygems
|
23
|
+
RUBY_GEMS_VERSION='1.3.7'
|
24
|
+
RUBY_GEMS_PACKAGE="rubygems-"${RUBY_GEMS_VERSION}".tgz"
|
25
|
+
RUBY_GEMS_DOWNLOAD="http://rubyforge.org/frs/download.php/70696/"${RUBY_GEMS_PACKAGE}
|
26
|
+
|
27
|
+
echo 'Installing Rubygems $RUBY_GEMS_VERSION'
|
28
|
+
|
29
|
+
cd /tmp && wget $RUBY_GEMS_DOWNLOAD
|
30
|
+
cd /tmp && tar zxf $RUBY_GEMS_PACKAGE
|
31
|
+
cd /tmp/rubygems-$RUBY_GEMS_VERSION && sudo /usr/bin/ruby setup.rb
|
32
|
+
|
33
|
+
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
|
34
|
+
echo 'Done'
|
35
|
+
|
36
|
+
#Gems
|
37
|
+
echo 'Installing Initial Gems'
|
38
|
+
sudo gem install rails
|
39
|
+
sudo gem install bundler
|
40
|
+
sudo gem install heroku
|
41
|
+
echo 'Done'
|
42
|
+
|
43
|
+
#Social Stream
|
44
|
+
echo 'Creating and Setting up your Social Stream basic application'
|
45
|
+
export PATH=$PATH:/var/lib/gems/1.8/bin
|
46
|
+
echo 'Creating rails project'
|
47
|
+
rails new $1
|
48
|
+
cd $1
|
49
|
+
echo 'gem "social_stream"' >> Gemfile
|
50
|
+
echo 'Updating bundle'
|
51
|
+
bundle update
|
52
|
+
echo 'Setting up the application'
|
53
|
+
rails generate social_stream:install -y
|
54
|
+
rake db:migrate
|
55
|
+
rake db:seed
|
56
|
+
echo 'Done'
|
57
|
+
|
58
|
+
#Git repository
|
59
|
+
echo 'Setting up your git repository'
|
60
|
+
git init
|
61
|
+
git add .
|
62
|
+
git commit -m 'first commit'
|
63
|
+
echo 'Done'
|
64
|
+
|
65
|
+
#Heroku deployment
|
66
|
+
echo '[!] Starting deploy to heroku, you will be asked your heroku username and password'
|
67
|
+
echo '[!] If you do not have one visit http://www.heroku.com'
|
68
|
+
echo '[!] You will also need properly configured SSH keys visit: '
|
69
|
+
echo '[!] http://help.github.com/linux-key-setup/'
|
70
|
+
read -p '[!] When both things are ready PRESS ANY KEY TO CONTINUE...'
|
71
|
+
heroku create
|
72
|
+
git push heroku master
|
73
|
+
heroku rake db:migrate
|
74
|
+
echo 'Done'
|
75
|
+
|
76
|
+
echo 'Instalation & deployment are now complete. Visit https://api.heroku.com/myapps'
|
data/config/locales/en.yml
CHANGED
data/config/routes.rb
CHANGED
@@ -5,7 +5,7 @@ Rails.application.routes.draw do
|
|
5
5
|
match 'home' => 'home#index', :as => :home
|
6
6
|
match 'home' => 'home#index', :as => :user_root # devise after_sign_in_path_for
|
7
7
|
|
8
|
-
devise_for :users
|
8
|
+
devise_for :users, :controllers => {:omniauth_callbacks => 'omniauth_callbacks'}
|
9
9
|
resources :users
|
10
10
|
|
11
11
|
resource :representation
|
@@ -26,5 +26,4 @@ Rails.application.routes.draw do
|
|
26
26
|
resources :posts
|
27
27
|
resources :comments
|
28
28
|
resources :messages
|
29
|
-
|
30
29
|
end
|
@@ -6,6 +6,14 @@ class SocialStream::InstallGenerator < Rails::Generators::Base #:nodoc:
|
|
6
6
|
|
7
7
|
source_root File.expand_path('../templates', __FILE__)
|
8
8
|
|
9
|
+
def outh_for_devise_config
|
10
|
+
inject_into_file "config/initializers/devise.rb",
|
11
|
+
"\n config.omniauth :linked_in, \"ekxfXU8nueVSMQ9fc5KJAryBkyztUlCBYMW3DoQPzbE79WhivvzhQloRNHCHgPeB\", \"WYiHFT-KKFgjd45W3-pEAficmXRHmN6_6DGwj1C_ZILJlSO1gBvv6VNYXU9tybGY\"
|
12
|
+
\n config.omniauth :facebook, \"129571360447856\",\"eef39dce5e20e76f77495c59623bdb38\"
|
13
|
+
\n #config.omniauth :twitter, \"wgTxO0fTpjTeSnjKC9ZHA\",\"JepulVWwLcuAnGfWjwCu47yEP0TcJJfKtvISPBsilI\"",
|
14
|
+
:after => " # config.omniauth :github, 'APP_ID', 'APP_SECRET', :scope => 'user,public_repo'"
|
15
|
+
end
|
16
|
+
|
9
17
|
def create_initializer_file
|
10
18
|
copy_file 'initializer.rb', 'config/initializers/social_stream.rb'
|
11
19
|
end
|
@@ -8,8 +8,8 @@ SocialStream.setup do |config|
|
|
8
8
|
# Others available are:
|
9
9
|
# :token_authenticatable, :confirmable, :lockable, :timeoutable, :validatable
|
10
10
|
# config.devise_modules :database_authenticatable, :registerable,
|
11
|
-
# :recoverable, :rememberable, :trackable
|
12
|
-
|
11
|
+
# :recoverable, :rememberable, :trackable, :omniauthable
|
12
|
+
|
13
13
|
# Type of activities managed by actors
|
14
14
|
# Remember you must add an "activity_object_id" foreign key column to your migration!
|
15
15
|
#
|
@@ -50,6 +50,15 @@ class CreateSocialStream < ActiveRecord::Migration
|
|
50
50
|
add_index "actors", "email"
|
51
51
|
add_index "actors", "permalink", :unique => true
|
52
52
|
|
53
|
+
create_table :authentications, :force => true do |t|
|
54
|
+
t.integer :user_id
|
55
|
+
t.string :provider
|
56
|
+
t.string :uid
|
57
|
+
t.timestamps
|
58
|
+
end
|
59
|
+
|
60
|
+
add_index "authentications", "user_id"
|
61
|
+
|
53
62
|
create_table "comments", :force => true do |t|
|
54
63
|
t.integer "activity_object_id"
|
55
64
|
t.text "text"
|
@@ -206,6 +215,8 @@ class CreateSocialStream < ActiveRecord::Migration
|
|
206
215
|
|
207
216
|
add_foreign_key "actors", "activity_objects", :name => "actors_on_activity_object_id"
|
208
217
|
|
218
|
+
add_foreign_key "authentications", "users", :name => "authentications_on_user_id"
|
219
|
+
|
209
220
|
add_foreign_key "comments", "activity_objects", :name => "comments_on_activity_object_id"
|
210
221
|
|
211
222
|
add_foreign_key "groups", "actors", :name => "groups_on_actor_id"
|
@@ -231,6 +242,7 @@ class CreateSocialStream < ActiveRecord::Migration
|
|
231
242
|
|
232
243
|
add_foreign_key "users", "actors", :name => "users_on_actor_id"
|
233
244
|
end
|
245
|
+
|
234
246
|
|
235
247
|
def self.down
|
236
248
|
remove_foreign_key "activities", :name => "index_activities_on_activity_verb_id"
|
@@ -240,6 +252,8 @@ class CreateSocialStream < ActiveRecord::Migration
|
|
240
252
|
|
241
253
|
remove_foreign_key "actors", :name => "actors_on_activity_object_id"
|
242
254
|
|
255
|
+
remove_foreign_key "authentications", :name => "authentications_on_user_id"
|
256
|
+
|
243
257
|
remove_foreign_key "comments", :name => "comments_on_activity_object_id"
|
244
258
|
|
245
259
|
remove_foreign_key "groups", :name => "groups_on_actor_id"
|
@@ -270,6 +284,7 @@ class CreateSocialStream < ActiveRecord::Migration
|
|
270
284
|
drop_table :activity_objects
|
271
285
|
drop_table :activity_verbs
|
272
286
|
drop_table :actors
|
287
|
+
drop_table :authentications
|
273
288
|
drop_table :comments
|
274
289
|
drop_table :groups
|
275
290
|
drop_table :messages
|
@@ -2,11 +2,14 @@
|
|
2
2
|
padding: 5px;
|
3
3
|
}
|
4
4
|
.post_browse{
|
5
|
-
|
5
|
+
padding-left: 4%;
|
6
|
+
width:45%;
|
6
7
|
display:inline-block;
|
8
|
+
margin-bottom: 10px;
|
7
9
|
}
|
8
10
|
.post_browse_title{
|
9
11
|
font-weight:bold;
|
12
|
+
color: black;
|
10
13
|
}
|
11
14
|
.post_picture{
|
12
15
|
display:inline-block;
|
@@ -41,7 +44,6 @@
|
|
41
44
|
|
42
45
|
|
43
46
|
#tabconferences_browse {
|
44
|
-
|
45
47
|
}
|
46
48
|
|
47
49
|
.tabconference_browse {
|
@@ -52,7 +54,6 @@
|
|
52
54
|
|
53
55
|
.tabconference_browse fondo {
|
54
56
|
|
55
|
-
background-color: #deeff8;
|
56
57
|
}
|
57
58
|
|
58
59
|
.tabconference_browse li {
|
@@ -62,14 +63,13 @@
|
|
62
63
|
}
|
63
64
|
|
64
65
|
.tabconference_browse li a {
|
65
|
-
background-color: #deeff8;
|
66
66
|
text-decoration: none;
|
67
67
|
padding: 4px 3px;
|
68
68
|
outline: none;
|
69
|
+
float: left;
|
69
70
|
}
|
70
71
|
|
71
72
|
.tabconference_browse ul {
|
72
|
-
background: #deeff8;
|
73
73
|
}
|
74
74
|
|
75
75
|
.tabconference_browse li a:hover,
|
@@ -117,4 +117,46 @@
|
|
117
117
|
padding-top: 5px;
|
118
118
|
}
|
119
119
|
|
120
|
+
.letters a {
|
121
|
+
padding-right: 5px;
|
122
|
+
}
|
123
|
+
|
124
|
+
#ajax_loader_icon, .pagination{
|
125
|
+
text-align:center;
|
126
|
+
padding-top: 20px;
|
127
|
+
}
|
128
|
+
|
129
|
+
.letters{
|
130
|
+
text-align:center;
|
131
|
+
padding-top: 10px;
|
132
|
+
padding-bottom: 10px;
|
133
|
+
}
|
134
|
+
|
135
|
+
.search_input{
|
136
|
+
border-color: #0656a4;
|
137
|
+
color: #2A3890;
|
138
|
+
margin-left: 5px;
|
139
|
+
padding: 2px 2px 2px 2px;
|
140
|
+
border:1px solid #BDC7D8;
|
141
|
+
}
|
142
|
+
|
143
|
+
#search_button{
|
144
|
+
cursor: pointer;
|
145
|
+
margin-top: 2px;
|
146
|
+
}
|
147
|
+
|
148
|
+
#my_conferences{
|
149
|
+
background-color:white;
|
150
|
+
}
|
151
|
+
|
152
|
+
.search_field_wrapper{
|
153
|
+
margin-top:20px;
|
154
|
+
width:100%;
|
155
|
+
text-align:left;
|
156
|
+
}
|
157
|
+
|
158
|
+
.search_field_wrapper input{
|
159
|
+
float: left;
|
160
|
+
}
|
161
|
+
|
120
162
|
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
.contact_link{
|
4
4
|
color: #4A58E0;
|
5
|
-
text-align: center;
|
6
5
|
text-decoration: underline;
|
7
6
|
}
|
8
7
|
|
@@ -19,52 +18,66 @@
|
|
19
18
|
color: #6C6D6F;
|
20
19
|
}
|
21
20
|
|
22
|
-
.info_left{
|
23
|
-
float: left;
|
24
|
-
}
|
25
|
-
|
26
|
-
#personal_info {
|
27
|
-
padding-right: 4px;
|
28
|
-
padding-top: 30px;
|
29
|
-
}
|
30
|
-
|
31
21
|
/*Edit*/
|
22
|
+
button, .button{
|
23
|
+
margin-top:10px;
|
24
|
+
margin-left: 10px;
|
25
|
+
padding: 3px 3px 3px 3px;
|
26
|
+
color:#FFFFFF;
|
27
|
+
background-color: #1F4A75;
|
28
|
+
}
|
32
29
|
.confirmed{
|
33
30
|
color: #009933;
|
34
31
|
padding-left: 5%;
|
35
32
|
}
|
36
|
-
|
33
|
+
|
34
|
+
.edit_field{
|
37
35
|
padding-top: 5px;
|
36
|
+
display: table;
|
37
|
+
margin-left: 10px;
|
38
|
+
}
|
39
|
+
.edit_label{
|
40
|
+
width: 75px;
|
41
|
+
display:table-cell;
|
42
|
+
}
|
43
|
+
|
44
|
+
.edit_text {
|
45
|
+
border-color: #0656a4;
|
46
|
+
padding: 2px 5px 2px 0px;
|
47
|
+
border:1px solid #BDC7D8;
|
48
|
+
font-size: 12px;
|
49
|
+
width: 200px;
|
38
50
|
}
|
39
51
|
.error{
|
40
52
|
color: #A2042B;
|
41
53
|
font-weight: bold;
|
42
54
|
}
|
55
|
+
|
43
56
|
.error_explanation{
|
44
57
|
color: #A2042B;
|
45
58
|
padding-left: 5%;
|
46
59
|
}
|
60
|
+
|
47
61
|
.section_highlight{
|
48
62
|
border-left: none;
|
49
63
|
border-bottom: thin solid #D4E4EA;
|
50
64
|
border-top: thin solid #D4E4EA;
|
51
65
|
border-right: thin solid #D4E4EA;
|
52
|
-
|
53
|
-
.section_normal{
|
54
|
-
border-left: thin solid #D4E4EA;
|
55
|
-
background-color: #EEF;
|
66
|
+
background-color: #EEF;
|
56
67
|
}
|
57
68
|
|
58
|
-
.
|
69
|
+
.section_edit{
|
59
70
|
border-bottom-color: #E1EEF5;
|
60
71
|
border-bottom-style: solid;
|
61
|
-
/*text-decoration: underline;*/
|
62
72
|
font-weight: bold;
|
63
73
|
font-size: 14px;
|
74
|
+
margin-bottom: 1%;
|
64
75
|
}
|
65
76
|
#user_profile_attributes_description, #user_profile_attributes_experience{
|
66
|
-
width:
|
67
|
-
max-width:
|
77
|
+
width: 275px;
|
78
|
+
max-width: 350px ;
|
79
|
+
display:block;
|
80
|
+
margin-top: 5px;
|
68
81
|
}
|
69
82
|
|
70
83
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
/********************************** body *******************************/
|
2
2
|
#wrapper_body {
|
3
3
|
width: 960px;
|
4
|
+
display: table;
|
4
5
|
margin-left: auto;
|
5
6
|
margin-right: auto;
|
6
7
|
background-color: #fff;
|
@@ -33,7 +34,7 @@
|
|
33
34
|
border-right: thin solid #D4E4EA;
|
34
35
|
border-bottom: thin solid #D4E4EA;
|
35
36
|
vertical-align: top;
|
36
|
-
display:
|
37
|
+
display: table-cell;
|
37
38
|
padding-top: 10px;
|
38
39
|
font-size: 14px;
|
39
40
|
}
|
@@ -43,7 +44,7 @@
|
|
43
44
|
border-right: thin solid #D4E4EA;
|
44
45
|
border-bottom: thin solid #D4E4EA;
|
45
46
|
vertical-align: top;
|
46
|
-
display:
|
47
|
+
display: table-cell;
|
47
48
|
padding-top: 10px;
|
48
49
|
font-size: 14px;
|
49
50
|
}
|
@@ -52,30 +53,34 @@
|
|
52
53
|
width: 255px;
|
53
54
|
border-color: #000;
|
54
55
|
vertical-align: top;
|
55
|
-
display:
|
56
|
+
display: table-cell;
|
56
57
|
padding: 5px 5px 5px 0px;
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
*/
|
58
|
+
border-left: thin solid #D4E4EA;
|
59
|
+
border-bottom: thin solid #D4E4EA;
|
60
|
+
|
61
61
|
}
|
62
62
|
|
63
63
|
#middle {
|
64
64
|
width: 220px;
|
65
|
-
display:
|
65
|
+
display: table-cell;
|
66
66
|
vertical-align: top;
|
67
|
-
border-bottom: thin solid #D4E4EA;
|
68
|
-
|
67
|
+
/*border-bottom: thin solid #D4E4EA;
|
68
|
+
border-left:thin solid #D4E4EA;
|
69
|
+
border-right: thin solid #D4E4EA;*/
|
69
70
|
}
|
70
71
|
|
71
72
|
#right {
|
72
73
|
width: 160px;
|
73
74
|
border-color: #000;
|
74
75
|
vertical-align: top;
|
75
|
-
display:
|
76
|
+
display: table-cell;
|
76
77
|
padding: 5px 5px 5px 5px;
|
78
|
+
|
79
|
+
}
|
80
|
+
|
81
|
+
#rightContent{
|
77
82
|
border-left: thin solid #D4E4EA;
|
78
|
-
|
83
|
+
border-bottom: thin solid #D4E4EA;
|
79
84
|
}
|
80
85
|
|
81
86
|
#hiddenMiddle {
|
@@ -396,15 +401,22 @@
|
|
396
401
|
}
|
397
402
|
|
398
403
|
.info_post {
|
399
|
-
display: block
|
404
|
+
/* display: block;*/
|
400
405
|
width: 100%;
|
401
406
|
padding-top: 3px;
|
402
407
|
padding-bottom: 2px;
|
403
408
|
}
|
404
409
|
|
410
|
+
.info_center{
|
411
|
+
display: inline-block;
|
412
|
+
text-justify: auto;
|
413
|
+
color: #000;
|
414
|
+
}
|
415
|
+
|
405
416
|
.info_left {
|
406
417
|
display: inline-block;
|
407
418
|
width: 35%;
|
419
|
+
float: left;
|
408
420
|
}
|
409
421
|
|
410
422
|
.info_right {
|