social_stream-presence 0.1.7 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -278,9 +278,10 @@ function putReceivedMessageOnChatWindow(from_jid,from_slug,body,msgID){
278
278
 
279
279
  //Parse content before show it.
280
280
  var content = getParsedContent(Strophe.getText(body), false)
281
+ var headerMessage = getParsedName(from_name,false);
281
282
 
282
283
  //Show message to chatBox.
283
- $("#" + from_slug).chatbox("option", "boxManager").addMsg(from_name, content);
284
+ $("#" + from_slug).chatbox("option", "boxManager").addMsg(headerMessage, content);
284
285
 
285
286
  //Rotate chatBoxes priority.
286
287
  rotatePriority(from_slug);
@@ -241,3 +241,17 @@ function getUrlType(url){
241
241
  return "link"
242
242
  }
243
243
  }
244
+
245
+
246
+ ///////////////////////////////////////////////////////
247
+ // Parsing user titles
248
+ ///////////////////////////////////////////////////////
249
+
250
+ function getParsedName(name, fromUser){
251
+ if (fromUser){
252
+ var chatTextclass = "ownName"
253
+ } else {
254
+ var chatTextclass = "guestName"
255
+ }
256
+ return ("<span class=\"" + chatTextclass + "\">" + name + "</span>");
257
+ }
@@ -1,10 +1,12 @@
1
1
  ////////////////////
2
- //Chat functions
2
+ //Chat Window Manager functions
3
3
  ////////////////////
4
4
 
5
5
  var nBox = 0;
6
6
  var maxBox = 5;
7
7
  var chatBoxWidth = 230;
8
+ var chatBoxHeight = 170;
9
+ var videoBoxHeight = 150;
8
10
  var visibleChatBoxes = new Array();
9
11
  var chatBoxSeparation = chatBoxWidth+12;
10
12
 
@@ -19,8 +21,6 @@ function createChatBox(guest_slug,guest_name,guest_jid,user_name,user_jid){
19
21
 
20
22
  //Add div with id = guest_slug
21
23
  $("#chat_divs").append("<div id=" + guest_slug + " name=" + guest_name + "></div>")
22
-
23
- //Add CSS [...]
24
24
 
25
25
 
26
26
  //Offset Management for new box
@@ -34,6 +34,8 @@ function createChatBox(guest_slug,guest_name,guest_jid,user_name,user_jid){
34
34
  hidden: false,
35
35
  offset: offset, // relative to right edge of the browser window
36
36
  width: chatBoxWidth, // width of the chatbox
37
+ height: chatBoxHeight, // height of the chatbox
38
+ video: 0, //height of the videoBox
37
39
  title : guest_name,
38
40
  position: position,
39
41
  priority: visibleChatBoxes.length+1,
@@ -53,7 +55,8 @@ function createChatBox(guest_slug,guest_name,guest_jid,user_name,user_jid){
53
55
 
54
56
  messageSent : function(id, user, msg) {
55
57
  rotatePriority(guest_slug);
56
- $("#" + guest_slug).chatbox("option", "boxManager").addMsg(id, getParsedContent(msg,true));
58
+ var headerMessage = getParsedName(id,true);
59
+ $("#" + guest_slug).chatbox("option", "boxManager").addMsg(headerMessage, getParsedContent(msg,true));
57
60
  sendChatMessage(user_jid,guest_jid,msg);
58
61
  }});
59
62
 
@@ -102,37 +105,82 @@ function getBoxParams(){
102
105
  }
103
106
 
104
107
 
108
+ function getChatVariableFromSlug(slug){
109
+ return "slug_" + slug;
110
+ }
111
+
112
+
113
+ function getSlugFromChatVariable(variable){
114
+ return variable.split("_")[1];
115
+ }
116
+
117
+
118
+ ////////////////////
119
+ //Box replacement
120
+ ////////////////////
121
+
105
122
  function getBoxIndexToReplace(){
106
123
 
107
- tmp = visibleChatBoxes[0];
108
- for (i=0;i<visibleChatBoxes.length;i++){
124
+ tmp = visibleChatBoxes[0];
125
+ for (i=0;i<visibleChatBoxes.length;i++){
109
126
  if (visibleChatBoxes[i].chatbox("option", "priority") > tmp.chatbox("option", "priority")) {
110
- tmp = visibleChatBoxes[i];
111
- }
127
+ tmp = visibleChatBoxes[i];
128
+ }
112
129
  }
113
-
114
- return visibleChatBoxes.indexOf(tmp);
130
+
131
+ return visibleChatBoxes.indexOf(tmp);
115
132
  }
116
133
 
117
134
 
118
135
  function rotatePriority(guest_slug){
119
- priority = $("#" + guest_slug).chatbox("option", "priority")
120
- if(priority>1){
121
- for (i=0;i<visibleChatBoxes.length;i++){
136
+ priority = $("#" + guest_slug).chatbox("option", "priority")
137
+ if(priority>1){
138
+ for (i=0;i<visibleChatBoxes.length;i++){
122
139
  if(visibleChatBoxes[i].chatbox("option", "priority")<priority){
123
- visibleChatBoxes[i].chatbox("option", "priority",visibleChatBoxes[i].chatbox("option", "priority")+1);
124
- }
125
- }
126
- $("#" + guest_slug).chatbox("option", "priority", 1);
127
- }
140
+ visibleChatBoxes[i].chatbox("option", "priority",visibleChatBoxes[i].chatbox("option", "priority")+1);
141
+ }
142
+ }
143
+ $("#" + guest_slug).chatbox("option", "priority", 1);
144
+ }
128
145
  }
