GithubHelp home page GithubHelp logo

goinstant / chat Goto Github PK

View Code? Open in Web Editor NEW
16.0 16.0 10.0 1.06 MB

The GoInstant Chat widget provides real-time chat to users inside a room of your application.. This repo will no longer be updated. GoInstant will be discontinued as of August 31, 2014. Read our blog for more details.

Home Page: https://goinstant.com

License: BSD 3-Clause "New" or "Revised" License

JavaScript 98.30% CSS 1.70%

chat's People

Contributors

ntassone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chat's Issues

tests: sinon error: key#on

sinon error: TypeError: argument at index 2 is not a function: undefined

culprite:

on: sinon.stub().callsArg(2)

template: avatarUrl susceptible to XSS

The avatarUrl var in the message-template is susceptible to XSS, since it is inserted into our CSS without sanitation and users have permission the set the avatarUrl to anything.

This should be moved out of the template to use DOM instead. Similar to message text.

Add Collapse Tracking

The widget should remember the open/closed status of a given user on their last page load. This enables multi-page apps to retain a memory rather than always loading closed or always loading open.

Store message in progress

If I am typing a message and navigate to another page with the chat widget, it would be nice if my chat message I was in the middle of typing was there on the next page. Currently, when you leave the current page, you lose everything in your text box.

EDIT: This will help if someone navigates during a collaboration bundle session, and the people they're in the session with are typing at the time.

Move collapse class to wrapper

Currently the collapse button toggles a class .collapsed on a few individual elements, it should be applied to .gi-chat with the class name .gi-collapsed to keep consistent with the other widgets (user-list specifically).

Launch tasks

Just want to get a checklist of what has to be done to launch the Chat Widget for real.

  • Tests
  • Documentation
  • Example
  • Basic styling
  • Security Review

What else?

tests stub usercache internals

The tests are stubbing the user cache internals instead of the user cache interface itself meaning that these tests will need to be rewritten any time user cache changes.

Emotes Feature

Add a generic set of emotes :) ;) :O :( ...
Maybe add an option for adding custom emotes.

Idea - Use key expire to delete chat messages

This could be a good widget to validate our key expiry. Afaik it doesn't get much use in any of our other demo apps, so perhaps using it here to delete old messages (declared when widget is instantiated?) might be a good idea !

Optimize message storage

Store a historical user list separately instead of storing the userObj in each message. Should only be storing the userId on each message.

New message indicators

Add new message indicators.

Options (default):

{
  windowBlink: true,
  chatBlink: true,
  blinkText: 'New Message',
  sound: true,
  soundURL: 'https://cdn.goinstant.net/widgets/chat/latest/chat/sounds/ding.mp3'
}
  1. windowBlink: If window is not focused, blink the page title with "New Message" until window gets focused.
  2. chatBlink: If chat is collapsed, blink the chat header with "New Message" until chat gets expanded.
  3. sound: If window is not focused or chat is collapsed play sound once.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.