Commit 2d30ae0d1d5514749e0af715f0ac7c7bb3914029

Authored by Daniela Feitosa
Committed by Antonio Terceiro
1 parent 7e35c147

Enhancements of chat

Added sound when user receives message on chat
Fixed width on css of chat

(ActionItem1679)
app/views/layouts/chat.rhtml
... ... @@ -5,7 +5,7 @@
5 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
6 6 <meta name="description" content="<%= @environment.name %>" />
7 7 <link rel="shortcut icon" href="<%= image_path(theme_favicon) %>" type="image/x-icon" />
8   - <%= javascript_include_tag 'jquery-latest', 'jquery.noconflict', 'jquery-ui-1.8.2.custom.min', 'jquery.scrollTo', 'jquery.scrollabletab', 'strophejs-1.0.1/strophe', 'jquery.emoticon', '/designs/icons/pidgin/emoticons.js', 'ba-linkify', 'application', 'chat', :cache => 'cache-chat' %>
  8 + <%= javascript_include_tag 'jquery-latest', 'jquery.noconflict', 'jquery-ui-1.8.2.custom.min', 'jquery.scrollTo', 'jquery.scrollabletab', 'strophejs-1.0.1/strophe', 'jquery.emoticon', '/designs/icons/pidgin/emoticons.js', 'ba-linkify', 'application', 'chat', 'jquery.sound', :cache => 'cache-chat' %>
9 9 <%= stylesheet_link_tag noosfero_stylesheets, :cache => 'cache' %>
10 10 <%= stylesheet_link_tag icon_theme_stylesheet_path %>
11 11 <%= stylesheet_link_tag theme_stylesheet_path %>
... ...
public/javascripts/chat.js
... ... @@ -232,6 +232,7 @@ jQuery(function($) {
232 232 var name = $('#' + jid_id).data('name');
233 233 create_conversation_tab(name, jid_id);
234 234 Jabber.show_message(jid, body, 'other');
  235 + $.sound.play('/sounds/receive.wav');
235 236 return true;
236 237 },
237 238  
... ... @@ -384,7 +385,7 @@ jQuery(function($) {
384 385 $('#chat-window #tabs').removeClass("ui-corner-all ui-widget-content");
385 386  
386 387 // positionting scrollabletab wrapper at bottom and tabs next/prev buttons
387   - $('#stTabswrapper,#tabs').css('position', 'absolute').css('top', 0).css('bottom', 0).css('left', 0).css('right', 0);
  388 + $('#stTabswrapper,#tabs').css({'position':'absolute', 'top':0, 'bottom':0, 'left': 0, 'right': 0, 'width': 'auto'});
388 389 $('.stNavWrapper').css('position', 'absolute').css('bottom', 0).css('left', 0).css('right', 0)
389 390 .find('.stNav').css('top', null).css('bottom', '12px').css('height', '22px')
390 391 .find('.ui-icon').css('margin-top', '2px');
... ...
public/javascripts/jquery.sound.js 0 → 100644
... ... @@ -0,0 +1,80 @@
  1 +/**
  2 + * jQuery sound plugin (no flash)
  3 + *
  4 + * port of script.aculo.us' sound.js (http://script.aculo.us), based on code by Jules Gravinese (http://www.webveteran.com/)
  5 + *
  6 + * Copyright (c) 2007 Jörn Zaefferer (http://bassistance.de)
  7 + *
  8 + * Licensed under the MIT license:
  9 + * http://www.opensource.org/licenses/mit-license.php
  10 + *
  11 + * $Id$
  12 + */
  13 +
  14 +/**
  15 + * API Documentation
  16 + *
  17 + * // play a sound from the url
  18 + * $.sound.play(url)
  19 + *
  20 + * // play a sound from the url, on a track, stopping any sound already running on that track
  21 + * $.sound.play(url, {
  22 + * track: "track1"
  23 + * });
  24 + *
  25 + * // increase the timeout to four seconds before removing the sound object from the dom for longer sounds
  26 + * $.sound.play(url, {
  27 + * timeout: 4000
  28 + * });
  29 + *
  30 + * // disable playing sounds
  31 + * $.sound.enabled = false;
  32 + *
  33 + * // enable playing sounds
  34 + * $.sound.enabled = true
  35 + */
  36 +
  37 +(function($) {
  38 +
  39 +$.sound = {
  40 + tracks: {},
  41 + enabled: true,
  42 + template: function(src) {
  43 + return '<embed style="height:0" loop="false" src="' + src + '" autostart="true" hidden="true"/>';
  44 + },
  45 + play: function(url, options){
  46 + if (!this.enabled)
  47 + return;
  48 + var settings = $.extend({
  49 + url: url,
  50 + timeout: 2000
  51 + }, options);
  52 +
  53 + if (settings.track) {
  54 + if (this.tracks[settings.track]) {
  55 + var current = this.tracks[settings.track];
  56 + current.Stop && current.Stop();
  57 + current.remove();
  58 + }
  59 + }
  60 +
  61 + var element = $.browser.msie
  62 + ? $('<bgsound/>').attr({
  63 + src: settings.url,
  64 + loop: 1,
  65 + autostart: true
  66 + })
  67 + : $(this.template(settings.url));
  68 + element.appendTo("body");
  69 +
  70 + if (settings.track) {
  71 + this.tracks[settings.track] = element;
  72 + }
  73 +
  74 + setTimeout(function() {
  75 + element.remove();
  76 + }, 2000)
  77 + }
  78 +};
  79 +
  80 +})(jQuery);
... ...
public/sounds/receive.wav 0 → 100644
No preview for this file type