129
146
 
130
147
 
131
- function getChatVariableFromSlug(slug){
132
- return "slug_" + slug;
148
+ ////////////////////
149
+ //Video Window Manager functions
150
+ ////////////////////
151
+
152
+ function getVideoBoxFromSlug(slug){
153
+ return $("#" + slug).parent().find("div.ui-videobox")
133
154
  }
134
155
 
156
+ function showVideoBox(slug,embed){
157
+ var chatBox = window[getChatVariableFromSlug(slug)]
158
+ getVideoBoxFromSlug(slug).html(embed);
159
+ chatBox.chatbox("option", "video",videoBoxHeight);
160
+ }
135
161
 
136
- function getSlugFromChatVariable(variable){
137
- return variable.split("_")[1];
162
+
163
+ function hideVideoBox(slug){
164
+ var chatBox = window[getChatVariableFromSlug(slug)]
165
+ chatBox.chatbox("option", "video", 0);
166
+ }
167
+
168
+
169
+ //Function called from JQuery UI Plugin
170
+ function toogleVideoBox(uiElement){
171
+ var slug = $(uiElement.element).attr("id");
172
+ toogleVideoBoxForSlug(slug)
173
+ }
174
+
175
+ function toogleVideoBoxForSlug(slug){
176
+ var chatBox = window[getChatVariableFromSlug(slug)]
177
+ if (chatBox.chatbox("option", "video")==0){
178
+ showVideoBox(slug,getVideoEmbedForSlug(slug))
179
+ } else {
180
+ hideVideoBox(slug);
181
+ }
182
+ }
183
+
184
+ function getVideoEmbedForSlug(slug){
185
+ return "<img src=\"http://www.batiburrillo.net/wp-content/uploads/2011/03/Freemake.jpg?cda6c1\" width=\"" + (chatBoxWidth-20) + "\"/>"
138
186
  }
@@ -91,10 +91,10 @@ function ifCookie(){
91
91
 
92
92
  //Global variables
93
93
  var userStatus = "chat";
94
- var awayTimerPeriod = 16000;
94
+ var awayTimerPeriod = 60000;
95
95
  var timerPeriod = 5000;
96
96
  var refreshMinTime = 3*timerPeriod;
97
- var awayTime = 300000;
97
+ var awayTime = 20*60000; //20 minutes
98
98
  var awayCounter = 0;
99
99
  var timerCounter = 0;
100
100
  var connection = null;
@@ -1,21 +1,28 @@
1
+ @import "colors";
2
+
3
+
1
4
  /* Chatbox style sheet */
2
5
 
6
+ .ui-widget-content{
7
+ border: none;
8
+ }
9
+
3
10
  .ui-chatbox {
4
11
  position: fixed;
5
12
  bottom:0;
6
13
  padding: 2px 2px 2px 2px;
7
14
  padding: 2px 2px 2px 2px;
8
- background: #CCCCCC;
15
+ background: $separation-color;
9
16
  }
10
17
 
11
18
  .ui-state-highlight {
12
- background: #CCCCCC;
13
- background-color: #CCCCCC;
14
- border: 1px solid lightgrey;
19
+ background: $separation-color;
20
+ background-color: $separation-color;
21
+ border: 1px solid $separation-color;
15
22
  }
16
23
 
17
24
  .chatWindowhighlighted {
18
- color: #CAC8F4;
25
+ color: $fill-color;
19
26
  }
20
27
 
21
28
  .ui-chatbox-titlebar {
@@ -33,28 +40,28 @@
33
40
  padding: 3px 3px 3px 3px;
34
41
  height: 150px;
35
42
  overflow-y: auto;
36
- background: #FFFFFF;
43
+ background: $text-over-main;
37
44
  }
38
45
 
39
46
  .ui-chatbox-input {
40
47
  padding: 3px 3px 3px 3px;
41
- border-top: 1px solid grey;
48
+ border-top: 1px solid $separation-color;
42
49
  overflow: hidden;
43
- /* background: #FFFFFF; */
44
50
  }
45
51
 
46
52
  .ui-chatbox-input-box {
47
53
  margin: 5px 5px 5px 5px;
48
- border: 2px solid lightgrey;
54
+ border: 1px solid $separation-color;
49
55
  height: 35px;
50
56
  }
51
57
 
58
+
52
59
  .ui-chatbox-icon {
53
60
  float: right;
54
61
  }
55
62
 
56
63
  .ui-chatbox-input-focus {
57
- border-color: #6699FF;
64
+ border-color: $header-notification-color;
58
65
  }
59
66
 
60
67
  .ui-chatbox-msg {
@@ -62,10 +69,27 @@
62
69
  clear: both;
63
70
  }
64
71
 
72
+ .ui-chatbox-log {
73
+ border: none;
74
+ }
75
+
76
+
77
+ /* video window style */
78
+ div.ui-videobox{
79
+ height: 0px;
80
+ border-bottom: 1px solid $separation-color;
81
+ }
82
+
83
+ div.ui-videobox-icon{
84
+
85
+ }
86
+
87
+ /* notifications style sheet */
88
+
65
89
  div.ui-chatbox-notify{
66
90
  visibility: hidden;
67
- background: #E5E5E5;
68
- background-color: #E5E5E5;
91
+ background: $fill-color;
92
+ background-color: $fill-color;
69
93
  color: black;
70
94
  z-index: 1;
71
95
  position:absolute;
@@ -76,7 +100,7 @@ div.ui-chatbox-notify{
76
100
  text-align: center;
77
101
  border-style:solid;
78
102
  border-width:1px;
79
- border-color: #CCCCCC;
103
+ border-color: $fill-color;
80
104
  opacity:0.95;
81
105
  filter:alpha(opacity=95); /* For IE8 and earlier */
82
106
  }
@@ -87,6 +111,7 @@ p.ui-chatbox-notify-text{
87
111
  }
88
112
 
89
113
 
114
+
90
115
  /* Ticks */
91
116
 
92
117
  .chat-thick {
@@ -108,6 +133,10 @@ p.ui-chatbox-notify-text{
108
133
  background-position: -96px -128px;
109
134
  }
110
135
 
136
+ .chat-videothick{
137
+ display: none;
138
+ }
139
+
111
140
 
112
141
  /* Presence Partial */
113
142
 
@@ -147,7 +176,7 @@ div.user_presence {
147
176
 
148
177
  #passwordFormChat{
149
178
  width: 150px;
150
- background-color: #1F4A75;
179
+ background-color: $main-color;
151
180
  padding-top:3px;
152
181
  padding-bottom:1px;
153
182
  }
@@ -168,7 +197,7 @@ input.chat_password{
168
197
  input.connectChatButton{
169
198
  text-align: center;
170
199
  width: 150px;
171
- background-color: #1F4A75;
200
+ background-color: $main-color;
172
201
  border: 0 none;
173
202
  cursor: pointer;
174
203
  color: white;
@@ -189,28 +218,19 @@ input.connectChatButton{
189
218
  width:160px;
190
219
  padding: 18px 25px 15px 25px;
191
220
  margin: -15px 0px 0px 0px;
192
- color:#fff;
221
+ color: white;
193
222
  background:transparent url(black_arrow3.png);
194
223
  text-align: center;
195
- /* border: 5px solid red; */
196
224
  }
197
225
 
198
226
 
199
- /* Status style sheet */
200
227
 
228
+ /* Status style sheet */
201
229
 
202
230
  #status{
203
231
  z-index: 1;
204
232
  }
205
-
206
- .desc {
207
- color:#6b6b6b;
208
- }
209
-
210
- .desc a {
211
- color:#0092dd;
212
- }
213
-
233
+
214
234
  .dropdown dd, .dropdown dt, .dropdown ul {
215
235
  margin:0px;
216
236
  padding:0px;
@@ -221,29 +241,28 @@ input.connectChatButton{
221
241
  }
222
242
 
223
243
  .dropdown a, .dropdown a:visited {
224
- color:#1F4A75;
244
+ color: $main-color;
225
245
  text-decoration:none;
226
246
  outline:none;
227
247
  }
228
248
 
229
249
  .dropdown a:hover {
230
- color:#1F4A75;
250
+ color: $main-color;
231
251
  }
232
252
  .dropdown dt a:hover {
233
- color:#1F4A75;
234
- border: 1px solid #1F4A75;
253
+ color: $main-color;
254
+ border: 1px solid $main-color;
235
255
  }
236
256
 
237
257
  .dropdown dt a {
238
- background:#DFECF1 url(btn/arrowBlue.png) no-repeat scroll right center;
258
+ background:$secondary-color url(btn/arrowBlue.png) no-repeat scroll right center;
239
259
  display:block;
240
260
  padding-right:20px;
241
- border:1px solid #DFECF1;
261
+ border:1px solid $secondary-color;
242
262
  width:128px;
243
263
  }
244
264
 
245
265
 
246
-
247
266
  .dropdown dt a span {
248
267
  cursor:pointer;
249
268
  display:block;
@@ -251,8 +270,9 @@ input.connectChatButton{
251
270
  }
252
271
 
253
272
  .dropdown dd ul {
254
- background:#DFECF1 none repeat scroll 0 0;
255
- border:1px solid #DFECF1; color:#DFECF1;
273
+ background: $secondary-color none repeat scroll 0 0;
274
+ border:1px solid $secondary-color;
275
+ color: $secondary-color;
256
276
  display:none;
257
277
  left:0px;
258
278
  padding:5px 0px;
@@ -274,7 +294,7 @@ input.connectChatButton{
274
294
  }
275
295
 
276
296
  .dropdown dd ul li a:hover {
277
- background-color:#D4E5EF;
297
+ background-color: $separation-color;
278
298
  }
279
299
 
280
300
  .dropdown img.flag {
@@ -287,22 +307,23 @@ input.connectChatButton{
287
307
  display:none;
288
308
  }
289
309
 
290
- .input_select{
291
- width: 100%;
292
- background-color: #D0C9AF;
293
- margin-top:5px;
294
- margin-bottom:5px;
295
- }
296
-
297
310
 
298
311
  /* Chat text style */
299
312
 
300
313
  .ownChatText {
301
- color: #342E82;
314
+ color: $main-color;
302
315
  }
303
316
 
304
317
  .guestChatText {
305
- color: #342E82;
318
+ color: $sentence-color;
319
+ }
320
+
321
+ .ownName {
322
+ color: $main-color;
323
+ }
324
+
325
+ .guestName {
326
+ color: $sentence-color;
306
327
  }
307
328
 
308
329
  .chatImage {
@@ -321,9 +342,9 @@ input.connectChatButton{
321
342
  }
322
343
 
323
344
  a.chatLink:link, a.chatLink:visited {
324
- color: #1E726A;
345
+ color: $main-color;
325
346
  }
326
347
 
327
348
  a.chatImageLink:link, a.chatImageLink:visited {
328
- color: #1E726A;
349
+ color: $main-color;
329
350
  }
Binary file
@@ -54,7 +54,7 @@ PARAMS_FOR_COMMANDS = {
54
54
  'sendMessageToUser' => 3,
55
55
  'getUserResource' => 1,
56
56
  'isEjabberdNodeStarted' => 0,
57
- 'broadcast' => 2,
57
+ 'broadcast' => 3,
58
58
  'checkEjabberdctlQuotedString' => 0,
59
59
  'getConnectedUsers' => 0,
60
60
  'help' => 0,
@@ -79,7 +79,7 @@ SYNTAX_FOR_COMMANDS = {
79
79
  'sendMessageToUser' => 'sendMessageToUser from_name to_name msg',
80
80
  'getUserResource' => 'getUserResource username',
81
81
  'isEjabberdNodeStarted' => 'isEjabberdNodeStarted',
82
- 'broadcast' => 'broadcast users msg (users values: "all" or slugs array)',
82
+ 'broadcast' => 'broadcast admin users msg (users values: "all" or slugs array)',
83
83
  'checkEjabberdctlQuotedString' => 'checkEjabberdctlQuotedString',
84
84
  'getConnectedUsers' => 'getConnectedUsers',
85
85
  'help' => 'help',
@@ -364,7 +364,7 @@ def getConnectedUsers
364
364
  return users
365
365
  end
366
366
 
367
- def broadcast(users,msg)
367
+ def broadcast(admin,users,msg)
368
368
  output = executeCommand("ejabberdctl connected-users")
369
369
  lines = output.split("\n");
370
370
  lines.each do |line|
@@ -372,7 +372,7 @@ def broadcast(users,msg)
372
372
  if (users == "all") or (users.length > 1 and users.include?(username))
373
373
  s = line.split("@")[1];
374
374
  resource = s.split("/")[1];
375
- sendMessageToUser("SocialStream",username,msg)
375
+ sendMessageToUser(admin,username,msg)
376
376
  end
377
377
  end
378
378
  return "Done"
@@ -31,23 +31,24 @@ module SocialStream
31
31
  user_name = self.sender.name
32
32
  buddy_sid = self.receiver.slug + "@" + domain
33
33
  buddy_name = self.receiver.name
34
+ site_name = I18n.t('site.name').delete(' ')
34
35
 
35
36
  #Check if is a positive and replied tie
36
37
  if self.bidirectional?
37
38
  #Execute setRosterForBidirectionalTie(userASid,userBSid,userANick,userBNick,groupForA,groupForB)
38
- SocialStream::Presence::XmppServerOrder::setRosterForBidirectionalTie(user_sid,buddy_sid,user_name,buddy_name,"SocialStream","SocialStream")
39
+ SocialStream::Presence::XmppServerOrder::setRosterForBidirectionalTie(user_sid,buddy_sid,user_name,buddy_name,site_name,site_name)
39
40
  elsif self.positive?
40
41
  #Case: Possitive tie unidirectional
41
42
  #Execute addBuddyToRoster(userSID,buddySID,buddyNick,buddyGroup,subscription_type)
42
43
  subscription_type = "from"
43
- SocialStream::Presence::XmppServerOrder::addBuddyToRoster(user_sid,buddy_sid,buddy_name,"SocialStream",subscription_type)
44
+ SocialStream::Presence::XmppServerOrder::addBuddyToRoster(user_sid,buddy_sid,buddy_name,site_name,subscription_type)
44
45
  else
45
46
  #Negative Tie
46
47
 
47
48
  if self.contact.positive_replied?
48
49
  #Bidirectional contacts
49
50
  #Execute unsetRosterForBidirectionalTie(user_sid,oldfriend_sid,oldfriendNick,oldfriendGroup)
50
- SocialStream::Presence::XmppServerOrder::unsetRosterForBidirectionalTie(buddy_sid,user_sid,user_name,"SocialStream")
51
+ SocialStream::Presence::XmppServerOrder::unsetRosterForBidirectionalTie(buddy_sid,user_sid,user_name,site_name)
51
52
  else
52
53
  SocialStream::Presence::XmppServerOrder::removeBuddyFromRoster(user_sid,buddy_sid)
53
54
  end
@@ -85,7 +86,7 @@ module SocialStream
85
86
  # #Check if is a positive and replied tie
86
87
  # if self.bidirectional?
87
88
  # #Execute unsetRosterForBidirectionalTie(user_sid,oldfriend_sid,oldfriendNick,oldfriendGroup)
88
- # SocialStream::Presence::XmppServerOrder::unsetRosterForBidirectionalTie(buddy_sid,user_sid,user_name,"SocialStream")
89
+ # SocialStream::Presence::XmppServerOrder::unsetRosterForBidirectionalTie(buddy_sid,user_sid,user_name,site_name)
89
90
  # elsif self.positive?
90
91
  # #Case: Possitive tie unidirectional
91
92
  # #Execute removeBuddyFromRoster(user_sid,buddy_sid)
@@ -1,5 +1,5 @@
1
1
  module Socialstream
2
2
  module Presence
3
- VERSION = "0.1.7"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -60,6 +60,7 @@ module SocialStream
60
60
  #"Populate rosters"
61
61
  users = User.all
62
62
  checkedUsers = []
63
+ site_name = I18n.t('site.name').delete(' ')
63
64
 
64
65
  users.each do |user|
65
66
  checkedUsers << user.slug
@@ -69,7 +70,7 @@ module SocialStream
69
70
  domain = SocialStream::Presence.domain
70
71
  user_sid = user.slug + "@" + domain
71
72
  contact_sid = contact.slug + "@" + domain
72
- commands << buildCommand("emanagement","setBidireccionalBuddys",[user_sid,contact_sid,user.name,contact.name,"SocialStream","SocialStream"])
73
+ commands << buildCommand("emanagement","setBidireccionalBuddys",[user_sid,contact_sid,user.name,contact.name,site_name,site_name])
73
74
  end
74
75
  end
75
76
  end
@@ -22,6 +22,8 @@
22
22
  hidden: false,
23
23
  offset: 0, // relative to right edge of the browser window
24
24
  width: 230, // width of the chatbox
25
+ height: 400, // height of the chatbox
26
+ video: 0, // height of the videoBox
25
27
  messageSent: function(id, user, msg){
26
28
  // override this
27
29
  this.boxManager.addMsg(user.first_name, msg);
@@ -168,6 +170,24 @@
168
170
  .text('minimize')
169
171
  .appendTo(uiChatboxTitlebarMinimize),
170
172
 
173
+ //Video Menu button
174
+ uiChatboxTitlebarVideo = (self.uiChatboxTitlebarVideo = $('<a href="#"></a>'))
175
+ .addClass('ui-corner-all ' +
176
+ 'ui-chatbox-icon' + ' ui-videobox-icon'
177
+ )
178
+ .attr('role', 'button')
179
+ //.hover(function() {uiChatboxTitlebarMinimize.addClass('ui-state-hover');},
180
+ // function() {uiChatboxTitlebarMinimize.removeClass('ui-state-hover');})
181
+ .click(function(event) {
182
+ toogleVideoBox(self)
183
+ return false;
184
+ })
185
+ .appendTo(uiChatboxTitlebar),
186
+ uiChatboxTitlebarVideoText = $('<span></span>')
187
+ .addClass('ui-icon-circle-triangle-e ' + 'chat-thick ' + ' chat-videothick' )
188
+ .text('video')
189
+ .appendTo(uiChatboxTitlebarVideo),
190
+
171
191
 
172
192
  // content
173
193
  uiChatboxContent = (self.uiChatboxContent = $('<div></div>'))
@@ -175,6 +195,19 @@
175
195
  'ui-chatbox-content '
176
196
  )
177
197
  .appendTo(uiChatbox),
198
+
199
+ //VideoBox div
200
+ uiVideobox = (self.uiVideobox = $('<div></div>'))
201
+ .addClass('ui-widget-content ' +
202
+ 'ui-videobox'
203
+ )
204
+ .click(function(event) {
205
+ // anything?
206
+
207
+ })
208
+ .appendTo(uiChatboxContent),
209
+
210
+ //ChatBoxLog
178
211
  uiChatboxLog = (self.uiChatboxLog = self.element)
179
212
  //.show()
180
213
  .addClass('ui-widget-content '+
@@ -235,11 +268,13 @@
235
268
 
236
269
  // switch focus to input box when whatever clicked
237
270
  uiChatboxContent.children().click(function(){
238
- // click on any children, set focus on input box
239
- self.uiChatboxInputBox.focus();
271
+ // click on any children, set focus on input box
272
+ self.uiChatboxInputBox.focus();
240
273
  });
241
274
 
242
275
  self._setWidth(self.options.width);
276
+ self._setHeight(self.options.height);
277
+ self._setVideo(self.options.video);
243
278
  self._position(self.options.offset);
244
279
 
245
280
  self.options.boxManager.init(self);
@@ -251,22 +286,28 @@
251
286
 
252
287
  _setOption: function(option, value) {
253
288
  if(value != null){
254
- switch(option) {
255
- case "hidden":
256
- if(value) {
257
- this.uiChatbox.hide();
258
- }
259
- else {
260
- this.uiChatbox.show();
261
- }
262
- break;
263
- case "offset":
264
- this._position(value);
265
- break;
266
- case "width":
267
- this._setWidth(value);
268
- break;
269
- }
289
+ switch(option) {
290
+ case "hidden":
291
+ if(value) {
292
+ this.uiChatbox.hide();
293
+ }
294
+ else {
295
+ this.uiChatbox.show();
296
+ }
297
+ break;
298
+ case "offset":
299
+ this._position(value);
300
+ break;
301
+ case "width":
302
+ this._setWidth(value);
303
+ break;
304
+ case "height":
305
+ this._setHeight(value);
306
+ break;
307
+ case "video":
308
+ this._setVideo(value);
309
+ break;
310
+ }
270
311
  }
271
312
 
272
313
  $.Widget.prototype._setOption.apply(this, arguments);
@@ -278,6 +319,19 @@
278
319
  // this is a hack, but i can live with it so far
279
320
  this.uiChatboxInputBox.css("width", (width - 14) + "px");
280
321
  },
322
+
323
+ _setHeight: function(height) {
324
+ this.uiChatboxLog.height(height + "px");
325
+ },
326
+
327
+ _setVideo: function(videoHeight) {
328
+ this.uiVideobox.height(videoHeight + "px");
329
+ if (videoHeight==0){
330
+ this.uiVideobox.hide();
331
+ } else {
332
+ this.uiVideobox.show();
333
+ }
334
+ },
281
335
 
282
336
  _position: function(offset) {
283
337
  this.uiChatbox.css("right", offset);
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: social_stream-presence
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 7
9
- version: 0.1.7
4
+ prerelease:
5
+ version: 0.2.0
10
6
  platform: ruby
11
7
  authors:
12
8
  - Aldo Gordillo
@@ -14,7 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-12-14 00:00:00 +01:00
13
+ date: 2011-12-16 00:00:00 +01:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
@@ -25,10 +21,6 @@ dependencies:
25
21
  requirements:
26
22
  - - ~>
27
23
  - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- - 10
31
- - 0
32
24
  version: 0.10.0
33
25
  type: :runtime
34
26
  version_requirements: *id001
@@ -40,8 +32,6 @@ dependencies:
40
32
  requirements:
41
33
  - - ">="
42
34
  - !ruby/object:Gem::Version
43
- segments:
44
- - 0
45
35
  version: "0"
46
36
  type: :runtime
47
37
  version_requirements: *id002
@@ -53,8 +43,6 @@ dependencies:
53
43
  requirements:
54
44
  - - ">="
55
45
  - !ruby/object:Gem::Version
56
- segments:
57
- - 0
58
46
  version: "0"
59
47
  type: :runtime
60
48
  version_requirements: *id003
@@ -66,8 +54,6 @@ dependencies:
66
54
  requirements:
67
55
  - - ">="
68
56
  - !ruby/object:Gem::Version
69
- segments:
70
- - 0
71
57
  version: "0"
72
58
  type: :runtime
73
59
  version_requirements: *id004
@@ -79,8 +65,6 @@ dependencies:
79
65
  requirements:
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
- segments:
83
- - 0
84
68
  version: "0"
85
69
  type: :development
86
70
  version_requirements: *id005
@@ -122,7 +106,7 @@ files:
122
106
  - app/assets/javascripts/social_stream-presence.js
123
107
  - app/assets/javascripts/store.js
124
108
  - app/assets/javascripts/xmpp_client_management.js.erb
125
- - app/assets/stylesheets/chat.css
109
+ - app/assets/stylesheets/chat.css.scss
126
110
  - app/assets/stylesheets/social_stream-presence.css
127
111
  - app/controllers/xmpp_controller.rb
128
112
  - app/helpers/xmpp_helper.rb
@@ -240,21 +224,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
240
224
  requirements:
241
225
  - - ">="
242
226
  - !ruby/object:Gem::Version
243
- segments:
244
- - 0
245
227
  version: "0"
246
228
  required_rubygems_version: !ruby/object:Gem::Requirement
247
229
  none: false
248
230
  requirements:
249
231
  - - ">="
250
232
  - !ruby/object:Gem::Version
251
- segments:
252
- - 0
253
233
  version: "0"
254
234
  requirements: []
255
235
 
256
236
  rubyforge_project: social_stream-presence
257
- rubygems_version: 1.3.7
237
+ rubygems_version: 1.6.1
258
238
  signing_key:
259
239
  specification_version: 3
260
240
  summary: Presence capabilities for Social Stream, the core for building social network websites