You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			35 lines
		
	
	
		
			972 B
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			972 B
		
	
	
	
		
			JavaScript
		
	
| 
											12 years ago
										 | var Whisper = Whisper || {}; | ||
|  | (function () { | ||
|  |   'use strict'; | ||
|  | 
 | ||
|  |   // This is an ephemeral collection of global notification messages to be
 | ||
|  |   // presented in some nice way to the user. In this case they will fade in/out
 | ||
|  |   // one at a time.
 | ||
|  | 
 | ||
|  |   var queue = new Backbone.Collection(); | ||
|  |   var view  = new (Backbone.View.extend({ | ||
|  |     className: 'help', | ||
|  |     initialize: function() { | ||
|  |       this.$el.appendTo($('body')); | ||
|  |       this.listenToOnce(queue, 'add', this.presentNext); | ||
|  |     }, | ||
|  |     presentNext: function() { | ||
|  |       var next = queue.shift(); | ||
|  |       if (next) { | ||
|  |         this.$el.text(next.get('message')).fadeIn(this.setFadeOut.bind(this)); | ||
|  |       } else { | ||
|  |         this.listenToOnce(queue, 'add', this.presentNext); | ||
|  |       } | ||
|  |     }, | ||
|  |     setFadeOut: function() { | ||
|  |       setTimeout(this.fadeOut.bind(this), 1500); | ||
|  |     }, | ||
|  |     fadeOut: function() { | ||
|  |       this.$el.fadeOut(this.presentNext.bind(this)); | ||
|  |     }, | ||
|  |   }))(); | ||
|  | 
 | ||
|  |   Whisper.notify = function(str) { queue.add({message: str}); } | ||
|  | 
 | ||
|  | })(); |