social_stream 0.11.2 → 0.11.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +0 -9
- data/base/app/assets/stylesheets/contacts.css.scss +8 -3
- data/base/app/assets/stylesheets/frontpage.css.scss +1 -1
- data/base/app/assets/stylesheets/search.css.scss +17 -1
- data/base/app/controllers/contacts_controller.rb +2 -5
- data/base/app/models/contact.rb +3 -2
- data/base/app/views/activities/_options.html.erb +1 -1
- data/base/app/views/contacts/_form.html.erb +14 -7
- data/base/app/views/frontpage/_social_networks.html.erb +3 -0
- data/base/app/views/groups/_new.html.erb +2 -2
- data/base/app/views/groups/_show.html.erb +1 -2
- data/base/app/views/groups/index.html.erb +1 -1
- data/base/app/views/layouts/_header_signed_out.erb +1 -3
- data/base/app/views/notifications/activities/_follow_subject.html.erb +5 -2
- data/base/app/views/notifications/activities/_like_subject.html.erb +6 -2
- data/base/app/views/notifications/activities/_make-friend_subject.html.erb +5 -2
- data/base/app/views/notifications/activities/_post_subject.html.erb +6 -1
- data/base/app/views/notifications/activities/_update_body.html.erb +5 -1
- data/base/app/views/notifications/activities/_update_subject.html.erb +5 -1
- data/base/app/views/posts/_post_focus_search.html.erb +37 -3
- data/base/app/views/posts/_post_global_search.html.erb +2 -0
- data/base/app/views/profiles/_contact.html.erb +1 -1
- data/base/app/views/search/index.js.erb +2 -0
- data/base/app/views/toolbar/_home.html.erb +4 -0
- data/base/config/locales/en.yml +26 -0
- data/base/config/locales/es.yml +26 -0
- data/base/lib/mailboxer/notification_decoder.rb +8 -6
- data/base/lib/social_stream-base.rb +1 -1
- data/base/lib/social_stream/base/version.rb +1 -1
- data/base/lib/social_stream/migrations/components.rb +1 -1
- data/base/lib/social_stream/toolbar_config/base.rb +12 -1
- data/base/social_stream-base.gemspec +1 -1
- data/base/spec/controllers/contacts_controller_spec.rb +4 -4
- data/events/app/assets/javascripts/social_stream-events.js +2 -2
- data/events/app/assets/stylesheets/social_stream-events.css +3 -0
- data/events/{app → vendor}/assets/javascripts/jquery.ad-gallery.js +0 -0
- data/events/{app → vendor}/assets/javascripts/jquery.ad-gallery.pack.js +0 -0
- data/events/{app → vendor}/assets/stylesheets/ad_next.png +0 -0
- data/events/{app → vendor}/assets/stylesheets/ad_prev.png +0 -0
- data/events/{app → vendor}/assets/stylesheets/ad_scroll_back.png +0 -0
- data/events/{app → vendor}/assets/stylesheets/ad_scroll_forward.png +0 -0
- data/events/{app → vendor}/assets/stylesheets/fullcalendar.css +0 -0
- data/events/{app → vendor}/assets/stylesheets/fullcalendar.print.css +0 -0
- data/events/{app → vendor}/assets/stylesheets/jquery.ad-gallery.css +0 -0
- data/events/{app → vendor}/assets/stylesheets/loader.gif +0 -0
- data/events/vendor/assets/stylesheets/social_stream-events.css +273 -0
- data/lib/social_stream.rb +0 -4
- data/lib/social_stream/version.rb +1 -1
- data/presence/.gitignore +4 -0
- data/presence/Gemfile +4 -0
- data/presence/Rakefile +1 -0
- data/presence/app/assets/audio/chat/onMessageAudio.mp3 +0 -0
- data/presence/app/assets/audio/chat/onMessageAudio.wav +0 -0
- data/presence/app/assets/images/arrow.png +0 -0
- data/presence/app/assets/images/black_arrow3.png +0 -0
- data/presence/app/assets/images/status/available.png +0 -0
- data/presence/app/assets/images/status/away.png +0 -0
- data/presence/app/assets/images/status/dnd.png +0 -0
- data/presence/app/assets/javascripts/jquery-ui-1.8.14.custom.min.js +789 -0
- data/presence/app/assets/javascripts/jquery.tools.min.js +17 -0
- data/presence/app/assets/javascripts/jquery.tools.tooltip.js +11 -0
- data/presence/app/assets/javascripts/jquery.ui.chatbox.js +260 -0
- data/presence/app/assets/javascripts/social_stream-presence.js +2 -0
- data/presence/app/assets/javascripts/store.js +27 -0
- data/presence/app/assets/javascripts/strophe.js +3612 -0
- data/presence/app/assets/javascripts/xmpp_client.js +498 -0
- data/presence/app/assets/stylesheets/chat.css +231 -0
- data/presence/app/assets/stylesheets/jquery.ui.chatbox.css +54 -0
- data/presence/app/assets/stylesheets/social_stream-presence.css +3 -0
- data/presence/app/controllers/xmpp_controller.rb +190 -0
- data/presence/app/helpers/xmpp_helper.rb +33 -0
- data/presence/app/views/xmpp/_chat.html.erb +59 -0
- data/presence/app/views/xmpp/_chat_connecting.html.erb +8 -0
- data/presence/app/views/xmpp/_chat_contacts.html.erb +46 -0
- data/presence/app/views/xmpp/_chat_off.html.erb +35 -0
- data/presence/app/views/xmpp/active_users.html.erb +33 -0
- data/presence/app/views/xmpp/chat.html.erb +13 -0
- data/presence/app/views/xmpp/index.html +19 -0
- data/presence/app/views/xmpp/test.html.erb +11 -0
- data/presence/config/routes.rb +15 -0
- data/presence/db/migrate/20110711111408_add_connected_column_to_user.rb +9 -0
- data/presence/db/migrate/20110928135031_add_status_column_to_user.rb +9 -0
- data/presence/ejabberd/conf/ejabberd.cfg +625 -0
- data/presence/ejabberd/conf/ejabberdctl.cfg +154 -0
- data/presence/ejabberd/conf/inetrc +3 -0
- data/presence/ejabberd/conf/server.pem +37 -0
- data/presence/ejabberd/conf/ssconfig.cfg +29 -0
- data/presence/ejabberd/ejabberd_scripts/authentication_script +117 -0
- data/presence/ejabberd/ejabberd_scripts/authentication_script_org +114 -0
- data/presence/ejabberd/ejabberd_scripts/compile_module +34 -0
- data/presence/ejabberd/ejabberd_scripts/generate_random_password +18 -0
- data/presence/ejabberd/ejabberd_scripts/kill_authentication_script.sh +13 -0
- data/presence/ejabberd/ejabberd_scripts/reset_connection_script +55 -0
- data/presence/ejabberd/ejabberd_scripts/reset_logs.sh +23 -0
- data/presence/ejabberd/ejabberd_scripts/set_connection_script +48 -0
- data/presence/ejabberd/ejabberd_scripts/set_presence_script +48 -0
- data/presence/ejabberd/ejabberd_scripts/show_config.sh +30 -0
- data/presence/ejabberd/ejabberd_scripts/start_ejabberd.sh +68 -0
- data/presence/ejabberd/ejabberd_scripts/stop_ejabberd.sh +12 -0
- data/presence/ejabberd/ejabberd_scripts/synchronize_presence_script +57 -0
- data/presence/ejabberd/ejabberd_scripts/unset_connection_script +48 -0
- data/presence/ejabberd/mod_admin_extra/mod_admin_extra.beam +0 -0
- data/presence/ejabberd/mod_admin_extra/mod_admin_extra.erl +1560 -0
- data/presence/ejabberd/mod_sspresence/mod_sspresence.erl +230 -0
- data/presence/lib/social_stream-presence.rb +13 -0
- data/presence/lib/social_stream/migrations/presence.rb +9 -0
- data/presence/lib/social_stream/presence/config.rb +9 -0
- data/presence/lib/social_stream/presence/engine.rb +49 -0
- data/presence/lib/social_stream/presence/models/buddy_manager.rb +67 -0
- data/presence/social_stream-presence.gemspec +28 -0
- data/presence/spec/demo/.gitignore +5 -0
- data/presence/spec/demo/.rspec +1 -0
- data/presence/spec/demo/README +261 -0
- data/presence/spec/demo/Rakefile +7 -0
- data/presence/spec/demo/app/assets/images/rails.png +0 -0
- data/presence/spec/demo/app/assets/javascripts/application.js +9 -0
- data/presence/spec/demo/app/assets/stylesheets/application.css +7 -0
- data/presence/spec/demo/app/controllers/application_controller.rb +3 -0
- data/presence/spec/demo/app/helpers/application_helper.rb +2 -0
- data/presence/spec/demo/app/mailers/.gitkeep +0 -0
- data/presence/spec/demo/app/models/.gitkeep +0 -0
- data/presence/spec/demo/app/views/layouts/application.html.erb +14 -0
- data/presence/spec/demo/autotest/discover.rb +2 -0
- data/presence/spec/demo/config.ru +4 -0
- data/presence/spec/demo/config/application.rb +41 -0
- data/presence/spec/demo/config/boot.rb +6 -0
- data/presence/spec/demo/config/database.yml +25 -0
- data/presence/spec/demo/config/environment.rb +5 -0
- data/presence/spec/demo/config/environments/development.rb +27 -0
- data/presence/spec/demo/config/environments/production.rb +54 -0
- data/presence/spec/demo/config/environments/test.rb +39 -0
- data/presence/spec/demo/config/initializers/backtrace_silencers.rb +7 -0
- data/presence/spec/demo/config/initializers/inflections.rb +10 -0
- data/presence/spec/demo/config/initializers/mime_types.rb +5 -0
- data/presence/spec/demo/config/initializers/secret_token.rb +7 -0
- data/presence/spec/demo/config/initializers/session_store.rb +8 -0
- data/presence/spec/demo/config/initializers/wrap_parameters.rb +12 -0
- data/presence/spec/demo/config/locales/en.yml +5 -0
- data/presence/spec/demo/config/routes.rb +58 -0
- data/presence/spec/demo/db/seeds.rb +7 -0
- data/presence/spec/demo/doc/README_FOR_APP +2 -0
- data/presence/spec/demo/lib/tasks/.gitkeep +0 -0
- data/presence/spec/demo/log/.gitkeep +0 -0
- data/presence/spec/demo/public/404.html +26 -0
- data/presence/spec/demo/public/422.html +26 -0
- data/presence/spec/demo/public/500.html +26 -0
- data/presence/spec/demo/public/favicon.ico +0 -0
- data/presence/spec/demo/public/index.html +241 -0
- data/presence/spec/demo/public/robots.txt +5 -0
- data/presence/spec/demo/script/rails +6 -0
- data/presence/spec/demo/spec/spec_helper.rb +27 -0
- data/presence/spec/demo/test/fixtures/.gitkeep +0 -0
- data/presence/spec/demo/test/functional/.gitkeep +0 -0
- data/presence/spec/demo/test/integration/.gitkeep +0 -0
- data/presence/spec/demo/test/performance/browsing_test.rb +12 -0
- data/presence/spec/demo/test/test_helper.rb +13 -0
- data/presence/spec/demo/test/unit/.gitkeep +0 -0
- data/presence/spec/demo/vendor/assets/stylesheets/.gitkeep +0 -0
- data/presence/spec/demo/vendor/plugins/.gitkeep +0 -0
- data/presence/spec/discover.rb +2 -0
- data/presence/spec/spec_helper.rb +27 -0
- data/social_stream.gemspec +9 -2
- data/spec/dummy/config/environments/{test_pg.rb → test_mysql.rb} +6 -2
- data/spec/dummy/config/environments/test_postgres.rb +39 -0
- data/spec/spec_helper.rb +1 -4
- metadata +135 -21
- data/base/app/views/groups/_new_activity.html.erb +0 -1
- data/base/app/views/groups/_new_activity_fields.html.erb +0 -7
@@ -0,0 +1,231 @@
|
|
1
|
+
/* Chatbox style sheet */
|
2
|
+
|
3
|
+
.ui-chatbox {
|
4
|
+
position: fixed;
|
5
|
+
bottom:0;
|
6
|
+
padding: 2px 2px 2px 2px;
|
7
|
+
padding: 2px 2px 2px 2px;
|
8
|
+
background: #CCCCCC;
|
9
|
+
}
|
10
|
+
|
11
|
+
.ui-chatbox-titlebar {
|
12
|
+
padding: 3px 3px 3px 3px;
|
13
|
+
height: 20px;
|
14
|
+
}
|
15
|
+
|
16
|
+
.ui-chatbox-content {
|
17
|
+
padding: 0px 0px 0px 0px;
|
18
|
+
margin: 0px 0px 0px 0px;
|
19
|
+
border: 0px;
|
20
|
+
}
|
21
|
+
|
22
|
+
.ui-chatbox-log {
|
23
|
+
padding: 3px 3px 3px 3px;
|
24
|
+
height: 150px;
|
25
|
+
overflow-y: auto;
|
26
|
+
background: #FFFFFF;
|
27
|
+
}
|
28
|
+
|
29
|
+
.ui-chatbox-input {
|
30
|
+
padding: 3px 3px 3px 3px;
|
31
|
+
border-top: 1px solid grey;
|
32
|
+
overflow: hidden;
|
33
|
+
/* background: #FFFFFF; */
|
34
|
+
}
|
35
|
+
|
36
|
+
.ui-chatbox-input-box {
|
37
|
+
margin: 5px 5px 5px 5px;
|
38
|
+
border: 2px solid lightgrey;
|
39
|
+
height: 35px;
|
40
|
+
}
|
41
|
+
|
42
|
+
.ui-chatbox-icon {
|
43
|
+
float: right;
|
44
|
+
}
|
45
|
+
|
46
|
+
.ui-chatbox-input-focus {
|
47
|
+
border-color: #6699FF;
|
48
|
+
}
|
49
|
+
|
50
|
+
.ui-chatbox-msg {
|
51
|
+
float: left;
|
52
|
+
clear: both;
|
53
|
+
}
|
54
|
+
|
55
|
+
|
56
|
+
/* Presence Partial */
|
57
|
+
|
58
|
+
div.user_presence {
|
59
|
+
float: left;
|
60
|
+
position: relative;
|
61
|
+
width: 30px;
|
62
|
+
height: 30px;
|
63
|
+
}
|
64
|
+
|
65
|
+
.user_presence p {
|
66
|
+
text-align: center;
|
67
|
+
}
|
68
|
+
|
69
|
+
#chat_partial {
|
70
|
+
width: 150px;
|
71
|
+
margin-top: 10px;
|
72
|
+
margin-left: 5px;
|
73
|
+
margin-right: 5px;
|
74
|
+
}
|
75
|
+
|
76
|
+
.presence_status {
|
77
|
+
position: absolute;
|
78
|
+
bottom:0px;
|
79
|
+
right:0px;
|
80
|
+
border:none;
|
81
|
+
}
|
82
|
+
|
83
|
+
.users_connected{
|
84
|
+
display: block;
|
85
|
+
width: 150px;
|
86
|
+
}
|
87
|
+
|
88
|
+
.chat_off{
|
89
|
+
width: 150px;
|
90
|
+
}
|
91
|
+
|
92
|
+
#passwordFormChat{
|
93
|
+
width: 150px;
|
94
|
+
background-color: #1F4A75;
|
95
|
+
padding-top:3px;
|
96
|
+
padding-bottom:1px;
|
97
|
+
}
|
98
|
+
|
99
|
+
label.chatPasswordTitle{
|
100
|
+
color: white;
|
101
|
+
margin-left: 5px;
|
102
|
+
}
|
103
|
+
|
104
|
+
input.chat_password{
|
105
|
+
width: 135px;
|
106
|
+
margin-left: 5px;
|
107
|
+
margin-right: 5px;
|
108
|
+
margin-bottom: 5px;
|
109
|
+
}
|
110
|
+
|
111
|
+
input.connectChatButton{
|
112
|
+
text-align: center;
|
113
|
+
}
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
/* Tooltip */
|
120
|
+
|
121
|
+
.tooltip {
|
122
|
+
display:none;
|
123
|
+
font-size:12px;
|
124
|
+
height:21px;
|
125
|
+
width:160px;
|
126
|
+
padding: 18px 25px 15px 25px;
|
127
|
+
margin: -15px 0px 0px 0px;
|
128
|
+
color:#fff;
|
129
|
+
background:transparent url(black_arrow3.png);
|
130
|
+
text-align: center;
|
131
|
+
/* border: 5px solid red; */
|
132
|
+
}
|
133
|
+
|
134
|
+
|
135
|
+
/* Status style sheet */
|
136
|
+
|
137
|
+
|
138
|
+
#status{
|
139
|
+
z-index: 1;
|
140
|
+
}
|
141
|
+
|
142
|
+
.desc {
|
143
|
+
color:#6b6b6b;
|
144
|
+
}
|
145
|
+
|
146
|
+
.desc a {
|
147
|
+
color:#0092dd;
|
148
|
+
}
|
149
|
+
|
150
|
+
.dropdown dd, .dropdown dt, .dropdown ul {
|
151
|
+
margin:0px;
|
152
|
+
padding:0px;
|
153
|
+
}
|
154
|
+
|
155
|
+
.dropdown dd {
|
156
|
+
position:relative;
|
157
|
+
}
|
158
|
+
|
159
|
+
.dropdown a, .dropdown a:visited {
|
160
|
+
color:#1F4A75;
|
161
|
+
text-decoration:none;
|
162
|
+
outline:none;
|
163
|
+
}
|
164
|
+
|
165
|
+
.dropdown a:hover {
|
166
|
+
color:#1F4A75;
|
167
|
+
}
|
168
|
+
.dropdown dt a:hover {
|
169
|
+
color:#1F4A75;
|
170
|
+
border: 1px solid #1F4A75;
|
171
|
+
}
|
172
|
+
|
173
|
+
.dropdown dt a {
|
174
|
+
background:#DFECF1 url(btn/arrowBlue.png) no-repeat scroll right center;
|
175
|
+
display:block;
|
176
|
+
padding-right:20px;
|
177
|
+
border:1px solid #DFECF1;
|
178
|
+
width:128px;
|
179
|
+
}
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
.dropdown dt a span {
|
184
|
+
cursor:pointer;
|
185
|
+
display:block;
|
186
|
+
padding:5px;
|
187
|
+
}
|
188
|
+
|
189
|
+
.dropdown dd ul {
|
190
|
+
background:#DFECF1 none repeat scroll 0 0;
|
191
|
+
border:1px solid #DFECF1; color:#DFECF1;
|
192
|
+
display:none;
|
193
|
+
left:0px;
|
194
|
+
padding:5px 0px;
|
195
|
+
position:absolute;
|
196
|
+
top:2px;
|
197
|
+
width:auto;
|
198
|
+
min-width:170px;
|
199
|
+
list-style:none;
|
200
|
+
z-index: 1;
|
201
|
+
}
|
202
|
+
|
203
|
+
.dropdown span.value {
|
204
|
+
display:none;
|
205
|
+
}
|
206
|
+
|
207
|
+
.dropdown dd ul li a {
|
208
|
+
padding:5px;
|
209
|
+
display:block;
|
210
|
+
}
|
211
|
+
|
212
|
+
.dropdown dd ul li a:hover {
|
213
|
+
background-color:#D4E5EF;
|
214
|
+
}
|
215
|
+
|
216
|
+
.dropdown img.flag {
|
217
|
+
border:none;
|
218
|
+
vertical-align:middle;
|
219
|
+
margin-left:10px;
|
220
|
+
}
|
221
|
+
|
222
|
+
.flagvisibility {
|
223
|
+
display:none;
|
224
|
+
}
|
225
|
+
|
226
|
+
.input_select{
|
227
|
+
width: 100%;
|
228
|
+
background-color: #D0C9AF;
|
229
|
+
margin-top:5px;
|
230
|
+
margin-bottom:5px;
|
231
|
+
}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
/* style sheets */
|
2
|
+
.ui-chatbox {
|
3
|
+
position: fixed;
|
4
|
+
bottom:0;
|
5
|
+
padding: 2px 2px 2px 2px;
|
6
|
+
padding: 2px 2px 2px 2px;
|
7
|
+
background: #CCCCCC;
|
8
|
+
/* background: #CCCCCC; */
|
9
|
+
}
|
10
|
+
|
11
|
+
.ui-chatbox-titlebar {
|
12
|
+
padding: 3px 3px 3px 3px;
|
13
|
+
height: 20px;
|
14
|
+
}
|
15
|
+
|
16
|
+
.ui-chatbox-content {
|
17
|
+
padding: 0px 0px 0px 0px;
|
18
|
+
margin: 0px 0px 0px 0px;
|
19
|
+
border: 0px;
|
20
|
+
}
|
21
|
+
|
22
|
+
.ui-chatbox-log {
|
23
|
+
padding: 3px 3px 3px 3px;
|
24
|
+
height: 150px;
|
25
|
+
overflow-y: auto;
|
26
|
+
background: #FFFFFF;
|
27
|
+
}
|
28
|
+
|
29
|
+
.ui-chatbox-input {
|
30
|
+
padding: 3px 3px 3px 3px;
|
31
|
+
border-top: 1px solid grey;
|
32
|
+
overflow: hidden;
|
33
|
+
/* background: #FFFFFF; */
|
34
|
+
}
|
35
|
+
|
36
|
+
.ui-chatbox-input-box {
|
37
|
+
margin: 5px 5px 5px 5px;
|
38
|
+
border: 2px solid lightgrey;/* #6699FF */
|
39
|
+
/* padding:5px 5px 5px 5px; */
|
40
|
+
height: 35px;
|
41
|
+
}
|
42
|
+
|
43
|
+
.ui-chatbox-icon {
|
44
|
+
float: right;
|
45
|
+
}
|
46
|
+
|
47
|
+
.ui-chatbox-input-focus {
|
48
|
+
border-color: #6699FF;
|
49
|
+
}
|
50
|
+
|
51
|
+
.ui-chatbox-msg {
|
52
|
+
float: left;
|
53
|
+
clear: both;
|
54
|
+
}
|
@@ -0,0 +1,190 @@
|
|
1
|
+
require 'xmpp4r'
|
2
|
+
require 'xmpp4r/muc'
|
3
|
+
require 'xmpp4r/roster'
|
4
|
+
require 'xmpp4r/client'
|
5
|
+
require 'xmpp4r/message'
|
6
|
+
|
7
|
+
class XmppController < ApplicationController
|
8
|
+
|
9
|
+
#Mapping XMPP Standar Status to Social Stream Chat Status
|
10
|
+
STATUS = {
|
11
|
+
'' => 'available',
|
12
|
+
'chat' => 'available',
|
13
|
+
'away' => 'away',
|
14
|
+
'xa' => 'away',
|
15
|
+
'dnd' => 'dnd',
|
16
|
+
#Special status to disable chat
|
17
|
+
'disable' => 'disable'
|
18
|
+
}
|
19
|
+
|
20
|
+
|
21
|
+
#API METHODS
|
22
|
+
|
23
|
+
def resetConnection
|
24
|
+
unless authorization
|
25
|
+
render :text => "Authorization error"
|
26
|
+
return
|
27
|
+
end
|
28
|
+
|
29
|
+
users = User.find_all_by_connected(true)
|
30
|
+
|
31
|
+
users.each do |user|
|
32
|
+
user.connected = false
|
33
|
+
user.save!
|
34
|
+
end
|
35
|
+
|
36
|
+
render :text => "Ok"
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
def unsetConecction
|
41
|
+
unless authorization
|
42
|
+
render :text => "Authorization error"
|
43
|
+
return
|
44
|
+
end
|
45
|
+
|
46
|
+
user = User.find_by_slug(params[:name])
|
47
|
+
|
48
|
+
if user && user.connected
|
49
|
+
user.connected = false
|
50
|
+
user.save!
|
51
|
+
render :text => "Ok"
|
52
|
+
return
|
53
|
+
end
|
54
|
+
|
55
|
+
render :text => "Error"
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
def setConnection
|
60
|
+
unless authorization
|
61
|
+
render :text => "Authorization error"
|
62
|
+
return
|
63
|
+
end
|
64
|
+
|
65
|
+
user = User.find_by_slug(params[:name])
|
66
|
+
|
67
|
+
if user && !user.connected
|
68
|
+
user.connected = true
|
69
|
+
user.status = "available"
|
70
|
+
user.save!
|
71
|
+
render :text => "Ok"
|
72
|
+
return
|
73
|
+
end
|
74
|
+
|
75
|
+
render :text => "Error"
|
76
|
+
end
|
77
|
+
|
78
|
+
|
79
|
+
def synchronizePresence
|
80
|
+
unless authorization
|
81
|
+
render :text => "Authorization error"
|
82
|
+
return
|
83
|
+
end
|
84
|
+
|
85
|
+
#Actual connected users
|
86
|
+
user_slugs = params[:name]
|
87
|
+
|
88
|
+
#Check connected users
|
89
|
+
users = User.find_all_by_connected(true)
|
90
|
+
|
91
|
+
users.each do |user|
|
92
|
+
if user_slugs.include?(user.slug) == false
|
93
|
+
user.connected = false
|
94
|
+
user.save!
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
user_slugs.each do |user_slug|
|
99
|
+
u = User.find_by_slug(user_slug)
|
100
|
+
if (u != nil && u.connected == false)
|
101
|
+
u.connected = true
|
102
|
+
u.save!
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
render :text => "ok"
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
def setPresence
|
111
|
+
unless authorization
|
112
|
+
render :text => "Authorization error"
|
113
|
+
return
|
114
|
+
end
|
115
|
+
|
116
|
+
user = User.find_by_slug(params[:name])
|
117
|
+
status = params[:status]
|
118
|
+
|
119
|
+
if setStatus(user,status)
|
120
|
+
render :text => 'Status changed'
|
121
|
+
else
|
122
|
+
render :text => 'Status not changed'
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
126
|
+
|
127
|
+
|
128
|
+
def unsetPresence
|
129
|
+
unless authorization
|
130
|
+
render :text => "Authorization error"
|
131
|
+
return
|
132
|
+
end
|
133
|
+
render :text => "Ok"
|
134
|
+
end
|
135
|
+
|
136
|
+
def authorization
|
137
|
+
return params[:password] == Socialstream::Presence::XMPP_SERVER_PASSWORD
|
138
|
+
end
|
139
|
+
|
140
|
+
|
141
|
+
def chatWindow
|
142
|
+
if (current_user.connected) and (current_user.status != 'disable') and (params[:userConnected]=="true")
|
143
|
+
render :partial => 'xmpp/chat_contacts'
|
144
|
+
else
|
145
|
+
#User not connected or chat desactivated
|
146
|
+
render :partial => 'xmpp/chat_off'
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
|
154
|
+
#TEST METHODS
|
155
|
+
def active_users
|
156
|
+
@users = User.find_all_by_connected(true)
|
157
|
+
@all_users = User.all
|
158
|
+
end
|
159
|
+
|
160
|
+
def test
|
161
|
+
puts "TEST"
|
162
|
+
client = Jabber::Client.new(Jabber::JID.new('social_stream-presence@trapo'))
|
163
|
+
client.connect
|
164
|
+
password = Socialstream::Presence::PASSWORD
|
165
|
+
client.auth(password)
|
166
|
+
|
167
|
+
#Sending a message
|
168
|
+
msg = Jabber::Message::new('social_stream-presence@trapo', "Message&order")
|
169
|
+
msg.type=:chat
|
170
|
+
client.send(msg)
|
171
|
+
end
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
private
|
176
|
+
|
177
|
+
def setStatus(user,status)
|
178
|
+
if user and status and user.status != status and validStatus(status)
|
179
|
+
user.status = STATUS[status]
|
180
|
+
user.save!
|
181
|
+
return true
|
182
|
+
end
|
183
|
+
return false
|
184
|
+
end
|
185
|
+
|
186
|
+
def validStatus(status)
|
187
|
+
return STATUS.keys.include?(status)
|
188
|
+
end
|
189
|
+
|
190
|
+
end
|