social_stream 0.22.0 → 0.22.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/base/app/assets/javascripts/social_stream.search.js.erb +27 -0
  2. data/base/app/assets/stylesheets/activities.css.scss +2 -0
  3. data/base/app/controllers/search_controller.rb +5 -2
  4. data/base/app/helpers/activities_helper.rb +19 -0
  5. data/base/app/helpers/search_helper.rb +37 -7
  6. data/base/app/models/actor.rb +2 -1
  7. data/base/app/models/group.rb +2 -0
  8. data/base/app/views/activities/_likes.html.erb +5 -0
  9. data/base/app/views/activities/_root.html.erb +3 -0
  10. data/base/app/views/cheesecake/_cheesecake.html.erb +1 -1
  11. data/base/app/views/search/_form.html.erb +27 -48
  12. data/base/config/locales/en.yml +21 -3
  13. data/base/config/locales/es.yml +14 -3
  14. data/base/lib/social_stream/base/version.rb +1 -1
  15. data/documents/config/locales/en.yml +12 -3
  16. data/documents/config/locales/es.yml +12 -4
  17. data/documents/lib/social_stream/documents/version.rb +1 -1
  18. data/documents/lib/social_stream/toolbar_config/documents.rb +2 -2
  19. data/documents/social_stream-documents.gemspec +1 -1
  20. data/events/app/views/events/index.html.erb +2 -2
  21. data/events/config/locales/en.yml +4 -1
  22. data/events/config/locales/es.yml +4 -1
  23. data/events/lib/social_stream/events/version.rb +1 -1
  24. data/events/social_stream-events.gemspec +1 -1
  25. data/lib/social_stream/version.rb +1 -1
  26. data/presence/app/assets/javascripts/social_stream-presence.js +1 -0
  27. data/presence/app/assets/javascripts/xmpp_client_management.js.erb +14 -2
  28. data/presence/lib/social_stream/presence/engine.rb +6 -0
  29. data/presence/lib/social_stream/presence/models/group_manager.rb +41 -0
  30. data/presence/lib/social_stream/presence/version.rb +1 -1
  31. data/presence/lib/social_stream/presence/xmpp_server_order.rb +84 -10
  32. data/presence/lib/social_stream-presence.rb +1 -1
  33. data/presence/lib/tasks/presence/synchronize.rake +15 -0
  34. data/presence/social_stream-presence.gemspec +4 -4
  35. data/presence/vendor/assets/javascripts/strophe.muc.js +934 -0
  36. data/social_stream.gemspec +3 -3
  37. metadata +33 -29
@@ -0,0 +1,41 @@
1
+ module SocialStream
2
+ module Presence
3
+ module Models
4
+ module GroupManager
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ after_create :create_group_room
9
+ after_destroy :remove_group_room
10
+ end
11
+
12
+ def create_group_room
13
+
14
+ unless SocialStream::Presence.enable
15
+ return
16
+ end
17
+
18
+ unless self.subject_type == "Group"
19
+ return
20
+ end
21
+
22
+ SocialStream::Presence::XmppServerOrder::createPersistentRoom(self.slug,SocialStream::Presence.domain)
23
+ end
24
+
25
+
26
+ def remove_group_room
27
+
28
+ unless SocialStream::Presence.enable
29
+ return
30
+ end
31
+
32
+ unless self.subject_type == "Group"
33
+ return
34
+ end
35
+
36
+ SocialStream::Presence::XmppServerOrder::destroyRoom(self.slug,SocialStream::Presence.domain)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,5 +1,5 @@
1
1
  module SocialStream
2
2
  module Presence
3
- VERSION = "0.8.3"
3
+ VERSION = "0.8.5"
4
4
  end
5
5
  end
@@ -7,7 +7,11 @@ module SocialStream
7
7
  class XmppServerOrder
8
8
 
9
9
  class << self
10
-
10
+
11
+ ##################
12
+ #Emanagement Calls
13
+ ##################
14
+
11
15
  def setRosterForBidirectionalTie(userASid,userBSid,userANick,userBNick,groupForA,groupForB)
12
16
  executeEmanagementCommand("setBidireccionalBuddys",[userASid,userBSid,userANick,userBNick,groupForA,groupForB])
13
17
  end
@@ -27,8 +31,23 @@ module SocialStream
27
31
  executeEmanagementCommand("removeBuddyFromRoster",[userSid,buddySid])
28
32
  end
29
33
 
34
+
35
+ def createPersistentRoom(roomName,domain)
36
+ executeEmanagementCommand("createPersistentRoom",[roomName,domain])
37
+ end
38
+
39
+
40
+ def destroyRoom(roomName,domain)
41
+ executeEmanagementCommand("destroyRoom",[roomName,domain])
42
+ end
43
+
30
44
 
45
+
46
+
47
+ ##################
31
48
  # Presence synchronization
49
+ ##################
50
+
32
51
  def synchronizePresence(webDomain)
33
52
  if isEjabberdNodeUp
34
53
  if (webDomain=="all")
@@ -106,8 +125,12 @@ module SocialStream
106
125
  end
107
126
 
108
127
 
109
-
110
- # Rosters synchronization
128
+
129
+
130
+ ##################
131
+ # Rosters synchronization
132
+ ##################
133
+
111
134
  def removeAllRosters(webDomain)
