39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import Route from '@ember/routing/route';
 | 
						|
import { inject as service } from '@ember/service';
 | 
						|
import BodyClassMixin from 'ember-body-class/mixins/body-class';
 | 
						|
 | 
						|
export default Route.extend(BodyClassMixin, {
 | 
						|
 | 
						|
  storage: service(),
 | 
						|
 | 
						|
  beforeModel () {
 | 
						|
    this.get('storage.rs').on('error', (error) => {
 | 
						|
      console.debug('rs.on error', error);
 | 
						|
      if (error.name === 'Unauthorized') {
 | 
						|
        this.handleUnauthorized();
 | 
						|
      } else if (error.name === 'DiscoveryError') {
 | 
						|
        // Do nothing, because the widget will handle it
 | 
						|
      } else {
 | 
						|
        alert('An unknown error occured. Please check the browser console for details.');
 | 
						|
      }
 | 
						|
    });
 | 
						|
  },
 | 
						|
 | 
						|
  // We need to handle this here, so we can transitionTo
 | 
						|
  // the connect route
 | 
						|
  handleUnauthorized () {
 | 
						|
    // Ignore additional unauthorized events after the
 | 
						|
    // first one
 | 
						|
    if (this.get('storage.unauthorized')) { return; }
 | 
						|
 | 
						|
    this.get('storage').setProperties({
 | 
						|
      unauthorized: true,
 | 
						|
      connecting: false,
 | 
						|
      connected: false
 | 
						|
    });
 | 
						|
 | 
						|
    this.transitionTo('connect');
 | 
						|
  }
 | 
						|
 | 
						|
});
 |