@@ -27,6 +27,7 @@ var localLinks = require('local-links');
2727var QueryOptions = require ( './models/query-options' ) ;
2828var Connection = require ( './models/connection' ) ;
2929var MongoDBInstance = require ( './models/mongodb-instance' ) ;
30+ var User = require ( './models/user' ) ;
3031var Router = require ( './router' ) ;
3132var Statusbar = require ( './statusbar' ) ;
3233
@@ -114,7 +115,8 @@ var Application = View.extend({
114115 */
115116 router : 'object' ,
116117 clientStartedAt : 'date' ,
117- clientStalledTimeout : 'number'
118+ clientStalledTimeout : 'number' ,
119+ user : 'state'
118120 } ,
119121 events : {
120122 'click a' : 'onLinkClick'
@@ -143,6 +145,16 @@ var Application = View.extend({
143145 pushState : false ,
144146 root : '/'
145147 } ) ;
148+
149+ this . user = new User ( ) ;
150+ User . getOrCreate ( function ( err , user ) {
151+ if ( err ) {
152+ metrics . error ( err , 'user: get or create' ) ;
153+ return ;
154+ }
155+ this . user . set ( user . serialize ( ) ) ;
156+ } . bind ( this ) ) ;
157+
146158 app . statusbar . hide ( ) ;
147159 } ,
148160 onFatalError : function ( id , err ) {
@@ -228,20 +240,29 @@ var state = new Application({
228240 connection_id : connection_id
229241} ) ;
230242
231- // @todo (imlucas): Feature flags can be overrideen
232- // via `window.localStorage`.
243+ /**
244+ * @todo (imlucas): Feature flags can be overridden
245+ * via `window.localStorage`.
246+ */
233247var FEATURES = {
234248 querybuilder : true ,
235249 keychain : true ,
236250 'Google Map Minicharts' : true ,
237251 'Connect with SSL' : false ,
238252 'Connect with Kerberos' : false ,
239253 'Connect with LDAP' : false ,
240- 'Connect with X.509' : false
254+ 'Connect with X.509' : false ,
255+ intercom : true ,
256+ bugsnag : true
241257} ;
242258
243259app . extend ( {
244260 client : null ,
261+ config : {
262+ intercom : {
263+ app_id : 'p57suhg7'
264+ }
265+ } ,
245266 /**
246267 * Check whether a feature flag is currently enabled.
247268 *
@@ -344,6 +365,13 @@ Object.defineProperty(app, 'router', {
344365 }
345366} ) ;
346367
368+ Object . defineProperty ( app , 'user' , {
369+ get : function ( ) {
370+ return state . user ;
371+ }
372+ } ) ;
373+
374+
347375app . init ( ) ;
348376
349377// expose app globally for debugging purposes
0 commit comments