112
135
  executeEmanagementCommand("removeAllRostersByDomain",[webDomain])
113
136
  end
@@ -140,7 +163,39 @@ module SocialStream
140
163
  end
141
164
 
142
165
 
143
- #Installation methods
166
+
167
+
168
+ ##################
169
+ # Room (MUC) synchronization
170
+ ##################
171
+
172
+ def removeAllRooms(webDomain)
173
+ executeEmanagementCommand("destroyAllRoomsByDomain",[webDomain])
174
+ end
175
+
176
+
177
+ def synchronizeRooms(webDomain)
178
+ commands = []
179
+
180
+ #Remove all mucs
181
+ commands << buildCommand("emanagement","destroyAllRoomsByDomain",[webDomain])
182
+
183
+ #Populate mucs
184
+ groups = Group.all
185
+
186
+ groups.each do |group|
187
+ commands << buildCommand("emanagement","createRoom",[group.slug,webDomain])
188
+ end
189
+
190
+ executeCommands(commands)
191
+ end
192
+
193
+
194
+
195
+
196
+ ##################
197
+ # Installation methods
198
+ ##################
144
199
 
145
200
  def copyFolderToXmppServer(oPath,dPath)
146
201
  if SocialStream::Presence.remote_xmpp_server
@@ -311,7 +366,12 @@ module SocialStream
311
366
  puts "Finish"
312
367
  end
313
368
 
314
- #Execution commands manage
369
+
370
+
371
+
372
+ ##################
373
+ # Execution commands management
374
+ ##################
315
375
 
316
376
  def buildCommand(script,order,params)
317
377
  command = SocialStream::Presence.scripts_path + "/" + script + " " + order
@@ -411,7 +471,12 @@ module SocialStream
411
471
  end
412
472
 
413
473
 
414
- #Authorization methods
474
+
475
+
476
+ ##################
477
+ # Authorization methods
478
+ ##################
479
+
415
480
  def authorization(params)
416
481
  case SocialStream::Presence.secure_rest_api
417
482
  when true
@@ -509,11 +574,15 @@ module SocialStream
509
574
  #Non Secure Mode
510
575
  return params
511
576
  end
512
- end
577
+ end
513
578
 
514
579
 
515
- #Help methods
516
-
580
+
581
+
582
+ ##################
583
+ # Help methods
584
+ ##################
585
+
517
586
  def isEjabberdNodeUp
518
587
  output = executeEmanagementCommand("isEjabberdNodeStarted",[])
519
588
  nodeUp = output.split("\n")[0]
@@ -536,7 +605,12 @@ module SocialStream
536
605
  end
537
606
 
538
607
 
539
- #Multidomain tasks
608
+
609
+
610
+ ##################
611
+ # Multidomain tasks
612
+ ##################
613
+
540
614
  def addWebDomain(domain,url)
541
615
  commands = []
542
616
  if url
@@ -14,9 +14,9 @@ module SocialStream
14
14
 
15
15
  module Models
16
16
  autoload :BuddyManager, 'social_stream/presence/models/buddy_manager'
17
+ autoload :GroupManager, 'social_stream/presence/models/group_manager'
17
18
  end
18
19
 
19
-
20
20
  mattr_accessor :domain
21
21
  mattr_accessor :bosh_service
22
22
  mattr_accessor :auth_method
@@ -32,5 +32,20 @@ namespace :presence do
32
32
  SocialStream::Presence::XmppServerOrder::synchronizeRosters(domain)
33
33
  puts "Rosters Synchronization complete"
34
34
  end
35
+
36
+ desc "Synchronize Xmpp Server database with Social Stream Rails Application database."
37
+ desc "Remove all rooms and create one room (also knowledge as MUC) for each Social Stream group."
38
+ task :rooms, [:domain] => :environment do |t, args|
39
+ puts "Starting presence:synchronize:rooms"
40
+ unless args[:domain]
41
+ puts "No web domain specified"
42
+ domain = SocialStream::Presence.domain
43
+ puts "Executing rake presence:synchronize:rooms[" + domain + "]"
44
+ else
45
+ domain = args[:domain]
46
+ end
47
+ SocialStream::Presence::XmppServerOrder::synchronizeRooms(domain)
48
+ puts "Rooms Synchronization complete"
49
+ end
35
50
  end
36
51
  end
@@ -6,10 +6,10 @@ Gem::Specification.new do |s|
6
6
  s.name = "social_stream-presence"
7
7
  s.version = SocialStream::Presence::VERSION
8
8
  s.authors = ["Aldo Gordillo"]
9
- s.email = ["iamchrono@gmail.com"]
10
- s.homepage = "https://github.com/ging/social_stream-presence"
11
- s.summary = "Presence capabilities for Social Stream, the core for building social network websites"
12
- s.description = "Social Stream is a Ruby on Rails engine providing your application with social networking features and activity streams."
9
+ s.email = ["agordillos@gmail.com"]
10
+ s.homepage = "https://github.com/ging/social_stream/wiki/Getting-Started-With-Social-Stream-Presence"
11
+ s.summary = "Presence capabilities for Social Stream, the core for building social network websites."
12
+ s.description = "Social Stream Presence provides everything you need for including presence, instant messaging and video chat services in your social network website, including a complete chat fully integrated with Social Stream."
13
13
 
14
14
  s.rubyforge_project = "social_stream-presence"
15
15