social_stream 0.22.0 → 0.22.1

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.
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